From 31a8ff428869614db3cae06ab24dbdb1e3d98064 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 17 Jul 2010 11:33:08 -0500 Subject: [PATCH 0001/2731] Initial mediagoblin structure --- .gitignore | 9 ++++++ mediagoblin/__init__.py | 0 mediagoblin/app.py | 64 +++++++++++++++++++++++++++++++++++++++++ mediagoblin/routing.py | 7 +++++ mediagoblin/util.py | 11 +++++++ mediagoblin/views.py | 4 +++ setup.py | 17 +++++++++++ 7 files changed, 112 insertions(+) create mode 100644 .gitignore create mode 100644 mediagoblin/__init__.py create mode 100644 mediagoblin/app.py create mode 100644 mediagoblin/routing.py create mode 100644 mediagoblin/util.py create mode 100644 mediagoblin/views.py create mode 100644 setup.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..0ed4802a --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +dist/ +bin/ +develop-eggs/ +build/ +eggs/ +.installed.cfg +wsgit.egg-info +*.pyc +*.pyo \ No newline at end of file diff --git a/mediagoblin/__init__.py b/mediagoblin/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/mediagoblin/app.py b/mediagoblin/app.py new file mode 100644 index 00000000..41ab7f20 --- /dev/null +++ b/mediagoblin/app.py @@ -0,0 +1,64 @@ +import sys +import urllib + +from webob import Request, exc +import routes + +from mediagoblin import routing, util + + +class Error(Exception): pass +class ImproperlyConfigured(Error): pass + + +def load_controller(string): + module_name, func_name = string.split(':', 1) + __import__(module_name) + module = sys.modules[module_name] + func = getattr(module, func_name) + return func + + +class MediagoblinApp(object): + """ + Really basic wsgi app using routes and WebOb. + """ + def __init__(self, user_template_path=None): + self.template_env = util.get_jinja_env(user_template_path) + + def __call__(self, environ, start_response): + request = Request(environ) + path_info = request.path_info + route_match = routing.mapping.match(path_info) + + # No matching page? + if route_match is None: + # Try to do see if we have a match with a trailing slash + # added and if so, redirect + if not path_info.endswith('/') \ + and request.method == 'GET' \ + and routing.mapping.match(path_info + '/'): + new_path_info = path_info + '/' + if request.GET: + new_path_info = '%s?%s' % ( + new_path_info, urllib.urlencode(request.GET)) + redirect = exc.HTTPTemporaryRedirect(location=new_path_info) + return request.get_response(redirect)(environ, start_response) + + # Okay, no matches. 404 time! + return exc.HTTPNotFound()(environ, start_response) + + controller = load_controller(route_match['controller']) + request.start_response = start_response + + request.matchdict = route_match + request.app = self + request.template_env = self.template_env + request.urlgen = routes.URLGenerator(routing.mapping, environ) + + return controller(request)(environ, start_response) + + +def paste_app_factory(global_config, **kw): + return MediagoblinApp( + user_template_path=kw.get('local_templates')) diff --git a/mediagoblin/routing.py b/mediagoblin/routing.py new file mode 100644 index 00000000..fec08370 --- /dev/null +++ b/mediagoblin/routing.py @@ -0,0 +1,7 @@ +from routes import Mapper + +mapping = Mapper() +mapping.minimization = False + +mapping.connect( + "index", "/", controller="mediagoblin.views:root_view") diff --git a/mediagoblin/util.py b/mediagoblin/util.py new file mode 100644 index 00000000..2af9b380 --- /dev/null +++ b/mediagoblin/util.py @@ -0,0 +1,11 @@ +import jinja2 + +def get_jinja_env(user_template_path=None): + if user_template_path: + loader = jinja2.ChoiceLoader( + [jinja2.FileSystemLoader(user_template_path), + jinja2.PackageLoader('mediagoblin', 'templates')]) + else: + loader = jinja2.PackageLoader('mediagoblin', 'templates') + + return jinja2.Environment(loader=loader, autoescape=True) diff --git a/mediagoblin/views.py b/mediagoblin/views.py new file mode 100644 index 00000000..1b109453 --- /dev/null +++ b/mediagoblin/views.py @@ -0,0 +1,4 @@ +from webob import Response, exc + +def root_view(request): + return Response("This is the root") diff --git a/setup.py b/setup.py new file mode 100644 index 00000000..c19e801f --- /dev/null +++ b/setup.py @@ -0,0 +1,17 @@ +from setuptools import setup, find_packages + +import sys + +setup( + name = "mediagoblin", + version = "0.0.1", + packages=find_packages(exclude=['ez_setup', 'examples', 'tests']), + zip_safe=False, + license = 'AGPLv3', + author = 'Christopher Webber', + author_email = 'cwebber@dustycloud.org', + entry_points = """\ + [paste.app_factory] + mediagoblin = mediagoblin.app:paste_app_factory + """, + ) From 73e0dbcca32ed18c0ab63cfde8b34cd112b9e528 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 17 Jul 2010 13:32:57 -0500 Subject: [PATCH 0002/2731] Basic but useless connection to the database --- mediagoblin/app.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 41ab7f20..4095acc2 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -3,6 +3,7 @@ import urllib from webob import Request, exc import routes +import pymongo from mediagoblin import routing, util @@ -23,8 +24,9 @@ class MediagoblinApp(object): """ Really basic wsgi app using routes and WebOb. """ - def __init__(self, user_template_path=None): + def __init__(self, database, user_template_path=None): self.template_env = util.get_jinja_env(user_template_path) + self.db = database def __call__(self, environ, start_response): request = Request(environ) @@ -60,5 +62,9 @@ class MediagoblinApp(object): def paste_app_factory(global_config, **kw): + connection = pymongo.Connection() + db = kw.get('db_name', 'mediagoblin') + return MediagoblinApp( + db, user_template_path=kw.get('local_templates')) From 0f63a9440d440aac04042bd6125c70a2cb8116d7 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 18 Jul 2010 11:20:18 -0500 Subject: [PATCH 0003/2731] A few adustments to the routing and etc --- mediagoblin/app.py | 7 ++++--- mediagoblin/routing.py | 15 +++++++++++---- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 4095acc2..7231b786 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -27,11 +27,12 @@ class MediagoblinApp(object): def __init__(self, database, user_template_path=None): self.template_env = util.get_jinja_env(user_template_path) self.db = database + self.routing = routing.get_mapper() def __call__(self, environ, start_response): request = Request(environ) path_info = request.path_info - route_match = routing.mapping.match(path_info) + route_match = self.routing.match(path_info) # No matching page? if route_match is None: @@ -39,7 +40,7 @@ class MediagoblinApp(object): # added and if so, redirect if not path_info.endswith('/') \ and request.method == 'GET' \ - and routing.mapping.match(path_info + '/'): + and self.routing.match(path_info + '/'): new_path_info = path_info + '/' if request.GET: new_path_info = '%s?%s' % ( @@ -56,7 +57,7 @@ class MediagoblinApp(object): request.matchdict = route_match request.app = self request.template_env = self.template_env - request.urlgen = routes.URLGenerator(routing.mapping, environ) + request.urlgen = routes.URLGenerator(self.routing, environ) return controller(request)(environ, start_response) diff --git a/mediagoblin/routing.py b/mediagoblin/routing.py index fec08370..0b345371 100644 --- a/mediagoblin/routing.py +++ b/mediagoblin/routing.py @@ -1,7 +1,14 @@ from routes import Mapper -mapping = Mapper() -mapping.minimization = False +def get_mapper(): + mapping = Mapper() + mapping.minimization = False -mapping.connect( - "index", "/", controller="mediagoblin.views:root_view") + mapping.connect( + "index", "/", + controller="mediagoblin.views:root_view") + mapping.connect( + "test_submit", "/test_submit/", + controller="mediagoblin.views:submit_test") + + return mapping From fbf7880e6873a541da5f45f90d9e0fd31119514a Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 18 Jul 2010 11:22:24 -0500 Subject: [PATCH 0004/2731] Starting with the test submit view using wtforms --- .../templates/mediagoblin/test_submit.html | 18 +++++++++++ mediagoblin/views.py | 32 +++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 mediagoblin/templates/mediagoblin/test_submit.html diff --git a/mediagoblin/templates/mediagoblin/test_submit.html b/mediagoblin/templates/mediagoblin/test_submit.html new file mode 100644 index 00000000..0d2fd258 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/test_submit.html @@ -0,0 +1,18 @@ + + +
+ + {% for field in image_form %} + + + + + {% endfor %} + + + + +
{{ field.label }}{{ field }}
+
+ + diff --git a/mediagoblin/views.py b/mediagoblin/views.py index 1b109453..ef0fddad 100644 --- a/mediagoblin/views.py +++ b/mediagoblin/views.py @@ -1,4 +1,36 @@ from webob import Response, exc +import wtforms def root_view(request): return Response("This is the root") + + +class ImageSubmitForm(wtforms.Form): + title = wtforms.TextField( + 'Title', + [wtforms.validators.Length(min=1, max=500)]) + description = wtforms.TextAreaField('Description of this work') + file = wtforms.FileField('File') + + +def submit_test(request): + image_form = ImageSubmitForm(request.POST) + if request.method == 'POST' and image_form.validate(): + # create entry and save in database + + # save file to disk + ## TODO + + # resize if necessary + ## Hm. This should be done on a separate view? + + # redirect + pass + + # render + template = request.template_env.get_template( + 'mediagoblin/test_submit.html') + return Response( + template.render( + {'request': request, + 'image_form': image_form})) From bda3405342feb7f239ccaa2e7cebe76a48909309 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 18 Jul 2010 15:21:51 -0500 Subject: [PATCH 0005/2731] Still totally useless but at least it writes to the database --- mediagoblin/app.py | 2 +- mediagoblin/templates/mediagoblin/test_submit.html | 3 ++- mediagoblin/views.py | 8 +++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 7231b786..ef4feae3 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -64,7 +64,7 @@ class MediagoblinApp(object): def paste_app_factory(global_config, **kw): connection = pymongo.Connection() - db = kw.get('db_name', 'mediagoblin') + db = connection[kw.get('db_name', 'mediagoblin')] return MediagoblinApp( db, diff --git a/mediagoblin/templates/mediagoblin/test_submit.html b/mediagoblin/templates/mediagoblin/test_submit.html index 0d2fd258..bf91d26b 100644 --- a/mediagoblin/templates/mediagoblin/test_submit.html +++ b/mediagoblin/templates/mediagoblin/test_submit.html @@ -1,6 +1,7 @@ -
+ {% for field in image_form %} diff --git a/mediagoblin/views.py b/mediagoblin/views.py index ef0fddad..116237b7 100644 --- a/mediagoblin/views.py +++ b/mediagoblin/views.py @@ -1,3 +1,5 @@ +import datetime + from webob import Response, exc import wtforms @@ -17,7 +19,11 @@ def submit_test(request): image_form = ImageSubmitForm(request.POST) if request.method == 'POST' and image_form.validate(): # create entry and save in database - + work_id = request.app.db.works.insert( + {'title': image_form.title.data, + 'created': datetime.datetime.now(), + 'description': image_form.description.data}) + # save file to disk ## TODO From b61874b245a082ae77deef4b0948ddbfeed5a8b0 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 18 Jul 2010 15:59:23 -0500 Subject: [PATCH 0006/2731] Added session support w/ beaker --- mediagoblin/app.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index ef4feae3..f688b989 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -1,9 +1,10 @@ import sys import urllib -from webob import Request, exc +from beaker.middleware import SessionMiddleware import routes import pymongo +from webob import Request, exc from mediagoblin import routing, util @@ -58,6 +59,7 @@ class MediagoblinApp(object): request.app = self request.template_env = self.template_env request.urlgen = routes.URLGenerator(self.routing, environ) + request.session = request.environ['beaker.session'] return controller(request)(environ, start_response) @@ -66,6 +68,11 @@ def paste_app_factory(global_config, **kw): connection = pymongo.Connection() db = connection[kw.get('db_name', 'mediagoblin')] - return MediagoblinApp( - db, - user_template_path=kw.get('local_templates')) + mgoblin_app = MediagoblinApp( + db, user_template_path=kw.get('local_templates')) + beakered_app = SessionMiddleware( + mgoblin_app, + {'session.type': 'file', + 'session.cookie_expires': True}) + + return beakered_app From c4d71564761aa5490bc911585bb5021be8c90b54 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 18 Jul 2010 17:59:40 -0500 Subject: [PATCH 0007/2731] beakered_app removed from the paste_app_factory. Deployers should wrap the app w/ beaker themselves --- mediagoblin/app.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index f688b989..1ae01686 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -70,9 +70,5 @@ def paste_app_factory(global_config, **kw): mgoblin_app = MediagoblinApp( db, user_template_path=kw.get('local_templates')) - beakered_app = SessionMiddleware( - mgoblin_app, - {'session.type': 'file', - 'session.cookie_expires': True}) - return beakered_app + return mgoblin_app From 0c04118b76ff087949afcb6e4213b82820f10642 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 24 Mar 2011 19:00:55 -0500 Subject: [PATCH 0008/2731] Adding requirements :) --- setup.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index c19e801f..617bb3f6 100644 --- a/setup.py +++ b/setup.py @@ -7,11 +7,22 @@ setup( version = "0.0.1", packages=find_packages(exclude=['ez_setup', 'examples', 'tests']), zip_safe=False, + # scripts and dependencies + install_requires = [ + 'setuptools', + 'PasteScript', + 'beaker', + 'routes', + 'pymongo', + 'webob', + 'wtforms', + ], + license = 'AGPLv3', author = 'Christopher Webber', author_email = 'cwebber@dustycloud.org', entry_points = """\ [paste.app_factory] - mediagoblin = mediagoblin.app:paste_app_factory + app = mediagoblin.app:paste_app_factory """, ) From 7846e40608be39369c43934646d120f4f79ebd17 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 24 Mar 2011 19:06:31 -0500 Subject: [PATCH 0009/2731] Commenting out beaker till we start using it :) --- mediagoblin/app.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 1ae01686..98f8bc1d 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -59,7 +59,10 @@ class MediagoblinApp(object): request.app = self request.template_env = self.template_env request.urlgen = routes.URLGenerator(self.routing, environ) - request.session = request.environ['beaker.session'] + + # Do we really want to load this via middleware? Maybe? + # let's comment it out till we start using it :) + #request.session = request.environ['beaker.session'] return controller(request)(environ, start_response) From 508775bd2360c441bde1045bc89abe4152e72650 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 24 Mar 2011 19:54:06 -0500 Subject: [PATCH 0010/2731] Requiring mongokit --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 617bb3f6..e6c784d2 100644 --- a/setup.py +++ b/setup.py @@ -14,6 +14,7 @@ setup( 'beaker', 'routes', 'pymongo', + 'mongokit', 'webob', 'wtforms', ], From d232e0f6be4be977634f1a2bbd39ca401dfb296d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 24 Mar 2011 20:19:25 -0500 Subject: [PATCH 0011/2731] Adding a skeletal models.py --- mediagoblin/models.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 mediagoblin/models.py diff --git a/mediagoblin/models.py b/mediagoblin/models.py new file mode 100644 index 00000000..3471ddc7 --- /dev/null +++ b/mediagoblin/models.py @@ -0,0 +1,32 @@ +from mongokit import Document, Set +import datetime + + +class MediaEntry(Document): + structure = { + 'title': unicode, + 'created': datetime.datetime, + 'description': unicode, + 'media_type': unicode, + 'media_data': dict, # extra data relevant to this media_type + 'plugin_data': dict, # plugins can dump stuff here. + 'file_store': unicode, + 'tags': Set(unicode)} + + +class User(Document): + structure = { + 'username': unicode, + 'created': datetime.datetime, + 'plugin_data': dict, # plugins can dump stuff here. + 'pw_hash': unicode, + } + + +REGISTER_MODELS = [MediaEntry, User] + +def register_models(connection): + """ + Register all models in REGISTER_MODELS with this connection. + """ + pass From db61f7d15255b7f9bf697108be2175018a780810 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 25 Mar 2011 21:27:52 -0500 Subject: [PATCH 0012/2731] A simple register_modules helper function. --- mediagoblin/models.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mediagoblin/models.py b/mediagoblin/models.py index 3471ddc7..07d841bf 100644 --- a/mediagoblin/models.py +++ b/mediagoblin/models.py @@ -29,4 +29,5 @@ def register_models(connection): """ Register all models in REGISTER_MODELS with this connection. """ - pass + connection.register(REGISTER_MODELS) + From fc9bb821eaac0f615eee690cd2473360ed6cbb64 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 26 Mar 2011 09:10:04 -0500 Subject: [PATCH 0013/2731] required_values, default_values! For the only two models we have. --- mediagoblin/models.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/mediagoblin/models.py b/mediagoblin/models.py index 07d841bf..b14ada9f 100644 --- a/mediagoblin/models.py +++ b/mediagoblin/models.py @@ -13,6 +13,13 @@ class MediaEntry(Document): 'file_store': unicode, 'tags': Set(unicode)} + required_fields = [ + 'title', 'created', + 'media_type', 'file_store'] + + default_values = { + 'date_creation':datetime.datetime.utcnow} + class User(Document): structure = { @@ -22,6 +29,12 @@ class User(Document): 'pw_hash': unicode, } + required_fields = ['username', 'created', 'pw_hash'] + + default_values = { + 'date_creation':datetime.datetime.utcnow} + + REGISTER_MODELS = [MediaEntry, User] From 4329be147b3ee0f60e3c17a6c95845cac347fa28 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 26 Mar 2011 11:45:11 -0500 Subject: [PATCH 0014/2731] date_creation should be created --- mediagoblin/models.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mediagoblin/models.py b/mediagoblin/models.py index b14ada9f..6ae7d6f9 100644 --- a/mediagoblin/models.py +++ b/mediagoblin/models.py @@ -1,4 +1,5 @@ from mongokit import Document, Set + import datetime @@ -18,7 +19,7 @@ class MediaEntry(Document): 'media_type', 'file_store'] default_values = { - 'date_creation':datetime.datetime.utcnow} + 'created': datetime.datetime.utcnow} class User(Document): @@ -32,12 +33,12 @@ class User(Document): required_fields = ['username', 'created', 'pw_hash'] default_values = { - 'date_creation':datetime.datetime.utcnow} - + 'created': datetime.datetime.utcnow} REGISTER_MODELS = [MediaEntry, User] + def register_models(connection): """ Register all models in REGISTER_MODELS with this connection. From 2b4e236ac34a2d11dde748d514b31428f9a0fa2b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 26 Mar 2011 13:03:32 -0500 Subject: [PATCH 0015/2731] Properly load in the database and register the connection with the models --- mediagoblin/app.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 98f8bc1d..992d641b 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -3,10 +3,10 @@ import urllib from beaker.middleware import SessionMiddleware import routes -import pymongo +import mongokit from webob import Request, exc -from mediagoblin import routing, util +from mediagoblin import routing, util, models class Error(Exception): pass @@ -25,11 +25,14 @@ class MediagoblinApp(object): """ Really basic wsgi app using routes and WebOb. """ - def __init__(self, database, user_template_path=None): + def __init__(self, connection, database_path, user_template_path=None): self.template_env = util.get_jinja_env(user_template_path) - self.db = database + self.connection = connection + self.db = connection['database_path'] self.routing = routing.get_mapper() + models.register_models(connection) + def __call__(self, environ, start_response): request = Request(environ) path_info = request.path_info @@ -59,6 +62,7 @@ class MediagoblinApp(object): request.app = self request.template_env = self.template_env request.urlgen = routes.URLGenerator(self.routing, environ) + request.db = self.db # Do we really want to load this via middleware? Maybe? # let's comment it out till we start using it :) @@ -68,10 +72,11 @@ class MediagoblinApp(object): def paste_app_factory(global_config, **kw): - connection = pymongo.Connection() - db = connection[kw.get('db_name', 'mediagoblin')] + connection = mongokit.Connection( + kw.get('db_host'), kw.get('db_port')) mgoblin_app = MediagoblinApp( - db, user_template_path=kw.get('local_templates')) + connection, kw.get('db_name', 'mediagoblin'), + user_template_path=kw.get('local_templates')) return mgoblin_app From 2e30e3690adf21ba0612bb863b27e65bbb2f8863 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 27 Mar 2011 17:29:59 -0500 Subject: [PATCH 0016/2731] Ignore mediagoblin egg-info --- .gitignore | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 0ed4802a..7db77c06 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,6 @@ develop-eggs/ build/ eggs/ .installed.cfg -wsgit.egg-info +mediagoblin.egg-info *.pyc -*.pyo \ No newline at end of file +*.pyo From 65d7374c3752105c66ba8d55fa0943ad66c47b0e Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 27 Mar 2011 17:30:42 -0500 Subject: [PATCH 0017/2731] erp, connection[database_path] not connection['database_path'] obviously :P --- mediagoblin/app.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 992d641b..478b25d6 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -28,7 +28,7 @@ class MediagoblinApp(object): def __init__(self, connection, database_path, user_template_path=None): self.template_env = util.get_jinja_env(user_template_path) self.connection = connection - self.db = connection['database_path'] + self.db = connection[database_path] self.routing = routing.get_mapper() models.register_models(connection) From 6f86cfe95c9de40a1e0baaf2b19f3377a1db5f32 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 27 Mar 2011 17:31:18 -0500 Subject: [PATCH 0018/2731] __collection__ should be auto-defined as media_entries --- mediagoblin/models.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mediagoblin/models.py b/mediagoblin/models.py index 6ae7d6f9..41f4fb04 100644 --- a/mediagoblin/models.py +++ b/mediagoblin/models.py @@ -4,6 +4,8 @@ import datetime class MediaEntry(Document): + __collection__ = 'media_entries' + structure = { 'title': unicode, 'created': datetime.datetime, @@ -12,7 +14,8 @@ class MediaEntry(Document): 'media_data': dict, # extra data relevant to this media_type 'plugin_data': dict, # plugins can dump stuff here. 'file_store': unicode, - 'tags': Set(unicode)} + 'attachments': [dict], + 'tags': [unicode]} required_fields = [ 'title', 'created', @@ -20,7 +23,9 @@ class MediaEntry(Document): default_values = { 'created': datetime.datetime.utcnow} - + + def main_mediafile(self): + pass class User(Document): structure = { From ef7cdac5b97374418ef94891981539ea07216fe4 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 27 Mar 2011 17:32:27 -0500 Subject: [PATCH 0019/2731] A testing submit view that doesn't work but is getting closer to working. --- .../templates/mediagoblin/test_submit.html | 9 +++------ .../templates/mediagoblin/utils/wtforms.html | 18 +++++++++++++++++ mediagoblin/views.py | 20 +++++++++++++++---- 3 files changed, 37 insertions(+), 10 deletions(-) create mode 100644 mediagoblin/templates/mediagoblin/utils/wtforms.html diff --git a/mediagoblin/templates/mediagoblin/test_submit.html b/mediagoblin/templates/mediagoblin/test_submit.html index bf91d26b..2fae634c 100644 --- a/mediagoblin/templates/mediagoblin/test_submit.html +++ b/mediagoblin/templates/mediagoblin/test_submit.html @@ -1,14 +1,11 @@ +{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} +
- {% for field in image_form %} - - - - - {% endfor %} + {{ wtforms_util.render_table(image_form) }} diff --git a/mediagoblin/templates/mediagoblin/utils/wtforms.html b/mediagoblin/templates/mediagoblin/utils/wtforms.html new file mode 100644 index 00000000..641f51d5 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/utils/wtforms.html @@ -0,0 +1,18 @@ +{% macro render_table(form) -%} + {% for field in form %} + + + + + {% endfor %} +{%- endmacro %} diff --git a/mediagoblin/views.py b/mediagoblin/views.py index 116237b7..eca40203 100644 --- a/mediagoblin/views.py +++ b/mediagoblin/views.py @@ -3,6 +3,8 @@ import datetime from webob import Response, exc import wtforms +from mediagoblin import models + def root_view(request): return Response("This is the root") @@ -19,13 +21,21 @@ def submit_test(request): image_form = ImageSubmitForm(request.POST) if request.method == 'POST' and image_form.validate(): # create entry and save in database - work_id = request.app.db.works.insert( - {'title': image_form.title.data, - 'created': datetime.datetime.now(), - 'description': image_form.description.data}) + + entry = request.db.MediaEntry() + entry['title'] = request.POST['title'] + entry['description'] = request.POST.get(['description'])o + entry['media_type'] = u'image' + + # TODO this does NOT look save, we should clean the filename somenow? + entry['file_store'] = request.POST['file'].filename + + entry.save(validate=True) # save file to disk ## TODO + #open('/tmp/read_file.png', 'wb').write(request.POST['file'].file.read()) + # resize if necessary ## Hm. This should be done on a separate view? @@ -33,6 +43,8 @@ def submit_test(request): # redirect pass + + # render template = request.template_env.get_template( 'mediagoblin/test_submit.html') From e5572c607726599ccbf66a40194b96d12584f38f Mon Sep 17 00:00:00 2001 From: Matt Lee Date: Sun, 27 Mar 2011 18:47:23 -0400 Subject: [PATCH 0020/2731] Added copyright notices --- mediagoblin/__init__.py | 16 ++++++++++++++++ mediagoblin/app.py | 16 ++++++++++++++++ mediagoblin/models.py | 16 ++++++++++++++++ mediagoblin/routing.py | 16 ++++++++++++++++ mediagoblin/util.py | 16 ++++++++++++++++ mediagoblin/views.py | 16 ++++++++++++++++ setup.py | 18 +++++++++++++++++- 7 files changed, 113 insertions(+), 1 deletion(-) diff --git a/mediagoblin/__init__.py b/mediagoblin/__init__.py index e69de29b..033b9173 100644 --- a/mediagoblin/__init__.py +++ b/mediagoblin/__init__.py @@ -0,0 +1,16 @@ +# GNU Mediagoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 478b25d6..632a0c25 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -1,3 +1,19 @@ +# GNU Mediagoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + import sys import urllib diff --git a/mediagoblin/models.py b/mediagoblin/models.py index 41f4fb04..c05fe3de 100644 --- a/mediagoblin/models.py +++ b/mediagoblin/models.py @@ -1,3 +1,19 @@ +# GNU Mediagoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + from mongokit import Document, Set import datetime diff --git a/mediagoblin/routing.py b/mediagoblin/routing.py index 0b345371..c60f121c 100644 --- a/mediagoblin/routing.py +++ b/mediagoblin/routing.py @@ -1,3 +1,19 @@ +# GNU Mediagoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + from routes import Mapper def get_mapper(): diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 2af9b380..578261b9 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -1,3 +1,19 @@ +# GNU Mediagoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + import jinja2 def get_jinja_env(user_template_path=None): diff --git a/mediagoblin/views.py b/mediagoblin/views.py index eca40203..e286e950 100644 --- a/mediagoblin/views.py +++ b/mediagoblin/views.py @@ -1,3 +1,19 @@ +# GNU Mediagoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + import datetime from webob import Response, exc diff --git a/setup.py b/setup.py index e6c784d2..1f9f852d 100644 --- a/setup.py +++ b/setup.py @@ -1,3 +1,19 @@ +# GNU Mediagoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + from setuptools import setup, find_packages import sys @@ -21,7 +37,7 @@ setup( license = 'AGPLv3', author = 'Christopher Webber', - author_email = 'cwebber@dustycloud.org', + author_email = 'cwebber@gnu.org', entry_points = """\ [paste.app_factory] app = mediagoblin.app:paste_app_factory From cf99711dcd83f96646ea55a6e13324191e5b268a Mon Sep 17 00:00:00 2001 From: Matt Lee Date: Sun, 27 Mar 2011 18:48:15 -0400 Subject: [PATCH 0021/2731] Added copying and authors files --- AUTHORS | 0 COPYING | 661 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 661 insertions(+) create mode 100644 AUTHORS create mode 100644 COPYING diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 00000000..e69de29b diff --git a/COPYING b/COPYING new file mode 100644 index 00000000..dba13ed2 --- /dev/null +++ b/COPYING @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. From 869704d6502da17a8f2062978f82cc82af68cdc6 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 27 Mar 2011 23:25:50 -0500 Subject: [PATCH 0022/2731] A semi-verbose braindump of what I think GNU MediaGoblin will use / look like / be. --- READMEish.org | 188 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 READMEish.org diff --git a/READMEish.org b/READMEish.org new file mode 100644 index 00000000..7f40a23f --- /dev/null +++ b/READMEish.org @@ -0,0 +1,188 @@ +GNU MediaGoblin + +* About + +What is MediaGoblin? I'm shooting for: + + - Initially, a place to store all your photos that's as awesome as, + more awesome than, existing proprietary solutions + - Later, a place for all sorts of media, such as video, music, etc + hosting. + - Federated, like statusnet/ostatus (we should use ostatus, in fact!) + - Customizable + - A place for people to collaborate and show off original and derived + creations + - Free, as in freedom. Under the GNU AGPL, v3 or later. Encourages + free formats and free licensing for content, too. + +Wow! That's pretty ambitious. Hopefully we're cool enough to do it. +I think we can. + +It's also necessary, for multiple reasons. Centralization and +proprietization of media on the internet is a serious problem and +makes the web go from a system of extreme resilience to a system +of frightening fragility. People should be able to own their data. +Etc. If you're reading this, chances are you already agree though. :) + +* Milestones + +Excepting the first, not necessarily in this order. + +** Basic image hosting +** Multi-media hosting (including video and audio) +** API(s) +** Federation + +Maybe this is 0.2 :) + +** Plugin system + +* Technology + +I have a pretty specific set of tools that I expect to use in this +project. Those are: + + - *[[http://python.org/][Python]]:* because I love, and know well, the language + - *[[http://www.mongodb.org/][MongoDB]]:* a "document database". Because it's extremely flexible + (and scales up well, but I guess not down well) + - *[[http://namlook.github.com/mongokit/][MongoKit]]:* a lightweight ORM for mongodb. Helps us define our + structures better, does schema validation, schema evolution, and + helps make things more fun and pythonic. + - *[[http://jinja.pocoo.org/docs/][Jinja2]]:* for templating. Pretty much django templates++ (wow, I + can actually pass arguments into method calls instead of tediously + writing custom tags!) + - *[[http://wtforms.simplecodes.com/][WTForms]]:* for form handling, validation, abstraction. Almost just + like Django's templates, + - *[[http://pythonpaste.org/webob/][WebOb]]:* gives nice request/response objects (also somewhat djangoish) + - *[[http://pythonpaste.org/deploy/][Paste Deploy]] and [[http://pythonpaste.org/script/][Paste Script]]:* as the default way of configuring + and launching the application. Since MediaGoblin will be fairly + wsgi minimalist though, you can probably use other ways to launch + it, though this will be the default. + - *[[http://routes.groovie.org/][Routes]]:* for URL routing. It works well enough. + - *[[http://jquery.com/][JQuery]]:* for all sorts of things on the javascript end of things, + for all sorts of reasons. + - *[[http://beaker.groovie.org/][Beaker]]:* for sessions, because that seems like it's generally + considered the way to go I guess. + - *[[http://somethingaboutorange.com/mrl/projects/nose/1.0.0/][nose]]:* for unit tests, because it makes testing a bit nicer. + - *[[http://celeryproject.org/][Celery]]:* for task queueing (think resizing images, encoding + video) because some people like it, and even the people I know who + don't don't seem to know of anything better :) + - *[[http://www.rabbitmq.com/][RabbitMQ]]:* for sending tasks to celery, because I guess that's + what most people do. Might be optional, might also let people use + MongoDB for this if they want. + +** Why python + +Because I (Chris Webber) know Python, love Python, am capable of +actually making this thing happen in Python (I've worked on a lot of +large free software web applications before in Python, including +[[http://mirocommunity.org/][Miro Community]], the [[http://miroguide.org][Miro Guide]], a large portion of +[[http://creativecommons.org/][Creative Commons' site]], and a whole bunch of things while working at +[[http://www.imagescape.com/][Imaginary Landscape]]). I know Python, I can make this happen in +Python, me starting a project like this makes sense if it's done in +Python. + +You might say that PHP is way more deployable, that rails has way more +cool developers riding around on fixie bikes, and all of those things +are true, but I know Python, like Python, and think that Python is +pretty great. I do think that deployment in Python is not as good as +with PHP, but I think the days of shared hosting are (thankfully) +coming to an end, and will probably be replaced by cheap virtual +machines spun up on the fly for people who want that sort of stuff, +and Python will be a huge part of that future, maybe even more than +PHP will. The deployment tools are getting better. Maybe we can use +something like Silver Lining. Maybe we can just distribute as .debs +or .rpms. We'll figure it out. + +But if I'm starting this project, which I am, it's gonna be in Python. + +** Why mongodb + +In case you were wondering, I am not a NOSQL fanboy, I do not go +around telling people that MongoDB is web scale. Actually my choice +for MongoDB isn't scalability, though scaling up really nicely is a +pretty good feature and sets us up well in case large volume sites +eventually do use MediaGoblin. But there's another side of +scalability, and that's scaling down, which is important for +federation, maybe even more important than scaling up in an ideal +universe where everyone ran servers out of their own housing. As a +memory-mapped database, MongoDB is pretty hungry, so actually I spent +a lot of time debating whether the inability to scale down as nicely +as something like SQL has with sqlite meant that it was out. + +But I decided in the end that I really want MongoDB, not for +scalability, but for flexibility. Schema evolution pains in SQL are +almost enough reason for me to want MongoDB, but not quite. The real +reason is because I want the ability to eventually handle multiple +media types through MediaGoblin, and also allow for plugins, without +the rigidity of tables making that difficult. In other words, +something like: + +#+BEGIN_SRC javascript +{"title": "Me talking until you are bored", + "description": "blah blah blah", + "media_type": "audio", + "media_data": { + "length": "2:30", + "codec": "OGG Vorbis"}, + "plugin_data": { + "licensing": { + "license": "http://creativecommons.org/licenses/by-sa/3.0/"}}} +#+END_SRC + +Being able to just dump media-specific information in a media_data +hashtable is pretty great, and even better is having a plugin system +where you can just let plugins have their own entire key-value space +cleanly inside the document that doesn't interfere with anyone else's +stuff. If we were to let plugins to deposit their own information +inside the database, either we'd let plugins create their own tables +which makes SQL migrations even harder than they already are, or we'd +probably end up creating a table with a column for key, a column for +value, and a column for type in one huge table called "plugin_data" or +something similar. (Yo dawg, I heard you liked plugins, so I put a +database in your database so you can query while you query.) Gross. + +I also don't want things to be too lose so that we forget or lose the +structure of things, and that's one reason why I want to use MongoKit, +because we can cleanly define a much structure as we want and verify +that documents match that structure generally without adding too much +bloat or overhead (mongokit is a pretty lightweight wrapper and +doesn't inject extra mongokit-specific stuff into the database, which +is nice and nicer than many other ORMs in that way). + +** Why wsgi minimalism / Why not Django + +If you notice in the technology list above, I list a lot of components +that are very [[http://www.djangoproject.com/][Django-like]], but not actually Django components. What +can I say, I really like a lot of the ideas in Django! Which leads to +the question: why not just use Django? + +While I really like Django's ideas and a lot of its components, I also +feel that most of the best ideas in Django I want have been +implemented as good or even better outside of Django. I could just +use Django and replace the templating system with Jinja2, and the form +system with wtforms, and the database with MongoDB and MongoKit, but +at that point, how much of Django is really left? + +I also am sometimes saddened and irritated by how coupled all of +Django's components are. Loosely coupled yes, but still coupled. +WSGI has done a good job of providing a base layer for running +applications on and [[http://pythonpaste.org/webob/do-it-yourself.html][if you know how to do it yourself]] it's not hard or +many lines of code at all to bind them together without any framework +at all (not even say [[http://pylonshq.com/][Pylons]], [[http://docs.pylonsproject.org/projects/pyramid/dev/][Pyramid]], or [[http://flask.pocoo.org/][Flask]] which I think are still +great projects, especially for people who want this sort of thing but +have no idea how to get started). And even at this already really +early stage of writing MediaGoblin, that glue work is mostly done. + +Not to say I don't think Django isn't great for a lot of things. For +a lot of stuff, it's still the best, but not for MediaGoblin, I think. + +One thing that Django does super well though is documentation. It +still has some faults, but even with those considered I can hardly +think of any other project in Python that has as nice of documentation +as Django. It may be worth +[[http://pycon.blip.tv/file/4881071/][learning some lessons on documentation from Django]], on that note. + +I'd really like to have a good, thorough hacking-howto and +deployment-howto, especially in the former making some notes on how to +make it easier for Django hackers to get started. From ebc4ab71a2d29d72474e70c42700efa90e900aab Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 27 Mar 2011 23:38:27 -0500 Subject: [PATCH 0023/2731] HTML export of the READMEish braindump. --- READMEish.html | 426 +++++++++++++++++++++++++++++++++++++++++++++++++ READMEish.org | 4 + 2 files changed, 430 insertions(+) create mode 100644 READMEish.html diff --git a/READMEish.html b/READMEish.html new file mode 100644 index 00000000..9981da11 --- /dev/null +++ b/READMEish.html @@ -0,0 +1,426 @@ + + + + +GNU MediaGoblin + + + + + + + + + + + +
+ +

GNU MediaGoblin

+ + + + +
+

1 About

+
+ + +

+What is MediaGoblin? I'm shooting for: +

+
    +
  • Initially, a place to store all your photos that's as awesome as, + more awesome than, existing proprietary solutions +
  • +
  • Later, a place for all sorts of media, such as video, music, etc + hosting. +
  • +
  • Federated, like statusnet/ostatus (we should use ostatus, in fact!) +
  • +
  • Customizable +
  • +
  • A place for people to collaborate and show off original and derived + creations +
  • +
  • Free, as in freedom. Under the GNU AGPL, v3 or later. Encourages + free formats and free licensing for content, too. +
  • +
+ +

+Wow! That's pretty ambitious. Hopefully we're cool enough to do it. +I think we can. +

+

+It's also necessary, for multiple reasons. Centralization and +proprietization of media on the internet is a serious problem and +makes the web go from a system of extreme resilience to a system +of frightening fragility. People should be able to own their data. +Etc. If you're reading this, chances are you already agree though. :) +

+
+ +
+ +
+

2 Milestones

+
+ + +

+Excepting the first, not necessarily in this order. +

+ +
+ +
+

2.1 Basic image hosting

+
+ +
+ +
+ +
+

2.2 Multi-media hosting (including video and audio)

+
+ +
+ +
+ +
+

2.3 API(s)

+
+ +
+ +
+ +
+

2.4 Federation

+
+ + +

+Maybe this is 0.2 :) +

+
+ +
+ +
+

2.5 Plugin system

+
+ + +
+
+ +
+ +
+

3 Technology

+
+ + +

+I have a pretty specific set of tools that I expect to use in this +project. Those are: +

+
    +
  • Python: because I love, and know well, the language +
  • +
  • MongoDB: a "document database". Because it's extremely flexible + (and scales up well, but I guess not down well) +
  • +
  • MongoKit: a lightweight ORM for mongodb. Helps us define our + structures better, does schema validation, schema evolution, and + helps make things more fun and pythonic. +
  • +
  • Jinja2: for templating. Pretty much django templates++ (wow, I + can actually pass arguments into method calls instead of tediously + writing custom tags!) +
  • +
  • WTForms: for form handling, validation, abstraction. Almost just + like Django's templates, +
  • +
  • WebOb: gives nice request/response objects (also somewhat djangoish) +
  • +
  • Paste Deploy and Paste Script: as the default way of configuring + and launching the application. Since MediaGoblin will be fairly + wsgi minimalist though, you can probably use other ways to launch + it, though this will be the default. +
  • +
  • Routes: for URL routing. It works well enough. +
  • +
  • JQuery: for all sorts of things on the javascript end of things, + for all sorts of reasons. +
  • +
  • Beaker: for sessions, because that seems like it's generally + considered the way to go I guess. +
  • +
  • nose: for unit tests, because it makes testing a bit nicer. +
  • +
  • Celery: for task queueing (think resizing images, encoding + video) because some people like it, and even the people I know who + don't don't seem to know of anything better :) +
  • +
  • RabbitMQ: for sending tasks to celery, because I guess that's + what most people do. Might be optional, might also let people use + MongoDB for this if they want. +
  • +
+ + +
+ +
+

3.1 Why python

+
+ + +

+Because I (Chris Webber) know Python, love Python, am capable of +actually making this thing happen in Python (I've worked on a lot of +large free software web applications before in Python, including +Miro Community, the Miro Guide, a large portion of +Creative Commons' site, and a whole bunch of things while working at +Imaginary Landscape). I know Python, I can make this happen in +Python, me starting a project like this makes sense if it's done in +Python. +

+

+You might say that PHP is way more deployable, that rails has way more +cool developers riding around on fixie bikes, and all of those things +are true, but I know Python, like Python, and think that Python is +pretty great. I do think that deployment in Python is not as good as +with PHP, but I think the days of shared hosting are (thankfully) +coming to an end, and will probably be replaced by cheap virtual +machines spun up on the fly for people who want that sort of stuff, +and Python will be a huge part of that future, maybe even more than +PHP will. The deployment tools are getting better. Maybe we can use +something like Silver Lining. Maybe we can just distribute as .debs +or .rpms. We'll figure it out. +

+

+But if I'm starting this project, which I am, it's gonna be in Python. +

+
+ +
+ +
+

3.2 Why mongodb

+
+ + +

+In case you were wondering, I am not a NOSQL fanboy, I do not go +around telling people that MongoDB is web scale. Actually my choice +for MongoDB isn't scalability, though scaling up really nicely is a +pretty good feature and sets us up well in case large volume sites +eventually do use MediaGoblin. But there's another side of +scalability, and that's scaling down, which is important for +federation, maybe even more important than scaling up in an ideal +universe where everyone ran servers out of their own housing. As a +memory-mapped database, MongoDB is pretty hungry, so actually I spent +a lot of time debating whether the inability to scale down as nicely +as something like SQL has with sqlite meant that it was out. +

+

+But I decided in the end that I really want MongoDB, not for +scalability, but for flexibility. Schema evolution pains in SQL are +almost enough reason for me to want MongoDB, but not quite. The real +reason is because I want the ability to eventually handle multiple +media types through MediaGoblin, and also allow for plugins, without +the rigidity of tables making that difficult. In other words, +something like: +

+ + + +
{"title": "Me talking until you are bored",
+ "description": "blah blah blah",
+ "media_type": "audio",
+ "media_data": {
+     "length": "2:30",
+     "codec": "OGG Vorbis"},
+ "plugin_data": {
+     "licensing": {
+         "license": "http://creativecommons.org/licenses/by-sa/3.0/"}}}
+
+ + + +

+Being able to just dump media-specific information in a media_data +hashtable is pretty great, and even better is having a plugin system +where you can just let plugins have their own entire key-value space +cleanly inside the document that doesn't interfere with anyone else's +stuff. If we were to let plugins to deposit their own information +inside the database, either we'd let plugins create their own tables +which makes SQL migrations even harder than they already are, or we'd +probably end up creating a table with a column for key, a column for +value, and a column for type in one huge table called "plugin_data" or +something similar. (Yo dawg, I heard you liked plugins, so I put a +database in your database so you can query while you query.) Gross. +

+

+I also don't want things to be too lose so that we forget or lose the +structure of things, and that's one reason why I want to use MongoKit, +because we can cleanly define a much structure as we want and verify +that documents match that structure generally without adding too much +bloat or overhead (mongokit is a pretty lightweight wrapper and +doesn't inject extra mongokit-specific stuff into the database, which +is nice and nicer than many other ORMs in that way). +

+
+ +
+ +
+

3.3 Why wsgi minimalism / Why not Django

+
+ + +

+If you notice in the technology list above, I list a lot of components +that are very Django-like, but not actually Django components. What +can I say, I really like a lot of the ideas in Django! Which leads to +the question: why not just use Django? +

+

+While I really like Django's ideas and a lot of its components, I also +feel that most of the best ideas in Django I want have been +implemented as good or even better outside of Django. I could just +use Django and replace the templating system with Jinja2, and the form +system with wtforms, and the database with MongoDB and MongoKit, but +at that point, how much of Django is really left? +

+

+I also am sometimes saddened and irritated by how coupled all of +Django's components are. Loosely coupled yes, but still coupled. +WSGI has done a good job of providing a base layer for running +applications on and if you know how to do it yourself it's not hard or +many lines of code at all to bind them together without any framework +at all (not even say Pylons, Pyramid, or Flask which I think are still +great projects, especially for people who want this sort of thing but +have no idea how to get started). And even at this already really +early stage of writing MediaGoblin, that glue work is mostly done. +

+

+Not to say I don't think Django isn't great for a lot of things. For +a lot of stuff, it's still the best, but not for MediaGoblin, I think. +

+

+One thing that Django does super well though is documentation. It +still has some faults, but even with those considered I can hardly +think of any other project in Python that has as nice of documentation +as Django. It may be worth +learning some lessons on documentation from Django, on that note. +

+

+I'd really like to have a good, thorough hacking-howto and +deployment-howto, especially in the former making some notes on how to +make it easier for Django hackers to get started. +

+
+
+
+

Author: Christopher Allan Webber

+

Org version 7.5 with Emacs version 24

+Validate XHTML 1.0 +
+
+ + diff --git a/READMEish.org b/READMEish.org index 7f40a23f..c4e95122 100644 --- a/READMEish.org +++ b/READMEish.org @@ -1,3 +1,7 @@ +#+latex_header: \documentclass[12pt]{article} +#+latex_header: \usepackage[margin=1in]{geometry} +#+OPTIONS: ^:nil + GNU MediaGoblin * About From f7294dd96138b26830888d0b77d8de8ad6d1a320 Mon Sep 17 00:00:00 2001 From: Matt Lee Date: Mon, 28 Mar 2011 10:28:10 -0400 Subject: [PATCH 0024/2731] Added catalogue number --- FOO300 | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 FOO300 diff --git a/FOO300 b/FOO300 new file mode 100644 index 00000000..0acf17a8 --- /dev/null +++ b/FOO300 @@ -0,0 +1,15 @@ + +This certifies that GNU MediaGoblin has been given the designation of: + + FOO 300 + +In the Foo Communications ("FooCorp") catalogue of permanent record. + +Signed: + + + + + Matt Lee + + Foo Communications, LLC \ No newline at end of file From 6755f50e8e073c651bf9f26824068396bc216405 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 2 Apr 2011 10:29:54 -0500 Subject: [PATCH 0025/2731] Basic authentication tools using py-bcrypt --- mediagoblin/auth/__init__.py | 0 mediagoblin/auth/lib.py | 66 ++++++++++++++++++++++++++++++++++++ setup.py | 1 + 3 files changed, 67 insertions(+) create mode 100644 mediagoblin/auth/__init__.py create mode 100644 mediagoblin/auth/lib.py diff --git a/mediagoblin/auth/__init__.py b/mediagoblin/auth/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/mediagoblin/auth/lib.py b/mediagoblin/auth/lib.py new file mode 100644 index 00000000..29b955a0 --- /dev/null +++ b/mediagoblin/auth/lib.py @@ -0,0 +1,66 @@ +# GNU Mediagoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import os + +import bcrypt + + +def bcrypt_check_password(raw_pass, stored_hash, extra_salt=None): + """ + Check to see if this password matches. + + Args: + - raw_pass: user submitted password to check for authenticity. + - stored_hash: The hash of the raw password (and possibly extra + salt) to check against + - extra_salt: (optional) If this password is with stored with a + non-database extra salt (probably in the config file) for extra + security, factor this into the check. + + Returns: + True or False depending on success. + """ + if extra_salt: + raw_pass = u"%s:%s" % (extra_salt, raw_pass) + + hashed_pass = bcrypt.hashpw(raw_pass, stored_hash) + + # Reduce risk of timing attacks by hashing again with a random + # number (thx to zooko on this advice, which I hopefully + # incorporated right.) + # + # See also: + rand_salt = bcrypt.gensalt(5) + randplus_stored_hash = bcrypt.hashpw(stored_hash, rand_salt) + randplus_hashed_pass = bcrypt.hashpw(hashed_pass, rand_salt) + + return randplus_stored_hash == randplus_hashed_pass + + +def bcrypt_gen_password_hash(raw_pass, extra_salt=None): + """ + Generate a salt for this new password. + + Args: + - raw_pass: user submitted password + - extra_salt: (optional) If this password is with stored with a + non-database extra salt + """ + if extra_salt: + raw_pass = u"%s:%s" % (extra_salt, raw_pass) + + return bcrypt.hashpw(raw_pass, bcrypt.gensalt()) diff --git a/setup.py b/setup.py index 1f9f852d..5f386eef 100644 --- a/setup.py +++ b/setup.py @@ -33,6 +33,7 @@ setup( 'mongokit', 'webob', 'wtforms', + 'py-bcrypt', ], license = 'AGPLv3', From 4b5f4e8791064a154963a28e2614a2ce95eafc12 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 2 Apr 2011 10:48:34 -0500 Subject: [PATCH 0026/2731] Unit tests for our bcrypt auth stuff. Our first tests! --- mediagoblin/tests/__init__.py | 0 mediagoblin/tests/test_auth.py | 49 ++++++++++++++++++++++++++++++++++ setup.py | 2 ++ 3 files changed, 51 insertions(+) create mode 100644 mediagoblin/tests/__init__.py create mode 100644 mediagoblin/tests/test_auth.py diff --git a/mediagoblin/tests/__init__.py b/mediagoblin/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py new file mode 100644 index 00000000..5b66bb3c --- /dev/null +++ b/mediagoblin/tests/test_auth.py @@ -0,0 +1,49 @@ +# GNU Mediagoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +from mediagoblin.auth import lib as auth_lib + + +######################## +# Test bcrypt auth funcs +######################## + +def test_bcrypt_check_password(): + # Check known 'lollerskates' password against check function + assert auth_lib.bcrypt_check_password( + 'lollerskates', + '$2a$12$PXU03zfrVCujBhVeICTwtOaHTUs5FFwsscvSSTJkqx/2RQ0Lhy/nO') + + # Same thing, but with extra fake salt. + assert auth_lib.bcrypt_check_password( + 'lollerskates', + '$2a$12$ELVlnw3z1FMu6CEGs/L8XO8vl0BuWSlUHgh0rUrry9DUXGMUNWwl6', + '3><7R45417') + + +def test_bcrypt_gen_password_hash(): + pw = 'youwillneverguessthis' + + # Normal password hash generation, and check on that hash + hashed_pw = auth_lib.bcrypt_gen_password_hash(pw) + assert auth_lib.bcrypt_check_password( + pw, hashed_pw) + + # Same thing, extra salt. + hashed_pw = auth_lib.bcrypt_gen_password_hash(pw, '3><7R45417') + assert auth_lib.bcrypt_check_password( + pw, hashed_pw, '3><7R45417') diff --git a/setup.py b/setup.py index 5f386eef..f38b2b60 100644 --- a/setup.py +++ b/setup.py @@ -34,7 +34,9 @@ setup( 'webob', 'wtforms', 'py-bcrypt', + 'nose', ], + test_suite='nose.collector', license = 'AGPLv3', author = 'Christopher Webber', From 62615b8133fcb3ee961a0d81cb01f993b5b34c03 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 2 Apr 2011 11:20:36 -0500 Subject: [PATCH 0027/2731] Where did this o come from. --- mediagoblin/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/views.py b/mediagoblin/views.py index e286e950..37ed3a62 100644 --- a/mediagoblin/views.py +++ b/mediagoblin/views.py @@ -40,7 +40,7 @@ def submit_test(request): entry = request.db.MediaEntry() entry['title'] = request.POST['title'] - entry['description'] = request.POST.get(['description'])o + entry['description'] = request.POST.get(['description']) entry['media_type'] = u'image' # TODO this does NOT look save, we should clean the filename somenow? From db78002412c588273bc6177bc1c1b6ab6d1c37a0 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 2 Apr 2011 12:42:07 -0500 Subject: [PATCH 0028/2731] Also make sure the auth system successfully returns False when login failboats. --- mediagoblin/tests/test_auth.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py index 5b66bb3c..d7397723 100644 --- a/mediagoblin/tests/test_auth.py +++ b/mediagoblin/tests/test_auth.py @@ -28,9 +28,14 @@ def test_bcrypt_check_password(): 'lollerskates', '$2a$12$PXU03zfrVCujBhVeICTwtOaHTUs5FFwsscvSSTJkqx/2RQ0Lhy/nO') + assert not auth_lib.bcrypt_check_password( + 'notthepassword', + '$2a$12$PXU03zfrVCujBhVeICTwtOaHTUs5FFwsscvSSTJkqx/2RQ0Lhy/nO') + + # Same thing, but with extra fake salt. - assert auth_lib.bcrypt_check_password( - 'lollerskates', + assert not auth_lib.bcrypt_check_password( + 'notthepassword', '$2a$12$ELVlnw3z1FMu6CEGs/L8XO8vl0BuWSlUHgh0rUrry9DUXGMUNWwl6', '3><7R45417') @@ -42,8 +47,13 @@ def test_bcrypt_gen_password_hash(): hashed_pw = auth_lib.bcrypt_gen_password_hash(pw) assert auth_lib.bcrypt_check_password( pw, hashed_pw) + assert not auth_lib.bcrypt_check_password( + 'notthepassword', hashed_pw) + # Same thing, extra salt. hashed_pw = auth_lib.bcrypt_gen_password_hash(pw, '3><7R45417') assert auth_lib.bcrypt_check_password( pw, hashed_pw, '3><7R45417') + assert not auth_lib.bcrypt_check_password( + 'notthepassword', hashed_pw, '3><7R45417') From 73a6e206e679b707ba6b0e138b74e96b94da75f4 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Apr 2011 09:58:35 -0500 Subject: [PATCH 0029/2731] Put the User object officially in the 'users' document collection --- mediagoblin/models.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mediagoblin/models.py b/mediagoblin/models.py index c05fe3de..31ddf13c 100644 --- a/mediagoblin/models.py +++ b/mediagoblin/models.py @@ -44,6 +44,8 @@ class MediaEntry(Document): pass class User(Document): + __collection__ = 'users' + structure = { 'username': unicode, 'created': datetime.datetime, From e0bc23d3700cd37926e0d95057d7cd2daab69d78 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Apr 2011 13:33:45 -0500 Subject: [PATCH 0030/2731] We should return a unicode object in bcrypt_gen_password_hash --- mediagoblin/auth/lib.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/auth/lib.py b/mediagoblin/auth/lib.py index 29b955a0..8de67d14 100644 --- a/mediagoblin/auth/lib.py +++ b/mediagoblin/auth/lib.py @@ -63,4 +63,4 @@ def bcrypt_gen_password_hash(raw_pass, extra_salt=None): if extra_salt: raw_pass = u"%s:%s" % (extra_salt, raw_pass) - return bcrypt.hashpw(raw_pass, bcrypt.gensalt()) + return unicode(bcrypt.hashpw(raw_pass, bcrypt.gensalt())) From a0598d5cae99f1a8c01c01390dff5f1f94e12d0f Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Apr 2011 13:35:01 -0500 Subject: [PATCH 0031/2731] Base mediagoblin template, and register templates --- .../templates/mediagoblin/auth/register.html | 16 +++++++++ .../mediagoblin/auth/register_success.html | 8 +++++ mediagoblin/templates/mediagoblin/base.html | 36 +++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 mediagoblin/templates/mediagoblin/auth/register.html create mode 100644 mediagoblin/templates/mediagoblin/auth/register_success.html create mode 100644 mediagoblin/templates/mediagoblin/base.html diff --git a/mediagoblin/templates/mediagoblin/auth/register.html b/mediagoblin/templates/mediagoblin/auth/register.html new file mode 100644 index 00000000..6a051654 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/auth/register.html @@ -0,0 +1,16 @@ +{% extends "mediagoblin/base.html" %} + +{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} + +{% block mediagoblin_content %} + +
{{ field.label }}{{ field }}
{{field.label}} + {{field}} + {% if field.errors %} +
+
    + {% for error in field.errors %} +
  • {{error}}
  • + {% endfor %} +
+ {% endif %} +
+ {{ wtforms_util.render_table(register_form) }} + + + + +
+
+{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/auth/register_success.html b/mediagoblin/templates/mediagoblin/auth/register_success.html new file mode 100644 index 00000000..afbd57d7 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/auth/register_success.html @@ -0,0 +1,8 @@ +{% extends "mediagoblin/base.html" %} + +{% block mediagoblin_content %} +

+ Register successful! :D
+ You should get a confirmation email soon. +

+{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html new file mode 100644 index 00000000..d2ee7ff7 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/base.html @@ -0,0 +1,36 @@ + + + {% block title %}Mediagoblin{% endblock title %} + {# #} + + + + + {% block mediagoblin_body %} + {% block mediagoblin_header %} + + + + + + + + + +
{% block mediagoblin_header_title %}Mediagoblin Home{% endblock %}
+ {% block mediagoblin_header_subtitle %} + perhaps some subtitle here + {% endblock %}
+ {% endblock %} +
+ {% block mediagoblin_content %} + {% endblock mediagoblin_content %} +
+ {% endblock mediagoblin_body %} + + From 24181820162ad73823dcebf902c951200b90559b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Apr 2011 13:35:18 -0500 Subject: [PATCH 0032/2731] Registering almost works right :) --- mediagoblin/auth/forms.py | 37 +++++++++++++++++++ mediagoblin/auth/routing.py | 11 ++++++ mediagoblin/auth/views.py | 72 +++++++++++++++++++++++++++++++++++++ mediagoblin/models.py | 7 ++-- mediagoblin/routing.py | 7 ++++ 5 files changed, 132 insertions(+), 2 deletions(-) create mode 100644 mediagoblin/auth/forms.py create mode 100644 mediagoblin/auth/routing.py create mode 100644 mediagoblin/auth/views.py diff --git a/mediagoblin/auth/forms.py b/mediagoblin/auth/forms.py new file mode 100644 index 00000000..ce786002 --- /dev/null +++ b/mediagoblin/auth/forms.py @@ -0,0 +1,37 @@ +# GNU Mediagoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import wtforms + + +class RegistrationForm(wtforms.Form): + username = wtforms.TextField( + 'Username', + [wtforms.validators.Required(), + wtforms.validators.Length(min=3, max=30), + wtforms.validators.Regexp(r'^\w+$')]) + password = wtforms.TextField( + 'Password', + [wtforms.validators.Required(), + wtforms.validators.Length(min=8, max=30), + wtforms.validators.EqualTo('confirm_password')]) + confirm_password = wtforms.TextField( + 'Confirm password', + [wtforms.validators.Required()]) + email = wtforms.TextField( + 'Email address', + [wtforms.validators.Required(), + wtforms.validators.Email()]) diff --git a/mediagoblin/auth/routing.py b/mediagoblin/auth/routing.py new file mode 100644 index 00000000..5b604fdd --- /dev/null +++ b/mediagoblin/auth/routing.py @@ -0,0 +1,11 @@ +from routes.route import Route + +auth_routes = [ + Route('mediagoblin.auth.register', '/register/', + controller='mediagoblin.auth.views:register'), + Route('mediagoblin.auth.register_success', '/register/success/', + controller='mediagoblin.auth.views:register_success'), + Route('mediagoblin.auth.login', '/login/', + controller='mediagoblin.auth.views:login'), + Route('mediagoblin.auth.logout', '/logout/', + controller='mediagoblin.auth.views:logout')] diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py new file mode 100644 index 00000000..d970679b --- /dev/null +++ b/mediagoblin/auth/views.py @@ -0,0 +1,72 @@ +# GNU Mediagoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +from webob import Response, exc + +from mediagoblin.auth import lib as auth_lib +from mediagoblin.auth import forms as auth_forms + + +def register(request): + """ + Your classic registration view! + """ + register_form = auth_forms.RegistrationForm(request.POST) + + if request.method == 'POST' and register_form.validate(): + # TODO: Make sure the user doesn't exist already + users_with_username = \ + request.db.User.find({'username': request.POST['username']}).count() + + if users_with_username: + register_form.username.errors.append( + u'Sorry, a user with that name already exists.') + + else: + # Create the user + entry = request.db.User() + entry['username'] = request.POST['username'] + entry['email'] = request.POST['email'] + entry['pw_hash'] = auth_lib.bcrypt_gen_password_hash( + request.POST['password']) + entry.save(validate=True) + + # TODO: Send email authentication request + + # Redirect to register_success + return exc.HTTPTemporaryRedirect( + location=request.urlgen("mediagoblin.auth.register_success")) + + # render + template = request.template_env.get_template( + 'mediagoblin/auth/register.html') + return Response( + template.render( + {'request': request, + 'register_form': register_form})) + + +def register_success(request): + template = request.template_env.get_template( + 'mediagoblin/auth/register_success.html') + return Response( + template.render( + {'request': request})) + + +def login(): + pass diff --git a/mediagoblin/models.py b/mediagoblin/models.py index 31ddf13c..b1d63181 100644 --- a/mediagoblin/models.py +++ b/mediagoblin/models.py @@ -48,15 +48,18 @@ class User(Document): structure = { 'username': unicode, + 'email': unicode, 'created': datetime.datetime, 'plugin_data': dict, # plugins can dump stuff here. 'pw_hash': unicode, + 'email_verified': bool, } - required_fields = ['username', 'created', 'pw_hash'] + required_fields = ['username', 'created', 'pw_hash', 'email'] default_values = { - 'created': datetime.datetime.utcnow} + 'created': datetime.datetime.utcnow, + 'email_verified': False} REGISTER_MODELS = [MediaEntry, User] diff --git a/mediagoblin/routing.py b/mediagoblin/routing.py index c60f121c..f5b67f38 100644 --- a/mediagoblin/routing.py +++ b/mediagoblin/routing.py @@ -16,6 +16,9 @@ from routes import Mapper +from mediagoblin.auth.routing import auth_routes + + def get_mapper(): mapping = Mapper() mapping.minimization = False @@ -27,4 +30,8 @@ def get_mapper(): "test_submit", "/test_submit/", controller="mediagoblin.views:submit_test") + mapping.extend(auth_routes, '/auth') + return mapping + + From 73cb7b8efccd5f220de04005e3b933018f8c227c Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Apr 2011 14:58:51 -0500 Subject: [PATCH 0033/2731] Return an HTTPFound, not HTTPTemporaryRedirect --- mediagoblin/auth/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index d970679b..d60e9157 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -48,7 +48,7 @@ def register(request): # TODO: Send email authentication request # Redirect to register_success - return exc.HTTPTemporaryRedirect( + return exc.HTTPFound( location=request.urlgen("mediagoblin.auth.register_success")) # render From f5def6fe239f0f1b2dabfe122ca8b3b51aabb6d3 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Apr 2011 15:02:06 -0500 Subject: [PATCH 0034/2731] Use the passwordfield for password fields, obviously ;o --- mediagoblin/auth/forms.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mediagoblin/auth/forms.py b/mediagoblin/auth/forms.py index ce786002..86d82a61 100644 --- a/mediagoblin/auth/forms.py +++ b/mediagoblin/auth/forms.py @@ -23,12 +23,12 @@ class RegistrationForm(wtforms.Form): [wtforms.validators.Required(), wtforms.validators.Length(min=3, max=30), wtforms.validators.Regexp(r'^\w+$')]) - password = wtforms.TextField( + password = wtforms.PasswordField( 'Password', [wtforms.validators.Required(), - wtforms.validators.Length(min=8, max=30), + wtforms.validators.Length(min=6, max=30), wtforms.validators.EqualTo('confirm_password')]) - confirm_password = wtforms.TextField( + confirm_password = wtforms.PasswordField( 'Confirm password', [wtforms.validators.Required()]) email = wtforms.TextField( From c15c9843b452a1c6468f8c0d1b2f358eb31a1e10 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Apr 2011 15:31:16 -0500 Subject: [PATCH 0035/2731] Added a fake_login_attempt utility. --- mediagoblin/auth/lib.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/mediagoblin/auth/lib.py b/mediagoblin/auth/lib.py index 8de67d14..5db4982b 100644 --- a/mediagoblin/auth/lib.py +++ b/mediagoblin/auth/lib.py @@ -16,7 +16,7 @@ import os -import bcrypt +import random def bcrypt_check_password(raw_pass, stored_hash, extra_salt=None): @@ -64,3 +64,20 @@ def bcrypt_gen_password_hash(raw_pass, extra_salt=None): raw_pass = u"%s:%s" % (extra_salt, raw_pass) return unicode(bcrypt.hashpw(raw_pass, bcrypt.gensalt())) + + +def fake_login_attempt(): + """ + Pretend we're trying to login. + + Nothing actually happens here, we're just trying to take up some + time. + """ + rand_salt = bcrypt.gensalt(5) + + hashed_pass = bcrypt.hashpw(str(random.random()), rand_salt) + + randplus_stored_hash = bcrypt.hashpw(str(random.random()), rand_salt) + randplus_hashed_pass = bcrypt.hashpw(hashed_pass, rand_salt) + + randplus_stored_hash == randplus_hashed_pass From 692fd1c981afcfb75fdebe9018d5a63d6e94e461 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Apr 2011 16:32:01 -0500 Subject: [PATCH 0036/2731] starting to write login code --- mediagoblin/auth/views.py | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index d60e9157..cbf7c816 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -68,5 +68,39 @@ def register_success(request): {'request': request})) -def login(): - pass +def login(request): + login_form = auth_forms.LoginForm(request.POST) + + if request.method == 'POST' and login_form.validate(): + #try: + user = request.db.User.find_one( + {'username': request.POST['username']}) + + if user.check_login(request.POST['password']): + # set up login in session + request.session['user_id'] = unicode(user['_id']) + + import pdb + pdb.set_trace() + + + else: + # Prevent detecting who's on this system by testing login + # attempt timings + auth_lib.fake_login_attempt() + + # render + template = request.template_env.get_template( + 'mediagoblin/auth/login.html') + return Response( + template.render( + {'request': request, + 'login_form': login_form})) + + +def logout(request): + template = request.template_env.get_template( + 'mediagoblin/auth/logout.html') + return Response( + template.render( + {'request': request})) From 51479a1d22a15744fecb8eddb367ab1a8dce8328 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Apr 2011 16:37:15 -0500 Subject: [PATCH 0037/2731] Clarified documentation on fake_login_attempt and restored bcrypt import --- mediagoblin/auth/lib.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mediagoblin/auth/lib.py b/mediagoblin/auth/lib.py index 5db4982b..907ba200 100644 --- a/mediagoblin/auth/lib.py +++ b/mediagoblin/auth/lib.py @@ -15,9 +15,10 @@ # along with this program. If not, see . import os - import random +import bcrypt + def bcrypt_check_password(raw_pass, stored_hash, extra_salt=None): """ @@ -71,7 +72,9 @@ def fake_login_attempt(): Pretend we're trying to login. Nothing actually happens here, we're just trying to take up some - time. + time, approximately the same amount of time as + bcrypt_check_password, so as to avoid figuring out what users are + on the system by intentionally faking logins a bunch of times. """ rand_salt = bcrypt.gensalt(5) From 14ba9383de2ff03f2af9bf0595c7b8f1fd43ac7a Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Apr 2011 16:37:36 -0500 Subject: [PATCH 0038/2731] Use beaker from middleware, it's official. --- mediagoblin/app.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 632a0c25..cc8cec31 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -81,8 +81,7 @@ class MediagoblinApp(object): request.db = self.db # Do we really want to load this via middleware? Maybe? - # let's comment it out till we start using it :) - #request.session = request.environ['beaker.session'] + request.session = request.environ['beaker.session'] return controller(request)(environ, start_response) From 4ad5af85e20799eda5143120657e131e50aef41d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Apr 2011 16:38:13 -0500 Subject: [PATCH 0039/2731] Added a check_login command to User --- mediagoblin/models.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/mediagoblin/models.py b/mediagoblin/models.py index b1d63181..af10e795 100644 --- a/mediagoblin/models.py +++ b/mediagoblin/models.py @@ -14,9 +14,11 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +import datetime + from mongokit import Document, Set -import datetime +from mediagoblin.auth import lib as auth_lib class MediaEntry(Document): @@ -61,6 +63,13 @@ class User(Document): 'created': datetime.datetime.utcnow, 'email_verified': False} + def check_login(self, password): + """ + See if a user can login with this password + """ + return auth_lib.bcrypt_check_password( + password, self['pw_hash']) + REGISTER_MODELS = [MediaEntry, User] From a37767172b7c67dbc35211c9d57dc69d1b1c783f Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Apr 2011 17:05:30 -0500 Subject: [PATCH 0040/2731] Logins seem to work. --- mediagoblin/auth/forms.py | 10 ++++++++ mediagoblin/auth/views.py | 21 +++++++++++++---- .../templates/mediagoblin/auth/login.html | 23 +++++++++++++++++++ 3 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 mediagoblin/templates/mediagoblin/auth/login.html diff --git a/mediagoblin/auth/forms.py b/mediagoblin/auth/forms.py index 86d82a61..33403544 100644 --- a/mediagoblin/auth/forms.py +++ b/mediagoblin/auth/forms.py @@ -35,3 +35,13 @@ class RegistrationForm(wtforms.Form): 'Email address', [wtforms.validators.Required(), wtforms.validators.Email()]) + + +class LoginForm(wtforms.Form): + username = wtforms.TextField( + 'Username', + [wtforms.validators.Required(), + wtforms.validators.Regexp(r'^\w+$')]) + password = wtforms.PasswordField( + 'Password', + [wtforms.validators.Required()]) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index cbf7c816..16588a5b 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -69,8 +69,15 @@ def register_success(request): def login(request): + """ + Mediagoblin login view. + + If you provide the POST with 'next', it'll redirect to that view. + """ login_form = auth_forms.LoginForm(request.POST) + login_failed = False + if request.method == 'POST' and login_form.validate(): #try: user = request.db.User.find_one( @@ -79,15 +86,19 @@ def login(request): if user.check_login(request.POST['password']): # set up login in session request.session['user_id'] = unicode(user['_id']) + request.session.save() - import pdb - pdb.set_trace() - + if request.POST.has_key('next'): + return exc.HTTPFound(location=request.POST['next']) + else: + return exc.HTTPFound( + location=request.urlgen("index")) else: # Prevent detecting who's on this system by testing login # attempt timings auth_lib.fake_login_attempt() + login_failed = True # render template = request.template_env.get_template( @@ -95,7 +106,9 @@ def login(request): return Response( template.render( {'request': request, - 'login_form': login_form})) + 'login_form': login_form, + 'next': request.GET.get('next') or request.POST.get('next'), + 'login_failed': login_failed})) def logout(request): diff --git a/mediagoblin/templates/mediagoblin/auth/login.html b/mediagoblin/templates/mediagoblin/auth/login.html new file mode 100644 index 00000000..4e775f56 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/auth/login.html @@ -0,0 +1,23 @@ +{% extends "mediagoblin/base.html" %} + +{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} + +{% block mediagoblin_content %} +

Login:

+ +
+ + {% if login_failed %} +

Login failed!

+ {% endif %} + + + {{ wtforms_util.render_table(login_form) }} + + + + +
+
+{% endblock %} From b97232fa2f8f5fbf5c1999c348a3cae66acf4834 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Apr 2011 18:23:40 -0500 Subject: [PATCH 0041/2731] Working logout function --- mediagoblin/auth/views.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 16588a5b..71c2d7a9 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -112,8 +112,8 @@ def login(request): def logout(request): - template = request.template_env.get_template( - 'mediagoblin/auth/logout.html') - return Response( - template.render( - {'request': request})) + # Maybe deleting the user_id parameter would be enough? + request.session.delete() + + return exc.HTTPFound( + location=request.urlgen("index")) From d193896315ea3729759fa92e227c21073f4d4568 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Apr 2011 18:28:17 -0500 Subject: [PATCH 0042/2731] Also handle when there is no such user --- mediagoblin/auth/views.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 71c2d7a9..03c31576 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -79,11 +79,10 @@ def login(request): login_failed = False if request.method == 'POST' and login_form.validate(): - #try: user = request.db.User.find_one( {'username': request.POST['username']}) - if user.check_login(request.POST['password']): + if user and user.check_login(request.POST['password']): # set up login in session request.session['user_id'] = unicode(user['_id']) request.session.save() From b058cf15f0ef79fcc4d24f2952e5d55ff0be46cc Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Apr 2011 18:32:29 -0500 Subject: [PATCH 0043/2731] We should use one instead of find_one to really make sure there's only one such user in the database --- mediagoblin/auth/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 03c31576..d56dfa43 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -79,7 +79,7 @@ def login(request): login_failed = False if request.method == 'POST' and login_form.validate(): - user = request.db.User.find_one( + user = request.db.User.one( {'username': request.POST['username']}) if user and user.check_login(request.POST['password']): From 58dec5efe56d8affd7aa60f5d01a3c7f3d4fcbb4 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Apr 2011 18:34:05 -0500 Subject: [PATCH 0044/2731] Added setup_user_in_request --- mediagoblin/util.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 578261b9..5a56d432 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -15,6 +15,7 @@ # along with this program. If not, see . import jinja2 +import mongokit def get_jinja_env(user_template_path=None): if user_template_path: @@ -25,3 +26,27 @@ def get_jinja_env(user_template_path=None): loader = jinja2.PackageLoader('mediagoblin', 'templates') return jinja2.Environment(loader=loader, autoescape=True) + + +def setup_user_in_request(request): + """ + Examine a request and tack on a request.user parameter if that's + appropriate. + """ + if not request.session.has_key('user_id'): + return + + try: + user = request.db.User.one({'_id': request.session['user_id']}) + + if user: + request.user = user + else: + # Something's wrong... this user doesn't exist? Invalidate + # this session. + request.session.invalidate() + + except mongokit.MultipleResultsFound: + # Something's wrong... we shouldn't have multiple users with + # the same user id. Invalidate this session. + request.session.invalidate() From 5d6840a0107448550437ce2360dfc905797e47a7 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Apr 2011 18:35:52 -0500 Subject: [PATCH 0045/2731] We should always have a request.user object, even if None. --- mediagoblin/util.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 5a56d432..fe77a0d9 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -36,12 +36,12 @@ def setup_user_in_request(request): if not request.session.has_key('user_id'): return + user = None + try: user = request.db.User.one({'_id': request.session['user_id']}) - if user: - request.user = user - else: + if not user: # Something's wrong... this user doesn't exist? Invalidate # this session. request.session.invalidate() @@ -50,3 +50,5 @@ def setup_user_in_request(request): # Something's wrong... we shouldn't have multiple users with # the same user id. Invalidate this session. request.session.invalidate() + + request.user = user From a3fdcf5ce0fafe3ad50429a9a0870a40717ccb75 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Apr 2011 18:40:01 -0500 Subject: [PATCH 0046/2731] This should allow for request.user and show users logged in ... except it's not working? --- mediagoblin/app.py | 2 +- mediagoblin/templates/mediagoblin/base.html | 20 +++++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index cc8cec31..a9ae223c 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -79,9 +79,9 @@ class MediagoblinApp(object): request.template_env = self.template_env request.urlgen = routes.URLGenerator(self.routing, environ) request.db = self.db - # Do we really want to load this via middleware? Maybe? request.session = request.environ['beaker.session'] + util.setup_user_in_request(request) return controller(request)(environ, start_response) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index d2ee7ff7..fa126857 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -22,9 +22,27 @@ {% block mediagoblin_header_subtitle %} - perhaps some subtitle here + Clever subtitle here! {% endblock %} + {% if request.user %} + + + + Welcome {{ user['username'] }}! -- + + Logout + + + {% else %} + + + + + Login + + + {% endif %} {% endblock %}
From 59dd5c7e96ef454d7430727415309b43182590fa Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Apr 2011 18:55:55 -0500 Subject: [PATCH 0047/2731] Functioning request.user, and a functioning greeting for users :) --- mediagoblin/templates/mediagoblin/base.html | 2 +- mediagoblin/util.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index fa126857..546dc264 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -29,7 +29,7 @@ - Welcome {{ user['username'] }}! -- + Welcome {{ request.user['username'] }}! -- Logout diff --git a/mediagoblin/util.py b/mediagoblin/util.py index fe77a0d9..f5709123 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -34,12 +34,14 @@ def setup_user_in_request(request): appropriate. """ if not request.session.has_key('user_id'): + request.user = None return user = None try: - user = request.db.User.one({'_id': request.session['user_id']}) + user = request.db.User.one( + {'_id': mongokit.ObjectId(request.session['user_id'])}) if not user: # Something's wrong... this user doesn't exist? Invalidate From c74e1462feed4c8be9b3004893df2bf236b422cc Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Apr 2011 18:56:48 -0500 Subject: [PATCH 0048/2731] Since we're searching by id, that try: except: was superfluous. --- mediagoblin/util.py | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index f5709123..6551a3cc 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -38,19 +38,12 @@ def setup_user_in_request(request): return user = None + user = request.db.User.one( + {'_id': mongokit.ObjectId(request.session['user_id'])}) - try: - user = request.db.User.one( - {'_id': mongokit.ObjectId(request.session['user_id'])}) - - if not user: - # Something's wrong... this user doesn't exist? Invalidate - # this session. - request.session.invalidate() - - except mongokit.MultipleResultsFound: - # Something's wrong... we shouldn't have multiple users with - # the same user id. Invalidate this session. + if not user: + # Something's wrong... this user doesn't exist? Invalidate + # this session. request.session.invalidate() request.user = user From 146ad23e9b651d71cbdddf5be76a28ed5cb60353 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Apr 2011 18:58:23 -0500 Subject: [PATCH 0049/2731] Herp derp GPL notice blocks should even be on routing. --- mediagoblin/auth/routing.py | 16 ++++++++++++++++ mediagoblin/routing.py | 2 -- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/mediagoblin/auth/routing.py b/mediagoblin/auth/routing.py index 5b604fdd..e304de9b 100644 --- a/mediagoblin/auth/routing.py +++ b/mediagoblin/auth/routing.py @@ -1,3 +1,19 @@ +# GNU Mediagoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + from routes.route import Route auth_routes = [ diff --git a/mediagoblin/routing.py b/mediagoblin/routing.py index f5b67f38..1401b723 100644 --- a/mediagoblin/routing.py +++ b/mediagoblin/routing.py @@ -33,5 +33,3 @@ def get_mapper(): mapping.extend(auth_routes, '/auth') return mapping - - From 3eae167e0f40b26d480a47f73f1b44deb9752629 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Thu, 7 Apr 2011 20:11:06 -0400 Subject: [PATCH 0050/2731] Adds Sphinx docs infrastructure. --- docs/Makefile | 130 +++++++++++++++++++++++++++++ docs/conf.py | 216 +++++++++++++++++++++++++++++++++++++++++++++++++ docs/index.rst | 20 +++++ 3 files changed, 366 insertions(+) create mode 100644 docs/Makefile create mode 100644 docs/conf.py create mode 100644 docs/index.rst diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 00000000..81fc3d13 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,130 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = _build + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + -rm -rf $(BUILDDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/GNUMediaGoblin.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/GNUMediaGoblin.qhc" + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/GNUMediaGoblin" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/GNUMediaGoblin" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + make -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 00000000..02c190a0 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,216 @@ +# -*- coding: utf-8 -*- +# +# GNU MediaGoblin documentation build configuration file, created by +# sphinx-quickstart on Thu Apr 7 20:10:27 2011. +# +# This file is execfile()d with the current directory set to its containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys, os + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +#sys.path.insert(0, os.path.abspath('.')) + +# -- General configuration ----------------------------------------------------- + +# If your documentation needs a minimal Sphinx version, state it here. +#needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = [] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +#source_encoding = 'utf-8-sig' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'GNU MediaGoblin' +copyright = u'2011, Chris Webber, et al' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = '0.1a1' +# The full version, including alpha/beta/rc tags. +release = '0.1a1' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +#language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +exclude_patterns = ['_build'] + +# The reST default role (used for this markup: `text`) to use for all documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +#modindex_common_prefix = [] + + +# -- Options for HTML output --------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +html_theme = 'default' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +#html_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +#html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_domain_indices = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +#html_show_sphinx = True + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +#html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = None + +# Output file base name for HTML help builder. +htmlhelp_basename = 'GNUMediaGoblindoc' + + +# -- Options for LaTeX output -------------------------------------------------- + +# The paper size ('letter' or 'a4'). +#latex_paper_size = 'letter' + +# The font size ('10pt', '11pt' or '12pt'). +#latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass [howto/manual]). +latex_documents = [ + ('index', 'GNUMediaGoblin.tex', u'GNU MediaGoblin Documentation', + u'Chris Webber, et al', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# If true, show page references after internal links. +#latex_show_pagerefs = False + +# If true, show URL addresses after external links. +#latex_show_urls = False + +# Additional stuff for the LaTeX preamble. +#latex_preamble = '' + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_domain_indices = True + + +# -- Options for manual page output -------------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + ('index', 'gnumediagoblin', u'GNU MediaGoblin Documentation', + [u'Chris Webber, et al'], 1) +] diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 00000000..94f6c7f7 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,20 @@ +.. GNU MediaGoblin documentation master file, created by + sphinx-quickstart on Thu Apr 7 20:10:27 2011. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to GNU MediaGoblin's documentation! +=========================================== + +Contents: + +.. toctree:: + :maxdepth: 2 + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + From f75a49b2f2973b47c95a737427d7fd9c478d8e7a Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 9 Apr 2011 08:08:23 -0500 Subject: [PATCH 0051/2731] Adding staticdirect infrastructure from cc.engine --- mediagoblin/staticdirect.py | 72 +++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 mediagoblin/staticdirect.py diff --git a/mediagoblin/staticdirect.py b/mediagoblin/staticdirect.py new file mode 100644 index 00000000..1c87c7ba --- /dev/null +++ b/mediagoblin/staticdirect.py @@ -0,0 +1,72 @@ +# GNU Mediagoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import pkg_resources +import urlparse + +#################################### +# Staticdirect infrastructure. +# Borrowed largely from cc.engine +# by Chris Webber & Creative Commons +# +# This needs documentation! +#################################### + +import pkg_resources +import urlparse + +class StaticDirect(object): + def __init__(self): + self.cache = {} + + def __call__(self, filepath): + if self.cache.has_key(filepath): + return self.cache[filepath] + + static_direction = self.cache[filepath] = self.get(filepath) + return static_direction + + + def get(self, filepath): + # should be implemented by the individual staticdirector + pass + + +class RemoteStaticDirect(StaticDirect): + def __init__(self, remotepath): + StaticDirect.__init__(self) + self.remotepath = remotepath.rstrip('/') + + def get(self, filepath): + return '%s/%s' % ( + self.remotepath, filepath.lstrip('/')) + + +class MultiRemoteStaticDirect(StaticDirect): + """ + For whene separate sections of the static data is served under + separate urls. + """ + def __init__(self, remotepaths): + StaticDirect.__init__(self) + self.remotepaths = remotepaths + + def get(self, filepath): + section, rest = filepath.strip('/').split('/', 1) + + return '%s/%s' % ( + self.remotepaths[section].rstrip('/'), + rest.lstrip('/')) From 9578fe504795fef05f9bfaa802a3d7ee0fa1d440 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 9 Apr 2011 08:11:43 -0500 Subject: [PATCH 0052/2731] Include werkzeug. We'll need it for werkzeug.util.secure_filename at least. --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index f38b2b60..8be416b1 100644 --- a/setup.py +++ b/setup.py @@ -35,6 +35,7 @@ setup( 'wtforms', 'py-bcrypt', 'nose', + 'werkzeug', ], test_suite='nose.collector', From a6b378ef4d8a30eb1c832ea131167c8f69fc7d34 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 9 Apr 2011 11:41:09 -0500 Subject: [PATCH 0053/2731] file storage filelist cleaning --- mediagoblin/storage.py | 41 +++++++++++++++++++++++++++++++ mediagoblin/tests/test_storage.py | 32 ++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 mediagoblin/storage.py create mode 100644 mediagoblin/tests/test_storage.py diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py new file mode 100644 index 00000000..c06cb3a8 --- /dev/null +++ b/mediagoblin/storage.py @@ -0,0 +1,41 @@ +# GNU Mediagoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +from werkzeug.utils import secure_filename + + +def clean_listy_filepath(listy_filepath): + """ + Take a listy filepath (like ['dir1', 'dir2', 'filename.jpg']) and + clean out any nastiness from it. + + For example: + >>> clean_listy_filepath([u'/dir1/', u'foo/../nasty', u'linooks.jpg']) + [u'dir1', u'foo_.._nasty', u'linooks.jpg'] + + Args: + - listy_filepath: a list of filepath components, mediagoblin + storage API style. + + Returns: + A cleaned list of unicode objects. + """ + return [ + unicode(secure_filename(filepath)) + for filepath in listy_filepath] + + diff --git a/mediagoblin/tests/test_storage.py b/mediagoblin/tests/test_storage.py new file mode 100644 index 00000000..b7da467c --- /dev/null +++ b/mediagoblin/tests/test_storage.py @@ -0,0 +1,32 @@ +# GNU Mediagoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +from mediagoblin import storage + + +def test_clean_listy_filepath(): + expected = [u'dir1', u'dir2', u'linooks.jpg'] + assert storage.clean_listy_filepath( + ['dir1', 'dir2', 'linooks.jpg']) == expected + + expected = [u'dir1', u'foo_.._nasty', u'linooks.jpg'] + assert storage.clean_listy_filepath( + ['/dir1/', 'foo/../nasty', 'linooks.jpg']) == expected + + expected = [u'etc', u'passwd'] + assert storage.clean_listy_filepath( + ['../../../etc/', 'passwd']) == expected From 770c12be8d29ab0d6960bbc20ca5c58363da753d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 9 Apr 2011 11:45:38 -0500 Subject: [PATCH 0054/2731] Raise a specific error if a filename component can't be resolved into anything. --- mediagoblin/storage.py | 12 +++++++++++- mediagoblin/tests/test_storage.py | 9 +++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index c06cb3a8..805be84c 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -18,6 +18,10 @@ from werkzeug.utils import secure_filename +class Error(Exception): pass +class InvalidFilepath(Error): pass + + def clean_listy_filepath(listy_filepath): """ Take a listy filepath (like ['dir1', 'dir2', 'filename.jpg']) and @@ -34,8 +38,14 @@ def clean_listy_filepath(listy_filepath): Returns: A cleaned list of unicode objects. """ - return [ + cleaned_filepath = [ unicode(secure_filename(filepath)) for filepath in listy_filepath] + if u'' in cleaned_filepath: + raise InvalidFilepath( + "A filename component could not be resolved into a usable name.") + + return cleaned_filepath + diff --git a/mediagoblin/tests/test_storage.py b/mediagoblin/tests/test_storage.py index b7da467c..cdcddf09 100644 --- a/mediagoblin/tests/test_storage.py +++ b/mediagoblin/tests/test_storage.py @@ -30,3 +30,12 @@ def test_clean_listy_filepath(): expected = [u'etc', u'passwd'] assert storage.clean_listy_filepath( ['../../../etc/', 'passwd']) == expected + + try: + storage.clean_listy_filepath( + ['../../', 'linooks.jpg']) + except storage.InvalidFilepath: + # Yes, this error should be raise + pass + else: + assert "success" == "failboat" From 797be93ca678c7c0735b0041cf43089d227a6a1c Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 9 Apr 2011 14:02:54 -0500 Subject: [PATCH 0055/2731] Most of the StorageInterface stubs in place and documented. --- mediagoblin/storage.py | 57 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index 805be84c..cd61a6aa 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -21,6 +21,8 @@ from werkzeug.utils import secure_filename class Error(Exception): pass class InvalidFilepath(Error): pass +class NotImplementedError(Error): pass + def clean_listy_filepath(listy_filepath): """ @@ -49,3 +51,58 @@ def clean_listy_filepath(listy_filepath): return cleaned_filepath +class StorageInterface(object): + """ + Interface for the storage API. + + This interface doesn't actually provide behavior, but it defines + what kind of storage patterns subclasses should provide. + + It is important to note that the storage API idea of a "filepath" + is actually like ['dir1', 'dir2', 'file.jpg'], so keep that in + mind while reading method documentation. + """ + # def __init__(self, *args, **kwargs): + # pass + + def __raise_not_implemented(self): + """ + Raise a warning about some component not implemented by a + subclass of this interface. + """ + raise NotImplementedError( + "This feature not implemented in this storage API implementation.") + + def file_exists(self, filepath): + """ + Return a boolean asserting whether or not file at filepath + exists in our storage system. + + Returns: + True / False depending on whether file exists or not. + """ + # Subclasses should override this method. + self.__raise_not_implemented() + + def get_unique_filename(self, filepath): + """ + If a filename at filepath already exists, generate a new name. + + Eg, if the filename doesn't exist: + >>> storage_handler.get_unique_filename(['dir1', 'dir2', 'fname.jpg']) + [u'dir1', u'dir2', u'fname.jpg'] + + But if a file does exist, let's get one back with at uuid tacked on: + >>> storage_handler.get_unique_filename(['dir1', 'dir2', 'fname.jpg']) + ['dir1', 'dir2', 'd02c3571-dd62-4479-9d62-9e3012dada29-fname.jpg'] + """ + # Subclasses should override this method. + self.__raise_not_implemented() + + def get_file(self, filepath): + # Subclasses should override this method. + self.__raise_not_implemented() + + def delete_file(self, filepath): + # Subclasses should override this method. + self.__raise_not_implemented() From 0b9cf289c3f479ba1acb728b5aa6ec2e1d8b4e49 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 9 Apr 2011 14:05:44 -0500 Subject: [PATCH 0056/2731] Actually, we can implement get_unique_filename, which should be the same across all storage API implementations --- mediagoblin/storage.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index cd61a6aa..3b6a7a2a 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -84,6 +84,14 @@ class StorageInterface(object): # Subclasses should override this method. self.__raise_not_implemented() + def get_file(self, filepath): + # Subclasses should override this method. + self.__raise_not_implemented() + + def delete_file(self, filepath): + # Subclasses should override this method. + self.__raise_not_implemented() + def get_unique_filename(self, filepath): """ If a filename at filepath already exists, generate a new name. @@ -96,13 +104,7 @@ class StorageInterface(object): >>> storage_handler.get_unique_filename(['dir1', 'dir2', 'fname.jpg']) ['dir1', 'dir2', 'd02c3571-dd62-4479-9d62-9e3012dada29-fname.jpg'] """ - # Subclasses should override this method. - self.__raise_not_implemented() - - def get_file(self, filepath): - # Subclasses should override this method. - self.__raise_not_implemented() - - def delete_file(self, filepath): - # Subclasses should override this method. - self.__raise_not_implemented() + if self.file_exists(filepath): + return filepath[:-1] + ["%s-%s" % (uuid.uuid4(), filepath[-1])] + else: + return filepath From ef10e3a2c783d0ac54383e2c659eb9660996535e Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 9 Apr 2011 14:08:07 -0500 Subject: [PATCH 0057/2731] u'string', but of course ;) --- mediagoblin/storage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index 3b6a7a2a..8e62a3a6 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -102,7 +102,7 @@ class StorageInterface(object): But if a file does exist, let's get one back with at uuid tacked on: >>> storage_handler.get_unique_filename(['dir1', 'dir2', 'fname.jpg']) - ['dir1', 'dir2', 'd02c3571-dd62-4479-9d62-9e3012dada29-fname.jpg'] + [u'dir1', u'dir2', u'd02c3571-dd62-4479-9d62-9e3012dada29-fname.jpg'] """ if self.file_exists(filepath): return filepath[:-1] + ["%s-%s" % (uuid.uuid4(), filepath[-1])] From b0de01cf0102ec596c2bdec553eb73713e9da103 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 9 Apr 2011 14:26:41 -0500 Subject: [PATCH 0058/2731] More documentation on all the core storage API methods --- mediagoblin/storage.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index 8e62a3a6..4e0960c7 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -84,11 +84,22 @@ class StorageInterface(object): # Subclasses should override this method. self.__raise_not_implemented() - def get_file(self, filepath): + def get_file(self, filepath, mode): + """ + Return a file-like object for reading/writing from this filepath. + + Should create directories, buckets, whatever, as necessary. + """ # Subclasses should override this method. self.__raise_not_implemented() def delete_file(self, filepath): + """ + Delete or dereference the file at filepath. + + This might need to delete directories, buckets, whatever, for + cleanliness. (Be sure to avoid race conditions on that though) + """ # Subclasses should override this method. self.__raise_not_implemented() From 8736b05d051dc5f2777dc4f86e684e3a3cec6a7c Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Sat, 9 Apr 2011 18:43:26 -0400 Subject: [PATCH 0059/2731] Fleshes out documentation. use, what their function is, and urls for library documentation * adds a forward chapter which talks about the documentation * adds an installation stub * adds a software stack chapter that covers what libraries are in * adds a design decisions chapter which covers why we chose the libraries and architecture --- docs/designdecisions.rst | 170 +++++++++++++++++++++++++++++++++++++++ docs/foreward.rst | 31 +++++++ docs/index.rst | 13 +++ docs/installation.rst | 5 ++ docs/softwarestack.rst | 127 +++++++++++++++++++++++++++++ 5 files changed, 346 insertions(+) create mode 100644 docs/designdecisions.rst create mode 100644 docs/foreward.rst create mode 100644 docs/installation.rst create mode 100644 docs/softwarestack.rst diff --git a/docs/designdecisions.rst b/docs/designdecisions.rst new file mode 100644 index 00000000..f30c1ca5 --- /dev/null +++ b/docs/designdecisions.rst @@ -0,0 +1,170 @@ +.. _design-decisions-chapter: + +================== + Design Decisions +================== + +This chapter talks a bit about design decisions. + + +Why Python +========== + +Chris Webber on "Why Python": + + Because I know Python, love Python, am capable of actually making + this thing happen in Python (I've worked on a lot of large free + software web applications before in Python, including `Miro + Community`_, the `Miro Guide`_, a large portion of `Creative + Commons`_, and a whole bunch of things while working at `Imaginary + Landscape`_). I know Python, I can make this happen in Python, me + starting a project like this makes sense if it's done in Python. + + You might say that PHP is way more deployable, that Rails has way + more cool developers riding around on fixie bikes, and all of + those things are true. But I know Python, like Python, and think + that Python is pretty great. I do think that deployment in Python + is not as good as with PHP, but I think the days of shared hosting + are (thankfully) coming to an end, and will probably be replaced + by cheap virtual machines spun up on the fly for people who want + that sort of stuff, and Python will be a huge part of that future, + maybe even more than PHP will. The deployment tools are getting + better. Maybe we can use something like Silver Lining. Maybe we + can just distribute as ``.debs`` or ``.rpms``. We'll figure it + out when we get there. + + Regardless, if I'm starting this project, which I am, it's gonna + be in Python. + +.. _Miro Community: http://mirocommunity.org/ +.. _Miro Guide: http://miroguide.org/ +.. _Creative Commons: http://creativecommons.org/ +.. _Imaginary Landscape: http://www.imagescape.com/ + + +Why WSGI Minimalism +=================== + +Chris Webber on "Why WSGI Minimalism": + + If you notice in the technology list above, I list a lot of + components that are very `Django Project`_, but not actually + Django components. What can I say, I really like a lot of the + ideas in Django! Which leads to the question: why not just use + Django? + + While I really like Django's ideas and a lot of its components, I + also feel that most of the best ideas in Django I want have been + implemented as good or even better outside of Django. I could + just use Django and replace the templating system with Jinja2, and + the form system with wtforms, and the database with MongoDB and + MongoKit, but at that point, how much of Django is really left? + + I also am sometimes saddened and irritated by how coupled all of + Django's components are. Loosely coupled yes, but still coupled. + WSGI has done a good job of providing a base layer for running + applications on and if you know how to do it yourself [1]_, it's + not hard or many lines of code at all to bind them together + without any framework at all (not even say `Pylons`_, `Pyramid`_ + or `Flask`_ which I think are still great projects, especially for + people who want this sort of thing but have no idea how to get + started). And even at this already really early stage of writing + MediaGoblin, that glue work is mostly done. + + Not to say I don't think Django isn't great for a lot of things. + For a lot of stuff, it's still the best, but not for MediaGoblin, + I think. + + One thing that Django does super well though is documentation. It + still has some faults, but even with those considered I can hardly + think of any other project in Python that has as nice of + documentation as Django. It may be worth learning some lessons on + documentation from Django [2]_, on that note. + + I'd really like to have a good, thorough hacking-howto and + deployment-howto, especially in the former making some notes on + how to make it easier for Django hackers to get started. + +.. _Django Project: http://www.djangoproject.com/ +.. _Pylons: http://pylonshq.com/ +.. _Pyramid: http://docs.pylonsproject.org/projects/pyramid/dev/ +.. _Flask: http://flask.pocoo.org/ + +.. [1] http://pythonpaste.org/webob/do-it-yourself.html +.. [2] http://pycon.blip.tv/file/4881071/ + + +Why MongoDB +=========== + +Chris Webber on "Why MongoDB": + + In case you were wondering, I am not a NOSQL fanboy, I do not go + around telling people that MongoDB is web scale. Actually my + choice for MongoDB isn't scalability, though scaling up really + nicely is a pretty good feature and sets us up well in case large + volume sites eventually do use MediaGoblin. But there's another + side of scalability, and that's scaling down, which is important + for federation, maybe even more important than scaling up in an + ideal universe where everyone ran servers out of their own + housing. As a memory-mapped database, MongoDB is pretty hungry, + so actually I spent a lot of time debating whether the inability + to scale down as nicely as something like SQL has with sqlite + meant that it was out. + + But I decided in the end that I really want MongoDB, not for + scalability, but for flexibility. Schema evolution pains in SQL + are almost enough reason for me to want MongoDB, but not quite. + The real reason is because I want the ability to eventually handle + multiple media types through MediaGoblin, and also allow for + plugins, without the rigidity of tables making that difficult. In + other words, something like:: + + {"title": "Me talking until you are bored", + "description": "blah blah blah", + "media_type": "audio", + "media_data": { + "length": "2:30", + "codec": "OGG Vorbis"}, + "plugin_data": { + "licensing": { + "license": "http://creativecommons.org/licenses/by-sa/3.0/"}}} + + + Being able to just dump media-specific information in a media_data + hashtable is pretty great, and even better is having a plugin + system where you can just let plugins have their own entire + key-value space cleanly inside the document that doesn't interfere + with anyone else's stuff. If we were to let plugins to deposit + their own information inside the database, either we'd let plugins + create their own tables which makes SQL migrations even harder + than they already are, or we'd probably end up creating a table + with a column for key, a column for value, and a column for type + in one huge table called "plugin_data" or something similar. (Yo + dawg, I heard you liked plugins, so I put a database in your + database so you can query while you query.) Gross. + + I also don't want things to be too lose so that we forget or lose + the structure of things, and that's one reason why I want to use + MongoKit, because we can cleanly define a much structure as we + want and verify that documents match that structure generally + without adding too much bloat or overhead (mongokit is a pretty + lightweight wrapper and doesn't inject extra mongokit-specific + stuff into the database, which is nice and nicer than many other + ORMs in that way). + + +Why Sphinx for documentation +============================ + +Will Kahn-Greene on "Why Sphinx": + + Sphinx is a fantastic tool for organizing documentation for a + Python-based project that makes it pretty easy to write docs that + are readable in source form and can be "compiled" into HTML, LaTeX + and other formats. + + There are other doc systems out there, but given that GNU + MediaGoblin is being written in Python, it makes sense to use + Sphinx for now. + diff --git a/docs/foreward.rst b/docs/foreward.rst new file mode 100644 index 00000000..4fc8152a --- /dev/null +++ b/docs/foreward.rst @@ -0,0 +1,31 @@ +========== + Foreward +========== + +What is GNU MediaGoblin +======================= + +See the web-site at http://mediagoblin.org/ . + + +Who wrote this documentation +============================ + +* Chris Webber +* Will Kahn-Greene + + +How should I bring up errors in the documentation +================================================= + +There are a few ways--please pick the one most convenient to you! + +1. Send an email to Will ``willg at bluesock dot org``. +2. Write up a bug report in the bug tracker at http://bugs.foocorp.net/ . +3. Tell someone on IRC ``#mediagoblin`` on Freenode. + +When you tell us about your issue, please let us know: + +* where you are looking (in git? url of the web-page?) +* what the issue is +* your thoughts on how to resolve it diff --git a/docs/index.rst b/docs/index.rst index 94f6c7f7..6f96ff8c 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -6,11 +6,24 @@ Welcome to GNU MediaGoblin's documentation! =========================================== +This documentation covers the GNU MediaGoblin software. It is versioned +alongside the code and the source for this documentation is located in +the mediagoblin repository in the ``docs/`` directory. + +It is also viewable on the Web site in HTML form. + + Contents: .. toctree:: :maxdepth: 2 + foreward + softwarestack + installation + designdecisions + + Indices and tables ================== diff --git a/docs/installation.rst b/docs/installation.rst new file mode 100644 index 00000000..2dfd467d --- /dev/null +++ b/docs/installation.rst @@ -0,0 +1,5 @@ +============== + Installation +============== + +FIXME - this page is a stub! diff --git a/docs/softwarestack.rst b/docs/softwarestack.rst new file mode 100644 index 00000000..024f0d5d --- /dev/null +++ b/docs/softwarestack.rst @@ -0,0 +1,127 @@ +======= + Stack +======= + +The software stack for this project might change over time, but this +is what we're thinking right now. + +There's some explanation of design decisions in the +:ref:`design-decisions-chapter`. + + +Python +====== + +* http://python.org/ + +The core team does a lot of work in Python and it's the language we're +most likely to do a project like this in. + + +MongoDB +======= + +* http://www.mongodb.org/ + +A "document database". Because it's extremely flexible and scales up +well, but I guess not down well. + + +MongoKit +======== + +* http://namlook.github.com/mongokit/ + +A lightweight ORM for mongodb. Helps us define our structures better, +does schema validation, schema evolution, and helps make things more +fun and pythonic. + + +Jinja2 +====== + +* http://jinja.pocoo.org/docs/ + +For templating. Pretty much django templates++ but allows us to pass +arguments into method calls instead of writing custom tags. + + +WTForms +======= + +* http://wtforms.simplecodes.com/ + +For form handling, validation, abstraction. Almost just like Django's +templates. + + +WebOb +===== + +* http://pythonpaste.org/webob/ + +Gives nice request/response objects (also somewhat Django-ish). + + +Paste Deploy and Paste Script +============================= + +* http://pythonpaste.org/deploy/ +* http://pythonpaste.org/script/ + +This will be the default way of configuring and launching the +application. Since GNU MediaGoblin will be fairly WSGI minimalist though, +you can probably use other ways to launch it, though this will be the +default. + + +Routes +====== + +* http://routes.groovie.org/ + +For URL Routing. It works well enough. + + +JQuery +====== + +* http://jquery.com/ + +For all sorts of things on the JavaScript end of things, for all sorts +of reasons. + + +Beaker +====== + +* http://beaker.groovie.org/ + +For sessions, because that seems like it's generally considered the +way to go I guess. + + +Nose +==== + +* http://somethingaboutorange.com/mrl/projects/nose/1.0.0/ + +For unit tests because it makes testing a bit nicer. + + +Celery +====== + +* http://celeryproject.org/ + +For task queueing (resizing images, encoding video, ...). + + +RabbitMQ +======== + +* http://www.rabbitmq.com/ + +For sending tasks to celery, because I guess that's what most people +do. Might be optional, might also let people use MongoDB for this if +they want. From 779f2b9411c4e9be108546be2a03e96474d3eccd Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Apr 2011 13:38:01 -0500 Subject: [PATCH 0060/2731] Put down structure of BasicFileStorage, and the ._resolve_filepath() method --- mediagoblin/storage.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index 4e0960c7..84ceb641 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -14,6 +14,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +import os from werkzeug.utils import secure_filename @@ -119,3 +120,41 @@ class StorageInterface(object): return filepath[:-1] + ["%s-%s" % (uuid.uuid4(), filepath[-1])] else: return filepath + + +class BasicFileStorage(StorageInterface): + """ + Basic local filesystem implementation of storage API + """ + + def __init__(self, base_dir, serve_url=None): + """ + Keyword arguments: + - base_dir: Base directory things will be served out of. MUST + be an absolute path. + - serve_url: URL files will be served from + """ + self.base_dir = base_dir + self.serve_url = serve_url + + def _resolve_filepath(self, filepath): + """ + Transform the given filepath into a local filesystem filepath. + """ + return os.path.join( + self.base_dir, *clean_listy_filepath(filepath)) + + def _create_dirs_for_filepath(self, filepath): + """ + Create any necessary directories for filepath + """ + pass + + def file_exists(self, filepath): + return os.path.exists(self._resolve_filepath(filepath)) + + def get_file(self, filepath, mode): + pass + + def delete_file(self, filepath): + pass From 111885814086313ee1206def7eb63149467a9149 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Apr 2011 14:57:23 -0500 Subject: [PATCH 0061/2731] I don't think we need _create_dirs_for_filepath. --- mediagoblin/storage.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index 84ceb641..a1a3b3a4 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -144,12 +144,6 @@ class BasicFileStorage(StorageInterface): return os.path.join( self.base_dir, *clean_listy_filepath(filepath)) - def _create_dirs_for_filepath(self, filepath): - """ - Create any necessary directories for filepath - """ - pass - def file_exists(self, filepath): return os.path.exists(self._resolve_filepath(filepath)) From 644614d4dd73b171d069f73dba84b5c081eb6961 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Apr 2011 15:01:00 -0500 Subject: [PATCH 0062/2731] Added the url_for_file stub to the interface --- mediagoblin/storage.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index a1a3b3a4..87435ff2 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -104,6 +104,14 @@ class StorageInterface(object): # Subclasses should override this method. self.__raise_not_implemented() + def url_for_file(self, filepath): + """ + Get the URL for this file. This assumes our storage has been + mounted with some kind of URL which makes this possible. + """ + # Subclasses should override this method. + self.__raise_not_implemented() + def get_unique_filename(self, filepath): """ If a filename at filepath already exists, generate a new name. @@ -152,3 +160,6 @@ class BasicFileStorage(StorageInterface): def delete_file(self, filepath): pass + + def url_for_file(self, filepath): + pass From 17e7093e4b63a9df1ff717de839c6281dbf55e98 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Apr 2011 15:50:32 -0500 Subject: [PATCH 0063/2731] Started BasicFileStorage tests. test_basic_storage__resolve_filepath() done. Also switched to using assert_raises, which is only sane! --- mediagoblin/tests/test_storage.py | 60 ++++++++++++++++++++++++++----- 1 file changed, 52 insertions(+), 8 deletions(-) diff --git a/mediagoblin/tests/test_storage.py b/mediagoblin/tests/test_storage.py index cdcddf09..a30ca149 100644 --- a/mediagoblin/tests/test_storage.py +++ b/mediagoblin/tests/test_storage.py @@ -15,6 +15,11 @@ # along with this program. If not, see . +import os +import tempfile + +from nose.tools import assert_raises + from mediagoblin import storage @@ -31,11 +36,50 @@ def test_clean_listy_filepath(): assert storage.clean_listy_filepath( ['../../../etc/', 'passwd']) == expected - try: - storage.clean_listy_filepath( - ['../../', 'linooks.jpg']) - except storage.InvalidFilepath: - # Yes, this error should be raise - pass - else: - assert "success" == "failboat" + assert_raises( + storage.InvalidFilepath, + storage.clean_listy_filepath, + ['../../', 'linooks.jpg']) + + +########################## +# Basic file storage tests +########################## + +def get_tmp_filestorage(mount_url=None): + tmpdir = tempfile.mkdtemp() + this_storage = storage.BasicFileStorage(tmpdir, mount_url) + return tmpdir, this_storage + + +def test_basic_storage__resolve_filepath(): + tmpdir, this_storage = get_tmp_filestorage() + + result = this_storage._resolve_filepath(['dir1', 'dir2', 'filename.jpg']) + assert result == os.path.join( + tmpdir, 'dir1/dir2/filename.jpg') + + result = this_storage._resolve_filepath(['../../etc/', 'passwd']) + assert result == os.path.join( + tmpdir, 'etc/passwd') + + assert_raises( + storage.InvalidFilepath, + this_storage._resolve_filepath, + ['../../', 'etc', 'passwd']) + + +def test_basic_storage_file_exists(): + pass + + +def test_basic_storage_get_file(): + pass + + +def test_basic_storage_delete_file(): + pass + + +def test_basic_storage_url_for_file(): + pass From 92fb87ae8d3260c3a5da45aa7b0c75e401e81791 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Apr 2011 16:23:55 -0500 Subject: [PATCH 0064/2731] Unit tests for BasicFileStorage.file_exists() --- mediagoblin/tests/test_storage.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/mediagoblin/tests/test_storage.py b/mediagoblin/tests/test_storage.py index a30ca149..ff49ec9b 100644 --- a/mediagoblin/tests/test_storage.py +++ b/mediagoblin/tests/test_storage.py @@ -70,6 +70,19 @@ def test_basic_storage__resolve_filepath(): def test_basic_storage_file_exists(): + tmpdir, this_storage = get_tmp_filestorage() + + os.makedirs(os.path.join(tmpdir, 'dir1', 'dir2')) + filename = os.path.join(tmpdir, 'dir1', 'dir2', 'filename.txt') + with open(filename, 'w') as ourfile: + ourfile.write("I'm having a lovely day!") + + assert this_storage.file_exists(['dir1', 'dir2', 'filename.txt']) + assert not this_storage.file_exists(['dir1', 'dir2', 'thisfile.lol']) + assert not this_storage.file_exists(['dnedir1', 'dnedir2', 'somefile.lol']) + + +def test_basic_storage_get_unique_filename(): pass From 2d1a60739ecfb64c16e35940b7cee1eb018eb448 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Apr 2011 16:44:47 -0500 Subject: [PATCH 0065/2731] get_unique_filepath not get_unique_filename! --- mediagoblin/storage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index 87435ff2..ad8f8829 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -112,7 +112,7 @@ class StorageInterface(object): # Subclasses should override this method. self.__raise_not_implemented() - def get_unique_filename(self, filepath): + def get_unique_filepath(self, filepath): """ If a filename at filepath already exists, generate a new name. From 2fdec8270d786624cfe570f949eb8f0f89054eb6 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Apr 2011 16:50:52 -0500 Subject: [PATCH 0066/2731] We should import uuid, because we use it! --- mediagoblin/storage.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index ad8f8829..89b86315 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -15,6 +15,7 @@ # along with this program. If not, see . import os +import uuid from werkzeug.utils import secure_filename From 20e3ee115d5db738b071e99172d2ea97c6c0443e Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Apr 2011 16:51:25 -0500 Subject: [PATCH 0067/2731] Test BasicFileStorage.get_unique_filepath() --- mediagoblin/tests/test_storage.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/mediagoblin/tests/test_storage.py b/mediagoblin/tests/test_storage.py index ff49ec9b..79f1c8ea 100644 --- a/mediagoblin/tests/test_storage.py +++ b/mediagoblin/tests/test_storage.py @@ -19,6 +19,7 @@ import os import tempfile from nose.tools import assert_raises +from werkzeug.utils import secure_filename from mediagoblin import storage @@ -82,8 +83,24 @@ def test_basic_storage_file_exists(): assert not this_storage.file_exists(['dnedir1', 'dnedir2', 'somefile.lol']) -def test_basic_storage_get_unique_filename(): - pass +def test_basic_storage_get_unique_filepath(): + tmpdir, this_storage = get_tmp_filestorage() + + # write something that exists + os.makedirs(os.path.join(tmpdir, 'dir1', 'dir2')) + filename = os.path.join(tmpdir, 'dir1', 'dir2', 'filename.txt') + with open(filename, 'w') as ourfile: + ourfile.write("I'm having a lovely day!") + + # now we want something new, with the same name! + new_filepath = this_storage.get_unique_filepath( + ['dir1', 'dir2', 'filename.txt']) + assert new_filepath[:-1] == [u'dir1', u'dir2'] + + new_filename = new_filepath[-1] + assert new_filename.endswith('filename.txt') + assert len(new_filename) > len('filename.txt') + assert new_filename == secure_filename(new_filename) def test_basic_storage_get_file(): From cee7a1c163c0400610234f0f62455ba6d7e3160b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Apr 2011 17:03:23 -0500 Subject: [PATCH 0068/2731] get_file() implementation for BasicFileStorage --- mediagoblin/storage.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index 89b86315..e6e3a59d 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -86,7 +86,7 @@ class StorageInterface(object): # Subclasses should override this method. self.__raise_not_implemented() - def get_file(self, filepath, mode): + def get_file(self, filepath, mode='r'): """ Return a file-like object for reading/writing from this filepath. @@ -156,8 +156,16 @@ class BasicFileStorage(StorageInterface): def file_exists(self, filepath): return os.path.exists(self._resolve_filepath(filepath)) - def get_file(self, filepath, mode): - pass + def get_file(self, filepath, mode='r'): + # Make directories if necessary + if len(filepath) > 1: + directory = self._resolve_filepath(filepath[:-1]) + if not os.path.exists('directory'): + os.makedirs(directory) + + # Grab and return the file in the mode specified + return open(self._resolve_filepath(filepath), mode) + def delete_file(self, filepath): pass From a1302608736bbf14652bc1fc0bcc0f369453e0c2 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 11 Apr 2011 08:39:23 -0500 Subject: [PATCH 0069/2731] Started the workflow document. Currently just mockups. Soon: more techy info. --- docs/workflow.rst | 130 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 docs/workflow.rst diff --git a/docs/workflow.rst b/docs/workflow.rst new file mode 100644 index 00000000..218a6abd --- /dev/null +++ b/docs/workflow.rst @@ -0,0 +1,130 @@ +======================================================== + Workflow, and other structurally significant braindumps +======================================================== + +This document attempts to describe the envisioned workflow of +mediagoblin, from a structural standpoint. For now, *nothing* in this +document is probably the eventual, final way that things will work. +Eventually as things come to exist, this document will hopefully be +refactored to describe how things *do* work. + +This documented on hopes, dreams, rainbows, and unicorns. And it will +come to fulfillment through a lot of hard work. + + +Look and feel +============= + +Default look and feel +--------------------- + +Mairin Duffy made mockups for something called Design Hub. That +project did a number of things differently than the way we intend to +go, but it's probably a good idea to steal a good number of ideas from +here. + +http://mairin.wordpress.com/2010/03/09/another-design-hub-mockup/ + +User profile mockup +------------------- + +Here's an ascii art mockup on how things might look for a user's page:: + + _____ + |_( )_| USER NAME + | | | + |_/_\_| + + Recent artwork: + ___________________ ___________________________ + | ___ ___ ___ | |_About_User_Name___________| + | |pic| |pic| |pic| | | | + | |___| |___| |___| | | Some sort of self- | + | ___ ___ ___ | | description probably goes | + < | |pic| |pic| |pic| | > | here | + | |___| |___| |___| | | | + | ___ ___ ___ | | | + | |pic| |pic| |pic| | | | + | |___| |___| |___| | | | + |___________________| |___________________________| + + ___________________________ + Recent favorites: |_Recent_activity___________| + ___________________ | New picture: DragonFace | + | ___ ___ ___ | | 4/2/2010 | + | |pic| |pic| |pic| | |---------------------------| + | |___| |___| |___| | | Sup yall this is some kind| + | ___ ___ ___ | | of mini blogpost. Maybe | + < | |pic| |pic| |pic| | > | the interface will allow | + | |___| |___| |___| | | for this? | + | ___ ___ ___ | |___________________________| + | |pic| |pic| |pic| | + | |___| |___| |___| | ___________________________ + |___________________| |_External_comments_here____| + | Dang! This stuff rocks | + | - Joe 4/2/2010 | + |---------------------------| + | Nice job on the dragon | + | - Morgan 4/2/2010 | + '---------------------------' + +So there's this type of interface that puts a lot of different types +of info on the same screen. I'm not sure that I like it. It's +possible we'll go with something much more minimalist. Maybe we'll go +with something "tabbed" the way statusnet / http://identi.ca is on +user pages. + +It's possible that we could support multiple profile styles here, +and you could load whatever profile style you want as set by user +preferences? + + +Uploading mockup +---------------- + +Here's an uploading mockup:: + + Upload an image + + [ Title ] + + Upload: [ ] [Browse] + ___________________________________________ + | | + | | + | o0O | + | o ' | + | o_.' | + | | + | Uploading... OK | <-, + | Resizing... OK | | + | | Area replaced w/ resized + | | image when done + |___________________________________________| + ________________ + License |_CC BY-SA_____|V| + ___________________________________________ + | Description goes here. | + | You can type it up in here and everything | + | and it'll show up under the image. | + | | + | Possibly we should allow some kind of | + | markup... maybe markdown? | + '___________________________________________' + + __________________________________________ + |> Advanced | + ------------------------------------------ + + +Customizability +--------------- + +General site theming customizability is pretty easy! Since we're +using `Jinja `_ we can just set up +user-overriding directories. + +We'll also figure out some sort of way to provide theming "packages", +eventually. + + From 3c013c5b79776190639af748913ce8634b1b7e59 Mon Sep 17 00:00:00 2001 From: Matt Lee Date: Mon, 11 Apr 2011 15:18:41 -0400 Subject: [PATCH 0070/2731] Adding a file for testing of CIA bot --- test | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test diff --git a/test b/test new file mode 100644 index 00000000..e69de29b From 00fdc7bdee4f27ad04237bae49aa87ef75a69fb4 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Tue, 12 Apr 2011 19:56:04 -0400 Subject: [PATCH 0071/2731] Fixes docs. * fixes some typos * tweaks some language issues that occured because I took Chris' stuff out of the context of the original READMEish structure * ditches installation for deploymenthowto and hackinghowto --- docs/deploymenthowto.rst | 5 +++++ docs/designdecisions.rst | 9 ++++----- docs/hackinghowto.rst | 5 +++++ docs/index.rst | 3 ++- docs/installation.rst | 5 ----- 5 files changed, 16 insertions(+), 11 deletions(-) create mode 100644 docs/deploymenthowto.rst create mode 100644 docs/hackinghowto.rst delete mode 100644 docs/installation.rst diff --git a/docs/deploymenthowto.rst b/docs/deploymenthowto.rst new file mode 100644 index 00000000..64baf5c8 --- /dev/null +++ b/docs/deploymenthowto.rst @@ -0,0 +1,5 @@ +================== + Deployment HOWTO +================== + +FIXME - write this! diff --git a/docs/designdecisions.rst b/docs/designdecisions.rst index f30c1ca5..b5992fc1 100644 --- a/docs/designdecisions.rst +++ b/docs/designdecisions.rst @@ -47,7 +47,7 @@ Why WSGI Minimalism Chris Webber on "Why WSGI Minimalism": - If you notice in the technology list above, I list a lot of + If you notice in the technology listI list a lot of components that are very `Django Project`_, but not actually Django components. What can I say, I really like a lot of the ideas in Django! Which leads to the question: why not just use @@ -144,12 +144,12 @@ Chris Webber on "Why MongoDB": dawg, I heard you liked plugins, so I put a database in your database so you can query while you query.) Gross. - I also don't want things to be too lose so that we forget or lose + I also don't want things to be too loose so that we forget or lose the structure of things, and that's one reason why I want to use MongoKit, because we can cleanly define a much structure as we want and verify that documents match that structure generally - without adding too much bloat or overhead (mongokit is a pretty - lightweight wrapper and doesn't inject extra mongokit-specific + without adding too much bloat or overhead (MongoKit is a pretty + lightweight wrapper and doesn't inject extra MongoKit-specific stuff into the database, which is nice and nicer than many other ORMs in that way). @@ -167,4 +167,3 @@ Will Kahn-Greene on "Why Sphinx": There are other doc systems out there, but given that GNU MediaGoblin is being written in Python, it makes sense to use Sphinx for now. - diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst new file mode 100644 index 00000000..93cd5ddc --- /dev/null +++ b/docs/hackinghowto.rst @@ -0,0 +1,5 @@ +=============== + Hacking HOWTO +=============== + +FIXME - write this! diff --git a/docs/index.rst b/docs/index.rst index 6f96ff8c..965d5d7a 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -20,7 +20,8 @@ Contents: foreward softwarestack - installation + deploymenthowto + hackinghowto designdecisions diff --git a/docs/installation.rst b/docs/installation.rst deleted file mode 100644 index 2dfd467d..00000000 --- a/docs/installation.rst +++ /dev/null @@ -1,5 +0,0 @@ -============== - Installation -============== - -FIXME - this page is a stub! From 5698a579b2a9c99729f915f0590c798ca36d279b Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Tue, 12 Apr 2011 22:35:48 -0400 Subject: [PATCH 0072/2731] Adds license/copyright header. --- mediagoblin/tests/__init__.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/mediagoblin/tests/__init__.py b/mediagoblin/tests/__init__.py index e69de29b..98a67908 100644 --- a/mediagoblin/tests/__init__.py +++ b/mediagoblin/tests/__init__.py @@ -0,0 +1,15 @@ +# GNU Mediagoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . From 56d507b60bf2393dbeed8b81524b6b922dbc6ad0 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Tue, 12 Apr 2011 22:36:19 -0400 Subject: [PATCH 0073/2731] Adds documentation. * wrote up some basic bits of a hacking howto * added a better deployment howto stub --- docs/deploymenthowto.rst | 6 ++- docs/hackinghowto.rst | 88 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 92 insertions(+), 2 deletions(-) diff --git a/docs/deploymenthowto.rst b/docs/deploymenthowto.rst index 64baf5c8..39cf73af 100644 --- a/docs/deploymenthowto.rst +++ b/docs/deploymenthowto.rst @@ -2,4 +2,8 @@ Deployment HOWTO ================== -FIXME - write this! +Step 1: Write code that can be deployed. + +Step 2: ? + +Step 3: Write the deployment guide and profit! diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index 93cd5ddc..8356f435 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -2,4 +2,90 @@ Hacking HOWTO =============== -FIXME - write this! +So you want to hack on GNU MediaGoblin +====================================== + +First thing to do is check out the Web site where we list all the +project infrastructure including: + +* the mailing list +* the IRC channel +* the bug tracker + +Additionally, we have information on how to get involved, who to talk +to, what needs to be worked on, and other things besides! + + +How to set up an environment for hacking +======================================== + +The following assumes you have these things installed: + +1. virtualenv: + + http://pypi.python.org/pypi/virtualenv + +2. virtualenv wrapper: + + http://www.doughellmann.com/projects/virtualenvwrapper/ + +3. git: + + http://git-scm.com/ + + +Follow these steps: + +1. clone the repository:: + + git clone http://git.gitorious.org/mediagoblin/mediagoblin.git + +2. create a virtual environment:: + + mkvirtualenv mediagoblin + +3. if that doesn't put you in the virtual environment you created, + then do:: + + workon mediagoblin + +4. run:: + + python setup.py develop + + +When you want to work on GNU MediaGoblin, make sure to enter your +virtual environment:: + + workon mediagoblin + +Any changes you make to the code will show up in your virtual +environment--there's no need to continuously run ``python setup.py +develop``. + + +Running the test suite +====================== + +Run:: + + python setup.py test + + +Creating a new file +=================== + +All new files need to have the standard GNU MediaGoblin +license/copyright header. + +For Python files, include the license/copyright header at the top such +that each line of the header starts with ``#``. + +For Jinja2 template files, FIXME. + +For JavaScript files, FIXME. + +For CSS files, FIXME. + +If you're doing the copy-paste thing, make sure to update the +copyright year. From 8e1e744d27fbc887c6d9ce6e937848a25275ed6c Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Wed, 13 Apr 2011 10:04:30 -0400 Subject: [PATCH 0074/2731] Changes Mediagoblin -> MediaGoblin. --- mediagoblin/__init__.py | 2 +- mediagoblin/app.py | 6 +++--- mediagoblin/auth/__init__.py | 15 +++++++++++++++ mediagoblin/auth/forms.py | 2 +- mediagoblin/auth/lib.py | 2 +- mediagoblin/auth/routing.py | 2 +- mediagoblin/auth/views.py | 4 ++-- mediagoblin/models.py | 2 +- mediagoblin/routing.py | 2 +- mediagoblin/staticdirect.py | 2 +- mediagoblin/storage.py | 2 +- mediagoblin/templates/mediagoblin/base.html | 6 +++--- mediagoblin/tests/__init__.py | 2 +- mediagoblin/tests/test_auth.py | 2 +- mediagoblin/tests/test_storage.py | 2 +- mediagoblin/util.py | 2 +- mediagoblin/views.py | 2 +- setup.py | 2 +- 18 files changed, 37 insertions(+), 22 deletions(-) diff --git a/mediagoblin/__init__.py b/mediagoblin/__init__.py index 033b9173..dec83661 100644 --- a/mediagoblin/__init__.py +++ b/mediagoblin/__init__.py @@ -1,4 +1,4 @@ -# GNU Mediagoblin -- federated, autonomous media hosting +# GNU MediaGoblin -- federated, autonomous media hosting # Copyright (C) 2011 Free Software Foundation, Inc # # This program is free software: you can redistribute it and/or modify diff --git a/mediagoblin/app.py b/mediagoblin/app.py index a9ae223c..195d4792 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -1,4 +1,4 @@ -# GNU Mediagoblin -- federated, autonomous media hosting +# GNU MediaGoblin -- federated, autonomous media hosting # Copyright (C) 2011 Free Software Foundation, Inc # # This program is free software: you can redistribute it and/or modify @@ -37,7 +37,7 @@ def load_controller(string): return func -class MediagoblinApp(object): +class MediaGoblinApp(object): """ Really basic wsgi app using routes and WebOb. """ @@ -90,7 +90,7 @@ def paste_app_factory(global_config, **kw): connection = mongokit.Connection( kw.get('db_host'), kw.get('db_port')) - mgoblin_app = MediagoblinApp( + mgoblin_app = MediaGoblinApp( connection, kw.get('db_name', 'mediagoblin'), user_template_path=kw.get('local_templates')) diff --git a/mediagoblin/auth/__init__.py b/mediagoblin/auth/__init__.py index e69de29b..c129cbf8 100644 --- a/mediagoblin/auth/__init__.py +++ b/mediagoblin/auth/__init__.py @@ -0,0 +1,15 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . diff --git a/mediagoblin/auth/forms.py b/mediagoblin/auth/forms.py index 33403544..db8aaceb 100644 --- a/mediagoblin/auth/forms.py +++ b/mediagoblin/auth/forms.py @@ -1,4 +1,4 @@ -# GNU Mediagoblin -- federated, autonomous media hosting +# GNU MediaGoblin -- federated, autonomous media hosting # Copyright (C) 2011 Free Software Foundation, Inc # # This program is free software: you can redistribute it and/or modify diff --git a/mediagoblin/auth/lib.py b/mediagoblin/auth/lib.py index 907ba200..7cf021bc 100644 --- a/mediagoblin/auth/lib.py +++ b/mediagoblin/auth/lib.py @@ -1,4 +1,4 @@ -# GNU Mediagoblin -- federated, autonomous media hosting +# GNU MediaGoblin -- federated, autonomous media hosting # Copyright (C) 2011 Free Software Foundation, Inc # # This program is free software: you can redistribute it and/or modify diff --git a/mediagoblin/auth/routing.py b/mediagoblin/auth/routing.py index e304de9b..92f19371 100644 --- a/mediagoblin/auth/routing.py +++ b/mediagoblin/auth/routing.py @@ -1,4 +1,4 @@ -# GNU Mediagoblin -- federated, autonomous media hosting +# GNU MediaGoblin -- federated, autonomous media hosting # Copyright (C) 2011 Free Software Foundation, Inc # # This program is free software: you can redistribute it and/or modify diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index d56dfa43..aadde32f 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -1,4 +1,4 @@ -# GNU Mediagoblin -- federated, autonomous media hosting +# GNU MediaGoblin -- federated, autonomous media hosting # Copyright (C) 2011 Free Software Foundation, Inc # # This program is free software: you can redistribute it and/or modify @@ -70,7 +70,7 @@ def register_success(request): def login(request): """ - Mediagoblin login view. + MediaGoblin login view. If you provide the POST with 'next', it'll redirect to that view. """ diff --git a/mediagoblin/models.py b/mediagoblin/models.py index af10e795..d5f87a90 100644 --- a/mediagoblin/models.py +++ b/mediagoblin/models.py @@ -1,4 +1,4 @@ -# GNU Mediagoblin -- federated, autonomous media hosting +# GNU MediaGoblin -- federated, autonomous media hosting # Copyright (C) 2011 Free Software Foundation, Inc # # This program is free software: you can redistribute it and/or modify diff --git a/mediagoblin/routing.py b/mediagoblin/routing.py index 1401b723..169917f0 100644 --- a/mediagoblin/routing.py +++ b/mediagoblin/routing.py @@ -1,4 +1,4 @@ -# GNU Mediagoblin -- federated, autonomous media hosting +# GNU MediaGoblin -- federated, autonomous media hosting # Copyright (C) 2011 Free Software Foundation, Inc # # This program is free software: you can redistribute it and/or modify diff --git a/mediagoblin/staticdirect.py b/mediagoblin/staticdirect.py index 1c87c7ba..49681c22 100644 --- a/mediagoblin/staticdirect.py +++ b/mediagoblin/staticdirect.py @@ -1,4 +1,4 @@ -# GNU Mediagoblin -- federated, autonomous media hosting +# GNU MediaGoblin -- federated, autonomous media hosting # Copyright (C) 2011 Free Software Foundation, Inc # # This program is free software: you can redistribute it and/or modify diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index e6e3a59d..a06a6b05 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -1,4 +1,4 @@ -# GNU Mediagoblin -- federated, autonomous media hosting +# GNU MediaGoblin -- federated, autonomous media hosting # Copyright (C) 2011 Free Software Foundation, Inc # # This program is free software: you can redistribute it and/or modify diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 546dc264..0934df2b 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -1,6 +1,6 @@ - {% block title %}Mediagoblin{% endblock title %} + {% block title %}MediaGoblin{% endblock title %} {# #} @@ -13,10 +13,10 @@ {% block mediagoblin_logo %} - Mediagoblin + MediaGoblin {% endblock %} - {% block mediagoblin_header_title %}Mediagoblin Home{% endblock %} + {% block mediagoblin_header_title %}MediaGoblin Home{% endblock %} diff --git a/mediagoblin/tests/__init__.py b/mediagoblin/tests/__init__.py index 98a67908..c129cbf8 100644 --- a/mediagoblin/tests/__init__.py +++ b/mediagoblin/tests/__init__.py @@ -1,4 +1,4 @@ -# GNU Mediagoblin -- federated, autonomous media hosting +# GNU MediaGoblin -- federated, autonomous media hosting # Copyright (C) 2011 Free Software Foundation, Inc # # This program is free software: you can redistribute it and/or modify diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py index d7397723..94ce6bba 100644 --- a/mediagoblin/tests/test_auth.py +++ b/mediagoblin/tests/test_auth.py @@ -1,4 +1,4 @@ -# GNU Mediagoblin -- federated, autonomous media hosting +# GNU MediaGoblin -- federated, autonomous media hosting # Copyright (C) 2011 Free Software Foundation, Inc # # This program is free software: you can redistribute it and/or modify diff --git a/mediagoblin/tests/test_storage.py b/mediagoblin/tests/test_storage.py index 79f1c8ea..94e16a8e 100644 --- a/mediagoblin/tests/test_storage.py +++ b/mediagoblin/tests/test_storage.py @@ -1,4 +1,4 @@ -# GNU Mediagoblin -- federated, autonomous media hosting +# GNU MediaGoblin -- federated, autonomous media hosting # Copyright (C) 2011 Free Software Foundation, Inc # # This program is free software: you can redistribute it and/or modify diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 6551a3cc..d8d981c9 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -1,4 +1,4 @@ -# GNU Mediagoblin -- federated, autonomous media hosting +# GNU MediaGoblin -- federated, autonomous media hosting # Copyright (C) 2011 Free Software Foundation, Inc # # This program is free software: you can redistribute it and/or modify diff --git a/mediagoblin/views.py b/mediagoblin/views.py index 37ed3a62..7a3cf098 100644 --- a/mediagoblin/views.py +++ b/mediagoblin/views.py @@ -1,4 +1,4 @@ -# GNU Mediagoblin -- federated, autonomous media hosting +# GNU MediaGoblin -- federated, autonomous media hosting # Copyright (C) 2011 Free Software Foundation, Inc # # This program is free software: you can redistribute it and/or modify diff --git a/setup.py b/setup.py index 8be416b1..1d790779 100644 --- a/setup.py +++ b/setup.py @@ -1,4 +1,4 @@ -# GNU Mediagoblin -- federated, autonomous media hosting +# GNU MediaGoblin -- federated, autonomous media hosting # Copyright (C) 2011 Free Software Foundation, Inc # # This program is free software: you can redistribute it and/or modify From 908dee6b154d6e83add98607124896740dce0139 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Wed, 13 Apr 2011 10:13:35 -0400 Subject: [PATCH 0075/2731] Clarifies licensing for the project. --- docs/hackinghowto.rst | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index 8356f435..4586188e 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -75,17 +75,21 @@ Run:: Creating a new file =================== -All new files need to have the standard GNU MediaGoblin -license/copyright header. +All new files need to have license/copyright information. -For Python files, include the license/copyright header at the top such -that each line of the header starts with ``#``. +The following kinds of files get the GNU AGPL header: -For Jinja2 template files, FIXME. +* Python files +* JavaScript files +* templates +* other files with code in them -For JavaScript files, FIXME. +The following files get a CC BY header: -For CSS files, FIXME. +* CSS files -If you're doing the copy-paste thing, make sure to update the -copyright year. +The following files don't get a header because that's hard, but are +under the CC BY license: + +* image files +* video files From 76c9ea6b5fbdd1311b926b53b8b2c8afca9a69df Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Wed, 13 Apr 2011 10:21:06 -0400 Subject: [PATCH 0076/2731] Adds license/copyright headers to jinja2 templates. --- .../templates/mediagoblin/auth/login.html | 17 +++++++++++++++++ .../templates/mediagoblin/auth/register.html | 17 +++++++++++++++++ .../mediagoblin/auth/register_success.html | 17 +++++++++++++++++ mediagoblin/templates/mediagoblin/base.html | 17 +++++++++++++++++ .../templates/mediagoblin/test_submit.html | 17 +++++++++++++++++ .../templates/mediagoblin/utils/wtforms.html | 17 +++++++++++++++++ 6 files changed, 102 insertions(+) diff --git a/mediagoblin/templates/mediagoblin/auth/login.html b/mediagoblin/templates/mediagoblin/auth/login.html index 4e775f56..311a73f8 100644 --- a/mediagoblin/templates/mediagoblin/auth/login.html +++ b/mediagoblin/templates/mediagoblin/auth/login.html @@ -1,3 +1,20 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} {% extends "mediagoblin/base.html" %} {% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} diff --git a/mediagoblin/templates/mediagoblin/auth/register.html b/mediagoblin/templates/mediagoblin/auth/register.html index 6a051654..f3489397 100644 --- a/mediagoblin/templates/mediagoblin/auth/register.html +++ b/mediagoblin/templates/mediagoblin/auth/register.html @@ -1,3 +1,20 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} {% extends "mediagoblin/base.html" %} {% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} diff --git a/mediagoblin/templates/mediagoblin/auth/register_success.html b/mediagoblin/templates/mediagoblin/auth/register_success.html index afbd57d7..cd82a0b9 100644 --- a/mediagoblin/templates/mediagoblin/auth/register_success.html +++ b/mediagoblin/templates/mediagoblin/auth/register_success.html @@ -1,3 +1,20 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} {% extends "mediagoblin/base.html" %} {% block mediagoblin_content %} diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 0934df2b..01c68258 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -1,3 +1,20 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} {% block title %}MediaGoblin{% endblock title %} diff --git a/mediagoblin/templates/mediagoblin/test_submit.html b/mediagoblin/templates/mediagoblin/test_submit.html index 2fae634c..b02f4e40 100644 --- a/mediagoblin/templates/mediagoblin/test_submit.html +++ b/mediagoblin/templates/mediagoblin/test_submit.html @@ -1,3 +1,20 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} {% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} diff --git a/mediagoblin/templates/mediagoblin/utils/wtforms.html b/mediagoblin/templates/mediagoblin/utils/wtforms.html index 641f51d5..15556936 100644 --- a/mediagoblin/templates/mediagoblin/utils/wtforms.html +++ b/mediagoblin/templates/mediagoblin/utils/wtforms.html @@ -1,3 +1,20 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} {% macro render_table(form) -%} {% for field in form %} From 5a40e1ec5cb3fc9fe4dbc8078bb45627bf597f72 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Thu, 14 Apr 2011 22:28:02 -0400 Subject: [PATCH 0077/2731] Overhauls TOC of manual This work is based on discussion and etherpadding (is that a verb) on April 14th between Deb, Greg, Karen, Will, and Chris. It was an epic collaborative sprint. --- docs/codedocs.rst | 5 +++ docs/contributinghowto.rst | 58 +++++++++++++++++++++++++++++++++++ docs/foreward.rst | 23 +++++++++++--- docs/hackinghowto.rst | 21 +++++++++++-- docs/index.rst | 16 +++++----- docs/mediagoblin.rst | 63 ++++++++++++++++++++++++++++++++++++++ docs/theminghowto.rst | 5 +++ docs/workflow.rst | 12 ++++++-- 8 files changed, 184 insertions(+), 19 deletions(-) create mode 100644 docs/codedocs.rst create mode 100644 docs/contributinghowto.rst create mode 100644 docs/mediagoblin.rst create mode 100644 docs/theminghowto.rst diff --git a/docs/codedocs.rst b/docs/codedocs.rst new file mode 100644 index 00000000..09f91274 --- /dev/null +++ b/docs/codedocs.rst @@ -0,0 +1,5 @@ +==================== + Code Documentation +==================== + +FIXME - stub! diff --git a/docs/contributinghowto.rst b/docs/contributinghowto.rst new file mode 100644 index 00000000..1b34badc --- /dev/null +++ b/docs/contributinghowto.rst @@ -0,0 +1,58 @@ +==================== + Contributing HOWTO +==================== + +We're super glad you want to contribute! + +There are a variety of ways you can help us and become part of the +team. We're not just looking for coders! We're also looking for +documentation writers, users, testers, evangelists, painters, bakers, +candle-stick makers... + +However, if you are a coder and you're looking to code, check out the +:ref:`hacking-howto`. + +The rest of this chapter talks about different things we need your +help with. + +**File bugs** + + Filing bugs is an important part of any project. For more + information on filing bugs, see :ref:`filing-bugs`. + + +**Translate GNU MediaGoblin** + + Knowing more than one language is an important skill. If you are + multi-lingual and are interested in translating GNU MediaGoblin, + see :ref:`translating`. + +FIXME - add additional things here + + +.. _filing-bugs: + +File bugs +========= + +GNU MediaGoblin uses a bug tracker called `Redmine +`. + +The bug tracker is at http://bugs.foocorp.net/ and bugs go in the +``GNU mediagoblin`` project. + +FIXME - how to file a good bug report + + +.. _translating: + +Translate GNU MediaGoblin +========================= + +FIXME - need to write this + + +Where to go when you get stuck +============================== + +FIXME - need to write this diff --git a/docs/foreward.rst b/docs/foreward.rst index 4fc8152a..0a3630a1 100644 --- a/docs/foreward.rst +++ b/docs/foreward.rst @@ -2,17 +2,30 @@ Foreward ========== -What is GNU MediaGoblin -======================= +About this manual +================= -See the web-site at http://mediagoblin.org/ . +This is the GNU MediaGoblin manual. This documentation targets the +following groups of individuals: + +* people who want to use the software +* people who want to deploy the software +* contributors + +This manual is a living document and is in the ``mediagoblin`` +repository in the ``docs/`` directory. Who wrote this documentation ============================ -* Chris Webber -* Will Kahn-Greene +In no particular order: + +* Chris +* Will +* Deb +* Greg +* Karen How should I bring up errors in the documentation diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index 4586188e..986219e1 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -1,9 +1,12 @@ +.. _hacking-howto: + =============== Hacking HOWTO =============== -So you want to hack on GNU MediaGoblin -====================================== + +So you want to hack on GNU MediaGoblin? +======================================= First thing to do is check out the Web site where we list all the project infrastructure including: @@ -75,6 +78,8 @@ Run:: Creating a new file =================== +FIXME - this needs to be updated when it's set in stone. + All new files need to have license/copyright information. The following kinds of files get the GNU AGPL header: @@ -93,3 +98,15 @@ under the CC BY license: * image files * video files + + +Quickstart for Django programmers +================================= + +FIXME - write this + + +Bite-sized bugs to start with +============================= + +FIXME - write this diff --git a/docs/index.rst b/docs/index.rst index 965d5d7a..98d37969 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -6,23 +6,21 @@ Welcome to GNU MediaGoblin's documentation! =========================================== -This documentation covers the GNU MediaGoblin software. It is versioned -alongside the code and the source for this documentation is located in -the mediagoblin repository in the ``docs/`` directory. - -It is also viewable on the Web site in HTML form. - - -Contents: +Table of Contents: .. toctree:: :maxdepth: 2 foreward - softwarestack + mediagoblin deploymenthowto + contributinghowto hackinghowto + theminghowto + softwarestack designdecisions + workflow + codedocs Indices and tables diff --git a/docs/mediagoblin.rst b/docs/mediagoblin.rst new file mode 100644 index 00000000..6c3a8dfa --- /dev/null +++ b/docs/mediagoblin.rst @@ -0,0 +1,63 @@ +================= + GNU MediaGoblin +================= + +What is GNU MediaGoblin +======================= + +Three years ago, a number of free software luminaries got together at +the FSF office to answer the question, "What should software freedom +look like on the participatory web?" Those thinkers included Richard +Stallman - founder of the free software movement and instigator of the +GNU project, Evan Prodromou - the driving force behind Status.net, a +highly sucessful federated micro-blogging service, and FIXME. + +Since that time Identi.ca and Libre.fm have answered the +freedom-loving web-user's need for micro-blogging and music sharing. +Now, GNU MediaGoblin is building a format for users to share photos. +Later versions of MediaGoblin will include support for video and other +media as well as tools to encourage collaboration on media projects. + + +Why are we doing this? +====================== + +Centralization and proprietization of media on the internet is a +serious problem and makes the web go from a system of extreme +resilience to a system of frightening fragility. We believe people +should be able to own their data and that measn someone has to build +the tools to make it possible. We decide that in this case, that +someone would be us! + + +Who are you? +============ + +Free software activists and folks who have worked on a variety of +other projects like Libre.fm, GNU Social, Status.net, Miro, Miro +Community, OpenHatch and other projects as well. We're admirers and +contributors. We're writers and painters. We're friendly and +dedicated to computer user freedom. + + +How can I participate? +====================== + +See `Get Involved `. + + +How is this licensed? +===================== + +FIXME - write this once we work out the details + + +Is this an official GNU Project? What does that mean? +====================================================== + +We are! It means that we meet the GNU Project's rigourous standards +for free software. To find out more about what that means, check out +`the GNU site `. + +Please feel free to contact us with further questions! + diff --git a/docs/theminghowto.rst b/docs/theminghowto.rst new file mode 100644 index 00000000..6ded4ac7 --- /dev/null +++ b/docs/theminghowto.rst @@ -0,0 +1,5 @@ +=============== + Theming HOWTO +=============== + +FIXME - stub! diff --git a/docs/workflow.rst b/docs/workflow.rst index 218a6abd..b72031de 100644 --- a/docs/workflow.rst +++ b/docs/workflow.rst @@ -1,6 +1,12 @@ -======================================================== - Workflow, and other structurally significant braindumps -======================================================== +========================================================================== + Design Document: Workflow, and other structurally significant braindumps +========================================================================== + +.. Note:: + + When we get a wiki, this will get moved there. It's here for now + mostly because we didn't have a better place for it. + This document attempts to describe the envisioned workflow of mediagoblin, from a structural standpoint. For now, *nothing* in this From 3c1a9d753c6f376927ff938d4f201838722e8c10 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 15 Apr 2011 08:15:13 -0500 Subject: [PATCH 0078/2731] Ignore the docs/_build directory. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 7db77c06..709c250d 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ eggs/ mediagoblin.egg-info *.pyc *.pyo +docs/_build/ \ No newline at end of file From b1bb050b27e0a5d87e41b3228a394c8006ecce8e Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 16 Apr 2011 09:36:36 -0500 Subject: [PATCH 0079/2731] Added delete_file, url_for_file methods to BasicFileStorage --- mediagoblin/storage.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index a06a6b05..4dbb2cfd 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -22,6 +22,7 @@ from werkzeug.utils import secure_filename class Error(Exception): pass class InvalidFilepath(Error): pass +class NoWebServing(Error): pass class NotImplementedError(Error): pass @@ -136,15 +137,15 @@ class BasicFileStorage(StorageInterface): Basic local filesystem implementation of storage API """ - def __init__(self, base_dir, serve_url=None): + def __init__(self, base_dir, base_url=None): """ Keyword arguments: - base_dir: Base directory things will be served out of. MUST be an absolute path. - - serve_url: URL files will be served from + - base_url: URL files will be served from """ self.base_dir = base_dir - self.serve_url = serve_url + self.base_url = base_url def _resolve_filepath(self, filepath): """ @@ -166,9 +167,16 @@ class BasicFileStorage(StorageInterface): # Grab and return the file in the mode specified return open(self._resolve_filepath(filepath), mode) - def delete_file(self, filepath): - pass + # TODO: Also delete unused directories if empty (safely, with + # checks to avoid race conditions). + os.remove(self._resolve_filepath(filepath)) def url_for_file(self, filepath): - pass + if not self.base_url: + raise NoWebServing( + "base_url not set, cannot provide file urls") + + return urlparse.urljoin( + self.base_url, + '/'.join(clean_listy_filepath(filepath))) From b0bfb766d95cf7eeed2c56aa7a84c496f5f5a6f2 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 16 Apr 2011 10:27:03 -0500 Subject: [PATCH 0080/2731] when running get_unique_filepath, clean_listy_filepath from the get-go --- mediagoblin/storage.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index 4dbb2cfd..d697276a 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -126,6 +126,10 @@ class StorageInterface(object): >>> storage_handler.get_unique_filename(['dir1', 'dir2', 'fname.jpg']) [u'dir1', u'dir2', u'd02c3571-dd62-4479-9d62-9e3012dada29-fname.jpg'] """ + # Make sure we have a clean filepath to start with, since + # we'll be possibly tacking on stuff to the filename. + filepath = clean_listy_filepath(filepath) + if self.file_exists(filepath): return filepath[:-1] + ["%s-%s" % (uuid.uuid4(), filepath[-1])] else: From d0e3a5341e96de3356d70baeca13dedd32d401dd Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 16 Apr 2011 10:59:23 -0500 Subject: [PATCH 0081/2731] "if not os.path.exists(directory)", not "if not os.path.exists('directory')" --- mediagoblin/storage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index d697276a..90322f5a 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -165,7 +165,7 @@ class BasicFileStorage(StorageInterface): # Make directories if necessary if len(filepath) > 1: directory = self._resolve_filepath(filepath[:-1]) - if not os.path.exists('directory'): + if not os.path.exists(directory): os.makedirs(directory) # Grab and return the file in the mode specified From d2be0838a7492a8fe7eeeb19257735e235e9fe26 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 16 Apr 2011 11:00:53 -0500 Subject: [PATCH 0082/2731] Tests for BasicFileStorage.get_file() --- mediagoblin/tests/test_storage.py | 34 ++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/mediagoblin/tests/test_storage.py b/mediagoblin/tests/test_storage.py index 94e16a8e..38c820bf 100644 --- a/mediagoblin/tests/test_storage.py +++ b/mediagoblin/tests/test_storage.py @@ -104,7 +104,39 @@ def test_basic_storage_get_unique_filepath(): def test_basic_storage_get_file(): - pass + tmpdir, this_storage = get_tmp_filestorage() + + # Write a brand new file + filepath = ['dir1', 'dir2', 'ourfile.txt'] + + with this_storage.get_file(filepath, 'w') as our_file: + our_file.write('First file') + with this_storage.get_file(filepath, 'r') as our_file: + assert our_file.read() == 'First file' + assert os.path.exists(os.path.join(tmpdir, 'dir1/dir2/ourfile.txt')) + with file(os.path.join(tmpdir, 'dir1/dir2/ourfile.txt'), 'r') as our_file: + assert our_file.read() == 'First file' + + # Write to the same path but try to get a unique file. + new_filepath = this_storage.get_unique_filepath(filepath) + assert not os.path.exists(os.path.join(tmpdir, *new_filepath)) + + with this_storage.get_file(new_filepath, 'w') as our_file: + our_file.write('Second file') + with this_storage.get_file(new_filepath, 'r') as our_file: + assert our_file.read() == 'Second file' + assert os.path.exists(os.path.join(tmpdir, *new_filepath)) + with file(os.path.join(tmpdir, *new_filepath), 'r') as our_file: + assert our_file.read() == 'Second file' + + # Read from an existing file + manually_written_file = os.makedirs( + os.path.join(tmpdir, 'testydir')) + with file(os.path.join(tmpdir, 'testydir/testyfile.txt'), 'w') as testyfile: + testyfile.write('testy file! so testy.') + + with this_storage.get_file(['testydir', 'testyfile.txt']) as testyfile: + assert testyfile.read() == 'testy file! so testy.' def test_basic_storage_delete_file(): From d024806a0b3c027a19b0b0462a7633c457c01f8a Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 16 Apr 2011 11:03:32 -0500 Subject: [PATCH 0083/2731] Tests for BasicFileStorage.delete_file() --- mediagoblin/tests/test_storage.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/mediagoblin/tests/test_storage.py b/mediagoblin/tests/test_storage.py index 38c820bf..6a73cd82 100644 --- a/mediagoblin/tests/test_storage.py +++ b/mediagoblin/tests/test_storage.py @@ -140,7 +140,22 @@ def test_basic_storage_get_file(): def test_basic_storage_delete_file(): - pass + tmpdir, this_storage = get_tmp_filestorage() + + assert not os.path.exists( + os.path.join(tmpdir, 'dir1/dir2/ourfile.txt')) + + filepath = ['dir1', 'dir2', 'ourfile.txt'] + with this_storage.get_file(filepath, 'w') as our_file: + our_file.write('Testing this file') + + assert os.path.exists( + os.path.join(tmpdir, 'dir1/dir2/ourfile.txt')) + + this_storage.delete_file(filepath) + + assert not os.path.exists( + os.path.join(tmpdir, 'dir1/dir2/ourfile.txt')) def test_basic_storage_url_for_file(): From f61a41b89d9143b23661e7e9b0ed5cef7d85a413 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 16 Apr 2011 12:46:58 -0500 Subject: [PATCH 0084/2731] Import urlparse! Duh. I should remember to turn flymake-mode on. --- mediagoblin/storage.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index 90322f5a..c39f5325 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -15,6 +15,7 @@ # along with this program. If not, see . import os +import urlparse import uuid from werkzeug.utils import secure_filename @@ -106,7 +107,7 @@ class StorageInterface(object): # Subclasses should override this method. self.__raise_not_implemented() - def url_for_file(self, filepath): + def file_url(self, filepath): """ Get the URL for this file. This assumes our storage has been mounted with some kind of URL which makes this possible. @@ -176,7 +177,7 @@ class BasicFileStorage(StorageInterface): # checks to avoid race conditions). os.remove(self._resolve_filepath(filepath)) - def url_for_file(self, filepath): + def file_url(self, filepath): if not self.base_url: raise NoWebServing( "base_url not set, cannot provide file urls") From 01da9e6a0e2f688940da497b48d2222c6e4546a6 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 16 Apr 2011 12:47:15 -0500 Subject: [PATCH 0085/2731] Test for BasicFileStorage.file_url() --- mediagoblin/tests/test_storage.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/mediagoblin/tests/test_storage.py b/mediagoblin/tests/test_storage.py index 6a73cd82..0db9df84 100644 --- a/mediagoblin/tests/test_storage.py +++ b/mediagoblin/tests/test_storage.py @@ -159,4 +159,24 @@ def test_basic_storage_delete_file(): def test_basic_storage_url_for_file(): - pass + # Not supplying a base_url should actually just bork. + tmpdir, this_storage = get_tmp_filestorage() + assert_raises( + storage.NoWebServing, + this_storage.file_url, + ['dir1', 'dir2', 'filename.txt']) + + # base_url without domain + tmpdir, this_storage = get_tmp_filestorage('/media/') + result = this_storage.file_url( + ['dir1', 'dir2', 'filename.txt']) + expected = '/media/dir1/dir2/filename.txt' + assert result == expected + + # base_url with domain + tmpdir, this_storage = get_tmp_filestorage( + 'http://media.example.org/ourmedia/') + result = this_storage.file_url( + ['dir1', 'dir2', 'filename.txt']) + expected = 'http://media.example.org/ourmedia/dir1/dir2/filename.txt' + assert result == expected From 5afb92275cddb1c971a80a4516c9a42de475c2d5 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 17 Apr 2011 09:18:12 -0500 Subject: [PATCH 0086/2731] Encourage storage systems to passively accept extraneous keyword arguments w/ **kwargs. Also did that for BasicFileStorage. --- mediagoblin/storage.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index c39f5325..d9a57c2a 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -65,9 +65,17 @@ class StorageInterface(object): It is important to note that the storage API idea of a "filepath" is actually like ['dir1', 'dir2', 'file.jpg'], so keep that in mind while reading method documentation. + + You should set up your __init__ method with whatever keyword + arguments are appropriate to your storage system, but you should + also passively accept all extraneous keyword arguments like: + + def __init__(self, **kwargs): + pass + + See BasicFileStorage as a simple implementation of the + StorageInterface. """ - # def __init__(self, *args, **kwargs): - # pass def __raise_not_implemented(self): """ @@ -142,7 +150,7 @@ class BasicFileStorage(StorageInterface): Basic local filesystem implementation of storage API """ - def __init__(self, base_dir, base_url=None): + def __init__(self, base_dir, base_url=None, **kwargs): """ Keyword arguments: - base_dir: Base directory things will be served out of. MUST From 904f61c2988af2e27701a9ea47140abab12624aa Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 17 Apr 2011 09:30:10 -0500 Subject: [PATCH 0087/2731] documentation for get_jinja_env --- mediagoblin/util.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index d8d981c9..bd509256 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -18,6 +18,13 @@ import jinja2 import mongokit def get_jinja_env(user_template_path=None): + """ + Set up the Jinja environment, possibly allowing for user + overridden templates. + + (In the future we may have another system for providing theming; + for now this is good enough.) + """ if user_template_path: loader = jinja2.ChoiceLoader( [jinja2.FileSystemLoader(user_template_path), From cb8ea0fe3f44f21c13e16f8d6363f56f31c52b27 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 17 Apr 2011 09:43:03 -0500 Subject: [PATCH 0088/2731] Moved app.load_controller -> util.import_component and added tests. --- mediagoblin/app.py | 16 +++++----------- mediagoblin/tests/test_util.py | 30 ++++++++++++++++++++++++++++++ mediagoblin/util.py | 18 ++++++++++++++++++ 3 files changed, 53 insertions(+), 11 deletions(-) create mode 100644 mediagoblin/tests/test_util.py diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 195d4792..0316b43c 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -14,10 +14,8 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -import sys import urllib -from beaker.middleware import SessionMiddleware import routes import mongokit from webob import Request, exc @@ -29,14 +27,6 @@ class Error(Exception): pass class ImproperlyConfigured(Error): pass -def load_controller(string): - module_name, func_name = string.split(':', 1) - __import__(module_name) - module = sys.modules[module_name] - func = getattr(module, func_name) - return func - - class MediaGoblinApp(object): """ Really basic wsgi app using routes and WebOb. @@ -71,7 +61,7 @@ class MediaGoblinApp(object): # Okay, no matches. 404 time! return exc.HTTPNotFound()(environ, start_response) - controller = load_controller(route_match['controller']) + controller = util.import_component(route_match['controller']) request.start_response = start_response request.matchdict = route_match @@ -87,9 +77,13 @@ class MediaGoblinApp(object): def paste_app_factory(global_config, **kw): + # Get the database connection connection = mongokit.Connection( kw.get('db_host'), kw.get('db_port')) + # Set up the storage systems. + ## TODO: allow for extra storage systems that aren't just + ## BasicFileStorage. mgoblin_app = MediaGoblinApp( connection, kw.get('db_name', 'mediagoblin'), user_template_path=kw.get('local_templates')) diff --git a/mediagoblin/tests/test_util.py b/mediagoblin/tests/test_util.py new file mode 100644 index 00000000..0e7a2967 --- /dev/null +++ b/mediagoblin/tests/test_util.py @@ -0,0 +1,30 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from mediagoblin import util + + +def _import_component_testing_method(silly_string): + # Just for the sake of testing that our component importer works. + return u"'%s' is the silliest string I've ever seen" % silly_string + + +def test_import_component(): + imported_func = util.import_component( + 'mediagoblin.tests.test_util:_import_component_testing_method') + result = imported_func('hooobaladoobala') + expected = u"'hooobaladoobala' is the silliest string I've ever seen" + assert result == expected diff --git a/mediagoblin/util.py b/mediagoblin/util.py index bd509256..cf03a93e 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -14,6 +14,8 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +import sys + import jinja2 import mongokit @@ -54,3 +56,19 @@ def setup_user_in_request(request): request.session.invalidate() request.user = user + + +def import_component(import_string): + """ + Import a module component defined by STRING. Probably a method, + class, or global variable. + + Args: + - import_string: a string that defines what to import. Written + in the format of "module1.module2:component" + """ + module_name, func_name = import_string.split(':', 1) + __import__(module_name) + module = sys.modules[module_name] + func = getattr(module, func_name) + return func From ffa2293549fed20ff0d9fc5d90e6aaaadfa8000f Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 17 Apr 2011 10:24:36 -0500 Subject: [PATCH 0089/2731] storage.storage_system_from_paste_config() utility, w/ tests --- mediagoblin/storage.py | 49 +++++++++++++++++++++++++++++++ mediagoblin/tests/test_storage.py | 34 +++++++++++++++++++++ 2 files changed, 83 insertions(+) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index d9a57c2a..8a594e83 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -15,11 +15,14 @@ # along with this program. If not, see . import os +import re import urlparse import uuid from werkzeug.utils import secure_filename +from mediagoblin import util + class Error(Exception): pass class InvalidFilepath(Error): pass @@ -193,3 +196,49 @@ class BasicFileStorage(StorageInterface): return urlparse.urljoin( self.base_url, '/'.join(clean_listy_filepath(filepath))) + + +def storage_system_from_paste_config(paste_config, storage_prefix): + """ + Utility for setting up a storage system from the paste app config. + + Note that a special argument may be passed in to the paste_config + which is "${storage_prefix}_storage_class" which will provide an + import path to a storage system. This defaults to + "mediagoblin.storage:BasicFileStorage" if otherwise undefined. + + Arguments: + - paste_config: dictionary of config parameters + - storage_prefix: the storage system we're setting up / will be + getting keys/arguments from. For example 'publicstore' will + grab all arguments that are like 'publicstore_FOO'. + + Returns: + An instantiated storage system. + + Example: + storage_system_from_paste_config( + {'publicstore_base_url': '/media/', + 'publicstore_base_dir': '/var/whatever/media/'}, + 'publicstore') + + Will return: + BasicFileStorage( + base_url='/media/', + base_dir='/var/whatever/media') + """ + prefix_re = re.compile('^%s_(.+)$' % re.escape(storage_prefix)) + + config_params = dict( + [(prefix_re.match(key).groups()[0], value) + for key, value in paste_config.iteritems() + if prefix_re.match(key)]) + + if config_params.has_key('storage_class'): + storage_class = config_params['storage_class'] + config_params.pop('storage_class') + else: + storage_class = "mediagoblin.storage:BasicFileStorage" + + storage_class = util.import_component(storage_class) + return storage_class(**config_params) diff --git a/mediagoblin/tests/test_storage.py b/mediagoblin/tests/test_storage.py index 0db9df84..61dd5dca 100644 --- a/mediagoblin/tests/test_storage.py +++ b/mediagoblin/tests/test_storage.py @@ -24,6 +24,10 @@ from werkzeug.utils import secure_filename from mediagoblin import storage +################ +# Test utilities +################ + def test_clean_listy_filepath(): expected = [u'dir1', u'dir2', u'linooks.jpg'] assert storage.clean_listy_filepath( @@ -43,6 +47,36 @@ def test_clean_listy_filepath(): ['../../', 'linooks.jpg']) +class FakeStorageSystem(): + def __init__(self, foobie, blech, **kwargs): + self.foobie = foobie + self.blech = blech + + +def test_storage_system_from_paste_config(): + this_storage = storage.storage_system_from_paste_config( + {'somestorage_base_url': 'http://example.org/moodia/', + 'somestorage_base_dir': '/tmp/', + 'somestorage_garbage_arg': 'garbage_arg', + 'garbage_arg': 'trash'}, + 'somestorage') + assert this_storage.base_url == 'http://example.org/moodia/' + assert this_storage.base_dir == '/tmp/' + assert this_storage.__class__ is storage.BasicFileStorage + + this_storage = storage.storage_system_from_paste_config( + {'somestorage_foobie': 'eiboof', + 'somestorage_blech': 'hcelb', + 'somestorage_garbage_arg': 'garbage_arg', + 'garbage_arg': 'trash', + 'somestorage_storage_class': + 'mediagoblin.tests.test_storage:FakeStorageSystem'}, + 'somestorage') + assert this_storage.foobie == 'eiboof' + assert this_storage.blech == 'hcelb' + assert this_storage.__class__ is FakeStorageSystem + + ########################## # Basic file storage tests ########################## From d807b7252d56f415bdc948007e69b05858f3d765 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 17 Apr 2011 10:26:52 -0500 Subject: [PATCH 0090/2731] Reorganization of storage.py. Ordering: Errors, Storage interface / implementation, utils. --- mediagoblin/storage.py | 63 +++++++++++++++++++++++++----------------- 1 file changed, 37 insertions(+), 26 deletions(-) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index 8a594e83..5d7e70d6 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -23,6 +23,9 @@ from werkzeug.utils import secure_filename from mediagoblin import util +######## +# Errors +######## class Error(Exception): pass class InvalidFilepath(Error): pass @@ -31,32 +34,9 @@ class NoWebServing(Error): pass class NotImplementedError(Error): pass -def clean_listy_filepath(listy_filepath): - """ - Take a listy filepath (like ['dir1', 'dir2', 'filename.jpg']) and - clean out any nastiness from it. - - For example: - >>> clean_listy_filepath([u'/dir1/', u'foo/../nasty', u'linooks.jpg']) - [u'dir1', u'foo_.._nasty', u'linooks.jpg'] - - Args: - - listy_filepath: a list of filepath components, mediagoblin - storage API style. - - Returns: - A cleaned list of unicode objects. - """ - cleaned_filepath = [ - unicode(secure_filename(filepath)) - for filepath in listy_filepath] - - if u'' in cleaned_filepath: - raise InvalidFilepath( - "A filename component could not be resolved into a usable name.") - - return cleaned_filepath - +############################################### +# Storage interface & basic file implementation +############################################### class StorageInterface(object): """ @@ -198,6 +178,37 @@ class BasicFileStorage(StorageInterface): '/'.join(clean_listy_filepath(filepath))) +########### +# Utilities +########### + +def clean_listy_filepath(listy_filepath): + """ + Take a listy filepath (like ['dir1', 'dir2', 'filename.jpg']) and + clean out any nastiness from it. + + For example: + >>> clean_listy_filepath([u'/dir1/', u'foo/../nasty', u'linooks.jpg']) + [u'dir1', u'foo_.._nasty', u'linooks.jpg'] + + Args: + - listy_filepath: a list of filepath components, mediagoblin + storage API style. + + Returns: + A cleaned list of unicode objects. + """ + cleaned_filepath = [ + unicode(secure_filename(filepath)) + for filepath in listy_filepath] + + if u'' in cleaned_filepath: + raise InvalidFilepath( + "A filename component could not be resolved into a usable name.") + + return cleaned_filepath + + def storage_system_from_paste_config(paste_config, storage_prefix): """ Utility for setting up a storage system from the paste app config. From 5afdd7a1de50fcf31a7e051929f311f3da8332b2 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 17 Apr 2011 10:36:46 -0500 Subject: [PATCH 0091/2731] Actually set up the storage systems --- mediagoblin/app.py | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 0316b43c..1aab1efb 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -20,7 +20,7 @@ import routes import mongokit from webob import Request, exc -from mediagoblin import routing, util, models +from mediagoblin import routing, util, models, storage class Error(Exception): pass @@ -31,13 +31,24 @@ class MediaGoblinApp(object): """ Really basic wsgi app using routes and WebOb. """ - def __init__(self, connection, database_path, user_template_path=None): + def __init__(self, connection, database_path, + public_store, queue_store, + user_template_path=None): + # Get the template environment self.template_env = util.get_jinja_env(user_template_path) + + # Set up storage systems + self.public_store = public_store + self.queue_store = queue_store + + # Set up database self.connection = connection self.db = connection[database_path] + models.register_models(connection) + + # set up routing self.routing = routing.get_mapper() - models.register_models(connection) def __call__(self, environ, start_response): request = Request(environ) @@ -82,10 +93,14 @@ def paste_app_factory(global_config, **kw): kw.get('db_host'), kw.get('db_port')) # Set up the storage systems. - ## TODO: allow for extra storage systems that aren't just - ## BasicFileStorage. + public_store = storage.storage_system_from_paste_config( + kw, 'publicstore') + queue_store = storage.storage_system_from_paste_config( + kw, 'queuestore') + mgoblin_app = MediaGoblinApp( connection, kw.get('db_name', 'mediagoblin'), + public_store=public_store, queue_store=queue_store, user_template_path=kw.get('local_templates')) return mgoblin_app From af37cf47b03d0bbf370fc542b7d5f4c1dfc4e1c7 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 17 Apr 2011 12:42:48 -0500 Subject: [PATCH 0092/2731] Buildout'ifying things. - added buildout's bootstrap.py - added buildout.cfg - adjustments to .gitignore. --- .gitignore | 4 +- bootstrap.py | 260 +++++++++++++++++++++++++++++++++++++++++++++++++++ buildout.cfg | 12 +++ 3 files changed, 275 insertions(+), 1 deletion(-) create mode 100644 bootstrap.py create mode 100644 buildout.cfg diff --git a/.gitignore b/.gitignore index 709c250d..b9f1554e 100644 --- a/.gitignore +++ b/.gitignore @@ -3,8 +3,10 @@ bin/ develop-eggs/ build/ eggs/ +parts/ .installed.cfg mediagoblin.egg-info *.pyc *.pyo -docs/_build/ \ No newline at end of file +docs/_build/ +user_dev/ diff --git a/bootstrap.py b/bootstrap.py new file mode 100644 index 00000000..5f2cb083 --- /dev/null +++ b/bootstrap.py @@ -0,0 +1,260 @@ +############################################################################## +# +# Copyright (c) 2006 Zope Foundation and Contributors. +# All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +# FOR A PARTICULAR PURPOSE. +# +############################################################################## +"""Bootstrap a buildout-based project + +Simply run this script in a directory containing a buildout.cfg. +The script accepts buildout command-line options, so you can +use the -c option to specify an alternate configuration file. +""" + +import os, shutil, sys, tempfile, textwrap, urllib, urllib2, subprocess +from optparse import OptionParser + +if sys.platform == 'win32': + def quote(c): + if ' ' in c: + return '"%s"' % c # work around spawn lamosity on windows + else: + return c +else: + quote = str + +# See zc.buildout.easy_install._has_broken_dash_S for motivation and comments. +stdout, stderr = subprocess.Popen( + [sys.executable, '-Sc', + 'try:\n' + ' import ConfigParser\n' + 'except ImportError:\n' + ' print 1\n' + 'else:\n' + ' print 0\n'], + stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate() +has_broken_dash_S = bool(int(stdout.strip())) + +# In order to be more robust in the face of system Pythons, we want to +# run without site-packages loaded. This is somewhat tricky, in +# particular because Python 2.6's distutils imports site, so starting +# with the -S flag is not sufficient. However, we'll start with that: +if not has_broken_dash_S and 'site' in sys.modules: + # We will restart with python -S. + args = sys.argv[:] + args[0:0] = [sys.executable, '-S'] + args = map(quote, args) + os.execv(sys.executable, args) +# Now we are running with -S. We'll get the clean sys.path, import site +# because distutils will do it later, and then reset the path and clean +# out any namespace packages from site-packages that might have been +# loaded by .pth files. +clean_path = sys.path[:] +import site +sys.path[:] = clean_path +for k, v in sys.modules.items(): + if k in ('setuptools', 'pkg_resources') or ( + hasattr(v, '__path__') and + len(v.__path__)==1 and + not os.path.exists(os.path.join(v.__path__[0],'__init__.py'))): + # This is a namespace package. Remove it. + sys.modules.pop(k) + +is_jython = sys.platform.startswith('java') + +setuptools_source = 'http://peak.telecommunity.com/dist/ez_setup.py' +distribute_source = 'http://python-distribute.org/distribute_setup.py' + +# parsing arguments +def normalize_to_url(option, opt_str, value, parser): + if value: + if '://' not in value: # It doesn't smell like a URL. + value = 'file://%s' % ( + urllib.pathname2url( + os.path.abspath(os.path.expanduser(value))),) + if opt_str == '--download-base' and not value.endswith('/'): + # Download base needs a trailing slash to make the world happy. + value += '/' + else: + value = None + name = opt_str[2:].replace('-', '_') + setattr(parser.values, name, value) + +usage = '''\ +[DESIRED PYTHON FOR BUILDOUT] bootstrap.py [options] + +Bootstraps a buildout-based project. + +Simply run this script in a directory containing a buildout.cfg, using the +Python that you want bin/buildout to use. + +Note that by using --setup-source and --download-base to point to +local resources, you can keep this script from going over the network. +''' + +parser = OptionParser(usage=usage) +parser.add_option("-v", "--version", dest="version", + help="use a specific zc.buildout version") +parser.add_option("-d", "--distribute", + action="store_true", dest="use_distribute", default=False, + help="Use Distribute rather than Setuptools.") +parser.add_option("--setup-source", action="callback", dest="setup_source", + callback=normalize_to_url, nargs=1, type="string", + help=("Specify a URL or file location for the setup file. " + "If you use Setuptools, this will default to " + + setuptools_source + "; if you use Distribute, this " + "will default to " + distribute_source +".")) +parser.add_option("--download-base", action="callback", dest="download_base", + callback=normalize_to_url, nargs=1, type="string", + help=("Specify a URL or directory for downloading " + "zc.buildout and either Setuptools or Distribute. " + "Defaults to PyPI.")) +parser.add_option("--eggs", + help=("Specify a directory for storing eggs. Defaults to " + "a temporary directory that is deleted when the " + "bootstrap script completes.")) +parser.add_option("-t", "--accept-buildout-test-releases", + dest='accept_buildout_test_releases', + action="store_true", default=False, + help=("Normally, if you do not specify a --version, the " + "bootstrap script and buildout gets the newest " + "*final* versions of zc.buildout and its recipes and " + "extensions for you. If you use this flag, " + "bootstrap and buildout will get the newest releases " + "even if they are alphas or betas.")) +parser.add_option("-c", None, action="store", dest="config_file", + help=("Specify the path to the buildout configuration " + "file to be used.")) + +options, args = parser.parse_args() + +# if -c was provided, we push it back into args for buildout's main function +if options.config_file is not None: + args += ['-c', options.config_file] + +if options.eggs: + eggs_dir = os.path.abspath(os.path.expanduser(options.eggs)) +else: + eggs_dir = tempfile.mkdtemp() + +if options.setup_source is None: + if options.use_distribute: + options.setup_source = distribute_source + else: + options.setup_source = setuptools_source + +if options.accept_buildout_test_releases: + args.append('buildout:accept-buildout-test-releases=true') +args.append('bootstrap') + +try: + import pkg_resources + import setuptools # A flag. Sometimes pkg_resources is installed alone. + if not hasattr(pkg_resources, '_distribute'): + raise ImportError +except ImportError: + ez_code = urllib2.urlopen( + options.setup_source).read().replace('\r\n', '\n') + ez = {} + exec ez_code in ez + setup_args = dict(to_dir=eggs_dir, download_delay=0) + if options.download_base: + setup_args['download_base'] = options.download_base + if options.use_distribute: + setup_args['no_fake'] = True + ez['use_setuptools'](**setup_args) + if 'pkg_resources' in sys.modules: + reload(sys.modules['pkg_resources']) + import pkg_resources + # This does not (always?) update the default working set. We will + # do it. + for path in sys.path: + if path not in pkg_resources.working_set.entries: + pkg_resources.working_set.add_entry(path) + +cmd = [quote(sys.executable), + '-c', + quote('from setuptools.command.easy_install import main; main()'), + '-mqNxd', + quote(eggs_dir)] + +if not has_broken_dash_S: + cmd.insert(1, '-S') + +find_links = options.download_base +if not find_links: + find_links = os.environ.get('bootstrap-testing-find-links') +if find_links: + cmd.extend(['-f', quote(find_links)]) + +if options.use_distribute: + setup_requirement = 'distribute' +else: + setup_requirement = 'setuptools' +ws = pkg_resources.working_set +setup_requirement_path = ws.find( + pkg_resources.Requirement.parse(setup_requirement)).location +env = dict( + os.environ, + PYTHONPATH=setup_requirement_path) + +requirement = 'zc.buildout' +version = options.version +if version is None and not options.accept_buildout_test_releases: + # Figure out the most recent final version of zc.buildout. + import setuptools.package_index + _final_parts = '*final-', '*final' + def _final_version(parsed_version): + for part in parsed_version: + if (part[:1] == '*') and (part not in _final_parts): + return False + return True + index = setuptools.package_index.PackageIndex( + search_path=[setup_requirement_path]) + if find_links: + index.add_find_links((find_links,)) + req = pkg_resources.Requirement.parse(requirement) + if index.obtain(req) is not None: + best = [] + bestv = None + for dist in index[req.project_name]: + distv = dist.parsed_version + if _final_version(distv): + if bestv is None or distv > bestv: + best = [dist] + bestv = distv + elif distv == bestv: + best.append(dist) + if best: + best.sort() + version = best[-1].version +if version: + requirement = '=='.join((requirement, version)) +cmd.append(requirement) + +if is_jython: + import subprocess + exitcode = subprocess.Popen(cmd, env=env).wait() +else: # Windows prefers this, apparently; otherwise we would prefer subprocess + exitcode = os.spawnle(*([os.P_WAIT, sys.executable] + cmd + [env])) +if exitcode != 0: + sys.stdout.flush() + sys.stderr.flush() + print ("An error occurred when trying to install zc.buildout. " + "Look above this message for any errors that " + "were output by easy_install.") + sys.exit(exitcode) + +ws.add_entry(eggs_dir) +ws.require(requirement) +import zc.buildout.buildout +zc.buildout.buildout.main(args) +if not options.eggs: # clean up temporary egg directory + shutil.rmtree(eggs_dir) diff --git a/buildout.cfg b/buildout.cfg new file mode 100644 index 00000000..e82e3827 --- /dev/null +++ b/buildout.cfg @@ -0,0 +1,12 @@ +[buildout] +develop = . +parts = mediagoblin + +[mediagoblin] +recipe=zc.recipe.egg +interpreter=python +eggs=mediagoblin +entry-points = + nosetests=nose:run_exit + paster=paste.script.command:run + From 3a69a5dcd60abea2a149a0b2702634bd8d3d5694 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 17 Apr 2011 12:44:39 -0500 Subject: [PATCH 0093/2731] Base MediaGoblin paste deploy config file. Should do what's necessary, work out of the box, be deployable. --- mediagoblin.ini | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 mediagoblin.ini diff --git a/mediagoblin.ini b/mediagoblin.ini new file mode 100644 index 00000000..4d940e80 --- /dev/null +++ b/mediagoblin.ini @@ -0,0 +1,33 @@ +[DEFAULT] +debug = true + +[composite:main] +use = egg:Paste#urlmap +/ = mediagoblin +/mgoblin_media/ = publicstore_serve + +[app:mediagoblin] +use = egg:mediagoblin#app +filter-with = beaker +queuestore_base_dir = %(here)s/user_dev/media/queue +publicstore_base_dir = %(here)s/user_dev/media/public +publicstore_base_url = /mgoblin_media/ +## Uncomment this to put some user-overriding templates here +#local_templates = %(here)s/user_dev/templates/ + +[app:publicstore_serve] +use = egg:Paste#static +document_root = %(here)s/user_dev/media/public + +[server:main] +use = egg:Paste#http +host = 127.0.0.1 +port = 6543 + +[filter:beaker] +use = egg:Beaker#beaker_session +cache_dir = %(here)s/user_dev/beaker +beaker.session.key = mediagoblin +# beaker.session.secret = somesupersecret +beaker.session.data_dir = %(here)s/user_dev/beaker/sessions/data +beaker.session.lock_dir = %(here)s/user_dev/beaker/sessions/lock From df0953ce453cd82989537df598613db2c0d3b055 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 17 Apr 2011 13:44:10 -0500 Subject: [PATCH 0094/2731] Buildout script which creates user_dev directory and necessary subdirectories for the user. --- buildout.cfg | 6 +++- mediagoblin/buildout_recipes.py | 50 +++++++++++++++++++++++++++++++++ setup.py | 3 ++ 3 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 mediagoblin/buildout_recipes.py diff --git a/buildout.cfg b/buildout.cfg index e82e3827..2b36fb7c 100644 --- a/buildout.cfg +++ b/buildout.cfg @@ -1,6 +1,6 @@ [buildout] develop = . -parts = mediagoblin +parts = mediagoblin make_user_dev_dirs [mediagoblin] recipe=zc.recipe.egg @@ -10,3 +10,7 @@ entry-points = nosetests=nose:run_exit paster=paste.script.command:run + +[make_user_dev_dirs] +recipe = mediagoblin:make_user_dev_dirs +path = user_dev \ No newline at end of file diff --git a/mediagoblin/buildout_recipes.py b/mediagoblin/buildout_recipes.py new file mode 100644 index 00000000..abb01b9e --- /dev/null +++ b/mediagoblin/buildout_recipes.py @@ -0,0 +1,50 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +import logging +import os + + +MAKE_SUBDIRECTORIES = ['media/queue', 'media/public', 'beaker'] + + +class MakeUserDevDirs(object): + """ + Simple recipe for making subdirectories for user buildout convenience + """ + def __init__(self, buildout, name, options): + self.buildout, self.name, self.options = buildout, name, options + + if self.options['path'].startswith('/'): + self.path = self.options['path'] + else: + self.path = os.path.join( + self.buildout['buildout']['directory'], + self.options['path']) + + def install(self): + for make_subdir in MAKE_SUBDIRECTORIES: + fulldir = os.path.join(self.path, make_subdir) + + if not os.path.exists(fulldir): + logging.getLogger(self.name).info( + 'Creating directory %s' % fulldir) + os.makedirs(fulldir) + + return () + + update = install diff --git a/setup.py b/setup.py index 1d790779..b47be4c3 100644 --- a/setup.py +++ b/setup.py @@ -45,5 +45,8 @@ setup( entry_points = """\ [paste.app_factory] app = mediagoblin.app:paste_app_factory + + [zc.buildout] + make_user_dev_dirs = mediagoblin.buildout_recipes:MakeUserDevDirs """, ) From 719f82bad308321554a8fdd21333b8afd370d5a3 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 17 Apr 2011 14:04:07 -0500 Subject: [PATCH 0095/2731] Updated hackinghowto.rst with info on how to use the new buildout stuff. --- docs/hackinghowto.rst | 49 +++++++++++++++++-------------------------- 1 file changed, 19 insertions(+), 30 deletions(-) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index 986219e1..31925413 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -22,20 +22,17 @@ to, what needs to be worked on, and other things besides! How to set up an environment for hacking ======================================== -The following assumes you have these things installed: +If running Debian GNU/Linux or a Debian-derived distro such as Mint or +Ubuntu, running the following should install necessary dependencies: -1. virtualenv: - - http://pypi.python.org/pypi/virtualenv - -2. virtualenv wrapper: - - http://www.doughellmann.com/projects/virtualenvwrapper/ - -3. git: - - http://git-scm.com/ + sudo apt-get install mongodb git-core python python-dev python-lxml +Note: The following instructions describe a development environment +that uses `zc.buildout `_ because it +involves less steps to get things running and less knowledge of python +packaging. However, if you prefer to use +`virtualenv `_, +that should work just fine. Follow these steps: @@ -43,28 +40,20 @@ Follow these steps: git clone http://git.gitorious.org/mediagoblin/mediagoblin.git -2. create a virtual environment:: +2. Bootstrap and run buildout:: - mkvirtualenv mediagoblin + cd mediagoblin + python bootstrap.py && ./bin/buildout -3. if that doesn't put you in the virtual environment you created, - then do:: +Now whenever you want to update mediagoblin's dependencies, just run:: - workon mediagoblin - -4. run:: - - python setup.py develop + ./bin/buildout -When you want to work on GNU MediaGoblin, make sure to enter your -virtual environment:: - - workon mediagoblin - -Any changes you make to the code will show up in your virtual -environment--there's no need to continuously run ``python setup.py -develop``. +Using this method, buildout should create a user_dev directory, in +which certain things will be stored (media, beaker session stuff, +etc). You can change this, but for development purposes this default +should be fine. Running the test suite @@ -72,7 +61,7 @@ Running the test suite Run:: - python setup.py test + ./bin/nosetests Creating a new file From dae6add99e73cc9c4385d7f7a907f12dea6c4578 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 17 Apr 2011 14:05:56 -0500 Subject: [PATCH 0096/2731] How to run the server --- docs/hackinghowto.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index 31925413..e44c42c2 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -56,6 +56,14 @@ etc). You can change this, but for development purposes this default should be fine. +Running the server +================== + +Run:: + + ./bin/paster serve mediagoblin.ini --reload + + Running the test suite ====================== From 582c4d5fb21f8584314d1ff6a81931e467ec7a04 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 17 Apr 2011 16:30:51 -0500 Subject: [PATCH 0097/2731] Add the staticdirector stuff to the mediagoblin wsgi app. --- mediagoblin.ini | 6 ++++++ mediagoblin/app.py | 22 +++++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/mediagoblin.ini b/mediagoblin.ini index 4d940e80..87f45ea6 100644 --- a/mediagoblin.ini +++ b/mediagoblin.ini @@ -5,6 +5,7 @@ debug = true use = egg:Paste#urlmap / = mediagoblin /mgoblin_media/ = publicstore_serve +/mgoblin_static/ = mediagoblin_static [app:mediagoblin] use = egg:mediagoblin#app @@ -12,6 +13,7 @@ filter-with = beaker queuestore_base_dir = %(here)s/user_dev/media/queue publicstore_base_dir = %(here)s/user_dev/media/public publicstore_base_url = /mgoblin_media/ +direct_remote_path = /mgoblin_static/ ## Uncomment this to put some user-overriding templates here #local_templates = %(here)s/user_dev/templates/ @@ -19,6 +21,10 @@ publicstore_base_url = /mgoblin_media/ use = egg:Paste#static document_root = %(here)s/user_dev/media/public +[app:mediagoblin_static] +use = egg:Paste#static +document_root = %(here)s/mediagoblin/static/ + [server:main] use = egg:Paste#http host = 127.0.0.1 diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 1aab1efb..5171da99 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -20,7 +20,7 @@ import routes import mongokit from webob import Request, exc -from mediagoblin import routing, util, models, storage +from mediagoblin import routing, util, models, storage, staticdirect class Error(Exception): pass @@ -33,6 +33,7 @@ class MediaGoblinApp(object): """ def __init__(self, connection, database_path, public_store, queue_store, + staticdirector, user_template_path=None): # Get the template environment self.template_env = util.get_jinja_env(user_template_path) @@ -49,10 +50,14 @@ class MediaGoblinApp(object): # set up routing self.routing = routing.get_mapper() + # set up staticdirector tool + self.staticdirector = staticdirector def __call__(self, environ, start_response): request = Request(environ) path_info = request.path_info + + ## Routing / controller loading stuff route_match = self.routing.match(path_info) # No matching page? @@ -75,11 +80,13 @@ class MediaGoblinApp(object): controller = util.import_component(route_match['controller']) request.start_response = start_response + ## Attach utilities to the request object request.matchdict = route_match request.app = self request.template_env = self.template_env request.urlgen = routes.URLGenerator(self.routing, environ) request.db = self.db + request.staticdirect = self.staticdirector # Do we really want to load this via middleware? Maybe? request.session = request.environ['beaker.session'] util.setup_user_in_request(request) @@ -98,9 +105,22 @@ def paste_app_factory(global_config, **kw): queue_store = storage.storage_system_from_paste_config( kw, 'queuestore') + # Set up the staticdirect system + if kw.has_key('direct_remote_path'): + staticdirector = staticdirect.RemoteStaticDirect( + kw['direct_remote_path'].strip()) + elif kw.has_key('direct_remote_paths'): + staticdirector = staticdirect.MultiRemoteStaticDirect( + dict([line.strip().split(' ', 1) + for line in kw['direct_remote_paths'].strip().splitlines()])) + else: + raise ImproperlyConfigured( + "One of direct_remote_path or direct_remote_paths must be provided") + mgoblin_app = MediaGoblinApp( connection, kw.get('db_name', 'mediagoblin'), public_store=public_store, queue_store=queue_store, + staticdirector=staticdirector, user_template_path=kw.get('local_templates')) return mgoblin_app From 0dd659459654dcaa683170e032ba493ab793d016 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 17 Apr 2011 16:36:01 -0500 Subject: [PATCH 0098/2731] Move the request.app stuff to the same area --- mediagoblin/app.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 5171da99..0157748c 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -82,14 +82,16 @@ class MediaGoblinApp(object): ## Attach utilities to the request object request.matchdict = route_match - request.app = self - request.template_env = self.template_env request.urlgen = routes.URLGenerator(self.routing, environ) - request.db = self.db - request.staticdirect = self.staticdirector # Do we really want to load this via middleware? Maybe? request.session = request.environ['beaker.session'] util.setup_user_in_request(request) + # Attach self as request.app + # Also attach a few utilities from request.app for convenience? + request.app = self + request.template_env = self.template_env + request.db = self.db + request.staticdirect = self.staticdirector return controller(request)(environ, start_response) From 54e219fed13e3587d3a53497fb4fcad2e997988e Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 17 Apr 2011 16:45:36 -0500 Subject: [PATCH 0099/2731] Makes most sense for [server:main] to be at bottom --- mediagoblin.ini | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mediagoblin.ini b/mediagoblin.ini index 87f45ea6..c6dd4f76 100644 --- a/mediagoblin.ini +++ b/mediagoblin.ini @@ -25,11 +25,6 @@ document_root = %(here)s/user_dev/media/public use = egg:Paste#static document_root = %(here)s/mediagoblin/static/ -[server:main] -use = egg:Paste#http -host = 127.0.0.1 -port = 6543 - [filter:beaker] use = egg:Beaker#beaker_session cache_dir = %(here)s/user_dev/beaker @@ -37,3 +32,8 @@ beaker.session.key = mediagoblin # beaker.session.secret = somesupersecret beaker.session.data_dir = %(here)s/user_dev/beaker/sessions/data beaker.session.lock_dir = %(here)s/user_dev/beaker/sessions/lock + +[server:main] +use = egg:Paste#http +host = 127.0.0.1 +port = 6543 From c66d0f5c669aac298344b26a1fe6ab5f3edc5625 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Tue, 19 Apr 2011 12:37:20 -0400 Subject: [PATCH 0100/2731] Hackinghowto tweaks * adjusts some whitespace and formatting * tweaks language and section breakdown --- docs/hackinghowto.rst | 79 +++++++++++++++++++++++++++++-------------- 1 file changed, 53 insertions(+), 26 deletions(-) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index e44c42c2..db8ddca6 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -19,41 +19,68 @@ Additionally, we have information on how to get involved, who to talk to, what needs to be worked on, and other things besides! -How to set up an environment for hacking -======================================== +How to set up and maintain an environment for hacking +===================================================== -If running Debian GNU/Linux or a Debian-derived distro such as Mint or -Ubuntu, running the following should install necessary dependencies: - sudo apt-get install mongodb git-core python python-dev python-lxml +Getting requirements +-------------------- -Note: The following instructions describe a development environment -that uses `zc.buildout `_ because it -involves less steps to get things running and less knowledge of python -packaging. However, if you prefer to use -`virtualenv `_, -that should work just fine. +First, you need to have the following installed before you can build +an environment for hacking on GNU MediaGoblin: -Follow these steps: +* Python 2.6 or 2.7 - http://www.python.org/ -1. clone the repository:: + You'll need Python as well as the dev files for building modules. - git clone http://git.gitorious.org/mediagoblin/mediagoblin.git +* python-lxml - http://lxml.de/ +* git - http://git-scm.com/ +* MongoDB - http://www.mongodb.org/ + +If you're running Debian GNU/Linux or a Debian-derived distribution +such as Mint or Ubuntu, running the following should install these +requirements:: + + sudo apt-get install mongodb git-core python python-dev python-lxml + + +Running bootstrap and buildout +------------------------------ + +After installing the requirements, follow these steps: + +1. Clone the repository:: + + git clone http://git.gitorious.org/mediagoblin/mediagoblin.git 2. Bootstrap and run buildout:: - cd mediagoblin - python bootstrap.py && ./bin/buildout - -Now whenever you want to update mediagoblin's dependencies, just run:: - - ./bin/buildout + cd mediagoblin + python bootstrap.py && ./bin/buildout -Using this method, buildout should create a user_dev directory, in -which certain things will be stored (media, beaker session stuff, -etc). You can change this, but for development purposes this default -should be fine. +That's it! Using this method, buildout should create a ``user_dev`` +directory, in which certain things will be stored (media, beaker +session stuff, etc). You can change this, but for development +purposes this default should be fine. + + +.. Note:: + + We used `zc.buildout `_ because it + involves fewer steps to get things running and less knowledge of + Python packaging. However, if you prefer to use `virtualenv + `_, that should work just + fine. + + +Updating dependencies +--------------------- + +While hacking on GNU MediaGoblin over time, you'll eventually have to +update the dependencies. To do that, run:: + + ./bin/buildout Running the server @@ -61,7 +88,7 @@ Running the server Run:: - ./bin/paster serve mediagoblin.ini --reload + ./bin/paster serve mediagoblin.ini --reload Running the test suite @@ -69,7 +96,7 @@ Running the test suite Run:: - ./bin/nosetests + ./bin/nosetests Creating a new file From bb3eaf20eaf6a413d5561b848ac6b051e36a2f79 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Tue, 19 Apr 2011 19:04:22 -0500 Subject: [PATCH 0101/2731] New requires_active_login decorator! --- mediagoblin/decorators.py | 44 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 mediagoblin/decorators.py diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py new file mode 100644 index 00000000..c6b4b545 --- /dev/null +++ b/mediagoblin/decorators.py @@ -0,0 +1,44 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +from webob import exc + + +def _make_safe(decorator, original): + """ + Copy the function data from the old function to the decorator. + """ + decorator.__name__ = original.__name__ + decorator.__dict__ = original.__dict__ + decorator.__doc__ = original.__doc__ + return decorator + + +def require_active_login(controller): + """ + Require an active login from the user. + """ + def new_controller_func(request, *args, **kwargs): + if not request.user or not request.user.get('session') == 'active': + # TODO: Indicate to the user that they were redirected + # here because an *active* user is required. + return exc.HTTPFound( + location=request.urlgen("mediagoblin.auth.login")) + + return controller(request, *args, **kwargs) + + return _make_safe(new_controller_func, controller) From e323a06851cf2a5c7f26d4a969185323c20c8d9d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Tue, 19 Apr 2011 19:05:46 -0500 Subject: [PATCH 0102/2731] Start of the submit view, but not much there quite yet. --- mediagoblin/routing.py | 5 +-- mediagoblin/submit/__init__.py | 0 mediagoblin/submit/forms.py | 26 +++++++++++++ mediagoblin/submit/routing.py | 22 +++++++++++ mediagoblin/submit/views.py | 37 +++++++++++++++++++ .../templates/mediagoblin/submit/start.html | 35 ++++++++++++++++++ 6 files changed, 122 insertions(+), 3 deletions(-) create mode 100644 mediagoblin/submit/__init__.py create mode 100644 mediagoblin/submit/forms.py create mode 100644 mediagoblin/submit/routing.py create mode 100644 mediagoblin/submit/views.py create mode 100644 mediagoblin/templates/mediagoblin/submit/start.html diff --git a/mediagoblin/routing.py b/mediagoblin/routing.py index 169917f0..b47bec8d 100644 --- a/mediagoblin/routing.py +++ b/mediagoblin/routing.py @@ -17,6 +17,7 @@ from routes import Mapper from mediagoblin.auth.routing import auth_routes +from mediagoblin.submit.routing import submit_routes def get_mapper(): @@ -26,10 +27,8 @@ def get_mapper(): mapping.connect( "index", "/", controller="mediagoblin.views:root_view") - mapping.connect( - "test_submit", "/test_submit/", - controller="mediagoblin.views:submit_test") mapping.extend(auth_routes, '/auth') + mapping.extend(submit_routes, '/submit') return mapping diff --git a/mediagoblin/submit/__init__.py b/mediagoblin/submit/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py new file mode 100644 index 00000000..fe51e7fd --- /dev/null +++ b/mediagoblin/submit/forms.py @@ -0,0 +1,26 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +import wtforms + + +class SubmitStartForm(wtforms.Form): + title = wtforms.TextField( + 'Title', + [wtforms.validators.Length(min=1, max=500)]) + description = wtforms.TextAreaField('Description of this work') + file = wtforms.FileField('File') diff --git a/mediagoblin/submit/routing.py b/mediagoblin/submit/routing.py new file mode 100644 index 00000000..b2713540 --- /dev/null +++ b/mediagoblin/submit/routing.py @@ -0,0 +1,22 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from routes.route import Route + +submit_routes = [ + Route('mediagoblin.submit.start', '/', + controller='mediagoblin.submit.views:submit_start'), + ] diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py new file mode 100644 index 00000000..aa0f8121 --- /dev/null +++ b/mediagoblin/submit/views.py @@ -0,0 +1,37 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +from webob import Response, exc + +from mediagoblin.decorators import require_active_login +from mediagoblin.submit import forms as submit_forms + + +@require_active_login +def submit_start(request): + """ + First view for submitting a file. + """ + submit_form = submit_forms.SubmitStartForm() + + # render + template = request.template_env.get_template( + 'mediagoblin/submit/start.html') + return Response( + template.render( + {'request': request, + 'submit_form': submit_form})) diff --git a/mediagoblin/templates/mediagoblin/submit/start.html b/mediagoblin/templates/mediagoblin/submit/start.html new file mode 100644 index 00000000..562d9050 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/submit/start.html @@ -0,0 +1,35 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% extends "mediagoblin/base.html" %} + +{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} + +{% block mediagoblin_content %} +

Submit yer media

+ +
+ + {{ wtforms_util.render_table(submit_form) }} + + + + +
+
+{% endblock %} From 6648c52ba8c186d469fb9d1102d2c11f0518011e Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Tue, 19 Apr 2011 19:11:38 -0500 Subject: [PATCH 0103/2731] Use request.app.db, not request.db --- mediagoblin/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index cf03a93e..c9c57dfc 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -47,7 +47,7 @@ def setup_user_in_request(request): return user = None - user = request.db.User.one( + user = request.app.db.User.one( {'_id': mongokit.ObjectId(request.session['user_id'])}) if not user: From ddff7cce3e480f938d4d69b8d9e55e8dcf4bd562 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Tue, 19 Apr 2011 19:16:56 -0500 Subject: [PATCH 0104/2731] util.setup_user_in_request must be called last --- mediagoblin/app.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 0157748c..ae6db8f7 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -85,7 +85,6 @@ class MediaGoblinApp(object): request.urlgen = routes.URLGenerator(self.routing, environ) # Do we really want to load this via middleware? Maybe? request.session = request.environ['beaker.session'] - util.setup_user_in_request(request) # Attach self as request.app # Also attach a few utilities from request.app for convenience? request.app = self @@ -93,6 +92,8 @@ class MediaGoblinApp(object): request.db = self.db request.staticdirect = self.staticdirector + util.setup_user_in_request(request) + return controller(request)(environ, start_response) From fad67707e1ce6e3e31d34f26e357450ba8101700 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Tue, 19 Apr 2011 22:42:08 -0400 Subject: [PATCH 0105/2731] License/copyright changes * changes COPYING to explain licensing for all of GNU MediaGoblin * adds design decision regarding why we picked the licensing we did * adds CC0 and AGPLv3 texts * removes licensing bits from hacking howto--we should put that somewhere else --- AGPLv3.txt | 661 ++++++++++++++++++++++++++++++++++++++ CC0_1.0.txt | 121 +++++++ COPYING | 670 ++------------------------------------- docs/designdecisions.rst | 70 ++++ docs/hackinghowto.rst | 25 -- 5 files changed, 872 insertions(+), 675 deletions(-) create mode 100644 AGPLv3.txt create mode 100644 CC0_1.0.txt diff --git a/AGPLv3.txt b/AGPLv3.txt new file mode 100644 index 00000000..dba13ed2 --- /dev/null +++ b/AGPLv3.txt @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. diff --git a/CC0_1.0.txt b/CC0_1.0.txt new file mode 100644 index 00000000..0e259d42 --- /dev/null +++ b/CC0_1.0.txt @@ -0,0 +1,121 @@ +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. diff --git a/COPYING b/COPYING index dba13ed2..fc930ccb 100644 --- a/COPYING +++ b/COPYING @@ -1,661 +1,31 @@ - GNU AFFERO GENERAL PUBLIC LICENSE - Version 3, 19 November 2007 +========= + COPYING +========= - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. +GNU MediaGoblin is composed of the following kinds of files: - Preamble +* software files: Python, JavaScript and HTML templates +* non-software data: CSS, images, and video +* documentation - The GNU Affero General Public License is a free, copyleft license for -software and other kinds of works, specifically designed to ensure -cooperation with the community in the case of network server software. - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -our General Public Licenses are intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. +Software files +============== - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. +Python, JavaScript, and template files files are released under the +AGPL v3. The text of this license is located in ``AGPLv3.txt``. - Developers that use our General Public Licenses protect your rights -with two steps: (1) assert copyright on the software, and (2) offer -you this License which gives you legal permission to copy, distribute -and/or modify the software. - A secondary benefit of defending all users' freedom is that -improvements made in alternate versions of the program, if they -receive widespread use, become available for other developers to -incorporate. Many developers of free software are heartened and -encouraged by the resulting cooperation. However, in the case of -software used on network servers, this result may fail to come about. -The GNU General Public License permits making a modified version and -letting the public access it on a server without ever releasing its -source code to the public. +Non-software data +================= - The GNU Affero General Public License is designed specifically to -ensure that, in such cases, the modified source code becomes available -to the community. It requires the operator of a network server to -provide the source code of the modified version running there to the -users of that server. Therefore, public use of a modified version, on -a publicly accessible server, gives the public access to the source -code of the modified version. +CSS, images and video are all released under a CC0 license. The text +of this license is located in ``CC0_1.0.txt``. - An older license, called the Affero General Public License and -published by Affero, was designed to accomplish similar goals. This is -a different license, not a version of the Affero GPL, but Affero has -released a new version of the Affero GPL which permits relicensing under -this license. - The precise terms and conditions for copying, distribution and -modification follow. +Documentation +============= - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU Affero General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Remote Network Interaction; Use with the GNU General Public License. - - Notwithstanding any other provision of this License, if you modify the -Program, your modified version must prominently offer all users -interacting with it remotely through a computer network (if your version -supports such interaction) an opportunity to receive the Corresponding -Source of your version by providing access to the Corresponding Source -from a network server at no charge, through some standard or customary -means of facilitating copying of software. This Corresponding Source -shall include the Corresponding Source for any work covered by version 3 -of the GNU General Public License that is incorporated pursuant to the -following paragraph. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the work with which it is combined will remain governed by version -3 of the GNU General Public License. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU Affero General Public License from time to time. Such new versions -will be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU Affero General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU Affero General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU Affero General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If your software can interact with users remotely through a computer -network, you should also make sure that it provides a way for users to -get its source. For example, if your program is a web application, its -interface could display a "Source" link that leads users to an archive -of the code. There are many ways you could offer source, and different -solutions will be better for different programs; see section 13 for the -specific requirements. - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU AGPL, see -. +All documentation is under the ``docs/`` directory. These materials +are all released under a CC0 license. The text of this license is +located in ``CC0_1.0.txt``. diff --git a/docs/designdecisions.rst b/docs/designdecisions.rst index b5992fc1..62a529ff 100644 --- a/docs/designdecisions.rst +++ b/docs/designdecisions.rst @@ -167,3 +167,73 @@ Will Kahn-Greene on "Why Sphinx": There are other doc systems out there, but given that GNU MediaGoblin is being written in Python, it makes sense to use Sphinx for now. + + +Why AGPLv3 and CC0? +=================== + +Chris, Brett, Will, Rob, Matt, et al curated into a story where +everyone is the hero by Will on "Why AGPLv3 and CC0": + + The `AGPL v3`_ preserves the freedoms guaranteed by the GPL v3 in + the context of software as a service. Using this license ensures + that users of the service have the ability to examine the source, + deploy their own instance, and implement their own version. This + is really important to us and a core mission component of this + project. Thus we decided that the software parts should be under + this license. + + However, the project is made up of more than just software: + there's CSS, images, and other output-related things. We wanted + the templates/images/css side of the project all permissive and + permissive in the same absolutely permissive way. We're licensing + these under a CC0 license. + + That brings us to the templates where there's some code and some + output. We decided the templates are part of the output of the + software and not the software itself. We wanted the output of the + software to be licensed in a hassle-free way so that when someone + deploys their own GNU MediaGoblin instance with their own + templates, they don't have to deal with the copyleft aspects of + the AGPLv3 and we'd be fine with that because the changes they're + making are identity-related. So at first we decided to license + HTML templates (written in Jinja2) under a CC0 license and then + we'd add an exception to the AGPLv3 for the software such that the + templates can make calls into the software and yet be a separately + licensed work. However, Brett brought up the question of whether + this allows some unscrupulous person to make changes to the + software through the templates in such a way that they're not + bound by the AGPLv3: i.e. a loophole. We thought about this + loophole and between this and the extra legalese involved in + releasing the templates under a CC0 license with the exception to + the AGPLv3 for Python and JavaScript, we decided that it's just + way simpler if the templates were also licensed under the AGPLv3. + + Then we have the licensing for the documentation. Given that the + documentation is tied to the software content-wise, we don't feel + like we have to worry about ensuring freedom of the documentation + or worry about attribution concerns. Thus we're licensing the + documentation under a CC0 license as well. + + Lastly, we have branding. This covers logos and other things that + are distinctive to GNU MediaGoblin that we feel represents this + project. Since we don't currently have any branding, this is an + open issue, but we're thinking we'll go with a CC BY-SA license. + + By licensing in this way, we make sure that users of the software + receive the freedoms that the AGPLv3 ensures regardless of what + fate befalls this project. + + So to summarize: + + * software (Python, JavaScript, HTML templates) is licensed + under AGPLv3 + * non-software things (CSS, images, video) are licensed under CC0 + because this is output of the software + * documentation is licensed under a CC0 license + * we'll figure out licensing for branding assets later + + This is all codified in the ``COPYING`` file. + +.. _AGPL v3: http://www.gnu.org/licenses/agpl.html +.. _CC0 v1: http://creativecommons.org/publicdomain/zero/1.0/ diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index db8ddca6..96a7e1a4 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -99,31 +99,6 @@ Run:: ./bin/nosetests -Creating a new file -=================== - -FIXME - this needs to be updated when it's set in stone. - -All new files need to have license/copyright information. - -The following kinds of files get the GNU AGPL header: - -* Python files -* JavaScript files -* templates -* other files with code in them - -The following files get a CC BY header: - -* CSS files - -The following files don't get a header because that's hard, but are -under the CC BY license: - -* image files -* video files - - Quickstart for Django programmers ================================= From 6a338d8e0ea0c8f643e01699e014c298e34c3006 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Fri, 22 Apr 2011 22:02:55 -0400 Subject: [PATCH 0106/2731] Updates contributing howto * lots of changes to the contributing howto from Matt, Greg, Will, and Chris * adds references between the contributing howto and other chapters * adds a design decision regarding copyright assignment --- docs/contributinghowto.rst | 87 +++++++++++++++++++++++++++++++++++--- docs/deploymenthowto.rst | 2 + docs/designdecisions.rst | 16 +++++++ docs/index.rst | 2 +- docs/theminghowto.rst | 2 + 5 files changed, 102 insertions(+), 7 deletions(-) diff --git a/docs/contributinghowto.rst b/docs/contributinghowto.rst index 1b34badc..a44c361f 100644 --- a/docs/contributinghowto.rst +++ b/docs/contributinghowto.rst @@ -15,9 +15,21 @@ However, if you are a coder and you're looking to code, check out the The rest of this chapter talks about different things we need your help with. + +**Become a user** + + We're building GNU MediaGoblin for us and for you but really + you're one of us and I am you and we are we and GNU MediaGoblin is + the walrus. + + Sign up for an account. Use the service. Relish in the thought + that this service comes with a heaping side of Freedom and you can + salt and pepper it to your liking. + + **File bugs** - Filing bugs is an important part of any project. For more + Filing bugs is a critical part of any project. For more information on filing bugs, see :ref:`filing-bugs`. @@ -27,7 +39,50 @@ help with. multi-lingual and are interested in translating GNU MediaGoblin, see :ref:`translating`. -FIXME - add additional things here + +**Create a theme** + + As people deploy their own GNU MediaGoblin instances, good themes + are a must have! For more information on theming, see + :ref:`theming-howto`. + + +**Spread the word** + + The seductive call of Free Software services is a powerful one, + but many cannot hear it because it'd drowned out by the rush hour + traffic honking of proprietary walled gardens and faux free + services. Yuck! Be the sweet chirrup of the bird amidst the din! + Tell others that there is a better way to live! + + FIXME - do we want to talk about ways to spread the word? + + FIXME - how can people notify us that they're spreading the word? + + +**Run your own instance** + + Are there things about our instance you want to change? Are there + things about other instances you wish were different? That's + great--you can run your own instance! + + For more information on deploying your own instance, see + :ref:`deployment-howto`. + + +Contributing thank you drawings / copyright assignment +====================================================== + +Copyright assignment with GNU MediaGoblin to the `FSF +`_ is highly encouraged but not mandatory. To +incentivize both this and people to make cool contributions to our +project, if you make useful contributions to GNU MediaGoblin *and* do +a copyright assignment to the Free Software Foundation, the founder of +the project, Chris Webber, will make a custom drawing of a goblin +dedicated specifically to you. + +For why we're doing copyright assignment, see the +:ref:`design-decisions-chapter`. .. _filing-bugs: @@ -36,12 +91,30 @@ File bugs ========= GNU MediaGoblin uses a bug tracker called `Redmine -`. +`_. The bug tracker is at http://bugs.foocorp.net/ and bugs go in the ``GNU mediagoblin`` project. -FIXME - how to file a good bug report +A good bug report has the following things in it: + +1. A short summary that's 60 characters or less. + +2. A description that describes the issue (bug, feature request, ...) + as well as the context. + + * If it's a bug, can you reproduce it? Is the issue specific to a + browser, computer, image, ...? + + * If it's a feature request, are there related links on the Internet + for more information? Would you be willing to help implement or + test the feature? + +That's it! When someone looks into the issue and has questions, +they'll contact you! + +If you don't hear from anyone in a couple of weeks, find someone on +IRC. .. _translating: @@ -49,10 +122,12 @@ FIXME - how to file a good bug report Translate GNU MediaGoblin ========================= -FIXME - need to write this +Coming soon when we set up translation infrastructure. Where to go when you get stuck ============================== -FIXME - need to write this +Go to `our Web site `_ where we list the +various places we hang out and how to get a hold of us. + diff --git a/docs/deploymenthowto.rst b/docs/deploymenthowto.rst index 39cf73af..684ac1b1 100644 --- a/docs/deploymenthowto.rst +++ b/docs/deploymenthowto.rst @@ -1,3 +1,5 @@ +.. _deployment-howto: + ================== Deployment HOWTO ================== diff --git a/docs/designdecisions.rst b/docs/designdecisions.rst index 62a529ff..b48f7d80 100644 --- a/docs/designdecisions.rst +++ b/docs/designdecisions.rst @@ -237,3 +237,19 @@ everyone is the hero by Will on "Why AGPLv3 and CC0": .. _AGPL v3: http://www.gnu.org/licenses/agpl.html .. _CC0 v1: http://creativecommons.org/publicdomain/zero/1.0/ + + +Why copyright assignment? +========================= + +Will Kahn-Greene on "Why copyright assignment?": + + GNU MediaGoblin is a GNU project with the copyrights held by the + FSF. Like other GNU projects, we require copyright assignment to + the FSF which gives the FSF the legal ability to defend the + AGPL-covered status of the software and distribute it. + + This is important to us because it guarantees that this software + we're working so hard on will be available to everyone and will + survive us. As long as someone is interested in using it and/or + working on it, it will live on. diff --git a/docs/index.rst b/docs/index.rst index 98d37969..fb92d139 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -13,8 +13,8 @@ Table of Contents: foreward mediagoblin - deploymenthowto contributinghowto + deploymenthowto hackinghowto theminghowto softwarestack diff --git a/docs/theminghowto.rst b/docs/theminghowto.rst index 6ded4ac7..23f9cb1b 100644 --- a/docs/theminghowto.rst +++ b/docs/theminghowto.rst @@ -1,3 +1,5 @@ +.. _theming-howto: + =============== Theming HOWTO =============== From efb291d633b7ad2a8246b9b7f4ae0c7603b7572f Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Fri, 22 Apr 2011 22:08:49 -0400 Subject: [PATCH 0107/2731] Fixes CC0 language CC0 is a waiver and not a license, so this fixes all the language accordingly. --- docs/designdecisions.rst | 47 +++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/docs/designdecisions.rst b/docs/designdecisions.rst index b48f7d80..6156d523 100644 --- a/docs/designdecisions.rst +++ b/docs/designdecisions.rst @@ -186,34 +186,35 @@ everyone is the hero by Will on "Why AGPLv3 and CC0": However, the project is made up of more than just software: there's CSS, images, and other output-related things. We wanted the templates/images/css side of the project all permissive and - permissive in the same absolutely permissive way. We're licensing - these under a CC0 license. + permissive in the same absolutely permissive way. We're waiving + our copyrights to non-software things under the CC0 waiver. That brings us to the templates where there's some code and some - output. We decided the templates are part of the output of the + output. The template engine we're using is called Jinja2. It + mixes HTML markup with Python code to render the output of the + software. We decided the templates are part of the output of the software and not the software itself. We wanted the output of the software to be licensed in a hassle-free way so that when someone deploys their own GNU MediaGoblin instance with their own templates, they don't have to deal with the copyleft aspects of the AGPLv3 and we'd be fine with that because the changes they're - making are identity-related. So at first we decided to license - HTML templates (written in Jinja2) under a CC0 license and then - we'd add an exception to the AGPLv3 for the software such that the - templates can make calls into the software and yet be a separately - licensed work. However, Brett brought up the question of whether - this allows some unscrupulous person to make changes to the - software through the templates in such a way that they're not - bound by the AGPLv3: i.e. a loophole. We thought about this - loophole and between this and the extra legalese involved in - releasing the templates under a CC0 license with the exception to - the AGPLv3 for Python and JavaScript, we decided that it's just - way simpler if the templates were also licensed under the AGPLv3. + making are identity-related. So at first we decided to waive our + copyrights to the templates with a CC0 waiver and then add an + exception to the AGPLv3 for the software such that the templates + can make calls into the software and yet be a separately licensed + work. However, Brett brought up the question of whether this + allows some unscrupulous person to make changes to the software + through the templates in such a way that they're not bound by the + AGPLv3: i.e. a loophole. We thought about this loophole and + between this and the extra legalese involved in the exception to + the AGPLv3, we decided that it's just way simpler if the templates + were also licensed under the AGPLv3. Then we have the licensing for the documentation. Given that the documentation is tied to the software content-wise, we don't feel like we have to worry about ensuring freedom of the documentation - or worry about attribution concerns. Thus we're licensing the - documentation under a CC0 license as well. + or worry about attribution concerns. Thus we're waiving our + copyrights to the documentation under CC0 as well. Lastly, we have branding. This covers logos and other things that are distinctive to GNU MediaGoblin that we feel represents this @@ -226,12 +227,14 @@ everyone is the hero by Will on "Why AGPLv3 and CC0": So to summarize: - * software (Python, JavaScript, HTML templates) is licensed + * software (Python, JavaScript, HTML templates): licensed under AGPLv3 - * non-software things (CSS, images, video) are licensed under CC0 - because this is output of the software - * documentation is licensed under a CC0 license - * we'll figure out licensing for branding assets later + * non-software things (CSS, images, video): copyrights waived + under CC0 because this is output of the software + * documentation: copyrights waived under CC0 because it's not part + of the software + * branding assets: we're kicking this can down the road, but + probably CC BY-SA This is all codified in the ``COPYING`` file. From 7eba0306d84adb35af9d1ad2568f11f0cdd2f7a7 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 23 Apr 2011 08:46:02 -0500 Subject: [PATCH 0108/2731] Provide a next= url when we require logging in --- mediagoblin/decorators.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index c6b4b545..81b88c9d 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -37,7 +37,9 @@ def require_active_login(controller): # TODO: Indicate to the user that they were redirected # here because an *active* user is required. return exc.HTTPFound( - location=request.urlgen("mediagoblin.auth.login")) + location="%s?next=%s" % ( + request.urlgen("mediagoblin.auth.login"), + request.path_info)) return controller(request, *args, **kwargs) From 4d75522b91c13c365f79929bd7760ac6090b2a8b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 23 Apr 2011 08:52:23 -0500 Subject: [PATCH 0109/2731] Give User a status, also add uploader user field to MediaEntry --- mediagoblin/models.py | 55 +++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 25 deletions(-) diff --git a/mediagoblin/models.py b/mediagoblin/models.py index d5f87a90..364f7ebf 100644 --- a/mediagoblin/models.py +++ b/mediagoblin/models.py @@ -21,10 +21,40 @@ from mongokit import Document, Set from mediagoblin.auth import lib as auth_lib +class User(Document): + __collection__ = 'users' + + structure = { + 'username': unicode, + 'email': unicode, + 'created': datetime.datetime, + 'plugin_data': dict, # plugins can dump stuff here. + 'pw_hash': unicode, + 'email_verified': bool, + 'status': unicode, + } + + required_fields = ['username', 'created', 'pw_hash', 'email'] + + default_values = { + 'created': datetime.datetime.utcnow, + 'email_verified': False, + # TODO: shouldn't be active by default, must have email registration + 'status': 'active'} + + def check_login(self, password): + """ + See if a user can login with this password + """ + return auth_lib.bcrypt_check_password( + password, self['pw_hash']) + + class MediaEntry(Document): __collection__ = 'media_entries' structure = { + 'uploader': User, 'title': unicode, 'created': datetime.datetime, 'description': unicode, @@ -45,31 +75,6 @@ class MediaEntry(Document): def main_mediafile(self): pass -class User(Document): - __collection__ = 'users' - - structure = { - 'username': unicode, - 'email': unicode, - 'created': datetime.datetime, - 'plugin_data': dict, # plugins can dump stuff here. - 'pw_hash': unicode, - 'email_verified': bool, - } - - required_fields = ['username', 'created', 'pw_hash', 'email'] - - default_values = { - 'created': datetime.datetime.utcnow, - 'email_verified': False} - - def check_login(self, password): - """ - See if a user can login with this password - """ - return auth_lib.bcrypt_check_password( - password, self['pw_hash']) - REGISTER_MODELS = [MediaEntry, User] From 7bf3f5db0fe720bfb5cb9d85dfb01cdeae13af9d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 23 Apr 2011 09:03:25 -0500 Subject: [PATCH 0110/2731] Adding a space for custom validators, though we haven't used it yet :) --- mediagoblin/models.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/mediagoblin/models.py b/mediagoblin/models.py index 364f7ebf..f3d380cf 100644 --- a/mediagoblin/models.py +++ b/mediagoblin/models.py @@ -21,6 +21,15 @@ from mongokit import Document, Set from mediagoblin.auth import lib as auth_lib +################### +# Custom validators +################### + +######## +# Models +######## + + class User(Document): __collection__ = 'users' From 74ae6b112a645bff68956dd2bf090507c0c230a9 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 23 Apr 2011 10:51:55 -0500 Subject: [PATCH 0111/2731] making state for MediaEntry objects, also adding attributes: - media_files - attachment_files - queue_files - thumbnail_file --- mediagoblin/models.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/mediagoblin/models.py b/mediagoblin/models.py index f3d380cf..9e0ee8ca 100644 --- a/mediagoblin/models.py +++ b/mediagoblin/models.py @@ -70,16 +70,24 @@ class MediaEntry(Document): 'media_type': unicode, 'media_data': dict, # extra data relevant to this media_type 'plugin_data': dict, # plugins can dump stuff here. - 'file_store': unicode, - 'attachments': [dict], - 'tags': [unicode]} + 'tags': [unicode], + 'state': unicode, + + # The following should be lists of lists, in appropriate file + # record form + 'media_files': list, + 'attachment_files': list, + 'queue_files': list, + + # This one should just be a single file record + 'thumbnail_file': [unicode]} required_fields = [ - 'title', 'created', - 'media_type', 'file_store'] + 'uploader', 'title', 'created', 'media_type'] default_values = { - 'created': datetime.datetime.utcnow} + 'created': datetime.datetime.utcnow, + 'state': u'unprocessed'} def main_mediafile(self): pass From e745ce10c9bdec967f349478db7163b8f137926a Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 23 Apr 2011 11:30:20 -0500 Subject: [PATCH 0112/2731] we should check for request.user['status'] not request.user['session'], clearly. --- mediagoblin/decorators.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index 81b88c9d..1774ce4e 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -33,7 +33,7 @@ def require_active_login(controller): Require an active login from the user. """ def new_controller_func(request, *args, **kwargs): - if not request.user or not request.user.get('session') == 'active': + if not request.user or not request.user.get('status') == u'active': # TODO: Indicate to the user that they were redirected # here because an *active* user is required. return exc.HTTPFound( From 574d1511d6a111efd4c6da78ef03593e4bcb2056 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 23 Apr 2011 12:54:11 -0500 Subject: [PATCH 0113/2731] Probably better to request.POST.get? --- mediagoblin/auth/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index aadde32f..15e33e17 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -87,7 +87,7 @@ def login(request): request.session['user_id'] = unicode(user['_id']) request.session.save() - if request.POST.has_key('next'): + if request.POST.get('next'): return exc.HTTPFound(location=request.POST['next']) else: return exc.HTTPFound( From f6f524bf5990c116d59868dd0edeafcc1ba58e09 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 23 Apr 2011 12:56:01 -0500 Subject: [PATCH 0114/2731] submit_start written in a way that, by golly, you'd think maybe it'd work --- mediagoblin/submit/views.py | 44 +++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index aa0f8121..1d93e070 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -16,6 +16,7 @@ from webob import Response, exc +from werkzeug.utils import secure_filename from mediagoblin.decorators import require_active_login from mediagoblin.submit import forms as submit_forms @@ -28,6 +29,39 @@ def submit_start(request): """ submit_form = submit_forms.SubmitStartForm() + if request.method == 'POST' and submit_form.validate(): + # create entry and save in database + entry = request.db.MediaEntry() + entry['title'] = request.POST['title'] + entry['description'] = request.POST.get(['description']) + entry['media_type'] = u'image' # heh + entry['uploader'] = request.user + + # Save, just so we can get the entry id for the sake of using + # it to generate the file path + entry.save(validate=False) + + # Now store generate the queueing related filename + queue_filepath = request.app.queue_store.get_unique_filepath( + ['media_entries', + unicode(request.user['_id']), + unicode(entry['_id']), + secure_filename(request.POST['file'].filename)]) + + # queue appropriately + queue_file = request.app.queue_store.get_file( + queue_filepath, 'wb') + + queue_file.write(request.POST['file'].file.read()) + + # Add queued filename to the entry + entry.setdefault('queue_files', []).add(queue_filepath) + entry.save(validate=True) + + # redirect + return exc.HTTPFound( + location=request.urlgen("mediagoblin.submit.submit_success")) + # render template = request.template_env.get_template( 'mediagoblin/submit/start.html') @@ -35,3 +69,13 @@ def submit_start(request): template.render( {'request': request, 'submit_form': submit_form})) + + +@require_active_login +def submit_success(request): + # render + template = request.template_env.get_template( + 'mediagoblin/submit/success.html') + return Response( + template.render( + {'request': request})) From 6e41c71c4924b04947ef657b2f220accc4a57595 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 23 Apr 2011 12:56:32 -0500 Subject: [PATCH 0115/2731] Adding the hidden next field to the login page so we actually do redirect --- mediagoblin/templates/mediagoblin/auth/login.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mediagoblin/templates/mediagoblin/auth/login.html b/mediagoblin/templates/mediagoblin/auth/login.html index 311a73f8..f2e7b664 100644 --- a/mediagoblin/templates/mediagoblin/auth/login.html +++ b/mediagoblin/templates/mediagoblin/auth/login.html @@ -36,5 +36,9 @@ + + {% if next %} + + {% endif %} {% endblock %} From 2732c28676f1bd36c17bd1afe30cdd3cae3ceb59 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 23 Apr 2011 13:06:27 -0500 Subject: [PATCH 0116/2731] A stupid success view. --- mediagoblin/submit/routing.py | 2 ++ .../templates/mediagoblin/submit/success.html | 24 +++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 mediagoblin/templates/mediagoblin/submit/success.html diff --git a/mediagoblin/submit/routing.py b/mediagoblin/submit/routing.py index b2713540..3f61b1f4 100644 --- a/mediagoblin/submit/routing.py +++ b/mediagoblin/submit/routing.py @@ -19,4 +19,6 @@ from routes.route import Route submit_routes = [ Route('mediagoblin.submit.start', '/', controller='mediagoblin.submit.views:submit_start'), + Route('mediagoblin.submit.success', '/', + controller='mediagoblin.submit.views:submit_success'), ] diff --git a/mediagoblin/templates/mediagoblin/submit/success.html b/mediagoblin/templates/mediagoblin/submit/success.html new file mode 100644 index 00000000..d38517fa --- /dev/null +++ b/mediagoblin/templates/mediagoblin/submit/success.html @@ -0,0 +1,24 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% extends "mediagoblin/base.html" %} + +{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} + +{% block mediagoblin_content %} + Woohoo! Submitted! +{% endblock %} From e21e7bfeb41a8ed6ab8fa3b27132efd84355ff36 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 23 Apr 2011 13:15:09 -0500 Subject: [PATCH 0117/2731] Enclose queue_file writing in with statement so that it's closed correctly. --- mediagoblin/submit/views.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 1d93e070..54201796 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -52,7 +52,8 @@ def submit_start(request): queue_file = request.app.queue_store.get_file( queue_filepath, 'wb') - queue_file.write(request.POST['file'].file.read()) + with queue_file: + queue_file.write(request.POST['file'].file.read()) # Add queued filename to the entry entry.setdefault('queue_files', []).add(queue_filepath) From 204392362ffbe94159838cdff6c4d3b6968a003d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 23 Apr 2011 13:29:15 -0500 Subject: [PATCH 0118/2731] Submission of image works :) /me pours some sparkling grape juice --- mediagoblin/submit/routing.py | 2 +- mediagoblin/submit/views.py | 7 +++---- mediagoblin/templates/mediagoblin/submit/success.html | 2 -- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/mediagoblin/submit/routing.py b/mediagoblin/submit/routing.py index 3f61b1f4..cff28acb 100644 --- a/mediagoblin/submit/routing.py +++ b/mediagoblin/submit/routing.py @@ -19,6 +19,6 @@ from routes.route import Route submit_routes = [ Route('mediagoblin.submit.start', '/', controller='mediagoblin.submit.views:submit_start'), - Route('mediagoblin.submit.success', '/', + Route('mediagoblin.submit.success', '/success/', controller='mediagoblin.submit.views:submit_success'), ] diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 54201796..1f55336f 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -27,7 +27,7 @@ def submit_start(request): """ First view for submitting a file. """ - submit_form = submit_forms.SubmitStartForm() + submit_form = submit_forms.SubmitStartForm(request.POST) if request.method == 'POST' and submit_form.validate(): # create entry and save in database @@ -56,12 +56,12 @@ def submit_start(request): queue_file.write(request.POST['file'].file.read()) # Add queued filename to the entry - entry.setdefault('queue_files', []).add(queue_filepath) + entry.setdefault('queue_files', []).append(queue_filepath) entry.save(validate=True) # redirect return exc.HTTPFound( - location=request.urlgen("mediagoblin.submit.submit_success")) + location=request.urlgen("mediagoblin.submit.success")) # render template = request.template_env.get_template( @@ -72,7 +72,6 @@ def submit_start(request): 'submit_form': submit_form})) -@require_active_login def submit_success(request): # render template = request.template_env.get_template( diff --git a/mediagoblin/templates/mediagoblin/submit/success.html b/mediagoblin/templates/mediagoblin/submit/success.html index d38517fa..afc9f9d1 100644 --- a/mediagoblin/templates/mediagoblin/submit/success.html +++ b/mediagoblin/templates/mediagoblin/submit/success.html @@ -17,8 +17,6 @@ #} {% extends "mediagoblin/base.html" %} -{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} - {% block mediagoblin_content %} Woohoo! Submitted! {% endblock %} From 03afc828ce11523c46d81c1fa4667ec9604ef528 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 23 Apr 2011 14:13:33 -0500 Subject: [PATCH 0119/2731] Properly require files when users submit --- mediagoblin/submit/views.py | 60 +++++++++++++++++++++---------------- 1 file changed, 34 insertions(+), 26 deletions(-) diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 1f55336f..926c7011 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -15,6 +15,8 @@ # along with this program. If not, see . +from cgi import FieldStorage + from webob import Response, exc from werkzeug.utils import secure_filename @@ -30,38 +32,44 @@ def submit_start(request): submit_form = submit_forms.SubmitStartForm(request.POST) if request.method == 'POST' and submit_form.validate(): - # create entry and save in database - entry = request.db.MediaEntry() - entry['title'] = request.POST['title'] - entry['description'] = request.POST.get(['description']) - entry['media_type'] = u'image' # heh - entry['uploader'] = request.user + if not (request.POST.has_key('file') + and isinstance(request.POST['file'], FieldStorage) + and request.POST['file'].file): + submit_form.file.errors.append( + u'You must provide a file.') + else: + # create entry and save in database + entry = request.db.MediaEntry() + entry['title'] = request.POST['title'] + entry['description'] = request.POST.get(['description']) + entry['media_type'] = u'image' # heh + entry['uploader'] = request.user - # Save, just so we can get the entry id for the sake of using - # it to generate the file path - entry.save(validate=False) + # Save, just so we can get the entry id for the sake of using + # it to generate the file path + entry.save(validate=False) - # Now store generate the queueing related filename - queue_filepath = request.app.queue_store.get_unique_filepath( - ['media_entries', - unicode(request.user['_id']), - unicode(entry['_id']), - secure_filename(request.POST['file'].filename)]) + # Now store generate the queueing related filename + queue_filepath = request.app.queue_store.get_unique_filepath( + ['media_entries', + unicode(request.user['_id']), + unicode(entry['_id']), + secure_filename(request.POST['file'].filename)]) - # queue appropriately - queue_file = request.app.queue_store.get_file( - queue_filepath, 'wb') + # queue appropriately + queue_file = request.app.queue_store.get_file( + queue_filepath, 'wb') - with queue_file: - queue_file.write(request.POST['file'].file.read()) + with queue_file: + queue_file.write(request.POST['file'].file.read()) - # Add queued filename to the entry - entry.setdefault('queue_files', []).append(queue_filepath) - entry.save(validate=True) + # Add queued filename to the entry + entry.setdefault('queue_files', []).append(queue_filepath) + entry.save(validate=True) - # redirect - return exc.HTTPFound( - location=request.urlgen("mediagoblin.submit.success")) + # redirect + return exc.HTTPFound( + location=request.urlgen("mediagoblin.submit.success")) # render template = request.template_env.get_template( From 6bcab715b86dabe20aef7ba07960d50e4913ee15 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 24 Apr 2011 10:04:53 -0500 Subject: [PATCH 0120/2731] Time to require celery! --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index b47be4c3..38f1a4d4 100644 --- a/setup.py +++ b/setup.py @@ -36,6 +36,7 @@ setup( 'py-bcrypt', 'nose', 'werkzeug', + 'celery', ], test_suite='nose.collector', From df9809c2098d18b0272c40154b5e40d67b703214 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 24 Apr 2011 14:48:55 -0500 Subject: [PATCH 0121/2731] Make certain bits of info accessable as global variables from anywhere --- mediagoblin/app.py | 10 ++++++++++ mediagoblin/globals.py | 24 ++++++++++++++++++++++++ mediagoblin/tests/test_globals.py | 29 +++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 mediagoblin/globals.py create mode 100644 mediagoblin/tests/test_globals.py diff --git a/mediagoblin/app.py b/mediagoblin/app.py index ae6db8f7..78ad19a4 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -21,6 +21,7 @@ import mongokit from webob import Request, exc from mediagoblin import routing, util, models, storage, staticdirect +from mediagoblin.globals import setup_globals class Error(Exception): pass @@ -53,6 +54,15 @@ class MediaGoblinApp(object): # set up staticdirector tool self.staticdirector = staticdirector + # certain properties need to be accessed globally eg from + # validators, etc, which might not access to the request + # object. + setup_globals( + db_connection=connection, + database=self.db, + public_store=self.public_store, + queue_store=self.queue_store) + def __call__(self, environ, start_response): request = Request(environ) path_info = request.path_info diff --git a/mediagoblin/globals.py b/mediagoblin/globals.py new file mode 100644 index 00000000..59a94558 --- /dev/null +++ b/mediagoblin/globals.py @@ -0,0 +1,24 @@ +""" +In some places, we need to access the database, public_store, queue_store +""" + +############################# +# General mediagoblin globals +############################# + +# mongokit.Connection +db_connection = None + +# mongokit.Connection +database = None + +# should be the same as the +public_store = None +queue_store = None + + +def setup_globals(**kwargs): + from mediagoblin import globals as mg_globals + + for key, value in kwargs.iteritems(): + setattr(mg_globals, key, value) diff --git a/mediagoblin/tests/test_globals.py b/mediagoblin/tests/test_globals.py new file mode 100644 index 00000000..6d2e01da --- /dev/null +++ b/mediagoblin/tests/test_globals.py @@ -0,0 +1,29 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from mediagoblin import globals as mg_globals + +def test_setup_globals(): + mg_globals.setup_globals( + db_connection='my favorite db_connection!', + database='my favorite database!', + public_store='my favorite public_store!', + queue_store='my favorite queue_store!') + + assert mg_globals.db_connection == 'my favorite db_connection!' + assert mg_globals.database == 'my favorite database!' + assert mg_globals.public_store == 'my favorite public_store!' + assert mg_globals.queue_store == 'my favorite queue_store!' From 5740a0d6aa8647c182c39680fecf6b902485a9b2 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Sun, 24 Apr 2011 18:50:48 -0400 Subject: [PATCH 0122/2731] Updates to hacking howto * adds "what's where" section which isn't wildly interesting right now but it's somewhat interesting * adds "wiping environment" section --- docs/hackinghowto.rst | 46 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index 96a7e1a4..50c59d08 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -41,7 +41,8 @@ If you're running Debian GNU/Linux or a Debian-derived distribution such as Mint or Ubuntu, running the following should install these requirements:: - sudo apt-get install mongodb git-core python python-dev python-lxml + sudo apt-get install mongodb git-core python python-dev \ + python-lxml Running bootstrap and buildout @@ -78,11 +79,26 @@ Updating dependencies --------------------- While hacking on GNU MediaGoblin over time, you'll eventually have to -update the dependencies. To do that, run:: +update your development environment. To do that, run:: ./bin/buildout +Wiping your environment for a clean-slate +----------------------------------------- + +Delete the following directories: + +* bin/ +* develop-eggs/ +* eggs/ +* mediagoblin.egg-info/ +* parts/ +* user_dev/ + +FIXME - how to drop data from mongodb? + + Running the server ================== @@ -99,6 +115,32 @@ Run:: ./bin/nosetests +What's where +============ + +After you've run buildout, you're faced with the following directory +tree:: + + mediagoblin/ + |- mediagoblin/ source code + | |- tests/ + | |- templates/ + | |- auth/ + | \- submit/ + |- docs/ documentation + | + | the rest of these directories are generated by + | buildout. + | + |- bin/ scripts + |- develop-eggs/ + |- eggs/ + |- mediagoblin.egg-info/ + |- parts/ + |- user_dev/ sessions, etc + + + Quickstart for Django programmers ================================= From cafc7451ccdf0dc1d86eba92f3f75254c367d2f7 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Sun, 24 Apr 2011 18:55:07 -0400 Subject: [PATCH 0123/2731] Minor tweaks to design decisions text --- docs/designdecisions.rst | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/docs/designdecisions.rst b/docs/designdecisions.rst index 6156d523..3398c24b 100644 --- a/docs/designdecisions.rst +++ b/docs/designdecisions.rst @@ -17,11 +17,11 @@ Chris Webber on "Why Python": software web applications before in Python, including `Miro Community`_, the `Miro Guide`_, a large portion of `Creative Commons`_, and a whole bunch of things while working at `Imaginary - Landscape`_). I know Python, I can make this happen in Python, me - starting a project like this makes sense if it's done in Python. + Landscape`_). Me starting a project like this makes sense if it's + done in Python. You might say that PHP is way more deployable, that Rails has way - more cool developers riding around on fixie bikes, and all of + more cool developers riding around on fixie bikes---and all of those things are true. But I know Python, like Python, and think that Python is pretty great. I do think that deployment in Python is not as good as with PHP, but I think the days of shared hosting @@ -159,14 +159,16 @@ Why Sphinx for documentation Will Kahn-Greene on "Why Sphinx": - Sphinx is a fantastic tool for organizing documentation for a + `Sphinx`_ is a fantastic tool for organizing documentation for a Python-based project that makes it pretty easy to write docs that are readable in source form and can be "compiled" into HTML, LaTeX and other formats. There are other doc systems out there, but given that GNU - MediaGoblin is being written in Python, it makes sense to use - Sphinx for now. + MediaGoblin is being written in Python and I've done a ton of + documentation using Sphinx, it makes sense to use Sphinx for now. + +.. _Sphinx: http://sphinx.pocoo.org/ Why AGPLv3 and CC0? From 34366952a21f040ee5ca3df899a82f9e6bd9cffe Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Sun, 24 Apr 2011 19:46:48 -0400 Subject: [PATCH 0124/2731] Heavy documentation updates * Nixed codedocs and software stack chapters in favor of a chapter on Beardomatic! * Switched workflow to vision and added an additional caveat at the top --- docs/beardomatic.rst | 84 ++++++++++++++++++++ docs/codedocs.rst | 5 -- docs/index.rst | 5 +- docs/softwarestack.rst | 127 ------------------------------ docs/{workflow.rst => vision.rst} | 18 +++-- 5 files changed, 98 insertions(+), 141 deletions(-) create mode 100644 docs/beardomatic.rst delete mode 100644 docs/codedocs.rst delete mode 100644 docs/softwarestack.rst rename docs/{workflow.rst => vision.rst} (92%) diff --git a/docs/beardomatic.rst b/docs/beardomatic.rst new file mode 100644 index 00000000..5ebeb239 --- /dev/null +++ b/docs/beardomatic.rst @@ -0,0 +1,84 @@ +=========================================== + Beardomatic: Infrastructure Documentation +=========================================== + +What the hell is Beardomatic? +============================= + +You might be wondering, "Gah! What the hell is Beardomatic!?" + +Well, I'll tell you. GNU MediaGoblin is a piece of software that sits +on a stack of libraries that do a bunch of stuff. It makes it easier +to differentiate the bits of code that encompass GNU MediaGoblin from +the bits of code that GNU MediaGoblin sit on top of. Thus, we came up +with the TOTALLY AWESOME name Beardomatic. + +Now you might be saying, "Holy crap!? Another web framework? Are you +going to write a mocking framework and an enumeration library, too!?" + +No, we're not. We're just calling this Beardomatic so that it's +easier to talk about things. However, at some point, we can take +these infrastructure bits from GNU MediaGoblin and turn them into a +full-blown "web framework". We wouldn't do this to compete for +mindshare with other web frameworks. We would do this to make it +easier for us to bootstrap other similar projects. + + +Beardomatic software stack +========================== + +Beardomatic is a software stack "web framework" composed of the +following bits: + +* Project infrastructure + + * `Python `_: the language we're using to write + this + + * `Nose `_: + for unit tests + + * `buildout `_: for getting dependencies, + building a runtime environment, ... + +* Data storage + + * `MongoDB `_: the document database backend + for storage + +* Web application + + * `Paste Deploy `_ and + `Paste Script `_: we'll use this for + configuring and launching the application + + * `WebOb `_: nice abstraction layer + from HTTP requests, responses and WSGI bits + + * `Routes `_: for URL routing + + * `Beaker `_: for handling sessions + + * `Jinja2 `_: the templating engine + + * `MongoKit `_: the lightweight + ORM for MongoDB we're using which will make it easier to define + structures and all that + + * `WTForms `_: for handling, + validation, and abstraction from HTML forms + + * `Celery `_: for task queuing (resizing + images, encoding video, ...) + + * `RabbitMQ `_: for sending tasks to celery + +* Front end + + * `JQuery `_: for groovy JavaScript things + + +How to ... in Beardomatic? +========================== + +FIXME - write this diff --git a/docs/codedocs.rst b/docs/codedocs.rst deleted file mode 100644 index 09f91274..00000000 --- a/docs/codedocs.rst +++ /dev/null @@ -1,5 +0,0 @@ -==================== - Code Documentation -==================== - -FIXME - stub! diff --git a/docs/index.rst b/docs/index.rst index fb92d139..fc8cc642 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -17,10 +17,9 @@ Table of Contents: deploymenthowto hackinghowto theminghowto - softwarestack designdecisions - workflow - codedocs + vision + beardomatic Indices and tables diff --git a/docs/softwarestack.rst b/docs/softwarestack.rst deleted file mode 100644 index 024f0d5d..00000000 --- a/docs/softwarestack.rst +++ /dev/null @@ -1,127 +0,0 @@ -======= - Stack -======= - -The software stack for this project might change over time, but this -is what we're thinking right now. - -There's some explanation of design decisions in the -:ref:`design-decisions-chapter`. - - -Python -====== - -* http://python.org/ - -The core team does a lot of work in Python and it's the language we're -most likely to do a project like this in. - - -MongoDB -======= - -* http://www.mongodb.org/ - -A "document database". Because it's extremely flexible and scales up -well, but I guess not down well. - - -MongoKit -======== - -* http://namlook.github.com/mongokit/ - -A lightweight ORM for mongodb. Helps us define our structures better, -does schema validation, schema evolution, and helps make things more -fun and pythonic. - - -Jinja2 -====== - -* http://jinja.pocoo.org/docs/ - -For templating. Pretty much django templates++ but allows us to pass -arguments into method calls instead of writing custom tags. - - -WTForms -======= - -* http://wtforms.simplecodes.com/ - -For form handling, validation, abstraction. Almost just like Django's -templates. - - -WebOb -===== - -* http://pythonpaste.org/webob/ - -Gives nice request/response objects (also somewhat Django-ish). - - -Paste Deploy and Paste Script -============================= - -* http://pythonpaste.org/deploy/ -* http://pythonpaste.org/script/ - -This will be the default way of configuring and launching the -application. Since GNU MediaGoblin will be fairly WSGI minimalist though, -you can probably use other ways to launch it, though this will be the -default. - - -Routes -====== - -* http://routes.groovie.org/ - -For URL Routing. It works well enough. - - -JQuery -====== - -* http://jquery.com/ - -For all sorts of things on the JavaScript end of things, for all sorts -of reasons. - - -Beaker -====== - -* http://beaker.groovie.org/ - -For sessions, because that seems like it's generally considered the -way to go I guess. - - -Nose -==== - -* http://somethingaboutorange.com/mrl/projects/nose/1.0.0/ - -For unit tests because it makes testing a bit nicer. - - -Celery -====== - -* http://celeryproject.org/ - -For task queueing (resizing images, encoding video, ...). - - -RabbitMQ -======== - -* http://www.rabbitmq.com/ - -For sending tasks to celery, because I guess that's what most people -do. Might be optional, might also let people use MongoDB for this if -they want. diff --git a/docs/workflow.rst b/docs/vision.rst similarity index 92% rename from docs/workflow.rst rename to docs/vision.rst index b72031de..fad248df 100644 --- a/docs/workflow.rst +++ b/docs/vision.rst @@ -1,21 +1,26 @@ -========================================================================== - Design Document: Workflow, and other structurally significant braindumps -========================================================================== +========================================= + Design Document: GNU MediaGoblin vision +========================================= .. Note:: When we get a wiki, this will get moved there. It's here for now mostly because we didn't have a better place for it. +.. Note:: -This document attempts to describe the envisioned workflow of -mediagoblin, from a structural standpoint. For now, *nothing* in this + By the time you read this, it's very likely it'll be out of date. + + +This document attempts to describe the envisioned workflow of GNU +MediaGoblin, from a structural standpoint. For now, *nothing* in this document is probably the eventual, final way that things will work. Eventually as things come to exist, this document will hopefully be refactored to describe how things *do* work. This documented on hopes, dreams, rainbows, and unicorns. And it will -come to fulfillment through a lot of hard work. +come to fulfillment through a lot of hard work. Your hard work and my +hard work. Look and feel @@ -31,6 +36,7 @@ here. http://mairin.wordpress.com/2010/03/09/another-design-hub-mockup/ + User profile mockup ------------------- From e231d9e8bb8c5bf6f0705b47592c9aadaf2eb269 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 24 Apr 2011 18:47:23 -0500 Subject: [PATCH 0125/2731] setup_celery_from_config tool. Haven't tried if it works, but looks right... --- mediagoblin/celery_setup/__init__.py | 121 +++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 mediagoblin/celery_setup/__init__.py diff --git a/mediagoblin/celery_setup/__init__.py b/mediagoblin/celery_setup/__init__.py new file mode 100644 index 00000000..171b9a6f --- /dev/null +++ b/mediagoblin/celery_setup/__init__.py @@ -0,0 +1,121 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import os + +from paste.deploy.converters import asbool, asint, aslist + + +KNOWN_CONFIG_BOOLS = [ + 'CELERY_RESULT_PERSISTENT', + 'CELERY_CREATE_MISSING_QUEUES', + 'BROKER_USE_SSL', 'BROKER_CONNECTION_RETRY', + 'CELERY_ALWAYS_EAGER', 'CELERY_EAGER_PROPAGATES_EXCEPTIONS', + 'CELERY_IGNORE_RESULT', 'CELERY_TRACK_STARTED', + 'CELERY_DISABLE_RATE_LIMITS', 'CELERY_ACKS_LATE', + 'CELERY_STORE_ERRORS_EVEN_IF_IGNORED', + 'CELERY_SEND_TASK_ERROR_EMAILS', + 'CELERY_SEND_EVENTS', 'CELERY_SEND_TASK_SENT_EVENT', + 'CELERYD_LOG_COLOR', 'CELERY_REDIRECT_STDOUTS', + ] + +KNOWN_CONFIG_INTS = [ + 'CELERYD_CONCURRENCY', + 'CELERYD_PREFETCH_MULTIPLIER', + 'CELERY_AMQP_TASK_RESULT_EXPIRES', + 'CELERY_AMQP_TASK_RESULT_CONNECTION_MAX', + 'REDIS_PORT', 'REDIS_DB', + 'BROKER_PORT', 'BROKER_CONNECTION_TIMEOUT', + 'CELERY_BROKER_CONNECTION_MAX_RETRIES', + 'CELERY_TASK_RESULT_EXPIRES', 'CELERY_MAX_CACHED_RESULTS', + 'CELERY_DEFAULT_RATE_LIMIT', # ?? + 'CELERYD_MAX_TASKS_PER_CHILD', 'CELERYD_TASK_TIME_LIMIT', + 'CELERYD_TASK_SOFT_TIME_LIMIT', + 'MAIL_PORT', 'CELERYBEAT_MAX_LOOP_INTERVAL', + ] + +KNOWN_CONFIG_FLOATS = [ + 'CELERYD_ETA_SCHEDULER_PRECISION', + ] + +KNOWN_CONFIG_LISTS = [ + 'CELERY_ROUTES', 'CELERY_IMPORTS', + ] + + +## Needs special processing: +# ADMINS, ??? +# there are a lot more; we should list here or process specially. + + +def asfloat(obj): + try: + return float(obj) + except (TypeError, ValueError), e: + raise ValueError( + "Bad float value: %r" % obj) + + +def setup_celery_from_config(app_config, global_config): + """ + Take a mediagoblin app config and the global config from a paste + factory and try to set up a celery settings module from this. + """ + if asbool(app_config.get('use_celery_environment_var')) == True: + # Don't setup celery based on our config file. + return + + celery_conf_section = app_config.get('celery_section', 'celery') + if global_config.has_key(celery_conf_section): + celery_conf = global_config[celery_conf_section] + else: + celery_conf = {} + + celery_settings = {} + + # set up mongodb stuff + celery_mongo_settings = {} + if app_config.has_key('db_host'): + celery_mongo_settings['host'] = app_config['db_host'] + celery_settings['BROKER_HOST'] = app_config['db_host'] + if app_config.has_key('db_port'): + celery_mongo_settings['port'] = asint(app_config['db_port']) + celery_settings['BROKER_PORT'] = asint(app_config['db_port']) + celery_mongo_settings['database'] = app_config.get('db_name', 'mediagoblin') + + celery_settings['CELERY_MONGODB_BACKEND_SETTINGS'] = celery_mongo_settings + celery_settings['CELERY_RESULT_BACKEND'] = 'mongodb' + + # Add anything else + for key, value in celery_conf.iteritems(): + key = key.upper() + if key in KNOWN_CONFIG_BOOLS: + value = asbool(value) + elif value in KNOWN_CONFIG_INTS: + value = asint(value) + elif value in KNOWN_CONFIG_FLOATS: + value = asfloat(value) + elif value in KNOWN_CONFIG_LISTS: + value = aslist(value) + celery_settings[key] = value + + from mediagoblin.celery_setup import dummy_settings_module + + for key, value in celery_settings.iteritems(): + setattr(dummy_settings_module, key, value) + + os.environ['CELERY_CONFIG_MODULE'] = \ + 'mediagoblin.celery_setup.dummy_settings_module' From 427ee0de13951a66d684d2a6afe33f45df7966b4 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Sun, 24 Apr 2011 21:19:00 -0400 Subject: [PATCH 0126/2731] Adds Matt to docs contributors list --- docs/foreward.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/foreward.rst b/docs/foreward.rst index 0a3630a1..c1d60587 100644 --- a/docs/foreward.rst +++ b/docs/foreward.rst @@ -26,6 +26,7 @@ In no particular order: * Deb * Greg * Karen +* Matt How should I bring up errors in the documentation From 81be691a20edaeffc27d1cc160e0576ae5f9cd51 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Sun, 24 Apr 2011 21:29:39 -0400 Subject: [PATCH 0127/2731] Changes version to 0.0.1. --- docs/conf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 02c190a0..6030b74d 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -48,9 +48,9 @@ copyright = u'2011, Chris Webber, et al' # built documents. # # The short X.Y version. -version = '0.1a1' +version = '0.0.1' # The full version, including alpha/beta/rc tags. -release = '0.1a1' +release = '0.0.1' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From 75b70b90c3235d9883a799c4aea659879b5b3d89 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Sun, 24 Apr 2011 21:29:50 -0400 Subject: [PATCH 0128/2731] Fixes mdashes and other minor things. --- docs/contributinghowto.rst | 2 +- docs/foreward.rst | 10 +++++----- docs/mediagoblin.rst | 21 ++++++++++++--------- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/docs/contributinghowto.rst b/docs/contributinghowto.rst index a44c361f..cb5cd909 100644 --- a/docs/contributinghowto.rst +++ b/docs/contributinghowto.rst @@ -64,7 +64,7 @@ help with. Are there things about our instance you want to change? Are there things about other instances you wish were different? That's - great--you can run your own instance! + great---you can run your own instance! For more information on deploying your own instance, see :ref:`deployment-howto`. diff --git a/docs/foreward.rst b/docs/foreward.rst index c1d60587..edc75e30 100644 --- a/docs/foreward.rst +++ b/docs/foreward.rst @@ -16,8 +16,8 @@ This manual is a living document and is in the ``mediagoblin`` repository in the ``docs/`` directory. -Who wrote this documentation -============================ +Who wrote this documentation? +============================= In no particular order: @@ -29,10 +29,10 @@ In no particular order: * Matt -How should I bring up errors in the documentation -================================================= +I found an error in the docs---who do I tell? +============================================= -There are a few ways--please pick the one most convenient to you! +There are a few ways---please pick the one most convenient to you! 1. Send an email to Will ``willg at bluesock dot org``. 2. Write up a bug report in the bug tracker at http://bugs.foocorp.net/ . diff --git a/docs/mediagoblin.rst b/docs/mediagoblin.rst index 6c3a8dfa..a6194dc4 100644 --- a/docs/mediagoblin.rst +++ b/docs/mediagoblin.rst @@ -5,12 +5,13 @@ What is GNU MediaGoblin ======================= -Three years ago, a number of free software luminaries got together at -the FSF office to answer the question, "What should software freedom -look like on the participatory web?" Those thinkers included Richard -Stallman - founder of the free software movement and instigator of the -GNU project, Evan Prodromou - the driving force behind Status.net, a -highly sucessful federated micro-blogging service, and FIXME. +Three years ago (2008), a number of free software luminaries got +together at the FSF office to answer the question, "What should +software freedom look like on the participatory web?" Those thinkers +included Richard Stallman---founder of the free software movement and +instigator of the GNU project, Evan Prodromou---the driving force +behind Status.net, a highly sucessful federated micro-blogging +service, and FIXME. Since that time Identi.ca and Libre.fm have answered the freedom-loving web-user's need for micro-blogging and music sharing. @@ -46,10 +47,12 @@ How can I participate? See `Get Involved `. -How is this licensed? -===================== +How is GNU MediaGoblin licensed? +================================ -FIXME - write this once we work out the details +GNU MediaGoblin software is released under an AGPLv3 license. + +See the ``COPYING`` file in the source for details. Is this an official GNU Project? What does that mean? From eb2986152aab5767ae40d1b870c7f6cb256f045d Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Sun, 24 Apr 2011 21:53:57 -0400 Subject: [PATCH 0129/2731] Fixes traceback on registration values must be unicode. --- mediagoblin/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/models.py b/mediagoblin/models.py index 9e0ee8ca..eef59ed4 100644 --- a/mediagoblin/models.py +++ b/mediagoblin/models.py @@ -49,7 +49,7 @@ class User(Document): 'created': datetime.datetime.utcnow, 'email_verified': False, # TODO: shouldn't be active by default, must have email registration - 'status': 'active'} + 'status': u'active'} def check_login(self, password): """ From bb64a6073cc1ab4f2a28e3b4652ec51f3fc1d674 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 24 Apr 2011 20:55:02 -0500 Subject: [PATCH 0130/2731] Commit dummy_settings_module, of course. --- mediagoblin/celery_setup/dummy_settings_module.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 mediagoblin/celery_setup/dummy_settings_module.py diff --git a/mediagoblin/celery_setup/dummy_settings_module.py b/mediagoblin/celery_setup/dummy_settings_module.py new file mode 100644 index 00000000..e69de29b From 5784c4e963b12e0b866ba806f8d2e5c045780d45 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 24 Apr 2011 20:57:38 -0500 Subject: [PATCH 0131/2731] Actually call setup_celery_from_config when launching from paste. Also changed **kw to **app_config, which is more useful of a variable name. --- mediagoblin/app.py | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 78ad19a4..3ea405e9 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -22,6 +22,7 @@ from webob import Request, exc from mediagoblin import routing, util, models, storage, staticdirect from mediagoblin.globals import setup_globals +from mediagoblin.celery_setup import setup_celery_from_config class Error(Exception): pass @@ -107,33 +108,37 @@ class MediaGoblinApp(object): return controller(request)(environ, start_response) -def paste_app_factory(global_config, **kw): +def paste_app_factory(global_config, **app_config): # Get the database connection connection = mongokit.Connection( - kw.get('db_host'), kw.get('db_port')) + app_config.get('db_host'), app_config.get('db_port')) # Set up the storage systems. public_store = storage.storage_system_from_paste_config( - kw, 'publicstore') + app_config, 'publicstore') queue_store = storage.storage_system_from_paste_config( - kw, 'queuestore') + app_config, 'queuestore') # Set up the staticdirect system - if kw.has_key('direct_remote_path'): + if app_config.has_key('direct_remote_path'): staticdirector = staticdirect.RemoteStaticDirect( - kw['direct_remote_path'].strip()) - elif kw.has_key('direct_remote_paths'): + app_config['direct_remote_path'].strip()) + elif app_config.has_key('direct_remote_paths'): + direct_remote_path_lines = app_config[ + 'direct_remote_paths'].strip().splitlines() staticdirector = staticdirect.MultiRemoteStaticDirect( dict([line.strip().split(' ', 1) - for line in kw['direct_remote_paths'].strip().splitlines()])) + for line in direct_remote_path_lines])) else: raise ImproperlyConfigured( "One of direct_remote_path or direct_remote_paths must be provided") + setup_celery_from_config(app_config, global_config) + mgoblin_app = MediaGoblinApp( - connection, kw.get('db_name', 'mediagoblin'), + connection, app_config.get('db_name', 'mediagoblin'), public_store=public_store, queue_store=queue_store, staticdirector=staticdirector, - user_template_path=kw.get('local_templates')) + user_template_path=app_config.get('local_templates')) return mgoblin_app From 1bb0fdf2f4f568019c3449f269c69f406507bd7c Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Tue, 26 Apr 2011 15:46:56 -0500 Subject: [PATCH 0132/2731] HTTPFound more accurate than HTTPMovedPermanently. (Just observed this in cc.engine, making observation here also while I'm at it :)) --- mediagoblin/app.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 3ea405e9..59b943dd 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -82,7 +82,7 @@ class MediaGoblinApp(object): if request.GET: new_path_info = '%s?%s' % ( new_path_info, urllib.urlencode(request.GET)) - redirect = exc.HTTPTemporaryRedirect(location=new_path_info) + redirect = exc.HTTPFound(location=new_path_info) return request.get_response(redirect)(environ, start_response) # Okay, no matches. 404 time! From 84489d7d4a3b3c0a897a9c4fe5176484bcf31d82 Mon Sep 17 00:00:00 2001 From: Matt Lee Date: Wed, 27 Apr 2011 10:55:35 -0400 Subject: [PATCH 0133/2731] Updated copyright --- docs/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index 6030b74d..967d84d0 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -41,7 +41,7 @@ master_doc = 'index' # General information about the project. project = u'GNU MediaGoblin' -copyright = u'2011, Chris Webber, et al' +copyright = u'2011, Free Software Foundation, Inc and contributors' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the From 9d952fdc7930dcdf1c2ee5ca6094c80a998d86ba Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Wed, 27 Apr 2011 22:42:17 -0400 Subject: [PATCH 0134/2731] Reworked contributing docs based on Asheesh's thoughts I chatted with Asheesh on IRC today and asked him to look over the contributer howto. He had a lot of thoughts and I factored most/all of them in. It's much better now. --- docs/beardomatic.rst | 2 + docs/contributinghowto.rst | 135 +++++++++++++++++++++++-------------- docs/deploymenthowto.rst | 2 + docs/foreward.rst | 7 +- docs/hackinghowto.rst | 61 ++++++++++++++++- 5 files changed, 149 insertions(+), 58 deletions(-) diff --git a/docs/beardomatic.rst b/docs/beardomatic.rst index 5ebeb239..14130f6a 100644 --- a/docs/beardomatic.rst +++ b/docs/beardomatic.rst @@ -1,3 +1,5 @@ +.. _beardomatic-chapter: + =========================================== Beardomatic: Infrastructure Documentation =========================================== diff --git a/docs/contributinghowto.rst b/docs/contributinghowto.rst index cb5cd909..3b3fe163 100644 --- a/docs/contributinghowto.rst +++ b/docs/contributinghowto.rst @@ -2,72 +2,104 @@ Contributing HOWTO ==================== -We're super glad you want to contribute! +Join the community! +=================== + +We're super glad you want to join our community! There are a variety of ways you can help us and become part of the team. We're not just looking for coders! We're also looking for -documentation writers, users, testers, evangelists, painters, bakers, -candle-stick makers... +documentation writers, users, testers, evangelists, user-interface +designers, graphics designers, user-experience designers, system +administrators, friends, painters, bakers, candle-stick makers... -However, if you are a coder and you're looking to code, check out the -:ref:`hacking-howto`. - -The rest of this chapter talks about different things we need your -help with. +Here are some things you can do today: -**Become a user** + **Hang out with us** - We're building GNU MediaGoblin for us and for you but really - you're one of us and I am you and we are we and GNU MediaGoblin is - the walrus. + You should hang out with us! We like people like you! + + At a bare minimum, join the `mailing list + `_ and say, "Hi!" + + We also hang out on IRC in ``#mediagoblin`` on Freenode.net. + + + **File bugs** + + Filing bugs is a critical part of any project. For more + information on filing bugs, see :ref:`filing-bugs`. + + + **Write/Fix some code** + + If you are a coder and you're looking to code, check out the + :ref:`hacking-howto`. We even have tips on *becoming* a coder + and we're willing to help you! + + + **Run your own instance** + + Are there things about our instance you want to change? Are + there things about other instances you wish were different? + Want to test upcoming changes? Want to create patches to + implement things you need? That's great---you can run your + own instance! - Sign up for an account. Use the service. Relish in the thought - that this service comes with a heaping side of Freedom and you can - salt and pepper it to your liking. + For more information on deploying your own instance, see + :ref:`deployment-howto`. -**File bugs** + **Spread the word** - Filing bugs is a critical part of any project. For more - information on filing bugs, see :ref:`filing-bugs`. + The seductive call of Free Software services is a powerful + one, but many cannot hear it because it'd drowned out by the + rush hour traffic honking of proprietary walled gardens and + faux free services. Yuck! Be the sweet chirrup of the bird + amidst the din! Tell others that there is a better way to + live! + + FIXME - do we want to talk about ways to spread the word? + + FIXME - how can people notify us that they're spreading the + word? -**Translate GNU MediaGoblin** +We're still working on project infrastructure. We hope to have the +bits in place for these additional things to do in the coming months: - Knowing more than one language is an important skill. If you are - multi-lingual and are interested in translating GNU MediaGoblin, - see :ref:`translating`. + **Become a user** - -**Create a theme** - - As people deploy their own GNU MediaGoblin instances, good themes - are a must have! For more information on theming, see - :ref:`theming-howto`. - - -**Spread the word** - - The seductive call of Free Software services is a powerful one, - but many cannot hear it because it'd drowned out by the rush hour - traffic honking of proprietary walled gardens and faux free - services. Yuck! Be the sweet chirrup of the bird amidst the din! - Tell others that there is a better way to live! - - FIXME - do we want to talk about ways to spread the word? - - FIXME - how can people notify us that they're spreading the word? - - -**Run your own instance** - - Are there things about our instance you want to change? Are there - things about other instances you wish were different? That's - great---you can run your own instance! + We're building GNU MediaGoblin for us and for you but really + you're one of us and I am you and we are we and GNU + MediaGoblin is the walrus. - For more information on deploying your own instance, see - :ref:`deployment-howto`. + Sign up for an account. Use the service. Relish in the + thought that this service comes with a heaping side of Freedom + and you can salt and pepper it to your liking. + + + **Help other users** + + Have you spent time with GNU MediaGoblin? If so, your + experience and wisdom are invaluable and you're the best + person we can think of to help other users with their + questions. + + + **Translate GNU MediaGoblin** + + Knowing more than one language is an important skill. If you + are multi-lingual and are interested in translating GNU + MediaGoblin, see :ref:`translating`. + + + **Create a theme** + + As people deploy their own GNU MediaGoblin instances, good + themes are a must have! For more information on theming, see + :ref:`theming-howto`. Contributing thank you drawings / copyright assignment @@ -93,8 +125,7 @@ File bugs GNU MediaGoblin uses a bug tracker called `Redmine `_. -The bug tracker is at http://bugs.foocorp.net/ and bugs go in the -``GNU mediagoblin`` project. +The bug tracker is at ``_. A good bug report has the following things in it: diff --git a/docs/deploymenthowto.rst b/docs/deploymenthowto.rst index 684ac1b1..d943e276 100644 --- a/docs/deploymenthowto.rst +++ b/docs/deploymenthowto.rst @@ -9,3 +9,5 @@ Step 1: Write code that can be deployed. Step 2: ? Step 3: Write the deployment guide and profit! + +But seriously, this is a stub since we're not quite there, yet. diff --git a/docs/foreward.rst b/docs/foreward.rst index edc75e30..d2b9c417 100644 --- a/docs/foreward.rst +++ b/docs/foreward.rst @@ -27,6 +27,7 @@ In no particular order: * Greg * Karen * Matt +* Asheesh I found an error in the docs---who do I tell? @@ -34,9 +35,9 @@ I found an error in the docs---who do I tell? There are a few ways---please pick the one most convenient to you! -1. Send an email to Will ``willg at bluesock dot org``. -2. Write up a bug report in the bug tracker at http://bugs.foocorp.net/ . -3. Tell someone on IRC ``#mediagoblin`` on Freenode. +1. Write up a bug report in the bug tracker at http://bugs.foocorp.net/ . +2. Tell someone on IRC ``#mediagoblin`` on Freenode. +3. Send an email to Will ``willg at bluesock dot org``. When you tell us about your issue, please let us know: diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index 50c59d08..8b40e37d 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -8,8 +8,9 @@ So you want to hack on GNU MediaGoblin? ======================================= -First thing to do is check out the Web site where we list all the -project infrastructure including: +First thing to do is check out the `Web site +`_ where we list all the project +infrastructure including: * the mailing list * the IRC channel @@ -87,6 +88,13 @@ update your development environment. To do that, run:: Wiping your environment for a clean-slate ----------------------------------------- +.. Note:: + + Unless you're doing development and working on and testing creating + a new instance, you will probably never have to do this. Will + plans to do this work and thus he documented it. + + Delete the following directories: * bin/ @@ -96,7 +104,8 @@ Delete the following directories: * parts/ * user_dev/ -FIXME - how to drop data from mongodb? +FIXME - how to drop data from mongodb? we should probably write a +script. Running the server @@ -151,3 +160,49 @@ Bite-sized bugs to start with ============================= FIXME - write this + + +Tips for people new to coding +============================= + +Python +------ + +GNU MediaGoblin is written using a programming language called `Python +`_. + +There are two different incompatible iterations of Python which I'll +refer to as Python 2 and Python 3. GNU MediaGoblin is written in +Python 2 and requires Python 2.6 or 2.7. At some point, we might +switch to Python 3, but that's a future thing. + +You can learn how to code in Python 2 from several excellent books +that are freely available on the Internet: + +* `Learn Python the Hard Way `_ +* `Dive Into Pyton `_ +* `Python for Software Design `_ +* `A Byte of Python `_ + +These are all excellent texts. + +FIXME - are there good quality Python tutorial videos? + + +Libraries +--------- + +GNU MediaGoblin uses a variety of libraries in order to do what it +does. These libraries are listed in the :ref:`beardomatic-chapter` +along with links to the project Web sites and documentation for the +libraries. + +There are a variety of Python-related conferences every year that have +sessions covering many aspects of these libraries. You can find them +at `Python Miro Community `_ [0]_. + +.. [0] This is a shameless plug. Will Kahn-Greene runs Python Miro + Community. + +If you have questions or need help, find us on the mailing list and on +IRC. From 0c953025122fbbf0fd9d6c52f490802bca3648c0 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Thu, 28 Apr 2011 10:38:37 -0400 Subject: [PATCH 0135/2731] Moves "run your own instance" to the future section Chris correctly pointed out that you can't quite run your own instance, yet. But that's the goal! --- docs/contributinghowto.rst | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/contributinghowto.rst b/docs/contributinghowto.rst index 3b3fe163..ff783b9c 100644 --- a/docs/contributinghowto.rst +++ b/docs/contributinghowto.rst @@ -39,18 +39,6 @@ Here are some things you can do today: and we're willing to help you! - **Run your own instance** - - Are there things about our instance you want to change? Are - there things about other instances you wish were different? - Want to test upcoming changes? Want to create patches to - implement things you need? That's great---you can run your - own instance! - - For more information on deploying your own instance, see - :ref:`deployment-howto`. - - **Spread the word** The seductive call of Free Software services is a powerful @@ -88,6 +76,18 @@ bits in place for these additional things to do in the coming months: questions. + **Run your own instance** + + Are there things about our instance you want to change? Are + there things about other instances you wish were different? + Want to test upcoming changes? Want to create patches to + implement things you need? That's great---you can run your + own instance! + + For more information on deploying your own instance, see + :ref:`deployment-howto`. + + **Translate GNU MediaGoblin** Knowing more than one language is an important skill. If you From 4305e7e64bdf0889f96199a4b6219911fcb08b82 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Thu, 28 Apr 2011 10:58:16 -0400 Subject: [PATCH 0136/2731] Adds "Send encouragement" section --- docs/contributinghowto.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/contributinghowto.rst b/docs/contributinghowto.rst index ff783b9c..f10dd72a 100644 --- a/docs/contributinghowto.rst +++ b/docs/contributinghowto.rst @@ -39,6 +39,16 @@ Here are some things you can do today: and we're willing to help you! + **Send encouragement** + + A nice word from you could send someone into a tizzy of + productive work. Ten nice words could complete a feature. + One hundred nice words could get us to the next milestone. + + Send it to the `mailing list `_ + or hop into ``#mediagoblin`` on Freenode.net and let us know. + + **Spread the word** The seductive call of Free Software services is a powerful From 515b8a48c905d28d682663aa2040850833a5d51a Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Thu, 28 Apr 2011 16:27:09 -0400 Subject: [PATCH 0137/2731] Adds placeholder file so _static exists. --- docs/_static/placeholder | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/_static/placeholder diff --git a/docs/_static/placeholder b/docs/_static/placeholder new file mode 100644 index 00000000..e69de29b From 0f03e1d394273775e9cb77d6dd5fed4fe71afcf3 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Sat, 30 Apr 2011 08:41:39 -0400 Subject: [PATCH 0138/2731] Adds a README --- README | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 README diff --git a/README b/README new file mode 100644 index 00000000..c6e073a0 --- /dev/null +++ b/README @@ -0,0 +1,38 @@ +======== + README +======== + +What is GNU MediaGoblin? +======================== + +* Initially, a place to store all your photos that’s as awesome as, if + not more awesome than, existing network services (Flickr, SmugMug, + Picasa, etc) +* Later, a place for all sorts of media, such as video, music, etc hosting. +* Federated with OStatus! +* Customizable! +* A place for people to collaborate and show off original and derived + creations Free, as in freedom. We’re a GNU project in the making, + afterall. + + +Is it ready for me to use? +========================== + +Not yet! We're working on it and we hope to have a usable system by +September 2011. + + +Can I help/hang out/participate/whisper sweet nothings in your ear? +=================================================================== + +Yes! Please join us and hang out! For more information on where we +hang out, see `our Join page `_ + + +Where is the documentation? +=========================== + +Documentation is located in the ``docs/`` directory in a "raw" +restructured-text form. It is also mirrored at +http://docs.mediagoblin.org/ in HTML form. From 87b44d61ef4c1ace855540ab35f047a2067e277c Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Sat, 30 Apr 2011 08:57:08 -0400 Subject: [PATCH 0139/2731] Adds initial root page This adds an initial root page that's ugly as sin, but makes it easier to test what exists so far (e.g. register, login, submit pictures). --- mediagoblin/templates/mediagoblin/root.html | 39 +++++++++++++++++++++ mediagoblin/views.py | 6 +++- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 mediagoblin/templates/mediagoblin/root.html diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html new file mode 100644 index 00000000..d6fffb8e --- /dev/null +++ b/mediagoblin/templates/mediagoblin/root.html @@ -0,0 +1,39 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% extends "mediagoblin/base.html" %} + +{% block mediagoblin_content %} +

Welcome to GNU MediaGoblin!

+ + {% if request.user %} +

+ Submit an item. +

+ + {% else %} +

+ If you have an account, you can + Login. +

+

+ If you don't have an account, please + Register. +

+ + {% endif %} +{% endblock %} diff --git a/mediagoblin/views.py b/mediagoblin/views.py index 7a3cf098..1081ce29 100644 --- a/mediagoblin/views.py +++ b/mediagoblin/views.py @@ -22,7 +22,11 @@ import wtforms from mediagoblin import models def root_view(request): - return Response("This is the root") + template = request.template_env.get_template( + 'mediagoblin/root.html') + return Response( + template.render( + {'request': request})) class ImageSubmitForm(wtforms.Form): From 2514dc028029e991a965aba011d9a8e65ee8ea37 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 30 Apr 2011 09:26:03 -0500 Subject: [PATCH 0140/2731] Clarified that copyright assignment is encouraged, but not mandatory. --- docs/designdecisions.rst | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/docs/designdecisions.rst b/docs/designdecisions.rst index 3398c24b..93dffbd9 100644 --- a/docs/designdecisions.rst +++ b/docs/designdecisions.rst @@ -244,17 +244,24 @@ everyone is the hero by Will on "Why AGPLv3 and CC0": .. _CC0 v1: http://creativecommons.org/publicdomain/zero/1.0/ -Why copyright assignment? -========================= +Why (non-mandatory) copyright assignment? +========================================= -Will Kahn-Greene on "Why copyright assignment?": +Chris Webber on "Why copyright assignment?": - GNU MediaGoblin is a GNU project with the copyrights held by the - FSF. Like other GNU projects, we require copyright assignment to - the FSF which gives the FSF the legal ability to defend the - AGPL-covered status of the software and distribute it. + GNU MediaGoblin is a GNU project with non-mandatory but heavily + encouraged copyright assignment to the FSF. Most, if not all, of + the core contributors to GNU MediaGoblin will have done a + copyright assignment, but unlike some other GNU projects, it isn't + required here. We think this is the best choice for GNU + MediaGoblin: it ensures that the Free Software Foundation may + protect the software by enforcing the AGPL if the FSF sees fit, + but it also means that we can immediately merge in changes from a + new contributor. It also means that some significant non-FSF + contributors might also be able to enforce the AGPL if seen fit. - This is important to us because it guarantees that this software - we're working so hard on will be available to everyone and will - survive us. As long as someone is interested in using it and/or - working on it, it will live on. + Again, assignment is not mandatory, but it is heavily encouraged, + even incentivized: significant contributors who do a copyright + assignment to the FSF are eligible to have a unique goblin drawing + produced for them by the project's main founder, Christopher Allan + Webber. See :ref:`contributinghowto` for details. From 109c87f829f2feaedac79ceaad394825e75f748c Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 30 Apr 2011 09:31:03 -0500 Subject: [PATCH 0141/2731] Changing the wording around the django-like components statement --- docs/designdecisions.rst | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/docs/designdecisions.rst b/docs/designdecisions.rst index 93dffbd9..8fe4d1f0 100644 --- a/docs/designdecisions.rst +++ b/docs/designdecisions.rst @@ -47,11 +47,10 @@ Why WSGI Minimalism Chris Webber on "Why WSGI Minimalism": - If you notice in the technology listI list a lot of - components that are very `Django Project`_, but not actually - Django components. What can I say, I really like a lot of the - ideas in Django! Which leads to the question: why not just use - Django? + If you notice in the technology list I list a lot of components + that are very "django-like", but not actually `Django`_ + components. What can I say, I really like a lot of the ideas in + Django! Which leads to the question: why not just use Django? While I really like Django's ideas and a lot of its components, I also feel that most of the best ideas in Django I want have been @@ -85,7 +84,7 @@ Chris Webber on "Why WSGI Minimalism": deployment-howto, especially in the former making some notes on how to make it easier for Django hackers to get started. -.. _Django Project: http://www.djangoproject.com/ +.. _Django: http://www.djangoproject.com/ .. _Pylons: http://pylonshq.com/ .. _Pyramid: http://docs.pylonsproject.org/projects/pyramid/dev/ .. _Flask: http://flask.pocoo.org/ From 845c3ae25071dd53c5e2989f0769a5559fdce8b4 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Sat, 30 Apr 2011 11:17:35 -0400 Subject: [PATCH 0142/2731] Adds section on git * instructions for contributing patches * learning git * learning other utilities --- docs/git.rst | 68 +++++++++++++++++++++++++++++++++++++++++++ docs/hackinghowto.rst | 40 ++++++++++++++++++++++--- docs/index.rst | 1 + 3 files changed, 105 insertions(+), 4 deletions(-) create mode 100644 docs/git.rst diff --git a/docs/git.rst b/docs/git.rst new file mode 100644 index 00000000..0db1dacf --- /dev/null +++ b/docs/git.rst @@ -0,0 +1,68 @@ +========================== + Git, Cloning and Patches +========================== + +GNU MediaGoblin uses git for all our version control and we have +the repositories hosted on `Gitorious `_. + +We have two repositories. One is for the project and the other is for +the project website. + + +How to clone the project +======================== + +Do:: + + git clone git://gitorious.org/mediagoblin/mediagoblin.git + + +How to send in patches +====================== + +All patches should be tied to issues in the `issue tracker +`_. +That makes it a lot easier for everyone to track proposed changes and +make sure your hard work doesn't get dropped on the floor! + +If there isn't an issue for what you're working on, please create +one. The better the description of what it is you're trying to +fix/implement, the better everyone else is able to understand why +you're doing what you're doing. + +There are two ways you could send in a patch. + + +How to send in a patch from a publicly available clone +------------------------------------------------------ + +Add a comment to the issue you're working on with the following bits +of information: + +* the url for your clone +* the revs you want looked at +* any details, questions, or other things that should be known + + +How to send in a patch if you don't have a publicly available clone +------------------------------------------------------------------- + +Assuming that the remote is our repository on gitorious and the branch +to compare against is master, do the following: + +1. checkout the branch you did your work in +2. do:: + + git format-patch -o patches origin/master + +3. either: + + * tar up and attach the tarball to the issue you're working on, OR + * attach the patch files to the issue you're working on one at a + time + + +How to learn git +================ + +Check out :ref:`hacking-howto-git`! diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index 8b40e37d..1096b970 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -165,8 +165,8 @@ FIXME - write this Tips for people new to coding ============================= -Python ------- +Learning Python +--------------- GNU MediaGoblin is written using a programming language called `Python `_. @@ -189,8 +189,8 @@ These are all excellent texts. FIXME - are there good quality Python tutorial videos? -Libraries ---------- +Learning Libraries GNU MediaGoblin uses +--------------------------------------- GNU MediaGoblin uses a variety of libraries in order to do what it does. These libraries are listed in the :ref:`beardomatic-chapter` @@ -206,3 +206,35 @@ at `Python Miro Community `_ [0]_. If you have questions or need help, find us on the mailing list and on IRC. + + +.. _hacking-howto-git: + +Learning git +------------ + +git is an interesting and very powerful tool. Like all powerful +tools, it has a learning curve. + +If you're new to git, we highly recommend the following resources for +getting the hang of it: + +* `Learn Git `_ --- the GitHub + intro to git +* `Pro Git `_ --- fantastic book +* `Git casts `_ --- screencast covering git + usage +* `Git Reference `_ --- Git reference that makes + it easier to get the hang of git if you're coming from other version + control systems + + +Learning other utilities +------------------------ + +The `OpenHatch `_ site has a series of +`training missions `_ which are +designed to help you learn how to use these tools. + +If you're new to tar, diff and patch, we highly recommend you sign up +with OpenHatch and do the missions. diff --git a/docs/index.rst b/docs/index.rst index fc8cc642..935e354b 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -17,6 +17,7 @@ Table of Contents: deploymenthowto hackinghowto theminghowto + git designdecisions vision beardomatic From 694c235106c66ff30e52fda69f6ae229f36943b5 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 30 Apr 2011 11:32:33 -0500 Subject: [PATCH 0143/2731] Import based on the DEFAULT_SETTINGS_MODULE in setup_celery_from_config --- mediagoblin/celery_setup/__init__.py | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/mediagoblin/celery_setup/__init__.py b/mediagoblin/celery_setup/__init__.py index 171b9a6f..02b451f0 100644 --- a/mediagoblin/celery_setup/__init__.py +++ b/mediagoblin/celery_setup/__init__.py @@ -15,6 +15,7 @@ # along with this program. If not, see . import os +import sys from paste.deploy.converters import asbool, asint, aslist @@ -69,10 +70,21 @@ def asfloat(obj): "Bad float value: %r" % obj) -def setup_celery_from_config(app_config, global_config): +DEFAULT_SETTINGS_MODULE = 'mediagoblin.celery_setup.dummy_settings_module' + +def setup_celery_from_config(app_config, global_config, + settings_module=DEFAULT_SETTINGS_MODULE, + set_environ=True): """ Take a mediagoblin app config and the global config from a paste factory and try to set up a celery settings module from this. + + Args: + - app_config: the application config section + - global_config: the entire paste config, all sections + - settings_module: the module to populate, as a string + - set_environ: if set, this will CELERY_CONFIG_MODULE to the + settings_module """ if asbool(app_config.get('use_celery_environment_var')) == True: # Don't setup celery based on our config file. @@ -112,10 +124,11 @@ def setup_celery_from_config(app_config, global_config): value = aslist(value) celery_settings[key] = value - from mediagoblin.celery_setup import dummy_settings_module + __import__(settings_module) + this_module = sys.modules[settings_module] for key, value in celery_settings.iteritems(): - setattr(dummy_settings_module, key, value) - - os.environ['CELERY_CONFIG_MODULE'] = \ - 'mediagoblin.celery_setup.dummy_settings_module' + setattr(this_module, key, value) + + if set_environ: + os.environ['CELERY_CONFIG_MODULE'] = settings_module From 94459eadb8f1dae635e43c99958d37977db720c7 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Sat, 30 Apr 2011 14:42:14 -0400 Subject: [PATCH 0144/2731] Changes beardomatic things to codebase things --- docs/{beardomatic.rst => codebase.rst} | 41 +++++++------------------- docs/index.rst | 2 +- 2 files changed, 11 insertions(+), 32 deletions(-) rename docs/{beardomatic.rst => codebase.rst} (52%) diff --git a/docs/beardomatic.rst b/docs/codebase.rst similarity index 52% rename from docs/beardomatic.rst rename to docs/codebase.rst index 14130f6a..2c73e7d3 100644 --- a/docs/beardomatic.rst +++ b/docs/codebase.rst @@ -1,36 +1,15 @@ -.. _beardomatic-chapter: +.. _codebase-chapter: -=========================================== - Beardomatic: Infrastructure Documentation -=========================================== +======================== + Codebase Documentation +======================== -What the hell is Beardomatic? -============================= - -You might be wondering, "Gah! What the hell is Beardomatic!?" - -Well, I'll tell you. GNU MediaGoblin is a piece of software that sits -on a stack of libraries that do a bunch of stuff. It makes it easier -to differentiate the bits of code that encompass GNU MediaGoblin from -the bits of code that GNU MediaGoblin sit on top of. Thus, we came up -with the TOTALLY AWESOME name Beardomatic. - -Now you might be saying, "Holy crap!? Another web framework? Are you -going to write a mocking framework and an enumeration library, too!?" - -No, we're not. We're just calling this Beardomatic so that it's -easier to talk about things. However, at some point, we can take -these infrastructure bits from GNU MediaGoblin and turn them into a -full-blown "web framework". We wouldn't do this to compete for -mindshare with other web frameworks. We would do this to make it -easier for us to bootstrap other similar projects. +This chapter covers the libraries that GNU MediaGoblin uses as well as +various recipes for getting things done. -Beardomatic software stack -========================== - -Beardomatic is a software stack "web framework" composed of the -following bits: +Software Stack +============== * Project infrastructure @@ -80,7 +59,7 @@ following bits: * `JQuery `_: for groovy JavaScript things -How to ... in Beardomatic? -========================== +Recipes +======= FIXME - write this diff --git a/docs/index.rst b/docs/index.rst index 935e354b..16c8ca16 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -18,9 +18,9 @@ Table of Contents: hackinghowto theminghowto git + codebase designdecisions vision - beardomatic Indices and tables From 1c61a6ca3b477b8eadbfc32d3c7f34f8e3531f14 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 30 Apr 2011 21:53:39 -0500 Subject: [PATCH 0145/2731] A few more corrections to make setup_celery_from_config() work right --- mediagoblin/celery_setup/__init__.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/mediagoblin/celery_setup/__init__.py b/mediagoblin/celery_setup/__init__.py index 02b451f0..143f9170 100644 --- a/mediagoblin/celery_setup/__init__.py +++ b/mediagoblin/celery_setup/__init__.py @@ -99,35 +99,41 @@ def setup_celery_from_config(app_config, global_config, celery_settings = {} # set up mongodb stuff + celery_settings['CELERY_RESULT_BACKEND'] = 'mongodb' + if not celery_settings.has_key('BROKER_BACKEND'): + celery_settings['BROKER_BACKEND'] = 'mongodb' + celery_mongo_settings = {} + if app_config.has_key('db_host'): celery_mongo_settings['host'] = app_config['db_host'] - celery_settings['BROKER_HOST'] = app_config['db_host'] + if celery_settings['BROKER_BACKEND'] == 'mongodb': + celery_settings['BROKER_HOST'] = app_config['db_host'] if app_config.has_key('db_port'): celery_mongo_settings['port'] = asint(app_config['db_port']) - celery_settings['BROKER_PORT'] = asint(app_config['db_port']) + if celery_settings['BROKER_BACKEND'] == 'mongodb': + celery_settings['BROKER_PORT'] = asint(app_config['db_port']) celery_mongo_settings['database'] = app_config.get('db_name', 'mediagoblin') celery_settings['CELERY_MONGODB_BACKEND_SETTINGS'] = celery_mongo_settings - celery_settings['CELERY_RESULT_BACKEND'] = 'mongodb' # Add anything else for key, value in celery_conf.iteritems(): key = key.upper() if key in KNOWN_CONFIG_BOOLS: value = asbool(value) - elif value in KNOWN_CONFIG_INTS: + elif key in KNOWN_CONFIG_INTS: value = asint(value) - elif value in KNOWN_CONFIG_FLOATS: + elif key in KNOWN_CONFIG_FLOATS: value = asfloat(value) - elif value in KNOWN_CONFIG_LISTS: + elif key in KNOWN_CONFIG_LISTS: value = aslist(value) celery_settings[key] = value __import__(settings_module) this_module = sys.modules[settings_module] - for key, value in celery_settings.iteritems(): + for key, value in celery_settings.items(): setattr(this_module, key, value) if set_environ: From ef30978ad247e00c8457c53c6aa97683a72a7777 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 30 Apr 2011 21:54:05 -0500 Subject: [PATCH 0146/2731] tests for setup_celery_from_config() --- mediagoblin/celery_setup/__init__.py | 2 +- mediagoblin/tests/fake_celery_module.py | 15 +++++++ mediagoblin/tests/test_celery_setup.py | 53 +++++++++++++++++++++++++ 3 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 mediagoblin/tests/fake_celery_module.py create mode 100644 mediagoblin/tests/test_celery_setup.py diff --git a/mediagoblin/celery_setup/__init__.py b/mediagoblin/celery_setup/__init__.py index 143f9170..3a7f2a5d 100644 --- a/mediagoblin/celery_setup/__init__.py +++ b/mediagoblin/celery_setup/__init__.py @@ -133,7 +133,7 @@ def setup_celery_from_config(app_config, global_config, __import__(settings_module) this_module = sys.modules[settings_module] - for key, value in celery_settings.items(): + for key, value in celery_settings.iteritems(): setattr(this_module, key, value) if set_environ: diff --git a/mediagoblin/tests/fake_celery_module.py b/mediagoblin/tests/fake_celery_module.py new file mode 100644 index 00000000..c129cbf8 --- /dev/null +++ b/mediagoblin/tests/fake_celery_module.py @@ -0,0 +1,15 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . diff --git a/mediagoblin/tests/test_celery_setup.py b/mediagoblin/tests/test_celery_setup.py new file mode 100644 index 00000000..4c2f1269 --- /dev/null +++ b/mediagoblin/tests/test_celery_setup.py @@ -0,0 +1,53 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import pkg_resources + +from mediagoblin import celery_setup + + +def test_setup_celery_from_config(): + def _wipe_testmodule_clean(module): + vars_to_wipe = [ + var for var in dir(module) + if not var.startswith('__') and not var.endswith('__')] + for var in vars_to_wipe: + delattr(module, var) + + + celery_setup.setup_celery_from_config( + {}, + {'something': {'or': 'other'}, + 'celery': {'some_variable': 'floop', + 'mail_port': '2000', + 'CELERYD_ETA_SCHEDULER_PRECISION': '1.3', + 'celery_result_persistent': 'true', + 'celery_imports': 'foo.bar.baz this.is.an.import'}}, + 'mediagoblin.tests.fake_celery_module', set_environ=False) + + from mediagoblin.tests import fake_celery_module + assert fake_celery_module.SOME_VARIABLE == 'floop' + assert fake_celery_module.MAIL_PORT == 2000 + assert isinstance(fake_celery_module.MAIL_PORT, int) + assert fake_celery_module.CELERYD_ETA_SCHEDULER_PRECISION == 1.3 + assert isinstance(fake_celery_module.CELERYD_ETA_SCHEDULER_PRECISION, float) + assert fake_celery_module.CELERY_RESULT_PERSISTENT is True + assert fake_celery_module.CELERY_IMPORTS == [ + 'foo.bar.baz', 'this.is.an.import'] + assert fake_celery_module.CELERY_MONGODB_BACKEND_SETTINGS == { + 'database': 'mediagoblin'} + assert fake_celery_module.CELERY_RESULT_BACKEND == 'mongodb' + assert fake_celery_module.BROKER_BACKEND == 'mongodb' From 524c8f347ff0b5c1fc176543157fa60b208906fe Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 1 May 2011 09:01:20 -0500 Subject: [PATCH 0147/2731] Second round of tests for setup_celery_from_config(), with some database information --- mediagoblin/tests/test_celery_setup.py | 34 +++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/mediagoblin/tests/test_celery_setup.py b/mediagoblin/tests/test_celery_setup.py index 4c2f1269..da18b0ef 100644 --- a/mediagoblin/tests/test_celery_setup.py +++ b/mediagoblin/tests/test_celery_setup.py @@ -27,7 +27,6 @@ def test_setup_celery_from_config(): for var in vars_to_wipe: delattr(module, var) - celery_setup.setup_celery_from_config( {}, {'something': {'or': 'other'}, @@ -51,3 +50,36 @@ def test_setup_celery_from_config(): 'database': 'mediagoblin'} assert fake_celery_module.CELERY_RESULT_BACKEND == 'mongodb' assert fake_celery_module.BROKER_BACKEND == 'mongodb' + + _wipe_testmodule_clean(fake_celery_module) + + celery_setup.setup_celery_from_config( + {'db_host': 'mongodb.example.org', + 'db_port': '8080', + 'db_name': 'captain_lollerskates', + 'celery_section': 'vegetable'}, + {'something': {'or': 'other'}, + 'vegetable': {'some_variable': 'poolf', + 'mail_port': '2020', + 'CELERYD_ETA_SCHEDULER_PRECISION': '3.1', + 'celery_result_persistent': 'false', + 'celery_imports': 'baz.bar.foo import.is.a.this'}}, + 'mediagoblin.tests.fake_celery_module', set_environ=False) + + from mediagoblin.tests import fake_celery_module + assert fake_celery_module.SOME_VARIABLE == 'poolf' + assert fake_celery_module.MAIL_PORT == 2020 + assert isinstance(fake_celery_module.MAIL_PORT, int) + assert fake_celery_module.CELERYD_ETA_SCHEDULER_PRECISION == 3.1 + assert isinstance(fake_celery_module.CELERYD_ETA_SCHEDULER_PRECISION, float) + assert fake_celery_module.CELERY_RESULT_PERSISTENT is False + assert fake_celery_module.CELERY_IMPORTS == [ + 'baz.bar.foo', 'import.is.a.this'] + assert fake_celery_module.CELERY_MONGODB_BACKEND_SETTINGS == { + 'database': 'captain_lollerskates', + 'host': 'mongodb.example.org', + 'port': 8080} + assert fake_celery_module.CELERY_RESULT_BACKEND == 'mongodb' + assert fake_celery_module.BROKER_BACKEND == 'mongodb' + assert fake_celery_module.BROKER_HOST == 'mongodb.example.org' + assert fake_celery_module.BROKER_PORT == 8080 From 1e48a8308a035e78398c4982d60cfa8f947f41e3 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 1 May 2011 10:17:04 -0500 Subject: [PATCH 0148/2731] Now we have something useful: mediagoblin.celery_setup.from_celery auto-configures a celery config module from your paste config --- mediagoblin/celery_setup/from_celery.py | 87 +++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 mediagoblin/celery_setup/from_celery.py diff --git a/mediagoblin/celery_setup/from_celery.py b/mediagoblin/celery_setup/from_celery.py new file mode 100644 index 00000000..851cbaa1 --- /dev/null +++ b/mediagoblin/celery_setup/from_celery.py @@ -0,0 +1,87 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import os + +import mongokit +from paste.deploy.loadwsgi import NicerConfigParser + +from mediagoblin import storage +from mediagoblin.celery_setup import setup_celery_from_config +from mediagoblin.globals import setup_globals + + +OUR_MODULENAME = 'mediagoblin.celery_setup.from_celery' + + +def setup_self(setup_globals_func=setup_globals): + """ + Transform this module into a celery config module by reading the + mediagoblin config file. Set the environment variable + MEDIAGOBLIN_CONFIG to specify where this config file is at and + what section it uses. + + By default it defaults to 'mediagoblin.ini:app:mediagoblin'. + + The first colon ":" is a delimiter between the filename and the + config section, so in this case the filename is 'mediagoblin.ini' + and the section where mediagoblin is defined is 'app:mediagoblin'. + + Args: + - 'setup_globals_func': this is for testing purposes only. Don't + set this! + """ + mgoblin_conf_file, mgoblin_section = os.environ.get( + 'MEDIAGOBLIN_CONFIG', 'mediagoblin.ini:app:mediagoblin').split(':', 1) + if not os.path.exists(mgoblin_conf_file): + raise IOError( + "MEDIAGOBLIN_CONFIG not set or file does not exist") + + parser = NicerConfigParser(mgoblin_conf_file) + parser.read(mgoblin_conf_file) + parser._defaults.setdefault( + 'here', os.path.dirname(os.path.abspath(mgoblin_conf_file))) + parser._defaults.setdefault( + '__file__', os.path.abspath(mgoblin_conf_file)) + + mgoblin_section = dict(parser.items(mgoblin_section)) + mgoblin_conf = dict( + [(section_name, dict(parser.items(section_name))) + for section_name in parser.sections()]) + setup_celery_from_config( + mgoblin_section, mgoblin_conf, + settings_module=OUR_MODULENAME, + set_environ=False) + + connection = mongokit.Connection( + mgoblin_section.get('db_host'), mgoblin_section.get('db_port')) + db = connection[mgoblin_section.get('db_name', 'mediagoblin')] + + # Set up the storage systems. + public_store = storage.storage_system_from_paste_config( + mgoblin_section, 'publicstore') + queue_store = storage.storage_system_from_paste_config( + mgoblin_section, 'queuestore') + + setup_globals_func( + db_connection=connection, + database=db, + public_store=public_store, + queue_store=queue_store) + + +if os.environ['CELERY_CONFIG_MODULE'] == OUR_MODULENAME: + setup_self() From 4a3f04323597410048b16f65dc67c8254b713140 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 1 May 2011 10:17:39 -0500 Subject: [PATCH 0149/2731] Include dependent scripts... maybe we'll change this later --- buildout.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/buildout.cfg b/buildout.cfg index 2b36fb7c..520d5907 100644 --- a/buildout.cfg +++ b/buildout.cfg @@ -5,6 +5,7 @@ parts = mediagoblin make_user_dev_dirs [mediagoblin] recipe=zc.recipe.egg interpreter=python +dependent-scripts = true eggs=mediagoblin entry-points = nosetests=nose:run_exit From 132a68b54696c6a405cd9061bfe1dbe4feafb795 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 1 May 2011 18:22:27 -0500 Subject: [PATCH 0150/2731] Require sphinx & jinja2 for good measure :) --- setup.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/setup.py b/setup.py index 38f1a4d4..5f3ebf95 100644 --- a/setup.py +++ b/setup.py @@ -37,6 +37,8 @@ setup( 'nose', 'werkzeug', 'celery', + 'jinja2', + 'sphinx', ], test_suite='nose.collector', From 258b62c6a2046e0a378ee4da2bd2390acf535990 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 1 May 2011 19:41:22 -0500 Subject: [PATCH 0151/2731] Register the models when using from_celery --- mediagoblin/celery_setup/from_celery.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mediagoblin/celery_setup/from_celery.py b/mediagoblin/celery_setup/from_celery.py index 851cbaa1..9bd7fe07 100644 --- a/mediagoblin/celery_setup/from_celery.py +++ b/mediagoblin/celery_setup/from_celery.py @@ -19,7 +19,7 @@ import os import mongokit from paste.deploy.loadwsgi import NicerConfigParser -from mediagoblin import storage +from mediagoblin import storage, models from mediagoblin.celery_setup import setup_celery_from_config from mediagoblin.globals import setup_globals @@ -69,6 +69,7 @@ def setup_self(setup_globals_func=setup_globals): connection = mongokit.Connection( mgoblin_section.get('db_host'), mgoblin_section.get('db_port')) db = connection[mgoblin_section.get('db_name', 'mediagoblin')] + models.register_models(connection) # Set up the storage systems. public_store = storage.storage_system_from_paste_config( From 3dca2776a63886adcaac4bde188fb9ec8e74cfe2 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Mon, 2 May 2011 12:20:53 -0400 Subject: [PATCH 0152/2731] Fixes dead references in docs. --- docs/contributinghowto.rst | 2 ++ docs/designdecisions.rst | 2 +- docs/hackinghowto.rst | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/contributinghowto.rst b/docs/contributinghowto.rst index f10dd72a..a452f2d0 100644 --- a/docs/contributinghowto.rst +++ b/docs/contributinghowto.rst @@ -1,3 +1,5 @@ +.. _contributing-howto-chapter: + ==================== Contributing HOWTO ==================== diff --git a/docs/designdecisions.rst b/docs/designdecisions.rst index 8fe4d1f0..cd902f83 100644 --- a/docs/designdecisions.rst +++ b/docs/designdecisions.rst @@ -263,4 +263,4 @@ Chris Webber on "Why copyright assignment?": even incentivized: significant contributors who do a copyright assignment to the FSF are eligible to have a unique goblin drawing produced for them by the project's main founder, Christopher Allan - Webber. See :ref:`contributinghowto` for details. + Webber. See :ref:`contributing-howto-chapter` for details. diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index 1096b970..26267b7f 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -193,7 +193,7 @@ Learning Libraries GNU MediaGoblin uses --------------------------------------- GNU MediaGoblin uses a variety of libraries in order to do what it -does. These libraries are listed in the :ref:`beardomatic-chapter` +does. These libraries are listed in the :ref:`codebase-chapter` along with links to the project Web sites and documentation for the libraries. From 8ac897c3b6834120eeaec6e8cd1646032b1b3739 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Tue, 3 May 2011 09:49:56 -0500 Subject: [PATCH 0153/2731] Add the base.css and reference it so other people can start working on it :) --- mediagoblin/static/css/base.css | 1 + mediagoblin/templates/mediagoblin/base.html | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 mediagoblin/static/css/base.css diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css new file mode 100644 index 00000000..93b0b1a2 --- /dev/null +++ b/mediagoblin/static/css/base.css @@ -0,0 +1 @@ +/* stuff goes here :) */ \ No newline at end of file diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 01c68258..71c2e550 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -18,8 +18,8 @@ {% block title %}MediaGoblin{% endblock title %} - {# #} + From 9610848c298fff67da83abd495a44be86dd4eea3 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Tue, 3 May 2011 12:07:01 -0400 Subject: [PATCH 0154/2731] Lots of documentation changes * added a YouCanHelp directive to replace FIXMEs and encourage contributors to help out * moved some bits around between the hacking howto and the codebase documents * expanded on the stub nature of the theming howto * tweaked some other text --- docs/codebase.rst | 61 +++++++++++++++++++++++++++++ docs/conf.py | 4 +- docs/contributinghowto.rst | 5 +++ docs/hackinghowto.rst | 79 +++++++++++++++++++++----------------- docs/mediagoblin.rst | 2 +- docs/mgext/__init__.py | 0 docs/mgext/youcanhelp.py | 44 +++++++++++++++++++++ docs/theminghowto.rst | 3 +- 8 files changed, 159 insertions(+), 39 deletions(-) create mode 100644 docs/mgext/__init__.py create mode 100644 docs/mgext/youcanhelp.py diff --git a/docs/codebase.rst b/docs/codebase.rst index 2c73e7d3..1f6ce220 100644 --- a/docs/codebase.rst +++ b/docs/codebase.rst @@ -7,6 +7,18 @@ This chapter covers the libraries that GNU MediaGoblin uses as well as various recipes for getting things done. +.. Note:: + + This chapter is in flux. Clearly there are things here that aren't + documented. If there's something you have questions about, please + ask! + + See `the join page on the website `_ + for where we hang out. + +For more information on how to get started hacking on GNU MediaGoblin, +see :ref:`hacking-howto`. + Software Stack ============== @@ -59,6 +71,55 @@ Software Stack * `JQuery `_: for groovy JavaScript things + +What's where +============ + +After you've run buildout, you're faced with the following directory +tree:: + + mediagoblin/ + |- mediagoblin/ source code + | |- tests/ + | |- templates/ + | |- auth/ + | \- submit/ + |- docs/ documentation + | + | the rest of these directories are generated by + | buildout. + | + |- bin/ scripts + |- develop-eggs/ + |- eggs/ + |- mediagoblin.egg-info/ + |- parts/ + |- user_dev/ sessions, etc + + +As you can see, all the code for GNU MediaGoblin is in the +``mediagoblin`` directory. + +Here are some interesting files and what they do: + +:routing.py: maps url paths to views +:views.py: views handle http requests +:models.py: holds the mongodb schemas---these are the data structures + we're working with + +You'll notice that there are several sub-directories: tests, +templates, auth, submit, ... + +``tests`` holds the unit test code. + +``templates`` holds all the templates for the output. + +``auth`` and ``submit`` are modules that enacpsulate authentication +and media item submission. If you look in these directories, you'll +see they have their own ``routing.py``, ``view.py``, and +``models.py`` in addition to some other code. + + Recipes ======= diff --git a/docs/conf.py b/docs/conf.py index 967d84d0..fedaf33c 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -16,7 +16,7 @@ import sys, os # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) +sys.path.insert(0, os.path.abspath('.')) # -- General configuration ----------------------------------------------------- @@ -25,7 +25,7 @@ import sys, os # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = [] +extensions = ["mgext.youcanhelp"] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] diff --git a/docs/contributinghowto.rst b/docs/contributinghowto.rst index a452f2d0..56a80b91 100644 --- a/docs/contributinghowto.rst +++ b/docs/contributinghowto.rst @@ -4,11 +4,16 @@ Contributing HOWTO ==================== +.. _join-the-community-section: + Join the community! =================== We're super glad you want to join our community! +See `the join page on the website `_ for +where we hang out. + There are a variety of ways you can help us and become part of the team. We're not just looking for coders! We're also looking for documentation writers, users, testers, evangelists, user-interface diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index 26267b7f..fe2411bb 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -9,16 +9,20 @@ So you want to hack on GNU MediaGoblin? ======================================= First thing to do is check out the `Web site -`_ where we list all the project +`_ where we list all the project infrastructure including: -* the mailing list * the IRC channel -* the bug tracker +* the mailing list +* the issue tracker Additionally, we have information on how to get involved, who to talk to, what needs to be worked on, and other things besides! +Second thing to do is take a look at :ref:`codebase-chapter` where +we've started documenting how GNU MediaGoblin is built and how to add +new things. + How to set up and maintain an environment for hacking ===================================================== @@ -80,10 +84,16 @@ Updating dependencies --------------------- While hacking on GNU MediaGoblin over time, you'll eventually have to -update your development environment. To do that, run:: +update your development environment because the dependencies have +changed. To do that, run:: ./bin/buildout +.. Note:: + + You only need to do this when dependencies are updated. You don't + need to do this when you've made code changes. + Wiping your environment for a clean-slate ----------------------------------------- @@ -104,8 +114,12 @@ Delete the following directories: * parts/ * user_dev/ -FIXME - how to drop data from mongodb? we should probably write a -script. + +.. YouCanHelp:: + + If you're familiar with MongoDB and bash, we'd love to get a bash + script that removes all the GNU MediaGoblin data from an existing + MongoDB instance. Let us know! Running the server @@ -124,42 +138,34 @@ Run:: ./bin/nosetests -What's where -============ - -After you've run buildout, you're faced with the following directory -tree:: - - mediagoblin/ - |- mediagoblin/ source code - | |- tests/ - | |- templates/ - | |- auth/ - | \- submit/ - |- docs/ documentation - | - | the rest of these directories are generated by - | buildout. - | - |- bin/ scripts - |- develop-eggs/ - |- eggs/ - |- mediagoblin.egg-info/ - |- parts/ - |- user_dev/ sessions, etc - - - Quickstart for Django programmers ================================= -FIXME - write this +We're not using Django, but the codebase is very Django-like in its +structure. + +* ``routing.py`` is like ``urls.py`` in Django +* ``models.py`` has mongokit ORM definitions +* ``views.py`` is where the views go + +We're using MongoDB. Basically, instead of a relational database with +tables, you have a big JSON structure which acts a lot like a Python +dict. + + +.. YouCanHelp:: + + If there are other things that you think would help orient someone + new to GNU MediaGoblin but coming from Django, let us know! Bite-sized bugs to start with ============================= -FIXME - write this +**May 3rd, 2011**: We don't have a list of bite-sized bugs, yet, but +this is important to us. If you're interested in things to work on, +let us know on `the mailing list `_ or +on the `IRC channel `_. Tips for people new to coding @@ -186,7 +192,10 @@ that are freely available on the Internet: These are all excellent texts. -FIXME - are there good quality Python tutorial videos? +.. YouCanHelp:: + + If you know of other good quality Python tutorials and Python + tutorial videos, let us know! Learning Libraries GNU MediaGoblin uses diff --git a/docs/mediagoblin.rst b/docs/mediagoblin.rst index a6194dc4..6d511850 100644 --- a/docs/mediagoblin.rst +++ b/docs/mediagoblin.rst @@ -44,7 +44,7 @@ dedicated to computer user freedom. How can I participate? ====================== -See `Get Involved `. +See `Get Involved `_ on the website.. How is GNU MediaGoblin licensed? diff --git a/docs/mgext/__init__.py b/docs/mgext/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/docs/mgext/youcanhelp.py b/docs/mgext/youcanhelp.py new file mode 100644 index 00000000..a99d0e4d --- /dev/null +++ b/docs/mgext/youcanhelp.py @@ -0,0 +1,44 @@ +from docutils import nodes + +from sphinx.util.compat import Directive, make_admonition + +class youcanhelp_node(nodes.Admonition, nodes.Element): + pass + +class YouCanHelp(Directive): + has_content = True + required_arguments = 0 + optional_arguments = 0 + final_argument_whitespace = False + option_spec = {} + + def run(self): + ad = make_admonition( + youcanhelp_node, + self.name, + ["You Can Help!"], + self.options, + self.content, + self.lineno, + self.content_offset, + self.block_text, + self.state, + self.state_machine) + ad[0].line = self.lineno + return ad + +def visit_youcanhelp_node(self, node): + self.visit_admonition(node) + +def depart_youcanhelp_node(self, node): + self.depart_admonition(node) + +def setup(app): + app.add_node( + youcanhelp_node, + html=(visit_youcanhelp_node, depart_youcanhelp_node), + latex=(visit_youcanhelp_node, depart_youcanhelp_node), + text=(visit_youcanhelp_node, depart_youcanhelp_node) + ) + + app.add_directive('youcanhelp', YouCanHelp) diff --git a/docs/theminghowto.rst b/docs/theminghowto.rst index 23f9cb1b..7b40685f 100644 --- a/docs/theminghowto.rst +++ b/docs/theminghowto.rst @@ -4,4 +4,5 @@ Theming HOWTO =============== -FIXME - stub! +We haven't implemented the necessary scaffolding to allow for theming +yet. Thus, this chapter is a stub. From db1a438f3e6f8c5c8cec20b9326a21baf4579306 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Tue, 3 May 2011 19:49:39 +0200 Subject: [PATCH 0155/2731] Added functionality to support user email verification, email = TBD, verification = done. Signed-off-by: Joar Wandborg --- mediagoblin/auth/routing.py | 4 ++- mediagoblin/auth/views.py | 23 +++++++++++++++ mediagoblin/models.py | 7 +++-- .../mediagoblin/auth/verify_email.html | 28 +++++++++++++++++++ 4 files changed, 58 insertions(+), 4 deletions(-) create mode 100644 mediagoblin/templates/mediagoblin/auth/verify_email.html diff --git a/mediagoblin/auth/routing.py b/mediagoblin/auth/routing.py index 92f19371..59762840 100644 --- a/mediagoblin/auth/routing.py +++ b/mediagoblin/auth/routing.py @@ -24,4 +24,6 @@ auth_routes = [ Route('mediagoblin.auth.login', '/login/', controller='mediagoblin.auth.views:login'), Route('mediagoblin.auth.logout', '/logout/', - controller='mediagoblin.auth.views:logout')] + controller='mediagoblin.auth.views:logout'), + Route('mediagoblin.auth.verify_email', '/verify_email/', + controller='mediagoblin.auth.views:verify_email')] diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 15e33e17..dfb6899f 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -116,3 +116,26 @@ def logout(request): return exc.HTTPFound( location=request.urlgen("index")) + +def verify_email(request): + import bson.objectid + user = request.db.User.find_one( + {'_id': bson.objectid.ObjectId( unicode( request.GET.get('userid') ) )}) + + verification_successful = bool + + if user and user['verification_key'] == unicode( request.GET.get('token') ): + user['status'] = u'active' + user['email_verified'] = True + verification_successful = True + user.save() + else: + verification_successful = False + + template = request.template_env.get_template( + 'mediagoblin/auth/verify_email.html') + return Response( + template.render( + {'request': request, + 'user': user, + 'verification_successful': verification_successful})) diff --git a/mediagoblin/models.py b/mediagoblin/models.py index eef59ed4..62cab4a5 100644 --- a/mediagoblin/models.py +++ b/mediagoblin/models.py @@ -14,7 +14,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -import datetime +import datetime, uuid from mongokit import Document, Set @@ -41,6 +41,7 @@ class User(Document): 'pw_hash': unicode, 'email_verified': bool, 'status': unicode, + 'verification_key': unicode } required_fields = ['username', 'created', 'pw_hash', 'email'] @@ -48,8 +49,8 @@ class User(Document): default_values = { 'created': datetime.datetime.utcnow, 'email_verified': False, - # TODO: shouldn't be active by default, must have email registration - 'status': u'active'} + 'status': u'needs_email_verification', + 'verification_key': unicode( uuid.uuid4() ) } def check_login(self, password): """ diff --git a/mediagoblin/templates/mediagoblin/auth/verify_email.html b/mediagoblin/templates/mediagoblin/auth/verify_email.html new file mode 100644 index 00000000..fe9094bd --- /dev/null +++ b/mediagoblin/templates/mediagoblin/auth/verify_email.html @@ -0,0 +1,28 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% extends "mediagoblin/base.html" %} + +{% block mediagoblin_content %} +

+ {% if verification_successful %} + Your email address has been verified! + {% else %} + The verification key or user id is incorrect + {% endif %} +

+{% endblock %} From 65f24846540052ec58174296190578a3323cac12 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Tue, 3 May 2011 20:03:54 +0200 Subject: [PATCH 0156/2731] Added server-log.txt to .gitignore Signed-off-by: Joar Wandborg --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index b9f1554e..6f6fc624 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ mediagoblin.egg-info *.pyo docs/_build/ user_dev/ +server-log.txt \ No newline at end of file From 41f446f4f2642e1cbcdba7e129978743ae598758 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Tue, 3 May 2011 21:45:13 -0500 Subject: [PATCH 0157/2731] Add a rudimentary media processing function. Haven't completely checked it for workingness, and not the final form this will take :) --- mediagoblin/process_media/__init__.py | 50 +++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 mediagoblin/process_media/__init__.py diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py new file mode 100644 index 00000000..0d02a13f --- /dev/null +++ b/mediagoblin/process_media/__init__.py @@ -0,0 +1,50 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import Image +import mongokit +from celery.task import task + +from mediagoblin.globals import database, queue_store, public_store + + +THUMB_SIZE = 200, 200 + + +@task +def process_media_initial(media_id): + entry = database.MediaEntry.one( + {'_id': mongokit.ObjectId(media_id)}) + + queued_filepath = entry['queue_files'].pop() + queued_file = queue_store.get_file(queued_filepath, 'r') + + with queued_file: + thumb = Image(queued_file) + thumb.thumbnail(THUMB_SIZE, Image.ANTIALIAS) + + thumb_filepath = public_store.get_unique_filepath( + ['media_entries', + unicode(entry['_id']), + 'thumbnail.jpg']) + + with public_store.get_file(thumb_filepath, 'w') as thumb_file: + thumb.save(thumb_file, "JPEG") + + queue_store.delete(queued_filepath) + entry.setdefault('media_files', []).append(thumb_filepath) + entry.state = 'processed' + entry.save() From 883cf4973464ec19b8360d699584294446a13559 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Tue, 3 May 2011 21:45:24 -0500 Subject: [PATCH 0158/2731] Require PIL --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 5f3ebf95..853a5a3b 100644 --- a/setup.py +++ b/setup.py @@ -39,6 +39,7 @@ setup( 'celery', 'jinja2', 'sphinx', + 'PIL', ], test_suite='nose.collector', From 88816492a3776618e2a2a9ad40d49445ebba410d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Tue, 3 May 2011 21:48:02 -0500 Subject: [PATCH 0159/2731] Force imports of stuff like mediagoblin.process_media which has tasks we need --- mediagoblin/celery_setup/__init__.py | 6 ++++++ mediagoblin/tests/test_celery_setup.py | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/mediagoblin/celery_setup/__init__.py b/mediagoblin/celery_setup/__init__.py index 3a7f2a5d..551b2741 100644 --- a/mediagoblin/celery_setup/__init__.py +++ b/mediagoblin/celery_setup/__init__.py @@ -70,6 +70,8 @@ def asfloat(obj): "Bad float value: %r" % obj) +MANDATORY_CELERY_IMPORTS = ['mediagoblin.process_media'] + DEFAULT_SETTINGS_MODULE = 'mediagoblin.celery_setup.dummy_settings_module' def setup_celery_from_config(app_config, global_config, @@ -130,6 +132,10 @@ def setup_celery_from_config(app_config, global_config, value = aslist(value) celery_settings[key] = value + # add mandatory celery imports + celery_imports = celery_settings.setdefault('CELERY_IMPORTS', []) + celery_imports.extend(MANDATORY_CELERY_IMPORTS) + __import__(settings_module) this_module = sys.modules[settings_module] diff --git a/mediagoblin/tests/test_celery_setup.py b/mediagoblin/tests/test_celery_setup.py index da18b0ef..558eb458 100644 --- a/mediagoblin/tests/test_celery_setup.py +++ b/mediagoblin/tests/test_celery_setup.py @@ -45,7 +45,7 @@ def test_setup_celery_from_config(): assert isinstance(fake_celery_module.CELERYD_ETA_SCHEDULER_PRECISION, float) assert fake_celery_module.CELERY_RESULT_PERSISTENT is True assert fake_celery_module.CELERY_IMPORTS == [ - 'foo.bar.baz', 'this.is.an.import'] + 'foo.bar.baz', 'this.is.an.import', 'mediagoblin.process_media'] assert fake_celery_module.CELERY_MONGODB_BACKEND_SETTINGS == { 'database': 'mediagoblin'} assert fake_celery_module.CELERY_RESULT_BACKEND == 'mongodb' @@ -74,7 +74,7 @@ def test_setup_celery_from_config(): assert isinstance(fake_celery_module.CELERYD_ETA_SCHEDULER_PRECISION, float) assert fake_celery_module.CELERY_RESULT_PERSISTENT is False assert fake_celery_module.CELERY_IMPORTS == [ - 'baz.bar.foo', 'import.is.a.this'] + 'baz.bar.foo', 'import.is.a.this', 'mediagoblin.process_media'] assert fake_celery_module.CELERY_MONGODB_BACKEND_SETTINGS == { 'database': 'captain_lollerskates', 'host': 'mongodb.example.org', From 4d4f6050d84125f4fd3845e42965fd21d07a5176 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 4 May 2011 08:00:08 -0500 Subject: [PATCH 0160/2731] send_email tool and email sending tests --- mediagoblin/tests/test_util.py | 41 ++++++++++++++++ mediagoblin/util.py | 87 ++++++++++++++++++++++++++++++++++ 2 files changed, 128 insertions(+) diff --git a/mediagoblin/tests/test_util.py b/mediagoblin/tests/test_util.py index 0e7a2967..5bc31fd6 100644 --- a/mediagoblin/tests/test_util.py +++ b/mediagoblin/tests/test_util.py @@ -14,9 +14,14 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +import email + from mediagoblin import util +util._activate_testing() + + def _import_component_testing_method(silly_string): # Just for the sake of testing that our component importer works. return u"'%s' is the silliest string I've ever seen" % silly_string @@ -28,3 +33,39 @@ def test_import_component(): result = imported_func('hooobaladoobala') expected = u"'hooobaladoobala' is the silliest string I've ever seen" assert result == expected + + +def test_send_email(): + util._clear_test_inboxes() + + # send the email + util.send_email( + "sender@mediagoblin.example.org", + ["amanda@example.org", "akila@example.org"], + "Testing is so much fun!", + """HAYYY GUYS! + +I hope you like unit tests JUST AS MUCH AS I DO!""") + + # check the main inbox + assert len(util.EMAIL_TEST_INBOX) == 1 + message = util.EMAIL_TEST_INBOX.pop() + assert message['From'] == "sender@mediagoblin.example.org" + assert message['To'] == "amanda@example.org, akila@example.org" + assert message['Subject'] == "Testing is so much fun!" + assert message.get_payload(decode=True) == """HAYYY GUYS! + +I hope you like unit tests JUST AS MUCH AS I DO!""" + + # Check everything that the FakeMhost.sendmail() method got is correct + assert len(util.EMAIL_TEST_MBOX_INBOX) == 1 + mbox_dict = util.EMAIL_TEST_MBOX_INBOX.pop() + assert mbox_dict['from'] == "sender@mediagoblin.example.org" + assert mbox_dict['to'] == ["amanda@example.org", "akila@example.org"] + mbox_message = email.message_from_string(mbox_dict['message']) + assert mbox_message['From'] == "sender@mediagoblin.example.org" + assert mbox_message['To'] == "amanda@example.org, akila@example.org" + assert mbox_message['Subject'] == "Testing is so much fun!" + assert mbox_message.get_payload(decode=True) == """HAYYY GUYS! + +I hope you like unit tests JUST AS MUCH AS I DO!""" diff --git a/mediagoblin/util.py b/mediagoblin/util.py index c9c57dfc..5b578a00 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -14,11 +14,23 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +from email.MIMEText import MIMEText +import smtplib import sys import jinja2 import mongokit + +TESTS_ENABLED = False +def _activate_testing(): + """ + Call this to activate testing in util.py + """ + global TESTS_ENABLED + TESTS_ENABLED = True + + def get_jinja_env(user_template_path=None): """ Set up the Jinja environment, possibly allowing for user @@ -72,3 +84,78 @@ def import_component(import_string): module = sys.modules[module_name] func = getattr(module, func_name) return func + + +### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +### Special email test stuff begins HERE +### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# We have two "test inboxes" here: +# +# EMAIL_TEST_INBOX: +# ---------------- +# If you're writing test views, you'll probably want to check this. +# It contains a list of MIMEText messages. +# +# EMAIL_TEST_MBOX_INBOX: +# ---------------------- +# This collects the messages from the FakeMhost inbox. It's reslly +# just here for testing the send_email method itself. +# +# Anyway this contains: +# - from +# - to: a list of email recipient addresses +# - message: not just the body, but the whole message, including +# headers, etc. +# +# ***IMPORTANT!*** +# ---------------- +# Before running tests that call functions which send email, you should +# always call _clear_test_inboxes() to "wipe" the inboxes clean. + +EMAIL_TEST_INBOX = [] +EMAIL_TEST_MBOX_INBOX = [] + + +class FakeMhost(object): + """ + Just a fake mail host so we can capture and test messages + from send_email + """ + def connect(self): + pass + + def sendmail(self, from_addr, to_addrs, message): + EMAIL_TEST_MBOX_INBOX.append( + {'from': from_addr, + 'to': to_addrs, + 'message': message}) + +def _clear_test_inboxes(): + global EMAIL_TEST_INBOX + global EMAIL_TEST_MBOX_INBOX + EMAIL_TEST_INBOX = [] + EMAIL_TEST_MBOX_INBOX = [] + +### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +### +### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +def send_email(from_addr, to_addrs, subject, message_body): + # TODO: make a mock mhost if testing is enabled + if TESTS_ENABLED: + mhost = FakeMhost() + else: + mhost = smtplib.SMTP() + + mhost.connect() + + message = MIMEText(message_body.encode('utf-8'), 'plain', 'utf-8') + message['Subject'] = subject + message['From'] = from_addr + message['To'] = ', '.join(to_addrs) + + if TESTS_ENABLED: + EMAIL_TEST_INBOX.append(message) + + return mhost.sendmail(from_addr, to_addrs, message.as_string()) From 61ec968b0d1a3681bbc049d651f67100b64e1f6d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 4 May 2011 08:11:37 -0500 Subject: [PATCH 0161/2731] A simple, maybe obvious, docstring for util.send_email() --- mediagoblin/util.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 5b578a00..d24b59b6 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -142,6 +142,16 @@ def _clear_test_inboxes(): ### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def send_email(from_addr, to_addrs, subject, message_body): + """ + Simple email sending wrapper, use this so we can capture messages + for unit testing purposes. + + Args: + - from_addr: address you're sending the email from + - to_addrs: list of recipient email addresses + - subject: subject of the email + - message_body: email body text + """ # TODO: make a mock mhost if testing is enabled if TESTS_ENABLED: mhost = FakeMhost() From 1b9e2541b9e8c4449f8f78dc91c8caa7b92c7aa5 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Thu, 5 May 2011 18:22:27 -0400 Subject: [PATCH 0162/2731] Adds design decision for the name --- docs/designdecisions.rst | 59 +++++++++++++++++++++++++++++++++++++++ docs/goblin.png | Bin 0 -> 47763 bytes docs/snugglygoblin.png | Bin 0 -> 163754 bytes 3 files changed, 59 insertions(+) create mode 100644 docs/goblin.png create mode 100644 docs/snugglygoblin.png diff --git a/docs/designdecisions.rst b/docs/designdecisions.rst index cd902f83..50dfe3e8 100644 --- a/docs/designdecisions.rst +++ b/docs/designdecisions.rst @@ -7,6 +7,63 @@ This chapter talks a bit about design decisions. +Why GNU MediaGoblin? +==================== + +Chris and Will on "Why GNU MediaGoblin": + + Chris came up with the name MediaGoblin. The name is pretty fun. + It merges the idea that this is a Media hosting project with + Goblin which sort of sounds like gobbling. Here's a piece of + software that gobbles up your media for all to see. + + `According to Wikipedia `_, a + goblin is: + + a legendary evil or mischievous illiterate creature, described + as grotesquely evil or evil-like phantom + + So are we evil? No. Are we mischievous or illiterate? Not + really. So what kind of goblin are we thinking about? We're + thinking about these goblins: + + .. figure:: goblin.png + :alt: Cute goblin with a beret. + + *Figure 1: Cute goblin with a beret. llustrated by Chris + Webber* + + .. figure:: snugglygoblin.png + :scale: 50% + :alt: Snuggly goblin with a beret. + + *Figure 2: Snuggly goblin. Illustrated by Karen Rustad* + + Those are pretty cute goblins. Those are the kinds of goblins + we're thinking about. + + Chris started doing work on the project after thinking about it + for a year. Then, after talking with Matt and Rob, it became an + official GNU project. Thus we now call it GNU MediaGoblin. + + That's a lot of letters, though, so in the interest of brevity and + facilitating easier casual conversation and balancing that with + what's important to us, we have the following rules: + + 1. "GNU MediaGoblin" is the name we're going to use in all official + capacities: web site, documentation, press releases, ... + + 2. In casual conversation, it's ok to use more casual names. + + 3. If you're writing about the project, we ask that you call it GNU + MediaGoblin. + + 4. If you don't like the name, we kindly ask you to take a deep + breath, think a happy thought about cute little goblins playing + on a playground and taking cute pictures of themselves, and let + it go. (Will added this one.) + + Why Python ========== @@ -264,3 +321,5 @@ Chris Webber on "Why copyright assignment?": assignment to the FSF are eligible to have a unique goblin drawing produced for them by the project's main founder, Christopher Allan Webber. See :ref:`contributing-howto-chapter` for details. + + diff --git a/docs/goblin.png b/docs/goblin.png new file mode 100644 index 0000000000000000000000000000000000000000..e20265e658f928ecffa37849e202e42c35ea9f75 GIT binary patch literal 47763 zcmcG0^-~pC%8*+cXxQgGqaBiFH<+_52b}$2tGRu z3^k0rl!S)&>S?b}mV<@QKGZLg_q5n^x^hNjNDw1Z9$S^RC|E{{lR^xSJNfG5uyW*l zlJDNCi`!agZuux2^mAhlB-f?CAj890K_C&0fGxc_U@DO3Q|mKp=N-<2-fMKv*ZtMi>S#ZfeXaN&Db<$JPZa!zX==5IksSq#Rz=TS~iTy#HS zN(YWcx)rog(38xJu{M82vYqoq=ODXM!=`wYY#rZqr2w_A*Z%~gg_^AU8FSOm=6Qg3 z%H527F3KOkup@qu2XOnPs4fF(1+8E(pygJQS zovGFRq#XkBp&YO78;xWv%}1sWCfO{fC^TB24X}A~r@@Jqni3Sj(|B{By@f48B*#-{ zk1$PAR#Z-4WV5>FNz8XEH6?FIk&II)k9cUaj7yepD7^QB79gMGPu97OUiF>zsst|z zE+OQAUjpTgUP^&RP!T-$2$<`#Jl`gftsRT-_;htW6hJ7oDiGx)c}56N@T44bu}qx4 zp>x;x9ByAMXqL*okYVWf;tCLqB>lq>JulsqzgEQfvwCEMg4F1iEdCJOCj>otX>5e_ z!sJ$O8& z_9}*zwmc1J3rI&9`m(5JSDZAo6NmjdmH7*Zwft~)obq7OY>x~?eT;HC|`^x;A z#xzMpX6osMWkHVK2R{BzT*<8Lxp6viHuv0k&;GTa!|7r3vArW%(igA()Vp4BUVJx} zVZ#uZDR_SLM{Z;Pue4_m13m*Pa>bdm!Uvxp?t|WD7DQh<-=A~fk+BwiH{PzJcbX?{ zY-{nEapl;;RZWQz@bGrbcXsgZuIA*E_vrQY42A zNy=9ZQUBGGtFpk4;+g%?4ndbJ_T3O6G4wI6tlHpJd58$cQhnjmpzkLiDFy+pB&*6h zaNG0nPrN96U#%8I3hOm%dQXf49S&-|0s>quZPWe7(b=!Sem3zq^!!;Oqr~6lFPaw} zIlFlhTN9FPU^iShiP__)Q!dWMdc{3UcazXOM;^?g2`?Z+0hSoGo)td41%*)yP z=b`#CrUmc|i{Gx;KZc-?NSMF8Bn2oDGb+pXodh_n_W_~+97iRG&lIT407{EGI*f0Y zpt}86BBMj6m({bk5C$)WU^%2SCgZ2oCKXV5mJ$+wV{zlL<3#|6hYtbMHe=kBft`zN zjunla)^ygA@e3Y1M(D49j-_Q%3K5)0<`^@AijGKSyrAG4or7N^+j(?xG-XNNBBiC~ zaXd0VL3V%s0Y!t%?hAe+V+OnkKR|*Gt(#tbWBrPQv3$H2l3G+o0U@tT9BWVe`aygA z_1(w0kS@QMQa?(8hujCqQ?*_zA^BI&to2^^F4(*@ z6ts0^!e_miYy6JW9NmX0)bp_FOnGjMRhQm94>~8#Ak!Q29oAlDqJtRTqKD0Vn%Pfa zVFb8DSzv?)E**gyInFSSORL#_;_UhA%Wi6-n7jK$ESqCM@avM``Nqd0iztM9`$ehp zeuDM3rc&1HD3og9b68uWR8JaUSa5J~>U(JFDfUJknRsU9xP`J2XeVA()p(~-LTab& zuvgMtFT)g#2`?k_xkbH*ZvHo$ac{KKdDm|RfJ1Y0RI7{%A1LU4p5lGBU*%%!{A^HZr zx?Eess<`H;z=2$IT*g`B;)QCBhJg8vjlEuT$PPM#xA(;kd2XRJ%Aj>CcryN~m#6AK zyIzH~A;lO0LaS@N@aR@hIp6Smj2`}Ng)Ze4Pb~Nz<#gtUbl`^P+|hFxx-BF`JeNZ4RoxYiOoP*ff|DiE1WL60fsC!EZ?>2PmZkBOl3r9x>76@C1nHKK8Kq- zJbn~uNqNmz?$xG4upDdwv@Z7`rZDi6U)!KpM7{fJFBVW7j*%(DHKd`adSgNF3s&K+d-Bi zUVoh`Y32WGu8$HD5=WD7)hbnwpVPznFXszpR1J;`F|Ovf7PKU|GJL5bR5MO>x42Wy@MwtY%9H-gB{7wt)#M>< zvLrSVK%FHG(|M-pf_HkmTbq`IYk>@LV8pP^mQ1v`Z#%tKn0l#0Z{^+%lC zp`uT6A}^^a{-_?1E>s*Z9H0&?5g<+CM}cce851uqm$Bugu64t7`Z}YF4F^DgO9GnJ z{oWO{$sv5IZ%09x5zcG8eL+P|q}acrc`@Wrkcv8%|07E;eYYWg6Xhho*&ghbHjyBB zQ5!3E*B5kCxdyK*7m83%;_0f}gTg(9ueBd9slNaA0CWdkK{ngoet^Vz<~t$# z;CFVZm{ghw7=}xbS>E6-W{5P31ToU0Of`>;>@fOFU~&hvp5u{*;l2UvwL2G^S}O+s z1x%d#)$WdPyF*=gJ=fUoN`lt?{nVq9E}gOdp}Uuh3st-bKH?6Oj&{bUEM+QA*(|Sk z<>U)Q??*M~;B)jp0THn9HnkMXuv9?Wr|)*loj$@R^c7Xonr0Le;!JdDi(s1YOS&Uk zbzqqW3LvTa)rf#8G!2c(BKh+XOx^9KT@|fFHkMr-Dx4BsJ@yEWo?Qzj3S2xsE^^j- z)4FYnK8>QI!Lia0XO81kSr44RUZv;RkOvr&sD1&vHR+(IbBOOdM+@OK_dG4+?PxaW zcH8N!>n0v#abQOf8F7;rRnc#?yGtolT8sxV0fC&feVPboHhXtJ9J&3miIO_&apDlEuq7x zSPxazbPU{^=xTrd>kFSYOe^rK&$wV_TT@y8@tpZf$vO!RG9c4ljQ^)*jY~>JmI%j% zSYHQQ!+M;ED!8Kj!6b-xdFjX4NNht2wFu<3tJJMatE$ z<&5AvWhyO&0bB)xNR3$=F8dytXI-zSHhYHmkgQ@ES$;gdUVDe*Gcrwz!1zD)V#1|q zF>2ypHL-rI)etn|hDGa#uD)D4mU&2y=G~PFyJbEE8N^HycujE7e})yfml?G8kABZ$ zdYIC<^X6uIq452tN}v`J03KOd|7G)xI11~vR!=58tF8Rf)7f)B4c=+1@1kW(^+rTk z{?%@CmhHwN@?fD5ZIj=2aY^%h`ASo3>>&h{61Z>y0V2fZB^=p6zRs9ChAzT<8MI3B z3vq#B#gLQIaN0NoIF7!j0e+-W=ao+FyR|D!8i>ml?LS6^Xm_yZ43eDQk1kIf_CrpHBfmWX!erhbuZ}UMuy7g*n3q zgd-m)4`N@rXSte07*y1sHz?)jspJenI`&UuR=P1v>~OVgw2j*yB4D4|Rvo*mdO3iG zk3<$L&8(Y!hIwuIio>|4I@l1~w~Olyl?dcG<6uM}sjNlnxb_kL@BRa+_j|tnF%`Yd z?4QiZzH{7I?(7%Tgm~7nT670AKePnVPIk1Pb&`zZzVJQ3$=bS=l?NY+2sakjjm3eBQ~28&N}NeXf~9kz6dtXyz@|i`PNQ>Jd09p;asJ2^CMRBr(M|Q%q3DjYU8USR{$W zr;aoKeTZRayK~zVKD8?cn3J2IqP{#7H+M)7r?yBAB0OQ#Hh>=yhs@y>r6FCYsRPoe z{{rZz#^=+d>{>vKhNvevo8);>>X6bb=muDr1PHAlI~Mfh+MP2vIYq0|CQ znGvj$$-pFfOeR__lqB2`S*8d#N(5s4!*ZXTo!)Pmu_aTMVNv$A5}(yVB-M6D;IND~ zdl+WjF0rLyWmeQZm|XQrF|y~Zb$4sji3A(8x@hf_DG?;9u2v=4l7J;?q=&sgf3#AKDcy%D+258&+`@0Da7p*OcZ4GkWZFKA$%V%kkGER z^Ze&In|nv5M=N_O&52J39Z5FFQm*Q6HsGg*b=+{7k8(c*-fTpMUe}QW#(8tusAV30 zh4wawbrN+#x=_5=!s$8*J^kgiG&q2&R!J=#5nTD5c(-OXbpxZZSlrN{OC5G+)BqYl zTrT2LdUewPXKUCiT2_zQ?QNJS-{+#>CCJOtGX6RH1fn6>)E>>5uy*le-$+cWBhcft zRive+DzicM^7<72w9?@{I3bHDOC*a@0EkxP)`=ra0v!V#3UUbahLx8K(9*VTA; zVo_X-`r{+|Kg}_mJtPf_n8?=H5$>?R6 z>GX^=znCp(Qpt)IC2&;O-1C0>X^**Dv={>J$G0DVIe>`+A#Lk2#B5fuaG6GVgp2e! zE_{{J(Kcu%W@vMgbun{p!^gk}_N(S`>#(#r1xP-Xeo0dk+4sl)q?4=>qhj70g?5Y+-< zxPJa{o>`NguiM4F%@3!1e1^U3-oyQeIp&==p1Cg2M!f0KYI?PCb*G@^;~DknR(W#@*3-<+}HjfpLNJ$VK^{RsU%|(-&uZkf2r{s?$vW`lF_p zVd-tGk<;@KmiYP0bEVk**Rhw|i6U|X{3ZiAQ~-**8f5z-l1Q8477-!_%$3CYY<_R%XS zO!^-yP;JgQZS=UpR;1GC8;L={FAuYs^nSq9`)*W>Q$)u)7vC&#V;O976PvC z*dV=0vvz3?mA~rA`oCk@yU24Fy|2d^o(6&fiDZ>enW8?2y*-cLfZagPHBMlDKb7}) zS}~qV0n9yqeKccslTSY*N#nDBPoC|wTz!EEN!9c#{)@v7C$(a`avfWi%Kw6ajZ$K( zSRg+#LciQ&iu^rs%K6KRf+ZKbAaq!y=^gf&e(Pg*r#NgLCrv}1Bc@C)rKmX)gWI3> z0pAGfvzxpwlz@T2qSlJN?-@;)^{+=7>x@0fx```V=u8Nu=|V2pIOD+y@>y{*$bu~_ z<83J^W0eh;E^R+ygiaK$GjP1iW9zVyV>C*pY+~0zDRd-4i(!ZcDMa9>xsDn2c}t%@ zSrhfQV-VKDF)J5$W2Z&DSeK{$0YfF(nqxp8k)fDkndU$td_P(bf;WLQ&E{%mzSm5c zw&7hhi`etZY)tP9C2Y}(pu`tFiPa&FU+bsXGH7;RK?>v^6- zY6fGcJe5Uc#8lV+vT+ZUF{rfYl9CwE=?%e8QALIi^}T2uNxH>Lp=E+Lo!jKx#FX)R z|4tifNNQg+?{zDO6h&3Ds4eToYT(wz9wf@};-+rp(I{*RV?n0hN)vIA2;8>rwF6~d zMvT3>p#cLSYn~ffpX6V9O_}uEMB&z9PGL!1iip6scnw{LV^-}z;l@NfLYVzP|I{=H}S3%2vA2K8x`;%ffD z9{vUvKYS1|;$Y!xjWKkkmas#?z-lEiM#_GrC%*UP{_hbxjpdK3ShUL&k!IRna`O+n z(_s*p(hcc`Jpf8e?c|^9hU_+ZTc3%)FOX#wu1&f(NT=K%zT_1sB}uydctX)*gd^DO zrEw$4=4N0*3LT%5uaIH*E51n(f-#6Lq?;(KEOMoRfN4hR5;k`%P*71L%jBPWwNvM9L(5Fp2#e+l#x7#)>wdR8Rk$hV~hYB zIJjP_D%WFf>XvlP@jg+c?c(hd47d4O|MJl-rDDo$8sM}FxJr6Cobv197X03ASKqnc znm_DwH<8)vZhLe&_@<#L&A;&kLq<<8_!GY5ixiV?7EtR}^Mn(WT!9KA#U{=B#-voP zM~8tAlxt!IV3?=jB1rtXt^S9gx6?zdgm)RU{$m|F7Id(@4*OhgWg3B@hnUxY_Sw^3 zFmiprML+h3E>)a)Rqxmi17&3@q0OdLK+2ijj9H7Qt_VNMQH9|>Wl&!7Dx)NDh|%os zR){&BX~Y2006`|%GN4Ih*hZf5HaHEmn);aqUVf&~J&q-(InC9i0JSt~?uv7!_Y$tp z_X46D{5O8XXVlObvrM(7wVGU?w+YJe0{wAOCAIuLy~P-b59R^^?Dw>n*JyQ<_#^7epB;s{4ZIP6#7`u?{x4Bi zdNi%{Gq@VmgKI<9Y_YgiUT{p3^E|SEPWuCovH4u;vdw0%z%*L}s}{Z)NvmjCERhLs zbJA2&Wmd|Azw4qx@?>Ktx*I z%$4CVa^o!Xz$-@3{w_O%8`2Kjh9i2274#89?dPwVu{mtb7U3_WXHib$ zmM)fH$-9%=N(L6eMWn%+;ukNXNT^D2+1YR15)DKCQify5`Nt$tZczvl0=8n%jea+F z!bhYlpse=Nt5Euc)1DQ340xOWM|9Sc;E}37eoa1+r&;t1{5j9+-=ig8{YD4~pl+Rq z7v42e!E2S7Yz)xA`6_l>7?kT#!`FOsi>|9DGBIfGmt9y`nu@O`lGN40Olaxkr~U`( zs8PyHrtP%b5^v>va%Mb~m8We8O@&4uGj|`EeFo^jd9f`f`&vdQ}T1A#Y-#(nZ z)nR2wkX8k9yZ6Q2tdZOB=@597@4%+I=cem|V489BI+mksg^l+2(~M}!uo8;1phDmi17sNd4eRPM6(WfyQLbloGKO&X3s@#;;D{|*0-jJTd0IUtMo-L&1bq9(U_?Sz?ERX|3L&BNi7g6V;Da8 zcYyP?8#Woz|)YR|PH;6j>WmIw?6LKuSc16~?y|G|HkC+7G_cau-M0En+Zq)z0{j1@d zYVi!ZV`=cajE2W^Dc2Hq8~t&*%}gVSyG>G<#i%vo7`;fsl{~LlLu`&MY3?f9S`l+@ zc$L;JF0UrkBqGr0-W~O3@FK z$50mXH#KBrjW8laME?F0b0%yOJtz#{(U}!gk0FQejo!uO2KhfO03Whhga#=aeB7mX z4T=W=4huFe1^&cfjNg=AY#Q2u_@+31J~7Lj*WI!u-&CH2xqI5nd4J|?z>c}oxC4F2 zx1g7NG12nMF9p>pOUS{^Az1y#USNi5^|*(8$QHo=E>$HETFsVAc&JH1$v8=cv!N z@hGYKT^r%bHL?ZSLx0(%j;?XTQZ8dQ{;q9f7Q2hH(&5!0_zF_b;@WzasS>5cu};gS zVjQ^Eww7fxQCL0=h}VZ<`$wsBg3wm$Fh};j1CN7j4Bu|bL)|7Y14T6>nJ?fIG6@=E z>lkiS2~31WrrsAdIXYXb|1`eM?TqHu?Kzzp8x+JCu(zpi2)ejhNz45 z;x8rfV{=tYwSBA8$~e_&VuqR;e_7`!K1^MS%j#}pzoq)f%}5yRDjF+`9L zD0llIFNFdk4+08jJ3oAebj<%-*@K=6UORYFb;L$Kyiweog~h4FHCbB1o03yoY{h<( z{CasznDVdaU(GEkj1;Dn z7qlpvLOXD2Xv@DmxmCztmFLgA_(BU2m0?u!s>{Cqi)3C3euwEPzKu8~A*+J6FSOf( z{eG($1)Z*EqXwONyZxB#Ja7+sHxIhfhxlC1#lGZ|(1*t7`K%H$r=z9YDh8B=-e4ny zenCTpkJkw8z~$uqYLw?~+|qyBO`pRRxk zNBKc^t&fdP8#k>J%YUY}9$vR3$~$$U&>HKp54VlEE9_a*;Cd*t8q4P`Y7%H?KhZbu zjwD%-0K@7Bh#X%SyD7W9oWG>*a2t4z^Y+|MWV(*Wa_pYEDUbU8egQui-Jfqv+8Mv- zZFdZP^@2=aUvuU1IhaA8;{^^nPcHfgi5#EEGBPqBM|zF7guBo8S2Lj)`b!0goCz(3 z1a1^1MT|>&Dh0Xo#wM{DPa??1?)21jYUE~01pE?Pt~KF|6ee8X^_baoSH`j`nRE-% z>+S(Ak7=S-hU> z^oAerZ)Rw78K0~!t62i$%W_TQOCbvA@3qJ$6Usm8ba(}oOF4lKEfcp>#3(8mmbbpr z_-7B_)0lU^rdr(!k=SI+sdSMGy&+7V`E)_)y5v(uRIp1_#VsqA-0n$;oL6Ew4mcd2 zZ)O8eiW?kw*k|Dgf>_7(gG6c1+)~5dy>-hw>-9(+;$(0-tI5n(O)nx0#~WNdL5uYwg){* z%ye5Lr!JJjPy>ZrfJX!sCv;VN?T zt}tdO0|7;>pYhv=e&Q0=GoKtWFxlj|o#Yqp-gvz-Wazo6yo5CbZOmSd_jg2pRG2F` zwaBoKb)}Eg&z|B`;{0WfJt2p4c8!Wl7PXO}KsL>|t%;^&fGNNIL%Q_lxte|g>^f$BEKYK)&$ zh{>qTA#V)PCD=Q-ZdYxEPX~4kGrrD~)kJ{-7t!4+@<$3czY~{W;}Q~>nWR^W4$+OVL!Tl5_9#W42d? z25(?5(|Cqs{Stjv(Dc31b^`e=?%{1Fvg7%B30qo15G;ow(jbWvHyy){2#8{-&I-Y{ zg`=Pjr;p+_MFDxIW$=s~zwVL+=JDEDBB70DIzsg+{VxNJ{D;w(e_8w&U4_)@8v*3q zj(75WLdzu{7YS6e_^Jg_+v>B5U7TMr$rk5 zNAOFJdu@yGp8WrpiAVSf!o{L1@iaVCuSY|vvU{TA7;KS#0jU9 zgI?QARIDXga^LH;e%+7M1Z`QiA^}GF6F?7&HuOIRb_|@pub!pr(CBAt=Ul={syY zd*G^lV4ZFoTd?BY(Md>1aD3Vkd)pD~g5Iw+zz5oNVEZ{Xa%0E;rl#-SsJCfPrS=NSUnFJ`i`C0kBJ}b8ZYl|DMoDOStZcfeeETn+Q6Q% z4(T7BT?~nCA9=hnv0PE%S6;1FTy0cyr3{Prq81ZV(~$O_J+?fz89{@9yMLz}-R*y6 zm+C*rEss94kov|{-qFfj0WJC;M#7}(in@IRD|d{gQ?a|VVeOiUkG`IVr=*}`t) zb3-eLAS}FYG&-H26EMqtoIajpNtSry!)dWDTtTLfBk56#q|Caup=>1mZJ?*RCJ^tBtW&TJmkzocdmxc#JX(40xmY6vacsHkDe7`&LmNwRor|xXO#PX|{#@nmoU1MN0ImuF84lJ?4_bL( z_rf>k!H=}hl(;G2<-SDK6ocyhakTTG;Qg-b8xx(d=jl(U^$wg1=!D!|A#ut*RYD|= zD7-DTu=}=St4UcKD2eu?dX;R+)enWx5;+8|4S~Ik?L0f66_ar#$LCXm~qrK^!@q#Qr_7*i z;qwl7#=TJ{m@D6PI`EO_y)#JM-=4R0UmKAEDOpkO;x;+Od-W<^Cs4BA+__Vrpn zbS+Q7B~vJCPtSl!i98AJ-=#f41 zp*?y3Enk$2w46xT3)Y_V2k!7MH(Skade`?{2L)9ctFeDP;dyVk-9~OTNFWgN)zhTj zh^hu|s+NLkH==KmPw9N@8h?EvBNxu_xQHdTP=Iyf1?SY8<2bZYMyY*>xsUCNpfUjA%2KEv}YHX(hXuQpLpH z)VSj%*K5wMAGH{*+V7%Dt43w*b_aQot$lsy^;N_v@Fv%1Qk^BdBha7Iw@0FG|yHB)W$4pKW;-Hv6#2@BOD8wkB4VE_;vQ6hR5q!%khxEa9#x z+4r4MpWV60j)MZfL(gslzq8hm@ru&zGd7g5Jf`G4gK_{MqyWX%)MY_K} zibOf?PCg9=FJ_{83XhA_P|9sA?5rs`t&b^fAHn2~rhh_x|x@j7!c@3v9~-GwOh>IgsXv!kdRrbK>VbG{rGBs^FXI6$T|s6%I=liaMMIivg0 ziUtbR07w${>(`C$cGA`FwdCXvx$k_P@qV_6#FHf=&aK5jLz~@IZp5{CfxfBtLoO<8 zNYli+g5*}M5>1Mm+bgohSfl@&b8XKe?VKE&toxw!$>x|{2+0$pmtF3fDrQ(oiBc~K zwu@bI2A=j5N>^>auD=fi_}}l(xD!1>CN!^6@eqoX7wB!GmSR8Q5ku+&~$ zkGj@d->+R8>^~If8Tz)^Nx8QGfJDK(?0T~ z0~eWOdO`}qHB}3n1P=l|bkjzt_5N5&+#l-{TJyj_*z#D=m2E4qTpfV%d+>2KeXNg* zwrt_(uRY(!`o}RUdfymVx!UCUkszG@g}-m05cY$by`2AtZ$9!OE+MC>LQu-tTzgwV zSgvS}LI3N|XIhL{2^SB9jrsxG_`f*|Aj7FJmB4H&;rBcL{hD`7CWN4?@x zDxcEAjT&T|S7;N=kMDdrQ3O%694q0Q<2fyV1uLYKWxb}5H1*Lbu*xsFZ97NOyb#Hy zx}vLV-X=0tp@tS+QZd3>6eA$qHKI7h3{sj3_PHB?l7U=YS`3q}&-H&Zi4yp2>K(ru z&xaEX&d;lNvUJja3^G9o#zv1-D3zAUb4Y&SbfNIg{cSEW@V4tZAV|#lgF!xvIXRNE z2DhSfa%5cer%Mq954AYEzHUfY)>54-HPvF6v1s7C6eD#S98Newh!pkV9T!}=pxr|G z`qN*)IV3=sLtuybp8S~)5AVDGbALdLe&3}Jd)MJ-_MSsY_MS`0Jh!khGU+*LLq?VR z;2!k}S0WPGdH$>^(+`}TOqtxCGpIy5V_)C|jUh7yg*N?zDL7n!QqrO!<06i4b6m=M zO-nNybB;krcV$h`QzW=br^HozN1VCkI^775zIY6X9}ix~Kbi*SP=`~agi6%s9|)qO zqx)aQ8t)cIQqCueT#xzeU4ZxU{1|3$JWC*0Vyqh-YKBrod1UouHmpIykO!shF7V|c~|oFA$A-&UxKTYlW^PlxeX?s;pstOxeb3PYZh z&$~|8_xJZ{#fks(a)9(fV>&xKzgsGwRf#@qB5k(9S&H;9ic|RO`ajE-B{d??wQN-j z;^faYXnATe-=Ss`wNHyjF0#-pvUt!lj8w%hM(soiVE)wjOj=5_Xvh135F52C^lR7t zXZgIAjmp77x44EaRH$F;OJd*&68u#qSxmqHkOn4F9gj$Qk~x^8Ub ztf;IcAtQsQmFK8jnvqY+b~2%PgE3kSI1tJQ!eo*HrPd?QA5 z;>WAhNaLB)le0voae#z3V-pmf8Y@JZw{C<7dOVrktZeRwcer_tOIu42sn5E+mpaqa&TK*G}rmp}$C zgZsT~ytma28NHJQ$5lD3g`ne5tzA6Svz6PFA9)JnOXpg73Xw=NR4z>G>QR2lQsE=s zIe?F;GkRpstd;&MZ@)vF2&~qf2G3+&S&z)jh^E>WCW^kX7%Yn_p@i@#>FOGpT3C>j z>%)NWmLLO5{V!ze&Oxuyu~z?y6)yi1BRgAG5PRS1KY*aDHkeR+SLj6#e0&n`X{4DC zh}e}2@_6n;1`8gtV`_P%Bzd@o&uf6LrlK8;dbliG#As+36u4q~6#5UFdzuu3{$_L6 z;&yF>rl%vO(3a=%K4Nn!De3an4I0KBN`>6|zuxqZvse{a+U@whjTpZOvvSmx?nk`O zh&Q*)(@f*bjXPV7anJURO>*Q9@e<1E7_N%jMr+jlH_)9yqNT}Of6thoLdT^0#+(bt zCo9yL{@^u_UXfuo_pJYZ833PWu_}x=r_p{tYx%ZHIiF>RlXtf~!cC%WAk_c+(gdih z#Zv*0nw$qF+IWc5I=?P|q7^D%n?3yGs(AKL__jW7EDF8eV<=az6w2Q|3W65*3;UPS z+!NF)1irczc-zI~$d{3h`dX|dXepWh2)N?n9BErmvpQ5Btdq@5_8Cd72x0ypIA`Uk zTl?(6O_M{Xnu#T^!Us(en1Zm)Hyxbb_#D4JQwQA-V_k{8zlxaz z_{2`Po>VD~gD-K_<-pLtFS^9`)CZKvWC}~|3pi6>XHeXN8szZnDEZWKdX@mQ*LL6H zfIw`66W6czi?ZIQM~Rp4kUNOm!P!G-R2*i-4Y`@!7Cs9ye*1o$}S5;Dk;uSOJW-|PKE~k~JmoJf3kKz|0 z>KpPX91dc@7UIgs{MHJw4j1IhwOfVX>@nL6SOX|FBLFlsXJ2Itgs(am!e%ChkI_HFE&UumouY@Uhog%6GO`}JKN4yC->f>0Oiz#7Pr%+W$Y;h+0|4*TCCan9uv zew{Fg1UiSJH-82D?y{fj3C#ovJn7EwDBuqxHS12-k|r~d_+%s>kVqg^?4d|=F^72`l+ow1P{q21mN!JH7*^O`JJbPAkoNv?Ks_ydV0v|Buh)lGtsakqA`! zzdeZ)sc*TKC^-8Db@%0hPB=0x+ozi*%4-P-w4v0W0d1mPBOnJOGMd45$vbiC+3#IG zSUVVCX~LILokI$nwV=DWYIYamC^)w7DNlNrgl?6Ew|b3VzLY0iC&ddPaP^J-qEYO(W7>TOZ;Nt#FYmmQQUV=!$9^ zsq)ajQPc>44kq1`!4ZA|OEU@ciu;GJ`IW6kCB`_Jv|jQ2nE z$)CA*INiQg2)VnqcaR4DU-Ti%sU4n`7lm1Pj- ziNk!PTDIfUfxryIr^^$V=;^7PnQwU4JN^n+c0Khdqo)>FU)o@0d5KQ9OHt(X`Z+6W zeX=x1W?-!2nP;Bl!yo@8%4)*<-}{3cKXNkx!<_PCox#jJW#w@`%*SzRYCGY= z?h7<#it`q08{o_Jx4qtgZqcXLTVl{(W^L&(>l@1?szahW_|T5fIO{0uipgX|ZCYna zNkXu&H@t)Z(xjl9t{}+KLZXBQ(dsNDl1@>y-oR3m=Q(MfGFa#YXT$l)aB_KPZ?E3o zdwKBb=YIPxz^yJE|ABYh@twc(Tc7?PcizZp|ME4Wb!ohsOC>-w(dR-4e6-B{;7Efc zsy0oynj?Az!V9`0f3hf(@#IaU3WjinX;m`H3yUZIk82MXoYPwb?GR2 zf>cYoX~NxiJixtoJ;38%_&A?@;zJz0a09QLdzOorPydA%-t7!9rlH$eAkhiV*XDsl_xAOwbKt@|IYVu zWNV8LfAs%mp}$Owfh^5fUq8%K&pgIWH{6B~4(BXI(V@r-B5>-|%S=M6-tyk_(0%V< zcXy9VSI$${GeYzzr8%^|NsN&P9(aI_jYI71?sKp=!CTNWr<*TAY`bGc)rdQ?%!pD|?x3xK# z^hzc(Db#Z}Z+_j!g7MWGLHm`jZ=8QU(8!NC!c8j+OSR7P+{Om$EfBClqN2o$j6(NG zWr9TD5M&w}@5rR);o=59U7cVWYMy%WNglZ4trP>nbUY)~DYdDnnw+{ZBs!tehS{t} zDos{+bdpkN&HeX1!dvcn2=5{~fof(rb@2th@bstISlQx(-}Cpl@lBho92%gMr5|E%c!>+UFY@Sv@8hrk)ems&hC}?+ z&;AP@d*V;N?4mw!=QnWwo8OJriWg5m$@NEWXKj5gT)MFP$*OEFZ(rE|!gMnGqZs2W zGOGIbpZXW>wH&mswS(Ay3mje&#V?bzFS z%dOwQLwCN12k!g^ZoTntj&B`hX<-@bXFUJPQ`~XeUEK1fn-D_qiBEijfAY_Mf)G3p zyyXFkUO`bLBt=25$Vl^ywZ%hRymFTD^nfQ{_ylD&;(>?X!cY9;|Bj|0{seHy-`WcYojeK61xBH=TIwPo6J7`NIF< zd5y2vTG0NaM3na=n^(^G;X5M8+Yeta*YpCRc8DN|zCC=Y2tL?$GSyqOY6DkZEx^yY zS5gSp^#W(?9xga+-O%l%)L3LFu2q7QBx`-fvX-pa0kV;17L2mo9GeZQuNzY;7KCb+f+J+!8@&k@e-H zJbM58*gAY2ubh5{r=EF&fBVb-<{DSw>U#9yZ{i&fy$79Ye(#TdmHpuk2g6Tz#5d-?q^YFB~H4tsvwI zi|G-1Nte~-RTdW)=ncB_p-07`L#uRqeL8~_As|f>(oD5uKTK6c_Aieajb``&d6tl5a<1x1$cl_kuXULD@E`v&C(pcq(vmyxxQB21 zmhU8!3m9XNAyAuu_Yoz*T2E8ArLpcphtY6{pZ>*v!m}?t@nskE-a8-WNB{Oe#<_?f z@UcJreSYOP+jH)r^&=S5H2cGy44~WX{rYS+{mWTHWcYwnLBM4Gz6 zSkL&NWICBqPHURVGb>B#s;wgEM3H9+X_AuW3B6vIq)=puCP`CtqDZyI&(&gAJ;#KU z1n)7^zrfN_+vT|sJgS`pH)NEfl&z0eMg7+NWJjM;jZ^c=UF}Br2ILnjIe40;u z`rmWz;z^8cNK{t#x=YUq&Ta!h^@| zkUN(y`yDI!XAlz8U)0O8O&B@v1c+k$+b6rmFK{gm32^mL!n z)y%xX8o&x%^aSgv>jvvAP1&@&n)6s2G2UaFh%vSms;KsmBoQQurqgNZE+I(D%HXY~ zt{u(>g11C3us#y3r>bkpS;KT%GZ~jmMkT}1jNx#`csOG+nlhP`%%(Ll0zTlJ$C_5` zQ_d_0dt<7y#?+oP>9V?TnDynObkhN*ahRs{{dLykjALbSowwZiDDQmuTe$OvcRjzi zzdJOhQM;pa?^h~27ozI}&%9AR_zIVee$Pig3-dcbk!7Ov6~1bHW77^~c}@}?P6cAw zHgbdXBnT7|B~)uA?>#n_0bh;T5Ns>wgYOWNM6h+SRa$u|lI!S3NgE1B# zJi*%bIhq!Klq79Kz&SskH;atRUGlU;r|4pRMeV1A;8PVR+ z3awR37}u>n_o`$v#(<9kA1omT>Z+~|CfkRu3{M}ZjOs6Gjl8|NTd;%h4VWCeo zYiG}rL?g8#OOjR*5g^tv6o-40R}Z6yWKx<1aU(JfuPb+Po( zGo4NC^Dn)8AVVhu4(G|@*;@|1`{mEPa`MA(1npnmx_uMifF~~d@*TjpU(L1CREq$( z7*HN8j-=LjEV5V7PcvL*XiP?M0bf}{Y+5aXRFu(ChKkZvhyWcq02R4DE>flqCz~sj zcE})GXGDe8FsgU)JCTJ>mn><;FV;F5YtX6{ZKp{}mL*hG-Btv$cH}$Jt==G+Ygk*` z(^jvl6G=oNWQ(TvF=D)BJQ^{b&X~?-lvQiy+?a+Vi}!PE`9bQY;+5@B5u&4Cao#cw6?xR;vdc|bTfd$739F%CYjKOA8__g1 zO_(yPu40ZnF?y_NNRt#HBuSEzHVJiYm`n@utRTxW(zLxjUnR~EnU80;7=2?bbzM_d zB{2quqY+hIQ=1mKRMj)QGav+|9b$b&H(6%6xPv6u>`tD=Q}Vude}GgDICbtho_OYC zy!Y$B1CcshtSK8$tOV9MtZkT8Gn5kK-2_D7^3EQYF6^ylukjVt1#2ZVm z(<4a~!F4I?2~!EF$*G!%(1yP5(8Pv)V{yV@Fn9vJq|eR8Dlb(#+}K-XyV>K$m80y} z4SVA;7LAVyA!*=80Wp+&ozvflao^Se8=~-EnZi*O1IE@h?Uctx-wKVgEgM2s+l(1^AZ}EdSW}?pFEzd zf2xRaqML)GzyL_Uskr^rYdLVg7D2lJ{NViWzXH4~7kui*EO}z+!lMw*ElP3V4-Ps2 zmo8mG2*JK>nEJ~siHs%`)H4U2j4hYYi;k}DvADTHzv!`}uiy?Ys+togKj2so3Q+sD|QE+sy#eNu5TZ2+vgcSH-u(3wih*Fw?TE?L% z-Gt$leNvSWqriLDdO8S&i!hzcsBDdkh9Dgzo|v{RVIqhS5UD57P9K;M5p{!$3BhJO z|J*5N)d*u+GrJ^HG^Xa}8*gW0?J$=w?J*fwSnH`v+rsw%+gQr7VSjR#?SrQ|w0Z-F zmv7+3v!4|Qll}D&!^SJfM^;q#>ARDy-_t^NXeFT+f!A!%el6;>zc3fZJn=}8{^&r7 z6LpB+d{dUJtY*n|$9vty^`)i5n`^6EMoJlEYog&pdw40MV?WeHUxSb2gB%eZGHCKV zWpQblg@pwyj@e|2jevJpY&)w(%M`M)1;s6P`mAJKgl-G@iz4A%xyR+%WiVreIRLXy zVrLZIkOzZ~4TuV(Do`F5N{pCbV}%tZA*qpRpvW`QBqs#ldM0EJy(s9dz{*NW(Nm;_ zB&r6PI)rir43*hsTwY`{-GQi>%nqpP5-H|##`EVW>k*GU@GTr1OxWL_F&s`Ajb@Zp z+s3V$l21fWQ}S=7f*a0T|Dytq2q~A-G+pa=yZso240T1%d#uu|Z>@6n;zgRd z+l(V}-q)DPS==i#M*U6Pv544}WU)hUahcoSyuhK2!<=~PB@X(##L+G;mJlRPcp5xj zf(aHmpPX$O2$Fji4})*rH)aG5OvBLZVgMyHkx1hkkTB6HK|_DA42dQ$I;2TKue-?9 zdZG}d>w-AE#B{pNcyE{HQc17VXJus_>l(JV&r=i~taD7KqgF#JL>ugYRvF!Fi9v6( z)!Sm}7K`j$8KI=Y`-t@(saq42OM5S|z56`Qzp6u6?<{fs=20H)-N%hbj&W#t%{>43 z7alu#=JfbaM$f&kiuTZFo73O_aCY54>dNdjZENt=+-dIsehWx}@43H7PCr%K|6vy5 zBZ&~|x?Z=JCwicWQi?#Z4lN|xWyxx{i%e5yb^YfY4WW#I;A>1BsD=~F>;Ro9QkRhy zg5L5XD_fg%lRgV-Kqu`(gfuFmaG)hgmbPqJ$sDT{2zG9q>?0kOu#^=HM9xY+V9$=( zsSoBeWtvnZBq&TZCHI0}NHI;tc(TX#?kl`>@^Q{wc#11~rsNs9%>*A3aBQ_x`17;s&42Cap_s)e z643(Cl#m3S@E^`!=9Z;p4!mdAIrhinFXLuO;6{Z~(K9abIjI9(=$yT-)i1-i*0rt#{$H%8R z+F4`0vqF*eC_}@68M9mNGi_$9^;TFNtTHh(PG33w7cNGkH1E9gZM@^Ihe^|v1Vy0} z(j)=r2*$BG9Fxti=;>I^Y)*ICSUgH6ODHy%S>HTPCVFJa85&n1 zq^7ZkSu&vt71kL-67aP}CXy&y$Cx+=claP!qr>}_?_k$W*)I>Mt0`J2)^x_5t9P@$ zvQE~?h|clMu%@F=rYfqdx?|gB{n)MT-s^9J03iKHxFNT4_YQf=Lp8aN{>WK23Zawpc4p9 z3%#3~8IPZTp3k3qo-9fG58m|V^vG!S$uC|yQP}9;UZ5@lC)Q+sYA4j@^_Cte;CJRt zgZBWp0}tPqCqFj|@s3xfvv=LGvP@42G7%9mk_w5EEoS~$w;)%VObF1DfJA2*ld}A> zCm9m4aYh;XI41#W!GwAeLNSEkm%Pgb=2E`H` z-C-eJqNlnfLX*ghBxa;4Ax$-l$s$L)D;(~wu~96spbC-*!89ldCw9;Av9n(;75v8A z-pYg5-A<+?!Ueo>1n0m8LhWeE8luM;i#IKP)EYzG)HKr)DPg(Or$}>Nx_F9dIpuI? zncJ3*@xtzDZtrg)oC9YN-jFDXP80%#^)*$~Fq_R7l@q>r@nt@H{(15wWn*!Lo41bX zyjv`cXOrz=J$tx{?w&gOV7+SHlC!X~z{1iJ{i08QagoK|I=!q*mUSpPJ(4sh zl_^rHR(;j-J7I1La%Oggk6w848kYg!ZCh{V&O0#s$Y@I$<;& zu{RsBJ>KE-mtMriR-kkDu^V~r>`6{txtLxa?H>UOzyx@wC*Da*o4LqqgoE(a2-@$O zr=EYG7RE6Iet8<=k2Qz~Dr59&mhp{8S1EKmVSCNQLI~y{L6mCI^IahIk+Wq*DrKu) z`g2d#0GDG)WC~(#R;L3=%rT)x#+I7B&|hL{bB!#O%%(Gnm}6Cmh??MSi=el@^_tB< zC_xhpEmk&w5=a!Dwu99g)+x?4yL|l0v)2Mv2*IOA?&QX9s~&3uR+Hu_T4|(CT7TPk zbud8^oW})EV_KxVbq*gRyR#wB?VaXJyQf*wJ%oTO)d-76WQy&{J`3GGOPxMxkx_KI z2&Fif956iCXEYtNJ2~K`;RW_go2o7sJ%;6sz3GTaH4|ByMiChik!JL}1xvjSy>17oBrxBB0Es|p zCN zR2M9Cm+9vn@~nqO6Us;u1WA&Thy*VpUbMGyAKQo<+8H0)d4@25B~l39d((rgicYKU zvJP)rrk9d)`CuZEq9wi{BW|vfFpZ(EE39!`IJm+m&wi0lUU-H<(&2%Xn^?-aY^F=R zFuuUVR@}LMJ=ZU6aA~~9=He<@mJ?!NG#jzEdxc>+WYkQVG&9at`#9R&xN;UBTOf0c zk;Q%==UuekADv&$^T7WOygdJR&evEZ{?(jZSONYy@V9{9NThhX4e`*?ewX(iJIqp+ zA%aCoL6W9qS&C4SU>&uwG>xHY3^o|1r6oxdrUpKGWrwMCE$q#E9It{gvNR>pnk-3J zlZs<{iGI@J<-5AeAjyed((83msvrbl{v3oo(XOs>7*_ulbVHq!;h`v>g~D;1e&J;LFQRW6Al`~ zX1B}C+Li!_WM(QF)0$>@;EH!t;ebJyP-xA-cNsNZ2BO1Ej>$zI;XR}3fEXmDt&qVX z^PD0ZkfkZ;NRWa$&ZuoGcrnVe?`Ax=eV)?1TFig&j(fQM#v2)5-bZMOYb?=2sua!} zhzV0Sr8br_OHipIB(0>;2hZovJI&T$I6a+k>BK9GQh<+K^&|bp z*K5%J^!)2Xfb=1x3q?)aQngnsg#_rsgJBx*zgj({X0bwZ(2bfVF{f~U`&nKNnIwY0dzJ-6OY)igv}{+F|srm2Z8 zprRnt4k1N5d`U_wQd9^8t++70axGwcX~DaW+>Nd4d6_S^=RP7ncseR2R|ygr&nDQq zp)XVRb}qMc$LKM^F}5}1P&15QE-AQY>nK@M(G3no;8>9|Y>ZscI_z6_^-lcApZop2 zE(J69%)4UTe`FIHgA0+%(-}v)J(QNHOrg@Wg$~bWZ={R}C!nd(N}^Oso}?sN@<^6& zyx-;2c*f5^!3s|KTx8HmVC(fRxZ~`@r)Z@wAg8_mHbg~X!Kr*)}6#~4A zNYQF;Kl<|LuKm2fe#_fYLGXp)Si>Fp$T{*wQqM>9RfDgc#)7Pg^X<; zF?0?4zGgR6xIcGn-RKXfCKC>IIw&GiL~^Ov$R(Gmntkg~F!HeZ!3XXY|LSv3#@8ZK zr4axCAOJ~3K~!td-VTr_+TSqft3Q1CBm!8wBDzRW zom4q0%JUd`KM;a~XeSCE6PRBeqYMTg^Z*ajAf@|wzaz0Yy94>%H zfC|JYX<}gN4ZCi}el$cN6NG@hy&QYolgDoXOf z2ky16g~0t<1nvC*8%4gqKb@_epUgNu=+aF!BDPL~AqEg0Ar%OTLSdUoaIM!ZwzVZ9 zN|Hq3Z9rK(BoGtg}r5?dk<1_RYGCE0ykkD6o z8?-SZL_`WjL{J6CfiIZ`%WxjB8o|w-Mb`5!xs()X*2*G9J5B6kMCumrf4Ima2NU{Q zNALY-=dluKN26YML36=1KK zvR_YeF_1}(5E3N>#yP^A%;;hu5fY`qdB?PVRlWDblV2du^OpV{0#XQ!YdvqT*a=lM ztQ0+rh;2zMMtn4gSds)uV;#e0hL5jO7N@Ra-^>ueASoEz3XPx`bm(__?2He%Fg<7~ z=A!jcsDh&w9)rV1&m`JwCBvRhi3)m!MvB<}@?~2=Kt!}`16C_dqP6I2<(IQ0eCsW@ z|KvPY;s+nN*MF^d+po5s_D0~xfhb}OJH`zj-dyLF#U7cKNTrZUw5RMWy;i!Cvi*!( z>!?iK9%@W$uHj<9dPgE9nbxcq1uqqUo|wd_v=-Mhu^fdFD@m+%r-ZWTdy_=)8XwL{S5Jg0C6%5jvn&>P=NF6RrXED<{ zUasn2Ke8~Wfbg$A_vFvaC8mE2RIi7i{m+1JR#1;ZTq(4Qj~?3;nQU)e0_FgWwksxO z+aYr>P}%0%PQBV6kS8g#rbf#)w*}bB7df0SabRb-`3~%2o3@PV z85gJf3{6FfWEL%{P-G}lBw9!&(Gq~IqR(wht7sWW5`hu|MMTVD)IzkNCpqszw!XnC z9?H{l*jV-a{=u<(HxK>6Z$9_J{iSv92L9o^S@fTNdLZE&L%V6F0Jkp;8s*6?0viL) z1rjZAwl%Md0+ehY(HMiV4Nb5_-|7mGww-cy9_wfL&{}jBSlj=V$&E4}h ztIh;wT}wBuYP1NHA)q4&5$SX~$fP0997-sxF<5VzRW;5!kP?SL_<%$q2w3Nc#-bZT znkDEo#aW9KEsvnz5hP7JYLiAuUt}!$0uww{ZE!?t;~16=lcu2%3Kb(#wg>bezyL-F zP7e23>U3Dlb8gu>&X-P~XazSar8b7j8ZuIBIYS7+LS8VeOMDEZT4S7>x0_qxjF6I9 zS<=|~44BmHnG!coExIygL-#n84p<#5lOQooO$eUlqKh$>m88SOH!KxB&eR8t=h*zW z9=(y}ZVJ(Y4=vh0LUe5%{FXh9xQfJzdilu}5k*8(13Wy zDk8Al?PH8(YHK<=Wh+}?QDxv|%Xm;4Tp(Cai~+3_DiaJ$!OnC>5Rsv&S8%2(i0# zB~@F05s}bX&=Th(HU_3uNhd_25c6@GwqX%N#3@hoZ7>IGP{{T}B1F5>C_!+6#yfln z#Ca($m6FR%g+ef`Yls4GJ^j2x8A_~o|=;MhPYeZRs!8 zIR^a!Tr0fF^o6wC@+KMW%Ij%f|Zoy|TIHp zde`@R*0A?Gp7G9Ab!+ObD)&%5xZE@`#x@u^BqRt0MS(9-1}P{=;Zvj}N}?!Mq$FPu zilT%NL=Xfy2x1fh0viWt({{Jp?z!7l)iqb$`JQ{Gci4Nc;mL=!-uK>C5CX;R>Mr+| zuCD5wTjzbxe%F51v;NP2Xj-f><)KK4$1hzWYi6-pa&2diDVCgs)6nrw_kgIG-8A9d z)r0b0a(O_!bzGe7a$!1$`>+Zzxwj4pP)Db`ARiSALvE3{oBd2-b(|b?x*v%iM!CElZf@V|;{*Aze`JAsG zo$#HrB~R|mm|6qIA__woXf_l;5k7S7+Wc3)^ZIkYapTs9UV7~6*M3(lTHu92d2Vwb z4!jG#X=al4hX_NAIHOF(6vH@eL!_ zaB;fF)%hWNlR3MiIhV%!EPR7H!`^JpG7mg{aEbe;54d%Fzu>!~%-WXS@rXs=5pw1a z{NB%Ue74~1!3k{u6EZdnE)=K7nIFN(^77eD=93Bgeu}9n=;z1xX^rJHbQo(erXC`# z!5UMdSu3n)#Nr)1HW~5Oa>cE#=Vz`zzP*R!ybYW#8NbH=#E-r7^5=f-3qSSJV^_aj z7wreWJ^0C}I^TlB#yHnl~-C z&lW%?t76rlIn`Y!68nlfTZ@Vy*0G2Yn+nfjBNNe@vukaE@r|`I+1>l(VhD~x2!CG} z?f3k}e`?z93w&acA1+!owlT(RUt5q;MNv%kn9bEDvyTvy($|ApsT5_AXCN5EGG^Ax zo`7M{l77>NK+HWcba?L=+lJA^F>(##sUu4+?$~K4qDL)B-bP=PqC7((W!-E?mIb;&*T|tmw#O1HA^aEp$X@EH52CgHa)-%>C12G-VD( z6S6AjLtjy>dM{(~#LYQ?ErBBjL5(3~W!^TFNv>jyB^l6E`hF3}F>-Kl@L0wz>b$A244y=}48O<6nRIM_RS&2T+F&9Mdezg}=1)bk?C#h&i1JL`@)u91;S&T{F54{EVmC3ur0?98C$+ zC&sfeZ96TbpUMGPb{*?sz#B_btw6&N>fva!XbaSL=k_h0x^#)RZ{7spv|n*Jn_;w| z7;y+C|29(ujYH9!y>))f#}6)JL|DgwHxn9fD|}aIktIi%O6pP0D?@GGj*4reLV+BL zf0~H_;~S1wD~|8pohMaS*NpqXF4~`-w!0ZVF*Oo~@(XjRZIT$%s#Xj&8GDQh&d(@A=d-N@i4IO9ibL+r9fP%>zFl`At&Z`hI7KmG#KmfjmL<^O~yOZpJFG#XdwOePp%u$Fl9CbRLF#d=LvB?>svB8q@2Fos4Ok7Ofmz@0*g{YYoO2LQH(_ z3t!kkUBdgEiuApHVxAPZ1T?Ak&(F@MCRd%45y5DIvlLJPFNUG|b%ByJk+Wh@#?BT+ zfe{FiqY$|0EUKA742m$fP4P!?hQ@nFZA;U(G$W654ee-*#Ec=+c#qrLK|>Cgi3lpiZ{g5;?sgpq&5VofPI<%BNs`uJJX10my3`i}P|l>3i)mdQ)2?D9g}}(U zB2~|+R6niR2sv|MG-9zXgqm*Xajszy7*fDXQ>dI)I9ac`zdFZ?@Y?x(_SzAPSe$vR zD^opHa2P~Nnrb|v3Bb2mpEyI910*$g^c|lagyE2(Nj9%l?Sk_X^PfJO`B0-iWLv7IteWla)8m?-h@P6nW6E*c*+?0jwUj5XDKYvbO9BVr=0g*VZ%|XxbKQT~UjO;Jq)q zUrJzvP+AH3KrdQ>ec*|cl=t5X=_ zY|4WbRmm}NZ`~6rvT^8Ur7a-UzY79l8bi{7Y*T@jP=+*ccTprc%V8*72~~F6ru_c7 z_L}$NC1RD}1s2M<3?5%$~h!w(^6$YsdjtA|9S+?&(B zaz;-)0FosaaS*m$D*4Lsa6^z z2HgPJDwq&4DdTc35lXsY)>kZ7gmsJ@hsd}>HbFDCwij!ZMaaZNm0Js|A<<>Xp=|pa z6591>*As^h?FU2>DRhL`6NeQ;-?Qp_V$5_Y@#eDlQ(SDO)yuXJX$k~Vp}4UxL3*ih z8*)fISey|zW_dZ6gILx=C>J5r)w=mPx!xBif{B4iJ0h!c)^~I%72Ma9py^fUS*C~K z&3o;H!*R>JX+UzV-Ua0{m0KW`dp&PjQgsZ!b9RnteEGgL+o@ogw3oHo4}(6kUOsr0 z_Gfp-V-a~qRsF44oJzbgn(GOcO2}{`IBSX>kQCF1h@t`mN{WdgC3FLOrA$V+*Y{X~ zsV_IWkP~GK#>AXig_2Y*&Xk^46OtY-el-T1#ap2nImY7&)>$-XvX*Us^N@%Lcly$! zUTOD`P0zjY%GDxu=_S&Iz91c0Nh$K)=>sNBfufcn5OZ1Jv&IuuN$}8&@|;WjAia7g+#q+rg>Ps z(ol@!au`UO%E^=J3d2TetW2x>cvP*z!p$+Yv<1HYJW)l%z_@8>tfk9|m1cq#C!OO^ zq~=2kHI+RU2~E~*Z(LdpQv{iYlGvDvY9dtu=F=ArIqOzi)4$CFC>6nZaDEh+1g5IsOEK=5G>ZXvM3+9Max*G zNi#b_QH<8=UJ2f+N+J<8mIo|nvX;=jLWL|pZQL}a;u`x%zgRR|rcVDh$i3F7o2l(l z<2-#XrprSLD4DbP(4$v@z3~LZ@KcXp+2XNQ%8q4CO^}po(J$ra?~X^z+m@ThC&ZXZ znhJfZMxf>r+NTxG*|Y~A4DP`n-WfN*W#EM&>&G9Y{M_by`)z|a!mfAZ6p3LV#lWy$ zlR_-pn>9ou#GJ|H96**bFxc?m0v;JM9Lzj zEep>Yg=Da%!8u#2QHEUYI!qzz2tsR${ZLjVXS1!cnu@#}0c%|$!h~Ye**Hh22Qgc> z@z$1IqA|Ac9X1%Ll=p8ah{s#&jxZD=y0@<2#{zvUfhj|d+rAs%$^AVLW$fK{vPk6w zt8CwHX{FLbsrrS-EK|xNJD#=81B&lK{11NYQ}P49XmiO2y9_+@ zdKW%bds#J*_pEC^JZ>51lIs=vp7r@TVd%?(GG#$o3JuU%!Fy9#SLG&4{V+q$%#Eox zvMcohV>!!rrd`?mGfMN z1LctAamEr;q)TDjORFla^X!ht+YskcXrX!-j5y})Fd}QQ zj;f2q*WGJ)WZnGWFIrVbNf|}e>vvq zn9lG2u9D3zRn2su;w+|4Xsm6(;7bHOr=($#HtRE37bxZPHZRgu|_BE2#AiY%;# zSlW%8iFHyIr3@?55X-0)MI{onulxq;7}LX48Mzb(96_*{lJzCjsQO}Hn(Ox9 zM3}Vgb_*Xn&*jPFyPk9f9t@$PAhH$5nyj>@ypLQx53I9T=P*`itgmoaK_8wxytswn zL?0Uan=+FvNs{&N>+>0}96i8@aDTZ%vvOfJCC7|}OwPp*Vd%OtnAuD|RQGwP_4~o^ zX|t*%)o1R-^n4{XWPm+uC8uOke8d7uHYes(Qo2K;?}y6ygdvp*mU3|~M3t1_G$jla z;a&A!Gj(w~E5&8TTiV9qtpFFsG|hGaC`z9bzCwUqJ*jWqWu(A> zO~s01jHTbT4(B{r$80<)6T2!iHz8J-sbpfT?k%FdVF|45rp41!c29Pec>$UUFxDj;jr=c(ZfO+vsZAw ziVcHMKzEU?^?Ovf8xpo2!ZJ#~8BAD%tt_#KZpSkPbg0{`2*nOC6S_d}6R0b*e&fhF z5V6RrFvmhl#I7fVgoq{QA|F@hIbE;Vy*MX_M3z#OJrFgb3XxDCDlz1gNimUZB1@`x zE`^j{oy0*1Ipd9?Ph~V4G~;w*!7tlhwGdcLaS?Z(k!_i{5%cl163xpstrB!AR6{va zN3yb|K$_ZUsFs0D%$Yc3PWqltU%g5m66y@OA{IkRxSTcDzWZpow%ri+CT;V+!d~XL zanbHBbADzhpC^N2yok;kFUFYa!zx=$Q!0R+QHD@B0=crPqQW{QzOx>XRM`4il}PDZ zef1(R6!ulYU<(n&PqyrP3|(N|rJAs$%v>?T3n`<<6^^MC4nx+=K;4d23t4>o2xygzm*47eGTENkRTW$kR9?fXSElu2kDczxKpzTBlNvfP|0iE6x~_n4%sqWvfrM0xeSB4h>>f&MTBNH)eZy)3O&< z*h^@grL8*u(a6%c!ft9COAhM-p4Zd3NFwJ#Tg)M#X{gk|M6Nosn3cZk7+J^N}zc*XmY1YacyR=ajZC;iIbi(wdj>sL|Zmm@SRHO1Pa}RaYEaw>=4N0fI{) zxVyWB;1Jy1Y22L<+}$m>Hty0m1ZdpdY23Y$%l8*?XSz@PLS3Bg9Wh9>$3l z7n)C0F>OeR9wei!;8pfx@q^O%9O#&?to3QNC>pPHcQE#$0pGMPdWKwwaW$`(PcvPz z!VD8peM>Jrk{8qaBjy}lonM`h4rP4~CVD|?1HZhEV!tguatxO}#uyPvU1IS;zQi>2 zSA|vixemn-4zkoU!69kq+$pJrvDkGBaL1TWbT&&EBNJkugm0joqyA`lVnE~GfYw?+|-bk%vHDEGq{xz(vkrSU#5;0t0Lrv}X3QSn!7v}%y3V8viVRRE-^r#U%% zi!A!)$HU+(q}{6`*s{N;+-N=x+HFj$XR~vy#T8|L5ha@n2sgA7m(BUFvX-iZhg?sGCUb5EJz=0>$WJggy2&&tZ)Ox*~opiQt9;-ce zn&8+Qc)g*pXHn!kUL-E<0q*nVfqWB$G{Ffm$ye?&N|UH`9KmW|w8=0Ar+A0?gZcHO z2hgxHum&>I+r$LbW`Xn1W;xgE=-`6al=;i82gS_p7693R80 zoUCxfuw4Rcr_uSVbeemQ}R}1n^Un1W2uuIYE%tw{2X7Kk%XeI5Z`9^&#d=JBjMS9(K=XvLK-)dWk}E1p`QYRfGWu#ZUM4JhQxv_0 zeReHYdQX~1TN!djlLBq`qWD^q5kjPV_gEG0WnsyQFwwtagN`IH8mK@ws@QTJIBn~H z%(&-8h!gk&>FgbNWC!f8s!YylVFtCVF1fSbqJU`Mv`#L$UPm57Il8Nww?j+Mv+l2pQVNq}fN?2d6OJ@f^MRrdLXm_V9IwFj0yA$^!OjhGU!bk{vLR>y%q{&*+eKoX1 zSFcp z4LUq7E@KeT!RMZgg+q&PG8llm2~$5+vA~_ml*+>kS}N)Vc7Wgn?l8-Vkhb~{Hy>nD zZL6yCM$qRH?UTq#6X|eV@N8CrcZ^OGIv(;%m+)5Zp!;$|; zA<|d+tOIGYDtD4cC;e{9RG5=w9T&&7AwG*0B;%fU@T__k-)K@3zXJ2X)LqNQ|e7US9}d`GP?&~4X` zFph><8!)B!kH_un{G5~hC{=(w134MnVp(Z4A(Oh`hd!$SM~ZpbTpxUEgJj}Zh~zPu zHjwP;e8Emfr3W8Y=#)D|*l6tp`h`B&_tHmFd6zhEGlGEtAG3xIaPKNzM?{hQH{>V` zi&_g{0wTs>5?WpjC65Z`&06jQJkIm^TvpIey`$tP`rrH(3!{?|H$(}7~xHeeaLO$&%=g#ABz34GiRa6cIx1s0e=76h!ZOzR(yq}WUg$M z)SfkzN@nU9NECC$!CqDlf~BQiuHwHGGLlA&GRb_R&`fcPA4zp=vpQjat0-q}Lm`vWV_a?*+-lzuClg<+vCQglVA~}s zBd}W-6;xBj5Z`jua&d#0IDMg9gh`x&e2S8KRyT&#yd^IgU>(>YO=ZY4q2R5&##`iU zOzGlsd&3l|QGr#+QFE9+mzScFDa{nmToE4al&c$D}G~i+1$kY8*$r822`zF}!h_rkt-i z)Ae!Bo#{p`q8{R5CM6LLIC=B4XV%oqQ)m%3QXcE{+a>$`rzAX*^=tm3_>euNIw}vI za9K@wRbz3!3|f%+2mo0?0FIr3o*%ndc8Gt_RHW$ z`Ma5cDe2M_!?t&P`4ghs)fcBBVEf%M{FKjSm6-Lm^kw!jYvS}}!8UAJtDfsavh#A< zM{2xr5$cF~_-EgD5b3^hYBm}dqA>WGd|q+t_pUQq_kdOR{tT1QFlG89oeM3WFa}Jm zDi2H#{!~dsE}%=^>S2z6!PM1`m(La2-)w&VO_(9((?|v}axc{&d#qwzQATMtig4%l zn(WnoipUUczH-DNCEt5XuY(LcubuKZ=euJRVm;44rMZuo{&!>DRvVqKDZ`}Qmsg9w zZh(WwFY~LVn~&=$G0+hE@Sf-A`AYALz3`*k)~z8Fu#&)ddG?3b4Jxw z(xQjR)5TuHCMtn257)sTGqBIY`GrBZt1_1*--)+DL?GV5?6IMGGKTd0AN4?!k{;VG zTy{Ca;5r0{u`;nrtlaQ?xxj=wU7`YZSUTK-uVOh83e=cU8FDm(P1Gre6Ve1>{HFK< zlU>ympEi8%4_s6br8o2A5P3P!O|w-huzz|5Fa5^mPNxTXOIYQs>;v0~C8PNcpnKjTMLhws ztoP`z19@iL0%prBBPN(UlBcjZO0w}PHty7McVs{j*WH)>_a)?R^N>lDmz{xhBGrUK zXsP8f(A0swL@C1|H@Bf8IHeCasA|8FS%t4FYcI8gjIf`+-ej_&_Vvd_vl|VXWNtw|tX$ zl@WRJzBJHV+;sMGjzK$*J-PuOztG$Lg9PAGz`*+Cu5P$SXq@%d^)(TLoT6JU(i-}t zme|_udl}v4anG*L`${1-Tl(+?>S0jln2FQjFtGV$`*P>}OG}(mD{r3DyKgTb3Mb62 ze_vU*Rvk0gMop89#`Mg6uU&gfpV{9C*Xk#e{rm@)6i4$rCtZgL`E2pOf61e1KqEae z2yBeGnQow05o`5C=qL5oRu0P@p{N@ddl6oX9CBt$W}f{NiuP|$vB!#RMmEHk6L=YDZ!Y$x~ z!9Ed7K*FT|F**~=lG4kj1hKzRiR1HYz11cdO5CRoqUP z<}vv(l;nOp6jOsQ`qTg6)FR+zO!MGAQOk=kA#QT$Y@%z>hSQ#SOxTe%hjri|J@o?L ztd86+@em(|Dp<5)W{yvDzEVe=)0x^jFr>r>$|!DT#zJ2?o(V2pOq$|2NqpM4w99Qw2;6L4}=rk6F`=X2`7&hm;QTFLI=SNa$aw9^ggX!t1={z+VFF+V-k zkNPSb8kpRPxS4w8qB#0`p1c~hE1MknWHuC!tPGjBVzaEo`5D~5&Np1iHGzm_$rlr$ zEPvXOD3VacwC90ot1)CTw!{<}E`=&=vQ9^+`3n_ie*@!j#aTwvoS#K+Z9B_D@#%7+ z6WuR>qv$rxq1){x?QKlt74OdSLw0A-=4$sYVlzB`cULb0dOBZUojvG#ld5^W6%lNA zduD>H;bpsA_;oWbJyg#4d(SD}*BE&3tOO->d>?h~9PT~GsbYfNk58>?$6}2jYB4k% zSmRmX70M1a9HSTcIJD89Z~I~&1jxSF!^&4BPqkLF6gl?jj)9?J)8a%qgmbEH>SY>= z|B-VlNC;%iG%`t`cKW^iF29lH>ZU;bE=j);t@B6OzB<

=FK46$>k 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 P$0Z}F_@i3f=+FNFjYG}W literal 0 HcmV?d00001 diff --git a/docs/snugglygoblin.png b/docs/snugglygoblin.png new file mode 100644 index 0000000000000000000000000000000000000000..f325ae4bca9d639a4bde22262a05ca7041a50f04 GIT binary patch literal 163754 zcmaHSWl&u0vM%oK?(XhxAwdEJcV`GNSa5d&!QI{6-GjTk4DPN0!kw@7K46p^OU=48-j7hek_nxH=amZ@xmC>h2l9Ja6a|TeosHMmvZ8HL5Cw1x1@U z|NZX!-R1fI%*ltLQcR<+=G>PxgNrW@^G9V?mR6pg?G+W>59Oz#eHmv5@^I!iJ#$S!8jiQ9$ zoM(|MII)a_U3u&Xxu)2tP&bh*A77X+$ch)4G*(-E#`IYlWVVMRlAB?i%n{X19kCR$ z6rmZZX(dJ<8<}xcVE22&(7|~4Uq=MSUS2JQvcp_6Z=~X3rs=W)vXtC+!mNATcK<{G zhOS;B({qJ8?go8JdC4Xdrs__FS3ZHXAq9L=s*tIWvXMr9^zUdz^moKY6YTu=sa+4b zIO2Sg_uQeu-r$;zkX7x3G`SFp9E{INO0vk}vrFgkyazB6MInJ4w8Mw@&Ii(qC0X#e zsp7&hkwUP1d&CPFBACYO7cCoB9mN}sJ}vMLmX{MflR-b_rA@=W36lneD^jKp z7Y+QBu0X`z(xo^l6Ao-9t|DSxfId}|DCy^TTKHde23@MD+%uwQ9{CZBT6Xu|2)QkL zyPmd~S&h2&odifwmOKaG?M_^{g1NY$O@4I&frwKp+tv!wl?b-}7zkNeS)M*VT~60K zeGW=WN}Xk8p9hxBgJp=jbBw2;M%&z|NOEja0)+w_YY|;00k4X=!r@B@^q!}oq!a(8 z!jkOVhBAiijb+86r<({Fdls)v^53>;ALaJ@IR#2#VJ{VQ|6aB@`Qtnlc~lrE6Y}!v z>T1WcrK;{MVK-e}J-sf3AFI#VC@|vi^zCm5sk zpD``D7qT{CdjnNR7Mw8u@`Zn#%Zi#Po@JP;O*g)YkM6%gz8WVOag2F)pa((c0pz z*tk+L{>w$u{4+@HsMan3{3dA=;Mk-IY&*a^Lgn9}&`?+Z^-P|o%Og3X`R&_)1Q7hj zYOSWp0Csjou-J{KNn7;y{yaH|PB4zdlx+z4i1Cr+a0}G`i@mJFmy8d3xXw>1@Ik!5 z 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 z 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 Date: Fri, 6 May 2011 06:51:07 -0500 Subject: [PATCH 0163/2731] Moving wiping to a clean slate beneath running server/ test suite --- docs/hackinghowto.rst | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index fe2411bb..f7e46dae 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -95,6 +95,22 @@ changed. To do that, run:: need to do this when you've made code changes. +Running the server +================== + +Run:: + + ./bin/paster serve mediagoblin.ini --reload + + +Running the test suite +====================== + +Run:: + + ./bin/nosetests + + Wiping your environment for a clean-slate ----------------------------------------- @@ -122,22 +138,6 @@ Delete the following directories: MongoDB instance. Let us know! -Running the server -================== - -Run:: - - ./bin/paster serve mediagoblin.ini --reload - - -Running the test suite -====================== - -Run:: - - ./bin/nosetests - - Quickstart for Django programmers ================================= From 4509880386a4fc8c0d3d0e7c2176776593af8f02 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 6 May 2011 06:54:57 -0500 Subject: [PATCH 0164/2731] Made a link to the script wiping tool feature request ticket --- docs/hackinghowto.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index f7e46dae..ef49fc43 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -133,9 +133,9 @@ Delete the following directories: .. YouCanHelp:: - If you're familiar with MongoDB and bash, we'd love to get a bash - script that removes all the GNU MediaGoblin data from an existing - MongoDB instance. Let us know! + If you're familiar with MongoDB and bash, we'd love to get a + `script that removes all the GNU MediaGoblin data from an existing + instance `_. Let us know! Quickstart for Django programmers From 1b734c4d67640b62d93cc41c4061555581e3f77f Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 6 May 2011 06:56:26 -0500 Subject: [PATCH 0165/2731] It doesn't necessarily have to be bash. --- docs/hackinghowto.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index ef49fc43..46353886 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -133,9 +133,9 @@ Delete the following directories: .. YouCanHelp:: - If you're familiar with MongoDB and bash, we'd love to get a - `script that removes all the GNU MediaGoblin data from an existing - instance `_. Let us know! + If you're familiar with MongoDB, we'd love to get a `script that + removes all the GNU MediaGoblin data from an existing instance + `_. Let us know! Quickstart for Django programmers From 1dddd4e913b21ea9ee3bf29b32916814be563fcf Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 6 May 2011 07:44:54 -0500 Subject: [PATCH 0166/2731] A completely evil environment destroying script. --- destroy_environment.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100755 destroy_environment.py diff --git a/destroy_environment.py b/destroy_environment.py new file mode 100755 index 00000000..bbdeffe9 --- /dev/null +++ b/destroy_environment.py @@ -0,0 +1,22 @@ +#!./bin/python + +import pymongo +import sys, os + +print "*** WARNING! ***" +print " Running this will destroy your mediagoblin database," +print " remove all your media files in user_dev/, etc." + +drop_it = raw_input( + 'Are you SURE you want to destroy your environment? (if so, type "yes")> ') + +if not drop_it == 'yes': + sys.exit(1) + +conn = pymongo.Connection() +conn.drop_database('mediagoblin') + +os.popen('rm -rf user_dev/media') +os.popen('rm -rf user_dev/beaker') + +print "removed all your stuff! okay, now re-run ./bin/buildout" From fa7f9c6184286f2b56f353b21ffaf1e1577569a3 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 6 May 2011 09:37:24 -0500 Subject: [PATCH 0167/2731] Process media! Successfully! --- mediagoblin/models.py | 9 +++++++-- mediagoblin/process_media/__init__.py | 25 ++++++++++++++++++++----- mediagoblin/submit/views.py | 7 +++++-- 3 files changed, 32 insertions(+), 9 deletions(-) diff --git a/mediagoblin/models.py b/mediagoblin/models.py index eef59ed4..cd6a28cc 100644 --- a/mediagoblin/models.py +++ b/mediagoblin/models.py @@ -73,11 +73,16 @@ class MediaEntry(Document): 'tags': [unicode], 'state': unicode, + # For now let's assume there can only be one main file queued + # at a time + 'queued_media_file': [unicode], + + # A dictionary of logical names to filepaths + 'media_files': dict, + # The following should be lists of lists, in appropriate file # record form - 'media_files': list, 'attachment_files': list, - 'queue_files': list, # This one should just be a single file record 'thumbnail_file': [unicode]} diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py index 0d02a13f..69177fee 100644 --- a/mediagoblin/process_media/__init__.py +++ b/mediagoblin/process_media/__init__.py @@ -29,11 +29,11 @@ def process_media_initial(media_id): entry = database.MediaEntry.one( {'_id': mongokit.ObjectId(media_id)}) - queued_filepath = entry['queue_files'].pop() + queued_filepath = entry['queued_media_file'] queued_file = queue_store.get_file(queued_filepath, 'r') with queued_file: - thumb = Image(queued_file) + thumb = Image.open(queued_file) thumb.thumbnail(THUMB_SIZE, Image.ANTIALIAS) thumb_filepath = public_store.get_unique_filepath( @@ -44,7 +44,22 @@ def process_media_initial(media_id): with public_store.get_file(thumb_filepath, 'w') as thumb_file: thumb.save(thumb_file, "JPEG") - queue_store.delete(queued_filepath) - entry.setdefault('media_files', []).append(thumb_filepath) + # we have to re-read because unlike PIL, not everything reads + # things in string representation :) + queued_file = queue_store.get_file(queued_filepath, 'rb') + + with queued_file: + main_filepath = public_store.get_unique_filepath( + ['media_entries', + unicode(entry['_id']), + queued_filepath[-1]]) + + with public_store.get_file(main_filepath, 'wb') as main_file: + main_file.write(queued_file.read()) + + queue_store.delete_file(queued_filepath) + media_files_dict = entry.setdefault('media_files', {}) + media_files_dict['thumb'] = thumb_filepath + media_files_dict['main'] = main_filepath entry.state = 'processed' - entry.save() + entry.save(validate=False) diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 926c7011..9c4eb3a4 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -22,6 +22,7 @@ from werkzeug.utils import secure_filename from mediagoblin.decorators import require_active_login from mediagoblin.submit import forms as submit_forms +from mediagoblin.process_media import process_media_initial @require_active_login @@ -52,7 +53,6 @@ def submit_start(request): # Now store generate the queueing related filename queue_filepath = request.app.queue_store.get_unique_filepath( ['media_entries', - unicode(request.user['_id']), unicode(entry['_id']), secure_filename(request.POST['file'].filename)]) @@ -64,9 +64,12 @@ def submit_start(request): queue_file.write(request.POST['file'].file.read()) # Add queued filename to the entry - entry.setdefault('queue_files', []).append(queue_filepath) + entry['queued_media_file'] = queue_filepath entry.save(validate=True) + # queue it for processing + process_media_initial.delay(unicode(entry['_id'])) + # redirect return exc.HTTPFound( location=request.urlgen("mediagoblin.submit.success")) From 12b6ecac0f5188f4b4e07f9fd70e0c4a4a59a5ae Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 6 May 2011 10:01:11 -0500 Subject: [PATCH 0168/2731] Erk, we didn't save the state right before --- mediagoblin/process_media/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py index 69177fee..3c4d0ca1 100644 --- a/mediagoblin/process_media/__init__.py +++ b/mediagoblin/process_media/__init__.py @@ -61,5 +61,5 @@ def process_media_initial(media_id): media_files_dict = entry.setdefault('media_files', {}) media_files_dict['thumb'] = thumb_filepath media_files_dict['main'] = main_filepath - entry.state = 'processed' - entry.save(validate=False) + entry['state'] = u'processed' + entry.save() From 4c1e752a089313b11f872771f234c59d1b5b9982 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 6 May 2011 10:01:26 -0500 Subject: [PATCH 0169/2731] Actually display submitted stuff on the mainpage. Crappy, but working! --- mediagoblin/templates/mediagoblin/root.html | 14 ++++++++++++++ mediagoblin/views.py | 6 +++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index d6fffb8e..06a89f3f 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -36,4 +36,18 @@

{% endif %} + + {# temporarily, an "image gallery" that isn't one really ;) #} + +
+
    + {% for entry in media_entries %} +
  • + +
  • + {% endfor %} +
+
+ {% endblock %} diff --git a/mediagoblin/views.py b/mediagoblin/views.py index 1081ce29..3728d4aa 100644 --- a/mediagoblin/views.py +++ b/mediagoblin/views.py @@ -22,11 +22,15 @@ import wtforms from mediagoblin import models def root_view(request): + media_entries = request.db.MediaEntry.find( + {u'state': u'processed'}) + template = request.template_env.get_template( 'mediagoblin/root.html') return Response( template.render( - {'request': request})) + {'request': request, + 'media_entries': media_entries})) class ImageSubmitForm(wtforms.Form): From 1c424df505b3c9f9cceb84a4fd0ac1867b7ed9b4 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 6 May 2011 10:06:57 -0500 Subject: [PATCH 0170/2731] Instructions on running celeryd --- docs/hackinghowto.rst | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index 46353886..fdb53a25 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -103,6 +103,18 @@ Run:: ./bin/paster serve mediagoblin.ini --reload +Running celeryd +=============== + +You need to do this if you want your media to process and actually +show up. It's probably a good idea in development to have the web +server (above) running in one terminal and celeryd in another window. + +Run:: + + CELERY_CONFIG_MODULE=mediagoblin.celery_setup.from_celery ./bin/celeryd + + Running the test suite ====================== From 67e63926f929cf7b6665fba00238fec227b5831e Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Sat, 7 May 2011 00:55:32 +0200 Subject: [PATCH 0171/2731] Fixed bug in models.py:User that caused all users created by the same python process to have the same verification_key value Signed-off-by: Joar Wandborg --- mediagoblin/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/models.py b/mediagoblin/models.py index 62cab4a5..c361feac 100644 --- a/mediagoblin/models.py +++ b/mediagoblin/models.py @@ -50,7 +50,7 @@ class User(Document): 'created': datetime.datetime.utcnow, 'email_verified': False, 'status': u'needs_email_verification', - 'verification_key': unicode( uuid.uuid4() ) } + 'verification_key': uuid.uuid4 } def check_login(self, password): """ From 85e1bc316ec7010d06e95b35d3496ad3ecf7ef78 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Sat, 7 May 2011 00:57:39 +0200 Subject: [PATCH 0172/2731] mediagoblin.util.send_email now supports both list() and string() in the 'to_addrs' parameter Signed-off-by: Joar Wandborg --- mediagoblin/util.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index d24b59b6..0d8bcae2 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -163,7 +163,8 @@ def send_email(from_addr, to_addrs, subject, message_body): message = MIMEText(message_body.encode('utf-8'), 'plain', 'utf-8') message['Subject'] = subject message['From'] = from_addr - message['To'] = ', '.join(to_addrs) + # The shorthand condition takes height for the possibility that the to_addrs argument can be either list() or string() + message['To'] = ', '.join(to_addrs) if type( to_addrs ) == list else to_addrs if TESTS_ENABLED: EMAIL_TEST_INBOX.append(message) From b16ebe0e13247c94a3dc545761af395166956757 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Sat, 7 May 2011 02:30:35 +0200 Subject: [PATCH 0173/2731] Changed the method used to generate uuids for verification_key, this one works, thanks paroneayea Signed-off-by: Joar Wandborg --- mediagoblin/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/models.py b/mediagoblin/models.py index c361feac..e1198187 100644 --- a/mediagoblin/models.py +++ b/mediagoblin/models.py @@ -50,7 +50,7 @@ class User(Document): 'created': datetime.datetime.utcnow, 'email_verified': False, 'status': u'needs_email_verification', - 'verification_key': uuid.uuid4 } + 'verification_key': lambda: unicode( uuid.uuid4() ) } def check_login(self, password): """ From 5c42a82c5ad4fa410219084a6f43bdc414369114 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Sat, 7 May 2011 03:08:09 +0200 Subject: [PATCH 0174/2731] Added functionality to send out verification email upon successful registration Signed-off-by: Joar Wandborg --- mediagoblin/auth/views.py | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index dfb6899f..79c09f5b 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -19,6 +19,7 @@ from webob import Response, exc from mediagoblin.auth import lib as auth_lib from mediagoblin.auth import forms as auth_forms +from mediagoblin.util import send_email def register(request): @@ -44,9 +45,28 @@ def register(request): entry['pw_hash'] = auth_lib.bcrypt_gen_password_hash( request.POST['password']) entry.save(validate=True) + + # TODO: Move this setting to a better place + EMAIL_SENDER_ADDRESS = 'mediagoblin@fakehost' - # TODO: Send email authentication request - + ''' TODO Index - Regarding sending of verification email + 1. There is no error handling in place + 2. Due to the distributed nature of GNU MediaGoblin, we should find a way to send some additional information about the specific GNU MediaGoblin instance in the subject line. For example "GNU MediaGoblin @ Wandborg - [...]". + 3. The verification link generation does not detect and adapt to access via the HTTPS protocol. + ''' + + # TODO (1) + send_email( + EMAIL_SENDER_ADDRESS, + entry['email'], + 'GNU MediaGoblin - Verify email', # TODO (2) + 'http://{host}{uri}?userid={userid}&token={verification_key}'.format( # TODO (3) + host = request.host, + uri = request.urlgen('mediagoblin.auth.verify_email'), + userid = unicode( entry['_id'] ), + verification_key = entry['verification_key'] + )) + # Redirect to register_success return exc.HTTPFound( location=request.urlgen("mediagoblin.auth.register_success")) From 8842779b4e059938a0d8b94b1b3c5e3941fe8450 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Fri, 6 May 2011 21:54:10 -0400 Subject: [PATCH 0175/2731] Fixes a link in the docs --- docs/mediagoblin.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/mediagoblin.rst b/docs/mediagoblin.rst index 6d511850..df2190c1 100644 --- a/docs/mediagoblin.rst +++ b/docs/mediagoblin.rst @@ -60,7 +60,7 @@ Is this an official GNU Project? What does that mean? We are! It means that we meet the GNU Project's rigourous standards for free software. To find out more about what that means, check out -`the GNU site `. +`the GNU site `_. Please feel free to contact us with further questions! From 52be418afe95f7a127b12b559867921578d16dee Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Fri, 6 May 2011 22:06:36 -0400 Subject: [PATCH 0176/2731] First pass at adding virtualenv instructions. --- docs/hackinghowto.rst | 81 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 75 insertions(+), 6 deletions(-) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index fdb53a25..40d14e24 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -49,9 +49,22 @@ requirements:: sudo apt-get install mongodb git-core python python-dev \ python-lxml +After getting the requirements, there are two ways to build a development environment: + +1. Running bootstrap and buildout, OR +2. Creating a virtual environment + +Pick one---don't do both! + + +Creating a dev environment with bootstrap and buildout +------------------------------------------------------ + +.. Note:: + + Either follow the instructions in this section OR follow the ones + in the next one---don't do both! -Running bootstrap and buildout ------------------------------- After installing the requirements, follow these steps: @@ -79,10 +92,6 @@ purposes this default should be fine. `_, that should work just fine. - -Updating dependencies ---------------------- - While hacking on GNU MediaGoblin over time, you'll eventually have to update your development environment because the dependencies have changed. To do that, run:: @@ -95,6 +104,66 @@ changed. To do that, run:: need to do this when you've made code changes. +Creating a dev environment with virtualenv +------------------------------------------ + +.. Note:: + + Either follow the instructions in this section OR follow the ones + in the previous one---don't do both! + +The following assumes you have these things installed: + +1. virtualenv: + + http://pypi.python.org/pypi/virtualenv + +2. virtualenv wrapper: + + http://www.doughellmann.com/projects/virtualenvwrapper/ + +3. git: + + http://git-scm.com/ + + +Follow these steps: + +1. Clone the repository:: + + git clone http://git.gitorious.org/mediagoblin/mediagoblin.git + +2. Create a virtual environment:: + + mkvirtualenv --no-site-packages mediagoblin + +3. If that doesn't put you in the virutal environment you just created, then do:: + + workon mediagoblin + +4. Run:: + + python setup.py develop + + +That's it! + +When you want to work on GNU MediaGoblin, you need to activate the +virtual environment like this:: + + workon mediagoblin + +If you want to deactivate it, you can do this:: + + deactivate + +.. Note:: + + You don't have to do anything additional to move changes you're + making to your virtual environment because the virtual environment + is pointing at the actual code files. + + Running the server ================== From 4564da2210fe42b491c74d3d32e8b5c2ddb246a8 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Sat, 7 May 2011 08:49:36 -0400 Subject: [PATCH 0177/2731] Overhauls hacking howto * reworks virtualenv section to be way better * reworks buildout section to mirror virtualenv section * reworks other sections that depend on which development environment building method you chose --- docs/hackinghowto.rst | 242 ++++++++++++++++++++++++++---------------- 1 file changed, 152 insertions(+), 90 deletions(-) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index 40d14e24..a2a153aa 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -23,13 +23,21 @@ Second thing to do is take a look at :ref:`codebase-chapter` where we've started documenting how GNU MediaGoblin is built and how to add new things. +Third you'll need to :ref:`get the requirements +`. -How to set up and maintain an environment for hacking -===================================================== +Fourth, you'll need to build a development environment. For this step, there are two options: +1. :ref:`virtualenv ` OR +2. :ref:`buildout and bootstrap ` + +Pick one---don't do both! + + +.. _get-requirements-section: Getting requirements --------------------- +==================== First, you need to have the following installed before you can build an environment for hacking on GNU MediaGoblin: @@ -49,13 +57,94 @@ requirements:: sudo apt-get install mongodb git-core python python-dev \ python-lxml -After getting the requirements, there are two ways to build a development environment: +.. YouCanHelp:: -1. Running bootstrap and buildout, OR -2. Creating a virtual environment + If you have instructions for other GNU/Linux distributions to set + up requirements, let us know! -Pick one---don't do both! +.. _hacking-with-virtualenv: + +How to set up and maintain an environment for hacking with virtualenv +===================================================================== + +.. Note:: + + Either follow the instructions in this section OR follow the ones + in :ref:`hacking-with-buildout`. But don't do both! + + +**Requirements** + +* virtualenv: http://pypi.python.org/pypi/virtualenv +* virtualenv wrapper: http://www.doughellmann.com/projects/virtualenvwrapper/ +* git: http://git-scm.com/ + + +**Create a development environment** + +1. Clone the repository:: + + git clone http://git.gitorious.org/mediagoblin/mediagoblin.git + +2. Create a virtual environment:: + + mkvirtualenv --no-site-packages mediagoblin + +3. If that doesn't put you in the virutal environment you just + created, then do:: + + workon mediagoblin + +4. Run:: + + python setup.py develop + +That's it! + + +**Activating a virtual environment** + +When you want to work on GNU MediaGoblin, you need to activate the +virtual environment like this:: + + workon mediagoblin + + +**Deactivating a virtual environment** + +If you want to deactivate it, you can do this:: + + deactivate + + +**Updating a virtual environment with dependency changes** + +1. Enter the virtual environment. + +2. Run:: + + python setup.py develop + + +**Updating a virtual environment with code changes** + +You don't need to do anything---code changes are automatically +available. + + +**Deleting a virtual environment** + +At some point you may want to delete your virtual environment. +Perhaps it's to start over. Perhaps it's so you can test building +development environments with virtualenv. + +To do this, do:: + + rmvirtualenv mediagoblin + + +.. _hacking-with-buildout: Creating a dev environment with bootstrap and buildout ------------------------------------------------------ @@ -63,9 +152,16 @@ Creating a dev environment with bootstrap and buildout .. Note:: Either follow the instructions in this section OR follow the ones - in the next one---don't do both! + in :ref:`hacking-with-virtualenv`. But don't do both! +**Requirements** + +No additional requirements. + + +**Create a development environment** + After installing the requirements, follow these steps: 1. Clone the repository:: @@ -84,13 +180,7 @@ session stuff, etc). You can change this, but for development purposes this default should be fine. -.. Note:: - - We used `zc.buildout `_ because it - involves fewer steps to get things running and less knowledge of - Python packaging. However, if you prefer to use `virtualenv - `_, that should work just - fine. +**Updating for dependency changes** While hacking on GNU MediaGoblin over time, you'll eventually have to update your development environment because the dependencies have @@ -98,76 +188,38 @@ changed. To do that, run:: ./bin/buildout -.. Note:: - You only need to do this when dependencies are updated. You don't - need to do this when you've made code changes. +**Updating for code changes** +You don't need to do anything---code changes are automatically +available. + + +**Deleting your buildout** + +At some point, you may want to delete your buildout. Perhaps it's to +start over. Perhaps it's to test building development environments +with buildout. + +To do this, do:: + + rm -rf bin develop-eggs eggs mediagoblin.egg-info parts user_dev + + +.. _env_with_virtualenv: Creating a dev environment with virtualenv ------------------------------------------ -.. Note:: - - Either follow the instructions in this section OR follow the ones - in the previous one---don't do both! - -The following assumes you have these things installed: - -1. virtualenv: - - http://pypi.python.org/pypi/virtualenv - -2. virtualenv wrapper: - - http://www.doughellmann.com/projects/virtualenvwrapper/ - -3. git: - - http://git-scm.com/ - - -Follow these steps: - -1. Clone the repository:: - - git clone http://git.gitorious.org/mediagoblin/mediagoblin.git - -2. Create a virtual environment:: - - mkvirtualenv --no-site-packages mediagoblin - -3. If that doesn't put you in the virutal environment you just created, then do:: - - workon mediagoblin - -4. Run:: - - python setup.py develop - - -That's it! - -When you want to work on GNU MediaGoblin, you need to activate the -virtual environment like this:: - - workon mediagoblin - -If you want to deactivate it, you can do this:: - - deactivate - -.. Note:: - - You don't have to do anything additional to move changes you're - making to your virtual environment because the virtual environment - is pointing at the actual code files. - Running the server ================== -Run:: +If you did virtualenv, run:: + + paster serve mediagoblin.ini --reload + +If you did buildout, run:: ./bin/paster serve mediagoblin.ini --reload @@ -179,7 +231,11 @@ You need to do this if you want your media to process and actually show up. It's probably a good idea in development to have the web server (above) running in one terminal and celeryd in another window. -Run:: +If you did virtualenv, run:: + + CELERY_CONFIG_MODULE=mediagoblin.celery_setup.from_celery celeryd + +If you did buildout, run:: CELERY_CONFIG_MODULE=mediagoblin.celery_setup.from_celery ./bin/celeryd @@ -187,13 +243,30 @@ Run:: Running the test suite ====================== -Run:: +If you did virtualenv, run:: + + nosetests + +If you did buildout, run:: ./bin/nosetests -Wiping your environment for a clean-slate ------------------------------------------ +Troubleshooting +=============== + +pymongo.errors.AutoReconnect: could not find master/primary +----------------------------------------------------------- + +If you see this:: + + pymongo.errors.AutoReconnect: could not find master/primary + +then make sure mongodb is installed and running. + + +Wiping your user data +===================== .. Note:: @@ -201,17 +274,6 @@ Wiping your environment for a clean-slate a new instance, you will probably never have to do this. Will plans to do this work and thus he documented it. - -Delete the following directories: - -* bin/ -* develop-eggs/ -* eggs/ -* mediagoblin.egg-info/ -* parts/ -* user_dev/ - - .. YouCanHelp:: If you're familiar with MongoDB, we'd love to get a `script that From 1220e775b9cea52632334e9acfde0cfac85ef25f Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Sat, 7 May 2011 09:42:01 -0400 Subject: [PATCH 0178/2731] Fixes headers in hacking howto docs --- docs/hackinghowto.rst | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index a2a153aa..7fd9b349 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -146,8 +146,8 @@ To do this, do:: .. _hacking-with-buildout: -Creating a dev environment with bootstrap and buildout ------------------------------------------------------- +How to set up and maintain an environment for hacking with buildout +=================================================================== .. Note:: @@ -206,12 +206,6 @@ To do this, do:: rm -rf bin develop-eggs eggs mediagoblin.egg-info parts user_dev -.. _env_with_virtualenv: - -Creating a dev environment with virtualenv ------------------------------------------- - - Running the server ================== From 7501000353ed20eda9b2b32e9a0aba63df88f1b5 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 7 May 2011 08:54:53 -0500 Subject: [PATCH 0179/2731] Be sure to read the install instructions! --- docs/hackinghowto.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index 7fd9b349..2e6d0d14 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -77,7 +77,7 @@ How to set up and maintain an environment for hacking with virtualenv **Requirements** * virtualenv: http://pypi.python.org/pypi/virtualenv -* virtualenv wrapper: http://www.doughellmann.com/projects/virtualenvwrapper/ +* virtualenv wrapper: http://www.doughellmann.com/projects/virtualenvwrapper/ (be sure to read the `install instructions `_) * git: http://git-scm.com/ From 2704f7a6cbe274b5d1969d511564f928e0ba5d29 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Sat, 7 May 2011 09:56:39 -0400 Subject: [PATCH 0180/2731] Tweaks the "if mongodb isn't working" troubleshooting section --- docs/hackinghowto.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index 2e6d0d14..dcade418 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -258,6 +258,12 @@ If you see this:: then make sure mongodb is installed and running. +If it's installed, check the mongodb log. On my machine, that's ``/var/log/mongodb/mongodb.log``. If you see something like:: + + old lock file: /var/lib/mongodb/mongod.lock. probably means... + +Then delete the lock file and relaunch mongodb. + Wiping your user data ===================== From 2bae877e6769842900694f49a5e27c1bc31507e0 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Sat, 7 May 2011 09:57:37 -0400 Subject: [PATCH 0181/2731] Wraps the virtualenv wrapper line --- docs/hackinghowto.rst | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index dcade418..d3784820 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -77,7 +77,10 @@ How to set up and maintain an environment for hacking with virtualenv **Requirements** * virtualenv: http://pypi.python.org/pypi/virtualenv -* virtualenv wrapper: http://www.doughellmann.com/projects/virtualenvwrapper/ (be sure to read the `install instructions `_) +* virtualenv wrapper: + http://www.doughellmann.com/projects/virtualenvwrapper/ (be sure to + read the `install instructions + `_) * git: http://git-scm.com/ From 27057b42fb68e3f640a1788d6de36649af6455f7 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Sat, 7 May 2011 09:57:58 -0400 Subject: [PATCH 0182/2731] Removes the git requirement--that's redundant --- docs/hackinghowto.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index d3784820..73522ec6 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -81,7 +81,6 @@ How to set up and maintain an environment for hacking with virtualenv http://www.doughellmann.com/projects/virtualenvwrapper/ (be sure to read the `install instructions `_) -* git: http://git-scm.com/ **Create a development environment** From 7a5ddb45dcf55c6d651b4a32dc1924e54b77c0f0 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 7 May 2011 13:58:36 -0500 Subject: [PATCH 0183/2731] Reversing buildout and virtualenv instructions because I think virtualenv is easier if you don't know how this stuff works, and it works. --- docs/hackinghowto.rst | 132 ++++++++++++++++++++++-------------------- 1 file changed, 68 insertions(+), 64 deletions(-) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index 73522ec6..d829b1c0 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -28,8 +28,8 @@ Third you'll need to :ref:`get the requirements Fourth, you'll need to build a development environment. For this step, there are two options: -1. :ref:`virtualenv ` OR -2. :ref:`buildout and bootstrap ` +1. :ref:`buildout and bootstrap ` (easier) OR +2. :ref:`virtualenv ` (more flexible, but harder) Pick one---don't do both! @@ -63,6 +63,72 @@ requirements:: up requirements, let us know! +.. _hacking-with-buildout: + +How to set up and maintain an environment for hacking with buildout +=================================================================== + +.. Note:: + + Either follow the instructions in this section OR follow the ones + in :ref:`hacking-with-virtualenv`. But don't do both! + + +**Requirements** + +No additional requirements. + + +**Create a development environment** + +After installing the requirements, follow these steps: + +1. Clone the repository:: + + git clone http://git.gitorious.org/mediagoblin/mediagoblin.git + +2. Bootstrap and run buildout:: + + cd mediagoblin + python bootstrap.py && ./bin/buildout + + +That's it! Using this method, buildout should create a ``user_dev`` +directory, in which certain things will be stored (media, beaker +session stuff, etc). You can change this, but for development +purposes this default should be fine. + + +**Updating for dependency changes** + +While hacking on GNU MediaGoblin over time, you'll eventually have to +update your development environment because the dependencies have +changed. To do that, run:: + + ./bin/buildout + + +**Updating for code changes** + +You don't need to do anything---code changes are automatically +available. + + +**Deleting your buildout** + +At some point, you may want to delete your buildout. Perhaps it's to +start over. Perhaps it's to test building development environments +with buildout. + +To do this, do:: + + rm -rf bin develop-eggs eggs mediagoblin.egg-info parts user_dev + +Usually buildout works pretty great and is super easy, but if you get +problems with python-dateutil conflicts on your system, you may need +to use virtualenv instead. + + .. _hacking-with-virtualenv: How to set up and maintain an environment for hacking with virtualenv @@ -146,68 +212,6 @@ To do this, do:: rmvirtualenv mediagoblin -.. _hacking-with-buildout: - -How to set up and maintain an environment for hacking with buildout -=================================================================== - -.. Note:: - - Either follow the instructions in this section OR follow the ones - in :ref:`hacking-with-virtualenv`. But don't do both! - - -**Requirements** - -No additional requirements. - - -**Create a development environment** - -After installing the requirements, follow these steps: - -1. Clone the repository:: - - git clone http://git.gitorious.org/mediagoblin/mediagoblin.git - -2. Bootstrap and run buildout:: - - cd mediagoblin - python bootstrap.py && ./bin/buildout - - -That's it! Using this method, buildout should create a ``user_dev`` -directory, in which certain things will be stored (media, beaker -session stuff, etc). You can change this, but for development -purposes this default should be fine. - - -**Updating for dependency changes** - -While hacking on GNU MediaGoblin over time, you'll eventually have to -update your development environment because the dependencies have -changed. To do that, run:: - - ./bin/buildout - - -**Updating for code changes** - -You don't need to do anything---code changes are automatically -available. - - -**Deleting your buildout** - -At some point, you may want to delete your buildout. Perhaps it's to -start over. Perhaps it's to test building development environments -with buildout. - -To do this, do:: - - rm -rf bin develop-eggs eggs mediagoblin.egg-info parts user_dev - - Running the server ================== From 4c093e85c7457e989b22b5274f240e3ccfdab210 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Sun, 8 May 2011 00:55:57 +0200 Subject: [PATCH 0184/2731] Made changes according to http://bugs.foocorp.net/issues/271#note-7 Signed-off-by: Joar Wandborg --- mediagoblin.ini | 1 + mediagoblin/app.py | 4 ++ mediagoblin/auth/views.py | 48 +++++++++++-------- mediagoblin/celery_setup/from_celery.py | 4 ++ .../mediagoblin/auth/verify_email.html | 4 +- mediagoblin/util.py | 3 +- 6 files changed, 41 insertions(+), 23 deletions(-) diff --git a/mediagoblin.ini b/mediagoblin.ini index c6dd4f76..a54eebd5 100644 --- a/mediagoblin.ini +++ b/mediagoblin.ini @@ -14,6 +14,7 @@ queuestore_base_dir = %(here)s/user_dev/media/queue publicstore_base_dir = %(here)s/user_dev/media/public publicstore_base_url = /mgoblin_media/ direct_remote_path = /mgoblin_static/ +email_sender_address = "notice@mediagoblin.org" ## Uncomment this to put some user-overriding templates here #local_templates = %(here)s/user_dev/templates/ diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 59b943dd..ca3de6ca 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -36,6 +36,7 @@ class MediaGoblinApp(object): def __init__(self, connection, database_path, public_store, queue_store, staticdirector, + email_sender_address, user_template_path=None): # Get the template environment self.template_env = util.get_jinja_env(user_template_path) @@ -59,6 +60,7 @@ class MediaGoblinApp(object): # validators, etc, which might not access to the request # object. setup_globals( + email_sender_address=email_sender_address, db_connection=connection, database=self.db, public_store=self.public_store, @@ -139,6 +141,8 @@ def paste_app_factory(global_config, **app_config): connection, app_config.get('db_name', 'mediagoblin'), public_store=public_store, queue_store=queue_store, staticdirector=staticdirector, + email_sender_address=app_config.get('email_sender_address', + 'notice@medigoblin.org'), user_template_path=app_config.get('local_templates')) return mgoblin_app diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 79c09f5b..7468def0 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -20,6 +20,7 @@ from webob import Response, exc from mediagoblin.auth import lib as auth_lib from mediagoblin.auth import forms as auth_forms from mediagoblin.util import send_email +from mediagoblin import globals as mgoblin_globals def register(request): @@ -49,23 +50,26 @@ def register(request): # TODO: Move this setting to a better place EMAIL_SENDER_ADDRESS = 'mediagoblin@fakehost' - ''' TODO Index - Regarding sending of verification email - 1. There is no error handling in place - 2. Due to the distributed nature of GNU MediaGoblin, we should find a way to send some additional information about the specific GNU MediaGoblin instance in the subject line. For example "GNU MediaGoblin @ Wandborg - [...]". - 3. The verification link generation does not detect and adapt to access via the HTTPS protocol. - ''' - - # TODO (1) - send_email( - EMAIL_SENDER_ADDRESS, - entry['email'], - 'GNU MediaGoblin - Verify email', # TODO (2) - 'http://{host}{uri}?userid={userid}&token={verification_key}'.format( # TODO (3) - host = request.host, - uri = request.urlgen('mediagoblin.auth.verify_email'), - userid = unicode( entry['_id'] ), - verification_key = entry['verification_key'] - )) + email_template = request.template_env.get_template( + 'mediagoblin/auth/verification_email.txt') + + # TODO: There is no error handling in place + send_email( + mgoblin_globals.email_sender_address, + list(entry['email']), + # TODO + # Due to the distributed nature of GNU MediaGoblin, we should + # find a way to send some additional information about the + # specific GNU MediaGoblin instance in the subject line. For + # example "GNU MediaGoblin @ Wandborg - [...]". + 'GNU MediaGoblin - Verify email', + email_template.render( + username=entry['username'], + verification_url='http://{host}{uri}?userid={userid}&token={verification_key}'.format( + host=request.host, + uri=request.urlgen('mediagoblin.auth.verify_email'), + userid=unicode(entry['_id']), + verification_key=entry['verification_key']))) # Redirect to register_success return exc.HTTPFound( @@ -138,13 +142,19 @@ def logout(request): location=request.urlgen("index")) def verify_email(request): + """ + Email verification view + + validates GET parameters against database and unlocks the user account, if + you are lucky :) + """ import bson.objectid user = request.db.User.find_one( - {'_id': bson.objectid.ObjectId( unicode( request.GET.get('userid') ) )}) + {'_id': bson.objectid.ObjectId(unicode(request.GET.get('userid')))}) verification_successful = bool - if user and user['verification_key'] == unicode( request.GET.get('token') ): + if user and user['verification_key'] == unicode(request.GET.get('token')): user['status'] = u'active' user['email_verified'] = True verification_successful = True diff --git a/mediagoblin/celery_setup/from_celery.py b/mediagoblin/celery_setup/from_celery.py index 9bd7fe07..387538e6 100644 --- a/mediagoblin/celery_setup/from_celery.py +++ b/mediagoblin/celery_setup/from_celery.py @@ -22,6 +22,7 @@ from paste.deploy.loadwsgi import NicerConfigParser from mediagoblin import storage, models from mediagoblin.celery_setup import setup_celery_from_config from mediagoblin.globals import setup_globals +from mediagoblin import globals as mgoblin_globals OUR_MODULENAME = 'mediagoblin.celery_setup.from_celery' @@ -81,6 +82,9 @@ def setup_self(setup_globals_func=setup_globals): db_connection=connection, database=db, public_store=public_store, + email_sender_address=mgoblin_section.get( + 'email_sender_address', + 'notice@mediagoblin.org'), queue_store=queue_store) diff --git a/mediagoblin/templates/mediagoblin/auth/verify_email.html b/mediagoblin/templates/mediagoblin/auth/verify_email.html index fe9094bd..b6e6d1f8 100644 --- a/mediagoblin/templates/mediagoblin/auth/verify_email.html +++ b/mediagoblin/templates/mediagoblin/auth/verify_email.html @@ -20,9 +20,9 @@ {% block mediagoblin_content %}

{% if verification_successful %} - Your email address has been verified! + Your email address has been verified! {% else %} - The verification key or user id is incorrect + The verification key or user id is incorrect {% endif %}

{% endblock %} diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 0d8bcae2..d24b59b6 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -163,8 +163,7 @@ def send_email(from_addr, to_addrs, subject, message_body): message = MIMEText(message_body.encode('utf-8'), 'plain', 'utf-8') message['Subject'] = subject message['From'] = from_addr - # The shorthand condition takes height for the possibility that the to_addrs argument can be either list() or string() - message['To'] = ', '.join(to_addrs) if type( to_addrs ) == list else to_addrs + message['To'] = ', '.join(to_addrs) if TESTS_ENABLED: EMAIL_TEST_INBOX.append(message) From 4942b63711e53162a0ae5e7e5fdfd902df4e5e66 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Sun, 8 May 2011 01:58:58 +0200 Subject: [PATCH 0185/2731] Removed unused variable Signed-off-by: Joar Wandborg --- mediagoblin/auth/views.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 7468def0..3ef1e75f 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -47,9 +47,6 @@ def register(request): request.POST['password']) entry.save(validate=True) - # TODO: Move this setting to a better place - EMAIL_SENDER_ADDRESS = 'mediagoblin@fakehost' - email_template = request.template_env.get_template( 'mediagoblin/auth/verification_email.txt') From 07a3a69cd476ac8844f96d5edb916d652bb91e42 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Sun, 8 May 2011 02:01:26 +0200 Subject: [PATCH 0186/2731] Added verification email template Signed-off-by: Joar Wandborg --- .../mediagoblin/auth/verification_email.txt | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 mediagoblin/templates/mediagoblin/auth/verification_email.txt diff --git a/mediagoblin/templates/mediagoblin/auth/verification_email.txt b/mediagoblin/templates/mediagoblin/auth/verification_email.txt new file mode 100644 index 00000000..ce0629eb --- /dev/null +++ b/mediagoblin/templates/mediagoblin/auth/verification_email.txt @@ -0,0 +1,22 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +Hi {{ username }}, + +to activate your GNU MediaGoblin account, open the following URL in your web browser + +{{ verification_url }} From 8a6a81bcaa557f1d7ceebea8b372be7cc3423ca2 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Sun, 8 May 2011 02:03:11 +0200 Subject: [PATCH 0187/2731] Updated default sender address Signed-off-by: Joar Wandborg --- mediagoblin.ini | 2 +- mediagoblin/app.py | 2 +- mediagoblin/celery_setup/from_celery.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mediagoblin.ini b/mediagoblin.ini index a54eebd5..951971a9 100644 --- a/mediagoblin.ini +++ b/mediagoblin.ini @@ -14,7 +14,7 @@ queuestore_base_dir = %(here)s/user_dev/media/queue publicstore_base_dir = %(here)s/user_dev/media/public publicstore_base_url = /mgoblin_media/ direct_remote_path = /mgoblin_static/ -email_sender_address = "notice@mediagoblin.org" +email_sender_address = "notice@mediagoblin.example.org" ## Uncomment this to put some user-overriding templates here #local_templates = %(here)s/user_dev/templates/ diff --git a/mediagoblin/app.py b/mediagoblin/app.py index ca3de6ca..ad9e77df 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -142,7 +142,7 @@ def paste_app_factory(global_config, **app_config): public_store=public_store, queue_store=queue_store, staticdirector=staticdirector, email_sender_address=app_config.get('email_sender_address', - 'notice@medigoblin.org'), + 'notice@mediagoblin.example.org'), user_template_path=app_config.get('local_templates')) return mgoblin_app diff --git a/mediagoblin/celery_setup/from_celery.py b/mediagoblin/celery_setup/from_celery.py index 387538e6..218ebfeb 100644 --- a/mediagoblin/celery_setup/from_celery.py +++ b/mediagoblin/celery_setup/from_celery.py @@ -84,7 +84,7 @@ def setup_self(setup_globals_func=setup_globals): public_store=public_store, email_sender_address=mgoblin_section.get( 'email_sender_address', - 'notice@mediagoblin.org'), + 'notice@mediagoblin.example.org'), queue_store=queue_store) From 3eae207c54b6c8fa4c2e122403b4462d93b8b713 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 7 May 2011 22:44:37 -0500 Subject: [PATCH 0188/2731] [to_email] rather than list(to_email) which makes a nasty series like ['e','m','a','i','l'] --- mediagoblin/auth/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 3ef1e75f..c3d24c74 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -53,7 +53,7 @@ def register(request): # TODO: There is no error handling in place send_email( mgoblin_globals.email_sender_address, - list(entry['email']), + [entry['email']], # TODO # Due to the distributed nature of GNU MediaGoblin, we should # find a way to send some additional information about the From 29f3fb7052a0a512d5970a936b30175b9c7eef63 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 7 May 2011 22:45:06 -0500 Subject: [PATCH 0189/2731] Added an email debug mode which, by default, is enabled --- mediagoblin.ini | 2 ++ mediagoblin/app.py | 9 ++++++--- mediagoblin/celery_setup/from_celery.py | 1 + mediagoblin/util.py | 17 ++++++++++++++--- 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/mediagoblin.ini b/mediagoblin.ini index 951971a9..b85f22ea 100644 --- a/mediagoblin.ini +++ b/mediagoblin.ini @@ -15,6 +15,8 @@ publicstore_base_dir = %(here)s/user_dev/media/public publicstore_base_url = /mgoblin_media/ direct_remote_path = /mgoblin_static/ email_sender_address = "notice@mediagoblin.example.org" +# set to false to enable sending notices +email_debug_mode = true ## Uncomment this to put some user-overriding templates here #local_templates = %(here)s/user_dev/templates/ diff --git a/mediagoblin/app.py b/mediagoblin/app.py index ad9e77df..e93e0c4e 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -18,6 +18,7 @@ import urllib import routes import mongokit +from paste.deploy.converters import asbool from webob import Request, exc from mediagoblin import routing, util, models, storage, staticdirect @@ -36,7 +37,7 @@ class MediaGoblinApp(object): def __init__(self, connection, database_path, public_store, queue_store, staticdirector, - email_sender_address, + email_sender_address, email_debug_mode, user_template_path=None): # Get the template environment self.template_env = util.get_jinja_env(user_template_path) @@ -61,6 +62,7 @@ class MediaGoblinApp(object): # object. setup_globals( email_sender_address=email_sender_address, + email_debug_mode=email_debug_mode, db_connection=connection, database=self.db, public_store=self.public_store, @@ -141,8 +143,9 @@ def paste_app_factory(global_config, **app_config): connection, app_config.get('db_name', 'mediagoblin'), public_store=public_store, queue_store=queue_store, staticdirector=staticdirector, - email_sender_address=app_config.get('email_sender_address', - 'notice@mediagoblin.example.org'), + email_sender_address=app_config.get( + 'email_sender_address', 'notice@mediagoblin.example.org'), + email_debug_mode=app_config.get('email_debug_mode'), user_template_path=app_config.get('local_templates')) return mgoblin_app diff --git a/mediagoblin/celery_setup/from_celery.py b/mediagoblin/celery_setup/from_celery.py index 218ebfeb..4ad2c1d1 100644 --- a/mediagoblin/celery_setup/from_celery.py +++ b/mediagoblin/celery_setup/from_celery.py @@ -82,6 +82,7 @@ def setup_self(setup_globals_func=setup_globals): db_connection=connection, database=db, public_store=public_store, + email_debug_mode=app_config.get('email_debug_mode'), email_sender_address=mgoblin_section.get( 'email_sender_address', 'notice@mediagoblin.example.org'), diff --git a/mediagoblin/util.py b/mediagoblin/util.py index d24b59b6..8695180a 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -21,6 +21,8 @@ import sys import jinja2 import mongokit +from mediagoblin import globals as mgoblin_globals + TESTS_ENABLED = False def _activate_testing(): @@ -153,9 +155,9 @@ def send_email(from_addr, to_addrs, subject, message_body): - message_body: email body text """ # TODO: make a mock mhost if testing is enabled - if TESTS_ENABLED: + if TESTS_ENABLED or mgoblin_globals.email_debug_mode: mhost = FakeMhost() - else: + elif not mgoblin_globals.email_debug_mode: mhost = smtplib.SMTP() mhost.connect() @@ -168,4 +170,13 @@ def send_email(from_addr, to_addrs, subject, message_body): if TESTS_ENABLED: EMAIL_TEST_INBOX.append(message) - return mhost.sendmail(from_addr, to_addrs, message.as_string()) + elif mgoblin_globals.email_debug_mode: + print u"===== Email =====" + print u"From address: %s" % message['From'] + print u"To addresses: %s" % message['To'] + print u"Subject: %s" % message['Subject'] + print u"-- Body: --" + print message.get_payload(decode=True) + + else: + return mhost.sendmail(from_addr, to_addrs, message.as_string()) From a5b06bb0750afd9d2751f92230d4dcb5c76d61c5 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 7 May 2011 22:45:30 -0500 Subject: [PATCH 0190/2731] Removing unused sys import from setup.py --- setup.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/setup.py b/setup.py index 853a5a3b..7b483a57 100644 --- a/setup.py +++ b/setup.py @@ -16,8 +16,6 @@ from setuptools import setup, find_packages -import sys - setup( name = "mediagoblin", version = "0.0.1", From 19f8a24e4187b81f18a0def87b2b170a40977ff1 Mon Sep 17 00:00:00 2001 From: Sebastian Spaeth Date: Sun, 8 May 2011 11:12:38 +0200 Subject: [PATCH 0191/2731] app.py: Need to pass in port number as 'int' When we configured an explicite db_port in mediagoblin.ini, paster would crash claiming that the port number must be an int. Given that we don't have a "get_conf_int()" function or something similar (yet?), simply convert the port number to int before passing it to the mongo Connection instance. Signed-off-by: Sebastian Spaeth --- mediagoblin/app.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index e93e0c4e..5c094f38 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -114,8 +114,9 @@ class MediaGoblinApp(object): def paste_app_factory(global_config, **app_config): # Get the database connection + port = int(app_config.get('db_port')) connection = mongokit.Connection( - app_config.get('db_host'), app_config.get('db_port')) + app_config.get('db_host'), port) # Set up the storage systems. public_store = storage.storage_system_from_paste_config( From eef100ada52adc4c1f65c7a006b92685f7317ee5 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 8 May 2011 07:07:08 -0500 Subject: [PATCH 0192/2731] mgoblin_section.get, not app_config.get (doh) My name's Chris Webber and I ignore pyflakes warnings. --- mediagoblin/celery_setup/from_celery.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/celery_setup/from_celery.py b/mediagoblin/celery_setup/from_celery.py index 4ad2c1d1..0ddfcc76 100644 --- a/mediagoblin/celery_setup/from_celery.py +++ b/mediagoblin/celery_setup/from_celery.py @@ -82,7 +82,7 @@ def setup_self(setup_globals_func=setup_globals): db_connection=connection, database=db, public_store=public_store, - email_debug_mode=app_config.get('email_debug_mode'), + email_debug_mode=mgoblin_section.get('email_debug_mode'), email_sender_address=mgoblin_section.get( 'email_sender_address', 'notice@mediagoblin.example.org'), From a1eb1f6051300e5d3ce9d1f32d28a25a567e73d8 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 8 May 2011 07:16:50 -0500 Subject: [PATCH 0193/2731] Only convert db port if it's there and use asint to do it (better errors if failing) --- mediagoblin/app.py | 6 ++++-- mediagoblin/celery_setup/from_celery.py | 6 +++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 5c094f38..913e530e 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -18,7 +18,7 @@ import urllib import routes import mongokit -from paste.deploy.converters import asbool +from paste.deploy.converters import asint from webob import Request, exc from mediagoblin import routing, util, models, storage, staticdirect @@ -114,7 +114,9 @@ class MediaGoblinApp(object): def paste_app_factory(global_config, **app_config): # Get the database connection - port = int(app_config.get('db_port')) + port = app_config.get('db_port') + if port: + port = asint(port) connection = mongokit.Connection( app_config.get('db_host'), port) diff --git a/mediagoblin/celery_setup/from_celery.py b/mediagoblin/celery_setup/from_celery.py index 0ddfcc76..6561c622 100644 --- a/mediagoblin/celery_setup/from_celery.py +++ b/mediagoblin/celery_setup/from_celery.py @@ -18,6 +18,7 @@ import os import mongokit from paste.deploy.loadwsgi import NicerConfigParser +from paste.deploy.converters import asint from mediagoblin import storage, models from mediagoblin.celery_setup import setup_celery_from_config @@ -67,8 +68,11 @@ def setup_self(setup_globals_func=setup_globals): settings_module=OUR_MODULENAME, set_environ=False) + port = mgoblin_section.get('db_port') + if port: + port = asint(port) connection = mongokit.Connection( - mgoblin_section.get('db_host'), mgoblin_section.get('db_port')) + mgoblin_section.get('db_host'), port) db = connection[mgoblin_section.get('db_name', 'mediagoblin')] models.register_models(connection) From 34900cce8ce0339b645d34749f6f5bed7bd5eef7 Mon Sep 17 00:00:00 2001 From: Sebastian Spaeth Date: Sun, 8 May 2011 15:46:35 +0200 Subject: [PATCH 0194/2731] Don't escape the verification URL In the verification email we would output the URL using HTML encoded text, so that e.g. & -> &. We don't want that and we know the URL won't contain user contributed content, so it is safe to turn off HTML encoding here. Signed-off-by: Sebastian Spaeth --- mediagoblin/templates/mediagoblin/auth/verification_email.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/auth/verification_email.txt b/mediagoblin/templates/mediagoblin/auth/verification_email.txt index ce0629eb..7863374d 100644 --- a/mediagoblin/templates/mediagoblin/auth/verification_email.txt +++ b/mediagoblin/templates/mediagoblin/auth/verification_email.txt @@ -19,4 +19,4 @@ Hi {{ username }}, to activate your GNU MediaGoblin account, open the following URL in your web browser -{{ verification_url }} +{{ verification_url|safe }} From cd847fd346e048a4bd6c42e065475b3167991213 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 8 May 2011 10:07:39 -0500 Subject: [PATCH 0195/2731] Asbool the email debug mode option --- mediagoblin/app.py | 4 ++-- mediagoblin/celery_setup/from_celery.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 913e530e..2a2f21cc 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -18,7 +18,7 @@ import urllib import routes import mongokit -from paste.deploy.converters import asint +from paste.deploy.converters import asbool, asint from webob import Request, exc from mediagoblin import routing, util, models, storage, staticdirect @@ -148,7 +148,7 @@ def paste_app_factory(global_config, **app_config): staticdirector=staticdirector, email_sender_address=app_config.get( 'email_sender_address', 'notice@mediagoblin.example.org'), - email_debug_mode=app_config.get('email_debug_mode'), + email_debug_mode=asbool(app_config.get('email_debug_mode')), user_template_path=app_config.get('local_templates')) return mgoblin_app diff --git a/mediagoblin/celery_setup/from_celery.py b/mediagoblin/celery_setup/from_celery.py index 6561c622..55e638b9 100644 --- a/mediagoblin/celery_setup/from_celery.py +++ b/mediagoblin/celery_setup/from_celery.py @@ -18,7 +18,7 @@ import os import mongokit from paste.deploy.loadwsgi import NicerConfigParser -from paste.deploy.converters import asint +from paste.deploy.converters import asint, asbool from mediagoblin import storage, models from mediagoblin.celery_setup import setup_celery_from_config @@ -86,7 +86,7 @@ def setup_self(setup_globals_func=setup_globals): db_connection=connection, database=db, public_store=public_store, - email_debug_mode=mgoblin_section.get('email_debug_mode'), + email_debug_mode=asbool(mgoblin_section.get('email_debug_mode')), email_sender_address=mgoblin_section.get( 'email_sender_address', 'notice@mediagoblin.example.org'), From ec61f094926c7d64bd76f7d4dc79ce859d6f60ef Mon Sep 17 00:00:00 2001 From: Sebastian Spaeth Date: Mon, 9 May 2011 00:23:12 +0200 Subject: [PATCH 0196/2731] Fix description submission in form handling When we submitted an image the description would remain empty. THis was because of some weird typo in form handling. Get an attribute with .get('description') and not with .get(['description']). With this patch, descriptions actually go into the database. Signed-off-by: Sebastian Spaeth --- mediagoblin/submit/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 9c4eb3a4..5e262f12 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -42,7 +42,7 @@ def submit_start(request): # create entry and save in database entry = request.db.MediaEntry() entry['title'] = request.POST['title'] - entry['description'] = request.POST.get(['description']) + entry['description'] = request.POST.get('description') entry['media_type'] = u'image' # heh entry['uploader'] = request.user From 9a16e16ffa9c0477bec6ea0bf1db7efd6f988638 Mon Sep 17 00:00:00 2001 From: Sebastian Spaeth Date: Sun, 8 May 2011 20:35:54 +0200 Subject: [PATCH 0197/2731] Implement simple media detail page This patch creates a "homepage" for each media. The URL is /u//m/. On it we display the media and some details. It is ugly and lacking some stuff but it works. The only thing left to do is to throw an 404 error if the and the media uploader don't correspond. - Also create a user "home page" while at it. It is merely a place holder for now though. - Link from the entries on the homepage, to the media pages, so we actually find them. Signed-off-by: Sebastian Spaeth --- mediagoblin/routing.py | 3 +- .../templates/mediagoblin/media_details.html | 34 ++++++++++++ mediagoblin/templates/mediagoblin/root.html | 6 ++- .../mediagoblin/user_pages/media.html | 41 +++++++++++++++ .../mediagoblin/user_pages/user.html | 26 ++++++++++ mediagoblin/user_pages/__init__.py | 0 mediagoblin/user_pages/routing.py | 24 +++++++++ mediagoblin/user_pages/views.py | 52 +++++++++++++++++++ mediagoblin/views.py | 4 +- 9 files changed, 185 insertions(+), 5 deletions(-) create mode 100644 mediagoblin/templates/mediagoblin/media_details.html create mode 100644 mediagoblin/templates/mediagoblin/user_pages/media.html create mode 100644 mediagoblin/templates/mediagoblin/user_pages/user.html create mode 100644 mediagoblin/user_pages/__init__.py create mode 100644 mediagoblin/user_pages/routing.py create mode 100644 mediagoblin/user_pages/views.py diff --git a/mediagoblin/routing.py b/mediagoblin/routing.py index b47bec8d..356ef678 100644 --- a/mediagoblin/routing.py +++ b/mediagoblin/routing.py @@ -18,7 +18,7 @@ from routes import Mapper from mediagoblin.auth.routing import auth_routes from mediagoblin.submit.routing import submit_routes - +from mediagoblin.user_pages.routing import user_routes def get_mapper(): mapping = Mapper() @@ -30,5 +30,6 @@ def get_mapper(): mapping.extend(auth_routes, '/auth') mapping.extend(submit_routes, '/submit') + mapping.extend(user_routes, '/u') return mapping diff --git a/mediagoblin/templates/mediagoblin/media_details.html b/mediagoblin/templates/mediagoblin/media_details.html new file mode 100644 index 00000000..a00354bc --- /dev/null +++ b/mediagoblin/templates/mediagoblin/media_details.html @@ -0,0 +1,34 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% extends "mediagoblin/base.html" %} +{% block mediagoblin_content %} + + {# temporarily, an "image gallery" that isn't one really ;) #} + {% if media %} +

Media details for {{media.title}}

+
+ + +
Uploaded: {{ media.created}} +
Description: {{media.description}} +
+ {% else %} +

Sorry, no such media found.

+ {% endif %} +{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index 06a89f3f..2cb0a9c0 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -43,8 +43,10 @@

diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html new file mode 100644 index 00000000..08cc9251 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -0,0 +1,41 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% extends "mediagoblin/base.html" %} +{% block mediagoblin_content %} + + {# temporarily, an "image gallery" that isn't one really ;) #} + {% if media %} +

Media details for {{media.uploader.username}} + / {{media.title}} +

+
+ + +
Uploaded on {{ "%4d-%02d-%02d"|format(media.created.year, + media.created.month,media.created.day)}} by {{media.uploader.username}} +
Description: {{media.description}} +
+ {% else %} +

Sorry, no such media found.

+ {% endif %} +{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html new file mode 100644 index 00000000..4ad34f51 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -0,0 +1,26 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% extends "mediagoblin/base.html" %} +{% block mediagoblin_content -%} + {% if user %} +

User page for '{{user.username}}'

+ {{user}} + {% else %} +

Sorry, no such user found.

+ {% endif %} +{% endblock %} diff --git a/mediagoblin/user_pages/__init__.py b/mediagoblin/user_pages/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/mediagoblin/user_pages/routing.py b/mediagoblin/user_pages/routing.py new file mode 100644 index 00000000..10ecd4fd --- /dev/null +++ b/mediagoblin/user_pages/routing.py @@ -0,0 +1,24 @@ +1# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from routes.route import Route + +user_routes = [ + Route('mediagoblin.user_pages.user_home', "/{user}", + controller="mediagoblin.user_pages.views:user_home"), + Route('mediagoblin.user_pages.media_home', r'/{user}/m/{m_id}', + requirements=dict(m_id="[0-9a-fA-F]{24}"), + controller="mediagoblin.user_pages.views:media_home")] diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py new file mode 100644 index 00000000..b1a301d4 --- /dev/null +++ b/mediagoblin/user_pages/views.py @@ -0,0 +1,52 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from webob import Response +from mongokit import ObjectId +import wtforms +#from mongokit import ObjectId + +def user_home(request): + """'Homepage' of a User()""" + user = request.db.User.find_one( + {'username': request.matchdict['user']}) + + medias = request.db.MediaEntry.find() + + template = request.template_env.get_template( + 'mediagoblin/user_pages/user.html') + return Response( + template.render( + {'request': request, + 'user': user, + 'medias': medias})) + +def media_home(request): + """'Homepage' of a MediaEntry()""" + media = request.db.MediaEntry.find_one( + ObjectId(request.matchdict['m_id'])) + + #check that media uploader and user correspondent + if media['uploader'].get('username') != request.matchdict['user']: + #TODO: How do I throw an error 404? + pass + + template = request.template_env.get_template( + 'mediagoblin/user_pages/media.html') + return Response( + template.render( + {'request': request, + 'media': media})) diff --git a/mediagoblin/views.py b/mediagoblin/views.py index 3728d4aa..f4c0598a 100644 --- a/mediagoblin/views.py +++ b/mediagoblin/views.py @@ -18,13 +18,13 @@ import datetime from webob import Response, exc import wtforms - +from mongokit import ObjectId from mediagoblin import models def root_view(request): media_entries = request.db.MediaEntry.find( {u'state': u'processed'}) - + template = request.template_env.get_template( 'mediagoblin/root.html') return Response( From 2eef8761d835cfbda42a9e9437ac475ddf12918a Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Tue, 10 May 2011 16:24:51 -0500 Subject: [PATCH 0198/2731] Indenting these templates because I'm pedantic about tag sections having their content indented :) --- .../templates/mediagoblin/media_details.html | 18 +++++++++--------- .../templates/mediagoblin/user_pages/user.html | 6 +++--- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/media_details.html b/mediagoblin/templates/mediagoblin/media_details.html index a00354bc..1b02c809 100644 --- a/mediagoblin/templates/mediagoblin/media_details.html +++ b/mediagoblin/templates/mediagoblin/media_details.html @@ -20,15 +20,15 @@ {# temporarily, an "image gallery" that isn't one really ;) #} {% if media %} -

Media details for {{media.title}}

-
- - -
Uploaded: {{ media.created}} -
Description: {{media.description}} -
+

Media details for {{media.title}}

+
+ + +
Uploaded: {{ media.created}} +
Description: {{media.description}} +
{% else %} -

Sorry, no such media found.

+

Sorry, no such media found.

{% endif %} {% endblock %} diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 4ad34f51..4fa84430 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -18,9 +18,9 @@ {% extends "mediagoblin/base.html" %} {% block mediagoblin_content -%} {% if user %} -

User page for '{{user.username}}'

- {{user}} +

User page for '{{ user.username }}'

+ {{ user }} {% else %} -

Sorry, no such user found.

+

Sorry, no such user found.

{% endif %} {% endblock %} From f62494084460d09a2902ce656bf6dfda6c6b6852 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Tue, 10 May 2011 16:25:04 -0500 Subject: [PATCH 0199/2731] 404 appropriately here --- mediagoblin/user_pages/views.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index b1a301d4..cc613c40 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -17,7 +17,7 @@ from webob import Response from mongokit import ObjectId import wtforms -#from mongokit import ObjectId + def user_home(request): """'Homepage' of a User()""" @@ -34,15 +34,15 @@ def user_home(request): 'user': user, 'medias': medias})) + def media_home(request): """'Homepage' of a MediaEntry()""" media = request.db.MediaEntry.find_one( ObjectId(request.matchdict['m_id'])) - #check that media uploader and user correspondent + #check that media uploader and user correspond if media['uploader'].get('username') != request.matchdict['user']: - #TODO: How do I throw an error 404? - pass + return exc.HTTPNotFound() template = request.template_env.get_template( 'mediagoblin/user_pages/media.html') From 80c1802440380a725d4279f46be1333fe3205e6c Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Tue, 10 May 2011 16:35:34 -0500 Subject: [PATCH 0200/2731] Removing this horrifying submission test stuff from way back when --- mediagoblin/views.py | 45 -------------------------------------------- 1 file changed, 45 deletions(-) diff --git a/mediagoblin/views.py b/mediagoblin/views.py index f4c0598a..95d0be7a 100644 --- a/mediagoblin/views.py +++ b/mediagoblin/views.py @@ -31,48 +31,3 @@ def root_view(request): template.render( {'request': request, 'media_entries': media_entries})) - - -class ImageSubmitForm(wtforms.Form): - title = wtforms.TextField( - 'Title', - [wtforms.validators.Length(min=1, max=500)]) - description = wtforms.TextAreaField('Description of this work') - file = wtforms.FileField('File') - - -def submit_test(request): - image_form = ImageSubmitForm(request.POST) - if request.method == 'POST' and image_form.validate(): - # create entry and save in database - - entry = request.db.MediaEntry() - entry['title'] = request.POST['title'] - entry['description'] = request.POST.get(['description']) - entry['media_type'] = u'image' - - # TODO this does NOT look save, we should clean the filename somenow? - entry['file_store'] = request.POST['file'].filename - - entry.save(validate=True) - - # save file to disk - ## TODO - #open('/tmp/read_file.png', 'wb').write(request.POST['file'].file.read()) - - - # resize if necessary - ## Hm. This should be done on a separate view? - - # redirect - pass - - - - # render - template = request.template_env.get_template( - 'mediagoblin/test_submit.html') - return Response( - template.render( - {'request': request, - 'image_form': image_form})) From 7222955fbad9d21542e71dafa910973a9cb0e676 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 11 May 2011 10:26:15 -0500 Subject: [PATCH 0201/2731] URLs should end in trailing slashes, or slash redirection doesn't work --- mediagoblin/user_pages/routing.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mediagoblin/user_pages/routing.py b/mediagoblin/user_pages/routing.py index 10ecd4fd..c2dc2fc0 100644 --- a/mediagoblin/user_pages/routing.py +++ b/mediagoblin/user_pages/routing.py @@ -1,4 +1,4 @@ -1# GNU MediaGoblin -- federated, autonomous media hosting +# GNU MediaGoblin -- federated, autonomous media hosting # Copyright (C) 2011 Free Software Foundation, Inc # # This program is free software: you can redistribute it and/or modify @@ -17,8 +17,8 @@ from routes.route import Route user_routes = [ - Route('mediagoblin.user_pages.user_home', "/{user}", + Route('mediagoblin.user_pages.user_home', "/{user}/", controller="mediagoblin.user_pages.views:user_home"), - Route('mediagoblin.user_pages.media_home', r'/{user}/m/{m_id}', + Route('mediagoblin.user_pages.media_home', r'/{user}/m/{m_id}/', requirements=dict(m_id="[0-9a-fA-F]{24}"), controller="mediagoblin.user_pages.views:media_home")] From d483b9b4734d271e2b37cd586e22fdad014c9386 Mon Sep 17 00:00:00 2001 From: Sebastian Spaeth Date: Mon, 9 May 2011 01:08:46 +0200 Subject: [PATCH 0202/2731] Enforce using local dateutil with buildout Natty has a too old system dateutil, but buildout will put the system modules in the search path first. By adding the dateutil spec to the 'egg' requirement, we put the dateutil inclusion of the local egg first and natty compiles (buildouts) fine. Part of http://bugs.foocorp.net/issues/308 Signed-off-by: Sebastian Spaeth --- buildout.cfg | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/buildout.cfg b/buildout.cfg index 520d5907..a77bf93c 100644 --- a/buildout.cfg +++ b/buildout.cfg @@ -6,7 +6,9 @@ parts = mediagoblin make_user_dev_dirs recipe=zc.recipe.egg interpreter=python dependent-scripts = true -eggs=mediagoblin +eggs= + python-dateutil>=1.5.0,<2.0.0 + mediagoblin entry-points = nosetests=nose:run_exit paster=paste.script.command:run From 6557056bca7e4bd722212cd9d217dbb23ce8aebd Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 12 May 2011 07:14:15 -0500 Subject: [PATCH 0203/2731] I don't believe we need READMEish.org anymore. --- READMEish.org | 192 -------------------------------------------------- 1 file changed, 192 deletions(-) delete mode 100644 READMEish.org diff --git a/READMEish.org b/READMEish.org deleted file mode 100644 index c4e95122..00000000 --- a/READMEish.org +++ /dev/null @@ -1,192 +0,0 @@ -#+latex_header: \documentclass[12pt]{article} -#+latex_header: \usepackage[margin=1in]{geometry} -#+OPTIONS: ^:nil - -GNU MediaGoblin - -* About - -What is MediaGoblin? I'm shooting for: - - - Initially, a place to store all your photos that's as awesome as, - more awesome than, existing proprietary solutions - - Later, a place for all sorts of media, such as video, music, etc - hosting. - - Federated, like statusnet/ostatus (we should use ostatus, in fact!) - - Customizable - - A place for people to collaborate and show off original and derived - creations - - Free, as in freedom. Under the GNU AGPL, v3 or later. Encourages - free formats and free licensing for content, too. - -Wow! That's pretty ambitious. Hopefully we're cool enough to do it. -I think we can. - -It's also necessary, for multiple reasons. Centralization and -proprietization of media on the internet is a serious problem and -makes the web go from a system of extreme resilience to a system -of frightening fragility. People should be able to own their data. -Etc. If you're reading this, chances are you already agree though. :) - -* Milestones - -Excepting the first, not necessarily in this order. - -** Basic image hosting -** Multi-media hosting (including video and audio) -** API(s) -** Federation - -Maybe this is 0.2 :) - -** Plugin system - -* Technology - -I have a pretty specific set of tools that I expect to use in this -project. Those are: - - - *[[http://python.org/][Python]]:* because I love, and know well, the language - - *[[http://www.mongodb.org/][MongoDB]]:* a "document database". Because it's extremely flexible - (and scales up well, but I guess not down well) - - *[[http://namlook.github.com/mongokit/][MongoKit]]:* a lightweight ORM for mongodb. Helps us define our - structures better, does schema validation, schema evolution, and - helps make things more fun and pythonic. - - *[[http://jinja.pocoo.org/docs/][Jinja2]]:* for templating. Pretty much django templates++ (wow, I - can actually pass arguments into method calls instead of tediously - writing custom tags!) - - *[[http://wtforms.simplecodes.com/][WTForms]]:* for form handling, validation, abstraction. Almost just - like Django's templates, - - *[[http://pythonpaste.org/webob/][WebOb]]:* gives nice request/response objects (also somewhat djangoish) - - *[[http://pythonpaste.org/deploy/][Paste Deploy]] and [[http://pythonpaste.org/script/][Paste Script]]:* as the default way of configuring - and launching the application. Since MediaGoblin will be fairly - wsgi minimalist though, you can probably use other ways to launch - it, though this will be the default. - - *[[http://routes.groovie.org/][Routes]]:* for URL routing. It works well enough. - - *[[http://jquery.com/][JQuery]]:* for all sorts of things on the javascript end of things, - for all sorts of reasons. - - *[[http://beaker.groovie.org/][Beaker]]:* for sessions, because that seems like it's generally - considered the way to go I guess. - - *[[http://somethingaboutorange.com/mrl/projects/nose/1.0.0/][nose]]:* for unit tests, because it makes testing a bit nicer. - - *[[http://celeryproject.org/][Celery]]:* for task queueing (think resizing images, encoding - video) because some people like it, and even the people I know who - don't don't seem to know of anything better :) - - *[[http://www.rabbitmq.com/][RabbitMQ]]:* for sending tasks to celery, because I guess that's - what most people do. Might be optional, might also let people use - MongoDB for this if they want. - -** Why python - -Because I (Chris Webber) know Python, love Python, am capable of -actually making this thing happen in Python (I've worked on a lot of -large free software web applications before in Python, including -[[http://mirocommunity.org/][Miro Community]], the [[http://miroguide.org][Miro Guide]], a large portion of -[[http://creativecommons.org/][Creative Commons' site]], and a whole bunch of things while working at -[[http://www.imagescape.com/][Imaginary Landscape]]). I know Python, I can make this happen in -Python, me starting a project like this makes sense if it's done in -Python. - -You might say that PHP is way more deployable, that rails has way more -cool developers riding around on fixie bikes, and all of those things -are true, but I know Python, like Python, and think that Python is -pretty great. I do think that deployment in Python is not as good as -with PHP, but I think the days of shared hosting are (thankfully) -coming to an end, and will probably be replaced by cheap virtual -machines spun up on the fly for people who want that sort of stuff, -and Python will be a huge part of that future, maybe even more than -PHP will. The deployment tools are getting better. Maybe we can use -something like Silver Lining. Maybe we can just distribute as .debs -or .rpms. We'll figure it out. - -But if I'm starting this project, which I am, it's gonna be in Python. - -** Why mongodb - -In case you were wondering, I am not a NOSQL fanboy, I do not go -around telling people that MongoDB is web scale. Actually my choice -for MongoDB isn't scalability, though scaling up really nicely is a -pretty good feature and sets us up well in case large volume sites -eventually do use MediaGoblin. But there's another side of -scalability, and that's scaling down, which is important for -federation, maybe even more important than scaling up in an ideal -universe where everyone ran servers out of their own housing. As a -memory-mapped database, MongoDB is pretty hungry, so actually I spent -a lot of time debating whether the inability to scale down as nicely -as something like SQL has with sqlite meant that it was out. - -But I decided in the end that I really want MongoDB, not for -scalability, but for flexibility. Schema evolution pains in SQL are -almost enough reason for me to want MongoDB, but not quite. The real -reason is because I want the ability to eventually handle multiple -media types through MediaGoblin, and also allow for plugins, without -the rigidity of tables making that difficult. In other words, -something like: - -#+BEGIN_SRC javascript -{"title": "Me talking until you are bored", - "description": "blah blah blah", - "media_type": "audio", - "media_data": { - "length": "2:30", - "codec": "OGG Vorbis"}, - "plugin_data": { - "licensing": { - "license": "http://creativecommons.org/licenses/by-sa/3.0/"}}} -#+END_SRC - -Being able to just dump media-specific information in a media_data -hashtable is pretty great, and even better is having a plugin system -where you can just let plugins have their own entire key-value space -cleanly inside the document that doesn't interfere with anyone else's -stuff. If we were to let plugins to deposit their own information -inside the database, either we'd let plugins create their own tables -which makes SQL migrations even harder than they already are, or we'd -probably end up creating a table with a column for key, a column for -value, and a column for type in one huge table called "plugin_data" or -something similar. (Yo dawg, I heard you liked plugins, so I put a -database in your database so you can query while you query.) Gross. - -I also don't want things to be too lose so that we forget or lose the -structure of things, and that's one reason why I want to use MongoKit, -because we can cleanly define a much structure as we want and verify -that documents match that structure generally without adding too much -bloat or overhead (mongokit is a pretty lightweight wrapper and -doesn't inject extra mongokit-specific stuff into the database, which -is nice and nicer than many other ORMs in that way). - -** Why wsgi minimalism / Why not Django - -If you notice in the technology list above, I list a lot of components -that are very [[http://www.djangoproject.com/][Django-like]], but not actually Django components. What -can I say, I really like a lot of the ideas in Django! Which leads to -the question: why not just use Django? - -While I really like Django's ideas and a lot of its components, I also -feel that most of the best ideas in Django I want have been -implemented as good or even better outside of Django. I could just -use Django and replace the templating system with Jinja2, and the form -system with wtforms, and the database with MongoDB and MongoKit, but -at that point, how much of Django is really left? - -I also am sometimes saddened and irritated by how coupled all of -Django's components are. Loosely coupled yes, but still coupled. -WSGI has done a good job of providing a base layer for running -applications on and [[http://pythonpaste.org/webob/do-it-yourself.html][if you know how to do it yourself]] it's not hard or -many lines of code at all to bind them together without any framework -at all (not even say [[http://pylonshq.com/][Pylons]], [[http://docs.pylonsproject.org/projects/pyramid/dev/][Pyramid]], or [[http://flask.pocoo.org/][Flask]] which I think are still -great projects, especially for people who want this sort of thing but -have no idea how to get started). And even at this already really -early stage of writing MediaGoblin, that glue work is mostly done. - -Not to say I don't think Django isn't great for a lot of things. For -a lot of stuff, it's still the best, but not for MediaGoblin, I think. - -One thing that Django does super well though is documentation. It -still has some faults, but even with those considered I can hardly -think of any other project in Python that has as nice of documentation -as Django. It may be worth -[[http://pycon.blip.tv/file/4881071/][learning some lessons on documentation from Django]], on that note. - -I'd really like to have a good, thorough hacking-howto and -deployment-howto, especially in the former making some notes on how to -make it easier for Django hackers to get started. From 1504acfddf8e84383733dae33bf6bfbd7ae3df8d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 12 May 2011 07:15:11 -0500 Subject: [PATCH 0204/2731] Right, we don't need the exported HTML either. --- READMEish.html | 426 ------------------------------------------------- 1 file changed, 426 deletions(-) delete mode 100644 READMEish.html diff --git a/READMEish.html b/READMEish.html deleted file mode 100644 index 9981da11..00000000 --- a/READMEish.html +++ /dev/null @@ -1,426 +0,0 @@ - - - - -GNU MediaGoblin - - - - - - - - - - - -

- -

GNU MediaGoblin

- - - - -
-

1 About

-
- - -

-What is MediaGoblin? I'm shooting for: -

-
    -
  • Initially, a place to store all your photos that's as awesome as, - more awesome than, existing proprietary solutions -
  • -
  • Later, a place for all sorts of media, such as video, music, etc - hosting. -
  • -
  • Federated, like statusnet/ostatus (we should use ostatus, in fact!) -
  • -
  • Customizable -
  • -
  • A place for people to collaborate and show off original and derived - creations -
  • -
  • Free, as in freedom. Under the GNU AGPL, v3 or later. Encourages - free formats and free licensing for content, too. -
  • -
- -

-Wow! That's pretty ambitious. Hopefully we're cool enough to do it. -I think we can. -

-

-It's also necessary, for multiple reasons. Centralization and -proprietization of media on the internet is a serious problem and -makes the web go from a system of extreme resilience to a system -of frightening fragility. People should be able to own their data. -Etc. If you're reading this, chances are you already agree though. :) -

-
- -
- -
-

2 Milestones

-
- - -

-Excepting the first, not necessarily in this order. -

- -
- -
-

2.1 Basic image hosting

-
- -
- -
- -
-

2.2 Multi-media hosting (including video and audio)

-
- -
- -
- -
-

2.3 API(s)

-
- -
- -
- -
-

2.4 Federation

-
- - -

-Maybe this is 0.2 :) -

-
- -
- -
-

2.5 Plugin system

-
- - -
-
- -
- -
-

3 Technology

-
- - -

-I have a pretty specific set of tools that I expect to use in this -project. Those are: -

-
    -
  • Python: because I love, and know well, the language -
  • -
  • MongoDB: a "document database". Because it's extremely flexible - (and scales up well, but I guess not down well) -
  • -
  • MongoKit: a lightweight ORM for mongodb. Helps us define our - structures better, does schema validation, schema evolution, and - helps make things more fun and pythonic. -
  • -
  • Jinja2: for templating. Pretty much django templates++ (wow, I - can actually pass arguments into method calls instead of tediously - writing custom tags!) -
  • -
  • WTForms: for form handling, validation, abstraction. Almost just - like Django's templates, -
  • -
  • WebOb: gives nice request/response objects (also somewhat djangoish) -
  • -
  • Paste Deploy and Paste Script: as the default way of configuring - and launching the application. Since MediaGoblin will be fairly - wsgi minimalist though, you can probably use other ways to launch - it, though this will be the default. -
  • -
  • Routes: for URL routing. It works well enough. -
  • -
  • JQuery: for all sorts of things on the javascript end of things, - for all sorts of reasons. -
  • -
  • Beaker: for sessions, because that seems like it's generally - considered the way to go I guess. -
  • -
  • nose: for unit tests, because it makes testing a bit nicer. -
  • -
  • Celery: for task queueing (think resizing images, encoding - video) because some people like it, and even the people I know who - don't don't seem to know of anything better :) -
  • -
  • RabbitMQ: for sending tasks to celery, because I guess that's - what most people do. Might be optional, might also let people use - MongoDB for this if they want. -
  • -
- - -
- -
-

3.1 Why python

-
- - -

-Because I (Chris Webber) know Python, love Python, am capable of -actually making this thing happen in Python (I've worked on a lot of -large free software web applications before in Python, including -Miro Community, the Miro Guide, a large portion of -Creative Commons' site, and a whole bunch of things while working at -Imaginary Landscape). I know Python, I can make this happen in -Python, me starting a project like this makes sense if it's done in -Python. -

-

-You might say that PHP is way more deployable, that rails has way more -cool developers riding around on fixie bikes, and all of those things -are true, but I know Python, like Python, and think that Python is -pretty great. I do think that deployment in Python is not as good as -with PHP, but I think the days of shared hosting are (thankfully) -coming to an end, and will probably be replaced by cheap virtual -machines spun up on the fly for people who want that sort of stuff, -and Python will be a huge part of that future, maybe even more than -PHP will. The deployment tools are getting better. Maybe we can use -something like Silver Lining. Maybe we can just distribute as .debs -or .rpms. We'll figure it out. -

-

-But if I'm starting this project, which I am, it's gonna be in Python. -

-
- -
- -
-

3.2 Why mongodb

-
- - -

-In case you were wondering, I am not a NOSQL fanboy, I do not go -around telling people that MongoDB is web scale. Actually my choice -for MongoDB isn't scalability, though scaling up really nicely is a -pretty good feature and sets us up well in case large volume sites -eventually do use MediaGoblin. But there's another side of -scalability, and that's scaling down, which is important for -federation, maybe even more important than scaling up in an ideal -universe where everyone ran servers out of their own housing. As a -memory-mapped database, MongoDB is pretty hungry, so actually I spent -a lot of time debating whether the inability to scale down as nicely -as something like SQL has with sqlite meant that it was out. -

-

-But I decided in the end that I really want MongoDB, not for -scalability, but for flexibility. Schema evolution pains in SQL are -almost enough reason for me to want MongoDB, but not quite. The real -reason is because I want the ability to eventually handle multiple -media types through MediaGoblin, and also allow for plugins, without -the rigidity of tables making that difficult. In other words, -something like: -

- - - -
{"title": "Me talking until you are bored",
- "description": "blah blah blah",
- "media_type": "audio",
- "media_data": {
-     "length": "2:30",
-     "codec": "OGG Vorbis"},
- "plugin_data": {
-     "licensing": {
-         "license": "http://creativecommons.org/licenses/by-sa/3.0/"}}}
-
- - - -

-Being able to just dump media-specific information in a media_data -hashtable is pretty great, and even better is having a plugin system -where you can just let plugins have their own entire key-value space -cleanly inside the document that doesn't interfere with anyone else's -stuff. If we were to let plugins to deposit their own information -inside the database, either we'd let plugins create their own tables -which makes SQL migrations even harder than they already are, or we'd -probably end up creating a table with a column for key, a column for -value, and a column for type in one huge table called "plugin_data" or -something similar. (Yo dawg, I heard you liked plugins, so I put a -database in your database so you can query while you query.) Gross. -

-

-I also don't want things to be too lose so that we forget or lose the -structure of things, and that's one reason why I want to use MongoKit, -because we can cleanly define a much structure as we want and verify -that documents match that structure generally without adding too much -bloat or overhead (mongokit is a pretty lightweight wrapper and -doesn't inject extra mongokit-specific stuff into the database, which -is nice and nicer than many other ORMs in that way). -

-
- -
- -
-

3.3 Why wsgi minimalism / Why not Django

-
- - -

-If you notice in the technology list above, I list a lot of components -that are very Django-like, but not actually Django components. What -can I say, I really like a lot of the ideas in Django! Which leads to -the question: why not just use Django? -

-

-While I really like Django's ideas and a lot of its components, I also -feel that most of the best ideas in Django I want have been -implemented as good or even better outside of Django. I could just -use Django and replace the templating system with Jinja2, and the form -system with wtforms, and the database with MongoDB and MongoKit, but -at that point, how much of Django is really left? -

-

-I also am sometimes saddened and irritated by how coupled all of -Django's components are. Loosely coupled yes, but still coupled. -WSGI has done a good job of providing a base layer for running -applications on and if you know how to do it yourself it's not hard or -many lines of code at all to bind them together without any framework -at all (not even say Pylons, Pyramid, or Flask which I think are still -great projects, especially for people who want this sort of thing but -have no idea how to get started). And even at this already really -early stage of writing MediaGoblin, that glue work is mostly done. -

-

-Not to say I don't think Django isn't great for a lot of things. For -a lot of stuff, it's still the best, but not for MediaGoblin, I think. -

-

-One thing that Django does super well though is documentation. It -still has some faults, but even with those considered I can hardly -think of any other project in Python that has as nice of documentation -as Django. It may be worth -learning some lessons on documentation from Django, on that note. -

-

-I'd really like to have a good, thorough hacking-howto and -deployment-howto, especially in the former making some notes on how to -make it easier for Django hackers to get started. -

-
-
-
-

Author: Christopher Allan Webber

-

Org version 7.5 with Emacs version 24

-Validate XHTML 1.0 -
-
- - From 829d50f350bf9a98580a01906218aca150b1ea89 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 12 May 2011 07:17:02 -0500 Subject: [PATCH 0205/2731] Fixing tyop in README... thanks Daniel Neel! Also clarifying that our public alpha may be in October, which is what we've said elsewhere. --- README | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README b/README index c6e073a0..2ef6f78e 100644 --- a/README +++ b/README @@ -12,7 +12,7 @@ What is GNU MediaGoblin? * Federated with OStatus! * Customizable! * A place for people to collaborate and show off original and derived - creations Free, as in freedom. We’re a GNU project in the making, + creations. Free, as in freedom. We’re a GNU project in the making, afterall. @@ -20,7 +20,7 @@ Is it ready for me to use? ========================== Not yet! We're working on it and we hope to have a usable system by -September 2011. +September / October 2011. Can I help/hang out/participate/whisper sweet nothings in your ear? From 20c834ffe409c55e7e9dc6e4110f90f7dd177f35 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 12 May 2011 09:18:53 -0500 Subject: [PATCH 0206/2731] Add the jinja2 extension to the jinja loader --- mediagoblin/util.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 8695180a..63f0f9c5 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -48,7 +48,9 @@ def get_jinja_env(user_template_path=None): else: loader = jinja2.PackageLoader('mediagoblin', 'templates') - return jinja2.Environment(loader=loader, autoescape=True) + return jinja2.Environment( + loader=loader, autoescape=True, + extensions=['jinja2.ext.i18n']) def setup_user_in_request(request): @@ -180,3 +182,4 @@ def send_email(from_addr, to_addrs, subject, message_body): else: return mhost.sendmail(from_addr, to_addrs, message.as_string()) + From 84d4f04edc468ba24685158fe379d37acb0db538 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 12 May 2011 09:44:04 -0500 Subject: [PATCH 0207/2731] Added extraction stuff that's not used but appears to work :) --- babel.ini | 13 +++++++++++++ setup.py | 4 ++++ 2 files changed, 17 insertions(+) create mode 100644 babel.ini diff --git a/babel.ini b/babel.ini new file mode 100644 index 00000000..666270df --- /dev/null +++ b/babel.ini @@ -0,0 +1,13 @@ +# Extraction from Python source files +[python: mediagoblin/**.py] +# Extraction from Genshi HTML and text templates +[jinja2: mediagoblin/templates/**.html] +# Extract jinja templates (html) +encoding = utf-8 +[jinja2: mediagoblin/templates/**.txt] +# Extract jinja templates (text) +encoding = utf-8 + +# # Extraction from JavaScript files +# [javascript: mediagoblin/static/js/**.js] +# extract_messages = $._, jQuery._ \ No newline at end of file diff --git a/setup.py b/setup.py index 7b483a57..7d38e526 100644 --- a/setup.py +++ b/setup.py @@ -38,6 +38,7 @@ setup( 'jinja2', 'sphinx', 'PIL', + 'Babel', ], test_suite='nose.collector', @@ -50,5 +51,8 @@ setup( [zc.buildout] make_user_dev_dirs = mediagoblin.buildout_recipes:MakeUserDevDirs + + [babel.extractors] + jinja2 = jinja2.ext:babel_extract """, ) From 36bb98fbbad56d6721c73d7b8877e8d2856d7578 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 12 May 2011 09:48:54 -0500 Subject: [PATCH 0208/2731] Translate the welcome message (extracts successfully!) --- mediagoblin/templates/mediagoblin/root.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index 2cb0a9c0..e833e3fe 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -18,7 +18,7 @@ {% extends "mediagoblin/base.html" %} {% block mediagoblin_content %} -

Welcome to GNU MediaGoblin!

+

{% trans %}Welcome to GNU MediaGoblin!{% endtrans %}

{% if request.user %}

From 95aa6b56b29eb59ea14acad078e645af0a35e5b9 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 12 May 2011 10:05:35 -0500 Subject: [PATCH 0209/2731] buildout instructions come first since it's easier if it does work --- docs/hackinghowto.rst | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index d829b1c0..b34ce93a 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -215,14 +215,13 @@ To do this, do:: Running the server ================== -If you did virtualenv, run:: - - paster serve mediagoblin.ini --reload - If you did buildout, run:: ./bin/paster serve mediagoblin.ini --reload +If you did virtualenv, run:: + + paster serve mediagoblin.ini --reload Running celeryd =============== @@ -231,26 +230,24 @@ You need to do this if you want your media to process and actually show up. It's probably a good idea in development to have the web server (above) running in one terminal and celeryd in another window. -If you did virtualenv, run:: - - CELERY_CONFIG_MODULE=mediagoblin.celery_setup.from_celery celeryd - If you did buildout, run:: CELERY_CONFIG_MODULE=mediagoblin.celery_setup.from_celery ./bin/celeryd +If you did virtualenv, run:: + + CELERY_CONFIG_MODULE=mediagoblin.celery_setup.from_celery celeryd Running the test suite ====================== -If you did virtualenv, run:: - - nosetests - If you did buildout, run:: ./bin/nosetests +If you did virtualenv, run:: + + nosetests Troubleshooting =============== From 1fc336e7e5c3fb385888976d740eb4df791a701d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 12 May 2011 10:20:03 -0500 Subject: [PATCH 0210/2731] adding master.po translations file --- translations/master.po | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 translations/master.po diff --git a/translations/master.po b/translations/master.po new file mode 100644 index 00000000..0e242fee --- /dev/null +++ b/translations/master.po @@ -0,0 +1,23 @@ +# Translations template for PROJECT. +# Copyright (C) 2011 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# FIRST AUTHOR , 2011. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PROJECT VERSION\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2011-05-12 10:17-0500\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 0.9.6\n" + +#: mediagoblin/templates/mediagoblin/root.html:21 +msgid "Welcome to GNU MediaGoblin!" +msgstr "" + From 23d23dcf6bbf136eed0759515da73eff08dd328f Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 12 May 2011 10:22:56 -0500 Subject: [PATCH 0211/2731] Moving translations to mediagoblin/translations --- {translations => mediagoblin/translations}/master.po | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {translations => mediagoblin/translations}/master.po (100%) diff --git a/translations/master.po b/mediagoblin/translations/master.po similarity index 100% rename from translations/master.po rename to mediagoblin/translations/master.po From 5e593201a6b85ad3860d8b230dc7ff34c0397146 Mon Sep 17 00:00:00 2001 From: Daniel Neel Date: Thu, 12 May 2011 14:23:52 -0400 Subject: [PATCH 0212/2731] Fixed a typo in docs/mediagoblin.rst "...their data and that measn someone..." > "...their data and that means someone..." --- docs/mediagoblin.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/mediagoblin.rst b/docs/mediagoblin.rst index df2190c1..1b17d606 100644 --- a/docs/mediagoblin.rst +++ b/docs/mediagoblin.rst @@ -26,7 +26,7 @@ Why are we doing this? Centralization and proprietization of media on the internet is a serious problem and makes the web go from a system of extreme resilience to a system of frightening fragility. We believe people -should be able to own their data and that measn someone has to build +should be able to own their data and that means someone has to build the tools to make it possible. We decide that in this case, that someone would be us! From 49fa1a00731418b227d5a41c0867d1c548bcd9f4 Mon Sep 17 00:00:00 2001 From: Daniel Neel Date: Thu, 12 May 2011 14:29:54 -0400 Subject: [PATCH 0213/2731] Fixed another typo in docs/mediagoblin.rst "We decide that in this case, that someone would be us!" > "We decided that in this case, that someone would be us!" --- docs/mediagoblin.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/mediagoblin.rst b/docs/mediagoblin.rst index 1b17d606..ea9c83a7 100644 --- a/docs/mediagoblin.rst +++ b/docs/mediagoblin.rst @@ -27,7 +27,7 @@ Centralization and proprietization of media on the internet is a serious problem and makes the web go from a system of extreme resilience to a system of frightening fragility. We believe people should be able to own their data and that means someone has to build -the tools to make it possible. We decide that in this case, that +the tools to make it possible. We decided that in this case, that someone would be us! From c19eed5283aa3a389f4f4f3e9958575797f1132b Mon Sep 17 00:00:00 2001 From: Daniel Neel Date: Thu, 12 May 2011 14:35:39 -0400 Subject: [PATCH 0214/2731] Fixed a typo in docs/contributinghowto.rst "it'd" > "it's" --- docs/contributinghowto.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/contributinghowto.rst b/docs/contributinghowto.rst index 56a80b91..e980a5e0 100644 --- a/docs/contributinghowto.rst +++ b/docs/contributinghowto.rst @@ -59,7 +59,7 @@ Here are some things you can do today: **Spread the word** The seductive call of Free Software services is a powerful - one, but many cannot hear it because it'd drowned out by the + one, but many cannot hear it because it's drowned out by the rush hour traffic honking of proprietary walled gardens and faux free services. Yuck! Be the sweet chirrup of the bird amidst the din! Tell others that there is a better way to From 016617a6c943f75da4acff1eb5703ae900ccf7c8 Mon Sep 17 00:00:00 2001 From: Daniel Neel Date: Thu, 12 May 2011 14:46:02 -0400 Subject: [PATCH 0215/2731] Changed "Foreward" to "Foreword" Figured this was a typo. If not, feel free to skip this commit. --- docs/foreward.rst | 46 ---------------------------------------------- 1 file changed, 46 deletions(-) delete mode 100644 docs/foreward.rst diff --git a/docs/foreward.rst b/docs/foreward.rst deleted file mode 100644 index d2b9c417..00000000 --- a/docs/foreward.rst +++ /dev/null @@ -1,46 +0,0 @@ -========== - Foreward -========== - -About this manual -================= - -This is the GNU MediaGoblin manual. This documentation targets the -following groups of individuals: - -* people who want to use the software -* people who want to deploy the software -* contributors - -This manual is a living document and is in the ``mediagoblin`` -repository in the ``docs/`` directory. - - -Who wrote this documentation? -============================= - -In no particular order: - -* Chris -* Will -* Deb -* Greg -* Karen -* Matt -* Asheesh - - -I found an error in the docs---who do I tell? -============================================= - -There are a few ways---please pick the one most convenient to you! - -1. Write up a bug report in the bug tracker at http://bugs.foocorp.net/ . -2. Tell someone on IRC ``#mediagoblin`` on Freenode. -3. Send an email to Will ``willg at bluesock dot org``. - -When you tell us about your issue, please let us know: - -* where you are looking (in git? url of the web-page?) -* what the issue is -* your thoughts on how to resolve it From c6d266f6518673ded665d7aa63c91c2aaf7dc403 Mon Sep 17 00:00:00 2001 From: Daniel Neel Date: Thu, 12 May 2011 14:46:59 -0400 Subject: [PATCH 0216/2731] Fixed previous broken commit Made a mistake with the last commit, fixed here. --- docs/foreword.rst | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 docs/foreword.rst diff --git a/docs/foreword.rst b/docs/foreword.rst new file mode 100644 index 00000000..1d423f08 --- /dev/null +++ b/docs/foreword.rst @@ -0,0 +1,46 @@ +========== + Foreword +========== + +About this manual +================= + +This is the GNU MediaGoblin manual. This documentation targets the +following groups of individuals: + +* people who want to use the software +* people who want to deploy the software +* contributors + +This manual is a living document and is in the ``mediagoblin`` +repository in the ``docs/`` directory. + + +Who wrote this documentation? +============================= + +In no particular order: + +* Chris +* Will +* Deb +* Greg +* Karen +* Matt +* Asheesh + + +I found an error in the docs---who do I tell? +============================================= + +There are a few ways---please pick the one most convenient to you! + +1. Write up a bug report in the bug tracker at http://bugs.foocorp.net/ . +2. Tell someone on IRC ``#mediagoblin`` on Freenode. +3. Send an email to Will ``willg at bluesock dot org``. + +When you tell us about your issue, please let us know: + +* where you are looking (in git? url of the web-page?) +* what the issue is +* your thoughts on how to resolve it From 434fb405e3f0c3e6ff22a6a1fcf91fc84bbdca86 Mon Sep 17 00:00:00 2001 From: Daniel Neel Date: Thu, 12 May 2011 14:48:50 -0400 Subject: [PATCH 0217/2731] Updated table of contents Updated TOC to match "Foreward" > "Foreword" --- docs/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.rst b/docs/index.rst index 16c8ca16..2f84d6a6 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -11,7 +11,7 @@ Table of Contents: .. toctree:: :maxdepth: 2 - foreward + foreword mediagoblin contributinghowto deploymenthowto From 84440a68f71eb4cb3bf036ea9918ec28948cacd1 Mon Sep 17 00:00:00 2001 From: Daniel Neel Date: Thu, 12 May 2011 14:52:51 -0400 Subject: [PATCH 0218/2731] Edits to "What's where" diagram in docs/codebase.rst Added comment symbols to distinguish comments from directory names. Changed wording a bit on one part. --- docs/codebase.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/codebase.rst b/docs/codebase.rst index 1f6ce220..37eaf4d2 100644 --- a/docs/codebase.rst +++ b/docs/codebase.rst @@ -79,22 +79,22 @@ After you've run buildout, you're faced with the following directory tree:: mediagoblin/ - |- mediagoblin/ source code + |- mediagoblin/ #source code | |- tests/ | |- templates/ | |- auth/ | \- submit/ - |- docs/ documentation + |- docs/ #documentation | - | the rest of these directories are generated by + | #the below directories are generated by | buildout. | - |- bin/ scripts + |- bin/ #scripts |- develop-eggs/ |- eggs/ |- mediagoblin.egg-info/ |- parts/ - |- user_dev/ sessions, etc + |- user_dev/ #sessions, etc As you can see, all the code for GNU MediaGoblin is in the From bdcd615c3cf290565025a46aa03f986c472be7fc Mon Sep 17 00:00:00 2001 From: Daniel Neel Date: Thu, 12 May 2011 14:54:59 -0400 Subject: [PATCH 0219/2731] Update to previous commit To add an extra comment symbol. --- docs/codebase.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codebase.rst b/docs/codebase.rst index 37eaf4d2..4f5f215f 100644 --- a/docs/codebase.rst +++ b/docs/codebase.rst @@ -87,7 +87,7 @@ tree:: |- docs/ #documentation | | #the below directories are generated by - | buildout. + | #buildout. | |- bin/ #scripts |- develop-eggs/ From 2de317f2f35cfceffdda2c3990ad32b661161fb8 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 12 May 2011 14:25:28 -0500 Subject: [PATCH 0220/2731] I probably shouldn't break the main page since we don't have the gettext thing in place yet. --- mediagoblin/templates/mediagoblin/root.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index e833e3fe..44d26a65 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -18,7 +18,10 @@ {% extends "mediagoblin/base.html" %} {% block mediagoblin_content %} -

{% trans %}Welcome to GNU MediaGoblin!{% endtrans %}

+ +

Welcome to GNU MediaGoblin!

+ {# +

{% trans %}Welcome to GNU MediaGoblin!{% endtrans %}

#} {% if request.user %}

From 21919313dfc18c9f9303cbbb2591c0410379f768 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 12 May 2011 14:49:37 -0500 Subject: [PATCH 0221/2731] Fix the email debug inbox --- mediagoblin/util.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 63f0f9c5..946216ba 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -172,7 +172,7 @@ def send_email(from_addr, to_addrs, subject, message_body): if TESTS_ENABLED: EMAIL_TEST_INBOX.append(message) - elif mgoblin_globals.email_debug_mode: + if getattr(mgoblin_globals, 'email_debug_mode', False): print u"===== Email =====" print u"From address: %s" % message['From'] print u"To addresses: %s" % message['To'] @@ -180,6 +180,4 @@ def send_email(from_addr, to_addrs, subject, message_body): print u"-- Body: --" print message.get_payload(decode=True) - else: - return mhost.sendmail(from_addr, to_addrs, message.as_string()) - + return mhost.sendmail(from_addr, to_addrs, message.as_string()) From 8b28bee4c1de6f1190091f5c17c0cf0f948c7071 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 12 May 2011 14:57:58 -0500 Subject: [PATCH 0222/2731] Added some locale determination tools --- mediagoblin/tests/test_util.py | 26 ++++++++++++++++ mediagoblin/util.py | 56 ++++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+) diff --git a/mediagoblin/tests/test_util.py b/mediagoblin/tests/test_util.py index 5bc31fd6..ff40a677 100644 --- a/mediagoblin/tests/test_util.py +++ b/mediagoblin/tests/test_util.py @@ -69,3 +69,29 @@ I hope you like unit tests JUST AS MUCH AS I DO!""" assert mbox_message.get_payload(decode=True) == """HAYYY GUYS! I hope you like unit tests JUST AS MUCH AS I DO!""" + + +def test_locale_to_lower_upper(): + """ + Test cc.i18n.util.locale_to_lower_upper() + """ + assert util.locale_to_lower_upper('en') == 'en' + assert util.locale_to_lower_upper('en_US') == 'en_US' + assert util.locale_to_lower_upper('en-us') == 'en_US' + + # crazy renditions. Useful? + assert util.locale_to_lower_upper('en-US') == 'en_US' + assert util.locale_to_lower_upper('en_us') == 'en_US' + + +def test_locale_to_lower_lower(): + """ + Test cc.i18n.util.locale_to_lower_lower() + """ + assert util.locale_to_lower_lower('en') == 'en' + assert util.locale_to_lower_lower('en_US') == 'en-us' + assert util.locale_to_lower_lower('en-us') == 'en-us' + + # crazy renditions. Useful? + assert util.locale_to_lower_lower('en-US') == 'en-us' + assert util.locale_to_lower_lower('en_us') == 'en-us' diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 63f0f9c5..2b7948c8 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -183,3 +183,59 @@ def send_email(from_addr, to_addrs, subject, message_body): else: return mhost.sendmail(from_addr, to_addrs, message.as_string()) + +################### +# Translation tools +################### + + +def locale_to_lower_upper(locale): + """ + Take a locale, regardless of style, and format it like "en-us" + """ + if '-' in locale: + lang, country = locale.split('-', 1) + return '%s_%s' % (lang.lower(), country.upper()) + elif '_' in locale: + lang, country = locale.split('_', 1) + return '%s_%s' % (lang.lower(), country.upper()) + else: + return locale.lower() + + +def locale_to_lower_lower(locale): + """ + Take a locale, regardless of style, and format it like "en_US" + """ + if '_' in locale: + lang, country = locale.split('_', 1) + return '%s-%s' % (lang.lower(), country.lower()) + else: + return locale.lower() + + +def get_locale_from_request(request): + """ + Figure out what target language is most appropriate based on the + request + """ + request_form = request.GET or request.POST + + if request_form.has_key('lang'): + return locale_to_lower_upper(request_form['lang']) + + accept_lang_matches = request.accept_language.best_matches() + + # Your routing can explicitly specify a target language + if request.matchdict.has_key('target_lang'): + target_lang = request.matchdict['target_lang'] + elif request.session.has_key('target_lang'): + target_lang = request.session['target_lang'] + # Pull the first acceptable language + elif accept_lang_matches: + target_lang = accept_lang_matches[0] + # Fall back to English + else: + target_lang = 'en' + + return make_locale_lower_upper_style(target_lang) From 0e0e3d9aadd481353c9a4a44b37dcb68c1efbaab Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 12 May 2011 15:17:07 -0500 Subject: [PATCH 0223/2731] Separation between setting up the template env and the template loader for a glorious future where we have gettext in template context --- mediagoblin/app.py | 7 +++++-- mediagoblin/util.py | 20 ++++++++++++++------ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 2a2f21cc..d124558d 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -40,7 +40,7 @@ class MediaGoblinApp(object): email_sender_address, email_debug_mode, user_template_path=None): # Get the template environment - self.template_env = util.get_jinja_env(user_template_path) + self.template_loader = util.get_jinja_loader(user_template_path) # Set up storage systems self.public_store = public_store @@ -103,7 +103,10 @@ class MediaGoblinApp(object): # Attach self as request.app # Also attach a few utilities from request.app for convenience? request.app = self - request.template_env = self.template_env + request.locale = util.get_locale_from_request(request) + + request.template_env = util.get_jinja_env( + self.template_loader, request.locale) request.db = self.db request.staticdirect = self.staticdirector diff --git a/mediagoblin/util.py b/mediagoblin/util.py index f02b5f51..ac977bdb 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -33,23 +33,31 @@ def _activate_testing(): TESTS_ENABLED = True -def get_jinja_env(user_template_path=None): +def get_jinja_loader(user_template_path=None): """ - Set up the Jinja environment, possibly allowing for user + Set up the Jinja template loaders, possibly allowing for user overridden templates. (In the future we may have another system for providing theming; for now this is good enough.) """ if user_template_path: - loader = jinja2.ChoiceLoader( + return jinja2.ChoiceLoader( [jinja2.FileSystemLoader(user_template_path), jinja2.PackageLoader('mediagoblin', 'templates')]) else: - loader = jinja2.PackageLoader('mediagoblin', 'templates') + return jinja2.PackageLoader('mediagoblin', 'templates') + +def get_jinja_env(template_loader, locale): + """ + Set up the Jinja environment, + + (In the future we may have another system for providing theming; + for now this is good enough.) + """ return jinja2.Environment( - loader=loader, autoescape=True, + loader=template_loader, autoescape=True, extensions=['jinja2.ext.i18n']) @@ -237,4 +245,4 @@ def get_locale_from_request(request): else: target_lang = 'en' - return make_locale_lower_upper_style(target_lang) + return locale_to_lower_upper(target_lang) From e461b7771300ab75777b01f4732fdcbc358064f7 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 12 May 2011 15:26:15 -0500 Subject: [PATCH 0224/2731] moving mediagoblin.po to a filename that makes sense --- .../translations/{master.po => en/LC_MESSAGES/mediagoblin.po} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mediagoblin/translations/{master.po => en/LC_MESSAGES/mediagoblin.po} (100%) diff --git a/mediagoblin/translations/master.po b/mediagoblin/translations/en/LC_MESSAGES/mediagoblin.po similarity index 100% rename from mediagoblin/translations/master.po rename to mediagoblin/translations/en/LC_MESSAGES/mediagoblin.po From b77eec653df14059296fc3185ff9817edfa0825b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 12 May 2011 22:33:30 -0500 Subject: [PATCH 0225/2731] Load gettext, and load it into the template environment --- mediagoblin/globals.py | 9 +++++ mediagoblin/templates/mediagoblin/root.html | 4 +-- .../en/LC_MESSAGES/mediagoblin.mo | Bin 0 -> 502 bytes .../en/LC_MESSAGES/mediagoblin.po | 4 +-- mediagoblin/util.py | 33 +++++++++++++++++- 5 files changed, 44 insertions(+), 6 deletions(-) create mode 100644 mediagoblin/translations/en/LC_MESSAGES/mediagoblin.mo diff --git a/mediagoblin/globals.py b/mediagoblin/globals.py index 59a94558..80d1f01d 100644 --- a/mediagoblin/globals.py +++ b/mediagoblin/globals.py @@ -2,6 +2,9 @@ In some places, we need to access the database, public_store, queue_store """ +import gettext +import pkg_resources + ############################# # General mediagoblin globals ############################# @@ -16,6 +19,12 @@ database = None public_store = None queue_store = None +# gettext +translations = gettext.find( + 'mediagoblin', + pkg_resources.resource_filename( + 'mediagoblin', 'translations'), ['en']) + def setup_globals(**kwargs): from mediagoblin import globals as mg_globals diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index 44d26a65..fa78bda2 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -19,9 +19,7 @@ {% block mediagoblin_content %} -

Welcome to GNU MediaGoblin!

- {# -

{% trans %}Welcome to GNU MediaGoblin!{% endtrans %}

#} +

{% trans %}Welcome to GNU MediaGoblin!{% endtrans %}

{% if request.user %}

diff --git a/mediagoblin/translations/en/LC_MESSAGES/mediagoblin.mo b/mediagoblin/translations/en/LC_MESSAGES/mediagoblin.mo new file mode 100644 index 0000000000000000000000000000000000000000..fb7046cdd069d85b478d03ce838a08b13736f58b GIT binary patch literal 502 zcmaJ;%TB^T6s^Wpmu_`&*=gcn+eCu{CAC;T}Vev5;e zpc`&-l5>)i`#AUW^yJ+#b!>2MaJ3VEs$uwhMGT3jq}$+)FzeM!`M>x9ZqkDKrYR$98QF()g;c*9GIE4(St9C2D`8m!!7$?e<-w lB7sO{#zjt{w&2\n" "Language-Team: LANGUAGE \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 0.9.6\n" -#: mediagoblin/templates/mediagoblin/root.html:21 +#: mediagoblin/templates/mediagoblin/root.html:22 msgid "Welcome to GNU MediaGoblin!" msgstr "" diff --git a/mediagoblin/util.py b/mediagoblin/util.py index ac977bdb..8c6ec6cc 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -15,6 +15,8 @@ # along with this program. If not, see . from email.MIMEText import MIMEText +import gettext +import pkg_resources import smtplib import sys @@ -56,10 +58,18 @@ def get_jinja_env(template_loader, locale): (In the future we may have another system for providing theming; for now this is good enough.) """ - return jinja2.Environment( + setup_gettext(locale) + + template_env = jinja2.Environment( loader=template_loader, autoescape=True, extensions=['jinja2.ext.i18n']) + template_env.install_gettext_callables( + mgoblin_globals.translations.gettext, + mgoblin_globals.translations.ngettext) + + return template_env + def setup_user_in_request(request): """ @@ -196,6 +206,10 @@ def send_email(from_addr, to_addrs, subject, message_body): ################### +TRANSLATIONS_PATH = pkg_resources.resource_filename( + 'mediagoblin', 'translations') + + def locale_to_lower_upper(locale): """ Take a locale, regardless of style, and format it like "en-us" @@ -246,3 +260,20 @@ def get_locale_from_request(request): target_lang = 'en' return locale_to_lower_upper(target_lang) + + +def setup_gettext(locale): + """ + Setup the gettext instance based on this locale + """ + # Later on when we have plugins we may want to enable the + # multi-translations system they have so we can handle plugin + # translations too + + # TODO: fallback nicely on translations from pt_PT to pt if not + # available, etc. + this_gettext = gettext.translation( + 'mediagoblin', TRANSLATIONS_PATH, [locale], fallback=True) + + mgoblin_globals.setup_globals( + translations=this_gettext) From 7acdbfd36457720789c183260424e0f78139211a Mon Sep 17 00:00:00 2001 From: Sebastian Spaeth Date: Wed, 11 May 2011 08:39:57 +0200 Subject: [PATCH 0226/2731] Improve user homepage 1) Only consider user's with 'status': 'active'. We don't want to display unconfirmed/blocked users, right? 2) Actually query user's media in the view and display on their home page. 3) Throw an error 404 if we don't find a valid user, rather than saying, "User not found" (from within the template). 4) Pass in medias as media_entries to remain compatible with the 'root' page. Signed-off-by: Sebastian Spaeth --- .../mediagoblin/user_pages/user.html | 15 ++++++++++- mediagoblin/user_pages/views.py | 25 ++++++++++++------- 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 4fa84430..85f05e08 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -19,8 +19,21 @@ {% block mediagoblin_content -%} {% if user %}

User page for '{{ user.username }}'

- {{ user }} + + {#- Should we outsource such a media 'gallery' view to it's own file? + It could be useful for the home page and other views too -#} +
    + {%- for entry in media_entries %} +
  • + + +
  • + {%- endfor %} +
{% else %} + {# This *should* not occur as the view makes sure we pass in a user. #}

Sorry, no such user found.

{% endif %} {% endblock %} diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index cc613c40..2c9792fa 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -14,17 +14,22 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from webob import Response +from webob import Response, exc from mongokit import ObjectId import wtforms def user_home(request): """'Homepage' of a User()""" - user = request.db.User.find_one( - {'username': request.matchdict['user']}) + user = request.db.User.find_one({ + 'username': request.matchdict['user'], + 'status': 'active'}) + if not user: + return exc.HTTPNotFound() - medias = request.db.MediaEntry.find() + medias = request.db.MediaEntry.find({ + 'uploader': user, + 'state': 'processed'}) template = request.template_env.get_template( 'mediagoblin/user_pages/user.html') @@ -32,16 +37,18 @@ def user_home(request): template.render( {'request': request, 'user': user, - 'medias': medias})) + 'media_entries': medias})) def media_home(request): """'Homepage' of a MediaEntry()""" - media = request.db.MediaEntry.find_one( - ObjectId(request.matchdict['m_id'])) + media = request.db.MediaEntry.find_one({ + '_id': ObjectId(request.matchdict['m_id']), + 'state': 'processed'}) - #check that media uploader and user correspond - if media['uploader'].get('username') != request.matchdict['user']: + # Check that media uploader and user correspond. + if not media or \ + media['uploader'].get('username') != request.matchdict['user']: return exc.HTTPNotFound() template = request.template_env.get_template( From 376e6ef296299570ed3e09fca50536bbbf48328a Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 12 May 2011 23:17:53 -0500 Subject: [PATCH 0227/2731] locale rather than target_lang in the get parameters --- mediagoblin/util.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 8c6ec6cc..1f568ed3 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -248,8 +248,8 @@ def get_locale_from_request(request): accept_lang_matches = request.accept_language.best_matches() # Your routing can explicitly specify a target language - if request.matchdict.has_key('target_lang'): - target_lang = request.matchdict['target_lang'] + if request.matchdict.has_key('locale'): + target_lang = request.matchdict['locale'] elif request.session.has_key('target_lang'): target_lang = request.session['target_lang'] # Pull the first acceptable language From bb49e56f8c855ea567d61ad63f93610b31d4eb27 Mon Sep 17 00:00:00 2001 From: Aaron Williamson Date: Mon, 9 May 2011 00:06:38 -0400 Subject: [PATCH 0228/2731] On image submission, do not require title. If none entered, default to filename. --- mediagoblin/models.py | 2 +- mediagoblin/submit/forms.py | 2 +- mediagoblin/submit/views.py | 8 +++++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/mediagoblin/models.py b/mediagoblin/models.py index 69b1f4f0..5b286038 100644 --- a/mediagoblin/models.py +++ b/mediagoblin/models.py @@ -89,7 +89,7 @@ class MediaEntry(Document): 'thumbnail_file': [unicode]} required_fields = [ - 'uploader', 'title', 'created', 'media_type'] + 'uploader', 'created', 'media_type'] default_values = { 'created': datetime.datetime.utcnow, diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py index fe51e7fd..51ca349d 100644 --- a/mediagoblin/submit/forms.py +++ b/mediagoblin/submit/forms.py @@ -21,6 +21,6 @@ import wtforms class SubmitStartForm(wtforms.Form): title = wtforms.TextField( 'Title', - [wtforms.validators.Length(min=1, max=500)]) + [wtforms.validators.Length(min=-1, max=500)]) description = wtforms.TextAreaField('Description of this work') file = wtforms.FileField('File') diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 5e262f12..1b28e339 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -14,7 +14,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . - +from os.path import splitext from cgi import FieldStorage from webob import Response, exc @@ -39,9 +39,11 @@ def submit_start(request): submit_form.file.errors.append( u'You must provide a file.') else: + filename = request.POST['file'].filename + # create entry and save in database entry = request.db.MediaEntry() - entry['title'] = request.POST['title'] + entry['title'] = request.POST['title'] or unicode(splitext(filename)[0]) entry['description'] = request.POST.get('description') entry['media_type'] = u'image' # heh entry['uploader'] = request.user @@ -54,7 +56,7 @@ def submit_start(request): queue_filepath = request.app.queue_store.get_unique_filepath( ['media_entries', unicode(entry['_id']), - secure_filename(request.POST['file'].filename)]) + secure_filename(filename)]) # queue appropriately queue_file = request.app.queue_store.get_file( From a8e2812b054f49e4085bf6b8c0b9e0c5f1b8d312 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 12 May 2011 23:40:47 -0500 Subject: [PATCH 0229/2731] min=0 makes more sense than min=-1 --- mediagoblin/submit/forms.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py index 51ca349d..3fd9ea49 100644 --- a/mediagoblin/submit/forms.py +++ b/mediagoblin/submit/forms.py @@ -21,6 +21,6 @@ import wtforms class SubmitStartForm(wtforms.Form): title = wtforms.TextField( 'Title', - [wtforms.validators.Length(min=-1, max=500)]) + [wtforms.validators.Length(min=0, max=500)]) description = wtforms.TextAreaField('Description of this work') file = wtforms.FileField('File') From 0546833c6ea4dcaaa82861819916760dd62d8fa7 Mon Sep 17 00:00:00 2001 From: Aaron Williamson Date: Fri, 13 May 2011 12:18:52 -0400 Subject: [PATCH 0230/2731] Generate unique slugs for newly submitted images. --- mediagoblin/models.py | 11 ++++++++++- mediagoblin/submit/views.py | 3 +++ mediagoblin/tests/test_util.py | 8 ++++++++ mediagoblin/util.py | 15 ++++++++++++++- mediagoblin/views.py | 1 + setup.py | 1 + 6 files changed, 37 insertions(+), 2 deletions(-) diff --git a/mediagoblin/models.py b/mediagoblin/models.py index 5b286038..1ecabe3e 100644 --- a/mediagoblin/models.py +++ b/mediagoblin/models.py @@ -18,8 +18,9 @@ import datetime, uuid from mongokit import Document, Set +from mediagoblin import util from mediagoblin.auth import lib as auth_lib - +from mediagoblin import globals as mediagoblin_globals ################### # Custom validators @@ -66,6 +67,7 @@ class MediaEntry(Document): structure = { 'uploader': User, 'title': unicode, + 'slug':unicode, 'created': datetime.datetime, 'description': unicode, 'media_type': unicode, @@ -98,6 +100,13 @@ class MediaEntry(Document): def main_mediafile(self): pass + def generate_slug(self): + self['slug'] = util.slugify(self['title']) + + duplicate = mediagoblin_globals.database.media_entries.find_one({'slug': self['slug']}) + + if duplicate: + self['slug'] = "%s-%s" % (self['_id'], self['slug']) REGISTER_MODELS = [MediaEntry, User] diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 1b28e339..95a416e2 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -52,6 +52,9 @@ def submit_start(request): # it to generate the file path entry.save(validate=False) + # Generate a slug from the title + entry.generate_slug() + # Now store generate the queueing related filename queue_filepath = request.app.queue_store.get_unique_filepath( ['media_entries', diff --git a/mediagoblin/tests/test_util.py b/mediagoblin/tests/test_util.py index ff40a677..7b00a074 100644 --- a/mediagoblin/tests/test_util.py +++ b/mediagoblin/tests/test_util.py @@ -70,6 +70,14 @@ I hope you like unit tests JUST AS MUCH AS I DO!""" I hope you like unit tests JUST AS MUCH AS I DO!""" +def test_slugify(): + assert util.slugify('a walk in the park') == 'a-walk-in-the-park' + assert util.slugify('A Walk in the Park') == 'a-walk-in-the-park' + assert util.slugify('a walk in the park') == 'a-walk-in-the-park' + assert util.slugify('a walk in-the-park') == 'a-walk-in-the-park' + assert util.slugify('a w@lk in the park?') == 'a-w-lk-in-the-park' + assert util.slugify(u'a walk in the par\u0107') == 'a-walk-in-the-parc' + assert util.slugify(u'\u00E0\u0042\u00E7\u010F\u00EB\u0066') == 'abcdef' def test_locale_to_lower_upper(): """ diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 1f568ed3..a66e2ba5 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -19,9 +19,10 @@ import gettext import pkg_resources import smtplib import sys - +import re import jinja2 import mongokit +import translitcodec from mediagoblin import globals as mgoblin_globals @@ -107,6 +108,18 @@ def import_component(import_string): func = getattr(module, func_name) return func +_punct_re = re.compile(r'[\t !"#$%&\'()*\-/<=>?@\[\\\]^_`{|},.]+') + +def slugify(text, delim=u'-'): + """ + Generates an ASCII-only slug. Taken from http://flask.pocoo.org/snippets/5/ + """ + result = [] + for word in _punct_re.split(text.lower()): + word = word.encode('translit/long') + if word: + result.append(word) + return unicode(delim.join(result)) ### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ### Special email test stuff begins HERE diff --git a/mediagoblin/views.py b/mediagoblin/views.py index 95d0be7a..7f925bb7 100644 --- a/mediagoblin/views.py +++ b/mediagoblin/views.py @@ -20,6 +20,7 @@ from webob import Response, exc import wtforms from mongokit import ObjectId from mediagoblin import models +import gettext def root_view(request): media_entries = request.db.MediaEntry.find( diff --git a/setup.py b/setup.py index 7d38e526..08887dee 100644 --- a/setup.py +++ b/setup.py @@ -39,6 +39,7 @@ setup( 'sphinx', 'PIL', 'Babel', + 'translitcodec', ], test_suite='nose.collector', From 1013bdaff2f3ab4bb67667b57470d23cf392a3df Mon Sep 17 00:00:00 2001 From: Aaron Williamson Date: Fri, 13 May 2011 14:16:35 -0400 Subject: [PATCH 0231/2731] Minor fomatting fix. --- mediagoblin/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/models.py b/mediagoblin/models.py index 1ecabe3e..4a867323 100644 --- a/mediagoblin/models.py +++ b/mediagoblin/models.py @@ -67,7 +67,7 @@ class MediaEntry(Document): structure = { 'uploader': User, 'title': unicode, - 'slug':unicode, + 'slug': unicode, 'created': datetime.datetime, 'description': unicode, 'media_type': unicode, From 881b6e2c32d8013d6ffaa151fd1b7d78041fed60 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 13 May 2011 15:33:19 -0500 Subject: [PATCH 0232/2731] Fixing changes --- mediagoblin/static/css/base.css | 71 ++++++++++++++++- mediagoblin/static/css/base.css~ | 70 +++++++++++++++++ mediagoblin/static/images/back.png | Bin 0 -> 26165 bytes mediagoblin/static/images/button_green.png | Bin 0 -> 2054 bytes mediagoblin/static/images/button_red.png | Bin 0 -> 1737 bytes mediagoblin/static/images/header_back.png | Bin 0 -> 26226 bytes mediagoblin/static/images/logo.png | Bin 0 -> 58408 bytes mediagoblin/templates/mediagoblin/base.html | 5 +- mediagoblin/templates/mediagoblin/base.html~ | 72 ++++++++++++++++++ .../templates/mediagoblin/media_details.html | 2 +- .../templates/mediagoblin/media_details.html~ | 34 +++++++++ mediagoblin/templates/mediagoblin/root.html | 2 +- mediagoblin/templates/mediagoblin/root.html~ | 56 ++++++++++++++ 13 files changed, 307 insertions(+), 5 deletions(-) create mode 100644 mediagoblin/static/css/base.css~ create mode 100644 mediagoblin/static/images/back.png create mode 100644 mediagoblin/static/images/button_green.png create mode 100644 mediagoblin/static/images/button_red.png create mode 100644 mediagoblin/static/images/header_back.png create mode 100644 mediagoblin/static/images/logo.png create mode 100644 mediagoblin/templates/mediagoblin/base.html~ create mode 100644 mediagoblin/templates/mediagoblin/media_details.html~ create mode 100644 mediagoblin/templates/mediagoblin/root.html~ diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 93b0b1a2..17f9e012 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -1 +1,70 @@ -/* stuff goes here :) */ \ No newline at end of file +body { + background-color: #272727; + background-image: url('back.png'); + color: #f7f7f7; + font-family: sans; + padding:none; + margin:0px; +} + +h1 { + font-family: 'Carter One', arial, serif; + margin-bottom: 20px; + margin-top:50px; +} + +.dottedLine { + width:100%; + height:0px; + border-bottom: dotted 1px #5f5f5f; + position:absolute; + left:0px; + margin-top:-20px; +} + +a { + color: #d12929; + border-bottom: 1px dotted; + text-decoration: none; +} + +.header { + width:100%; + height:60px; + background-image:url('header_back.png'); + padding-top:40px; + margin-bottom:80px; +} + +.container { + width: 800px; + margin-left: auto; + margin-right: auto; +} + +.button { + font-family: 'Carter One', arial, serif; + height: 28px; + min-width: 99px; + box-shadow: 0px 0px 5px #000; + border-radius: 5px; + border: none; + color: #272727; + margin: 10px; + font-size: 1em; + float: left; + display: block; + text-align: center; + padding-top: 4px; + padding-left:11px; + padding-right:11px; +} + +.buttonRed { + background-image: url('button_red.png'); +} + +.buttonGreen { + background-image: url('button_green.png'); +} + diff --git a/mediagoblin/static/css/base.css~ b/mediagoblin/static/css/base.css~ new file mode 100644 index 00000000..17f9e012 --- /dev/null +++ b/mediagoblin/static/css/base.css~ @@ -0,0 +1,70 @@ +body { + background-color: #272727; + background-image: url('back.png'); + color: #f7f7f7; + font-family: sans; + padding:none; + margin:0px; +} + +h1 { + font-family: 'Carter One', arial, serif; + margin-bottom: 20px; + margin-top:50px; +} + +.dottedLine { + width:100%; + height:0px; + border-bottom: dotted 1px #5f5f5f; + position:absolute; + left:0px; + margin-top:-20px; +} + +a { + color: #d12929; + border-bottom: 1px dotted; + text-decoration: none; +} + +.header { + width:100%; + height:60px; + background-image:url('header_back.png'); + padding-top:40px; + margin-bottom:80px; +} + +.container { + width: 800px; + margin-left: auto; + margin-right: auto; +} + +.button { + font-family: 'Carter One', arial, serif; + height: 28px; + min-width: 99px; + box-shadow: 0px 0px 5px #000; + border-radius: 5px; + border: none; + color: #272727; + margin: 10px; + font-size: 1em; + float: left; + display: block; + text-align: center; + padding-top: 4px; + padding-left:11px; + padding-right:11px; +} + +.buttonRed { + background-image: url('button_red.png'); +} + +.buttonGreen { + background-image: url('button_green.png'); +} + diff --git a/mediagoblin/static/images/back.png b/mediagoblin/static/images/back.png new file mode 100644 index 0000000000000000000000000000000000000000..3d7fe844a5d2d449dafb003ac44645d7f568e271 GIT binary patch literal 26165 zcmXtf2UHWy_qL597(wX-Q4o<9K!G4gkt#(xp(GHRbVBddLNAI+4@G(nolpY^(o3kJ zgn)vC63UB|2nc-m`=4+3Z1(Kz&d%(;H#5)N``j2^?Uw)=cA6_!t^m~4l=Uyq{r?VX z%FADrNoDrs>8h9hOT{adqZ}KT7nIhTFO{!c{M)}`ioaZz+;mqn^}2F}mf_!V^-4x2 z>t!L8x4M=J6`tZI1J`4)=yR6KA~tUo6K^Fq1j5$U`-+mMt(CX!>j!?0-VP65s%z;Q zzrB6=(1R=L$_j@5^AQBRFKq2ogdY73_0>W2mW+Zlp{leI?N2|)qLC~A3TG5_i|+B= zn_Fl1H>;hd%UUmvb1shm?5*@|1k2@U7f){N?CcyI9r>Ou?PHIF+s_GoegC_)xU{6R zwtsxEx973H@8{p9IEHErg-ds3!GMM~#;W$_hgTWAjmsUNcvb2kl zIhfYg=ULdbNfL>)vA4JP?-eKi8vNJNO5exHRnO-0-SfX2-qM(k4vP-A>>hGRSXf6u zPC)8$#qmYR(J|(D;q>%$5|79KtJGq&AGCj5M;VgS+S)pKc6N4nO5BHASjeNyXSRO+ z{CRMG9{R6Cgry~m97nmZ?8Y$g#SwPRba!{RszcHl9P|wP4Ew*PySuwbPDh|4*wN+; zZ2DP|3uPe5_Yt`y?tbSf%_^}{&IBw{A}lDVmAz=kKIiP8g#Y~U z4-5&xWapZ8A1|H7AJ5SK{U`K~_vI_GGQ9|482Na0b+y-Ir0!D1OJ-9aKYpCNYj$BGl-S0Z6Tk9O@XqfVH zkbMPB*M&0v-{ZjA?c{lTi?SAB`7f_5?9Xb&o3%gFaIpEva$sK@_+VC=r}*D z`Uv`%mR6gqy)txex-!$^B?9Xf00k;V4z1SqmY*#gR|Xs(FG7nrUo2VO&Pctq{xkL= ztd~SiN$Pm4mWf1EDH7-37PZ2sQ%;rjekpEI$(R0*j3qHVq45P?Sd)pj8sIh2|mHS z7W%;_2b%_qf8eajvbhC)lWat{s*z(56X;$SGZHP4T|{YNm;$o~1&yk5)AIXJ*2s zu_JdkzvcMtQ0&a5ojHD%O?AwR2bk;;7;c9I?nVZNq&|7aFwS~pp3}kg>LRN^)w}b1 zqsQU*O)d9R>y=Sn?Hz9M;k4_9fbPJq$Cz&4fr4x zpR?O8{_1zYEiORB$s!;mc5~z#dzFm?|G}c!@LJ_t2G+8@lC`vbDXyK0)Mi!r8JY6z zZ+~mKLKAu}t!YEXs5CduwLH!!m2lGCW=3$qM6-My(C?0eRvp&`CPO;|BZTMw?q7}% zUO!17Dxk=Tgi%Sr3ujS4gp(ukSH>(DT^W@n9~K(getz7hnNziB`FS#+k*L;tzHd)7 z=iEGQeRs!3Xf2WL19iG2Rpwfj?yK%Gud)ATPw@T>N=NKKk!2Ye_P@;Sor~a|%yd%{ zF1Ye|WTwiZgK3at4c6ZICS*M&TC!6o*}_smQ3)NF^QV1>Qz8~R4FuJMtDc2$S;%UF zOqa$LVIugyqZQMUd*l$n=l-2rgy8)WQ9(<6@v>cr zayeHXUnyrN{Up6lUQC|TmszqO;2~^G=m5XJD8Ay^oH@!XV^i3o>w`a=8+h)$%W(hb zYLTc!N?G++2c_=X{~4h3GM>JYs%z|PO1(rX@#(&)0olP-Um4Y`BcfHlz`c}V9XP`rmINhE- zHZ!JsFi{K1mUN1z&RXnhvl5E$nS4qa+W?#al4#!pp99IR{f6Y1(e;O=(BViI?pKFs zEeGTU)4_TWxL$n1;jVeUkS+bM!P#2764fL~$)k zAgB7r4K7kqOxM9$U!H0C*aW%uz?0y@o499!CsNBU?0*14O-cA}9%~~JUANiS&G2u3 z)p&bYmxTBWPE8bxfma!%SsQ#a%)RyhpkYYeP%)2amWqnID-nG;Ri6A)|YSwG5MLUi;#Vn43iZFU%g!)70Cc@cl{P#H; zn>%mws3OJRKZxPX#I6Y@=fjI2>k8gZd#ESkA`Wu80=+W392rmt5pPh-)|>4PZg62= z6Fh>kRVtzMlyiUdkVD@y{+NPBqY1g|B>o`KP#_`KKx9{DlC?546ySh?EVZ7RU&~|h z3`MJz2CVjWN|;T}s$Fb|nFJ??;ZFJ|CnvFHZFI5&LqcOst<1${@yB9ZX!z&5tGqG$ zN8}}VQOkECXGBDt^}29hAk*iR{ON>@r5sw@zw=7^?=0y$FJTq)7%@HYEoQ4LL-y7x zn&}U{c;fx(P45dorS7X*G>$Njluwo+sw;EBRhI9kjw1&nJrWdYCd9{c5=$jAi1v>j z&|Hu}$}NL!&t{%#El3>v=yk^wV)mY@fwmKh6{=yy8a_YgcnHe*J`64D{j)CwZMhs8Pl?va<_}z#61z=I7aS^`!ee@yC&7NEl>flTW!)eZxi}}bYZ@*0cI9q;ip-lS z2+@Svt@I?zdiV6K?PllXR8{o13^c#^((ibWidQ!8*;L%fn)kOxfdkd&j&1n3xwKY} ze9mkf--*k0E0(u&!p8e|H^7)#0E=>XO8`KMSO=UJ|I1ea*R_e;1(pR2kO-GAbrZJ! zxdz?Bxe}{&_=GJq(%QeiH|ppy`8kh^4csH1+J(VpHlP-G@c9X;$_>~s*UP;Zl&eUq zs`aZe!9~cFmT#p|3ah%tO80;gt|_c&R5jt}IxMJ(2F{5Vxnclj=B;`1T4lDaH1r1n zE#sJA;EjcbtoPO9!$3KSno5uI+%&Rq!GdBG>-!T6jdTif5rqkRt@H^!_Er^XvEaiWIMP%L`(%nK zUdf(s7Q1T=Gn_075`F#2l|obDI&B^N!&{+*{L|xzlG95A1{PO{dXm4>bd1Czcwl@VVbF1L%lE+B_wp@UQZkYEb={B zl}cZ07{h;WJ%%a02zmm2|0$4*q%gE7_xb7dmdMr7ca9>;LNPo^sb(ZBjH(*#CB~j4u8al5SWbErMTKoEE&d$kPX0Ex?5eo0`|3twxxv z)om5xwny!?T!iA9;^d=rzN1nD=vz_b{6w;k*jIZu`c}k12rnkOKA!z42DMPY`Cqd; zVjS^o_MI~w^fYi#nLc;&`IH0lVNCY?jwJ=gzFsP(ft?mVv#xshu?rK@bQiPrK@d#O!9I}r(kLs)_Z4O60c8cEU7b8*J1wLMjV#h_cD?*#v#HgrAEJOmKi zQy)nMuo=`q!(5$_!VBglb)bocKl>OPzL6~9)S->bjacFD3SIjoZraV?wv@9gC9%87 z`B4v~*_BzTx(4+=BUN>@2bdtkac8NiuWO0CV6^jZ8{rzJFy2wzwb)iSMEjYPQW`Tx z`K8eLG{8+NT;MTmQkTJ?&>^r1s7mc3zOl&1MJOhU!kZ!y=H*(~)O+9k>cG7p{Bigk zmiqadv+MezZCF#`xtUt@ zVg}|oITr4srSbS&sBTvEFY`S_z0>IiE-df4E9hlv<*YIw;t3icb9TnOS`h2}E!-2R zarnY5L7Ve+?g{S(yeKqm|NhVwL`~&Yr)Sg4o?bJ7TBW3ro$YJ&AFP&w6u5#E*dywP z$A;#+yho={6o{OFZjp@v*my~udUS|;g#!U19csEWo(657s3cRHKv$Tr zNj5cpH%2w9qTzLsE_eS{dU;up^@xF2^PO|6LztPg_#{I(L1ziCC6?uspja1br%E7Trke+EBmaqgWCPba|?Pk|X;K z(UQDIa|z;Kou1Lau)A#-OjdSwwwy#3(Wx*WI)B_qw2Jp;#F~Ff8YDNt_ zDsj!`7ZWo85BvL|dDn$!f`sHS6!ijS)w~9#!9w%n9N!sm-JOSjvxS2REHdcuAxYEm z7c4=!r!zk|Hw(%PK>T7Esln-~`Dd4ZSKYXUtdC1jFDtB%CKA2(+RP$4`F2#q6|E=!~<&Eva>4uFcs2prG8-5rCEVQ%_J%eXv@2b zNg9zQCbIpWW-lFk0(?Tz0ey9+cJ3M5(9=-NGl779?JNlc(AeLX+k!TyP)&%M9k%xw zr$p&t=h1QBtjj=M=S#h+cekC))eHHrTPNLXCBxeTaRAoRw~U}nF~3U4=2hpqPbmw& zukaotz`?5DiiX-nsrJl=mu`!Lvs1E8TXDkm!c@^-w7bKzan0SLd8t{b4oPA}YA|w< z@tWH&+q*@+=EUkFQI5l)IGQ;lnI6egOEf&_k@kqe4K>4Ly zRpcj8kd2xpt0vp)vxQP`x08@28C*$O(Oz{ZS;kQzYa7U6^bU8X;DZO7y!hG0-;vVH z`7~aFU+uXGJU)B^5!Ks?_;7#|6D-WhE#BkYXx7P}FUT*}UdelFSEHD}|4ESPr)_o} z$m56&z&MF5nRFcfV3pt$o{^vCS3oYGUCB#bcOt0 z_VF-B+45MOJM))aO56cJMwX>cOHU&DY;l8bzFjA!q2Dx_Q<90T@BSJ}ueQ41UdRFx3+oy@lew-0xTQ#kz{P|Rm1ZRCL z6w(Vdbex9^O)C~WcHzQvD6YMck(CX}`wFc6V@{wxR+cqESRs}j0Ns@3G$F9L6d~xY zz1(U~X)gQhl9e3b5ox^91ZKg3u_U>2lHgy&y;U<7N0EA- zS|hj97szGRX}PT}fiFHo24&$hBlpU!SuApf;&>Y@83J~`A(q}fP@!NY%JSAbwK{)U z%av1GcbNrWw6(P@)N|5)I=V7op#M=r=Hha$D@t=Dp$7S<(*!o^bD>I0G@&K(I1cO4 zmr-X)?;hT%Pu0zaNc4cOJ7+sv#8-SoEnO@C@M)zH6pe}r`Q7YrCdXOTn=bo6yKhhi zU2sRuYg#SYw%=bEtx8e_nJvZ}CN#k}TqY^SWI&G{l+w|hw9Q(8K3+$(JHFI3VFotj zegeUKT%j6FWf<5DLN1`SeQv-6!;P`rGr zZeM;kerl%)vaxdJ7nGP}`3xpR=v|-LY0n?`nBI9h#jnqE&^E9t_?h5d%oqQwHT2^F z-C-c@M>pBS?fZ_CM)FJl^=#C8E)4tiil*B*;?gnK*5-gHaN80#U-XfYPtQHi<|jbc9=K{eG;0w^_a(O&r@a3j0}Ep zsA#yMN?$k~a+>Hg<>XJ2;Gmk}fc2X-oLy{<1TeAV)6nRcc{N+?n`>0Q1*Npl!*CkM zkwGx;y1s&xDa9;z_!266RK3)QY&+pp_&C6?T_b1Qs;CU>2QrLzah-YA_F47tKLVE1 z6FJ;FcsuATX}oJqm3A|rxuc_lEp{%rYuuCQe$>m?X&Jr4p)w6uZb#drAuF*TO0x+C z6}5bdA+q%?`f*MZ6=%;&rvPgLryU;66_2NWrvYOUu-Mzukd{7hAtZzk7{-eh-pqfi z=h!YmXhbKO-ZxdBDpyF{=j@n?|9~rQ`?~BI4Mi*APbfy>>~0pg41Una zh3<~KGdbdK91A5`gyHyQk=%bCNPra^l(2!3H5lsIvDOGa$;R~;!@SK5sXDIQ1;vlk zM3q}Yb8!l`?02V}I6Xo(ledzMmg^fLZ&nSySobqNK&5yC!8UNnu59Fwk}mT=EI74Y zWe5j&P5WG@HWC#dolsX?(!+a|q%yC#l<=8ns53Nc1eQZ8TCFPKv(}%MPqnvwQi<8j z=g5oms)>-Gpmw^4h(hG3VDKdukT~2B=@lJ=S)X|0ZUL}%QwV0kuKj@qDEG&Ih*l0E1yOUfw{?3{%R_UJP)pwwF5sAP*dVp56 z{BF`iT65+$=&W>$A@Z6fGCGNOy1eAr*3X_U(D_=e&(I|ln&t8T)q*%q2{#P-VQUj~ zj1aH$Q;|+6Fm(jmzA?OO{H+@iJA=Ew9Pzwyuf)Tuy#7ObhL$kqE4_tMilf>BpARxis0%yN-Qza91 zr@pGiVu~Uo!k8)FO27O&>UFCLPLqa;Ib@#49gWj&R>oPka4`^v3)u`+UCeJo7}V^G zhwZ^t>wg@_1xyj~c|!d$w10 zK5~2*YviGFYyerAR-MRV=H2>J6)8M2>2k0{8GJPMd=)K|Zz>YRjvgsva??^`8rowA zj@3jkp)`UViLH$NDe-gPeVwy>5}nEA*PRb2DL^g|*R<7am#sxyxrXGY6brzmTl%*c z)t!JjH9Oe-=szvV1EH!7E`>eiYp~f#%541y1r{@kru1Sgy5GK^gwHpa1Ah)`X?WQP zyUCsbecBD_=2|dYcuPH-v&cZ?U~V2BNYO8ynw3!p*IEV!qAj;f_5zi1Iu0@sxRoN; zmE#4P#XJilSdwQ(OQ8Tc?$NW^rg1|seOPHMg74Rw_)H-8V|j^Sf!>{0UJ@2riB6az zi8ty$NaMF+GRhA;v0gf#bRTp*xdntC}FIs2C5Id=)y;+ zJhm=@7`@I7GWz;0UxU{x0!vG9KAOD1Y(t>MY5Lc;Hg7Cg_v7GJvI zfxnRrK)NGJ$&Xj(c{jj3|NNBjepGQm#oESF_2U9i8!*6m8|k_E@4x%jC>iN)rBj^Fe7geDa2=IWM>U~G8FCa# z>`X6w+eo#bg#XVTx%Uja6!70QAPP8=OL~={aJH3Xur$ENDgdO})y60|Z)cN*rmjyJ zJj)+b0y}@zOH$c6sJtDIFdXAk>h+8I_F={?dqO(N=|cMubL~oKfX&pvV*#!XAB0xr z?>~S3IKIOg&DQP)3z4Ji5L0)`Cr2I*tHjo-|Iy$Hsj z@%m4H4ZU+IUwqn*v=R6`lR&O(yghVRK$3A#wL0Ge0bky8K|W60+DKbTke+BLt^Lcp z)yPKosa1bwLTeH+4QgzDf059!2@?o za8w!xQ`5I{+>Z$yJVG%JJS{@!4iobd!0iKcrTlIDg?twE>Hx%EsEDDnwyjoDoNZre z%eB$zEe^Gp?ru<<)ds@Fe$K^Tbi&m{VbK&j{EeP9jT_Fv3o4{S4^9G@r@cpp&YA^w zKKtobVX|3yC6Lqr;G>@lt|I9(d)yRK;3k-<=9K)izFNO>`vSubF)VHF zG&`B=ByWH2L$J8?{3V&-|F{6)S6<%=`s=Zs0n2Crw)K^BiFaIYtwxf7H6a2~2SMox zUZ8KKeQb~~HjixgqTu2+bX=FPjHJ*EfFM~3f6W8T(T(W5%J#XbkXyx?LZDm&pHH|) zhT0nx4stC|WEs16LfMK2bmcBX{B^WT{;i7&y>4;VvF=Q~h_@A7>Ytv9L?#E64;5yq zA>0KJHa4X{ymH&aF3$OlE^+^8AyeIQ`?mxwFzotl#-yRj24$mm9#!gZv8bSYe>Wwk z@YpQf)p&Jh9tp$CrFgN3Mf-xdb28XQ&5F2Qj3QF$mM3CdC5jSb+0O{OHkkl;7eMBe85!yl~YNly*=V1v={8io$^(TymE>FDSR z->D|(=m=9|jQ!K}%czMCqw_++W^hEi&@ZW9whtdOYgYuJROowVe++Bx)Q%cVXbW$7JrM&&B&=~e>5=nXBK&a*OTOok=mca2F) zL{SLuD#RA2F~88V1${m?INHt^Z*|e(Bov|jeAXeh52<*@>u*0k^)ox`o(XnLdp3I@ zFkEZWk0d(%#R3bLf1&b;Ti<7+tFAE8J1t0Z_WknK{s1Ji6r~6k8PQWpZRsMoNS1LW zt|yPY-n_-~(wIr$a5!&(J>H}_7RFlSDt7gr*tnza zJ()6^UuN7dmAoxW-8&8$^}cCc_yZFj$Zt`;sL`=D;NC*%I}9zG+aDk>J%h9os<{K+;bgAC(?}GYskVu8cEf0i#@KNpB==?wOW}; z6tai8?O!jaS$>P>aodubV^pYjpSIvOl%+zT=S;1 zQS-t%Qk{CC+$Y9W4dZTQ`fgw5IXb0Sw&io;76){_s*!Q?0xpu}B%9;Two(b{{ZhnW z&0z`mN3`S(K$})C&HJ*h+(i@>#&sxH3g+1&v2CIz*e0`BK-K>Zyh>2x@-Se>C10zw ze3LgB%gQ(Ll{=1a0hhh-_oZjfjq%<;UeAWQ4&Rtim;3Dme`aWEng4M2a2Jy{;u6GX zAZr_$vA*V9@P=9qEnO>}LvO)}4=S^Kn;;GFcs;Cg$=J<=OLncCd^fGzCky?qaQ}r< zee5$FbkIaj5eS^`m)YTBR@f9nyaFt#s5QeCqTur=w{Tms~)Rx*Q915~bW!c?7{l@Zh+ ziD9l=SyWCx$%=eCJuq))?{aN9!ehwDVW=uV8)E^8UttPtGB4)E-M-miRcer&r3<^x zeZ7tGVPT%o*A(p)GcqtHAKK5K7A?#lEfn!hSPUYQwA+|EH&{%FjX;1(5M5VfD*#d) zVs?M$HBCf*t-pn5AEl6W8|}@O?V8mHmQpW)_T?1wiX{+zk6Yd)`qk{zvF=f$SUjZL7NICYDWR-xPM zc_A4LyOu$yVi$e*YCg}VNB+m8 z4nYNX13*QpW0mI5;YgJa*L5vs7u*?UD#h2v=h?ViIOdp(6zBdxL(h~I`Ns%_6e*~612lyG>S;7@gd(kF= z)+I7OOBxA<0l)Dsl~L`MP@tWyZ7q73UM2w=Y$yBYGl*NGLjO&&T3nTJmOgTJdH;gx zo*n}t|CoifB)BYm@{-qg0lZH5<9pXevcXjo{^jiIZ8;C|-!2D3Lqo;cwxp*>Mm;J* zs_JeVEhas73G)^DC`dRw>vRcFqp#S&_(d@nDeffunFK0!er^_WbXS-ug2W}XMbKNc z@o6-30cutISbgZ*f>IlCC|qd$qL9oSudV5a*cn#1#l=^OxqhJbjo6eX=hpb#$>HRI zoJiLb9Xx<7;=(NW`*9ZG#b-O<&V!&<6WbecW9eqv5=}Vc8+}j4agPJ}8t1$3BuRBl z(tjPRKBVpw_SOob{x~~k9(C@j#Q2Q~#)Iaz-2m+vW7@14nI5}cBP51RuA_Ky!K1;u zTf3(k6|!*OxHw~p5A8M z850oHzNoD!3{dV>knE)_Wd3V6LN&&^GDUCsa7m)lb=yJkm7KhMm_D;hdy(rl*bfuc zjJk~mJ_DHOb{bvFr+j#`(6(^oxjQ;KrLFpMu_zJ#xJ`a(Og#2;yuM$v45G!2!u+Zv zgYt?#Rqm8EUpDHif-{fNsAkZdd!WZzz>WsCA0YUlBjNp`H91gYnyqji`}X7#xQ`H} zMD3i9v&j624)@?S2IlGXGlC-9%8~CO;uJAT^vv5M(a&iOoxZ4=a%j#qJ>Im};V za$(I^09yLjCM^)W6Lz}Y=*IabkCBGU`3?upk$QDZty$wG!3nl(l-W{KmmET+i?$B| z>X&xY1q`VV^OlukeDIj=}=jMMvzg9P1rwzw!yOK??V0&ACz6_7t4C+=rq>x!a9XTJc44@%w>(m1~v2SDs=(v(MKA**CpWF{ef~!S2{AQr{O+nQob>xZT5H~lsnZHo1+#1QV`EMrO z#MpQ4EP^*O&WF?A)^e&h8Enqku|ms;TU51m1W8Iq&(~q7(FtXJJfMYdg$c&8fAQ|x z`_d(;$}d^Rwyl2^io6laY8W$4na!ER{Jm|;fWwgE zE7y`y0z%Pg=`G_It%zz|bCg|vqT1D^b#`REUB^srIzFjrFBtO7JJ2mA9n5;uf`s6G zT~VR?N#XG7;EycRsMV{u-1`O+e&%Is~P!rjR zzcOT$O~^kgq<+*0ua7A46$zb4QmkxHZ#O(20A|n*mfp2XiCZJjUqe+lw6)>hR8nXX zR>GyhhqU7mu?CeF@-|!4o!qm*bDvr_*kx6DYAclZHD0U@e=kpPRkO2CvLdUEb4v z09or!;PKS+omXFuBrfsfSwZVi6M;yLPA`sK-K;=+EQwYyxSuVSanalaa|jSRyWuw~ zqN+v9WGO+sPIIw#BV6J*#B|fcITsA%QxA`R;RpRL5RoagYS5}LZti~WpCU0%*n3R3YG@biP4f&bzkweIaTGWtL@=+$) zvtGT_C*8B$#aQ=N%l<{+TkvsCB$VcXH{}Z0r<`JPFw1oWPJEd|Opdx;pU~+mr};AI zepX>FA#Huh%%9c*M03w$YvfLuTMOhZjNcb$1xjDI=S8hDV5m{kw-8DxJ7{(b4{4P1 zFXdJ-MDJEey5lrvO5`mvw3I6D-XK{Gsi7k$T~!|cEX%0O!%%dZK0KAL{{czexWxcW zVh<=OT4%im%Y&3Yc~!R_cjPQ47DnF>?P7){bF=W z!T$>nH$+y~h}-M2x03e2JgBz(0HV|%)C;_qRg|^Tou1nVsvsdWr?sBT@*3_fnq6at zF!xDA5-}JxSePQ&aQJ4Je6Vb27I==IpZ_J7^=P6*al5K(A~IBeQ?g1R7_Pi8ZB-`j z6TxOC^yPW8{!6dlLUQbMM=EIb8U~B!#h8{d3YyI#VBIApVcn7+4}kP`87AvB$i>+g zLKxe(P5_{8qZK$!p~DZDnVPLTs=S+MmJnI*CFI-_(r@VVO*Y-oh%iJy5=o$$tH9}L=+lp{^Xk}fxkAO-?-}JXVY`jrC)mU zzF%)}f+CYh5dEzs4bqaKbc>%xCXLwhSQO()*BRc{>7@;cKg-s_MpwDU*+jQE((T24 z3gCidPzIX2B=G_uc4~2PGV}7-_=`;Xl+PUj(J@|sH&UcYv=_7 zbb+}E>QKk#fV?$bl!qQ274up2H*Y=;w+hch=ZF4gFGXbFzT00a3Lu1#r)%#(8_eK)GH|hK98y2{iE*2|` z>J<+9mkBv+;hVfk8?yz!8)I94b{dTfgBGvXj4U`r=P5>8(?lRqWr8`T5)8D3MC(zb znhy=7(R}0iubqOR%8i4~<$Z_OW@jc9e}KOm-udvPb3f?AZn=kXbtT*|;#3tR8zez_ zaZK1RW;KYL=W)>MXm8=bg33mH)YgBFQ`m@C?5 zpamK64UGh-2Rg4c;fl^s)|Ho(#}rLmN#k?()bOPn`BcM z@iXjESGB|p;!FHTM$xPyQY#x}XmIe~VTGyC&+i)`T-&lG5=nkMQRN)jieEywNUUd> z+^!+u2K&~|h^r*uLfG>Nv@G_L2{fZxQmY4Hox5@Hy6V!oyR&q?IpLFovzXwWIuCaslGe7}!}l$yhl5$I&-N8g|Z* zLpnb{hrV?G#N^{jT^PjZTM?N1Q*{N-^&HhIq#u->+@Gq=ZSa+%?c5BRwdJMzRbdY? ztrhzY;q*p-o`m8}>_@|vQt^$8jd*#av4pH;_)%lka()#;K)6gVrPwMSM5)zZon%0qE_2jAmnuWuhf z=bBOdEo^v`H=)MeU$p#TP`@1f?eB0j!VWGO6dMXCSbT*-^$0t9_AqITplv32D72>vo%ql#jL8I0BFc{Zdd z$zQaUAf#8b_unVqs#|kLs*gafE8jNt?}^SWA?4m^#Wf|LbP-1053||z591cR3)V!oI)KPg~}FMs`MnSGR7Z@Xhr!K!n@YwB@H z&1byb=;ZD$<69(Gbptns`n{zIkKs3^mReD_?vF;0#-F@hVO~=ARs{#DJM!6k+uE!O z0@VyGy@dyHQTlXF4?l9+DHa&Ds4Pq0{Ys_8bv-6YAmN#$E_BFuTv{46;6mH4QdQwv zZX2w8JWH>B>Mm`RE6an14Yee5a{sU_e=%dol&a$_e03x}0#-bOdNb z!m& z>`hnqVgfi9fp9=-?jBUsmV`~0G+ez3+s<=$WFQ{}GoA$o1eo5DP+8@;FI=ehJKw6} z)FLFJxf8Mdr{F{?>eZC`jX{2ugvY=yL8kT4QI2%l+1NVTBFpc%DFe=_Bb}cl;b7WN zFP$D~=(`5Ox=;-c4V93>h5ndYJ;L9cWOk>dry>B0L%Q^#QO1qTl->{Ohru#XUQy4dIjTy|*B*f*>#7f||bti{E<}^zT+E8lN^K#kbc( z2+NDI%CPk!mv&~A`q#G;u6a3`BG{X=7)mNa>0Bj)AKpDmL|FAPqi3ZTc3FOJ|Ky{7 zknab~#Vv*bGoi&byLP}k_H@0fuR+l@fM=ff*!5W`IGjFO&wE9p^L#Z~A`2o8s+44G z^?jcjfEF()ls?_6N)E^?uz;c8RR=P_H79U!*6TcuYk#ukXMlUbziZD(?(w7C^As@d%Km58gdQ84(B6}?WWxuz4Kkhn`74$Rk ziGdyj=AAd^4~NU3Cg$(rgKdzA%E0Au%RYU*%-Hhk*+_lF=abrCt(~|PED_D%KAC

YTJ71?UAD#<(&9tP8Hm|rm$cx`~_>EU@Te^llxT& z;PbA^AnM|5H!O^i-1uYSsu0?Q9Y{Cs3aqfEShz8(G)7;UJ8-FtjZ^Y&&VNC)X|Vg@ z-jTe0XS+g+JRLYu@J8?{`vSF3RAVSL%%)L}y!~{pOla21zwR3v@R5VnNzUj;&-g9# zMk&oYKM50*@!TtPLx0N>@&|zxxc@>#cYL0muSZ=@PA*hH5GU|VLo06S_7nSCxLUHi z-%8FUjo4*o#Q{nIr z%ezj488a?k(iz3iz8QNL?lUt*y8bTx&z#|?RF4l6_WjQ1Wqlof?rC|vq0DALP(WFSp*o7HPlL2d4@={AZm4O;i-pIIV57=c1o!?5PCvwh7#tQ_W8Bm|u1@Z3YCLu3;Q* z53@P*J#CU;0W2*1Et&GN@AVFc2@*%&m*)Do)W;^nbmEp5uSq+3OK}wc&I8(Gd*!{p z*1ghS8Ma6;2nq;jJ`ON97TkC=h4_s0>YSf5Dz8bnTSv{SGr&pi?bx>65zRq;{Q4xU zBR?rIu-VnOJL1Vx5fPCb_AbhXIz=~q*PMU^g{a2QA3#P}vK3(m3P zCpa6ya2hm$Ts4wt_7+N)icE34U0BA=lmMRF%0U=dwhq8P{yiu%;a^hTcabY^8v)-@ zFP(xe)*M{oP-6nDy8xt+n*N}Gpn!rL`wgaWjs)u~J?W~41hLh^ny zDD*FWoTDke_09S7>ne1C%JB>9?J_Gy=|xIxISDqA|1*K{cY<|pct`T7fVcRuSEo&~ z`T_Lm$E+|eSpCmW5ts?69YL@cCp|)G1^ZFIY}PcFF{Jv3k-9Xhl*yIVJik$^2GKt) zks;cit)21F+YfTE-6Z4!Kfdn>Mr1XC0W?<9V|JS1cnRFBE6~liK)gnwj>g{+6QPTY z78GkKEf`|Lm$hKrW!0X(VRB3~uJ@_qA9@HX+G}M^0r7qIXoYh&IE8Xi7Z zt4WA6CBW+777FX|GolzDxDcZQl5>@>YY=nEpn@&V4oOn%0n-b66O%jU7@5{6wtIHA zX!?}P;Xl9Q;MHA`XPI+J+M^P;vy@;n&XcboH`nf#WjXg4kCUL5vfaJ1&LW|Gye{+s z8~iqpsL(0Q!aYk8I6U=$>r}c1Z8E9g-D<_qza&H9x~JK-Z%9uhxM78@n8TMRW)jQH zvd#xXuZ&t7_1@Y4SJAUYJCdr=+Fv5+3^X_n<=-pTN@jiO+6K6N zEV5}(#RV$FIUnWEJm_BrY4E|iI1~Vt#Qzr{CEwZ(dZTT8bVDpJnt5K&)s@vQg<@l- zI#;6ZU2WWru(#6r5J6w|Rm+g!S5voN#80%}_0hmVCO^Q2M!B=-xcnyh|A0 zV(VOLTWz=E@s0FoZ_^gLN!5_hHXq)wq6etOuJUu{Fm@r1MBB<-b;x~%17nrtDqVv(|E(?Y&j1Z3*3a^0kz`)SG-#M=jt;`>WNqDAog0 zl|!YPS~WK;*#!K4#TvHv+p!S!UOkW-7*t~?t-sH|O%W(!H=bdLpXPYYM^yQ@v~Vpd z{?~u~*T+UVZ>6^zQcp7v3k6<>N@`6W`GQb*1}v-pgyB*wH7$H zVXW4CT2CoxVWiSCQpI_x?^|nweM;8P&W=!?c3L;2*m1ptf^Ho%pqyz@93jM3-?za! z+xRVcKAWd1Bey7xO6nVL$KUV4EjLXqu7;Bip_JxOqtU#mhj?f_n|x;VqDs@Y09kI7 z$*Q5XqtCSbM;c;=kdEHlX1QpfS{=8!%aE=K{5FYrP*qvjt*NQ#^Z599!)iEp(<+MA zUl7MuM@sUTabo|z$-TnXA`VjJkB~MMza_%id)@j+f4__6IBGd+RoiGCq1vwHB5gU9 z4O2yjO6k~e{x)xkoLO{hA+QoRHBeUPOQ2MDckk;7PU}EV-u9~oRDS;SFI3tFr){(hi&qZZFXRdP{X?pdYO&={{8z65K=~j zM9+HCql$jDjgO|_79JPQ?trDOPv@uu)9|k&0iAAJ?=yyFn|53%TH$PGh1`Vn#-8Iv zdcfzyMub_7+twXsW1Li43)y76Zn$Anlc!!nX$s~54g(UEX&zM#;yD-%Q987;;g|92 z7IRksubyBITVv)D2Av?ab?(W8wP3kXZF;~f=vS_m!W;7$&(F`FdPtgsR-D_xoXyw9 z7#MnwE?PrA!%!!gIrp%%86%Dw97%~q4Bf-a<#M|F@BjYq4<|S&&7%&K)zS?s_jVQ) zk|)!gVjg^0uiN}|tJ}4bvXGr@x+VA9w1o0fi~ z{cO!e8$wvxhsH~*?cmmu56v^0_edpIon-4p_o6zZQ7_R+!;08#m(D3zo1)IS3)|#W z-K0&mye*Q2B}F-$0jGx2rl_(N0j0MXcW;U;Hp{e_B-6C9bCd8*%htl3!-p)kZTNjX zrSN#yK+1??8RW+GxrPqnfssUN+}|X2YBlY&E3d1@PX1ZfQF+u2xRAzgKT^M=hPyh^ z6)+TZso=ymlC6g7{r&xC9c1Ii*hAcxYhSpr>Gb~gi{&sW3Zb>z#=c40uy#`9Y*U3d z=Mjuhf~YwEY~BDC+oV*7d)C92S#Wf58n4&l$~|)}HqkhXqg$t(x=?m?mXKM%p)I|R zHnY>TYoy-SrZnRe;O0LX9tG?+k5-8&nc#vkMa*spnr+jZo&n?6B09FKR=rN8I+ZeX z`7Lyr#7bN)-mAiMeuwH5F@6dvG`jjwoA@YG@Tev*xrRbq*wYU_BO*Br`!$DkZ zE>kYZrl2yVn>#8at3pdJN~_>bh1y2WRf(qkAlvAN=9D%?6=a#iU*1|#I>jF(s;ZCB z{kRJH^)OHKQwwQQ&1*e-gEzW_)n=i^!lcroC7YRSI>|{-u#FP#@7E1);fCS_a|zVM zYHVy$UyG{cvi-QTPc~&hA!-fP9Na-2ZCPl6wtC5~Uk`qV>n zMco2vFIYj3j@mXKnX{uo+>|LD8>li(jP&`_VXB4E;&0-|TKY{S&XEe`Rh`f0YeH-f zfurH(XN|KJ4lC~81Y9Xnd)B*<9VF9kJ}*%rW)Y?~=$KPfL9pnd38i6}4P_-sI?%@u zt5$haY~R|f1q(#~tVI<#8PaC!7|M%os8-L9sH4-enj@+J@7bJ5!c7hAgYWO2w`!}n z_|Z_9&a`epYwMFJzose`su=2#nv{mq7Y_JM`K!lN31;VfBfo5SG@lQB;9Xl?3pt%T}TX57>sYvup( zkAK`0^NI%67|e4u4|E>A^^)drDpB5e|3Cly^PBzWN_Y0qw*V(?Lul0)dK=K=4L6zE z2yUV`TR7y;9EB^=`@0E>EjzcO)z>~-VMJl!hAWOvFjU!!mt_+4&&p8PX7J5(jHh-q znwnHnQDjY+;1)?MSL#S{WRqu-TQvu{!sPXIYU&n_cHBd!7W7j3E)8Sv?(R;PZPMtL ze;7hJl~x37qsKS2GDNGSXb*0I0Q;S#m23khTWuDpvc_U^>!6#h_EROm@q}dx3@mD= zXv@foMfZE zG!L0GFp8PK)#^%7g6 zZfk1`j+?suHp0R8{Qt%pY`Vjnz+LNg%BwmC`YKWT`|rPhb1q(E$c9oXfN!i$2f7;$ zI77k%U6^#EPpjQ3+f)A3uQ**c1bI47P) z%0cwT`F@!+<}DO+G(wZu4XTyESGoPIlWdcEF)nUHl*COF+->4(y~aSSQqFA@YZC74 z@J(>LHIkzqdu5a=6Wh-kh_r^UmwDEs8pB&3eZw>7E4Jpaam1=VDez<6q(y0&!ELE9 zglp-*eslYf+R#-a{hxQeRq!*MutBM@q5Tk>#;#t)__gH2UL4)A34Iq@WMd0SHcpq& zWG_om8HceH?%WdVhMXI1+s;1cnKv|0m89Zq)_5G*X5FM~P^$Sx{iyXf6jSX`V<@S! z&$}@odVcKRw?Dij|*78CO%=yOM-{0R~`AyvfJF&dA;?{G^H{SkC zv~7}IWpPPtwH~UF*ODuaR*TdICWpe*N|&nMi{7TB)*w>QQ0q7~^TK|f`op4Wdcc_< za^rED?T@8tUxVX=H)|!zVd8(p(zKCi8$VX7TK-qVgZb>y#M%mK!=sWzCN;ynO3S34 zY}umfN!43aL&{l*(rXk7FI~O>LF+fo8MmTgX%yBR`a6ouRXjq`jU!=?d50;;*|k_` zce75du-xz=lMGfif=)6K9R5uWS%U%|xYzol4aZ{Q%a!}o+HKMb< z38F_OsmYJ&3)_k-O10t4Dlp2GamIv=KZZe$B<@1==at^H{Z{ekdWua3X*SbDw~8(m zSnhggU|Q=K9+N22Jb$|wMGF-J^iWi*SW16UO!;mO25LQ}%!Y=SR;ssojYAXadZ>=L zeYfg0EihXA+hBhuqBTOf_N13==d6voX$LcweJb0vFlB{@J5O8{i%os7XqOApI?5m# z4GV>1EpQHC&}w%n8Oq-jOLwfAdBhO)lqofol;R?ZPEor}p+pcsRzt-yj)vbj)<7i_ zEwSNr4`4&d=0Hc`YvJ);?&dCrU_H#+d(0*DU7Q&rzs~2p|Ld>6zS%!e2(XZ+*ni={ z!lH6u-rwI(U%q^~DJ}^gwko?#nJQY<%eKke)LN=q(vbni^iFybf}E~w#Z26p4P}5jZE7H$66n2y{q2Q&d;q- zEY+uHq2E=5Yq)=nk{T}cfhEVOW7P#NFW;8Yd5FLN{`=G1a7k=MAKKq;cVai*YO6&! z#oY|edJwms>w3+KR?H&z!fbLnMUu8oN=cPX>YX^;%TzC-a?IAHXc+C^mBlTZ*u!f` z(r0K>)uuzdF%2v(T5H)<^M^Ll_bp4X3kuB`&Fi$UJ<9xd?+as-&E4)}q z(6#|shw5P)_Opp|Lx@(o+bZh_=qB0f{WfgUqqZ%g# z!iJFbJW7vx)(Zlijpywpp1*e#??!lQ9N!zS2CcKG?Jcl?L16*(J?@TMR(nR$_Lt&p#qQyLQe{F3r?=m^LL}@ICmPn#r5sNZ_ThEw6V;5~3Q?|{x+a^LC9ad$B{IiCcPHGwpZ{AU@VF&Xl z!Yrk`A!@B;*Wmg2`R220+&*FaOYcqlyX$=nU95RXHJaa>=cz&2`sPI_|9j2#s^ZXTL1T%;xtlMPZqeBqa%W2S*pkXZgBxu?wy5Dz1;!L6 z=xDBXuF0@%%jS5uZ4_K<7x(w~SJAh^gBu~wIzTUn+Ope(tcH(TW&2mQS?`Xe-r5=Z zdx8%gH|IoNl`_jx?xj+#WaIAHcT?V0HM}+@nbv{KvwFU&V&9Ot^_?446Um3g*QFn9 zg}}L$2zR`s=T6n^2jwgH7Sv9K_4i(89z?{*B~5>C~Ns zWT;lRz4bBIQjTY^dMp5-yDm~<+^?0i=+wRqH&mrc8K(}gRFJ{F+2+a@1?&aigxAU( zsK?q+zjjJCXRQ^tP9(6P+KiR#tqo%9y0p!~?$u39uF$T~_;oFMh?++_FM9f}av+S=+{kJdaxCHC&OEej^Z&7mr*>c6(iS_pJNX&L5Q|3(YO6TaIL zZl2e?W9!N3WU=%4{8LNd>({T}M1i)U?IjH=wPLI+)?SW_z2SNfrz|OeEoaC>r$XVT zJZ{lRI)+tM=i<30+gOB(8Eglmhqhi~4w~`)wkFQ^?m;U-&v<|9QQ0nhKhu0+(@Ik< z-Z_)1zn2}{FtoIv{xea-gr_AQ_B|Z{E8Ad`s4dHbp+o1Z;Fd6{v}_4{DiY47c7Ub* z%{|afu(k#oeq|0wD!&-6yfF6eGMj0jzA|-9Y!{4xQleiQz6$B_6Q$nKLvs(Y| zOMB@XqUqs}Xy>gemnzger)xOh(-s0J5X(fE_1TJnHe>ZOdR}G?q@DC4ZCYf#Jlk}w z0!dev!yMiXy-+a)kZ#4Ek;#J ztN4yNgdo^TNug%bQQ{!yT`s2rs z|ATpzkm<#65^Swz6GWw6q&g3jHVj(ldrJ#A8gJn2?2W3w$>MBkE3KK7pHr&3JSc^& zi`OfTZ4;1+AP(3peB6W7gWaJ)7US{$rGqiAC53Ui=`u~9(C zIq0fRs$$XvUnFw=|EzHfuX=XFR0kW~-QE2pE6QD}3$|;^+@Ob`#T>aqR>Ear_LAz6 zYFSin-&nNf2EAFzSJtJ2+yZ1w3mN zCHocabL@nw`mHe)G*E77&^q_Am!;2UXWtlv$^9HrP!DfTC@gJ}Rw=3ZF7?N5dPSU_ z;bH4s24ARTKpR|I!S268m2=bQVm1-9Q>}+qiBrW78qeAbzF9%L4{KTNQ|~620IL#S z@WOSfN9vliN52=(P|C~E-k#=3TVd3Rx?3aM7Jkp=8Y5>C@9);Ct5B&*jCGwkOC38= zaHdAn_TK_0a~7w-Sfr|<{WcE!>_W6P)V|~%R5ee#Ax?L-z*L!<#<9*-7v1WAb>EGl zrF~ehsVm(IV74K5b9y*ic`c~W=PBA^a@-EfUR2dON(He8U1jrzaE6A?>a(@Bmfz+o zX+I5{dodb{_n>!t-zLN3@EVmDH<6IS$mQ+H(d#o?w{sMm5yeHtY(GYH_ew%xbL;wFpgShkITsaIAop=&mD|$Vn=ch!XtiyPMQSz(u27_`U#*7#Lt*A7dqvzF@F>OKq}60!OV??; z7T*lx{HM>MP(_WAqqCi&Wie5HmHE06~EQ}&J=7lyS+H2B5g#>O%>-?s_|uQXhgQ2{taZh$#MVqnWK>P|ampvvF2K-PVk#5GxSN|P$?&0Q2+E=uA;TftWd&Tc_l zd`t7_!RxzBxY90$yXI{EMtL@&YRSmZMlRfmy~;dmHD$_GoTwGsxRwk<&R1?O08Yi6ix=NMKQ>pjtXgTMV*g#c- z&`Y;T>I`%$qjiIeE7xiiu~oRW(t;}qS%!fl%%_mqc8GJE zcf`j{(CYe?ZrMa0w($nGsJ0ug@Nj_u54v=QL677FshDo@vEFhPw3XM{m=5T4OoSo< zW#Z2Il;+Y{+L6=7)lDd!AZ*XbChTV@R|C-bfVN1Na#3!WI=3Zv3N}h0Em#<{X*$5HD#=>3yO~a|-g;GYUQ#z(% z)3#DDqEsT4_#OCKPufDKW1U-|E2`LuQQHi{j%S`aU2`B4>`mucHOfxjs;8DpJ==XurguCejs3*n56{{-n}p;=O?m;^uS7 z8ECdfxd1+N8l)>A>rgFP&3B3#!31w}V>onh$ zd7;>#)4BSLv(MFC)AMhlg|Dx#KV^T^e=1?Ea-@#uDqL22gUw9F*?O2Z)A#>Rob1Mz z#*`Sd9hp{E%*FgbDkNHsbE5_vBbtgrJJCf7qxZ{Z=4>J#)b+uT9whN__DXVFVS2@0lN)amPzZMw;C(Ex3RUv%qHu$727Sibv4=( zEv(*<#=PcNecu*mH}dAzjc1ZBglspd1k2WGtfm*d&`ABNpxTgC!9dvoJ%e_k7E~w= zr=^9BFLrl#_p_4Tzih=*$g5DUboMT)AxE27%HQc>=tC8WF=1~KHmVf0Dt+cA$i}LM zOl?R8(z!Vzng!apP#StHrvQ!W8))Ad@raX2TIOZb=?$2Hn2l=$bueQ#n>XB2B3de zT8L1uI>y4%3OyIyQr1&%VYlCw>kOPcJT=Fs^?iz7HbN;Hr|{pVKj2y1gfv9R6cM~( zga7r{U*Ehzip3evwh$-9Knt?zq)JyeT-%h!eE~0{A;&g6w12i)IaT`~lZ?3a>_Ik(~3#E`s|M6h={pWEk#Ks{!Kyi`X2UB^u||=xc%hC^<_WS!q3ld zVNF|7Ta~Y6>*zO=%KltyAPr0U{0bzPe73!_g|4wqYDH;%X0vJlx-sTwC0i;bDwB5W zlG|EzO-h{*wn4h)BGyqhp|`G)YW~}d5L=+@b!V2LXyFzu%%4vWdUNMZo=7!!*I-ln zbWY^CHGw9Xa_HM#SZijpO{=?F@evblK4L+upVLd%1=Jl^oY>ilwcbsL)x&MyiZuhR zQw8TXhSL@~=py3YHi>tZ&^z?MI zpS9B4l&yxV&Tnbu+mQ`Ni~uKUwQgfLv<*-#IkjP`9%NIzd3t)f8s@nyvYM+Q(ERFr zKL4b{rgY0TdoL`^5h`C6bUrJ)98V!H9mIudD*v~`faL{zJSy!%DuM$k zf7QrhwYK4jz0+E>t!2_yOB1_Ixuf#^lH8OeHBNTYmF>ZzeBEG$smq<(ENR0%J0R7X zwTQM^a8bXu1*nwLko8yls+Zj6jCXzKeHG_x?z^!v3Y%B+K)#^Jq3yn<3snSr!t5VE zeq1k3qme7U;aWlf00nGGL_t)*w7JiD2&G+o5NDrD1F+mL=B>unCSTuSDV+)4gK49` zO;+Yp6`|;;v_5NdvR1ZzzHPi(tHmlv${}+&kNql+Ca6VL)7DukwbW8%S_qU{GZ92N zc&bZES#QtyXk)dFpt)!Bv*vkLy$yf8yv~*}8Y=tPgnx?7A0Hpr|2EVMw0-`RP}{R% z|AJ$KZC~7GY&22s;qF1Sr&@Zt2TSCu=#dgUa=WUg=yy*3)fpp(j2_%3j|~@xqAhr_ zg+qRxz4*>9+>D6@(`~x1ZL@w~k<1=ky8_$QC`-1v&JmTU`#%-;8lKJ5Ia#acusNU4 z)|rh*8f2>0pU>z2n-9`t*iBMGrN5&KHTITL>*-U~6slWSjE)R(9xl9h9}-Q_p1oiQ#_Nrj`4%J-V$Iw8+@y!?>~Ft?M+tZ%st#)x=ohX3;T0m#yowkw|M-G7vTno;~y$_$>mm|Nf?%^^ZUP z_$IBO5a2dP+MWfWRMi(7*EQ^!1MFvQd5JtC6Gxw~3ou~A)^A?L4lh9uz(#lzf*qv9 z>a{)GCZdiDE5fJh{Z`H2avEE88&WxoucXlay~(p%^+u3=llg(Hf0Z=|kx3vVV-+q8^IRj$}^6RC2Gwz(X2m;KHr>pcLK z@bP~;_u`1UuB>Xkh;lfxl0}1TF=!Z3`AkKP^e_D`rKj(6E z{g39Y^zZBiZysVDq@ivv_3T99RO z!)@BC6K;F>2kW*fyESoHi|FRg=5!{ub&w`%j-5UVA#EdWp4H@6`5<#U1uX2MYZ0_L zm`T5t?^1&{#l)_s8e~QWoztQ?gN%oIq4t_ItaW(l7}bVSr5QEsb2jBRXjB@Bh3Q_< z4h(XR{JG(TFIuFiB*0pi<_sklRsp=1Ou}Ku0=LHDjJ;a+O?$S|J*uON?rZ~W>YmlF ztru%JS4DbZ&qAM#k3VsJmJZprRqg)ajloQR<;*Q{Q%)->tznJ z*3>Wz1{Lp{PqOR)LJ7+#Io zdH`!JTdQOboR_oOPIg8XwU9N?OW!cc?zJkIY}&GJN<#o?Cyl`^zA50`f7_W?kJFs7 z-eeO5H{st9yjHfm7HwrUcN#W>`d)guCfX* z{$gX=y5Ck-TTL#>v7yg^jRO1@WN!qN|1=&cx5I8yl>5t^={(51q4 zqA6oVH>LH~L3(MN=-Ph&h7sE|SXs2~?(F_m*`%JM;hGIivMDOupmdX(#}iRhxMTKc zpz^JA(`VnH^XAk?9hS|NPN&mPRg-RN`STkY%-#{JsC9FNDJ$(Wi&X`YCd)Q9DObNu zFWTfux88G`kP5T5L#|fejz+^CEAc%v_Kpn0bgR>}Alj)^KJSDa%^9uOAIJJkP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2ipY- z3oj<$GD#;AebsM zoXrZ6NoIn80OQ_EMfvU*B{LxtQ=yj1**kl!WCoeg=47~2%y6G<#b~1wnWzZg?YcJ< ziW$|E?vp+zWTL8g1d+*RMxPTCVcU$&3Z<%{D)i|@1SU%Ox?xO5Mc7Mar6B3ksb)kZ zwHhXh+!^?^&LzTL3Yid*M6BTZ=qSQ-+W^)95cJa;XX_LdUgyQ|2_$_^raJ<((HV0f z0@EE8Ad}yplWK~J(8l0v-w@WCM=9u?_SboG)PlRy`rvGxvvo`aH3S9DtCJpt2kt?7 zP(&b;^rVO)2~~vu`~4;(FyQq$ad$G4F(y@oJ_c9sWCR((Zbo>}$3%fKCK17ylX8tg zF{PSOt@1|`Dyy!U$ySt4YaF$rDm=DIk`z-^1&^SpFx~0Xd2E$FSN2qeF`Y0aB8Utk zg1s(1l&XdxxF;z~rF$vNnG}Wh)d2W$?DR1K*h&GCt4{=BxO3D(pTT3RTy1h}g^0v6 zafi)}M>VE9&uwQ;r>dcCOjO|NgFYuJ!ux6rcOrw#=FBVa3r-4B_O6f@=wKG&e$zqew4#n}2}__`j!&6wbIc1p%N**~5;?{n1# z;OnUL;e-k%f~nxKI^*@-*oyJBS6-jS&*x5x62-{KMZ-R6!xtw^*~-$z7|v#f&)~5Y zbj;xAVDZ6^GB zU$ikf+oYD&eX63gySD%J^U3tZ?}buuPrk2#+)UVOAyepMVH$))czrspJI`aoeRW7R z<*1ds_4M<3@YptrDz8sx%%IF080R(Ew?amMC|^gV^+{D-Ez_Nr$z!iveeyi&0*eO` z$=9(S-koZT9lw4zGT`TPU+w(voaZD1iYl%7Vu%_lqSU($ zTX#&?|27;!h+Ke)NUm#Qs(2)01g)+1e18@P`fxtiL}VQ#b7?3OJl3~}@by^2^+<~Q zngbqtK~?zvbRI{!7enSUoyfd{S+Ft_t{#XO&!aFsm@_zz0<8PaYoIE8Jt|}Ps(D$A zSwjqHIQ%Jt&xC}}Ir;r+geTXv+Hm0(=1jgngE@lD7P?>WPHSsW89n&tuj?{B`Q_IlcI`=u-8@p*5?9CF`j!}_AA1F{y4}; zj#?mqT>25<{oNr}R8pj_pH4)wRbwy4=hHd%Lb5h+4^&vBtH#wP&%H9H<1=`* z$ySY8lra{H$6Pv+qKxS)a1lr-CXkAX2%l@!HScIWl2VK@R~p+`A}nUqYU{cwukU46 z|1Pj)O8gb%9Y5t3dIpP5Ab+Y>`vE0Y9b;_T+fY&yy*#7 zTMv936*J-I*G_nHUXx=l^bwG2O47|3BPbcGKH>Q{0~vtG3M|%i+nW=XJdVoQCdC9Z z<-7)Fx+r>=s$I_61}ZDay%s*-0|bgGB(%%dLCn@n_v_X8d^)DWRuvKO2(C63u|zOi zPI&BwnJ}mGd{pvgL`LvA2deP(tcZXrYX;nmeOtOv6-@tRq8btK<7*>wAy;qyXRbFG z5n>)+?(aa3O4onl5Y<8w}~%XxnW=ecIZF#}O$&Y+y9bL_V| zZ-C4ZH>)RR!oHPz$SAl6eFUyfQN`yHU>eJ|NATmZ<1=wjo{viJPA$e(jouxP#APu? z^Tz7y-T(S}0%HbW&keZMYR2a?P}L=<9-PPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2ipY- z3ojb*TL-QH00v1(L_t(o!&R4Cmg_bSMK{2QT2w z3!9TLLn8Jy?kFJc_*xVZGy)p~0lxqK8_ZZ^P*s`NMXW^u>UEy9)>v~A5!B`8MYSM8egB!?#7+97NrzyPFw_cNAh*8MXi-m3VIv};AVt7D#CT1lv=61R_^Pf zwZ?p4c1M6#%7$&N&8r!z%F6e>HO%Z^+^_paMChfk)&h3`%#2zq>%Ku`qvTF~A3g>} zmFqllcaGkfW=LKvBJaZlAc8dp0EiGkBvP$b=A2jxRYVYAW-;zgQN=}2DTVXCsjVTU z5F*spxYq(zL={RQfKn?f0*9?;Glm%!K>#BiLn^-YPH7E9pcFg;tre~HJ)^oipWgB0 zRYfp&YOT0C0jx1L1#|NC`EZZ1HDbmepARdkX|-ZzFH)PB4ZqLH=Qy@Y=H%1+)(Ik9 zYoQ`|1ho`uLTc`Kb~N4jd_J6G&|BNri(nBO75B|^qNu7n1J|#-up(THADmwDUWzz9%~^YjJ(I(u}n^~AW2<_2=mbjP%V{7e$f+!0PZ>WArahj zqEAGN?0AOliquVS4Ub@^CIVPl%yaHsYhRb2>z!3E_ZODsPHPQO#Z!>=2fV`!bLU>` zrDB>9N#)Ty%YCapq4z9C^8GNQltT67yVXjhm`W-8;N&)dYt9W>DQI@>5h&pKU{M7T zmKn>PqqX-QNv%X8)M^D0YEk8ylOrKtX|0*gm}~LhuP<7y+!@!Zy476@nmmgLD#DrJ z^y&Q{E9U1V3wT6t?$niHu?RlBzlTxlj@Jy3SLG?Tqcy(o8-V_Ux+8UPj=`sQu6z}d ztqqZXA)_R04y*_+GdyAaP8%68%pfCKR5{loL@2dlKu^tFYi($2-D#Qyiz<Tx;!Wv-`(V=FUj5sVXJ8E!o6(hLlBcr!_@&51|xgYi&Ctt*j--r@Oy{ zrm50vCEOWny?Tf&rldOrSeYI7oP2Vku1vgT#(CeIW6(;Wm4YPn?*w%bh8e9jevd(^ zmG3$Eb>EQHi|S6TwBmQBV`Mr$8o85}CmEk}Rh9e4;IfF9B7H-{^`ey_#7 z*46@0O5rx6x5haqcaCmN9X!ytM+>QwhrUNo^|6MzgX&gqj^jwEo^FdOC1TT)i8#$D zNtwCx`@Z=~o*&ge_ug}|-07vf0i{KCKP+SQkK;g9|4BaJoRgBXqSwm#gM#wIMZ=7* z-e1&uim#=ZpU-ZyciE{|9^Px^dkidsmK9Djj?9DS|L-|zrEq08PvIWHk#q=ft+hAn zY_LA6&m6edBHXF%8L!V!0TlMUPr=n3EHjsvXI7AT{>=SW%0379%CLzDTCFbyS_;#B zFEFK0Uu)$ed9B6m&Zjks2zN$i&qFLZkNoXm?k^e-N-DzjY}v{6Gj%2ZmOE91dglm^ zoLGo(B+pOhkEqV{`n?v9c2tC3D?Pil3^Em=ru`oO4|mGre-VDqNgeL2?4V>vtrU7f z=w|$$lTR*^&(wRe;n{*_23b{o=Ygv7Nd&HJbUflyrS3v@2hWE`t;~$d<<3{{*t5~( zR&%YzcP=Xy!JXsxxh_(Kk5gv;V7W6j>yK4#2T`iiBlw;Zb4MaJkM4YGt6huBPH9?wUfzufuC fb-t)>G=TpDh%lAi<4osdKbH8ho8g3?Rqy@i^D8j#*Qgbvbs z4FTyt?|;shb8haro3p#Kv)O0nJ~I=duKIa0qmmu zHJ;oeUU}?fBqwpSi`t@G^HC={`)lzr#o8|Rb>tuH^%K9KppKU7i-BvehQ>zbh>oR& zZyy+#n3x_zAdvCvRNtEx!k(m*6nV$e!T!O4;|Hc+K?4H=h%{e!_v)+3i#@OQ^Yils zXHiB;Ny*1+_*1@l2`M*mCi0v9!t-vDY2-mI3#&HFHzWQx!r2+j9R?Hi^6_Dso1Z7Y z`2?MuoV1*JHC$Cm`F>z{%*@O@zK5{cIQQ}LnyDYC@A1N2_@;ULKqOCY=9rtCdwkPp z9Gx_e7)TS`_x?}PypfGFZ@fooX{jl$U(nObOWe!Li{U?U{`*B4e~Pca5p*kUpfXi8 zZ)>kFsgJ4uegAvx&3c)bnIUr!oV|~0|Cm?*_TJLcQeVx76xE>k`1q}p0cf8{LfYxY zMZE}fr7qr}((PuBal9z-^z_uj8+<*3J-fINXSgggn8BZVUH&mhuc5`eRo39Y;rV=U z7bgrjo{NiQnr4|@D^E|)IuCx|-Nsi384) z$BsPoeoM>xN&lJ$|EgJ^jk}5U{F($@{ixR>{Y`k%CG)_hRf>$%{jbfM@E3wtb4*m6+ZlAf+NO*??!^xq5#5#i)Z*7n&>8!ZT zoOf!+g?Vw!x$pz$<3C27Js&)z2fhbpFN8Vz;&q^99UUDAH=Ndq2+YG~VAaV(!wAY- z=sUiDwN45l_JHJ4TNk(LN0)zx?kD~0wdr4zl9DpzPJ3YD267j6v?f2|YW06~HFvSs zT6$F+KYmwy-dunG;^N}<%*g8j=&!t#wzPpH7epVFd$sbBjkhqot3E6UXEW>xR9O2{ z-EN}Jn;@4*Vai<4T}TrT}Pt3ji*iZTX;O4 z=JS9X{?>pMpSVy}B6KL(b`H|t;)NLymV?Zx@p9*9ed6WVIyd#b`XzPs4}3BCV3c*B zX=g|9i|soQZ4Llmwz0W3;Ot`IVIw0^W;k-n^GqL^K5%e!bVPI~b#1IdxPB{FNI8iB z{JD{FGN_!H-(>fAWMHp>mW|*+CoM#Ih$Zv>OjtF8kK5TAtj`)14 zpSa-dxYOf{Li z+y#O(^UWmH#cm~f_ zJu&EXFGh;|WU`-gl;K1-zy?^YVYjgvT@@x7ry7a0&rIkvP!n6P5lL_+?f#QxVD$9A|L>#8ve`2yBi{uM^nD8o2S@@ym zkl&4ha-7`ri>2!nxX)_%okCmt5l{L_?K23POH|5HJ(9cE)a8*(BZQ}#Fxr!_Cbch!_cSUzA|LRvu^(B6G4+<)z69uJ@BI$>Q~&% zl!n4dw$+$}fqMP;o)sIOU6}zSzX{N>FpS?;JVcHkym2blno&{UwmBTVI!&!xXY;_x6?baTMuS+sQSN zHRv){kW1KH=+S@v$HnHhwHwEb{)n|tFc8S)e|Nxa*Q zTdJp<4c26s30rl$3|&m8K@2!HRdF22iIvN*wNXBgvRGayr(Uj9DS4?}ZOk)SkTdOG zPDV5JeRcJ@Q?CvE6s^z0B2xQ*lY!&y$Aq_d?9GV6G#dX5!X(TQF-gR2J@FjMkO<8p z2tVc<(*HB>oY(wzX)k2_>}(A%@TEp1@DAMSd{B!K>=zL%W3CAS@rF<>FaBc{XZr2> zm%#Vjrmjhdr*Dr=vUhJ_foW?*G$OFg*NQ_pBzDH;I)uMEBW7<>=(fbL|69R3IOgnx zft8e=_ZiCE_1TS4uR1EjgMQ~Odwj#vuRgyoXj!r_R=HljZDF@NB3>T6Ay|BMc{1N9 zT(Y|w(>?cFwn&f84;`iZWqQu`4%;zr^WT->GxSLY!z<1a&Chg))f24J@HV9lNS0b1 zGrfi9L;FYe?x>&8b^0&or_!Shm8lj>F;oY39jP?37KSe;=E8)=4Ze@@^_tU+zD4mw zRXun55l0>7xto0=Y*V`mWPQPX4@Qg9r#1!p>Hu^VP zus05NPMe<+0w@@hh!DRmqn6-Kndmen>!_(KCl=gk@v&w+K{QRU+|i&FxeFMYbt?I^ zjhXv}i=E*kx6#PNygpYZu;y5yDvaFGCU%mZJjqnRmM5eoOae6;_B50kMQ($(!e2OG zQ?3u-u91q+DA!O-nKv9mfiVi|@EuBKh{ZcjdPyrdzGw<%T1FQb&>y>_rtktR>?}MpQ~}xO ze|W6L+v(JAH^%D*5>|_kW)hSzT?#D*?(=CU$^E`+cjhv;>Z3Qlb3KLk)1pSCt}pP| zARR8_6W$&Tz0o`H5Yr*V>Qlgh&EmG=B@?iperst8t`OTg0Z1tgdP|_C9QjX2TF$ zUq4e;KW$f?VYE9Be?u2;#8Jz@q7iq>=Xl1dj(_@$N99L9zyL<@cVNqT=G)B$e%T<~ zA!Ha*>~Q(Ur32@*Im{`PkzpG?d!Na7J~O#-gxXIxo?g)-y-F^RX<3@Uwt-dl@g2%O z#_2zxm`#GRF52xDj#CCZGVU7R+M?a@d(euLE3P##U`#8m4-84cz2jeIfgWWiizW64v_eJdb@{`@=$> ziy4`zOnIm>C6=?QXy>UFIA-^q$(;B&zFI+X_P36U@bIfp^OIwbC$eQ1&;Z)cHtm8% z){AX+Y0#l44|5h1n))%#*)4zdPHcEz)eGR(s9~ohBzvFLY47 zs1@Kco4aGx)xs(Vr0t-3ql0aZSk#x+il3gZ%AJoD7xT=|aY82SIU5R7QO7L{`_W-z z%Sa9%VFe`<*UGY-i1h}pTeCnt5ZH|I(`^g8zj(LyJQcpR--62{bUGOpLei>Qv9DCR zZK5r?;t!_7v|j(J(6Z?(q@K9Qo6>{tpyPB{5+&%DY~NaH|NTKY?U-=rg8m@a;QbV2 zZyc-m^6u9d#@TZdNr|od;kGZrsQVMe>|@2vgy_ejsu(MGs{81d^$5~$-z=>p%3j`( z6&L>wmPq&PmOhRt3ABS3$`<_N8xZzU1+K;Bh)#rTmnX@Oz~I1wk{$+Kav2fZU2}Fy z-I~0AILU-#ll1zq|-{j2wC zdk+hQXy#?aeCMs%E!rlt*;X)zVCVSe8lrolwKe|$5Rb$*CQb8Ql6ApIAqB?J&?l~9 z%P}nlQ#FMgJ8-+?Mk>rBa?Ym`ZIvvdXLUIv51o2VI4X=oausvp(sC$<-(!&fNPo80 z+4=WsB)Mtt6?qtTIBRE@WqN(#E~`QZ6xb&iLY_>69cC*UY86-CL-SiRY!(caIr=`& z7$N5m?UM$_pUAJj7e^(or_yyWe4NFqe8B0CwsG%R`^afjBK5L$=QC}ul^MUUdLh1} z_-ogv<@PBzqNjFW*9LMfzzb~Zy-f{pvi;gH2kmmWRKk7*_YeH3Rqb@wxg+#AdoKH)^kaJFAQkx332+Kr_wvg{X}+ zfp(V+A?xq~QJ7YawL1mi*-*6ZZvO9!_8pD@FKIyv{&9_NO)*Wfw(R@_;lkYpxapJc z`4{S8D53V#UC>xro004P^KnPxroP^#|9#`Ded$Sekz$en_thHWb@Z&a~=HA2kwy-GWfibJ@PKza0cs!IL0^zA^8U&KfUH$e}a45fGB zM9YndSJ`r8(Ii**P#nwRNcFve#?V9%7U>kqq&r-Yk(5#TlX;B!eNX~EL!gi{`ROOD z|B68YJLdVsYRyg<`U-Qz$&xa=~zS^z$p zvb0A|Uk^4vDDX}`DSOI8wxj*nPSRq%nxG#uZTV0{0ZLk>+E*x@$zsYbhU6Cb0bZOs z0XqRxHkllZS;QrjYV;U&v)u&u3WmzU%8<7hoAk&%N1kcTvWm?rE>CA)Oh=bA&*|%P z=V-ofP`4Z5Q5O6*J?jQ>PL>!UbNL)fA^~waWveA~`)sb*fcI3q&Ntap;dNf8uy41| zx1>}GDX91>5drY@Xy*e}6bEGKd>Hx&K27!b*}J3pSx8q_2TCU`hIbN^LO!RW;*4?` z*_kSI3!px;nVt!Z8m5$+jyfAwN4W-=(vt&qy7gyKg+d(i5?0*yMZ?mAJB;%%&PPob zUyK^PFOiR`+}bmXy|1z)P3@BD9t9O`vWNk54m`Vj0{m5SIYY-?s&03aW(=#K{gAs= zZj031;?MkC)myRhsUB3(n}+f@r7sN;^G(Dx&oNF(fXop zdbLmUr~*_I(g!pft56H1aao-g^6!t5^;9k#9Z%Ct%ILW`=@CAKsp49soYdP$>ZdK-s` zMB4Ser$qD@*L7xnJUm2Hfe8LX@t z>vk7y%uo;ogzkLcqQKSb+4tarUa1t4Y0|?Af+VNhEsbnrFr1blL4!8&)`SOwlo*v8o}^^M=$N zkm$;_--msmOVTy`A{*QPdS=uB6VeFHZKsbVae{!qZpjbRFxb> z&I8#lf9L6_q1vE6*Qc_84ge9Wb!1z@+TF{tV+SSQ1U~Di55~2vGUPd6*b)<{#WuMN z*q7-iNCqr~kHRAOGL{-Gi4yYAL%#I;8yQtRH&$^;PluA8W_+_yzq&v_VtnFz1afDz z(3!W-OYaSTtSjUL3f=GeyXbu7PZI3zr!WkM@DUdlOI%Cf*kH?9DQeoECxu79c9QZJ^ERt+0=##{IXIx-#Hp!`(j0!KvBT3s%B!?qD-nOtL>Gl!kzU_I)DPv zLm5!;)@V9R>3XvLqp*?ArQ_9@mS7h|Ro`#u0`gnR;He<3#Yb*|<6?0ssnQ2VtOb~ru|b7N zrG|;ec@sFX2PSYc-%?p*CJaBL^=jt(!%x9vrFyHCM~LAiVUCbjU8{=CO%{EeFSWS^ z$U^opW$T|GG4+OWRoe_}y~>G`D05Lsau?PXe&wLby(H~tIaj+u$y_D5uUZOvsP)d^ zHE45Khy+GR6FrfspG%m@G&HtY^V3f1fX4%Ko8=KM%Hp!SLYL#sNr2KuZ%%}X7S+Qr zutHHjIMG~h>44P~q_7)KP&rnxSfh&-g5H=trzBNhCkI1vugK0od8hkpVoGm!>YG6f z(}97pW8bXsn4#QnX|rIeuo6_b)QBV*d6};2o;F>pgs~2?E~xMBc)W1TFso{$#@3cw zIH%qX(}&sqROUM3C$Up)62<=!WWlp}aubun{syRp6t8W}+o}a~*CUvmf(9L;!v)P? zr}oMQ>cy7pIE9TBE}CBNy|Z;=5^L080n4tziLX`Y^@(?caPU|hWl=R~Lj7|(2Yp*> z)y3Bt{Kb0$^^zqtLJ@|GiqBr}b(Kjdh#AP3^dGkzGo0YanOCw0kIvnr;t-Rl!oM3; ziW7QI<5`RXa@J^4+Hc*SJged?F%zD14XOGexB9S;R6ITK7x$=Z{s3FQdcTg%$VAI9 zQ=SL!?Pm)s^n{ojHh!s&T+{zgLW4yi%+F=MPp!D5P94$vyG4KIH&V(RsDXZ=y_j{m zr>SHa&Y@Dn_y<(2PHwXGnk~Oic1qDuU#ogH)Qe~l#$GsM9y}sf#7h}=ix!O`ViC=) znL+!w7M)QoKPlW1je!?YXwDaZZWEfKdNM(a{UZBxnVpzyN-u*mEkLVE(Z3xa_V2j; z3H9-|z=+{YP3O+XkwcFcV%>jiPToK0r?g6B+TR(ZyNWrnc(*0~?+!fxVqdJ|GHW&7t4fILq5wZi0x(QM(=9~aLwkB}d1FWTJx z6BvR|S=^5>7_<<`1xcHB0{W&t^-L9&3BDik;d*--A<2e8;^$ z2FRXc8N)|9KbipEP`Ong6+Fmm1oEh}a+pN&hBcdMrowg|=y`@)jgz1Ra~l@z`H4^g z`n=rtc<0HT;%Uo+4o!9y6fuXM<@C4W(B)c3DbKAk0r0$fKB#$5s011BEfYe>YGU9UzXAni^w^s(_1?p-hqEhBF{b2yrkQk|%UoeCT!Eh;lAmt*X0dq5=Js zg7W!5?IBwk;~2)6gu7f`Wz5W97LX0h(A`5*b%#%;xcI1LXW=`h#e5*WG77#qYp7J* zUJTEY7??3HLU+W^<7#^;o(v1OEPB^Fbg$#?w8?CylJR;|op*uadW@TP?!J%+daj6T zRA>>H(*1aMh0|;MKDwa-{&=g^P=+~r7xPfb(QZIyE%f9Lj6IA))qN3<*{VFlmXxDo zPE$Yi^fHr@y0wRT<~dH;+XfVO06EZ`ZS!VRIICWXqGJftSQE;MJ6Sa^E%wM&+eLb_ z+MTBV?o{HJ<8YJz65{SMZ!FK4u8U_xq6B?0$Pneo9Img2(@Fvh+4H4 zJ8rChe_`0e_j)3-1D2=?ehH4i9UnnuPMOo29D)dA_a#sU=A93BsE)rXpPa;f%_BFMtG;4;}k-EO7R z#1^bZeHDvfK&V(o;d?eKUG3W|PBjb--si5*6b(;od9Q?u^SU`D!^~a68rcr5AkHzV zDq1Ceqi4{Ym_F)s{KCv)X7)(_vf1C;m6nGek3WP6Skop z2NE0;we-b1p~zN-CUU2>eC<8g;~Km zUrsb>HEZuf`KI*Vd9qkky-n@17NaBer<_U?@4jdfm6>J|ZEwCVMcDyua3bO}IF-?p zF?G63^kj*x6@W#VUVF#RZIxhjK^QlkFPdP1*g@@(;Z?*|2)5d;8dO@gF?jk#J80Lm z2&G9L>ZMa%8{!@E!$cWb78BY}8VMc|?{1yibOC6=7s7H~vXfKm{(Oc$m-6iyFWj;E zQGH(BCt94HXB>ziImd2j(MhMFvGjqKI?4{EaG>U>>hWHmZN%4>%LQ#J$U6BLI7K~+ z)S#&*B5If6V@ObYzbu>b(+2?ull1KdvVvE0s}BlEhVSZ~)NA|^mi=vr(cKNo9ceZf z%t#V*(cHlmadTLa788Q)iD};Qw~nSOx0q&)vRH}XVR_Uv7FQN+vd%OX_H z1x}WP`C_Tr^{;5efdAG_q73OT+vu|bj{2&bP!o(OI{z?;@pYbbmK4>BJ|t%FgmQ{l4kYR$zgP+FAO;hnQ4*y6+D(qdTyFLC=jH1 z$;&G}-!fRYRY`C|QK(s#5^A|;kR1mvY!=PwIt%%8AadBoE0b()ksVvJqC_Tb zi%xqRm$E*iqwX}^qHuBa9Wd=+!+}b%C;dY18W%|w`VHbbW=8L4KK~ViszJ5H3vU07 z6e@Jt$0A`@vQTL{M(3*wBQ_DQT~mN<)nK`ZT!)Y|Nr|R3NL!24kS}ZDS|!NxnF9IG z?q`e@8y8^q)fGcHLHkc}h#hnB`-z;&Fhy-rB_eG9y&)B~LuAK{^*8NW--%Kj69@Ow zCw4fDUV?2*ZnKkG*t7Fdfl%x}GTh9R`Hs!W3mmP1a%CRY`#MF}1u_R4pTE|%F1X}a z1yQqz{Zwfu@@t^vANm%V zkWXm^bdcTJ5RLsd@vVjqfU_>{dLH@E0O)1)CMHx<<9B})`}npk4?lJBx+YO1+!ss8 zd8?gJ{BRt1G@qHat-B%(|H1j_ueso|EwA&E9&g6F#uxG!w#^`}= z2q32f@mn`mj@+cxacgtCQlArp!B$-1ZUcm)BDl}3rKTwbGdK1aat0jY?I0GK&)JABt zY+UG6%zv(&RvSKDL3A30O}}n(9gg?V3-gP8aQ5y^gWnENqDL2GHxKJ-?|R1`Uz+tg zp=FwB31fkAlbM1&*mWojlCeb%7({4l{G#`Mb=B{sa#ZRtUSsR`nAnDn+J)ic(uv}s z!{U?<BG&YI04}2vfEsYV>k`khPt&qJ?*SG z>Z^034ti1>Erl=zGM(;`ahoxr{-5f{rXd11Iqf(PL?+MKOrfVKp=fJZx`0tfFvO0mL@XFIqha z!Bm*G#YViPw^z!093MC`V~&sqfacitsq$^Pi~T-wiY`_faLwtDIyG9}o9}&O=Vdc( zBdoJ!WTLfZ6?`l96`Q0aGM4*^U8FEOD|eB=nab!?roOoWukG6UbGB~Tsp6ABeI03? z(2(DIY;gPFX#!6kP|QfO&c8>o3-%DH_MzL8qZhz~fwN82@^x6$QWJ4brD^pi(O}Zm zB5MMd1KmRp6c)zyjn9*IDYpGLlh4f@xEGf`4U6_!@#)S}kN^HtT|W}sz8JRufwrAp zmHIKfu5Br=Q`ae*+PSdFaGv!8XmHA&DRzs0wEltB6mWh6Aicyr3~sR%_dl5!Eb(gu zSoLmF)2o7I6*stNd9n2}+C)$3?1`U4=&(4cRp_dxjc=p(IfiZkVQ27qM+61U0w^=A zUF&jNa!zS$xjt5~QWPe>Ad>{mHigvBPH>Rw_G=yIq7I_|9=W2IbAH4){%uEn>SA3i zKD|X}k^Ja3hBcF~6#dfT_;l?Cx5FyZ^8qfvs+uh(Ydiu&?~IcE^aJx$z~1(ix%}&$ zJTk2nIPsd;xHaj*vpHsnEnViTtWoaxJSa(y9N>WGb(W*ugA7}K5?bxSKXf4r8XZZX z58jTK9$<8GH`#lN`Swqc^19TD&G4M5fgfiFOC5cyE@r*C@^k)Gy(?WiQ|!X$bph|- z(>t5f_nxrbE8@z}NUY~4N3O>+7U?u-@ZfqT_8XM(l5TmK3M@8J#YDw zktJeI|1$0lKT&*J!U)Nci1(SBFif7BsEPHKLEI!(7Rl>}#Sl>oz3OWzIb3omG&kE| z4wMRf6Hw%G9nf7zowIs=a*T?v(8_IPOP-~0qt~cl0&D@kTMvq!Oi?`c0r%Vky?kqE zjV$IyuL{{)qA_~Ub9TfT$Q~G4msYr)a;tO$l&aY$AKV5)zC`;xQ#Q?}t|XI`)qEr+ z8iDlCk4r$Jd{CgQi-?xWrsJ)FS;|gF!Njv)V{g zbV+f9XSFh4k(s`yHk)?k?OkR@R7ZIJm5IJS;V$>>o zrbM4Q)1fIGO5L~iT%tOSu}hEWNzJ$8gslv^sG@#TiL(CFe7EGgoGndCTBkGi>~+*D zMJo9vjy1=a1o6;f{Yt*=C`}DJh9wZuAW4T{9LUWq`VYv#K!+oo(dvP~#V}AmAAic( zYqW6B!a3T!;4c-~V3N?Ak&0R&MgS(D>FJr5NzovqJ&NM~^qZ0212A<&ifB&ZUAt|u z_+VRG`@X_w$a-yh@?zxu%rb!G`!#p%mut!hdKJN|qYh?YFJS?@$dXxSMA(k_H!Cyc zIOPQ6QI6+vG2>4%Gc8U~0rdAlEngLN#$O9x?F^pxgCTqF^w`jGJ=rqlz~kH)(@|FA z01_eDP9aSlGFjfzj0uuv!OW9pyZNz9q&LqrR|jal;E3^46A0>InT?h^yZ8`mR>^-U74>~c*dl@qgBA?`$gn0 z{M@+e#Xmx&f$vuZwZ6~!zuI0a_^?3h0>7;3D%kEk%oU=-9y19$LY#ED8Xt`9QM{YW z@4az%@3I2W0~(2nQdR!-FghycDp-*0*g>$xhl?6d=+fnRrcX{$)mqLyl?{o2#45=U zl>n#5Xa{47z>g|2B^cfh_8FHFl_xjh(fj@d3wFCMytNaQ&tv25fihMK+?lCcOg0wN zqx1i?`?SNpUp@*8W>hWUq~c~rX4?C-hXUfiZuGls83sQto`KZ}zpbA81XIq@-;xy# zaeZckPbW-@rW&@&Ia$8}%+lXb>H4Dc^;{bfZF7c+N1sPn;f9`3VW^NposK7agI1W@0s??Ky$XROOvrDTP{cMhRI+PvVX+= zoAY=0`6fB%c#~dNR!NLyvX{tyX+$5`Z$Z+e;-AiaP2I2K2*TW|lFD3Miv7&(G)dwr z;$k9h~Mz93B-O^_J#8j(VviT>7>Ndj)GO!VA+y!9*N1 zD|jsQUjPhwCt%<2sf;%W#$$+SMRmxlD{}mF+1+XdJq4xC-jyo2KMs z%nA%O*6ee88Bp4*Ij#vGtyU4~3ga~TWjTaa!XCR7yfw%eI!*xcWB9wE{8J^hgr;~7 z*31g;yt(vBUD3%x|CT`gr}qeD@1g)L<$&_&Z^kXs*g(!e2kb*YSn=k&U2(ev6&siS@S0uPPS1!-&)Lr z7*>E-;Mb5WHY%(yKt8Z+=m^WIKDsD%L3MdM$iFYlKaMYRmTA=76fQOVXY?5_YOa_B z3wU0uud>@6%kgtzC7&|;Af2~DB{bz%d-cT@J;Ir)^pQ?-Zb>g|)kJ4U?Cxz~WW3edpMhnGC_1<$fc z*z`w%2ozUf?p+lMOHySETACGiKY0anjDjt_r>?)e(x77-j?LLq=j~o_)v*d?6c61i zP&z+2$SOh>I0Tx@`uXf9mEjfgp)G@CXE>il-M%PW?b!AvJT|AW*)p+FMII47dKa^X zt&~qHbNley`x;*#m=zcf=MVyY-+2c*8{FA;n3xcB+-{;>z0vN>(Gx~22=rxChXblb zZmw1-K|QQ$cwMHNK4!0)X)j0Bj#wAV?)X<%_HAQqIvdB4IIs2O;MU}9{)bQW6_|ns znEt|6#7nIrOw5ax-_84E64Mpaj`KoI&r98oq!oT(({~y*Y}GAZWUkYZY})?2e^g*5 zbApsm0Z^cRHv*k@mH*WCD&!j7vshBu*ZZ7Dxya!I{A84m-0<0|6nb^o=-m()a^u4W z4xpH2)qq>YS>s$u7+YOZ%z&PFm+_H9I^gi;Io44O2O=6iLDWl`W&Sm?@RZO$P` zYS!18Yl$Gu2-N3v@pI9W+lyeTlfb)FwD?NQgeRiLJebwO<(XDKmkqDV>+t&-_8F)e zeVZaw1R8E!^jVD)cZ{N(je@RaAiueu!?^B&Wt2Ia`R}{?lrEiX3m2HBn4m~b&eXcPl3!->XPv;q9KOa6U0n&I9(re9n(| zl>87w3LT0xf!DDQTX05ID(@QdzE9fKdRGPhNJ~qTf<6(hNh$~=nf^nCf2v?(D3A1) zt>JJvmquDR80AO;&^E?q<{xKE;tE^qIT-p|O?YvwJ@of>SL3jTuR43O?&H`FvSN9- z=fhYjH$QDKH1|8tAD7Ij_;<#w{r3;^uYh?#i+{7!Y zCM>&Qyp-;B+!QY$Uphx}ZaO^FInkfcAT$Tk;|xhA$7_r06_n$NPhb*q634ZN(VwB2<4IoioF&Hn(){C_{V0qE+%@lNv|S*HYLT&2`qFdyLFL&JeI4sp!tzzXwh09QJJDDP)eU`fVfTO}O zP_z|Xjh&gE)u2gq+HP%tfpej@ljN;L_IDWo(bTU|p>>2H?``D!n{0?u#Q95k9 z#j>V`$dbQP5-h}RWdxI*6?Y$>24XVNtC|6w)EJV8SyZ5SiXG3!Zt8_9{HOOms7O!& zqyc_bHxi7xRju;Ro|8aZz?z5^z)~`%a}1P{B-@1*wP0VwU!Qf%+@jmaLjw}bX~PJ ze|PE=XC97iw}7QC*i`k%HDAk9Fq5wYu6umo&=U2vsUCYCImVV6XG~i9Iv4!tuZjbV zK2PH|IgsadBDi~>eqyxQmN;G5xnOZo^7jLyal^39AE#9Djaj$Evsa1WV|5R2ik0+M znlkOFc%vK2GSu!)$MM@oD(_8(jk1+c>rON1c0K2nlbOUsxk{$Tt2!4dlv>=zEXZ7f zWjfxG)#pnv8`Gq9FjQ6Y5G+qVvl!*6J}Ma}TmoRf)wlLXx}!}b%)f+$I8S7mHFbnm z#WgI%o?*QoF3jm#N~F_=K~0>K&N%b=`abV$&4mIjxTo=pPkN}23&jn7U{-~|-BpnJ z2FhCqJ?-1McqzpY{&4$GrPvFcf&D{_9Fpweggs4j4%==lcSU+Fi#=8B*1vB-4kV;{ zXJf6{w>G?GNJdj_skPr!E*y8p*k#+J+n2FiXu}kdcQk{cP@3Xs+p64D;vP))lu=VF z`XbfS{`E@q*f7n|`+IMf^mV%7$@)U}!oJNCGGy%doCUqhtlkyS+X$$hHcvt7zV2YG z1b_UHi6gIvtdLW zyaU+KVhTBTcUY#RtGZXmGbyUpQ+^co$HTNf14rb++(;XTt+mPH+24kg-|{7>MpECSsLe=Q&q!BO|&i2Ynr=a>d>umyHAx2 zb*!NXRY=BSCSr^v4yWC>YPzB>dtCA?chxUQyqZ8y3qgFVLO5vMOY`HPDd_e$L}b3; z9*yO=zN!3sUzj1EsDOM>F*XUhKzAxXaL}D-+N0LQA>h`?r~)G5-L9D9MbN!3_KH>11O^#bXSqIHD??liC@+0~x94S1Z}IsDfef<0)xu??^>vSkiOYm7(m5Xw z`a$NQD`4&T!OX3Y3w*>o&gDrC5a4T{FlKU9N6q2R?n!W3)$8i!LD>Q!h06*r#7x-I z!0Ht7M8>CSJnel&Jv(?NhrqDy_R!m5eYz{ThqH38J|yZ) z{*>CKCD5HJvdn3_S?}Y3$q(ueMdh#VO>Y>gkW|^}?}U|;=Sh#PpbcJ5r0$qJiwyBJ zm>&LhBpP7BsjOj_sseB9Gv4uTd>%sGGE|9C>EF4BjwpODRq}PI2ART`qZ_vOx3`~m zv;whQqwrr9K$Q=D`+95UG4rGD3Kd;~F{WSOx|k#q@p>f5{i7H7+0o7*NVk+;M6T1W zZYO-(ERlMKj?Vejk928zztAbcVx)~@TJ05ChJ+Y^(=iM>oi7QGHOZUMfztL9#v#`)36zz2|6Pg~T92 zS|PERE^O0?__f;$)vdQy8daM!pV0vrB-3&mWjjbMFg&CX<;<~zCALI-wI&qOg>o87 z0u6FpfyyfrIyDs)a>u1=2uMdV;=u+(KF~X-md2HFREATXzl^CJ^ru(ocjf3k-k^V; zv#$6gkKGJO0gat|^O>CefNe8{=mC;>oo$aN`GJP?U-BtwB&;aduN|}w2JtYD&oe?E zjPOhemK1S8b)Zc5u(=}BOtmW`iMFj#i-APh)Avd)NnL1q5seZ6w(xYJxNUlRdclas z;GPm!!(B_%Q>fPEDYd_{GxrvRsFj2V!ceC2MJcSb^ZPvHGGn3XCiX`G+C7I{RB~rK zt)@MFkMku_1LGAH7cfuq9oOA=+vn&{onC%2B;ISoYmNb2|NWxc6M}?j>ZI3tZ~s?q zcsKRP_O)mKYu%`VOy-@D(sWEp;Z2?Lx6!uPK^=aPF#oZXD1$8r5(#;`VZ+hmhdx`5 zT9Ah9&sU#Ug!=au3=7t6^>{M@6eGQHTQ@Qa(&ogjJHzV?66hB~KvF-RC{HCpiAO4r778{gdil@on+O8H2H?oXT8MKOufw?l(| zHc_J{J5kg<4>t3c3e6ufLj2Z>wm3J+7gX4n>Dw}&ULj|S1~onjyI{513dT9`)p*`+ zYC&;(b2Y=B;<}N-RYnJ^S%IcvC4EO~@UgLQK$l9j8hI9#Q26exiB(9TQOS`10jze| zOVO<~)JKdbpfC2Cy{}z#5^Y!Z#QMRMLr9siMZ2pCibK!vCdQQHyei+37hAz~WF(Ny zv9S^g(lO>ueo*k}Z>T_w9?GRsCoT^~yL6&z`R*0f?M*R3wW(@l)#BOU%vFKu$~w$5 z>sds*m3J<6!#)bxq3Wf%?0KGuOfer3pE#7`ofjaU>*RVa!{J-W&e2bbp_!hfqBh-R zstQ4x@R`d<*$B0D)xc%e1~*}VSe@8!JmzR9cNr*i9BHN(l|S>|^MDai_Gx)ot6lN2 zgR!AI`<3w$3?W@X?;>Z%0)7;4{l8p*8dWR3-rC;$W!D3p$krbcC$LuGF?!Ffy$z^c zE8wU&xj^$%V3!=RgkOiDvZ-yuXl_y{BXD+82eWDC$)Sk0{V}vR6}5kQ;#6bA{l{TW z;wom-pKU{@V4fu6{{nj@gxaNI+m&YQZhlj4TjAWIUabqYdrnsEmMgiQ^L*1eS-9Qs z_TF?XYh>07EUvX5U4u{-uPEU**tM<6opGXQTt8z2DHJpJqBYO+TwPi1rBH0l)XtUA zy;mD|BkXPZO4XfeVXOTf?Q&}?DBiNZcRT<=-F)IbfD)lx`&_h^`)20sD!mA!t;;II!H55O03*F6gn|Bq)Z?SbQ zbz5z>;_;32sJCg0-AdIcp>00gu)+gmu}gl=97Y%7o@krQ)egB=NUkVI=e##;ls2>R zx{9}}1>451&bz2;ik4D+VK2Ebr1hQB&D$5E`nndelYD3GdJr`nf-!Bf+CY{He<&DG#j@Q3W;{8n!{pc5=OC>o%_Ub;_-lP=Q~qSQ8v2LMut>;WJKd9#T=Y zevgaeMcb6Ug*~;Fl@}@nqUenq)1LfVN-y;$pX3Mz50e*frm$9QP2JyG?H0v6Fsd9@ zs;Tq9w=vEof!<@lw)b1_(77WX$PEnA*p=4r^KVlGMC`^h4Dqu$p7}^s{##nO=?5`Z zt?SpNIiGK8zj#zT%*p(h#wF>(X1R=o_HLY_HJ zc|Mz`l94M)Qzi9{x6|L3wd*DC!B%hL9b-x6N{Co393?&0P)YOyIXk#Dl7qg>6l(iat+IPdBWFqnoBEn!ivS zyE;-Ok2Oy8?@jJ2Y+b~mRQY>ITNS@cglq4$^$&l)9@J+pM@_X2>j-MQ%0=38s)`AS z4oT_QaQ=Bu3t)qswdiIcP>Gv12N|YHpseoj*2Ci-XiN-k+-u|gxj@p~tJh_#Lxl>9 zE)F;(Fks{%r?5!iAbwZFTTR<}k+I|h4?1pmW2|oUjP|UHX!Pca;tWc($?VuWueMd2 zgIpLX)yB4ko_`fi6jGc6Fg*t2z71;}4A}$jVVgW;n;obTGHi6v%WUkAA3ttFU>Ol5 zdg@8f+>A1Bk!HMz z2YfzkM3}2_Yu#ZsrjtswkS620VZ$bqCof@X3e5>R45+A#iLe^Pb1)2199n7kRc7cW zWupL|o?s4}!U^UJoglS!?v)AKg5^fF@qjDnXD(CWjrok{=jSgyBo^5e=iX*rdWolH zx>OW%y)6vwBs04~2f_4m>1i}LB_*2EbPvzx^WpT*KmUB++_%FHdn2ob+N8Bb7hSfN zy^=EX;7!ij9MuuT{&}T6D>qbnMZLpD3~c?O^^DeN?n&5e${=N~)qj8f_+?f_ zi)_Y+-Y{Dvg(cnaPCjj~!#zcntq53pOXKcMk)_QtE<~B8#?BkkX1_x(PKOWmaBuj% zp0e<`Yf#Ea$1;=~=W`7mWD}k+zi8aA0n%uxx>zNXtsmTVtUT%lTx?U4?ML!Ej11I? zR=}{Ji%Or{NH#Cb$H&LdI>^S2X%De4CxqA7bb5dN;&PZO3en2?HukNwjn+;?&Nfx} z<~#)>HU*JR>>a>jo0Qt&o_ZFU1@|tF@w&vsa?iRJn`m5%qg$t3b)nkTDIrt9!Is{R zHfyJ;YgE0j)>iy;LrNu%+C8X%oud$pc7K{-wyCG=Wra4%8<5v-#wyP?)Ql+{o zWwf7I*V!v0Fs4(XwvltzqU;CRMn4#`w<$`H#aZ%mHbvpi-pmS$82FB-5n5?A}?_B1|^uG^bEOQ1q}UPQ$P^lu458 zK%a(KTIEf#eQUEW%wF_w0~}`0hO}uNqw=B~s^$49>R8r>Ibs#ydp2j1u&F`&;BQ0( zw`yx~@q0sIoM~-AYwMGcU!zKeHH0S4otZwCmG$&4@6eu$EnF$R-%Y64a_3f9ef8O_o>w5iaHXRY8mer?OPK_f1Z}dt zg~j8kI~uK;RHdSnHPHlDBu!TLJ;jkto~gofbC4A#*V9!3*YZQhJvg<%OWAj+Z0&iQ zG`i&<4WT-fwg}ipk2kbxh^C~d2Uj4V{m!M8Yy&2(HW#U~gRh5j8+23sFg@E`x>0&@ zfQ(H~)#j}SZza8Yx+NKI;%Mc#38Gja+ay3$kSV&PN0qOqTx$EetDf)SF3qSYQ<=Kb zZ_G(H>Wg{EoPmj4W{gM0`1H8f9MA>r7d2_p+LVJ+P1jAdtpyw1^&BeMz)kRV+aBN& z9eXTV+#h>h{|RhrZ|kH`ZX&9o_`)tk+dubrTjppU*!hOf@#{pv9_rY{ORE zggFp{Huxg7+O;wr7rd!{cLT;k2-9^8K$Flme6>en63j9HHgPkJf|tH+wiQL_I#w~H z8d6&A`DcKMZ9q&VUn^3sXEJZ-I<_r9XxsWyqXY#m?A0&y>iH=AdT+?=Jve$UueGTT zUlIxIjQS#tN12u__sgs5Ao|AnF5Y&5wot4y;!3w@s8<4?lWMn4vQ6rxaj^|iC2lss z-6p>3HRiySa^6NUlkm_6S*U&T3_*TKM;e?CP>TCNUHjUlpDve(yA9``> zj+@ZC&_y=3kfc_&yrFgvipq2ti*VdTuWYYG%b=1Od=e5%_$glLadu$vRLAq^_u1c zdbtuGi@I!L)9rmJz1)P;{6!93J2r(v{r*kdxuLE3Vb4L~?~eH^bnAaty?#D_Lb{Gq zYhLK*Re!i>T0P**54rI;X8U7l>}%-w;LTbUPhJ>)R5{d#L{aj6fRv}fWZ2V`NLK;G_PpQ!QW}TuXse; zt?vnY%sWg$u3d{l!&4XAKn;nIZPse>vqFE{AXmNiHq&H=JKYTHDPlAaEzBsAQs$@4 zG%`iE{%JR+()IR~xANWMo((j{mGxBj8gPuY1rnNTZIgSel%n+)S+oCr4$K%HQKE`9 zw0q8BKcX%by*9`4FnEci_Efx1gtDHXH6cUsdm+{2hK2rHKG?)AW^H65m%Ut+(iEUA z5>=XSt2&#~Ns{TP*CJw`t2z(j4es_}by08rser*@h);?=hFK@6wqe<=6E&PyhV$ z&-eBZ2muOtwpT=WP*}7$_Q%J^;oG-wH^rsGhgM~`DN~|VUbco`c9eO+=XaIHX-wZq zPlX_-D&8vkHXFS9y!8^Ub>(#`)#(ND_X<%LO)ODV*mj%g;sGjTU$Nk<-D0&YHU?_X&;dxrEsp^S#-=cfVa1| zpB;s*rr#^OJC$gwOn26XZoLz8tHo-9*daW{!z)WuP1^P&SH(iXwT=7KkjG)3y^zNF z?ZTXQXqCP)GfINm2GBZ`hi%x;O`HuO6wb5_diivFMGBIoz+XgvRMdjFdzP-fr_Z`K%5#EgBz46tc?JVl{7PNrW(E+7+ zbX;5)%n3-9c=3XJFsi&F*{urk9_R^42XfvBczsU~u-?4CGp)>(CejNHg?&N^i+L3) zXlq0B&gL9#XQ*M7_R$(e*#suiC4`nS-YR{m{?5geC+1qJ;9{;*3Xq=ld_MnV^NyP_ zWO;dcxgo-B;%U+WHja{s(pZjKq7wB)EadiB&rm+Hg||+DZPj<12zBqURxP7{W|-MY zO=IDkcc?Yo!8{dVE~VQLRV(QlJU>6*e745z3&y|n-q_!*_i5@1_Hf|fwDpxd@Wx_x6L7&V2z2bWJ?FR zH2wmjw?jy;Vmxi;xxJU#idibq2=F{ z+$V{wgFYLo>9)5%W-aA-hE|UY0MuQJlr-+Im2A<;zKw2Zl`6|P?EuRPGIVdYx$>fb z6@shSh0Fmx)`t4oDQV8C6>puWz(Un#TFEZMw&Crj~uVdHLjdwE?QocN?1~ zZ)$HsNpxN$F?-jfxq}Fy*0!y_dNlKlDzUrYZCPkSY!0QYYX5DkYzu)MP%6XRB)zT2 z3U{<6ym_8^N6P_1>vKkb`|Y>G>94>3`d$=h8`>^uunjhim5a5@acOUOy+@}kRRFu3 zp&q&_6mH7nEjpEs(W+|a;&n~7u?UJ8YzMMgq zNLIxYL(3+`+eB95Ylr6a^V@b@hVvM!Lb;X6F|_D~uas$70hK^)Q`i`|!mWZaB2^pt zuxc??rEC?y!J$7*fbx!d$1 zb+JlT+j__=FQf}^E2W}zJt&RkxA}NB5(xry{&z>lb?~VLD6MFlk~(kXUXxNaZYNf5 zbJ8~JyWwc3%5F*~QxoeUHq;dOuq5Cass5GT)62HigBq@t!ehZ%eJ?}y>a{hr-PAbE zS>NB^{}1M^gp3!XlVG))CWsYbDAjqOv|-S8zISN><~tj`qvHbF479yd)mE&T$j_0g zULI71t;Oprj@>4pDuQ&trtq-`$%Cy}f);U;TCMh1NuS$%b`N=#6I&cqp|NP9b%i<5 z!`KiI>Kyc{PFBUl1iwh+{Qp^F3$OL;4O2VV=;7hvCt0!FC0%g4wwfDw2rTB5JJd>e zS(sJpC`YPooSVYnreM)Hv^uPA%#Ery2hBd{3cQs?&{^J{r%|1+%4cqxzb3`)=jfak z`%ku7g=9a`zK)%!s=hTQL4(RI4O-WI^s@MD?d%(aFu7kx6zJib6Bd?kk+xD&^Ig>+ zyXh6_?2H~Z=Q8w#Bm=g=#R|6n7OI?^J{QwOu$^ii+De>O{J?m&z2KV_Z1=KNc0zDQquKUffs;9lQ(zRSGPK{uVIR8?wuZJZ*@If$A~&SdU0YyMrp7q7bJdG( z`M-7F#?YmGv|ght-3nlBLw0jKoK{{16?`7imL|t`SXN)EA`NXwYwjjFPr$^`u(SHw zTC3%6b5&_ShRt3KLvatfZTO`}99^u6Qx`3g0C+D< z6cyY;%gXzd{MUJdO-ya~6ww2n{F}5k z*{`K@+HQ+)4deQc&rzWYjZsHucZybviREV%U~wjk74V`^trOI^*(XvRfQn-me)po( zqqmr8bK1rp7L4#&L{QZMtM_SG<~p70zH3Qb^d^F{fJ06+4APai$TSaU0@~-89(lX? z#=EGc)d^LzaO3st4cJ;rH(7o+(u+Or`0?@a1`3@;_psEA%6 zn;iGgKmYt*3C_$2eT8 zT&Yku&%;r1wyFqD657$xTc=>_Ol2}x9kU|^HU_LHVf$KCsW+ta(wcY+xF}n+4dmIp zK^x~bHu$zCWkZ{nZEF0#l9w{=IBs({ws=yKn(ovw11f*F1yc9bB+g{5Q<|#cZti03 zrIM3f=vMG61lMlCw)jf(@Zk9_6Ry}u=DR4|=5yLLS3R!|(y8{9y2=70&YP?^+j5Db zT-&(hP0g_SyG8D%$Ebqnm4oux+dx+j&<3>%Kp2V*;$}49Ubi@1B=Be-u0POm$-2tc zOUk>kkE2!Ky4FgZiqCiaS`%~Gw_77sd%%6h%JhsCFRovBwoKM)P)!)~Wt=eawMvzp zr=s_Cv|Q(vw1G;4;HBFnbp|>uqjiIem1}Jju~oQhr3=C|Bq{<{FvND|<`>%l)~YfZ zGM8b{5$03Kv>oDT^G@;cCTNwDZ!gGp+uOt57FE0PgogzJdeBQ}81$%|pem-f_^7v> z1-0@z8{>e^ZA^qAgiPF7A89Ve(j7V7xY~rW6NK9{vI+Y&l+yq>AFwUbQZD3%Rp(Z6 zXTb(F)AYtAP>Lja4g^!`^}SSOZFD4crz}?xTthPF;3k(V3S~dBJeH|b_!3QMw_%?p zuWicSCBK=URNlVDCl6igCXM~|7;WsiTrM}2|Dt6wXzzJVYepJ@xqOl-XCsOr8VkGr zn}(C&MWu|YPT4UPo3>R2Bcu{liN6D1^`sU$JJ#6(ov5M{qqZ4@j%S`aojFhw>`mvn zYLrgi(o<=Wk1cSuI%-j@QuN!5zZSQ8pelK@ag-#t>7p$xR;12L*nWvYO-fggu=o7@ z{6(d&iT4IN6gQtsZdlg3(&Q;V(>6_4FKEbSa=VS(-r9*b7D5k^yfjq_%i#5}Rk^)w z30{U43Cr4Ou4BGi=0(K@JDtmCoPAbzt)71qEqr}_{VDrX{U-@)%8_*`Sc~P!UE%*GLInNBptYCuHxWq=G(oImV z7ga&FdN-@`n|Qcl(gk6*!KH?pO^AEps>1K|skvn3vu$KjL)ncXUOlyz793x(wGTKZ zyjp8UBO2thc)9UzS(BxGZ=9YcjfM(sw35+U@#WrbU&36a0(SRCnU!zmpIePByVuyd z#7vX*wiUNqaO-MpPjq2*Lz?C_zv}yLadsnbZrylI(hDKCo3sQ=>ol#V3trSn{i>j9 z$Xda`vI9JW?Lrk)kcMMvVdINEJUslYr2CgvJPUaV<(AIwqBi8PiADa7hrx#uiD|-a z5;m$7S{0w!1i7(l!=|kzSXW+JO5J;NF)0iRKIjR@6IJY?Lf0Asi;-LBWT(Iu8EV0{ z?B6yaH7uFSI&r)s7+N#ZJAC{0ZIxG&3~FC~yI0%Kq4#winwQ**VvH_28Njo2EXuIW zX4odi`aA84E7BzfZsDg)U~jmV)4!X4o}Ztu@;2MZaC7(Vd)Azi*8lcv)-cJep{|HaPsifIzG+!5xq1*5sjBdhi-l06MTXT-;e3hmm?qA`7ifZebRR(d-@6Dn#WYlYwAZS9{ z{u>YURvy^qnzwSN4NFCTdK7et!N$u{L^vLJk(|rfB5iH977u zO3^N1yjqm9HycuIu$^MqhG9h~?jch5Cb+iMRaf0v=^Bi!(X4q!Lp5^;^O{XD#A>{r zT&Pm(Xguzv`1bAF4WQ5(k|EhvxD^s^uX%G+jj7(O>~53ej;GkP0ZiJ9n3?01qEsdR zO+oYe9<>(2j*1a`Q^obmel(YupWnh7TT-pcd*dDb)}+#(vj$>V;`3J^p~2uZMLzxTPr?d!sa6_X!$u_ zIv22GmK7)NY(=fN332ss?OSQhpw`Jyaf7%wgD|jXI~KP&-9_IzKT>eOZozE`%=Wxn z{<76d%t6YV(i`->i`Z@b-}Np{#B1?2I`y(uO}i3 zT5y_|^D=fIeVeKZrMBBmg-3Ivicy=;bbvqgtg zJZVdA0gV=cH+Z`;It{@a3c03UhSKY|@!5Wl`(U!Y6*@PNp~4tfb@wW&dpWiaua4a6 z4cAJv!>x4^nXSgOt*^B3WCA}$s3xv9{TmK;W_RU>)DNyodAt3#gRxD?m7k?0_nj() zAr!8GGBnwQCrWYIa*5_u_V#xqK;iyMGBp%z(O0^R$fY$Rb#YsuwaLuBdvn(cI5=!+ z{+-4?*J#3Dl}_wRy{fxc^GMo7sR$iN`Kv~jR%;DU+B;pHq^)JLt(HyfHsucG`%7}G zBx&R1PP*8&dlmoy1-nT^K~$=RF3MLg)?N-RcP+IRuN{!pn%!oGm%35Z&$fUnr5LjQ zYF}F~+vbeBzVp5n=QH=+SQ*0RY95p?SmdznzS4z+x+lzje}BJT98te3z*HKEFju8r zwpxO@Mri;o_m@>!jjK(*-eD=u1ovRJ(Z5Yr&8HNha8#PlYEEW2*5}*Ct643sf@C>l z9nRB!m90+G?z+~M3d7b|NnfuQ8joCwovKT2b)>o6qm5-7fw`yonR#BT-VJ|yc{^LC z(U9!pCj3)u{`~yB{;vQK(Dw05LfxK?_AfL>Zu{akW5YzbBx@@Tj?`BlM-Egb6SwHLp$3pZm@j@CBaw{5fiK9NihZo2~Q zYAj3ELh(H+k^4UtcMZ?x={i}qU1($P z(lA7pjH|6#R6gIIsr&TSx0>FATpGVkKQ_;poT~=D2`6jS^)kA9=RLMtuVGP>b4h?T zR2^X2;-eSbI*KS%2U^NlXg`YZe#N=BkhP-}dI7Dq>B%h*ArEph^xH-yZysQm%?8CGX7{-kSx2|J+Z%w4oYZK!lTSXrAf?L<8 zk%+acG7vTnUVG?k;I{~<{r5NBtbhLb=l9YI#J{&W(&Z18YEZ6}ah+k$9N>P|mX}n- zxQSz*&jlE;Ve2;+-t8su0BnS}s*4O#(&}}4xSNP}T$l)7RqwZI{+83URo9TJv-l*1 z`u9!NtvwXwG=wPopHz0|W8t@l(s zz2l}m=e_(lE#%J7GZycd;0-P-ilV!_TrOWohTF8&PPp~(57ym6(bmM(T7;WBo8wIE z)Q24p^vJSJ^WKl~|w*b7g1IWjd-zF#Ua=F~7Vph_r zLxF_kkF}6iam!Hcjqhv+J;K)S+~%Lg@YRUb1GLt%wMu&6dO6j0YG=WD^8$!oMMSR<>OW=|jz(hRslYuX;HX z?Iz5n;?H??CT6{FHIO??Wuxia?{eIRb=Knei^jCNUn{FtlO;JCnr-UpE{d*RMT@Gp zwhuD&17gT!{P8#)x=GeKVLdW z7pI{_Y39O|O8d-WsUTvq+{UKL)o;^_HhI#m_q}0DNdi|3BE|+Dy8kJ;b7_NVd887;o;%IVr_5ZVrJrK!Q$X-m31jd z2mwJ3Atx!O>6v}r<<)8V9dPt+U~}b?d(_5lNzaju?3U-lnE;Fd&aq7h!b?jI=@2#+ zaS$Y;|1md))w^SCE{y2BfT*Ri3+e1`>|U*I7LTsp5Ix;Q9F>BXCyLqy~O$1 zJ84ubWNWg`T-{X^PrqwkG|bc-@%dad`S)yLdRRpK_gE&KVl9U| zuIF4DJq77GJ1p7XiU&U_6P`r{T#>&n|XP3)@y>b8Ds#y1Zw6Rg>zcZ(O$30K?dH%&^du*>U_R$PZ zN;Q)1AJ3d3^}ijba|61qGaVNlpUTQA1Pg|lJm|>NVfA5xF^8^M66&caC@JYPVrB`S z1?;=rGO@wEWr#&AWzG9v#|L_+8XBw|&}&wUcdUs3D($>l3FP!q86nV=lDEb)J!@Q3 zFIQEdPhr%Z?DBm0F=Pb-syzyFh9u1j8p_QC=Ta;Rm~zclp*1_S4-J+7UK?8xdhCCX z4(VO9Y7zFKay~djXUW3gJ4|d}I**FZ$2T8wf{zt{7IK8^47lJ`n$Je`-S0%7q2R*> zQU@!LBU4gX9dqoWGByTwXh`FX24^{jzrvCIllt$?OOM%6sLRrK^@v&d{cPUh@_MSl zL-e#9<1szebqJGS!xK$>SFRlyCYlOUTF%IzBnlPvrwvOV9WE(wAHfcJJ?HIf3$=%E%xX}nyAX0|A~OMYe`2MC%$6 zhN`-;*bUk=EuFf|S!{4rT}^J6h;Qp|qlLxxe53>F34*PiTCygafL$&U83>|;WT&Z@ zIbH7)HCEk8LglA|2EhLat8Ke@%N?>ii`%{Z4})kfikyjHSj4w_3ktZ@hdmNo`41_= zXLavC7m0M+?L4FH3pr$F3Ah)H3&gqw^syK4e+2W(p2nDba|hsXGVV09bP;=QLG#6h z6J?gR?IH3;g)FzB(vCbvnGc5aD z_lq!BFp-VNc}3fVB1+z|Xh2N1wMZq_;1c8m|uHvrle>xTuPiU{?M(vks*-V^kM10i-H5uzd#|(;4tuJLVr^~=73~V z3uZJ}b1GW{3C+aK!6iVrFh(E-Z@+Kd;U~C3a}lIsvBTHkl#a)XE~TzQd8oKMeXsi1 z2$%Jv8q$k>zlD_VuS{$)Qc3$7OQMJ6Ah9SbSkkFwat5uZ7~$;Ee=wL z4QA&FCkny)L~pi%;sKmVWEaQK{Gfybss|zOnKuF+VyX{`k-jm!VR-8#jGrY`a>nHt^&2k5hc}MW^IUNdAMl>Yy={j3U$G*O*-ZbaXOWvH!X&y*YVX^t z0CDhPdsF0b`hMK_-alOA*=JfpbQ<3ap9TE_6=yra1kbuoCzQ} zQBlyeN6s_mck{5p>_j)vtOserPmh}1E_X!Iak@grp% z7&j?oX+n(9X%0)nV6R?`Z=t`fId7pxjIO(%pJ(i69+IU*%vJHY)#n^U3aM zb2eG?Ai40`AS(^p$9^4LvpR|;tJv_30UkNP?*P|2E|Y4t^*hfaeu?DzoxoPt@+17?$tXy{ zZF`_jH+SFh#WlPh&+aN)zr*Gd1`^VALliX1_y$*TQL&h+W z&>XMc0$aAQ6`Kqi2K#{2_JA7+DUW}3#<}sjx$OqwRL~A6Xpu8&7CvrGW&SP&m?c*( zt~zSY?s08AYG(xpCI^#FJNJh_Qy>waZ0DQA37-J(wdQ4#NT)6C+)th?Mt@(8)P|Yp z1+nFVZxmjZ(&m?r!~S=k?u`g-&%95UN)*|iYE|YOI%1Usw=t#@Btf!A8TMXu!s!Ld zSnh3~{Ry7U?*-PGWZjlrcgyc2^|1v1m&}9Is4C5cj z8)eIj2Mjd&QS!^dR9a9Y=-4;6w~M-UEEtMon;b>*m;B-p8V3(Mdusp0sC&)CB|Box zrSX^0L-C`=+ouUkpNW|jq)IZjNz7%%W(`gJ((Y{D9cT1?ijYnTJ!B-+puZQ{U{P|1 zj3It2@8w|9!7o=knv4=C%y6T)O*wcdg>x|>Wo)&uzwDo4_uW+^j2qiEXVsUHa`e!o zWZIkq+co-b;5WCJPHlR2_|YhKCy9<2V6Qx^nv6JkVR>4tSdHkKiJK%%J|?fi9g@G9 z|3`E{%AcjjO?N&1@d+o*S*|I*T9WCvMT9z1xo@l4@Qj+L<_;K4B%jNKx`E{%*hdUBvur0RWZ?f||0;ediHVd6^hS)V* z6S#g;yyEmyd`Wc3$?Gwua-P2dsjO?B9Nx)r^AYfgjz)PZIMWF*N3Xm8-rEus=)T5Z z^dOEF{HXW-J?%0qS&rgff;^C!V0D>mz7*Y%D8PkSh|?G2Gr7uRxAhU2xS3U|wp}gp zlu?Ih;Orj7&c@oz0-|=|vVt#BOqE23Y9gdcnBW77)>~)J2gSV&I=cFoh|5cpq@*G< zE}$|9cos@j3^^jG0^$qQEv%fSG114+CX_DV_fBkBNx#cbOFB52TO*96N1!kN zI(BDiaN?yda1Dt{=V&5Iq+rNKaJUNh89r@A%+BXFWr{$eJa9>-F%>SrF)3vVPiAa7 zkD!93U;_bD7V6{g9(b6U1*?F70N-KXH_&rluG*r?>3SV}D&h>P{I#-jIV${R3<&aK zoJA11!Wk}iRMJv$r6e+Q)L6BSNubG{+3N4MGF|Wia-pPJRg`R)_6UdcxUE`dHE5

H!j5hb3G{skLPw8WgL) z2_T4o8%t0ty@iJ8Kv_%7=~@(*DnlbzfuLfm?0y4s{jsi>OqelDCYyw5bqw)`*BnS- zH`MG1BpPlWf)7cTzC%IDg3Ku4#Jn<|pr01baET-PjZl`46U2BqmhsDNJ2z5enH%G` zK}SR(a~TZ2cJCBEXqIu^!vFE{t8GK6^*4?B90+|(D$9f4=muk#`_$zvlbS)zpf;cS zXx(f9#)D>eyfro94Bb!A3Q<~W>Sq4{{FTsN43jd(^Hh>)L@p=$&z)6kovZdwLvsiZ zbqMF-g%etVUaARBoJ^B40%|jKXe@=nWHq3CzT4GaP9Se9j3jZ9ZK`q@JRiaLuPnmE zA*0_RdK`m)>f;qGnQAP0iz7t*HN2=hPUhkiZP(-lp>B6w=2PFDMD-qOYxd37?$|$E7ob zJU!kfYi=^mZ+Tf+K1=)wU=}ZOr3kMkze1Z82&)e7Ic*$9T>YU(5F=%<>LBH*a!QvY z+J?3hTLLAu+7PiM6BlD5=3{!m+w6De9v4A^CwNEpUNcjvN=SA(*9upRoBnEbNXg^Q z_*)tz+E^u^F7FQcm5=Z>LeLzOsnj%yvf6b!O(Bf>xRe@57YNBPzbgq4Pm{C$LKNdz zA?vz7?LqR4C*o_;{#Fi!`_IGzY2mx==9f;wZ5@hyyV6RV1r$yx z)Irh-MDD?m?gxo1-gfch#Dq^u6LI@;-WaId; zJS8wHK<*+yPr!1X>j;vpO>nRpQg&Cf&G&aAAytF=0j5|8I=3nBVWm%X5rYZK`m}_I zjQ|QY8e|Vwz;K?BH=Ac-gz;&1<}Fbm6{f5q*z}1Exywa(jK0&+79A<`+Np};GP*dc zDrO)5KBab^D1JZSIX7DeBk?_Q?s{HNGwy__^`0nKy<@fsOCJaV$*x4tQqhBg%uz30 z?Kj+zkS1Pz!ahpwP`8`#!eo2ZiqWe!R5^>I_VIh0B2d;Vf}vsQDFgA#9aRo2!UPjQtS7t?`ONs%{W21ucUeS{h6R@-A2r-5}W@~3^A&T$-I0M46DuMEC zMup<)3ey>&@Be5cBj9s6K*1w~dO8IlMt(P4aQ+k?P6xqRiKkLwQ;dkL7%wKZxoGN! zVwsPsW`Y^7O2H%m@6;>b5`%gw{$*@f`LXhK$FTE3`myznHTB8&+Xp+Ha1O^t_t68+ z_7?>Oh0k|*kvj=oo|uu5T#SD%E|_r>ES}}@>p_ggsBn~qp5}Z>PK8L);@Pi%%@&;` zk7+e2*Hbu}f|t(7n}Es2P)wGx0JTKvuy%~IsK3gxd}g{pey08brN0l-FXWhrJv`}k z1DtL`z_I<_^SY%k>C_Mb8@mrJq)laznWY4fJug?`_ng5riHNz#BlxnVi}0xwTG}*{ z4t40gp^$CF#)CIw99ydIJKTH1a8Gu|1M?t652?i)@*&nGl(+(Oo{dO$%t;+5nGGi( z>NQJ41EPmfz*&D<+!7%PJ(x*|ZG&^I$6UxO5vAgKORZ4d6F@)dzxEj8^*5slR%4$BcrgXF##jBot;^XI*p{%7W)`ZkqSxMNJm zj(YISc5+oIJOF3xQ2SdWtCfP4tfM}n!(I(EeIAce1L;%Tzi)J9Kjiw;Q}R_$W&3~I z4r&HBQ53*PBie`Q&>m=hGedE|co-ru8#^a@uAu1Kq|LwwAVuQhPmRDSupIL8z zQc;@MtlE)*>I`sJWd`RK|8cg|cC>WEIpQ6|WRD&-J6TeC9}6D= zTct3R$h6jVURMm7rGBg*ah}<4FW-aHV&o`J%}G`kgJxaf=wux`L~KDelY%SZUa72u;3l zNe!sC$oCC9=GS$=05C!=S)3l9{}ebiQL0W@TXZ*kZJS|v*fWHD!$qfbte1A~$=g>Q zkS;CP*@wx?mu|PC5T!LMTfLVV|9)7f?UCm17jz5KM0ws!+tR zXP+)m7TJxLkbk}_l;4q$J&kMjUZAZr)p)g44o+d89^uRe96`2L$=oq^YlwY z(+ZXk8j9j!Cu)zSoOcdILY6`l{>Kb-&~4izeyfk^>;6wJr3Ta|r0xF2JUjK#Tyj1N zn8Btkm{Urvx)|MlCGEPzFZf}jfwI3-Yoj;3%5A(MJP{n0ZRO*p(wybBTaP`$ZHF$;{2SlduH~^r5a_f( z2eMc#U`GR1VsiXe&Ag_Ih0g1$>~yZiZ;Q>?Kx1Pk`VqMm%*IXVf+mEc6|IyIG+CAw z_Bi4kX5r5R!}X<;Uin$!xRJ?9*5A~mpO7W-%MSB74A!=i&5PS?ycYh5(?*LCio8ZwTO@$KO zd|w%P~D1C znlrScyBx|CBlcDxb%LAV^~H1C^S^u!fFv^11lWFKIxB>Xl!tJ3aAn!_(LAJdMpWl_ z-bcPfcXU2^n-nFfPHE4vq(;M0nzw~y(d`nJPR{U#NS*70Xc?4;D`HF(C?oNbGf<#C zM*f-9&s6F=HAv~9_mbk@>acaDw4=PO@m~8WhCnRR@gIJ6x2lJVl!fj?mr-DQT9g4v zR*Wd*1og>EZx9!C>doK?qlVUIwaj7iJ65hkoKD<;FEN{#M4e?b&p>WrA-vbPoL6lIufDJ z0gfJ;GwO&d$+smqzhtecg1^|UpX*ON)Qe>2Jvv1Ao*-GWw)>mxT*dBp+UF9*sUR&H z<<&Yx>(N#O!77R+VldL#08!zGkS@6zS|H%SDTC78JoXy?m-N2TiWUTT45ipCjmTie zufhA02h!i@%Ihh;^NcIMFJBzyPuhq|Fc&*TFH-FvMaBUDyu*l z`ImdG`Jz_pFV>Qw{z6)$Bz9V%@HD08^q^`A@>VgEp|>(SVsn4VB;yYQmq&Bw*`Vhj zFcD?HPF_4K8|g)iTo1}j$!CGpG-WV(4EjoWz!$aQq}Hf0zLD~Z_2@E#2hF-pJwn3eg$-s{aMCQ@2isLl(rmktw$Z>cvlm6i|d_${|z?%M3Nb5gdP27KBtSlh$? zj%VQczPsx{{HyIeGRw+JrCKUiC(=-}Er$=?ni5&>=?LM?0NZPzvf1v8{^!L;*1-XL zGNv_2I=p8MzLX4(x%BnYad5tzs`Z#?T8x;%{8!eZ`-tzX>+Rzgeq7hw^1V-EAD?-; z;7xG$sMXv3p>Yc2fZx09?`^W9Bx4)o-D!HZ^mQc4_C5G@>+{gAJ z4s_bep&WfmC%yL+VcWg&-d>4|=Wpc@;80`zaiM2rX|H4S<@CIfQdVA-sY&ag!_;5& zK^qh2PuE4=Lbe#h1;6uUxs@ebI66vS1k0?ODp~|3P5yb$qa4(j03&Po&clwyYeUut zXXSX9Fp<9XAR~G$>Nx4y*~KOn85*X2J{n~Uh~rk>UJF_ho|YUEvR)uZf;w5KUU{Eb zr{G*~pf9ji+vhdQeyyAE-0$jCX$e|y@}!V*1zvZ~yL5`ACfEZ30loh55<)5_Q?p_c zA@SL{*~s@d-jS-4Ce+yDyJ5T$Sspo?;}X!_d;sDP4pGPyewMZKDEWND6S}h zf!1|bf641Vz;2V(@1lRxDA}jbIZiYA^xbt}*ZssCP*ED1f@1K-%!I%Zw3) zt2YL-E>@lXk-80!iD;@#AB^iv3)x4>KvScu{Zs_4Ga=E7HVcQE1>lQJJc$NKT}~{j zePI(MI)q{jWjeuzHfJ4oK_|8#cOQP=sIt!d^)Ebz$x2#NtT!f7EFxH&k1Zm^vNy`Q z_Hjk!Vv4d+c0_Fa1ScC`LF*9au~tyjrilp5p79*i{2rYs(@=qGG@x3-YOI0lBj_#1o+F#wkHhKgt(W18wa1?eucF)FxjR-~o%@%)O3x3eB9jA#9Y4_bF4qJx zH?3`FtbqI1!=n%3{!c@jelHVv7>-TcnxCpe8?tscq6SSP5l%7~-hW6IaVmR?)9-TJN)24L-Qf372lV(Pl|&bYO$}trP=w)c z9Q*+dZyeKK5ml4eOf0`D82IFI_|0=+?pQhK_I#AZy2-2#qI$qmvQ@E9z+kM7?FU}e zap{en-zoW2*^-DQ*ZRnm+kld_@t_j(2k`T&79_$dN~*&}#l?*it9)^*U@92OyR6sx z2PkdUxuygi$4>8EK#1S_RQ36_%Hy;DGYo~cjt_d_3HzGc1`wjkl1D*eH<^!|ujJL# z$=4$L;vkO6eh4c*UJgPw9m7K=N|EI_1IX`HvF|w{kR&BhyvIqRA-38$(H)|gzhkU> zH!6lQ{&mwLp37d=>gjvlg>;CA$HH;P`_8PdbC*Tv`?zNe_4qFyVr2SzR8z8PK-(R6U`(v#TBsFm!rBx9B{3@lvQN7j$HCAdp zZK33W8mN?fTiKej(2m=n!E>P%y}k(}^Y@Ln-_FVa|>&C7xI9 zhR(2sbR*OC5C8wQ0E@X>^05g=Z}XqtqWo+6BBUZ$`{?$bz$dS?A#EDgpC9Obe_+<- z-Nm7I2>?__gS2-jBQSp6HK%0(o*z~2S#Gth-cC2rXoJK?-mBJnEO9qfbm7;>3Z^BP zP?rP_YkzQ66iS!Br(FH9nJ4B`+mqs%nbddPs4=KwF~*9r72#`yGl?r{^WD4xis zJ`P?y_k*@}fz>Q->?4bON=i(GT16pX3=t%jD)D=Sa&9=& zZsobbJ+w#R@&3$+wLg@?ITar7I}K_RTW=y2JNi>8jw*^P1LqCgOzpkW-p#oa<9Frk zfb$rU4)@o7NUORybVD$D5&$=vG4uj1#^y;O^&^y49Y0?m;Py!zAzFjE0pTvDxG{ME#;i9VB(KY2q2{%)2c<&KK9gp~Y7e5^7wrh>}!d zCg+Frn z)j)|WXD_`RFrzeU9vcrAKCt>*%@3wR?;@_3h$f=rtRs;CcEpxVSHX_C5=nY?q=~~p z^uHz#3a>i-4Syw6e=`gl#%QLWis48ks0Q!L9Z|RcQCaxHZ8rP*(_%X}`Qym{(yQE) z(DCJTNXm`*NEAokdtQe=D?C{dq(>{e!{j}aHfcD>8rpEMaI18d-t;5$@TQlE>iXU7 zSB*N}%k4i9W4G<#f!1^gsXbO~`RBU^)_Q~^-mRM+^%ac_Eju@HxNvmD@N|1tcTGf!~Ue$gBqk4*5e*Pdy5Jm1y^6pHpI zIBq{^2XUkponLo;=c%y)Q!Gzl7|}A4$~w9CY7Co;HICHlQdT;Z!D^+D7V@;b)$88& zCel@Qo{xIS$46TMzx0cQ{5Kh{!UC88dzv!R_0g4C^a|523_$`731z;H_MLY#NkTV8 z6$0;X=>9hNiimrKt^q4qLaBQPLK+_<-={uJFVYONRXUk&V7ggEc51%+C{E@j`thm@r#Y?)$9Vf_A~xvGXfB8Vx4T-b3e=833!h zL@kZ~MeN`9d7bdqSF$P8uN|CWW!BbVkojUK#q^&N-x*PLu$kv|G1M<7l`l{MQi+43 z(!OJKHWh{)7Xh&V3yHOaGg;uDZK||^6hdmZ$?VxzDgIdy`qw@7>zQc-BR8LqkVaY= z7_=YcUhnH~D|D@X=jZ6k;h5v)%DbzRV8}2HDLLX5BT{43tUmPkJBZA^751RUHayvn590irXBWNnPlS^5D=;#h0})D+vnR(*#Bi9@sL-R_ zBGMozYhQxePI7rp6-axKM|*MzFnowGWKNtJtYLubJ*wjr3i1&4Z4tTaPCSLcji0Zw zWASna??K`Zo%a-bnJX(y)4vv9Nl8wBG145@ciTkZfgCX`4@@a&r0b@xW6E$O$2}|; zNtt*%6nICF$_z34m+gt;$ecDz?0v7Y@;#DEW>90*?;klf6(@`u~RQOu@ZJUvwFzBinHB#8DPaP-n#Z(c0+0*Rh7Fx1kYKQm4CFj=npeS)mZXW6APz^b2`o4B03HgyGE(O zU0~A2bCJ{9;^sZaioGq6*nhO*(>y+Ci@}U_8~HG+9n>VdGpS~k572)k_qY=h&%b`bssW6pG)K>3jQIzYcJo{)f{wyq8!jd)SaBAXv|>Q5j`wE z&M1)mRF6Z6dV0jna}GB7ifS+OSvY?X(>o=F-Qez{Fy0dhyFL&k)wX=72n;!RZS?oo zk_GVzCUU1#9}VAmaTtDk55ehvxehbig3~?I z1#bERp*tN5$wgs&OT-09%|Q76)F zw`Nq^b^z#Yv#M~efmM{Ztm}VKw4@Izuc;@WcuD&uF($pEto~9P_0s`s!HNa}Jd=l- zSASpBpvR+c2>A5$!cmckVv|QNB(h$lUd|yG|JKW?hEpp(wjP0g>J7$mP|R=?bw8}d zJ3)=n9=YQB757ZF-i)s<&gX-9!mm@U@}}3{Be#YdHGYAY_I?8OrspgL=2Ogc(qNhb z-8lngg}P3v;B4X6c`U6g#@*-@ob2T@gY z#_3!1JZN{U(=Ic!_?H?XefhY;(qs)VF`!5t(_&;L?6)6*eL2-g9<8T!{91B>Jm-9( zQWf85{>aTs_EX@aSm^EiExbLpXEI}X0s32cVS#z*5LlKL@ci51H=ghLBgUevTZNdQS?=naHAi{UIXg^C80Qe)|9}D|qwz zu3j1Xu-A&8TmML^(KOM#2d6o-b-C-;D>EO9CSU&)>n313GjGPOj6?FxmGCgz8Xa8q5O-&cIzxF_TJ`;^?Wo%yKGLx4Sm{RPf$g-n zwmzYlyErm-8iXE8vlH?=JgHlCk8(_O4;wNq7vhjGJ=W7n!K#ef$(7%)m8X4xf`zYp z;+AJ2TS^%NnoK_#3o&m=#A19O1(m~?%EP53o)}p=z!|o@G;G=Gv1B2XG_LD9oyv^W z6gN{XC7?qa@G#Kfh0#?0Bmw@pRjh=_afundf_`M`hEU$TgUbSp=>{WyFPI3E+bOgj zFHxjU_=a#wfYLwsZYUh>H}>|{BqAULYs%`wplcQZRkx*D^*AwKP7TLNcMv-cBo89l zyiln|@iC{KSpcATo;ZUofwOEDcRdQytBNvFArSL5F}VCU^eU6^E1y8%D=D)f>cYQI zJ|zW*%y^Q>41+vC}it-p`E&&+V%Mf5as@w^DU!^ov zl^x_)8$i$&*{Zi@M9kM9399d&0PY%QZ>=Kh?f7N{vT3X^!e8J#j?M zgtcC@DVEAHrqmttmSrWKRHx_)pr(Lf`(Hv@EYAz?t7d-OM@^Jjj}WY07e6$|w+%O& z%2O>741qr`GxFuNLdX|j)Gs+*7)zGjmo_qH^9&3RIr##j3d=tfwkxrl-hhcZ9r1}N z?GZw#Yd!;Mlb##n9IVwGDm7GuP!s7!9Zzjk<3_Jd&uwQ*(fVz|YpL@-ANr*ct?P(F zlG-JG^pv5Wdi`D_4HR|#vialaQktiC!3K{z&(D?J@pl479e%GwXeK{9o)eD3MK_q@ zzn_SxF>Uu=)OBaJe>w;7wA;J;t{>)qcVNrKOjd&S9nSep>H9&tH0?<8Fd~zR-`Q zX_jrD)YQ~&iyVkpFfE%}s!r>q)(YU(005K`D!`|7t+}HdyIF;rlw+GJq)YiZF z@)O}nl~iJvWXEz6jKyA@juucID(bfo*mxvL^u9Lhm*^LxZ$Bj;ZgG<4y@8dWuV=6> zc`^GjK4UPF6oe%K6)?6m7-nE~8b$g1VX9jZMw^oB_=OKL=Lo6((3D?(5k>xH-Jko{ z;D=NJ)D(JlpB2f4asa&H4_FU@o(bXE+N03Nmy8ESU)GW}b=rsBh1D$I@5wPWK6z8e z3YrmhRBORh65+z87uShSvQ zj^BSmAa~c+WQ?`h)?17hgo!Nw z5xo@b80@v7iSTJ|=`5W52Du~o-g!Bl0nS6|bbnOK=WwPF$o=QiPYqWgne}*zb2<*Pj0b z`PZxRfrTjF;HRN{G^XAe(BaGr0$&BF-CZE4%IKt+gX+ld;^M);cuXeAx zd3j_rpUctQf}5}T1Xm{#bKlJtKG<~57uQ9-o$^Y7a`{QZqF51!vhM1Rit@(oJU-0v z8{haI!K8@$F7I-Af3a7ktDMx)7QSS`zJeIG@o$Z57k_(f-KRgU{n7i1StM^yTm3Cu z-q>>)7;u*}x`&@v0dq5Z?7d3ZYh`}B9_^`dC9zh3MG`1hpSh2Ze#mVw%jFyak@2w~ z6U3?FC_4TE7V^V*GbSG0#=QGL0_mgNN;XN_6Q{nwv+QTf0(KUs)16{`gg})xBA&w; zwVhLU70Y&O0nvJarPeG^)B0WhmIg(Lt+R!m%D^gF5^LyvP4<{jy2+P77Avj7{0*Lq zI(wd;wAO#aH|r&Fs;|9cPL78bpgNbbD9Dt4ymQI;Y_gpK??!~$&#pGkKX^l1k4bCI zU8lxN?bew(OY}2&I8pL1HGm@;FqwaI=#!ebY5m#lR6$-AqBub_6GM9XaU;3>m)Rd9sGEv^u!U zqy&A|es2sd!5tlKT&rV(Y9>aED#CclzxY43)J=1=&SfX^w#?FfHXPsw*Vh)x_ckk; zx;i5?spbS|?G>xcaYutQw*kG9f7^x&kNq84e6EG8Ue1Go-EoZwpimFkgm~RVe1M#5 zyktc&d`3CYfcEvg(1jjcC~)ef`d&+hch;>Bm?oti!tSh!CZ}zzFmF(dx>v~?yl4oL zo@3!V9rCCeK6>$aXS?3V()5z&&R2I|Lv+&`2dKGN-yK%^*5~@#9grUwdI}u2;W1nc zkt)b5)XGi6k;r{hD&j$bi#`f<^u8Pdm?i@ObBfr6^6;``RS!5iY!tG?13_zMIPTVC zj;VV^j`9&bsM)`J+BSJfKc7Pj)2{eoe5zPdL{%_2mayREb(XzHf)n{VYK2k{6wx=p z2fg9`&z;MSy{{9Xm(44Dm+7WQK7i7^D^Kk&R}H|Ff+#5>#zBD~Hg=KeE{z&SA#Jym zYClu?kA?hlF*Y9Qq4o83rox+dc%D8PXC*}_Lo=vVgR+hxXsC_ZT7K|~pF`rk5B5W0 zzv&7MK$)oU@=OldsYKqqflX}}sY@*1@YN$pWQWw%@$!RzuLG0{>{E6&74%;>`%UH; zVG!}KS=-?K;MI`X1`A&9GH$fg^Wm>45$|;=DZWN9%8;p zI-GC;T?dfI3MO!&?It2hEHgyfBI^^&J!P9VP8gXjtcIF2 z$Iq0`&hRCLU~ahc`OLk<{vE42hbaU}Bx{fwKc-9*5xKckE>4w-eP!aPAw$!j!Ry3= zn!k3DV*A=b`wtHf;ds$Q0zr4JNdmp$l3wUxN?1e^mVA7Pj7dmIV#@Ju=4C_F5rjmE z`PjCgV#^=O`fG1DB2I^sDMkVFN-{cdGZV6?d<}$58o4`PC^h9S)aOQjsVlWR3IIi6F3%y(CjQ34eGlqx* zF8NjOs(^Z_+CS2~yb9ySY?-0maz#hg^2z8pRux#O94q-50UZ2f=Wg|0@r>WCWtmeq zI=N~}f4K1M|Ih=_=|Y_i7pcV*@X5lAkZXH<#~X_=%xKf^(q_Iy>%`bz8yD3WU@mCO z=WQYYOMI-V&a}7@T2OcJ`l=Nm_jf&+&uIEsgoGconQ^mfGp6kQA-q5DZLXs`TQ60C2-C1M<_$6MGX{o=7FD5&*To94g@R-i@3%wAM~y!xNA7J-+{pv@rQ z{mNg^B?oFgKux@RGQ*WxyFtXcjcCTX+OXnAS9S{?eZCxj%i*wgg>)X3^G?B!p80uf zs2T=uBOH`5uj)K*AY?Lk*WHuWOLMLL?rj7Scdyp)xzy0`i79KuHz~e_8neU?3E``s z;6j`5TkG*!+g@DPV~ig-(mrVX?Qv_(!$U%PY6ePb0=ySBOc z0US*GeEXLX;4kr~mVxolD*T}>b&2(`{J&E7N4FT+yXjHae7J+dob7n=dUDZuN$7ff zCGNky?->r3=HlaxC&+o3e|~*FEmX|-+%GMad^-*Bc}L63<Oui^*I{VXAQZ6!M(FiuzYj7kRPZrnX z)>7zL#|}GQZB1VvYEdk4FUHxkkeJ*9$Z5xd6-u+ilTk3y z&z1h#)SRSHI=~t_4|*BC(pWqVl%XBGumQP!>nHlnXfSg*SEUF0pY2!el-R9|adpOu zuC+mR+xm!cDcr&3K2=@yc^_Lk0dY#(-3$eOSmIGvWYWo0*V>m6$UdIT`sXQnMb8!j_wxxDwaui|TjBoAu}`le@I*Ko z07E*#oEwR>QzvYDv4$Y@GQblwGpW{(W7C-Ijllj*wQb4KWTMNH`Q$cgz_SYD{OJ39 zlJK16;M&?6&Qr~h=?xK#iAi;y>vj|P%I8yXz%%~dL~Y0A>QTz=X1IA9|CfPFLBZ5- zf$;qN|U6Ur*CGHnxlSRwI8r$#M@k_*oqxyEek<=+g!o#1NY=lqUi;zeJuhUrLa#n)A6WtK!y_cJ zEV$ACGWdGlX$G!KUN4V9kQ$mvZlHsK7ji{EJ=B?(u=(^B<+Tl<;+oPuHuM>*=U zX`KTC7p*33evxGGhA_GjS2R&tE2nD@q+gToob-6TDEe=%WT6r@qb4`=K>oClmnOw5 zVkEl!yN@kLoi$3QQfNp(H_G6o%=o!+?tx132)4HZ2188F7a_$M0v`YBgHOY=5RuBTbg*0FP$m!lx*Af zCVfTzrsj^6%eI0Qr*76?N0UfX9k~?(>blGsIqa&-Kavl@{S!lG1gc@drX!4T%(&4b z0aI*mBO}F)a)>Q%4Y<*~k_6$~IVbIJYh|NN6;hc+rd8{$Q`^M-DGW}(^aa`Rs3l|C<#jvC+^FW=mIS+U}{y}}=&uf<}}w55d7tI?Ju)rJzoZC3fv z;tnt~TBCRBGU<1R5l=-rpG&jA@xv@oj#njusk97W;*2Y1{@d&qvJMXq;z$ zNpqdpceX61eSUydNZ*H**TIo&0BnHN+gDg5s{Za^0AZb0yn{5#46h40-qbI<23SK! zoUQTu#uc^Kp>OQX5uanQ2(4ubClZMeE{3V;X=GB0xHSjPb%%X!wCR*?RdR*ze2jb^ zO3RG48`08bYVZ(F!hkyS7GG;2TV~yjP)V6k7+i17&S+kq{6P%V+^!6va2UOO5hH{p zd$Ww$ssAoSoL?p%d(O|5T8y?ki0N%a7}E^>PKL)S5=c#i{$C3ank~v2G;*r4Et9Zj z=&{#@)4u0g^>RXF&+FB)azy=9hy}{?!X)K)5xF_W_R?zaeq|kAq>Fib-qa`y6Z70b z_Upr;jLVA_@tptrboKY}Y#Lm-mp>+B<*>TbT{QB$8Gdu=(n+_nbSV{7|33gHLD;@X z6m66h+^rho`UaZ{Q{P32RVJMyQ$29hY$M?e3E10~>9F zm5-eB#vDgo&dc&$V!RIc_5Hul^+j<=^US?D{hd%qjxh{GcNIXY*e5R~`nJO#qnj}dyn^7|=Wn5+dlZf$uK4TSrnJ5FNUfHM1-H;KeTBVzHQU$R+;Z zln`;M1>AUT+(_%1?2xhLikdSs7i_g+GeN6S2D!7fPX?!LFXQ!@IWr#$6=P_^xz<>& zpw0(!HEK>wD`(h%pqa-Vt+B<7R>9o775yUF)jfbi7qS=hvoI#WwH)b;9 zT&rxlFfx%mT8!PBNQ@HB8gPzCm~4paV%_bFdXywZx)UGjG<9tM#m8c?_@d{Q^7Bub z&xV08H8c$!66-9a_i{RGon~}Ca*ynmh;r7QpInW6#12+#?jyq23^N{)hYRDes*zHl zsG3CfVcyyU51r>zGW^;%Z*E+pDp(V+2=us2JXY1jFOMVtb~?W*c@p@}jSU`@ql|qN z9!rmb$BJgXiI17B=>}i0|8qVg<(};YYeZ)ZSzk{%ACDzLPH5&-h1*TucIf&%N8#Um z<7{>!iy&>nQbJ1U0e5J2BXCbW7V$8~B)}~?T3O>=t?{o{t3$eo6`R0I=5rn|fY*!S zv8;{^sz>6nKHSHz7Uhk7XDM=R>u<`KS;1>g%q*-;+xI-%h}pO_8ey(G%Hi7;@4@NwnHC{qB@~Ql))( ztmW&rwl0cB`d6n@T%j?stC_iE^61p;q*kxKobR%|z5N@D#bS$n z*@NpTS#icE(EaSnNy^4^aP` zM|}K&fbYR7ND``5W;4N-BbEX~lhjGG8R^_Tv{Wclbaa@c9)36ul$al+O4i`NX%VzV z8NQ@KvWmGfcw;%ONE%usmqrFwDKVJ)tG90cpO?6dkE7#s*5j%yv^K?T*BVVDuuN7X z>q4R$3`tN|Y=C7liq6q$+@p5U;PrCHVzIcMee!~5=Zs8KOvJ+mCv0L_C$5-fc2eV{ z3agySRVfr?6}xcBDKY_?x+zw%ltY%W-T=As{9)jsni*?DOXw}J$~+5WGFB7dl~ThD zvNB_%H6#y_!AD3gq-^-Ah6X7WCY;i<;3Y*SNm@K-tMQ2bZwIfzSKUwKr~lS4q~^{& zHLyWh6)E?+7Tt}~GiR2B>U5!hlth2APW<+C^v3xvciyyG@(SJHv>S;Wt?R5p#~D#V z3%UkaCtxPJx$itb6Zq|K-I!l7Q@YWpcT6F8ddJ0MEfrq1a}W1ipy+fD@Q-$P`QekB z+&85o@mQft;P|BE_rg! zeC;r!TnvxZ3`CE_WBuA{^)BG$0M9Fh(w{MuzELrf4q-667#^z}#AAKX{p*gttA9Pl zH(Y=HKY77?{vFMo=`!$GBEeC%HByN+*`k+ub?xg|YbiTd){Nyk>yP#<--Yp5hVl^c zw{yPH?P=_*mOU%yd)w$9fyXMUH0QGLSkl_P5}I{n*`F(VjBqhLmbtTFXbD) z_tdEeymo8rL;Jr-cWdueJDxwAL5)hOcWKIT@mOxoDEKRGzWI9&-|NL<@wlJZJn^0l z&^g>CoO9Os#R!>LoBlHsW{_s12u-r%09`oY%PUrZ_e?rYATy&wkgvI5D)VsS0- zu9wf}pL!oN+=Q$a27=ni4tIMrHlGc!V=%bm+VGm#$i}W~ybK;aQ5y*>&U?m@Umr)# z9?Ej;ACFY!DLL_^TsXOFv^3FDV)7B8FlfH-<$Rw$-p{^3@)4v-5nV>HppoXGng6Rm2q@7v#_(AB4EoxnX3N8nbZIL>u)-{Mh0BXq2TNO z-Bp?-Fc1?HGHj5l;ni5R6?qsKMWTzq>;y}#htn(vN`z0=SR65r-JeEnLA5(iO-L9r ztwPVaF~gS2$P@w}UDi9e^f*w~epCugUASZe`J^di4J#K&hSo+Z13Sejt&t}ur-JRQ zxJR0Q$JWh%)zI1(6NNP91V?OQEgs*crITcqu)E8A7#M4XCSgLFC+;2_c^EJ)WNCPt zBIs(qp5bWTlRY`}I17wU#&8`-ZKAb_)If4(mNSR(SY9*!apJLD3{$;eAh}p9z5;mL zx0fQ~aer)9n0H2|_ux)6n2VNr+su@3YexgP&<9C`E=_v?79*nOKs zmk1S&AYvW&W~I4J{X8EI{QA>MzTz=C3& z>tlaviogw`b7 zFwg^5mF~wf?|Me~#i?B|h}=K^uvYGN=j9t47sX@YMm~hcS|RP-weHb!o|O{KqnsK2 z&Z9hA$EkBmFO0|1+Twm7+--i(cbq-@*OIxnSS;izIsep4H|8&~j{}dja*&S4LY!?g zK3W?~ocpVCEyAV>YwCb>U8;G!6NNBn9tV$grTMi-e1*NTwgL~)ba6bEO8om{;<3yk zs8%OB<8*I?n)S6wE{(?`q+R&Ec&z(4KMZ`uq3?3Qd42;L#?ww}xGX%DH9ll=RHK0} zd~PZ4NK{>NG#<<8I#%E)JeC6=GXHx=9Q(8W(Z8B0wEhj{tdWHM_2bcVKNqBOyCdvdAL&YH#CV}60_`?}t^+9X@ z{v+;R@sG}K?Mcv%9Y`(~i~9h-^^}x8_4E+VUP~Fq=nK2iA|*c~cG0-tt>UVzQl##! zM%hDBM#3P#|2>WT%yRcwmeco{@xIac*>U2GDlgOxu5)LY%@B9)a=Z1o-)G-=#Qqq3093D<E}rA%oO$X(@(SZF!))NT zCKqpxdzqsHpP~f~5Q}lqf?8$e##C)@K}e>1cr174BQ|}k zAMW$^Uz=x^A>;zSmV-Ik8m94gHT4o2N(!MQSrcXzqj9_2zw7t$YT(xtuKb4iJQh-m z#i&VW$<`kt-Jl{8hAfkH1|tHu-y5eperuZkbH65^LF}(CI3AlK)V&xUOM1(^UKPY0 zZftc)aBaC>l`EjTyMrMc`gjS3ZAll!V>J!`Ce%J!0FS^R?zBxR~7Cw zOJ;>l zNnyIPhC7VrOv178SVdLdbmq+8{`Q-0dV4?r#6C^oGji?~l8fN6%q|O$6;h`ND6<6a zsJhYEOGsWCkA zc40gg(}+pAARg;u=C{3JYwK`hk-vMb>Q9|cDc9C6ipLU*b>=8M)?c=^C;#}-)2Cm1 zjmkIPSJML?k+Ou|HmVkp@bzBChbj~1A@xZb!R{o9EHe8Pk>@>B_4Xe*bHiI+cGHdD z1jh^{d%xgc0G{}wQjo6gaRrFXfr~@RF=^uLj1x0eW~GGt&L?(iW0+;CH|{XwhnGt} zbc_tgQR5~vesCG@|HD-MhMa!(XKudbC71YXhridAzyW>M12it2Rbo=lGj^vb0*HUkTN`*f@UZm{ zPu4^mM{>?Eg@Al)%Yc%v%iSq4Y@B4QD-r<&*Ay+a1Y&XPh7=Qzph%<}D5l6}_R@*3 z|BhrvbNm8$thY}ik4s@pyIee0nHBD7Ywzv7W3gC#8t{$>sFY{qMAFRYjcKRhLqeBJ z$}o`JgXPy8O@-79Gmk7sR{mt1e)&&Ydlm4$?d@&vo5~jh-vNBe{?B~TFmQdAi{r7T zispp1$iVHo-vYb^cXo~*u5l{Q-+$a2Qo^TjCu3a`DWL~1sx(@s zKP8gEsNGz;r ze{gH-s}sB81Ml&EI3X#&lpp-_RLg(0#LI@Sru)q)ob{7S2{^)a4P zhA@~|3zQ7>g)ig^)e|WVsKm49nn((@)xGNzk_i0U&YnHCi+ZtG$hXhtfAGj$p7MlV zY8_R{M21sz#ycPNNXBVmbR}yd2ke$fxRr{Gl!5ITnvx3&c+`XkL7L{f!o=!%oRC!%~Q|%9~X~R>qMUAJv`P`?pGbU z?~f*AR{%Uq!Rj*T18~`RtR1wz^6ZVj*pHonHv?aP1#pdf*MQp5cq~bQ8M^=;>%(4u zWZ!uU@ZG>`zpM;0x$kW^(~JE~)CimY*)c(n74Z$5SUf#1A!_REf&k^E=Cv;WpGu({@1 zY3jmTXja1o*l)F&v5{l4kZDEJ06)+346Bt7VZ454=kRW80`3N`0?u0$FEW-lo4xoy z-2DExU-~~iZ#?qwFRoGvk+TXW%D{xqub{5(iJg5)6fLy6!>%N9R@5{W#%YC56F#3~ zHH7Wc)J4W;1q|ORi93IU86`My`#VGXsgT5t)e9%J!pq z9>JkS@`NhX7Mf3DG7d&oAb|2bW4o22Fd9fMv}pwT@Z>Jy2;ZW|fW0Que>yK1;vkHTZU zAK|xFE1tM9k9&2Qcr5U}66d~qGY9@PaPlj2iA<7J2FduQvYIC5L%jZupsC zNFgcQUj6;AJiGP9`?uoT+uL^mZ(b}GzW}@oc=+`x@v_YsSD4W1cyTh`5X_XaPS!9pH0Ri|WO97puTm85AG$r`NATEkhZ!YyWd>&vI+=$ey7 zNh(a^NX`Xs6LcyCl0p+#3RA~pNhz@yc+?*6Kt6K#-d$)c7K@E9ABI18q@+*tsnK#| zYm+Ig3R42;4=*X}!EEZlNz$)i{P#Dug@KN6!!8?- z^%1lGvhQ%e0Q^mWFPhJ=k}iqIYHRH|2k}^D?l12fqdsT9jV>>ELN{BcQX(lKN8_=w z#5Gy#s@Hg|nP_@UNk0a@M}lwKpJxWj0C%QgPl+{>CQqiqA!OiXM?O}U+`)c5tev^I}c=yp~wKqNlJY#!%`{M~B;ZRu{U{3Vm zZM|HBY%oqsiYg@)8WUq%f(ZklQwv1Qv?5gt9mzPxOP3@1A8P|m%q7p?dgjbGa70FO zLlsXk?`mtzOJX&Sq!kRMKptrBtXx=*jj;-=l=h2X50tgfs4~-@vPOG0Fm~DleJkdU zWbF^NV^-PB8A(uu<6t$O#J)1#CNKopu$MO?jUR5caOD*hiaFAPS*IclL!d?SYL{a2 zPUB=G1wkVTkfW%5d^&gRC9DJ5uAI3SR@mJ|JTv4O>ds7rbItsZ zTKhVH7vxN;l_t?WLp+`n+?i_V0jo7+NQ^la@iiW6u!)TmC%g&Iz0mn?Z*Tu80SZ4b zLJO9WwNz@Fs8$h_NfVw*;ITFa21;b+YG%rr)iiNu9j8~GJ$o|&AirjP+-H}}Xf4Wf z-B_p?&4en2YQ4>!Ky5(_05BE2IUjAS|K8#DZv}XMDa>Yt*)YW4%bAlcGfs_^=1iL> z5p|42N{ZG>oodJe%(>I;&hI#T_Q=iQ_V)Ij1XinZau;G_{h%n9b+V zOQ^Q9L+TY7aNf61f4K?V2dAvFj0Bcut&=RhL^)=q&7vJ0^EqjD5;g1ZN!*){nH@_T zxmYY7xBN6$uL(eXR^T1mgKgIxx7u#rpQLR@Pn(d{;AoY5|WHd z%6sp|`L8WH#hJ(ZVx>@1!CP=Wkwo(TY_IWHLR4A;)0F%58h|fZANyIQ1P4MCOWh#m zKnn9_YoV2F25mB|I;{r5MN7w9Nk+g%uH-(77lko?S?aY?MEinlQ|#1cVY&l!dWRF&K{ z%+_`8u8L^lc8~Usi^bxz=|LpGlQa?AkZ_adaYCk%Y)0~UuTx5tSqVIrMlx#MDec47 z_M2J1mmWkuHRo7MMX6H|4OIHvpc2&?i>lOqEY#YWC!$}K z4j1hJQK?hZ>P4~sfR|DjQFcSiQ{OyJPkH~oveV(wTTuN<|Fcd}zZCc?_NCo{KLNhr zBE40QGY(`V??Y%dnmbID?7}_M$b3Ghu3#>WJ4U0-2ZlB=8wT#$Suw0xYZ|4zoM%W~ z;Zy5bmuO=*khwO%ygzgJL^eb)H*!j>=w-01m`6LTQs%4}p&ElKZJO9s{lk5SI1ora zF-7o^a*m)lXUyW|pQj9B_*h9B8%$$GY@(8IuUKu|rNeo`;v>eB_y6$eIg^@)woeNZ za^2wZSp=|c3Ud}YBdw7|nVPY(M$38n`WtV&?K1A)rN);5C)PjQFe|tT!&oUL1jN2v zQto>KT^Zvvp(JLL(@qZ9a$+?ZV=`uC78$$R`w-{cyHGglQPzv@8;v0a6HZZT@2q0O zjGCwO@K`^!T(Z;8FB9&}%f@37T(tFAEEdn82TXr=7})7}Ec1f8&Vd_>XNVdtURX~*k$0cR-VW?VZgs! zO+s(4`P?D>fI0xQkFd9N1tTkCiTn$GWxIFMZ2RXP1|FCVrZju=m`mpF0d;nz;ZT zt7%4;b|fBaUK-og)^dykZtceoGsIh%1%QN-2{Y5B@L0ZF@e$QG5Y?b-06t%pVQP#m z0#F|^GVU-)W@mXW0(22(Qu`vD5QzWA@I@3HB- zx6Hn;XV2H)<8i>Z5o_O(n&fwmBTvbj0nv6ylXXY%@$gt_9WBFiiE1DKpOsT&>+qqFJQso(2s zfW02#&mT(Qv2fB5CdiB7v0Qtmot_|)pe8iy5)zyyA&JwJSiAmlK~iFrFtlw*R7C2i zjG9mlp9NCM60Iu@`ZF!ioK2TUTq+~^L%{q&sys&5-a?{2)7qZiK)Tz}yJjN#RR)x{ zIuvPait-mpU+~B8fB&Vjj0eW{_V)kW-rjx%Q4aoG;7!2mfv0|gK_nc?NIohjl*Ck{ zlSjiSIn(M2nH#&3LXXl$bYp{E6C_J?wy2dQpkv@LlIEB=rFUm=0k51adh!W5KlAX3 zI8g#=E(|_KIkU{7*XVM^a@=8t!z@JY4t&i0o%;@PP^*|ThLcj1M3XAsVi#W3Bcp{P z;p-+1GZ;rkE#&!}+o$Q@9OL>O2woqP5{PwIs_tbSQXcS>G564CYG(4#V|dPt4N7+I zz>gEWUe4GnYddq1b{>Y6yI%%F_ho9rB zxyK8diPCfKu0zq@a~2Q7NQurulXX0n2OjI3DetS5|F*9rJ*=IqVfhYIj0n}&y=?*a zj?w~=1Sl;fI+L5lVsQmg9+3=u#%#uYEJYb@9PxQ##uV^kSs^-+duhi=Bx?+1V6w^w z%%1-IH@hOOESphNeO$T*QMn>a?Qn z!(%0kni6vbn~aY+Yqs28AgRE0gEI8Fq<9O-ObP>@*giZ~@2Zik#>7ry>G+#ht0g^4 z^t6)M*w{cNu^I+M5`$*y#vBwjXNB3UF|Ttrm>|*5&4=j%US_G6}Rb9!ndN6qmx- z;(lln*8VB>W$*^z0lD;YIb@ABF1WT~NfDvzb7Mo~DIr6qro^a;l{bESHSvST2qM?x z#%7pAHy>X&&mi=Ss=BA`s}k}MQ^>R2%h1ktWOEOEmkc~eGi@|hQzTMy7e|@}8!}70 zuiCGp

I}ZW8*SwRKYKKJ3dz{>@SdtXZZsXC}(v!a!7|ssj7*SgbpS1s-cxWcBK; zt>5W~dkNhTxJjV<49C3f-CG++Y}Ke0nkxf|TqlNF*{}fHyRU=Ir~uNljk!C%@u;dz z7}Z;t`rH{blTv17Fgau@8#a-rCE8ZZ5VS_3U?9w*tpb{vBUfKABe_^Co=u-r{y`~0 zl3%;C0PWg>u;T~KUacZ7G>u)IY9gVG&A7#;cYfQ})^8p2nL2NDQ0%+#KyszG^k{iNt1(z*90o>f?5tKXapputNwXB0wpvNHf+69iq!t`JB+;zmF1&CU z9{Zks0YnstgrNuH)}p&jYhA;q10&8-U_L2h&RBvU`m?jQ!d_Y8)AoOt2cT$*m$Hc9 z)yNtdSCQaPK?r%Z@1U5^Q8RKXoC|5erN)7bZc8yk7AdxPC|2Whs+ z*oAd9(Si@p-hHLLwg&DN^GM0VZH&l9^eZ~!QI*Ic&u68;M{T*9g|97X-26^ zcqWyU3$2CFy_xW&lHaEwc;F_c_0HWpNvfoe3y*ao3wJCh`>|=fm2QOk?2@Cag~1?E zJ~N5y*ic9O-`mGkgeAMn-Tp7R$Q2iCTSNQzc+7rp1vnwAxr54_^N z@B3dDi^YT3*H!A%bMDtDj4-r@sdov9UlNaXcgou^e&_ml&nyGBvtlWgjoAjPK{-id zwKGOfdoxzMjj}l)t45PTwp}z2*reRv>hE0YqI6TzUfbBm< zMcv4=6X2DGbFD`eeHkxLFtvoiJ-mq~M z>rql9w2#)cd0(_X-scZPWbFDzRy=S+7s6vD4PD?Gk2PZa^i;RrUE9w9{~q`NQN?}% z@FIfgd!7&C4u`B93y&4S{F<>D&iJ?8a?4%atg?qNdQK^!^V^Td(k}J#3*)g+-819d zVZP4fzmQ%%fzbVehf&k*qIfK^8jkmUc&xv)1BswL{Lc$}ytT$-+0+ng7sX>)i|$Z8 z#efQtA-6D#ibS_A>q!F*{~}2O9p$ypNhSW?*!m618Sl~tsR5y%G@*G2rm-1wWH>UA z?5?CYK{)n4C8b`Tv~FFGCpC5pT?Y*$$xL;`CF7pD&d5R3KgN;v{Qu8J|Bh$&|L&ox zDAp+&;T)_Yv5+{_JR|2su^L&Y^+PA#`w?3hBvJ~&J{p;3gDN397IPjT!b4U0^S*0e zXfVVKz~h0i7Mv@JPz|I(Sv6EEMU{Ij`@U0uEc>{W3f&YXK-@RM_Fh1%4RC6b*!A}S zVJ=FQ#65MaufO@`i(+^di^T&849woR5`h|vMF_p`h1Yh`5xG^yHj(mxVw_t#a}g$i z(;`3g@!icM$5+$eg_8&m%n5IW$!aVXDAIOGDKa*}S_4Z3X0iCZuLT;Wcx9OrJ|%LS z0wQbzS)&hY8SvFeO2TS2k!EwW)&qE~nMI~@258Q_Wq0>R+gE-8p!F<4$73}QnTVuJ zTa5%&E5$QPzrD>EQl`P!1A%W|AMP`9m}XPQW3AjMD77fQ3J0JRLng=;y|&LuI08$Q zV+GM@b*Y)0qTJ+kJeKIkg~wW2^S4=h*a-|S4vG>J*Qzf>`?V~A;V;OUcatLNjf zZd*;qa`N_Tw3o4Xh$@2_TE~mxv680q@K|0FcPy9d4B7M9w>Um6rO*X?d?VQMWi6oxyTkl~{fPIC zrx6|@0G^#POqYSjvXLsnzdZ!3-&h*}y?Cs- z2&)R7giUWO-ITK1uVI!E4%^Eu`Dw4Om z-~Ow&{`u*{=L!5I@RN(h;>X!nB3_R>dT_Uf-aGV&xMOX)jYVypQLOQMhh3Mo`0}&Z zN0RvLwH|Rl9?Sircr0g~aB)6X+wHI0+FGxLdz{Kgr9>fubLmaRE{4ZyWq?-q@L1+> zhuKRZc#-U@jy^GWlg%C;OAcU#j>2QD*_gq=91Q^)X)kO zn_AD2Nyi;)-SICOw~3({&0*J!LBq6jq0;u>qqn_#K`A|@A8s}483~d2vTC8xa(7lV ztmM6bD2dRLax3*WU%PeFC$&Y-g~mTVb?TA-^vs!`{1<1={HHgZI<+4H{xA+f!LROF zI`!y#TRr$+Ly~?IDz@6CPE$|$D}#V~4JUNh(S#*GvbU28Ez&x@&u(z}zG}GlqaWN$ zz_IgNV+caz-dbb~H)aDZXLdbduGEm_t;YfE&*O5muo8(~T@#^7bRcjuT5VYCP4%qB zM2XPqgtUoWv%fsXr9F_1e2^;1`$E_q#p(|NLdcfQ0BK1SYML>WVT9@eI3@wXkcAv5w>+V>$ElMT$tOj{|kUBeJuxh#SfVA*J`QTxIn-f#_FZNOI6Zhz}6 zJRxbHkPUL4v9#KI)n<~%u2sa*YFwcjcr1w^vWfWrn0W4cYTLu)+((3y){wpcdw*A& z`MnwR7Nw@4n=^-v%(6CW-Nh>Y>aDH+^O%pv^Vw&J`P`BbX~D7Ufbq#9W3yg+RD{7B z?i#(fT}UlaXxx$X-}XZt&_`Zh3X`w1y`Whsno%7P$(^|v*GR|UywYlj+g12i(VrTC z$Ebn~hzt}8tqN(ZQNpg3JPZ^dS-8QiR(zTQ=ss0;o$1v#-~7H~T$=-#v4=~58;$5O>G0{5B7IMo{e^N{O!kT8gerg#rJUdjnsh!Q34(VVF$OAQt+%X?_u znOcjm6up>Z`^EGM)0fVMXs0JimWfirqh#Ir6mGfC?0)x3MKmlf5y+hBoRn;kIIIjdQJ$6J#BkTI0{no_3M% zba=eus9$cX1Rg5|if^g|wG>Ku1ZPK&>{8EYnC%Z&dg>TeAq5oS$Z{aUjO)OB?2ewY{%R`19OsQ2Gvf7 z0oOoAt&u&W`?}}#-`W3N?ynI5Ws6d;^y)yhhD$iJQ*F>Qc_8H06G?7-$nBp2EEbE0 z5Sdf}zA$An7EW>xjp)=W(-Z`oDvDTRrVSNGYGd-=jmw<7@Q=RsmYdhl^IkUck*b`O zPQwPKSpWQx6znZLbPDTKvREK1Cj4HY zt`jeiJ2HmbvWfcb_?I01oKM#HC#N3vcTbA^z58i;{1qbieSA*RL?|h-GfqFoy@J;B z&_5@8ASV)nY}F7#+g@}S%YsShE3E6ga!UOggw5ZolT+6xSZJeMv>Pd+{BT`PT&v1Q z%y?jL(^4oCSpo?OiAlx=ER5V9+OPm)H`sL3 z7&91mGZ-6WY_qTd19GFv0Tqf;l~i+PM!a{=IeYgX`@EMghRlqTeb%bABBHA9yKlO8 zpS{2D_l0dg7+V*H7?LAJ9ks_c@DEACQ1_J32*=L1dn;r^(r=)c%L{#B%{%wvkhH=)=*8<*05=c#D$b- z22WUwj3A0PRiROdX;4r7wLZo+L-N2>8Y|F>i^gV4ozlVlAY4PPe8v0T_jzv*6wQHk z+c<|B%s+QQhZ(6&xG6dd7MYtI{e&MYC9yF= z{fsg2SfbanmzTw2v}SfaUapUbhH+$n+17Zh4=vjRPvNuid7Hny7`bkSxdk3eH}F`~ zpky-^&RcqybKNQW=v9}~uhEEfE9;vJ%R(}_DIV+bR`)E%XaIa#&g5C9G=p3i>d3M# zSa>20&eZv*)Fo)fhtOcv8l1+*n_W2JYqKsSUy*Zc2%Z8SYun^VGFgVu58n!pB~H5m z9t%nM(%E-ARzuyTJ>Rza{ZFS%Y6tOHl$aQKaddl5D-D@Kw_HtnL+2Pgmd9M>Fdpke zo_NBXZB3-w;)bmnxz?J(5P~p;^%)%oPJ0cPbFJ(RbFRQ6?>H3ecZ>B4$Nh0D=a6KW z!5}xqV@)D#nNe7hb&E%B`c2@it7Co6FraueFtUWfV#S6uKNgQA?(B6u*8XU`d%1Ya zH{aw*?C$P9xwEtLe{qPQ@Z4UMofMBXH)olG2C%H{iJhID%tp5MYg1yGBlrN{z+dkTjSSi<^9KCrS4MYySBDFc$O34vGzM2OLGPht~Gn|xY738fM)=_G$#^5F+#DSb3*X&|RQQb+@>79PWQ-|yuyU*Po{4c)luI#Mp3^#84IT5QvF@yeNYPWVxD=%7R~S z*X39Xugq$61P2dfkM!}y>bq$~yZ<^kx624Z+JT}pRe!j(RndPWX{Akj=nxLXWs>fW zi_{z&z@{)ANEf{)i_u_HcoaWF*G2-oau_LAnB}d2AGbzH#!M2Lpez>D6gqoJ;pmKx zOJo|;KZ8vq0Ogq&Ct);6@p)0D)sd+zn5iO~X)LL&kxXLjQ5sVcE-t70zh|*Hzq`9z ze{5&xuWdf>7mJ4Rq)RaZvl3&h*7JG2R+$ zYHR2FNJou$$76L(6CIDW-x^~Qt{LT5Vp$JuRyFWg?hMNXRbz6oiO2e}R{5MEI;W>lramH< zae!J-fjlG@C6lGFD1~f<4z1&{E*SsdR`1K^+TGpV-PzgsT{g7105bxQm8@ZDAdQJh zHMGzjkCm*DPoGA;GL>k4T$9SrmhuD}y1ze_GYlCkODaK%NUD+avbuMbLKR`?6Somz zmXtANK2+?%ZfLvJI?`RfvrEgGX=wATf(Qv`YK9J(R9j?rH^;qDOQsHqYhE8DHmB=p z!^?(&(=Btg?z26fqRa#-dsIt|8QLPyXKB#r{>5by8(^%?hnipBIKA~)`xPmXTR7CG zMMY9#YskoAk0oKeO+zBj=Ya-vNB8!SJc23>_cva=xZ3!9F`X=uf# zY)B*;qhyvM%own`PlKT75YshOXe#{Ta>>shl9?P{51H{BweXqS^N3zV7<;3vc0AT< zRPR%CTa!l3AgW-Mt7exE6p}kTJI^C<0|0#1Fm~fa>#)s!QTJ}o@3&0Ru$kvppeapq z7nT?gH#%8AzZp1WF zMe*cayX3S4=HlOa`SK=w^~gFdMd#V7P+K2y#us3f^Xln^oDpWGd?ga-~CrFURei|7#3wMTwj)kX@JgWs_0B%>TcRz0GkJto6-#f7FwF(E6tf6z+)|H zVK$rH5RY~L-hy9R)_?F5?|=XQ`nA_j?*NO(Zv}cZRAJr1=_;Rp}9C z9gnqePSQbVXJ_XgHagXxo-_HRc&rZ2U*WN29C_I5YFvCE&E|!oY>z^z1Iv_JhduAb158$$AY*A17wGXti27^7^aV19s9F~fiz|+#@K{wC&Xh7 z0uz}BTiN74ugBW29fu&j9KvHQ{A746@p$k4uoeFPV!^FAXsh+48NQr8B0N^f1B<%+ z^}`*>Hv;Qes}~L#HSb?VSqouhjU$nGlaqvg3ZaNWTVR%`;BUNe@tu4G>j%!CpBsGr z8Tg-WQ@!_$$o5M_Wk@l$Ev3*(w7C1nfn54hEKE#pEH$(unqU!Gxo`*yewxU!B}JFfOuBDdj8_)OFffTQ5-A*Q*+``XszMXeYVbCj;tA9f%UZ}Dc&x12 z@mPudme+W!tK*EHymoDRPbpurySuwaN$u?HJRSJN&2v4Y8e>l?3_|kME2d7PqL9XMmhCH&re~oEAC(j2K ziv^F1tUC8=ePjmiszSTEWY!tF-U=eQUjxEPiFQ1eNq5VK9`-SFu56fgK3bKj!EEpj zyRK|Wq84L6%{bGGP|J-|`;9gx&U$9AmgxGaF`56f6TCKGy87WYLuduH}zH&nLGtWfoa0G zXUz7NxTe5kN#J5CfyWxH@uQ_O0%tVjI)<%eTw$mfGwupjpe!k);MW|LN>ybc&YtK; z%FDfT^Ow&WXKOrGO(BJnxnlbhmV_xKk~(QNBVD^nO9MlhXsz*KsqbauJMo$!^wZXY zH%JYbzKf!Rpe<6WhBT0@Vy=wdSeD?vRug~grTb1gSvufPcty@+S2S6S(_6ic$I>vq zB&)QJ$EpT0Dzl>42p??ap94Rvnc_ zUIcu~>e!#wQC+GlJXUmJ-JL}%%m-yk#fW#6!}-?{KT}9i?Rni3S1+M zoyU4&o~Fv=MqO6&FzYo`iAku&Cpq{nTH+`8+;p6-`MW!*uU-?6ji0r71-W9Z?K5cW9ySeAEuK^KY~cT+lx&XNm=$ zC8FTGyHvxFB@#G-X5D(wHMXMB)qceND^Kv4CtY8@`r%c>K+@npip6*`#_fqTn`3y4 zihBx=cqMD%rw`#v9yj9|Ig>@n?h&!&p;t^E8XFgGh{vkl?27Z!L+5#9#^&v|!np;VwNwFvg+Dg-SgVL$uY4m4yi2V9yFO5e8dE*G&bP&u9oq65bj%mEbj^ zF;X-qJ2b*XB{@2)(r@mo_uA4(Yff&3_o?#JizSzB`9a|Gc6WDw`_QRQ&U*_PySWD-Fqqs~t83(Kqjij6$# zS8SbvUSzr|g9+9rIVtHa@mNm|djC^+9tS3Ze>Nq|%Zc$=X&7lLEOVn3Z~t&PDI4Jv zFP@JKH^F078OXM`#$%~BB2~;u<~%I?Hb9R(U3WTPKhDXj6z^bm-#;-P%QVw`n%;Wf z#Z?UOx*NHp%2|;xY8`{eax3_fWARu%G;&Q`aR*W^Tq>xA{!c+{~-^Q z8l0=7(NcB^qk?I~0eSD9IgzpHW~4kYc#NK|T02QmvU>bG-?;!uLAJiVb@>@Cr@L~i z7aHB9;$btd8sck71GO4zkwaWG-T+pgY3_MosK{ z`!^?eyAC|&$EmJe{G#!tkD9;h1^X96Jg_HD7?s4GJ#_JwOPBuL2_Ey7YiDQY`2_v} zfLDzpsDuX1Vg#+-!DcurDFW-emR3Y~!tIDC`SDugGm#R-!=*?sa6&5?I<6bxu`W0J z>aV$Q;V@3=fJQO{qmHzWO;Qxsc)!HLyrYt$Ti#_7E=udK<^HPE+n2OTPMO-GTQW-_ zCa;=69ZT`v57lss5xR<^NjtxcKBkZ2QB%~e=5^ivHisuwxjaq$r&{^?JT17B`oyedld`gjd7l=Y#k$k8xymR^F>tzduiv zL1K!K+~PUraD{rU-92wm8_6TBW$r@N#8fBtT~^qi18(h49R`*$YUB33!gOlJV!xnc zY;dK3=Ny3p;vtW*5KDR*_|>vs`^N!*kM2gbDpAnym&O>Q25h;9=PkwrdwYd(%uLl7 zOi1I1iL#)agqE?!44qZwuI`$?6&@=QM1rAC>?QRdSuB5sLxm)OE#nH7d%plv6lO!YsOx-RDKP-VMXk8AYMCTdUzqy<&rW_YYol?Tf5dyYNh8 zGY57=Xiou;6+X^r>^wyIUEnXQj(1L#?VN6o$7;(1cr0yPkGw^Aq}f;X!@Y_P62{AO zcjOmHwIP0TJl1~Q;{o{Bu$E-3zjt3aj@_VnJRU2Fl84z1@mMmB?3Mb-ySux;bKHx) zySw`#;O#xF@QXJ8-N#7a&8m6N?G8!N)Iw^I+{u=i#25vVLYpd#BM)PjVdH|u2C*F? zVXzA?VZ8yXs(2S-Ob6v zKqjw?+89$Pb(LZt>p)TW+@46VDo9f5U{!0q_Ax}GQ|i*YUeS8RfUB+j;0fNcSFC>6 z2JXmuGBU=bm*_!{N*1mZ|v#(?)esXSz>?hDp|ttBdNh8EPdkCe5AQC=1i?MH1`?a z@%SDKct7FGT5DIIr7`glk84Bm=x7%avUVwRrlIq5XMz8R8=mZq->Vn0 z@fm*o5D7;}&r#OKD2b-Ru$8$|8`&r3I%8XerEB;Y_KXjyzK;##*=xs zoQOQmG#V-JSSpcDmKANb#$#1$_O?rxpNe^CeGh)!Fhqa}g3A!bKMS6x)}W7Q3dx$I zabGo%7EPo-aQ}ATpRbPhxx*~*Snkj&c{W3)iDc1XnYz!x04?1OErKVI3j5gN?UyhA zZa>_**n5^L+t#2MIVUL5p`Y3!pyaD@cS?cBs>@)$ridjRM0l)}uUI{8x~Ul=6)x~t zCAyh?Grz)Pr4$9W56VPFt&$g4X*rWbcu@R<-+bxvu|?#e_1kO|lIK)8J*1Gz8wx0lIyYd2yCZ>TV>Wqb*r#($I;ez3c%zR z)qJ|{c%G41xbc|z|8c8lwX?JH8NfgLym2@yW>|kbX}wUDRp$lV8}u7~ZbmY@?jF*J zE3z7wWwHjZtQ2g>?QNGYZ;rnX6q0kISd5x8MlX_LsOaw0&Ls01$N)E^;8fuME`>L+ z6+A)hrj}YM?s0w^x{H=#x1%28N%N2iXo`zy>t9GAc9H6kisL?o;l}%$RgDE!`fK+w zZ0wc*&T1yP^)H4X7MfD=DEL=y^xQkiHF{ft4lsDz<;yp9!1l*nr|5j?Y{WgSXO)5Y z32k6RPRSakKzxaP+9reRHN8k z)WXj%m+$3}?BQYy#-S2!d(4oe(cO(EGRNVu_VMXXJ&0!N>&)RlJWYa*z!1>-zL$w^ z5MkExUR0_EzR8J=oFH7aLmkOs2G-F17UKA^yC17{CnS-!LUg(^fxDu`XzrJ$rvzHq zBjQy5=I-w94WZF}-E;U4+BZ>~cq~a8+Fg`HbY2hQv6Qv0=45L<*1lbYPf8u^{#5W- z-W}W`EZp9*v$M0!23zhkhXI=kEh{a@^%65$EsQy1x4>gP(Ci7|X`3g#^ypxs5jA11 z=yKU%!mXRUx&})V-fFl!3Btn|psSm$&t)TH`QufYtRh*dwXX44)Bb)K6;h&@<0M9D zI+`bY7?90-@*F3_ zV=b#a{`O0kR;aSSv^wr9bMDtO134a#CF00U@K_(5+5wc(P1XS|{cFc=PHPrKnWuoq zVo3Fy{^-7c3cV|`v$JzI8(N9yryTZr70@AyyINTWTPd8#LeSFt=gpHcq)bZ6f)?C9 z@tao2J3Bjn8TcjO?6U|_XR{t-C2?`LZh?=Hq@u3m>hZ>J4K$6|p_Bz5JVw7m3Jw*{ zY)D*j|Ind_K2RvUICYkwd5kK$o)3@2kGa9D8G{Jp5L~#&1M|G5rdl6Z<(RrzTtS-GHr74UDCs^wai~_Ha9H|s3U3Y4y$SXy31CUC*zP?HW zf=8VP-f`*D(H7uGwq6Z9YxT>^yH*qlDM933#-?Mf0ZalpkyB!pGY^YCSi2j3b6xHm zoRUKOYbjC&ViXbupm_^mxOBvk!~4x%^V;`aI1Ytz+mSy=?}xYE?O!XA10xjI_4qD$ z{|5*Im>bs)9k0+R9u?lwomLvHI;1(8xA8nMX)>8(jFhY7kCr!yxra1 zZ@*a)`Tgh4eceAkfBwNw&-uu6PaV>)-6d|V^{#ezk`pGbX03001nc$Dc=AH>H4sI` zUz^Pss$s=K``P2oaHFY0%A{c+uSixB#x)fsOJX0UZ@PGCmtaS(Q8zE^DH`TVF3!xI zc?t}Stz7=9VKP(2`p=QU>-=GBzjgSeub6k2yfG9DPd#qhPTH=SuFVVY5GmzmB7;vA2S*oG0m`MYu0j1CW7^w zRGCbe%7Q_aAq_MNQ(G`YKJz5!erT-=$*-Bsg7?@rlq)zijox$EC#C zVZ4qNJb=dvL{>}+0w_MHFqk7P%#RPdzlRMC<0qudY>4~kmN;A17#R=?%3@? z6Jip;a1LT z%=Zerwf!)_&d$yb8z!gE%9+V5a?<@e9!u6u5W$m@R~tw)kM?n_c6WLyMr+Da zgrybSh20Gu-T%Ib=rqqGQwkAql@=)|LhvP9iwE=oj5t&5YJueB!Z^T#0^ zkxF0`RHKvIF*@3{liH6Tox2cIn>!D+_Qo4N%2QwKZsb`N&c+EuDV8E;Fch$HF%UD7 zJ8qT5G_jZ}|6i?d1C9WK!*rjRnIO}Ix40N(&GD3a;o}k(Cw1dbtp3b5T)gOU^8+iHd?(R!=cX$8R?(Xifi6iekckcAxz32Hq z_cQmtu)H9rzkO#;cRg`P%Q?A00@bcfmcU0z4N<*&1FJ~iSgs0Ayy0rJoOstg_k7n4 zUT0v9{ki9PDe>K>x0$8TDmNm&)7Nr=)#u*{MNeFVtjidZMsfB8vZ4$e&>B61pe+QJ zsow}IBunud_!$y^%L&Puq(T;h1{oy{ zWABp1O=ph$#ly$#uge{5Yz$vFj&YrJ$4aA44JmO`ubLsH7)cKa^Mo%As&iHH>UwnS z=ipasSx=Y5LrdJ;u&{CA-CZqpLcDfOdBtlb4+E~sKJnSSQ{|)Hea}7bBDA(2=#O~? zxM2(ZPvw!?D%vWO2&E;SY!hW`789#!qPnx38vCVCOmJ0uPpzN2ySuyK7%5c5mxfd* zc}PN{NsvN9QYu<2%_?J7YE$OkSS$_G%&846_eoaQe}5{3!}-}7Y{wxDLCGMdX_`Wk zHW_O?mU(3uW`WHS=hs^MQsC3q@B1(^pUp^VWLcM_6cf5;)^&t*JeE^iiy%?6dBOM7~Hmjqd&m5_%7XR`4twZ4-L zsnur>nQPO6Jj*01W&*jfrOIL+Bm1Q)wmn-%TB1QWL7XSuAAS3!i!1%}m#>cdr*kF^ zk>jK8jH(CmSgK5=APr^UgiXkv_uf0(j{j7!g{|cz+{Rlp!a|Oqr6$&7nHW+L)|RBUkj> z51qn+j^uOt&OHhS?`Db6gR~Smzm?EzdUYmi+}Ezx$QRAH&nijc13QY6%wlxdTCnjv z_F7>WXo1A(od}5Tul3G{r0CKl5|q@LQ89Az1WS=W?hk#SBYA37u*K)%`Z!yoa1yf^ zcMAv+t+dATcrYj5b?)4s=LV}^1U?HQh2XVYb5e>6K&kzO zq($5yCE9b4f?u=XB(nLo1{X?$gE8Zov z{d=bxD6JJvGe`i}ja%8n$u1Hb+f*ta?ebN}p2+p}IiEj_eCuq+yc%wOx1R-*_?}A& zG);0L)r!{=*t6c%Pu-k$DhW^EKd`g2Gh-tq=bS31vM|#W*dUd_7P-@`gd5U39t#Wp zXqU-2&XdBEQ^(kBuE#t`5K|H?2{tI6jmm@(8(p1cWIiJ&MZ8gJVZRiXHKYsYbN)N; zJb(VU?%kIF;~9Z(+1}zMNkIaSHMlS)=}z{zI)<(|AuS-+GMm9{#)D@6s2}fGq|NFWoA_4>phD3^bqSp(#u;FoZ&NVtoz33#ruqC=cXxN6y}P^njNRSc z+je(%XZ?TQVk1iM<5S|43~^l@5_8Q+GPdV)#zoKr7h|M!NE%3aD@L{0A8hD+58N-H z^D#9c*5ytu&~Qqk^eEUyFjxbRW$a5@lbVzAnmS7QpH;|JE}UZ z1xiUU9yYrr@P1>xo-W_`l5ylVNsR7D2Vbx7Si-7fEu=i+DP!)T&(y%-J!p2{zpM2X zuvSTMPMs|g=ybc#g?iS*^(^9e=Oh+u$g=W~1^2o$wO_e9=|4MW)GI@e z2wVbmJQj<_wdImD%t+0d=5y-a0tAKxd2${}T6oP1#l@Q&?z3U*2X3l@v{s zd16N436TficHzGD#xeI@>4Ch@X8>x>l$Ak@rLA@e9v1;~BnRs)i7=*sHA_mEIx?T3 zWywv}*RY{!`1q98q3lS9kEWox`^qWdp_7=2Fy%}#k1XP(&5sl(t(S@#5u;7xRc?`~Z5V4Si_{GW`08wRg8#*PseSCN_?yczs)uaA2p{pbPOI#&DS!QO*~di`NN2IN0O(1@A>ne_m+zne{S=* z?>u+zu4ktF-ybrpYsvmv2f>_6@Sx(3;+0U?d*Im8!Xk&97c@LZy|!T zh@MO$6bJ}8H^yT<*6OdZF(zNF->a20&U!b!Yp_jG>&HPzEv7=vWu-)p=g||0wpH@8 z-QV|J=gxiNw_Uol>b8*K%f56r<5lAr`q@&~cr1p9#yt*?RYWOu8ObIo@ub^Z0d{wH zr=6Xh53yk)Sgre8o&o|v~ z_O6HVAOHSKmoNR$_V$^_%s%%&w)XkYN{MHP@KKUz9=g%$j!8wP#*m??vUJBSvDXR% zFxV1v=h0?gy>a^Y9)3Po2}4^Dae4zJ$A(=Ud`J=TCjx0;GT5qtqPZf6@mP5js)hb`o@Y$0aRv7)mCpdy1e0g0a$1$NHDhmYVpOOl1U0Mg z!L9IE54$~;$K^&JfqT8{x6S+$fZ(@u4X6)?NHhPl@e(ay*vI zG98S8NT#&n-+1Zb3U2=f`lWXpcvcol6(lz_4QQ)R36J%`X?jyX?kj=wt8@P392mos z;j!uwJl11om)~*e;zrQY6?p8%R(-jhD`3fNA_A8J_M{*#i2S$GM+<|DdJcY290sJ ziZCq;lNqydP8NZtTt$Adi_H&ccTORQ8%u<_MbYL_w~|uEyoKgOGSwRcVRSHeY6<}G zPD(F*_xbbR@eLO*e#bHI+c!L2mG7L-$vHX(wM>j1$s!Q0ZB2-V;Y599hlm@si12`y zKYH7xo2TbI#kGbhKVOwCxxSkgBu0wSzK)%>0N$k&#Mt_`+j6B9JGPK~usP3GrAcGJ zvE~tf#X&sQ1+#a3{iRE{5}qF^B%h|y+4Ux5h#c6IVm#?|`2fB61-OpKI%wjL^;@;_ zhGEXk>_m7hM9?($E~t0cp!3W$JntFg_x$t=UQn9*G`a6LSY&5A3tM9#9rH^@jc#g- zjhu}`bTG`WJ?E@R37v>zts-cy_8-w&I0|bV} z{f2m~N1MHg4X)g3?Ez0>Y+;cCrF~jqv9Zn?-BoKfqDY}{1XiDqD8}y+eeRuuJo1zG z+_RX>uiTc>*&n>^_PpAtw?lZWc&U%#u>?pil$2Sz@pvhZe8bI*@{{e=sE>F}|SS>FQO`IfCMZbyUJD=qHL zUW0Y&9!_fykhiy9A*C>SS`l^^^@rZISbP*4$fVbfLtw=gHL{egPr}@29)>jf^+f@n zjp0rP8peKW?X5SK@Elk>J3G%III?{8Y~*SC8+fcVM33bbc&uEPOs()iN$>eP)81Wd z+|OU`+N{X{03ZNKL_t)k`6=PCToctw$c9XKMCJaC(_KrYzF;;(M9Df(tTL0#~*f0r{e1Rn-`Io%qMg)?(IfX8~!?9C^6?fY7r(_S}*bikW2 zrc86A48m-7YdqG~EajW;yYI&~53C%s+ma;AQ)aN%*^trR7WY0gRcdGExhQRFJ&{Go zXtZR3d5RCsp%2p;HjF(0PfNLvnBp#D3X_H2r8 zxLkI`Aeqzn8W0fcYyApZiC; zc6N5|WP?rk`eBTotArcASfj3Qs=d?KN5r&-*Tw^7`OrW4lpw)s*i=YDJ5!EOV#00I7%tJ4Nn%hRCz-NOH%v z%2pQ1E`pknTo^={%-CyA)!sSOKrcOp9Sg?3&>G@IaYxrYd*HFOCmpz3=h(&=%4#DG z$~YUzE(|W*p3)sp&*|BxMNW;PDnnX#V6}pplG6}rJl;Zzk%CDlwjo1-&}wRj@pfIK z0gu%Bi~Y3M*Od&M@nCMY*+|i@J03DEf%mS8x_5VEPk6G1yRm0h-f`*DMc~)~hsy?8 zGis0uBn#7_rNksqN{i7`9%xz7Av)IXg16Whhpo>!tujBW^7H|6JlDtqZXN|`64uOG zu^K8Zk!TbQBPnObM2x+MfyYGu>7mp87sow^KQ`mP^i8WeYwoOC>(c4iG}w?k?ka*P zT2k6z_|RfPv--Yu6c*yqh4auWZUVtqJYsqmD_-(2s8n;R2-=N|rb-i~S>eGt9WIQH zq|N1dUy$=x{LS;{zv%F>H`mV2&OOgl zecShJZS&l21kE|ElhK+tRKrm%4%$OPj35CRK!XowdEeJwy!cf_F(IqtzYw8NscPib zwYaoydI}RyBg{ipHFCCVd{+!*UM>CgyU%^>u_u3Yy$eXM9|rCnW-N5X7LEBZXCRDr z(n4~DDB2mitxLeX)%dI!zK{PIHa09HaM#$i-di(DR($I;Emf*E#`%DkCBrz!fB_@7 zhPP-8h#DVu`_}%Ne;ONI!&jsn6M$Y&JBHMWv3nN8j4_QYysu02KKzs%94k$ z-{{A^oiOkK@VXo|g0&Vh2u;jW#ycL1H6AN;@t#sQslk@-WjQsUjqrT;HiuYT9JUAy+t@7NgS^mU++{5aM1SWqE!pM(H437|27 z_ZD2GlxIA!7W*7sKfZsB{i{p7HHsON^sMKOFlz3gLT!pBkC8T^1Cxb;$6FQBzN|YYGWK`OvDaZrEB=aqnKEazKmJKy`U*EsggXLU?7}Ac_!(T z?wyZsd}$uv`$FNu%i$}ZBaSa)1T>D}m-YEbEz1tA1tfA6vIM-jcB4XcN1Z=u_OIV@ z>CzEH%YViCBDzc>6H%9vdUR7aH)(5Bfow)?@tG+C#ho%2F15C%{qOGXK0?Gw9atB8 z?rHUmN{+}hjV#+fzO=`W5#`@t-G2BFa}Vh3IBtkLS)sC-; z)>v8?{yZf_R#XUyWDd>Tfw}4K1!vzz30&B{y&6- z@W}eX<+5X*e7(6Y_`0L6s-&EwQ(Fp@38o2ZYy^rKZAhe1@ZO;h`Aq09U3w>7wP)5x zr!H|ls#P=+hIE*Pp>lsBRYTPnQ*5J-(VQJABn^1D1gqCIzN_BibEYe;yGD^|y}+c! z=A{Zu7BRmsfS>xod+zzS?>u+zj>C`fefOMy{hQ{qfBUxCd^p=Z3DS#YN%0)R^&hA@ z>B8cm#)4SH^FC7R{rsbq-JUF)GO9EJgabyFiNQ?DTNdv z89XQHvES>>wX?JHnZW<}CBwjLW&`_KsH0MovTPIXF+sB2tK8P8r6DvBXGj6ZMuc6F zfBJp<`xBe7p5uTf$8y5=_sIrog~7u#oU9^wh`3S@+@AEB#Y8AVd-KJMKhY2O<*Va< zT*?dz)u4KV)>wMOval>AFnX>m_xH)AF}PE$;hq`#HROrrtIyMy(m9|r;Mo!rL|O|@ zWQ}W{;8;(@lcXJw1yN`XOr0^3`EK7^yXNkD`fPOUX0lsI|Z zVvy^+!HxB)o4=gXPP$fQUxph;^?$u3}wkc=3#gLy;}cb z$B`UY@EzDaomUNara6`}E&*OuNl*)|7eWj}ppT*$J3KC5uivVbM{*Qvb5(L(AUR;> zc(}MlE6Ji`kvxn=(rOe2NwA!{QKkj>6lHI@Pr_JuT8U4O6p{;IDMIQ%cu&e;HQMJ{ zVJcWPR(Y1m9qacLAx5gE!k!t!IIysSw8D^}=FHrO&h9XzR+jDzX<%f)Q5I%cccF{- zT=9-Nk!nmL%MW+6&VR$T#+Q8lFvM=wV|44oK!){r*xXS9@zR=+hD58ae)r|eKXT}p zN4k<1TQE#>DJ)u;R)D}`rNo6+zw&GDyYI>g&-utr5MtH1T{Rkc_<;AGT{`Z4{4ZuaY%Pi+&9oG{-c%;?RFD$73d!N> zq<`lIhf#V5d!^#FRpHp(nsNg?mdFu2RvrdSg(}vywEq9McjobuT~)pR?!C{cy4^{T zAqe3}5|R)m^(mk@feiX&6bJCBJP{O88AJsGf`B|_kV)nFWHda5rvYSE0}=?52|`GK z3=n!uIww=7Gj#X8x9aS@*Lr`fUAODrTXl!-4iDd_ethnS+`d)koH|u?&f07J2D%mR zXWO>7!Q>m<0fh^*EiSTJhPsp>1l7X#M5(Kquw^US>*3~lxVj=1`V(2ul-aC37S5tT zE9aQ2pms9R9_x1MTVJ+w*UE+NN>c;?K5x+@IB(Z#2PL?}#9$`jG#Xe+nSiI~j5`_d zY;iR`^_=MZk3BqueIGmZ)cnEIPFwis{ZET$pMJW2U)}%M1AX<~hhvX*=*FjVsmSSV z+vXy+SmJL#v95^Oyj1JTEdA8m!i`PXV;%3q34e3iX&++>nx?6MxBW)1$78E%qCHkF z-}klbv7B?vqr>0XvEvyS*Ko;0`A2=&v^~~f^eqs$CCg>yShoUCA8q$%>k3ruJ6+13 zj6&`4{fc4jabC?hzpCsz9y@|8Pz7PXXa7rg?!2aK?l%u@wRr25rnKRK zlUM#@4j!#4YG)TDfh;KFDAmj_O?* zci6>Z6bWQ1N4uz-H*1fzPjzJ0zl^fec+WgarDi-is>asN~KZ7AQ^`A~xJ&;A2Fbc1lkBl>$nlRS9QMk*cmO^XqebGmLyI4Z13>LPK@=%25#Bqb zQaX*L6D=f{p;xY14tiDack_PBv7xHG_h^cR;C>kPSSZPheiMDdTkU%XrqW-+14Csr z7w1sd!-vZD;dRsYSf^Cssb}8*{yYBclv7uEmfqd_m%OOIvd6k9$31V_xpSi3)&xA6B7pP21FAq)M=n#(;A^wT zLf5s&+7si8C+)y9p|jO#0#)PWR5heTBwH~w>d-l*N>kySTL zR)}3r_IBm&sgYGPiW?3IIK)@h8OSyks6**cNQOb=pi`n#a^*>Vvj$moe&Tqj;MA3` z_q*%5+*CbYh88b4TG>`TTZxGAAar2?H#f(Y5dH=DeO8NQ0k}zoD>acM;k_qSq4?i8 zoO+0(ykPUh^mvjtk1r9-zQKFE^$1a?3_{>Qjzo2%i^4=R-d3!GoJdGaq)^e7#1JXU zHzk;mM<7cmmPdATu$8Te269R^I&%TnbGSNC2eZmZ*(@%qU=|paDyiN|U0IZ%b7nJ> zHG^b!=Jbk}?%escNymHySZdclsxoVYI@qdR15`1QmU7IoQE{k^8&hsDSH(2R?r6uP zoh`%;*RO3gn(YQWAa}pDZTk;Rdi)wVe&s(XrYNt)_<~8yVna&W0S+?-wmUD&?6E9l z>2uR|_U3NLus7Wvs{-a+U=BwpJf%?d)hZ)V-P-n8xaIa(Lx~JaXL^e|GBWzEe0|a} z{(FqvR5)}Swa0Qg*&fTrqrr|bI7BkToJe(8@-rRzv~I>8>p<4`H%+sJF_(+GI>#}T zFo4S9(Wb81`75A{WH?lYg{*$2gyDX{`Og5ICk^;d>S&Qi-L&5wjT&9ELsC z3ErLZuwK3YA5TAh?>kOC<+K0ml>41~=BcOb`HQXn*MDDSo#1KqSa}_LEcK2HQ-1kd zcJ02TSZ^(Lko7%fQTpkwgzojXTU#^;W<`!jW2=q^U>^W{DnoY^0)XOE@5 zp6>U4lsL20jXc?VjvaN4N0S#F>myII$5ORPn0MTuY{me7Y2QCx*?T<_^QvSM{FbRi zKTNmB>O$SUY}c-dmVG0N;xZgmS4PXWaWnKT2Zp)nYuuo61{$(MPcOMw|mll|9NPW?;f6E zxwxux=3|HALuG!h&Ow(@GR=mypE|8Uo?*RS!uY#L=;ved4BO5Gy|lc@&E1TR@OtNLPvK}NIC zmG@$=>P_!BB(fRD#6t2`AJFX3mRtJ%4JzbJk+V?xo_>PlbF4h&W=q)oR%Uo z1e~u-$bjN}CRAcRlu>XQL_IlXf<$UES(FfGt=n zPwu|apaUOcNx#_oNxVHiXR<6&bDncmUuJ~ z0=#lCM1aS3h{_+Mybk#($L0qbr#oDmL16Ze(-jmPYsv zK?21Kwki}3TTot_@`YzCF0S(NEchC*Z_*#WkP3 zeLR(jjSPD|hN8qSlVhe!HUa9gr2v_6TL5)Pwxkzdtm3ja;*OSXs534I`<3n!G2Z|6 zyLO*9I?kqP9>SQ1;Lp@G!zgGpj%4;0i>Lv7<(Iw-BZ=ZDVXktPVisIEf!)LR{8j&I@htcLjV6Vuh%Q<>5V~fN`_Ifs2 zcb-brtN>L_C>8?ZOI)sqO;2)1rDDF1X~@1by!Msbx93v$E`{Kd|?ZG zGG~ENN}8Py+h!=#j-llA(w#g0VcPd=94k|F9$i&r6bY8}6r7UPL`*RY5=>0oO9?`t z15_&(V&rC#f0?!)&sYfj2nQ%Dx3NGv(a-Z zCk&F2b)s|MTI0MfQ;VNwcWKN*C8OElB-w=ktV0xP@YZRS4D*X|oOu1GOflh2z{g|6 zMF=t?u$NV8WeFHnNhJ^+k%~hp80> zFt5ey4x*+#dwOVmq-@hLCfv16s!U?W)FsTV8g7d1hrROU%es4U-hWRGRS1T~+~ z(iPq>vJ3bmQ$7;_S7+hH2N$^6S$=DZf|H?HLAgGIE;7jW85A|Ei8>gc(uYuPU;zYD zPR3PJM=0K^v2ZnG2;^RE(~0D`G^PD-8x9}(njJgdR1W1|n4(VJE5cbZq6E7#W#a_8 zB4`@<^;L&xe#Bv7n1aZt_Q_0;F8B(s z)>XJe9T&#Ls}>gJ1@j9p{=MxxMqKh`W9^4ko~#j1rdNm3iL_C3_TG5kF>!qsKGAi& z@QwqVF~8V;sEdy{f6tytBjEQkrDzf0)d%-8pM^R&=BmJ)_~J2V6C}xMahDXui>vGg z1UBopHpmh$@>+!7Uzle{GH!A3)@|`R;+#V8#*y-sBhS?=RE{s_jyDVzKJ?nfg?s<& zHP@`-2DfedY2fUMAI9=pUa`2qwT17ORY=7dp{Al1Km{KlR8|CL5i|;QQu7w%5dXPM zm&@X&@CUu|Q5EYbd*_$b+Ju^cdd}`TdC|f7=e~N^t{-pPb|OWjaP6nwME`tov4o5l zw@=TQK*gC2nzPQS6QOpV(5tPO$d)1RYvUf)p=QpRNYaZ?8KVpt*~57g`Przs#Ai}| zcaEE2-`f@!?t13#T`T#v%W}yd=smrx)Y(3}#+6sI$CA>$&VrMSB1RQK%_auRn;&tv zbG9*c@OJL2UO>It6f*?W*Vfro<3&g=)2=d(RuSXg7Xjahx9H0Mu1jgp%eL;c^BunXQ=G{3}g0K zcAAWY7f|1`38pT$$I?)7gUE;`@l*;g-UFwEGF2@et-grERHSrdJ%o~P&XT0TIGRqm zHZKJLYy{6Po1yWZd%A$b7LbbN!6!*&0p_7o#8(Vbq*ALBd>5H>p8aFzeI+U;6q2{7 z@&GsLl(`8{+c=uweiwL2`E`|tRSGU%Q}(|3Dva6P2c`lo^0E; zw>M4m3gDfS9{Z`T<1uq{+eqAr>9%brE+RI7 zRXn0qcd!k9WDcr!`&FOVwyiWx^9+ns+R5&Kf+ycqdR zTsSwuFSKnt;`P$D?XYQ@4*(O>Xg;43cj$oM4s)aOXVd6Z`A9e9?Cwzd)I-ABuU3JZ za^{lQ@#z>jXgBBsz^}AzJ8o(7Go%0Tz`gwBYm_Klmopc{$baNK{{CJ9{9N0%6DKEa z+wO0g<_*A`CjET?{L%b8e|XFmyG9=-k}Cf)81jkE7UMU|gc@q>wJFNADf2JgkV|4z z;E&t3{fl*W^CB$9brQvi1iWsr$iq{`vwFRa1!pfEkK=G(eN^TA;gAn>!`lUZv2EL_ zqw6ue7USiux@io6|FO8p>$c2I{Z5tJ^yX1+=IbE=Urgy!uidrl3BNx1Axr$o@2@Iq z=Qeze*$kZbhrL;&%`AVd`$gtov$%NjsKRTS=5CCM-G256?{l|{-2U>NJNFhr%F?as zslD~LyH;t`siv3i+&QwwIy73Y>%+dTfqjndP<`G;9=kF{=WyYf?HdR9?y1;Uyuiq8BQp>#VZ%o(}6y^m?9{tfwDB4H=HB+4{!& z-S4qy?ArA?CKQruVQWbualJk+TK6TWA~7;ALiTgG90{t-)fHWW#hh2=)sA6VNAiB& zQ-wh1)b`^nS;mVgU0oJ4O0~W(TlGRXJ z-?r`ErfKeAf=$l=-v9NSpHuj3hl^E0sbN*K#n*J{AlZ9FD_l^>;CzLsBY342>quN5 zg-cTY%EwcDWZSlj<+#7nG|d@U7WPC4@Q&e-x#5ss-?D`t^qJxOB6HrDc}`*g03ZNK zL_t(r9+jXt+HbxYQ{Mw2?S@O9j$9_&Y3Gx=HFt+e%sZ1fakSs8z&sb zpJ7%QtIjXLWjXP>`30U+*EHVz%PU`zu@!p-488G(>i}EpV_DRB23fgSGVdD>R~6>R zxn!gEE->dk5z9y3t;&V5;;PzsOHiHUF*OV~aC|t*B6|5&ore)U~%a z+*DIIwej9XIq?rG&e1`vf7o|eyN(VSbGgS{ZE_Yh8IWQrSSC%?(S7wp-cHOhDyzaV*!6G%2of_`cOa*T?*OYwf54u4P3bxl4p&ws=x5ME63{c9`#Vu%YhvF1>O0nSXP_zUn8Uhq|NhN4- zD_V*Z+}$n3Uhen3w_bka*JRerSx5HXb25`8zu)3;*2#QRgL-=@nuiY+!Qn~F2W|N{ZnJltJ=OS2v_Ny z)-^h<&L##;eMs=psmEKmJ$}z32@Zi?kymo91@-2OUkU2yLZthhvwDw*G_8J5Q}}H3 za}!;C6k&N0B98b(@CXrHA}h122^E&h=*x)k!`WxFQ~rI%1Co z7>!Y2u^Icn?KV1s5iXl|*{5BC-Z{D7XqdtR`M;rsStL8Y$NcJw=x_sXds~ef9H9B{ ztTR)bX15Fw1IFXQ38KzcW7sV$4hhG@aaadp)q2;QW?z`8`Uf+j>=}ojwbi&H8Z{7p z2-qyDyxY{wLE@Yh{ilJ0xcukN4}cf!Q+?dJ{P-nAx2sjAdBHI)MxHpV54|8Um3Jo|kvrfI3Pa^U z_Hy{L2ddhB0B={$3ELao1V&%zZQhe3m#fw}4MuSbwKa>##3)UHjyu$s&esHFRHeNE zoJ(w!5r6M95Us-O$peCy`R-+d11*F3TX{pS#<9Lt5A)Hpo~n~V+TCM&3gx&BUmlOC zk$2Pqa^@Es2KG~IGP)=7<_7xkb|k;rH`UkKGIpGCy}82a!`l&J-oO|xMmhpzCp-C7 z^G@dk$3urxnTE6F-dU(J3h|n4HU>#C%$#I6*HiM8vzMj~ztOcz@5epbvN_nof5X9A zRFzZj$mFlgfUKz!c2!t&z&@cTx^W#oFM+vs2<>I#Wq$st%~t$=bmhmTTHZx}qQS;m zfcv$!mJ172|5QD?0a6DbAiNdo-977>R2bVT(abU*>{Wu8|n#d!K#~thrbU^=4(1BF`h^b#9G~0 z9gwCbrjY)O{NrsC^MtxT>IEy>M%4=B!XeEiU+^!8eHPBFR-E+5b!Zj;X1VTQ4x{J2 z0$18uVotzGEcb?^k&V6z&%u-{6;oz~bh*fw-}2_;rbZ-bksG_M!h#ZJhNw@&Y9}k~ znk(>DZ#i(klDD@#+|fE_gDPTp0d|B2E_)9Hx5SDvX-<7`Vy=6)DrJZ95c-nWH$@zx zP(??5yKG{9729Cb0u*(p%NR0pnEpZK1Mb}qDZl^OwC(93M83SHFP}+QDr=C)WB~N^=c|nl>oBm!l2U6&uGzoO} zFkOGD-Omn=^lA00cT9LZq2pqqf_B>!*&OjTBxrq`HCi;4G*R9*V=TxB_-s}me-WF5 zKl#W12WIGZSHz7r!XE(}M?q2n4FcG95*vC!JbeLYNDo=wMtT*h<6n$&0BT%z`-XY( zEAXe?wbqL$lfnnp!+%2d0@?pf8qTll|L)8LE)p`gd3Xe1x+mijP4pXt5-JHIqcXyR zN4ujP>AIgEfI~2D6%a5{jex~(={4U!$&cCC*akBC@<`*|2catEaWLru431JL%dHpN zgaKkkCA}1!){J^$L<4a62Bm?UUQE}Y zT^V!+bddKmI(!~unTx&K;6Fd3&cV!IIJxM2cV?cpXJ3d%sk%SaRKeB&rER(GY_qHT zGP1=Cq0(F9!MN6uA-lbRx!$;33#ZRch-hAL8#@N9lbeP&`q2|>#XC}%=sm~Es{LBy ztegA}A_#H#Hq62a39d=`vz#d(tX_k!#Q&%LwWBn-#C5zGN}zE?IL`nsOXbdEs}e%9 zF;%y-_D5)YTQ$<3sj4NYe&q@{E>hgxUM=GY=2A-bNR+G;b<`|57yaI5&;kMKXVzp2 z`c%xBBs7lYB+8-Q5M0lI%jY%zLy}ytBK>6E(^YK9la^Zspt(JpIFXq=C=~n7H2FvK zhJt=oh|Gq^hD*IdfcqUG=4oiQ^~$IN3+k(n8t5XU|v4!n;VdF6GBE)b7d zxL2Hs(8*C6QM>m}@{#?I`@;#}utK9^CgTb)86rx2Qn13qu`i=Yt9CM8)Dg3M2%}EI z_U@W+DM~H+9M!@a=2CC*u`D}=t`E2K@Y8Aj>Y?C!qitV4@;m8ck{qrSI%|EEx^7?9 zMa%bT_s*n(J3O{nUFnMspIlx&1Lee32@V8lChs~2Zw07iHcD9rYKI`}%qO`JWatdf zF*+6xJUWJoBFw(M)}e^Kr29!ZoFHpgX9=CN--eA9_Qa`(Iwgs83xsacz01hR8~>PB zr7P^r1W6PuHhD8tdkB}_%3aC!{epb8>X_4DBK37BfdBlo zl3!8NyDY{0m!xwio;S5_k85Eq&a+z^2v>w}p%eH9oh&yjtE9J$gLnU`Ql5imeVdF1 zE_ziZr$#xRZu5h}f+B_G!;|buX;@b6 z83P@mWC0YbOExBJbli*hB*4?);`s?+2HPy1Rf1Emj++!CB$`(7(HrwF03RqdL-O|> zsuKP>h>a<8Vp|S>bh6I>(&%Ol9X6{>3}#ZSdvD%w)F)=XqdC_r@Wb^kzs#u)?U5Kb zqy#!KF{u0O9P-)Fn(-8U^~e=r0bPzVTHQ1D+nqm<0@6iIcRW&@{zW-FCW?FP61q6> zQtsT~*39L85SNnkz%`~oihnw2=sqj%q)PBa#{GsJm8+v)TO<%KDgn{9!gtTZ1jM^6 z8(k5?nu4j{{j2x=Nt*F*SB%+x;BxlnKU{;fCWVMG9>M$vnLqi^r1|K&{h`vvn{Hzs zyeIG9ZM|&hF#fG6+ux2^4|uV%26L5}5E{Ke{nziRsaiqI);eMXzEf$?7ltdPPWC0v zNKY~rvKyJk=M_vS)sn{XipSKNWvGZtbi0?zW*s9ajQqBsljcCj1zd(C>DSF>Fq(~1 z@{;BAXve)F-?f1TU8K}Z&)Rs zzD*1iAH8U6B2iF#$JA34Y$BP*&;AKJz@0~!)m%ybEO%r^zTaBaZMj!D%Ebnr-x!`r z`#p&gDI*+u%((4rHp^7kjqSLGp-Av?GBQm&$iGpYz=TVc2uc^*#rlZtE%(PJPSU8DL$aN?70lhXl6n zbV+v3a4OH-KL55tM;$enO7i7YAskSVo-am88T+AQd#+a4<0++XA1X+Q07T|=#ZL8*_R-uD3WY_QABff< z0bM~_SNV5h1Ms#DhA}Tl<8B<2ns;(dav@$2%f)nh^T+0Q_#+9sehaXN^?yKK^C2ho zAc;>KZS3(Lyw2_kn;gFG<5jQ4n%<|Ib9xwzxsc`b-e9c`R3|u&U1hbHXOOqZZk@#` zX4)JL9Y(y?pZhS4t(~c%ku#j;{gnAfucOIvT>q}R%!#MmnEJsAN3!0M7r=W8Dz2zNuZjZU|VZ%gu$cE|JVTgSM}hn8)w#9bCmR_dJ_@BoZx3 zn~IvO6upw|PBwR7uK4z?jyf$}GG+#ntt;i8CNK0HO4D`Ow#|wp=nHSf68$onqn&6K z(&2z{Dd)RupJt@yr2pYvh(ITe>9!bL%suH(%g82OZd~TL6=emt*HAnw@#FS$UzvXg zca&53+FHb@dpQ_0d|f_&AEm;Nx?Jzvm&5fBON$-#!Mmy!?epiqE>BC+J-R%2_Zizk zC|=8W8ou_(gS0NO{8f< z%`4>BZbdrP>oauCkN+I9n*2h~*k-;kqSUnj>0PjCu=<=2$>5xVdIsxfy`~s&lDSMs zcJkO0?c+CUrP?{Vm2LjEhP7;iciKK|_4lK4FCog2s9JM0do`Kwm+vLDE1dHet1F=t zhV|IsksGMiOCL?cLQ+;kDV*n@NNDWNpLZ|*S zoXlNgS5#kc8I+oGZx;RL%+IgV8E!83v>$xe*k*WH+`Ggbo(O{Xfl3KzTLEE~;7SOr6nnK+{K{ZR81 z(pIYIov|w?GqjTmb#?)#PKiR#=N=9?ClF*!g1iFKM(utQ*i;Fs<1{kjifle`OFE-|+#}czf{)OCzqtpX}vl zoK#iS4EqSwfkeB&c_~>ed8{GTM_B2aW!45g4~h6kI1v)`3}&UvvVqG zB}>75Su7o|(V^M*m7-l28TFk;J|)*d1#^Y*+O8S@X`|&v5MDWFlgka?hSWk&rss#ev?)^2sem*=xnQc;spVTt0O7CYi3~F*UcT}L znSW-pROghA%44)?)Uuf-ZH_awNUzxSKk_ra}yz7AwvqFurnKO>|0vM~ffs zH}~)n0b?|A4zs;`P(h`!f$Y&v76|<-$AQ6(YB1wicl^(uSgQ%gzE{qBAM51k@J#o? zNIW-l>T_X|F$VAAiFJ%qlyd&KrIdWev8GfOY&hHF%6!tUxrtO>kdjbqBDv5vk9XJc z5A2Llwv`l@+iMSbervU-`^X_u1?Md@Y{NF}Ji<0{(GS7`k^uWABr`b&8i{Ww%bXqw znutY6#c5~(<`RGBS0lGbwwkjTK7F-$u^jO^pu-~_*62ho+n0rc7MO>DzLrU(-bOW; zewe493As|oJN-9KP$+TqU?DGJUFeiyRZ4SmkydZxQFIl1&df0o`xJTZbu46BDuL;W z2yJ%)pY(j->*%vK%bJmmT~dF9xgvVbszX?=%}r1YGq>n~h+jF)(qZKKBdZCC1-xMp zclpBED@3as+9zvYs;X0m9rzOvc_@!eu#;|^V}gl2l+Fk&%ytWO{Z_3@*$WQWC9B|G z$9%nZ814^KUW;5~&e|^ZxiyWDd6BCm83nyL+I*gnS4NRcK}Qt3&zu zRDrBAf7B}kQUOK?3qIJA^jvK783hrm1TC$El@&VIGxsWfpOm4B<`+K1dGnk{)2u#7 zrH0^a?*UrgfR7ugq;lv|-^?|m48D*)M^lD0cA!q1a=RVd9lX6~~+&GEjJ zd;S4>AMHoGmOUxen$_wmT^uek$E6=H%XY7q;~FM%+;hBGwJLxYZL~2MG?n^%lg1z) zM&)%}1M?TvMq?)Dzf4K=H&g%@SLyjT-%ux^(tC=TXD8pF2bK&$1OwvVao<7t0Wlk^ zoh^lZ3#o26)J- zaW_xl`dcGlC&thvZcaA=85B|rthW?EaAL70F^d#)HO8Hfx)9+=5c>e@duvMSXb{In zoCQ&qM^^#f9bC{o%E#0xk~aGeTFvPSxA`1aJ&srYKFMQDmg7#t)xO6jjXf5<6$p;L zvs{?l*6~<^rOfuEQ{)P&6>UFh;VqPxOuXRVWth~5o~_`CMxa= zLcgs4cWq~4c)dX3pp#;goWRNnx0*3c@}HJLmXkezHp>=gr|AntJ8jFu0T=;Q9prxEUEY{k6z3g4(V{8#}55a z9#myaF7`IoYmKwrZBVG;ZdmuAJTPxvvx?GwLU_tE zx1nwWfLEvpbmG~4(ERly^hi1h+SdyTR4#RMf*hKC^<=B4jQsA9>BYvwV{m9;)rgl> z9*k7veAr|=CL1p#Pc07^HwW64p*r#$zu0{T3-h{y*zMM?A)<87l3Xk@Bk3$LPl9yk zz#TDI)mOVVHupRQUK;l7A$4_FrC`0>)N8L2Z+dRdP~&A&tETMwLX#AczJxzDq~Dk` zC_L4-zcZJ76G##8weWsXKY|RhZ1&m-%!Am+Y~J{T9QptU3PZZ1rMnz2YRHFZ#%Ea? zsdjEpL6%;lpQ4FSp@K3BBB!V<^aeQiBv}?)^t$MNbbU41mAPXU1)$~UM^T8P5yb+~ zw*~#h0Kd6C(7wM!qV)^5>fzkRM!{U&`<^j6cBM)6_B15knDdRzs$n8ea7J1{s3?A7 z$9u4*!74KDS|sFNq!f8|DUOkJO~Q|P?VeHKO3iA8twi-c3#MCl$LkDsAU+kJfqH-= zU5({_%eb6Ne{-pUTdskK86eklB->D@amNVI57*Y9ZrjWNT%*pbDzhcUF;FTB+Z!(@ z`v8pcJ6IFu_n3fG_1;yNRe0vq0++1sIdGc5=sCH%>$G`5D9$XMr`GLCrq7wQZ+a*5YujJB(Y9|x#vdejQsl($F`h%?q!YTO6u-odV_ zb@5R%20^O6UUb7e(!NXVdPFbu^YP72Bt>6X(4q%hCJ(cd87CKwX1wd4qdtdXfEZ+< z;6}CmECFwQ6t1IQsXyL{xp|mLE=K63#x6mh$lBCvMIo_Fr&K_RV7->^hld7%4*@>mOK zj9&M{(x-FiS~$KQ=}5WrN4Wu$4~T1+4fbW@m&Z`wq(+he3k1xOe(YM*pP&F+dPPW+ z_?9H8F(9m_g6`qa7O8e+dgLv?P2-Sl{fXw0>}!%~`R_&0hgLtdFjTbUHb5VuhR3C# zsSjwhQI-T|J}h$ZGN;g_J;lvw;|YHvwjT=wtgERtmI})e&C-xq3Q(4dRqs815-V1y zhzY%SQq%z@71CsE5U6=}g_fwZ1QZ1ls59rXPYVNbsrCk^EELo_#-525mlde!q*i<8 z;?x3rM$^Jv1f%CllUYzyyTJN2l_zWde8C3${)=*&;;%3GrxFBEtxvJK`h&L(LZJG@ zP00j%r9gu~Egct5{&UZfB7erypN(?5ng(_TKRqqf+=DOb%xSls$cs*8`$?rA53@JK zEJ_EDKd&`Qus?c;*_9hK;dcrqr<)p$ly`K0JilTOUx9xQp>q7!DF5baZg5!uxk!Fp z1JQaw`udqlZ+=W5OgB4FdH%6E8^6;?R9zNz(&VKP|Hc9n-+1DI(Kv9bY|j|wm{i5Q z`e^ks+tkU8yRv2t8r~Q4=y;{alm@=>9&hV4a&(!V=nZpShL-H?FK6)iJE{WzL_JxH zeFdGzEkJN+IKhzShD63KH*v2sB8Hu3?2&eyB#La1$`E@U*|ZUJctwfX9uRN&bv0&J8u z_U>YxP2l;AyJg98HDa+_S=(%!}h4$dTHSTpf6_O8@)8C$EQ7Y z1;pGgig=!lhK8x5svxVs6ex>qKIEAD^B`h-wMe8&7aJ=MRL^SC$#8vtTeYdPeXquG zdJc140g6dj&ZIs=S&Oiyc;xR-i-H22t`Wh!oHUTxq^om&dYZk6g!U9s&xI;?3EaFtf$BAc zH|J^)3cn}jmPoV8sR3a!NFS-59DIUo(DNRSpDlHf&z2^BJojm!W_io?T);qsMMsw& zM=bDF)>Yce4RV%eQ#njyZ==JGmA>!Jp`2M>z>Dh&3PF%%*}PLG5CIQl*>SrZuu z;0y`nW05U`McsAj02$VHZw}f3+RT+UHH)xkyAAjA9RnqIejhgx|F?ac~+!8P!{(n6LE7r!1DRd~`zq38QRDR{_9!<;NnkTxXx;guQlcHum zW^rly&nRV^<0Bam)`UBykliE8 z4+&tHON{A0p}TwH{ps4efdl&g1zUeQLA$pkyQ_`lJ)*`&Lw!^gwG`^)tRnvh?Qtnn literal 0 HcmV?d00001 diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 71c2e550..07be3c47 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -23,7 +23,8 @@ - +

GNU MediaGoblin at your duty!

+ diff --git a/mediagoblin/templates/mediagoblin/base.html~ b/mediagoblin/templates/mediagoblin/base.html~ new file mode 100644 index 00000000..07be3c47 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/base.html~ @@ -0,0 +1,72 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} + + + {% block title %}MediaGoblin{% endblock title %} + + + + +

GNU MediaGoblin at your duty!

+ + + diff --git a/mediagoblin/templates/mediagoblin/media_details.html b/mediagoblin/templates/mediagoblin/media_details.html index 1b02c809..bd63a289 100644 --- a/mediagoblin/templates/mediagoblin/media_details.html +++ b/mediagoblin/templates/mediagoblin/media_details.html @@ -20,7 +20,7 @@ {# temporarily, an "image gallery" that isn't one really ;) #} {% if media %} -

Media details for {{media.title}}

+

Media details for {{media.title}}

diff --git a/mediagoblin/templates/mediagoblin/media_details.html~ b/mediagoblin/templates/mediagoblin/media_details.html~ new file mode 100644 index 00000000..1b02c809 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/media_details.html~ @@ -0,0 +1,34 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% extends "mediagoblin/base.html" %} +{% block mediagoblin_content %} + + {# temporarily, an "image gallery" that isn't one really ;) #} + {% if media %} +

Media details for {{media.title}}

+
+ + +
Uploaded: {{ media.created}} +
Description: {{media.description}} +
+ {% else %} +

Sorry, no such media found.

+ {% endif %} +{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index fa78bda2..e2b2730a 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -19,7 +19,7 @@ {% block mediagoblin_content %} -

{% trans %}Welcome to GNU MediaGoblin!{% endtrans %}

+

{% trans %}Welcome to GNU MediaGoblin!{% endtrans %}

{% if request.user %}

diff --git a/mediagoblin/templates/mediagoblin/root.html~ b/mediagoblin/templates/mediagoblin/root.html~ new file mode 100644 index 00000000..fa78bda2 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/root.html~ @@ -0,0 +1,56 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% extends "mediagoblin/base.html" %} + +{% block mediagoblin_content %} + +

{% trans %}Welcome to GNU MediaGoblin!{% endtrans %}

+ + {% if request.user %} +

+ Submit an item. +

+ + {% else %} +

+ If you have an account, you can + Login. +

+

+ If you don't have an account, please + Register. +

+ + {% endif %} + + {# temporarily, an "image gallery" that isn't one really ;) #} + +
+
    + {% for entry in media_entries %} +
  • + + +
  • + {% endfor %} +
+
+ +{% endblock %} From 20aaec5f683ba23b0b4b18123367c2f93f2dd73d Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 13 May 2011 15:33:27 -0500 Subject: [PATCH 0233/2731] Changed base.html back to old version --- mediagoblin/templates/mediagoblin/base.html | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 07be3c47..d73d8c20 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -23,8 +23,6 @@ -

GNU MediaGoblin at your duty!

- + {% endblock mediagoblin_body %} From 8c01ae42e9ed502c0a37bed2f449076aa183ec83 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 13 May 2011 15:33:46 -0500 Subject: [PATCH 0234/2731] Styled input buttons --- .../templates/mediagoblin/auth/login.html | 2 +- .../templates/mediagoblin/auth/login.html~ | 44 +++++++++++++++++++ .../templates/mediagoblin/auth/register.html | 2 +- .../templates/mediagoblin/auth/register.html~ | 33 ++++++++++++++ .../templates/mediagoblin/test_submit.html | 2 +- .../templates/mediagoblin/test_submit.html~ | 33 ++++++++++++++ 6 files changed, 113 insertions(+), 3 deletions(-) create mode 100644 mediagoblin/templates/mediagoblin/auth/login.html~ create mode 100644 mediagoblin/templates/mediagoblin/auth/register.html~ create mode 100644 mediagoblin/templates/mediagoblin/test_submit.html~ diff --git a/mediagoblin/templates/mediagoblin/auth/login.html b/mediagoblin/templates/mediagoblin/auth/login.html index f2e7b664..46552a39 100644 --- a/mediagoblin/templates/mediagoblin/auth/login.html +++ b/mediagoblin/templates/mediagoblin/auth/login.html @@ -38,7 +38,7 @@ {% if next %} - + {% endif %} {% endblock %} diff --git a/mediagoblin/templates/mediagoblin/auth/login.html~ b/mediagoblin/templates/mediagoblin/auth/login.html~ new file mode 100644 index 00000000..f2e7b664 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/auth/login.html~ @@ -0,0 +1,44 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% extends "mediagoblin/base.html" %} + +{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} + +{% block mediagoblin_content %} +

Login:

+ +
+ + {% if login_failed %} +

Login failed!

+ {% endif %} + + + {{ wtforms_util.render_table(login_form) }} + + + + +
+ + {% if next %} + + {% endif %} +
+{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/auth/register.html b/mediagoblin/templates/mediagoblin/auth/register.html index f3489397..de3ec71d 100644 --- a/mediagoblin/templates/mediagoblin/auth/register.html +++ b/mediagoblin/templates/mediagoblin/auth/register.html @@ -26,7 +26,7 @@ {{ wtforms_util.render_table(register_form) }} - + diff --git a/mediagoblin/templates/mediagoblin/auth/register.html~ b/mediagoblin/templates/mediagoblin/auth/register.html~ new file mode 100644 index 00000000..f3489397 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/auth/register.html~ @@ -0,0 +1,33 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% extends "mediagoblin/base.html" %} + +{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} + +{% block mediagoblin_content %} +
+ + {{ wtforms_util.render_table(register_form) }} + + + + +
+
+{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/test_submit.html b/mediagoblin/templates/mediagoblin/test_submit.html index b02f4e40..ebf93b59 100644 --- a/mediagoblin/templates/mediagoblin/test_submit.html +++ b/mediagoblin/templates/mediagoblin/test_submit.html @@ -25,7 +25,7 @@ {{ wtforms_util.render_table(image_form) }} - + diff --git a/mediagoblin/templates/mediagoblin/test_submit.html~ b/mediagoblin/templates/mediagoblin/test_submit.html~ new file mode 100644 index 00000000..ebf93b59 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/test_submit.html~ @@ -0,0 +1,33 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} + + + +
+ + {{ wtforms_util.render_table(image_form) }} + + + + +
+
+ + From 223b410dce65e0ac940c0abfa29339de826d3c39 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 13 May 2011 15:33:58 -0500 Subject: [PATCH 0235/2731] Styled buttons for real this time --- mediagoblin/static/css/base.css | 12 +++---- mediagoblin/static/css/base.css~ | 8 ++--- .../templates/mediagoblin/auth/login.html | 4 +-- .../templates/mediagoblin/auth/login.html~ | 2 +- .../templates/mediagoblin/auth/register.html | 2 +- .../templates/mediagoblin/auth/register.html~ | 2 +- .../templates/mediagoblin/submit/start.html | 2 +- .../templates/mediagoblin/submit/start.html~ | 35 +++++++++++++++++++ .../templates/mediagoblin/test_submit.html | 2 +- 9 files changed, 52 insertions(+), 17 deletions(-) create mode 100644 mediagoblin/templates/mediagoblin/submit/start.html~ diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 17f9e012..3576fd1f 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -13,7 +13,7 @@ h1 { margin-top:50px; } -.dottedLine { +.dotted_line { width:100%; height:0px; border-bottom: dotted 1px #5f5f5f; @@ -42,7 +42,7 @@ a { margin-right: auto; } -.button { +.button_red, .button_green { font-family: 'Carter One', arial, serif; height: 28px; min-width: 99px; @@ -60,11 +60,11 @@ a { padding-right:11px; } -.buttonRed { - background-image: url('button_red.png'); +.button_red { + background-image: url('../images/button_red.png'); } -.buttonGreen { - background-image: url('button_green.png'); +.button_green { + background-image: url('../images/button_green.png'); } diff --git a/mediagoblin/static/css/base.css~ b/mediagoblin/static/css/base.css~ index 17f9e012..e69a87e7 100644 --- a/mediagoblin/static/css/base.css~ +++ b/mediagoblin/static/css/base.css~ @@ -13,7 +13,7 @@ h1 { margin-top:50px; } -.dottedLine { +.dotted_line { width:100%; height:0px; border-bottom: dotted 1px #5f5f5f; @@ -42,7 +42,7 @@ a { margin-right: auto; } -.button { +.button_red, .button_green { font-family: 'Carter One', arial, serif; height: 28px; min-width: 99px; @@ -60,11 +60,11 @@ a { padding-right:11px; } -.buttonRed { +.button_red { background-image: url('button_red.png'); } -.buttonGreen { +.button_green { background-image: url('button_green.png'); } diff --git a/mediagoblin/templates/mediagoblin/auth/login.html b/mediagoblin/templates/mediagoblin/auth/login.html index 46552a39..d5a5ddef 100644 --- a/mediagoblin/templates/mediagoblin/auth/login.html +++ b/mediagoblin/templates/mediagoblin/auth/login.html @@ -33,12 +33,12 @@ {{ wtforms_util.render_table(login_form) }} - + {% if next %} - + {% endif %} {% endblock %} diff --git a/mediagoblin/templates/mediagoblin/auth/login.html~ b/mediagoblin/templates/mediagoblin/auth/login.html~ index f2e7b664..19d90907 100644 --- a/mediagoblin/templates/mediagoblin/auth/login.html~ +++ b/mediagoblin/templates/mediagoblin/auth/login.html~ @@ -38,7 +38,7 @@ {% if next %} - + {% endif %} {% endblock %} diff --git a/mediagoblin/templates/mediagoblin/auth/register.html b/mediagoblin/templates/mediagoblin/auth/register.html index de3ec71d..ee2f425b 100644 --- a/mediagoblin/templates/mediagoblin/auth/register.html +++ b/mediagoblin/templates/mediagoblin/auth/register.html @@ -26,7 +26,7 @@ {{ wtforms_util.render_table(register_form) }} - + diff --git a/mediagoblin/templates/mediagoblin/auth/register.html~ b/mediagoblin/templates/mediagoblin/auth/register.html~ index f3489397..de3ec71d 100644 --- a/mediagoblin/templates/mediagoblin/auth/register.html~ +++ b/mediagoblin/templates/mediagoblin/auth/register.html~ @@ -26,7 +26,7 @@ {{ wtforms_util.render_table(register_form) }} - + diff --git a/mediagoblin/templates/mediagoblin/submit/start.html b/mediagoblin/templates/mediagoblin/submit/start.html index 562d9050..21a7ed4e 100644 --- a/mediagoblin/templates/mediagoblin/submit/start.html +++ b/mediagoblin/templates/mediagoblin/submit/start.html @@ -28,7 +28,7 @@ {{ wtforms_util.render_table(submit_form) }} - + diff --git a/mediagoblin/templates/mediagoblin/submit/start.html~ b/mediagoblin/templates/mediagoblin/submit/start.html~ new file mode 100644 index 00000000..562d9050 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/submit/start.html~ @@ -0,0 +1,35 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% extends "mediagoblin/base.html" %} + +{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} + +{% block mediagoblin_content %} +

Submit yer media

+ +
+ + {{ wtforms_util.render_table(submit_form) }} + + + + +
+
+{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/test_submit.html b/mediagoblin/templates/mediagoblin/test_submit.html index ebf93b59..86cf4655 100644 --- a/mediagoblin/templates/mediagoblin/test_submit.html +++ b/mediagoblin/templates/mediagoblin/test_submit.html @@ -25,7 +25,7 @@ {{ wtforms_util.render_table(image_form) }} - + From 8d2a42d43561456782d103f4ef40703d7b2bde28 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 13 May 2011 15:34:10 -0500 Subject: [PATCH 0236/2731] Changed all headers to

--- .../templates/mediagoblin/auth/login.html | 2 +- .../templates/mediagoblin/auth/login.html~ | 2 +- mediagoblin/templates/mediagoblin/base.html~ | 4 +- .../templates/mediagoblin/media_details.html~ | 2 +- mediagoblin/templates/mediagoblin/root.html~ | 2 +- .../templates/mediagoblin/submit/start.html | 2 +- .../templates/mediagoblin/submit/start.html~ | 2 +- .../mediagoblin/user_pages/media.html | 4 +- .../mediagoblin/user_pages/media.html~ | 41 +++++++++++++++++++ .../mediagoblin/user_pages/user.html | 2 +- .../mediagoblin/user_pages/user.html~ | 39 ++++++++++++++++++ 11 files changed, 90 insertions(+), 12 deletions(-) create mode 100644 mediagoblin/templates/mediagoblin/user_pages/media.html~ create mode 100644 mediagoblin/templates/mediagoblin/user_pages/user.html~ diff --git a/mediagoblin/templates/mediagoblin/auth/login.html b/mediagoblin/templates/mediagoblin/auth/login.html index d5a5ddef..47b8393d 100644 --- a/mediagoblin/templates/mediagoblin/auth/login.html +++ b/mediagoblin/templates/mediagoblin/auth/login.html @@ -20,7 +20,7 @@ {% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} {% block mediagoblin_content %} -

Login:

+

Login:

diff --git a/mediagoblin/templates/mediagoblin/auth/login.html~ b/mediagoblin/templates/mediagoblin/auth/login.html~ index 19d90907..d5a5ddef 100644 --- a/mediagoblin/templates/mediagoblin/auth/login.html~ +++ b/mediagoblin/templates/mediagoblin/auth/login.html~ @@ -33,7 +33,7 @@ {{ wtforms_util.render_table(login_form) }} - + diff --git a/mediagoblin/templates/mediagoblin/base.html~ b/mediagoblin/templates/mediagoblin/base.html~ index 07be3c47..d73d8c20 100644 --- a/mediagoblin/templates/mediagoblin/base.html~ +++ b/mediagoblin/templates/mediagoblin/base.html~ @@ -23,8 +23,6 @@ -

GNU MediaGoblin at your duty!

- + {% endblock mediagoblin_body %} diff --git a/mediagoblin/templates/mediagoblin/media_details.html~ b/mediagoblin/templates/mediagoblin/media_details.html~ index 1b02c809..bd63a289 100644 --- a/mediagoblin/templates/mediagoblin/media_details.html~ +++ b/mediagoblin/templates/mediagoblin/media_details.html~ @@ -20,7 +20,7 @@ {# temporarily, an "image gallery" that isn't one really ;) #} {% if media %} -

Media details for {{media.title}}

+

Media details for {{media.title}}

diff --git a/mediagoblin/templates/mediagoblin/root.html~ b/mediagoblin/templates/mediagoblin/root.html~ index fa78bda2..e2b2730a 100644 --- a/mediagoblin/templates/mediagoblin/root.html~ +++ b/mediagoblin/templates/mediagoblin/root.html~ @@ -19,7 +19,7 @@ {% block mediagoblin_content %} -

{% trans %}Welcome to GNU MediaGoblin!{% endtrans %}

+

{% trans %}Welcome to GNU MediaGoblin!{% endtrans %}

{% if request.user %}

diff --git a/mediagoblin/templates/mediagoblin/submit/start.html b/mediagoblin/templates/mediagoblin/submit/start.html index 21a7ed4e..8b446417 100644 --- a/mediagoblin/templates/mediagoblin/submit/start.html +++ b/mediagoblin/templates/mediagoblin/submit/start.html @@ -20,7 +20,7 @@ {% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} {% block mediagoblin_content %} -

Submit yer media

+

Submit yer media

diff --git a/mediagoblin/templates/mediagoblin/submit/start.html~ b/mediagoblin/templates/mediagoblin/submit/start.html~ index 562d9050..21a7ed4e 100644 --- a/mediagoblin/templates/mediagoblin/submit/start.html~ +++ b/mediagoblin/templates/mediagoblin/submit/start.html~ @@ -28,7 +28,7 @@ {{ wtforms_util.render_table(submit_form) }} - + diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 08cc9251..e07cee44 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -20,11 +20,11 @@ {# temporarily, an "image gallery" that isn't one really ;) #} {% if media %} -

Media details for Media details for {{media.uploader.username}} / {{media.title}} -

+
diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html~ b/mediagoblin/templates/mediagoblin/user_pages/media.html~ new file mode 100644 index 00000000..08cc9251 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html~ @@ -0,0 +1,41 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% extends "mediagoblin/base.html" %} +{% block mediagoblin_content %} + + {# temporarily, an "image gallery" that isn't one really ;) #} + {% if media %} +

Media details for {{media.uploader.username}} + / {{media.title}} +

+
+ + +
Uploaded on {{ "%4d-%02d-%02d"|format(media.created.year, + media.created.month,media.created.day)}} by {{media.uploader.username}} +
Description: {{media.description}} +
+ {% else %} +

Sorry, no such media found.

+ {% endif %} +{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 85f05e08..5c8692fc 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -18,7 +18,7 @@ {% extends "mediagoblin/base.html" %} {% block mediagoblin_content -%} {% if user %} -

User page for '{{ user.username }}'

+

User page for '{{ user.username }}'

{#- Should we outsource such a media 'gallery' view to it's own file? It could be useful for the home page and other views too -#} diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html~ b/mediagoblin/templates/mediagoblin/user_pages/user.html~ new file mode 100644 index 00000000..4ae7986e --- /dev/null +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html~ @@ -0,0 +1,39 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% extends "mediagoblin/base.html" %} +{% block mediagoblin_content -%} + {% if user %} +

User page for '{{ user.username }}' + + {#- Should we outsource such a media 'gallery' view to it's own file? + It could be useful for the home page and other views too -#} +
    + {%- for entry in media_entries %} +
  • + + +
  • + {%- endfor %} +
+ {% else %} + {# This *should* not occur as the view makes sure we pass in a user. #} +

Sorry, no such user found.

+ {% endif %} +{% endblock %} From 4a0f823e51c575e10430be1a2f3c439eef23d06b Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 13 May 2011 15:34:26 -0500 Subject: [PATCH 0237/2731] Added header to base.html --- mediagoblin/static/css/base.css | 6 ++-- mediagoblin/static/css/base.css~ | 10 +++---- mediagoblin/templates/mediagoblin/base.html | 31 +++++--------------- mediagoblin/templates/mediagoblin/base.html~ | 31 +++++--------------- 4 files changed, 22 insertions(+), 56 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 3576fd1f..3b6abd3e 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -28,15 +28,15 @@ a { text-decoration: none; } -.header { +.mediagoblin_header { width:100%; height:60px; - background-image:url('header_back.png'); + background-image:url('../images/header_back.png'); padding-top:40px; margin-bottom:80px; } -.container { +.mediagoblin_content { width: 800px; margin-left: auto; margin-right: auto; diff --git a/mediagoblin/static/css/base.css~ b/mediagoblin/static/css/base.css~ index e69a87e7..3b6abd3e 100644 --- a/mediagoblin/static/css/base.css~ +++ b/mediagoblin/static/css/base.css~ @@ -28,15 +28,15 @@ a { text-decoration: none; } -.header { +.mediagoblin_header { width:100%; height:60px; - background-image:url('header_back.png'); + background-image:url('../images/header_back.png'); padding-top:40px; margin-bottom:80px; } -.container { +.mediagoblin_content { width: 800px; margin-left: auto; margin-right: auto; @@ -61,10 +61,10 @@ a { } .button_red { - background-image: url('button_red.png'); + background-image: url('../images/button_red.png'); } .button_green { - background-image: url('button_green.png'); + background-image: url('../images/button_green.png'); } diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index d73d8c20..4b634cf1 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -25,43 +25,26 @@ {% block mediagoblin_body %} {% block mediagoblin_header %} - - - - - - - - - + {% endblock %} {% if request.user %} - - - - {% else %} - - - - {% endif %} -
{% block mediagoblin_header_title %}MediaGoblin Home{% endblock %}
+ {% endblock %}{% block mediagoblin_header_title %}MediaGoblin Home{% endblock %} {% block mediagoblin_header_subtitle %} Clever subtitle here! - {% endblock %}
Welcome {{ request.user['username'] }}! -- Logout -
Login -
+

+
{% endblock %} -
+
{% block mediagoblin_content %} {% endblock mediagoblin_content %}
diff --git a/mediagoblin/templates/mediagoblin/base.html~ b/mediagoblin/templates/mediagoblin/base.html~ index d73d8c20..4b634cf1 100644 --- a/mediagoblin/templates/mediagoblin/base.html~ +++ b/mediagoblin/templates/mediagoblin/base.html~ @@ -25,43 +25,26 @@ {% block mediagoblin_body %} {% block mediagoblin_header %} - - - - - - - - - + {% endblock %} {% if request.user %} - - - - {% else %} - - - - {% endif %} -
{% block mediagoblin_header_title %}MediaGoblin Home{% endblock %}
+ {% endblock %}{% block mediagoblin_header_title %}MediaGoblin Home{% endblock %} {% block mediagoblin_header_subtitle %} Clever subtitle here! - {% endblock %}
Welcome {{ request.user['username'] }}! -- Logout -
Login -
+
+
{% endblock %} -
+
{% block mediagoblin_content %} {% endblock mediagoblin_content %}
From cb1e4a3d1f04ef9e7df47ec9ee6b075f264f57d6 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 13 May 2011 15:34:35 -0500 Subject: [PATCH 0238/2731] Added @font-face to css --- mediagoblin/static/css/base.css | 11 +++++++++++ mediagoblin/static/css/base.css~ | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 3b6abd3e..169394d0 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -7,6 +7,17 @@ body { margin:0px; } +/* Carter One font */ + +@font-face { + font-family: 'Carter One'; + font-style: normal; + font-weight: normal; + src: local('CarterOne'), url('http://themes.googleusercontent.com/font?kit=VjW2qt1pkqVtO22ObxgEBRsxEYwM7FgeyaSgU71cLG0') format('woff'); +} + +/* text styles */ + h1 { font-family: 'Carter One', arial, serif; margin-bottom: 20px; diff --git a/mediagoblin/static/css/base.css~ b/mediagoblin/static/css/base.css~ index 3b6abd3e..169394d0 100644 --- a/mediagoblin/static/css/base.css~ +++ b/mediagoblin/static/css/base.css~ @@ -7,6 +7,17 @@ body { margin:0px; } +/* Carter One font */ + +@font-face { + font-family: 'Carter One'; + font-style: normal; + font-weight: normal; + src: local('CarterOne'), url('http://themes.googleusercontent.com/font?kit=VjW2qt1pkqVtO22ObxgEBRsxEYwM7FgeyaSgU71cLG0') format('woff'); +} + +/* text styles */ + h1 { font-family: 'Carter One', arial, serif; margin-bottom: 20px; From 983aa712ad6be83267016de7d10a3e9b027cb1b7 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 13 May 2011 15:34:44 -0500 Subject: [PATCH 0239/2731] labels changed to font-weight normal instead of bold, css structure improved --- mediagoblin/static/css/base.css | 26 +++++++++++++++++--------- mediagoblin/static/css/base.css~ | 4 ++++ 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 169394d0..6c50377f 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -24,21 +24,18 @@ h1 { margin-top:50px; } -.dotted_line { - width:100%; - height:0px; - border-bottom: dotted 1px #5f5f5f; - position:absolute; - left:0px; - margin-top:-20px; -} - a { color: #d12929; border-bottom: 1px dotted; text-decoration: none; } +label { + font-weight: normal; +} + +/* website structure */ + .mediagoblin_header { width:100%; height:60px; @@ -71,6 +68,17 @@ a { padding-right:11px; } +/* common website elements */ + +.dotted_line { + width:100%; + height:0px; + border-bottom: dotted 1px #5f5f5f; + position:absolute; + left:0px; + margin-top:-20px; +} + .button_red { background-image: url('../images/button_red.png'); } diff --git a/mediagoblin/static/css/base.css~ b/mediagoblin/static/css/base.css~ index 169394d0..4c5ae9ab 100644 --- a/mediagoblin/static/css/base.css~ +++ b/mediagoblin/static/css/base.css~ @@ -39,6 +39,10 @@ a { text-decoration: none; } +label { + font-weight: normal; +} + .mediagoblin_header { width:100%; height:60px; From 9d4b435a728df8ad85cf2384eaf39be183322a03 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 13 May 2011 15:38:04 -0500 Subject: [PATCH 0240/2731] Removing backup files and preventing them from showing up via .gitignore --- .gitignore | 3 +- .../templates/mediagoblin/auth/login.html~ | 44 --------------- .../templates/mediagoblin/auth/register.html~ | 33 ----------- mediagoblin/templates/mediagoblin/base.html~ | 53 ------------------ .../templates/mediagoblin/media_details.html~ | 34 ----------- mediagoblin/templates/mediagoblin/root.html~ | 56 ------------------- .../templates/mediagoblin/submit/start.html~ | 35 ------------ .../templates/mediagoblin/test_submit.html~ | 33 ----------- .../mediagoblin/user_pages/media.html~ | 41 -------------- .../mediagoblin/user_pages/user.html~ | 39 ------------- 10 files changed, 2 insertions(+), 369 deletions(-) delete mode 100644 mediagoblin/templates/mediagoblin/auth/login.html~ delete mode 100644 mediagoblin/templates/mediagoblin/auth/register.html~ delete mode 100644 mediagoblin/templates/mediagoblin/base.html~ delete mode 100644 mediagoblin/templates/mediagoblin/media_details.html~ delete mode 100644 mediagoblin/templates/mediagoblin/root.html~ delete mode 100644 mediagoblin/templates/mediagoblin/submit/start.html~ delete mode 100644 mediagoblin/templates/mediagoblin/test_submit.html~ delete mode 100644 mediagoblin/templates/mediagoblin/user_pages/media.html~ delete mode 100644 mediagoblin/templates/mediagoblin/user_pages/user.html~ diff --git a/.gitignore b/.gitignore index 6f6fc624..9e01560a 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,5 @@ mediagoblin.egg-info *.pyo docs/_build/ user_dev/ -server-log.txt \ No newline at end of file +server-log.txt +*~ \ No newline at end of file diff --git a/mediagoblin/templates/mediagoblin/auth/login.html~ b/mediagoblin/templates/mediagoblin/auth/login.html~ deleted file mode 100644 index d5a5ddef..00000000 --- a/mediagoblin/templates/mediagoblin/auth/login.html~ +++ /dev/null @@ -1,44 +0,0 @@ -{# -# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 Free Software Foundation, Inc -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -#} -{% extends "mediagoblin/base.html" %} - -{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} - -{% block mediagoblin_content %} -

Login:

- -
- - {% if login_failed %} -

Login failed!

- {% endif %} - - - {{ wtforms_util.render_table(login_form) }} - - - - -
- - {% if next %} - - {% endif %} -
-{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/auth/register.html~ b/mediagoblin/templates/mediagoblin/auth/register.html~ deleted file mode 100644 index de3ec71d..00000000 --- a/mediagoblin/templates/mediagoblin/auth/register.html~ +++ /dev/null @@ -1,33 +0,0 @@ -{# -# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 Free Software Foundation, Inc -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -#} -{% extends "mediagoblin/base.html" %} - -{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} - -{% block mediagoblin_content %} -
- - {{ wtforms_util.render_table(register_form) }} - - - - -
-
-{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/base.html~ b/mediagoblin/templates/mediagoblin/base.html~ deleted file mode 100644 index 4b634cf1..00000000 --- a/mediagoblin/templates/mediagoblin/base.html~ +++ /dev/null @@ -1,53 +0,0 @@ -{# -# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 Free Software Foundation, Inc -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -#} - - - {% block title %}MediaGoblin{% endblock title %} - - - - - {% block mediagoblin_body %} - {% block mediagoblin_header %} -
-
- {% block mediagoblin_logo %} - MediaGoblin - {% endblock %}{% block mediagoblin_header_title %}MediaGoblin Home{% endblock %} - {% block mediagoblin_header_subtitle %} - Clever subtitle here! - {% endblock %} - {% if request.user %} - Welcome {{ request.user['username'] }}! -- - - Logout - {% else %} - - Login - {% endif %} -
-
- {% endblock %} -
- {% block mediagoblin_content %} - {% endblock mediagoblin_content %} -
- {% endblock mediagoblin_body %} - - diff --git a/mediagoblin/templates/mediagoblin/media_details.html~ b/mediagoblin/templates/mediagoblin/media_details.html~ deleted file mode 100644 index bd63a289..00000000 --- a/mediagoblin/templates/mediagoblin/media_details.html~ +++ /dev/null @@ -1,34 +0,0 @@ -{# -# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 Free Software Foundation, Inc -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -#} -{% extends "mediagoblin/base.html" %} -{% block mediagoblin_content %} - - {# temporarily, an "image gallery" that isn't one really ;) #} - {% if media %} -

Media details for {{media.title}}

-
- - -
Uploaded: {{ media.created}} -
Description: {{media.description}} -
- {% else %} -

Sorry, no such media found.

- {% endif %} -{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/root.html~ b/mediagoblin/templates/mediagoblin/root.html~ deleted file mode 100644 index e2b2730a..00000000 --- a/mediagoblin/templates/mediagoblin/root.html~ +++ /dev/null @@ -1,56 +0,0 @@ -{# -# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 Free Software Foundation, Inc -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -#} -{% extends "mediagoblin/base.html" %} - -{% block mediagoblin_content %} - -

{% trans %}Welcome to GNU MediaGoblin!{% endtrans %}

- - {% if request.user %} -

- Submit an item. -

- - {% else %} -

- If you have an account, you can - Login. -

-

- If you don't have an account, please - Register. -

- - {% endif %} - - {# temporarily, an "image gallery" that isn't one really ;) #} - -
-
    - {% for entry in media_entries %} -
  • - - -
  • - {% endfor %} -
-
- -{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/submit/start.html~ b/mediagoblin/templates/mediagoblin/submit/start.html~ deleted file mode 100644 index 21a7ed4e..00000000 --- a/mediagoblin/templates/mediagoblin/submit/start.html~ +++ /dev/null @@ -1,35 +0,0 @@ -{# -# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 Free Software Foundation, Inc -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -#} -{% extends "mediagoblin/base.html" %} - -{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} - -{% block mediagoblin_content %} -

Submit yer media

- -
- - {{ wtforms_util.render_table(submit_form) }} - - - - -
-
-{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/test_submit.html~ b/mediagoblin/templates/mediagoblin/test_submit.html~ deleted file mode 100644 index ebf93b59..00000000 --- a/mediagoblin/templates/mediagoblin/test_submit.html~ +++ /dev/null @@ -1,33 +0,0 @@ -{# -# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 Free Software Foundation, Inc -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -#} -{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} - - - -
- - {{ wtforms_util.render_table(image_form) }} - - - - -
-
- - diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html~ b/mediagoblin/templates/mediagoblin/user_pages/media.html~ deleted file mode 100644 index 08cc9251..00000000 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html~ +++ /dev/null @@ -1,41 +0,0 @@ -{# -# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 Free Software Foundation, Inc -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -#} -{% extends "mediagoblin/base.html" %} -{% block mediagoblin_content %} - - {# temporarily, an "image gallery" that isn't one really ;) #} - {% if media %} -

Media details for {{media.uploader.username}} - / {{media.title}} -

-
- - -
Uploaded on {{ "%4d-%02d-%02d"|format(media.created.year, - media.created.month,media.created.day)}} by {{media.uploader.username}} -
Description: {{media.description}} -
- {% else %} -

Sorry, no such media found.

- {% endif %} -{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html~ b/mediagoblin/templates/mediagoblin/user_pages/user.html~ deleted file mode 100644 index 4ae7986e..00000000 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html~ +++ /dev/null @@ -1,39 +0,0 @@ -{# -# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 Free Software Foundation, Inc -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -#} -{% extends "mediagoblin/base.html" %} -{% block mediagoblin_content -%} - {% if user %} -

User page for '{{ user.username }}' - - {#- Should we outsource such a media 'gallery' view to it's own file? - It could be useful for the home page and other views too -#} -
    - {%- for entry in media_entries %} -
  • - - -
  • - {%- endfor %} -
- {% else %} - {# This *should* not occur as the view makes sure we pass in a user. #} -

Sorry, no such user found.

- {% endif %} -{% endblock %} From e2decbcf1e0c9be461a5ee1ac40d3a7fe5492b36 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 13 May 2011 16:07:37 -0500 Subject: [PATCH 0241/2731] Removing the raw string-ness --- mediagoblin/user_pages/routing.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/user_pages/routing.py b/mediagoblin/user_pages/routing.py index c2dc2fc0..304f805f 100644 --- a/mediagoblin/user_pages/routing.py +++ b/mediagoblin/user_pages/routing.py @@ -19,6 +19,6 @@ from routes.route import Route user_routes = [ Route('mediagoblin.user_pages.user_home', "/{user}/", controller="mediagoblin.user_pages.views:user_home"), - Route('mediagoblin.user_pages.media_home', r'/{user}/m/{m_id}/', + Route('mediagoblin.user_pages.media_home', '/{user}/m/{m_id}/', requirements=dict(m_id="[0-9a-fA-F]{24}"), controller="mediagoblin.user_pages.views:media_home")] From 029cad45c6fb61ac96b7601288a76523f98a247e Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 15 May 2011 19:02:11 -0500 Subject: [PATCH 0242/2731] ./bin/gmg shell! Should make a lot of peoples' hacking lives easier I suspect :) --- mediagoblin/gmg_commands/__init__.py | 106 +++++++++++++++++++++++++++ setup.py | 4 + 2 files changed, 110 insertions(+) create mode 100644 mediagoblin/gmg_commands/__init__.py diff --git a/mediagoblin/gmg_commands/__init__.py b/mediagoblin/gmg_commands/__init__.py new file mode 100644 index 00000000..04e2ab6c --- /dev/null +++ b/mediagoblin/gmg_commands/__init__.py @@ -0,0 +1,106 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import code +import argparse +import os + +from paste.deploy.loadwsgi import NicerConfigParser + +from mediagoblin.celery_setup import setup_celery_from_config +from mediagoblin import app, util +from mediagoblin import globals as mgoblin_globals + + +SUBCOMMAND_MAP = { + 'shell': { + 'setup': 'mediagoblin.gmg_commands:shell_parser_setup', + 'func': 'mediagoblin.gmg_commands:shell', + 'help': 'Run a shell with some tools pre-setup'}, + } + + +def shell_parser_setup(subparser): + subparser.add_argument( + '-cf', '--conf_file', default='mediagoblin.ini', + help="Config file used to set up environment") + subparser.add_argument( + '-cs', '--app_section', default='app:mediagoblin', + help="Section of the config file where the app config is stored.") + + +SHELL_BANNER = """\ +GNU MediaGoblin shell! +---------------------- +Available vars: + - mgoblin_app: instantiated mediagoblin application + - mgoblin_globals: mediagoblin.globals + - db: database instance +""" + + +def shell(args): + """ + """ + # Duplicated from from_celery.py, remove when we have the generic util + parser = NicerConfigParser(args.conf_file) + parser.read(args.conf_file) + parser._defaults.setdefault( + 'here', os.path.dirname(os.path.abspath(args.conf_file))) + parser._defaults.setdefault( + '__file__', os.path.abspath(args.conf_file)) + + mgoblin_section = dict(parser.items(args.app_section)) + mgoblin_conf = dict( + [(section_name, dict(parser.items(section_name))) + for section_name in parser.sections()]) + + mgoblin_app = app.paste_app_factory( + mgoblin_conf, **mgoblin_section) + + code.interact( + banner=SHELL_BANNER, + local={ + 'mgoblin_app': mgoblin_app, + 'mgoblin_globals': mgoblin_globals, + 'db': mgoblin_globals.database}) + + +def main_cli(): + parser = argparse.ArgumentParser( + description='GNU MediaGoblin utilities.') + + subparsers = parser.add_subparsers(help='sub-command help') + for command_name, command_struct in SUBCOMMAND_MAP.iteritems(): + if command_struct.has_key('help'): + subparser = subparsers.add_parser( + command_name, help=command_struct['help']) + else: + subparser = subparsers.add_parser(command_name) + + setup_func = util.import_component(command_struct['setup']) + exec_func = util.import_component(command_struct['func']) + + setup_func(subparser) + + subparser.set_defaults(func=exec_func) + + args = parser.parse_args() + args.func(args) + + +if __name__ == '__main__': + main_cli() diff --git a/setup.py b/setup.py index 08887dee..752f1b57 100644 --- a/setup.py +++ b/setup.py @@ -40,6 +40,7 @@ setup( 'PIL', 'Babel', 'translitcodec', + 'argparse', ], test_suite='nose.collector', @@ -47,6 +48,9 @@ setup( author = 'Christopher Webber', author_email = 'cwebber@gnu.org', entry_points = """\ + [console_scripts] + gmg = mediagoblin.gmg_commands:main_cli + [paste.app_factory] app = mediagoblin.app:paste_app_factory From 400125148f82e0e67c70a25724d940d331063b44 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 16 May 2011 07:46:26 -0500 Subject: [PATCH 0243/2731] Properly linking to the background image --- mediagoblin/static/css/base.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 6c50377f..3a8d3cdc 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -1,6 +1,6 @@ body { background-color: #272727; - background-image: url('back.png'); + background-image: url('../images/back.png'); color: #f7f7f7; font-family: sans; padding:none; From 1ab8467320db7083bd651a26191cbecbdaa0f38d Mon Sep 17 00:00:00 2001 From: Sebastian Spaeth Date: Mon, 16 May 2011 14:55:05 +0200 Subject: [PATCH 0244/2731] Show images in reverse submit order Fixes bug #327. Just do a .sort('created', DESCENDING) on Media when showing them to show the latest first. Signed-off-by: Sebastian Spaeth --- mediagoblin/user_pages/views.py | 3 ++- mediagoblin/views.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 2c9792fa..c99556c2 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -15,6 +15,7 @@ # along with this program. If not, see . from webob import Response, exc +from pymongo import DESCENDING from mongokit import ObjectId import wtforms @@ -29,7 +30,7 @@ def user_home(request): medias = request.db.MediaEntry.find({ 'uploader': user, - 'state': 'processed'}) + 'state': 'processed'}).sort('created', DESCENDING) template = request.template_env.get_template( 'mediagoblin/user_pages/user.html') diff --git a/mediagoblin/views.py b/mediagoblin/views.py index 7f925bb7..602f1098 100644 --- a/mediagoblin/views.py +++ b/mediagoblin/views.py @@ -18,13 +18,14 @@ import datetime from webob import Response, exc import wtforms +from pymongo import DESCENDING from mongokit import ObjectId from mediagoblin import models import gettext def root_view(request): media_entries = request.db.MediaEntry.find( - {u'state': u'processed'}) + {u'state': u'processed'}).sort('created', DESCENDING) template = request.template_env.get_template( 'mediagoblin/root.html') From 3e4a2f2be7c4740f7192c18cf9d8c9cd9dfedad1 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 16 May 2011 17:35:56 -0500 Subject: [PATCH 0245/2731] ./bin/gmg shell documented in the hackinghowto --- docs/hackinghowto.rst | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index b34ce93a..bf5278b3 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -249,6 +249,21 @@ If you did virtualenv, run:: nosetests +Running a shell +=============== + +If you want a shell with your database pre-setup and an instantiated +application ready and at your fingertips... + +If you did buildout, run:: + + ./bin/gmg shell + +If you did virtualenv, run:: + + gmg shell + + Troubleshooting =============== From 18cf34d4701f86f5c8951ae0d340824b4b4f19ac Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 16 May 2011 18:20:50 -0500 Subject: [PATCH 0246/2731] Adding the is_admin field now per Elrond's sane request / advice. ;) --- mediagoblin/models.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mediagoblin/models.py b/mediagoblin/models.py index 4a867323..edb1d46d 100644 --- a/mediagoblin/models.py +++ b/mediagoblin/models.py @@ -42,7 +42,8 @@ class User(Document): 'pw_hash': unicode, 'email_verified': bool, 'status': unicode, - 'verification_key': unicode + 'verification_key': unicode, + 'is_admin': bool, } required_fields = ['username', 'created', 'pw_hash', 'email'] @@ -51,7 +52,8 @@ class User(Document): 'created': datetime.datetime.utcnow, 'email_verified': False, 'status': u'needs_email_verification', - 'verification_key': lambda: unicode( uuid.uuid4() ) } + 'verification_key': lambda: unicode(uuid.uuid4()), + 'is_admin': False} def check_login(self, password): """ From 37af09a2e51394c630bf7efd1718b77a574b272d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 16 May 2011 18:22:13 -0500 Subject: [PATCH 0247/2731] Require that the slug field have only unique values. --- mediagoblin/models.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mediagoblin/models.py b/mediagoblin/models.py index edb1d46d..cdb06a35 100644 --- a/mediagoblin/models.py +++ b/mediagoblin/models.py @@ -99,6 +99,10 @@ class MediaEntry(Document): 'created': datetime.datetime.utcnow, 'state': u'unprocessed'} + indexes = [ + {'fields': 'slug', + 'unique': True}] + def main_mediafile(self): pass From f0545ddebd1a313249f6b39fdf96ba879a78e8b2 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 16 May 2011 18:23:27 -0500 Subject: [PATCH 0248/2731] My name's Chris Webber and I'm pedantic about lines not going over 80 characters. --- mediagoblin/models.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mediagoblin/models.py b/mediagoblin/models.py index cdb06a35..7cacc519 100644 --- a/mediagoblin/models.py +++ b/mediagoblin/models.py @@ -109,7 +109,8 @@ class MediaEntry(Document): def generate_slug(self): self['slug'] = util.slugify(self['title']) - duplicate = mediagoblin_globals.database.media_entries.find_one({'slug': self['slug']}) + duplicate = mediagoblin_globals.database.media_entries.find_one( + {'slug': self['slug']}) if duplicate: self['slug'] = "%s-%s" % (self['_id'], self['slug']) From 931f318cbc571419510b1ad37298c981df2f16b0 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 16 May 2011 18:28:49 -0500 Subject: [PATCH 0249/2731] Actually we only need unique slugs per uploader. But I want to fix http://bugs.foocorp.net/issues/340 first. --- mediagoblin/models.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mediagoblin/models.py b/mediagoblin/models.py index 7cacc519..1bc1da60 100644 --- a/mediagoblin/models.py +++ b/mediagoblin/models.py @@ -99,9 +99,11 @@ class MediaEntry(Document): 'created': datetime.datetime.utcnow, 'state': u'unprocessed'} - indexes = [ - {'fields': 'slug', - 'unique': True}] + # Actually we should referene uniqueness by uploader, but we + # should fix http://bugs.foocorp.net/issues/340 first. + # indexes = [ + # {'fields': ['uploader', 'slug'], + # 'unique': True}] def main_mediafile(self): pass From 0f18ed8f5e179326721221df93734864074bc185 Mon Sep 17 00:00:00 2001 From: Elrond Date: Wed, 18 May 2011 00:44:10 +0200 Subject: [PATCH 0250/2731] Move models into new db/ directory The database is a central point of interest/discussion. Represent that by its own directory. This will surely become more interesting when we have migrations for example. --- mediagoblin/app.py | 3 ++- mediagoblin/celery_setup/from_celery.py | 3 ++- mediagoblin/db/__init__.py | 0 mediagoblin/{ => db}/models.py | 0 mediagoblin/views.py | 2 +- 5 files changed, 5 insertions(+), 3 deletions(-) create mode 100644 mediagoblin/db/__init__.py rename mediagoblin/{ => db}/models.py (100%) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index d124558d..908bb19c 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -21,7 +21,8 @@ import mongokit from paste.deploy.converters import asbool, asint from webob import Request, exc -from mediagoblin import routing, util, models, storage, staticdirect +from mediagoblin import routing, util, storage, staticdirect +from mediagoblin.db import models from mediagoblin.globals import setup_globals from mediagoblin.celery_setup import setup_celery_from_config diff --git a/mediagoblin/celery_setup/from_celery.py b/mediagoblin/celery_setup/from_celery.py index 55e638b9..65dcca40 100644 --- a/mediagoblin/celery_setup/from_celery.py +++ b/mediagoblin/celery_setup/from_celery.py @@ -20,7 +20,8 @@ import mongokit from paste.deploy.loadwsgi import NicerConfigParser from paste.deploy.converters import asint, asbool -from mediagoblin import storage, models +from mediagoblin import storage +from mediagoblin.db import models from mediagoblin.celery_setup import setup_celery_from_config from mediagoblin.globals import setup_globals from mediagoblin import globals as mgoblin_globals diff --git a/mediagoblin/db/__init__.py b/mediagoblin/db/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/mediagoblin/models.py b/mediagoblin/db/models.py similarity index 100% rename from mediagoblin/models.py rename to mediagoblin/db/models.py diff --git a/mediagoblin/views.py b/mediagoblin/views.py index 602f1098..60d34908 100644 --- a/mediagoblin/views.py +++ b/mediagoblin/views.py @@ -20,7 +20,7 @@ from webob import Response, exc import wtforms from pymongo import DESCENDING from mongokit import ObjectId -from mediagoblin import models +from mediagoblin.db import models import gettext def root_view(request): From a4bae8700e2186adb91d5c0a5198e7a8923143c6 Mon Sep 17 00:00:00 2001 From: Elrond Date: Wed, 18 May 2011 01:03:40 +0200 Subject: [PATCH 0251/2731] Move "connect to database" into db/util.py --- mediagoblin/app.py | 8 ++------ mediagoblin/db/util.py | 11 +++++++++++ 2 files changed, 13 insertions(+), 6 deletions(-) create mode 100644 mediagoblin/db/util.py diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 908bb19c..c94b5f6d 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -17,12 +17,12 @@ import urllib import routes -import mongokit from paste.deploy.converters import asbool, asint from webob import Request, exc from mediagoblin import routing, util, storage, staticdirect from mediagoblin.db import models +from mediagoblin.db.util import connect_database from mediagoblin.globals import setup_globals from mediagoblin.celery_setup import setup_celery_from_config @@ -118,11 +118,7 @@ class MediaGoblinApp(object): def paste_app_factory(global_config, **app_config): # Get the database connection - port = app_config.get('db_port') - if port: - port = asint(port) - connection = mongokit.Connection( - app_config.get('db_host'), port) + connection = connect_database(app_config) # Set up the storage systems. public_store = storage.storage_system_from_paste_config( diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py new file mode 100644 index 00000000..89e0dbef --- /dev/null +++ b/mediagoblin/db/util.py @@ -0,0 +1,11 @@ +import mongokit + + +def connect_database(app_config): + """Connect to the main database, take config from app_config""" + port = app_config.get('db_port') + if port: + port = asint(port) + connection = mongokit.Connection( + app_config.get('db_host'), port) + return connection From 254bc43174ecad984ce895c10e6be7926c52cc22 Mon Sep 17 00:00:00 2001 From: Elrond Date: Wed, 18 May 2011 11:32:29 +0200 Subject: [PATCH 0252/2731] Move ObjectId, DESCENDING to db.util We used to import those from pymongo and mongokit directly. We should import them from a single place. So let's try db.util for this. --- mediagoblin/db/util.py | 2 ++ mediagoblin/process_media/__init__.py | 4 ++-- mediagoblin/user_pages/views.py | 3 +-- mediagoblin/util.py | 4 ++-- mediagoblin/views.py | 3 +-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index 89e0dbef..56f22d7e 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -1,4 +1,6 @@ import mongokit +from pymongo import DESCENDING +from mongokit import ObjectId def connect_database(app_config): diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py index 3c4d0ca1..4f06a686 100644 --- a/mediagoblin/process_media/__init__.py +++ b/mediagoblin/process_media/__init__.py @@ -15,7 +15,7 @@ # along with this program. If not, see . import Image -import mongokit +from mediagoblin.db.util import ObjectId from celery.task import task from mediagoblin.globals import database, queue_store, public_store @@ -27,7 +27,7 @@ THUMB_SIZE = 200, 200 @task def process_media_initial(media_id): entry = database.MediaEntry.one( - {'_id': mongokit.ObjectId(media_id)}) + {'_id': ObjectId(media_id)}) queued_filepath = entry['queued_media_file'] queued_file = queue_store.get_file(queued_filepath, 'r') diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index c99556c2..1ab3c8ef 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -15,8 +15,7 @@ # along with this program. If not, see . from webob import Response, exc -from pymongo import DESCENDING -from mongokit import ObjectId +from mediagoblin.db.util import ObjectId, DESCENDING import wtforms diff --git a/mediagoblin/util.py b/mediagoblin/util.py index a66e2ba5..680ff62e 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -21,7 +21,7 @@ import smtplib import sys import re import jinja2 -import mongokit +from mediagoblin.db.util import ObjectId import translitcodec from mediagoblin import globals as mgoblin_globals @@ -83,7 +83,7 @@ def setup_user_in_request(request): user = None user = request.app.db.User.one( - {'_id': mongokit.ObjectId(request.session['user_id'])}) + {'_id': ObjectId(request.session['user_id'])}) if not user: # Something's wrong... this user doesn't exist? Invalidate diff --git a/mediagoblin/views.py b/mediagoblin/views.py index 60d34908..5bc04b66 100644 --- a/mediagoblin/views.py +++ b/mediagoblin/views.py @@ -18,9 +18,8 @@ import datetime from webob import Response, exc import wtforms -from pymongo import DESCENDING -from mongokit import ObjectId from mediagoblin.db import models +from mediagoblin.db.util import ObjectId, DESCENDING import gettext def root_view(request): From 1815f5ce2e1a12c04e9521dfe798c28b5186e458 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 18 May 2011 08:37:48 -0500 Subject: [PATCH 0253/2731] Adding copyright headers and explaining why these unused imports are here --- mediagoblin/db/__init__.py | 15 +++++++++++++++ mediagoblin/db/util.py | 18 ++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/mediagoblin/db/__init__.py b/mediagoblin/db/__init__.py index e69de29b..c129cbf8 100644 --- a/mediagoblin/db/__init__.py +++ b/mediagoblin/db/__init__.py @@ -0,0 +1,15 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index 56f22d7e..4828e3d7 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -1,4 +1,22 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + import mongokit + +# Imports that other modules might use from pymongo import DESCENDING from mongokit import ObjectId From 468bc8afce0eab35ca3d403708a27187f65e96ac Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 18 May 2011 08:39:09 -0500 Subject: [PATCH 0254/2731] Need to import asint for users who specify ports via config file --- mediagoblin/db/util.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index 4828e3d7..f70a5826 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -16,6 +16,8 @@ import mongokit +from paste.deploy.converters import asint + # Imports that other modules might use from pymongo import DESCENDING from mongokit import ObjectId From 3262ad1dbbc1919de2393e11900f5a47ac5dcd75 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 18 May 2011 08:44:57 -0500 Subject: [PATCH 0255/2731] Renaming connect_database to connect_database_from_config and using in from_celery --- mediagoblin/app.py | 4 ++-- mediagoblin/celery_setup/from_celery.py | 8 +++----- mediagoblin/db/util.py | 2 +- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index c94b5f6d..60adba56 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -22,7 +22,7 @@ from webob import Request, exc from mediagoblin import routing, util, storage, staticdirect from mediagoblin.db import models -from mediagoblin.db.util import connect_database +from mediagoblin.db.util import connect_database_from_config from mediagoblin.globals import setup_globals from mediagoblin.celery_setup import setup_celery_from_config @@ -118,7 +118,7 @@ class MediaGoblinApp(object): def paste_app_factory(global_config, **app_config): # Get the database connection - connection = connect_database(app_config) + connection = connect_database_from_config(app_config) # Set up the storage systems. public_store = storage.storage_system_from_paste_config( diff --git a/mediagoblin/celery_setup/from_celery.py b/mediagoblin/celery_setup/from_celery.py index 65dcca40..57b52f56 100644 --- a/mediagoblin/celery_setup/from_celery.py +++ b/mediagoblin/celery_setup/from_celery.py @@ -22,6 +22,7 @@ from paste.deploy.converters import asint, asbool from mediagoblin import storage from mediagoblin.db import models +from mediagoblin.db.util import connect_database_from_config from mediagoblin.celery_setup import setup_celery_from_config from mediagoblin.globals import setup_globals from mediagoblin import globals as mgoblin_globals @@ -69,11 +70,8 @@ def setup_self(setup_globals_func=setup_globals): settings_module=OUR_MODULENAME, set_environ=False) - port = mgoblin_section.get('db_port') - if port: - port = asint(port) - connection = mongokit.Connection( - mgoblin_section.get('db_host'), port) + connection = connect_database_from_config(mgoblin_section) + db = connection[mgoblin_section.get('db_name', 'mediagoblin')] models.register_models(connection) diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index f70a5826..407caf05 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -23,7 +23,7 @@ from pymongo import DESCENDING from mongokit import ObjectId -def connect_database(app_config): +def connect_database_from_config(app_config): """Connect to the main database, take config from app_config""" port = app_config.get('db_port') if port: From ae85ed0f971147ce7cee9ce02b498f909d21ce79 Mon Sep 17 00:00:00 2001 From: Bernhard Keller Date: Wed, 18 May 2011 17:32:49 +0200 Subject: [PATCH 0256/2731] added Pagination class, usage description in Pagination,__call__ added pagination.html, object_gallery.html as templates --- mediagoblin/templates/mediagoblin/root.html | 2 +- .../mediagoblin/user_pages/user.html | 11 +-- .../mediagoblin/utils/object_gallery.html | 36 ++++++++ .../mediagoblin/utils/pagination.html | 41 +++++++++ mediagoblin/user_pages/views.py | 23 +++-- mediagoblin/util.py | 86 +++++++++++++++++++ 6 files changed, 183 insertions(+), 16 deletions(-) create mode 100644 mediagoblin/templates/mediagoblin/utils/object_gallery.html create mode 100644 mediagoblin/templates/mediagoblin/utils/pagination.html diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index e2b2730a..a93a7c75 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -53,4 +53,4 @@

-{% endblock %} +{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 5c8692fc..48516679 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -23,14 +23,9 @@ {#- Should we outsource such a media 'gallery' view to it's own file? It could be useful for the home page and other views too -#}
    - {%- for entry in media_entries %} -
  • - - -
  • - {%- endfor %} + + {% include "mediagoblin/utils/object_gallery.html" %} +
{% else %} {# This *should* not occur as the view makes sure we pass in a user. #} diff --git a/mediagoblin/templates/mediagoblin/utils/object_gallery.html b/mediagoblin/templates/mediagoblin/utils/object_gallery.html new file mode 100644 index 00000000..6e59c380 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/utils/object_gallery.html @@ -0,0 +1,36 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} + + +
+ {% if media_entries %} +
    + {% for entry in media_entries %} +
  • + + +
  • + {% endfor %} +
+ + {% import 'mediagoblin/utils/pagination.html' as paginationmacro %} + {{ paginationmacro.render_pagination(pagination) }} + {% endif %} +
diff --git a/mediagoblin/templates/mediagoblin/utils/pagination.html b/mediagoblin/templates/mediagoblin/utils/pagination.html new file mode 100644 index 00000000..80b4b820 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/utils/pagination.html @@ -0,0 +1,41 @@ +{# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} + + +{% macro render_pagination(pagination) %} + +{# only display if {{pagination}} is defined #} + +{% if pagination %} + +{% endif %} +{% endmacro %} diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index c99556c2..55d60c6b 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -18,7 +18,7 @@ from webob import Response, exc from pymongo import DESCENDING from mongokit import ObjectId import wtforms - +from ..util import Pagination def user_home(request): """'Homepage' of a User()""" @@ -28,18 +28,26 @@ def user_home(request): if not user: return exc.HTTPNotFound() - medias = request.db.MediaEntry.find({ - 'uploader': user, - 'state': 'processed'}).sort('created', DESCENDING) - + pagination = Pagination() + media_entries = pagination( + { 'per_page': 2, + 'request': request, + 'collection':'MediaEntry', + 'query': { 'uploader':user, 'state':'processed'} } ) + + #if no data is available, return NotFound + if media_entries == None: + return exc.HTTPNotFound() + template = request.template_env.get_template( 'mediagoblin/user_pages/user.html') + return Response( template.render( {'request': request, 'user': user, - 'media_entries': medias})) - + 'media_entries': media_entries, + 'pagination': pagination})) def media_home(request): """'Homepage' of a MediaEntry()""" @@ -58,3 +66,4 @@ def media_home(request): template.render( {'request': request, 'media': media})) + diff --git a/mediagoblin/util.py b/mediagoblin/util.py index a66e2ba5..0f28dd79 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -26,6 +26,10 @@ import translitcodec from mediagoblin import globals as mgoblin_globals +import urllib +from pymongo import ASCENDING, DESCENDING +from math import ceil + TESTS_ENABLED = False def _activate_testing(): @@ -290,3 +294,85 @@ def setup_gettext(locale): mgoblin_globals.setup_globals( translations=this_gettext) + + +class Pagination(object): + """ + Pagination class + """ + def __init__(self): + pass + + def __call__(self, args): + """ + input values: + {'page': ..., --- requested page + 'per_page': ..., --- objects per page + 'request': ..., --- webob request object for url generation + 'collection' ... --- db collection, thats to be queried + 'query': {'user': xxx}, query restrictions, db.collection.find(query) + } + + add: + option for sorting attribute + ascending, descending option + range based pagination + """ + self.per_page = args['per_page'] + self.request = args['request'] + + try: + self.page = abs(int(args['request'].str_GET['page'])) + # set default page, if page value is not set + except KeyError: + self.page = 1 + # return None(404 Error) if page is set, but has no value or has an invalid value + except ValueError: + return None + + ###################################################### + # + # db queries should be changed into range based pagination + # save count and current page in some user session data + # + ###################################################### + + collection = getattr(self.request.db, args['collection']) + + self.total_count = collection.find(args['query']).count() + + #check if requested page is valid, not larger than available number of pages + if self.page > self.pages: + return None + + return collection.find(args['query']).sort('created',DESCENDING) \ + .skip((self.page-1)*self.per_page).limit(self.per_page) + + @property + def pages(self): + return int(ceil(self.total_count / float(self.per_page))) + + @property + def has_prev(self): + return self.page > 1 + + @property + def has_next(self): + return self.page < self.pages + + def iter_pages(self, left_edge=2, left_current=2, + right_current=5, right_edge=2): + last = 0 + for num in xrange(1, self.pages + 1): + if num <= left_edge or \ + (num > self.page - left_current - 1 and \ + num < self.page + right_current) or \ + num > self.pages - right_edge: + if last + 1 != num: + yield None + yield num + last = num + + def url_generator(self, page): + return '%s?%s' % (self.request.path_info, \ + urllib.urlencode({'page':str(page)})) From 86f9b473877434e5a811d057e192c91a70d67ef5 Mon Sep 17 00:00:00 2001 From: Elrond Date: Wed, 18 May 2011 22:03:52 +0200 Subject: [PATCH 0257/2731] Clean unused imports (found by pyflakes). --- mediagoblin/app.py | 2 +- mediagoblin/celery_setup/from_celery.py | 3 +-- mediagoblin/user_pages/views.py | 1 - mediagoblin/views.py | 9 ++------- 4 files changed, 4 insertions(+), 11 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 60adba56..25a6f541 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -17,7 +17,7 @@ import urllib import routes -from paste.deploy.converters import asbool, asint +from paste.deploy.converters import asbool from webob import Request, exc from mediagoblin import routing, util, storage, staticdirect diff --git a/mediagoblin/celery_setup/from_celery.py b/mediagoblin/celery_setup/from_celery.py index 57b52f56..d35009cb 100644 --- a/mediagoblin/celery_setup/from_celery.py +++ b/mediagoblin/celery_setup/from_celery.py @@ -16,9 +16,8 @@ import os -import mongokit from paste.deploy.loadwsgi import NicerConfigParser -from paste.deploy.converters import asint, asbool +from paste.deploy.converters import asbool from mediagoblin import storage from mediagoblin.db import models diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 1ab3c8ef..9e9e3f51 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -16,7 +16,6 @@ from webob import Response, exc from mediagoblin.db.util import ObjectId, DESCENDING -import wtforms def user_home(request): diff --git a/mediagoblin/views.py b/mediagoblin/views.py index 5bc04b66..dd722c63 100644 --- a/mediagoblin/views.py +++ b/mediagoblin/views.py @@ -14,13 +14,8 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -import datetime - -from webob import Response, exc -import wtforms -from mediagoblin.db import models -from mediagoblin.db.util import ObjectId, DESCENDING -import gettext +from webob import Response +from mediagoblin.db.util import DESCENDING def root_view(request): media_entries = request.db.MediaEntry.find( From a67fec8177c09c4e74ce7f4301b88f4e7ea6e658 Mon Sep 17 00:00:00 2001 From: Elrond Date: Thu, 19 May 2011 01:35:02 +0200 Subject: [PATCH 0258/2731] Factor out most of the database connection into db/open.py I needed to split the db connection/opening into open.py, due to an import loop: - util.py needs db/util.py:ObjectId - db/util.py would need db/models.py - db/models.py needs util.py:slugify --- mediagoblin/app.py | 12 ++++---- mediagoblin/celery_setup/from_celery.py | 8 ++---- mediagoblin/db/open.py | 37 +++++++++++++++++++++++++ mediagoblin/db/util.py | 13 --------- 4 files changed, 44 insertions(+), 26 deletions(-) create mode 100644 mediagoblin/db/open.py diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 25a6f541..640ffc45 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -21,8 +21,7 @@ from paste.deploy.converters import asbool from webob import Request, exc from mediagoblin import routing, util, storage, staticdirect -from mediagoblin.db import models -from mediagoblin.db.util import connect_database_from_config +from mediagoblin.db.open import setup_connection_and_db_from_config from mediagoblin.globals import setup_globals from mediagoblin.celery_setup import setup_celery_from_config @@ -35,7 +34,7 @@ class MediaGoblinApp(object): """ Really basic wsgi app using routes and WebOb. """ - def __init__(self, connection, database_path, + def __init__(self, connection, db, public_store, queue_store, staticdirector, email_sender_address, email_debug_mode, @@ -49,8 +48,7 @@ class MediaGoblinApp(object): # Set up database self.connection = connection - self.db = connection[database_path] - models.register_models(connection) + self.db = db # set up routing self.routing = routing.get_mapper() @@ -118,7 +116,7 @@ class MediaGoblinApp(object): def paste_app_factory(global_config, **app_config): # Get the database connection - connection = connect_database_from_config(app_config) + connection, db = setup_connection_and_db_from_config(app_config) # Set up the storage systems. public_store = storage.storage_system_from_paste_config( @@ -143,7 +141,7 @@ def paste_app_factory(global_config, **app_config): setup_celery_from_config(app_config, global_config) mgoblin_app = MediaGoblinApp( - connection, app_config.get('db_name', 'mediagoblin'), + connection, db, public_store=public_store, queue_store=queue_store, staticdirector=staticdirector, email_sender_address=app_config.get( diff --git a/mediagoblin/celery_setup/from_celery.py b/mediagoblin/celery_setup/from_celery.py index d35009cb..0669e80c 100644 --- a/mediagoblin/celery_setup/from_celery.py +++ b/mediagoblin/celery_setup/from_celery.py @@ -20,8 +20,7 @@ from paste.deploy.loadwsgi import NicerConfigParser from paste.deploy.converters import asbool from mediagoblin import storage -from mediagoblin.db import models -from mediagoblin.db.util import connect_database_from_config +from mediagoblin.db.open import setup_connection_and_db_from_config from mediagoblin.celery_setup import setup_celery_from_config from mediagoblin.globals import setup_globals from mediagoblin import globals as mgoblin_globals @@ -69,10 +68,7 @@ def setup_self(setup_globals_func=setup_globals): settings_module=OUR_MODULENAME, set_environ=False) - connection = connect_database_from_config(mgoblin_section) - - db = connection[mgoblin_section.get('db_name', 'mediagoblin')] - models.register_models(connection) + connection, db = setup_connection_and_db_from_config(mgoblin_section) # Set up the storage systems. public_store = storage.storage_system_from_paste_config( diff --git a/mediagoblin/db/open.py b/mediagoblin/db/open.py new file mode 100644 index 00000000..cae33394 --- /dev/null +++ b/mediagoblin/db/open.py @@ -0,0 +1,37 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import mongokit +from paste.deploy.converters import asint +from mediagoblin.db import models + + +def connect_database_from_config(app_config): + """Connect to the main database, take config from app_config""" + port = app_config.get('db_port') + if port: + port = asint(port) + connection = mongokit.Connection( + app_config.get('db_host'), port) + return connection + +def setup_connection_and_db_from_config(app_config): + connection = connect_database_from_config(app_config) + database_path = app_config.get('db_name', 'mediagoblin') + db = connection[database_path] + models.register_models(connection) + # Could configure indexes here on db + return (connection, db) diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index 407caf05..30615fca 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -14,20 +14,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -import mongokit - -from paste.deploy.converters import asint # Imports that other modules might use from pymongo import DESCENDING from mongokit import ObjectId - - -def connect_database_from_config(app_config): - """Connect to the main database, take config from app_config""" - port = app_config.get('db_port') - if port: - port = asint(port) - connection = mongokit.Connection( - app_config.get('db_host'), port) - return connection From ca3ca51c5a1fa4c10b88c851c9bd04ae7978cb41 Mon Sep 17 00:00:00 2001 From: Bernhard Keller Date: Thu, 19 May 2011 17:24:31 +0200 Subject: [PATCH 0259/2731] changed some coding styles and changed the interface for pagination from __call__ to the __init__, also getting a cursor as input, instead of the query details --- .../mediagoblin/utils/object_gallery.html | 35 +++++++------ .../mediagoblin/utils/pagination.html | 41 +++++++++------ mediagoblin/user_pages/views.py | 15 +++--- mediagoblin/util.py | 52 ++++--------------- 4 files changed, 59 insertions(+), 84 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/utils/object_gallery.html b/mediagoblin/templates/mediagoblin/utils/object_gallery.html index 6e59c380..9e8c1875 100644 --- a/mediagoblin/templates/mediagoblin/utils/object_gallery.html +++ b/mediagoblin/templates/mediagoblin/utils/object_gallery.html @@ -16,21 +16,22 @@ # along with this program. If not, see . #} +{% import 'mediagoblin/utils/pagination.html' as paginationmacro %} -
- {% if media_entries %} -
    - {% for entry in media_entries %} -
  • - - -
  • - {% endfor %} -
- - {% import 'mediagoblin/utils/pagination.html' as paginationmacro %} - {{ paginationmacro.render_pagination(pagination) }} - {% endif %} -
+
+ {% if media_entries %} +
    + {% for entry in media_entries %} +
  • + + +
  • + {% endfor %} +
+ + {{ paginationmacro.render_pagination(pagination) }} + + {% endif %} +
diff --git a/mediagoblin/templates/mediagoblin/utils/pagination.html b/mediagoblin/templates/mediagoblin/utils/pagination.html index 80b4b820..685a1bb9 100644 --- a/mediagoblin/templates/mediagoblin/utils/pagination.html +++ b/mediagoblin/templates/mediagoblin/utils/pagination.html @@ -18,24 +18,31 @@ {% macro render_pagination(pagination) %} -{# only display if {{pagination}} is defined #} + {# only display if {{pagination}} is defined #} -{% if pagination %} - -{% endif %} + {% endmacro %} diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 55d60c6b..26c67425 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -18,7 +18,8 @@ from webob import Response, exc from pymongo import DESCENDING from mongokit import ObjectId import wtforms -from ..util import Pagination +from mediagoblin.util import Pagination +from pymongo import ASCENDING, DESCENDING def user_home(request): """'Homepage' of a User()""" @@ -28,12 +29,12 @@ def user_home(request): if not user: return exc.HTTPNotFound() - pagination = Pagination() - media_entries = pagination( - { 'per_page': 2, - 'request': request, - 'collection':'MediaEntry', - 'query': { 'uploader':user, 'state':'processed'} } ) + cursor = request.db.MediaEntry \ + .find({'uploader': user, 'state': 'processed'}) \ + .sort('created', DESCENDING) + + pagination = Pagination(2, cursor, request) + media_entries = pagination() #if no data is available, return NotFound if media_entries == None: diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 0f28dd79..b79d6b05 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -27,7 +27,6 @@ import translitcodec from mediagoblin import globals as mgoblin_globals import urllib -from pymongo import ASCENDING, DESCENDING from math import ceil @@ -300,53 +299,20 @@ class Pagination(object): """ Pagination class """ - def __init__(self): - pass - - def __call__(self, args): - """ - input values: - {'page': ..., --- requested page - 'per_page': ..., --- objects per page - 'request': ..., --- webob request object for url generation - 'collection' ... --- db collection, thats to be queried - 'query': {'user': xxx}, query restrictions, db.collection.find(query) - } - - add: - option for sorting attribute - ascending, descending option - range based pagination - """ - self.per_page = args['per_page'] - self.request = args['request'] - + def __init__(self, per_page, cursor, request): try: - self.page = abs(int(args['request'].str_GET['page'])) - # set default page, if page value is not set + self.page = int(request.str_GET['page']) except KeyError: self.page = 1 - # return None(404 Error) if page is set, but has no value or has an invalid value - except ValueError: - return None - ###################################################### - # - # db queries should be changed into range based pagination - # save count and current page in some user session data - # - ###################################################### + self.per_page = per_page + self.cursor = cursor + self.request = request + self.total_count = self.cursor.count() - collection = getattr(self.request.db, args['collection']) - - self.total_count = collection.find(args['query']).count() - - #check if requested page is valid, not larger than available number of pages - if self.page > self.pages: - return None - - return collection.find(args['query']).sort('created',DESCENDING) \ - .skip((self.page-1)*self.per_page).limit(self.per_page) + def __call__(self): + return self.cursor.skip((self.page-1)*self.per_page) \ + .limit(self.per_page) @property def pages(self): From 44e3e917fbfc89409bac08d500c5a9246e0dc5f4 Mon Sep 17 00:00:00 2001 From: Bernhard Keller Date: Thu, 19 May 2011 20:37:04 +0200 Subject: [PATCH 0260/2731] removed request arg from Pagination class added get_page_url() in Pagination class, to generate proper urls without losing other get arguments --- .../mediagoblin/user_pages/user.html | 2 - .../mediagoblin/utils/object_gallery.html | 35 +++++++++-------- .../mediagoblin/utils/pagination.html | 23 ++++++----- mediagoblin/user_pages/views.py | 9 ++++- mediagoblin/util.py | 38 +++++++++++++------ 5 files changed, 61 insertions(+), 46 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 48516679..d1809e80 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -20,8 +20,6 @@ {% if user %}

User page for '{{ user.username }}'

- {#- Should we outsource such a media 'gallery' view to it's own file? - It could be useful for the home page and other views too -#}
    {% include "mediagoblin/utils/object_gallery.html" %} diff --git a/mediagoblin/templates/mediagoblin/utils/object_gallery.html b/mediagoblin/templates/mediagoblin/utils/object_gallery.html index 9e8c1875..8ae337f5 100644 --- a/mediagoblin/templates/mediagoblin/utils/object_gallery.html +++ b/mediagoblin/templates/mediagoblin/utils/object_gallery.html @@ -16,22 +16,21 @@ # along with this program. If not, see . #} -{% import 'mediagoblin/utils/pagination.html' as paginationmacro %} +{% block object_gallery_content -%} +
    + {% if media_entries %} +
      + {% for entry in media_entries %} +
    • + + +
    • + {% endfor %} +
    + {% include "mediagoblin/utils/pagination.html" %} + {% endif %} -
    - {% if media_entries %} -
      - {% for entry in media_entries %} -
    • - - -
    • - {% endfor %} -
    - - {{ paginationmacro.render_pagination(pagination) }} - - {% endif %} -
    +
    +{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/utils/pagination.html b/mediagoblin/templates/mediagoblin/utils/pagination.html index 685a1bb9..b74cbfcf 100644 --- a/mediagoblin/templates/mediagoblin/utils/pagination.html +++ b/mediagoblin/templates/mediagoblin/utils/pagination.html @@ -15,22 +15,21 @@ # along with this program. If not, see . #} +{# only display if {{pagination}} is defined #} -{% macro render_pagination(pagination) %} - - {# only display if {{pagination}} is defined #} - - {% if pagination %} - +{% endif %} -{% endmacro %} diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 26c67425..76f96cf9 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -33,9 +33,14 @@ def user_home(request): .find({'uploader': user, 'state': 'processed'}) \ .sort('created', DESCENDING) - pagination = Pagination(2, cursor, request) + try: + page = int(request.str_GET['page']) + except KeyError: + page = 1 + + pagination = Pagination(cursor, page) media_entries = pagination() - + #if no data is available, return NotFound if media_entries == None: return exc.HTTPNotFound() diff --git a/mediagoblin/util.py b/mediagoblin/util.py index b79d6b05..9247ac19 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -28,7 +28,7 @@ from mediagoblin import globals as mgoblin_globals import urllib from math import ceil - +import copy TESTS_ENABLED = False def _activate_testing(): @@ -297,20 +297,27 @@ def setup_gettext(locale): class Pagination(object): """ - Pagination class + Pagination class, + initialization through __init__(self, page=1, per_page=2, cursor) + get actual data slice through __call__() """ - def __init__(self, per_page, cursor, request): - try: - self.page = int(request.str_GET['page']) - except KeyError: - self.page = 1 + def __init__(self, cursor, page=1, per_page=2): + """ + initializes Pagination + -- page, requested page + -- per_page, number of objects per page + -- cursor, db cursor + """ + self.page = page self.per_page = per_page self.cursor = cursor - self.request = request self.total_count = self.cursor.count() def __call__(self): + """ + returns slice of objects for the requested page + """ return self.cursor.skip((self.page-1)*self.per_page) \ .limit(self.per_page) @@ -338,7 +345,14 @@ class Pagination(object): yield None yield num last = num - - def url_generator(self, page): - return '%s?%s' % (self.request.path_info, \ - urllib.urlencode({'page':str(page)})) + + def get_page_url(self, path_info, page_no, get_params=None): + """ + Get a new page based of the path_info, the new page number, + and existing get parameters. + """ + new_get_params = copy.copy(get_params or {}) + new_get_params['page'] = page_no + return "%s?%s" % ( + path_info, urllib.urlencode(new_get_params)) + From 3eb6fc4f2f2b0a41677ab88bdd941b79e3e87b39 Mon Sep 17 00:00:00 2001 From: Bernhard Keller Date: Thu, 19 May 2011 22:52:18 +0200 Subject: [PATCH 0261/2731] moved check for correct page values into decorator for view function --- mediagoblin/decorators.py | 19 +++++++++++++++++++ mediagoblin/user_pages/views.py | 11 +++++------ mediagoblin/util.py | 6 ++++-- 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index 1774ce4e..161d99ff 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -44,3 +44,22 @@ def require_active_login(controller): return controller(request, *args, **kwargs) return _make_safe(new_controller_func, controller) + + +def uses_pagination(controller): + """ + Check request GET 'page' key for wrong values + """ + def wrapper(request, *args, **kwargs): + try: + page = int(request.str_GET['page']) + if page < 0: + return exc.HTTPNotFound() + except ValueError: + return exc.HTTPNotFound() + except KeyError: + request.str_GET['page'] = 1 + + return controller(request, *args, **kwargs) + + return _make_safe(wrapper,controller) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 76f96cf9..cb2c5875 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -21,6 +21,9 @@ import wtforms from mediagoblin.util import Pagination from pymongo import ASCENDING, DESCENDING +from mediagoblin.decorators import uses_pagination + +@uses_pagination def user_home(request): """'Homepage' of a User()""" user = request.db.User.find_one({ @@ -32,13 +35,9 @@ def user_home(request): cursor = request.db.MediaEntry \ .find({'uploader': user, 'state': 'processed'}) \ .sort('created', DESCENDING) + - try: - page = int(request.str_GET['page']) - except KeyError: - page = 1 - - pagination = Pagination(cursor, page) + pagination = Pagination( int(request.str_GET['page']), cursor) media_entries = pagination() #if no data is available, return NotFound diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 9247ac19..5f5c59fb 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -29,6 +29,8 @@ from mediagoblin import globals as mgoblin_globals import urllib from math import ceil import copy +import decorators +from webob import exc TESTS_ENABLED = False def _activate_testing(): @@ -298,11 +300,11 @@ def setup_gettext(locale): class Pagination(object): """ Pagination class, - initialization through __init__(self, page=1, per_page=2, cursor) + initialization through __init__(self, cursor, page=1, per_page=2): get actual data slice through __call__() """ - def __init__(self, cursor, page=1, per_page=2): + def __init__(self, page, cursor, per_page=2): """ initializes Pagination -- page, requested page From 1301a8ad57672ae48afddf31d4951222ef8b5ff0 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 19 May 2011 22:39:15 -0500 Subject: [PATCH 0262/2731] Reorganizing the uses_pagination decorator a little and having it pass in the page number to the view --- mediagoblin/decorators.py | 6 ++---- mediagoblin/user_pages/views.py | 6 +++--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index 161d99ff..8f107b6f 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -52,14 +52,12 @@ def uses_pagination(controller): """ def wrapper(request, *args, **kwargs): try: - page = int(request.str_GET['page']) + page = int(request.GET.get('page', 1)) if page < 0: return exc.HTTPNotFound() except ValueError: return exc.HTTPNotFound() - except KeyError: - request.str_GET['page'] = 1 - return controller(request, *args, **kwargs) + return controller(request, page, *args, **kwargs) return _make_safe(wrapper,controller) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index d8665915..f50f11af 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -20,8 +20,9 @@ from mediagoblin.util import Pagination from mediagoblin.decorators import uses_pagination + @uses_pagination -def user_home(request): +def user_home(request, page): """'Homepage' of a User()""" user = request.db.User.find_one({ 'username': request.matchdict['user'], @@ -32,9 +33,8 @@ def user_home(request): cursor = request.db.MediaEntry \ .find({'uploader': user, 'state': 'processed'}) \ .sort('created', DESCENDING) - - pagination = Pagination( int(request.str_GET['page']), cursor) + pagination = Pagination(page, cursor) media_entries = pagination() #if no data is available, return NotFound From a98d5254cbf0ed753678292cbd0eaefa284bc8c9 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 19 May 2011 22:40:49 -0500 Subject: [PATCH 0263/2731] Adjusting docstrings a bit to my taste. --- mediagoblin/util.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index b05aad1d..67847de6 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -306,10 +306,12 @@ class Pagination(object): def __init__(self, page, cursor, per_page=2): """ - initializes Pagination - -- page, requested page - -- per_page, number of objects per page - -- cursor, db cursor + Initializes Pagination + + Args: + - page: requested page + - per_page: number of objects per page + - cursor: db cursor """ self.page = page self.per_page = per_page @@ -318,7 +320,7 @@ class Pagination(object): def __call__(self): """ - returns slice of objects for the requested page + Returns slice of objects for the requested page """ return self.cursor.skip((self.page-1)*self.per_page) \ .limit(self.per_page) From 140e21028b565cf4c13d05962658ad010c81dccf Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 19 May 2011 22:41:27 -0500 Subject: [PATCH 0264/2731] We don't really need to use a \ here so let's not do so. --- mediagoblin/util.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 67847de6..867c4380 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -322,8 +322,8 @@ class Pagination(object): """ Returns slice of objects for the requested page """ - return self.cursor.skip((self.page-1)*self.per_page) \ - .limit(self.per_page) + return self.cursor.skip( + (self.page - 1) * self.per_page).limit(self.per_page) @property def pages(self): From 434b32214711c1a0920ed7d4d890c67defcbd731 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 19 May 2011 22:42:38 -0500 Subject: [PATCH 0265/2731] One more mild styling tweak --- mediagoblin/user_pages/views.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index f50f11af..03f9907d 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -30,9 +30,9 @@ def user_home(request, page): if not user: return exc.HTTPNotFound() - cursor = request.db.MediaEntry \ - .find({'uploader': user, 'state': 'processed'}) \ - .sort('created', DESCENDING) + cursor = request.db.MediaEntry.find( + {'uploader': user, + 'state': 'processed'}).sort('created', DESCENDING) pagination = Pagination(page, cursor) media_entries = pagination() @@ -51,6 +51,7 @@ def user_home(request, page): 'media_entries': media_entries, 'pagination': pagination})) + def media_home(request): """'Homepage' of a MediaEntry()""" media = request.db.MediaEntry.find_one({ From dffa0b0983f971f19be62d69b1759168da82477d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 19 May 2011 22:44:57 -0500 Subject: [PATCH 0266/2731] Another minor formatting change. --- mediagoblin/util.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 867c4380..254245df 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -299,9 +299,10 @@ def setup_gettext(locale): class Pagination(object): """ - Pagination class, - initialization through __init__(self, cursor, page=1, per_page=2): - get actual data slice through __call__() + Pagination class for mongodb queries. + + Initialization through __init__(self, cursor, page=1, per_page=2), + get actual data slice through __call__(). """ def __init__(self, page, cursor, per_page=2): From b9e9610bfe613a421ac0c12148368dc8844e8366 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 19 May 2011 22:46:18 -0500 Subject: [PATCH 0267/2731] I think 30 is a good default number of items per page. --- mediagoblin/util.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 254245df..d37d160e 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -297,6 +297,8 @@ def setup_gettext(locale): translations=this_gettext) +PAGINATION_DEFAULT_PER_PAGE = 30 + class Pagination(object): """ Pagination class for mongodb queries. @@ -305,7 +307,7 @@ class Pagination(object): get actual data slice through __call__(). """ - def __init__(self, page, cursor, per_page=2): + def __init__(self, page, cursor, per_page=PAGINATION_DEFAULT_PER_PAGE): """ Initializes Pagination From 90bdf3428f5943ba091e5c1e96c9bd00afca21a2 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 20 May 2011 17:36:29 -0500 Subject: [PATCH 0268/2731] pass in page number in uses_pagination view via keyword argument so ordering doesn't matter. --- mediagoblin/decorators.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index 8f107b6f..c594f445 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -58,6 +58,6 @@ def uses_pagination(controller): except ValueError: return exc.HTTPNotFound() - return controller(request, page, *args, **kwargs) + return controller(request, page=page, *args, **kwargs) return _make_safe(wrapper,controller) From 3c2567ac7605f996dc7619f890ceb044fd7fe77c Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 20 May 2011 17:37:50 -0500 Subject: [PATCH 0269/2731] Adjusting spacing a little bit --- mediagoblin/decorators.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index c594f445..156a745f 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -60,4 +60,4 @@ def uses_pagination(controller): return controller(request, page=page, *args, **kwargs) - return _make_safe(wrapper,controller) + return _make_safe(wrapper, controller) From 724933b154c23c8b1df23686f0d47220940aabd3 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 20 May 2011 17:47:36 -0500 Subject: [PATCH 0270/2731] MediaEntry slugs usable in URLs, & decorator that grabs media from the request --- mediagoblin/decorators.py | 26 ++++++++++++++++++++++++++ mediagoblin/user_pages/routing.py | 2 +- mediagoblin/user_pages/views.py | 13 ++++--------- 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index 156a745f..07140831 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -17,6 +17,8 @@ from webob import exc +from mediagoblin.db.util import ObjectId + def _make_safe(decorator, original): """ @@ -61,3 +63,27 @@ def uses_pagination(controller): return controller(request, page=page, *args, **kwargs) return _make_safe(wrapper, controller) + + +def get_media_entry(controller): + """ + Pass in a MediaEntry based off of a url component + """ + def wrapper(request, *args, **kwargs): + media = request.db.MediaEntry.find_one( + {'slug': request.matchdict['media'], + 'state': 'processed'}) + + # no media via slug? Grab it via ObjectId + if not media: + media = request.db.MediaEntry.find_one( + {'_id': ObjectId(request.matchdict['media']), + 'state': 'processed'}) + + # Still no media? Okay, 404. + if not media: + return exc.HTTPNotFound() + + return controller(request, media=media, *args, **kwargs) + + return _make_safe(wrapper, controller) diff --git a/mediagoblin/user_pages/routing.py b/mediagoblin/user_pages/routing.py index 304f805f..8b535d13 100644 --- a/mediagoblin/user_pages/routing.py +++ b/mediagoblin/user_pages/routing.py @@ -19,6 +19,6 @@ from routes.route import Route user_routes = [ Route('mediagoblin.user_pages.user_home', "/{user}/", controller="mediagoblin.user_pages.views:user_home"), - Route('mediagoblin.user_pages.media_home', '/{user}/m/{m_id}/', + Route('mediagoblin.user_pages.media_home', '/{user}/m/{media}/', requirements=dict(m_id="[0-9a-fA-F]{24}"), controller="mediagoblin.user_pages.views:media_home")] diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 03f9907d..87fd2ce9 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -18,7 +18,7 @@ from webob import Response, exc from mediagoblin.db.util import ObjectId, DESCENDING from mediagoblin.util import Pagination -from mediagoblin.decorators import uses_pagination +from mediagoblin.decorators import uses_pagination, get_media_entry @uses_pagination @@ -52,15 +52,11 @@ def user_home(request, page): 'pagination': pagination})) -def media_home(request): +@get_media_entry +def media_home(request, media): """'Homepage' of a MediaEntry()""" - media = request.db.MediaEntry.find_one({ - '_id': ObjectId(request.matchdict['m_id']), - 'state': 'processed'}) - # Check that media uploader and user correspond. - if not media or \ - media['uploader'].get('username') != request.matchdict['user']: + if media['uploader'].get('username') != request.matchdict['user']: return exc.HTTPNotFound() template = request.template_env.get_template( @@ -69,4 +65,3 @@ def media_home(request): template.render( {'request': request, 'media': media})) - From 439e37f73287efbbef8ef60492d7a8c4970a9907 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 20 May 2011 17:48:43 -0500 Subject: [PATCH 0271/2731] Cosmetic changes: removed an unused import, stripped some trailing whitespace. --- mediagoblin/decorators.py | 2 +- mediagoblin/user_pages/views.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index 07140831..2e7ad386 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -60,7 +60,7 @@ def uses_pagination(controller): except ValueError: return exc.HTTPNotFound() - return controller(request, page=page, *args, **kwargs) + return controller(request, page=page, *args, **kwargs) return _make_safe(wrapper, controller) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 87fd2ce9..0803749a 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -15,7 +15,7 @@ # along with this program. If not, see . from webob import Response, exc -from mediagoblin.db.util import ObjectId, DESCENDING +from mediagoblin.db.util import DESCENDING from mediagoblin.util import Pagination from mediagoblin.decorators import uses_pagination, get_media_entry From 6926b23d43323bbc214aa285948ad2850c5ad22e Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 20 May 2011 18:16:10 -0500 Subject: [PATCH 0272/2731] Added a url_for_self method for generating mediaentry links This allows for optionally making the url based off of slugs or ids --- mediagoblin/db/models.py | 18 ++++++++++++++++++ mediagoblin/templates/mediagoblin/root.html | 3 +-- .../mediagoblin/utils/object_gallery.html | 3 +-- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 1bc1da60..8e7889eb 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -117,6 +117,24 @@ class MediaEntry(Document): if duplicate: self['slug'] = "%s-%s" % (self['_id'], self['slug']) + def url_for_self(self, urlgen): + """ + Generate an appropriate url for ourselves + + Use a slug if we have one, else use our '_id'. + """ + if self.get('slug'): + return urlgen( + 'mediagoblin.user_pages.media_home', + user=self['uploader']['username'], + media=self['slug']) + else: + return urlgen( + 'mediagoblin.user_pages.media_home', + user=self['uploader']['username'], + media=unicode(self['_id'])) + + REGISTER_MODELS = [MediaEntry, User] diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index a93a7c75..05926687 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -44,8 +44,7 @@
      {% for entry in media_entries %}
    • - +
    • diff --git a/mediagoblin/templates/mediagoblin/utils/object_gallery.html b/mediagoblin/templates/mediagoblin/utils/object_gallery.html index 8ae337f5..30497f47 100644 --- a/mediagoblin/templates/mediagoblin/utils/object_gallery.html +++ b/mediagoblin/templates/mediagoblin/utils/object_gallery.html @@ -22,8 +22,7 @@
        {% for entry in media_entries %}
      • - +
      • From 571198c938d66d2cc4d7d7a0d261633d51061968 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 20 May 2011 18:49:04 -0500 Subject: [PATCH 0273/2731] Now you can set CELERY_ALWAYS_EAGER environment variable so that you don't have to run celeryd at the same time. This should make Elrond happy ;) --- mediagoblin/app.py | 8 +++++++- mediagoblin/celery_setup/__init__.py | 5 +++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 640ffc45..714404de 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -14,6 +14,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +import os import urllib import routes @@ -138,7 +139,12 @@ def paste_app_factory(global_config, **app_config): raise ImproperlyConfigured( "One of direct_remote_path or direct_remote_paths must be provided") - setup_celery_from_config(app_config, global_config) + if asbool(os.environ.get('CELERY_ALWAYS_EAGER')): + setup_celery_from_config( + app_config, global_config, + force_celery_always_eager=True) + else: + setup_celery_from_config(app_config, global_config) mgoblin_app = MediaGoblinApp( connection, db, diff --git a/mediagoblin/celery_setup/__init__.py b/mediagoblin/celery_setup/__init__.py index 551b2741..1a77cc62 100644 --- a/mediagoblin/celery_setup/__init__.py +++ b/mediagoblin/celery_setup/__init__.py @@ -76,6 +76,7 @@ DEFAULT_SETTINGS_MODULE = 'mediagoblin.celery_setup.dummy_settings_module' def setup_celery_from_config(app_config, global_config, settings_module=DEFAULT_SETTINGS_MODULE, + force_celery_always_eager=False, set_environ=True): """ Take a mediagoblin app config and the global config from a paste @@ -85,6 +86,7 @@ def setup_celery_from_config(app_config, global_config, - app_config: the application config section - global_config: the entire paste config, all sections - settings_module: the module to populate, as a string + - - set_environ: if set, this will CELERY_CONFIG_MODULE to the settings_module """ @@ -136,6 +138,9 @@ def setup_celery_from_config(app_config, global_config, celery_imports = celery_settings.setdefault('CELERY_IMPORTS', []) celery_imports.extend(MANDATORY_CELERY_IMPORTS) + if force_celery_always_eager: + celery_settings['CELERY_ALWAYS_EAGER'] = True + __import__(settings_module) this_module = sys.modules[settings_module] From 01674e105c4269d53453257f69f7512e8b5d40a8 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 20 May 2011 19:12:32 -0500 Subject: [PATCH 0274/2731] Make sure that a MediaEntry does belong to this appropriate user in the decorator. (Thanks Elrond) --- mediagoblin/decorators.py | 22 +++++++++++++++++----- mediagoblin/user_pages/views.py | 4 ++-- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index 2e7ad386..34a471cb 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -15,6 +15,7 @@ # along with this program. If not, see . +from bson.errors import InvalidId from webob import exc from mediagoblin.db.util import ObjectId @@ -65,20 +66,31 @@ def uses_pagination(controller): return _make_safe(wrapper, controller) -def get_media_entry(controller): +def get_user_media_entry(controller): """ Pass in a MediaEntry based off of a url component """ def wrapper(request, *args, **kwargs): + user = request.db.User.find_one( + {'username': request.matchdict['user']}) + + if not user: + return exc.HTTPNotFound() + media = request.db.MediaEntry.find_one( {'slug': request.matchdict['media'], - 'state': 'processed'}) + 'state': 'processed', + 'uploader._id': user['_id']}) # no media via slug? Grab it via ObjectId if not media: - media = request.db.MediaEntry.find_one( - {'_id': ObjectId(request.matchdict['media']), - 'state': 'processed'}) + try: + media = request.db.MediaEntry.find_one( + {'_id': ObjectId(request.matchdict['media']), + 'state': 'processed', + 'uploader._id': user['_id']}) + except InvalidId: + return exc.HTTPNotFound() # Still no media? Okay, 404. if not media: diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 0803749a..4a570579 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -18,7 +18,7 @@ from webob import Response, exc from mediagoblin.db.util import DESCENDING from mediagoblin.util import Pagination -from mediagoblin.decorators import uses_pagination, get_media_entry +from mediagoblin.decorators import uses_pagination, get_user_media_entry @uses_pagination @@ -52,7 +52,7 @@ def user_home(request, page): 'pagination': pagination})) -@get_media_entry +@get_user_media_entry def media_home(request, media): """'Homepage' of a MediaEntry()""" # Check that media uploader and user correspond. From 5487efc4016da577796579797812f1753c55a6de Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 20 May 2011 19:12:44 -0500 Subject: [PATCH 0275/2731] This check is redundant now that it's handled by the decorator. --- mediagoblin/user_pages/views.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 4a570579..0d9833cd 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -55,10 +55,6 @@ def user_home(request, page): @get_user_media_entry def media_home(request, media): """'Homepage' of a MediaEntry()""" - # Check that media uploader and user correspond. - if media['uploader'].get('username') != request.matchdict['user']: - return exc.HTTPNotFound() - template = request.template_env.get_template( 'mediagoblin/user_pages/media.html') return Response( From 2aa3bb1154758f7c5445985de2f0d4a00c6d78dc Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Fri, 20 May 2011 20:20:33 -0400 Subject: [PATCH 0276/2731] Moves virtualenv instructions to a place far far away But seriously, moved them to the stop-gap wiki: https://gitorious.org/mediagoblin/pages/HackingWithVirtualenv --- docs/hackinghowto.rst | 136 +++++------------------------------------- 1 file changed, 15 insertions(+), 121 deletions(-) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index bf5278b3..939c9510 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -4,7 +4,6 @@ Hacking HOWTO =============== - So you want to hack on GNU MediaGoblin? ======================================= @@ -26,12 +25,9 @@ new things. Third you'll need to :ref:`get the requirements `. -Fourth, you'll need to build a development environment. For this step, there are two options: - -1. :ref:`buildout and bootstrap ` (easier) OR -2. :ref:`virtualenv ` (more flexible, but harder) - -Pick one---don't do both! +Fourth, you'll need to build a development environment. We use buildout, +but if you want to use virtualenv, there's a set of mediocre not-very-supported +steps in the `wiki `_. .. _get-requirements-section: @@ -65,15 +61,10 @@ requirements:: .. _hacking-with-buildout: + How to set up and maintain an environment for hacking with buildout =================================================================== -.. Note:: - - Either follow the instructions in this section OR follow the ones - in :ref:`hacking-with-virtualenv`. But don't do both! - - **Requirements** No additional requirements. @@ -124,104 +115,14 @@ To do this, do:: rm -rf bin develop-eggs eggs mediagoblin.egg-info parts user_dev -Usually buildout works pretty great and is super easy, but if you get -problems with python-dateutil conflicts on your system, you may need -to use virtualenv instead. - - -.. _hacking-with-virtualenv: - -How to set up and maintain an environment for hacking with virtualenv -===================================================================== - -.. Note:: - - Either follow the instructions in this section OR follow the ones - in :ref:`hacking-with-buildout`. But don't do both! - - -**Requirements** - -* virtualenv: http://pypi.python.org/pypi/virtualenv -* virtualenv wrapper: - http://www.doughellmann.com/projects/virtualenvwrapper/ (be sure to - read the `install instructions - `_) - - -**Create a development environment** - -1. Clone the repository:: - - git clone http://git.gitorious.org/mediagoblin/mediagoblin.git - -2. Create a virtual environment:: - - mkvirtualenv --no-site-packages mediagoblin - -3. If that doesn't put you in the virutal environment you just - created, then do:: - - workon mediagoblin - -4. Run:: - - python setup.py develop - -That's it! - - -**Activating a virtual environment** - -When you want to work on GNU MediaGoblin, you need to activate the -virtual environment like this:: - - workon mediagoblin - - -**Deactivating a virtual environment** - -If you want to deactivate it, you can do this:: - - deactivate - - -**Updating a virtual environment with dependency changes** - -1. Enter the virtual environment. - -2. Run:: - - python setup.py develop - - -**Updating a virtual environment with code changes** - -You don't need to do anything---code changes are automatically -available. - - -**Deleting a virtual environment** - -At some point you may want to delete your virtual environment. -Perhaps it's to start over. Perhaps it's so you can test building -development environments with virtualenv. - -To do this, do:: - - rmvirtualenv mediagoblin - Running the server ================== -If you did buildout, run:: +Run:: ./bin/paster serve mediagoblin.ini --reload -If you did virtualenv, run:: - - paster serve mediagoblin.ini --reload Running celeryd =============== @@ -230,39 +131,29 @@ You need to do this if you want your media to process and actually show up. It's probably a good idea in development to have the web server (above) running in one terminal and celeryd in another window. -If you did buildout, run:: +Run:: CELERY_CONFIG_MODULE=mediagoblin.celery_setup.from_celery ./bin/celeryd -If you did virtualenv, run:: - - CELERY_CONFIG_MODULE=mediagoblin.celery_setup.from_celery celeryd Running the test suite ====================== -If you did buildout, run:: +Run:: ./bin/nosetests -If you did virtualenv, run:: - - nosetests Running a shell =============== If you want a shell with your database pre-setup and an instantiated -application ready and at your fingertips... +application ready and at your fingertips.... -If you did buildout, run:: +Run:: ./bin/gmg shell -If you did virtualenv, run:: - - gmg shell - Troubleshooting =============== @@ -276,7 +167,8 @@ If you see this:: then make sure mongodb is installed and running. -If it's installed, check the mongodb log. On my machine, that's ``/var/log/mongodb/mongodb.log``. If you see something like:: +If it's installed, check the mongodb log. On my machine, that's +``/var/log/mongodb/mongodb.log``. If you see something like:: old lock file: /var/lib/mongodb/mongod.lock. probably means... @@ -398,6 +290,8 @@ getting the hang of it: it easier to get the hang of git if you're coming from other version control systems +There's also a git mission at `OpenHatch `_. + Learning other utilities ------------------------ @@ -406,5 +300,5 @@ The `OpenHatch `_ site has a series of `training missions `_ which are designed to help you learn how to use these tools. -If you're new to tar, diff and patch, we highly recommend you sign up -with OpenHatch and do the missions. +If you're new to tar, diff, patch and git, we highly recommend you sign +up with OpenHatch and do the missions. From 693b674ce094b27a8f562bf55d7695302257cc82 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 20 May 2011 19:34:28 -0500 Subject: [PATCH 0277/2731] Added some stuff on how to run CELERY_ALWAYS_EAGER --- docs/hackinghowto.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index 939c9510..8974b31d 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -136,6 +136,16 @@ Run:: CELERY_CONFIG_MODULE=mediagoblin.celery_setup.from_celery ./bin/celeryd +Too much work? Don't want to run an http server and celeryd at the +same time? For development purposes there's a shortcut:: + + CELERY_ALWAYS_EAGER=true ./bin/paster serve mediagoblin.ini --reload + +This way the web server will block on processing items until they are +done, but you don't need to run celery separately (which is probably +good enough for development purposes). + + Running the test suite ====================== From c0bf3c807b1e5a88238e551eaa1491b51af3914d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 20 May 2011 19:35:11 -0500 Subject: [PATCH 0278/2731] Clarified: don't do this in production! --- docs/hackinghowto.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index 8974b31d..3544ec92 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -143,7 +143,8 @@ same time? For development purposes there's a shortcut:: This way the web server will block on processing items until they are done, but you don't need to run celery separately (which is probably -good enough for development purposes). +good enough for development purposes, but something you almost +certainly shouldn't do in production). Running the test suite From 0e84c707cb57b864fff4bdd438644c4313677893 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 21 May 2011 16:38:34 +0200 Subject: [PATCH 0279/2731] Give Pagination.get_page_url() a request instead of path and GET Makes calling Pagination.get_page_url() much simpler. --- mediagoblin/templates/mediagoblin/utils/pagination.html | 9 +++------ mediagoblin/util.py | 8 ++++---- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/utils/pagination.html b/mediagoblin/templates/mediagoblin/utils/pagination.html index b74cbfcf..5ca5e09b 100644 --- a/mediagoblin/templates/mediagoblin/utils/pagination.html +++ b/mediagoblin/templates/mediagoblin/utils/pagination.html @@ -21,15 +21,13 @@ {% endif %} diff --git a/mediagoblin/util.py b/mediagoblin/util.py index d37d160e..a1af7bd0 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -29,8 +29,6 @@ from mediagoblin import globals as mgoblin_globals import urllib from math import ceil import copy -import decorators -from webob import exc TESTS_ENABLED = False def _activate_testing(): @@ -353,11 +351,13 @@ class Pagination(object): yield num last = num - def get_page_url(self, path_info, page_no, get_params=None): + def get_page_url(self, request, page_no): """ - Get a new page based of the path_info, the new page number, + Get a new page based of the request, the new page number, and existing get parameters. """ + path_info = request.path_info + get_params = request.GET new_get_params = copy.copy(get_params or {}) new_get_params['page'] = page_no return "%s?%s" % ( From 538a06e986a4ebebf5f670dd3d5af9ddb9501649 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 21 May 2011 17:02:49 +0200 Subject: [PATCH 0280/2731] Fix doc string of get_page_url() --- mediagoblin/util.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index a1af7bd0..f56bea43 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -353,8 +353,7 @@ class Pagination(object): def get_page_url(self, request, page_no): """ - Get a new page based of the request, the new page number, - and existing get parameters. + Get a new page url based of the request, and the new page number. """ path_info = request.path_info get_params = request.GET @@ -362,4 +361,3 @@ class Pagination(object): new_get_params['page'] = page_no return "%s?%s" % ( path_info, urllib.urlencode(new_get_params)) - From dbb92c602075c768d88d0c21b774d75203af3fc1 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 22 May 2011 09:25:51 -0500 Subject: [PATCH 0281/2731] Move the ./bin/gmg shell command into its own module. --- mediagoblin/gmg_commands/__init__.py | 58 ++--------------------- mediagoblin/gmg_commands/shell.py | 70 ++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 55 deletions(-) create mode 100644 mediagoblin/gmg_commands/shell.py diff --git a/mediagoblin/gmg_commands/__init__.py b/mediagoblin/gmg_commands/__init__.py index 04e2ab6c..e585785c 100644 --- a/mediagoblin/gmg_commands/__init__.py +++ b/mediagoblin/gmg_commands/__init__.py @@ -14,71 +14,19 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -import code import argparse -import os -from paste.deploy.loadwsgi import NicerConfigParser - -from mediagoblin.celery_setup import setup_celery_from_config -from mediagoblin import app, util -from mediagoblin import globals as mgoblin_globals +from mediagoblin import util SUBCOMMAND_MAP = { 'shell': { - 'setup': 'mediagoblin.gmg_commands:shell_parser_setup', - 'func': 'mediagoblin.gmg_commands:shell', + 'setup': 'mediagoblin.gmg_commands.shell:shell_parser_setup', + 'func': 'mediagoblin.gmg_commands.shell:shell', 'help': 'Run a shell with some tools pre-setup'}, } -def shell_parser_setup(subparser): - subparser.add_argument( - '-cf', '--conf_file', default='mediagoblin.ini', - help="Config file used to set up environment") - subparser.add_argument( - '-cs', '--app_section', default='app:mediagoblin', - help="Section of the config file where the app config is stored.") - - -SHELL_BANNER = """\ -GNU MediaGoblin shell! ----------------------- -Available vars: - - mgoblin_app: instantiated mediagoblin application - - mgoblin_globals: mediagoblin.globals - - db: database instance -""" - - -def shell(args): - """ - """ - # Duplicated from from_celery.py, remove when we have the generic util - parser = NicerConfigParser(args.conf_file) - parser.read(args.conf_file) - parser._defaults.setdefault( - 'here', os.path.dirname(os.path.abspath(args.conf_file))) - parser._defaults.setdefault( - '__file__', os.path.abspath(args.conf_file)) - - mgoblin_section = dict(parser.items(args.app_section)) - mgoblin_conf = dict( - [(section_name, dict(parser.items(section_name))) - for section_name in parser.sections()]) - - mgoblin_app = app.paste_app_factory( - mgoblin_conf, **mgoblin_section) - - code.interact( - banner=SHELL_BANNER, - local={ - 'mgoblin_app': mgoblin_app, - 'mgoblin_globals': mgoblin_globals, - 'db': mgoblin_globals.database}) - - def main_cli(): parser = argparse.ArgumentParser( description='GNU MediaGoblin utilities.') diff --git a/mediagoblin/gmg_commands/shell.py b/mediagoblin/gmg_commands/shell.py new file mode 100644 index 00000000..5e70d556 --- /dev/null +++ b/mediagoblin/gmg_commands/shell.py @@ -0,0 +1,70 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +import code +import os + +from paste.deploy.loadwsgi import NicerConfigParser + +from mediagoblin import app +from mediagoblin import globals as mgoblin_globals + + +def shell_parser_setup(subparser): + subparser.add_argument( + '-cf', '--conf_file', default='mediagoblin.ini', + help="Config file used to set up environment") + subparser.add_argument( + '-cs', '--app_section', default='app:mediagoblin', + help="Section of the config file where the app config is stored.") + + +SHELL_BANNER = """\ +GNU MediaGoblin shell! +---------------------- +Available vars: + - mgoblin_app: instantiated mediagoblin application + - mgoblin_globals: mediagoblin.globals + - db: database instance +""" + + +def shell(args): + """ + """ + # Duplicated from from_celery.py, remove when we have the generic util + parser = NicerConfigParser(args.conf_file) + parser.read(args.conf_file) + parser._defaults.setdefault( + 'here', os.path.dirname(os.path.abspath(args.conf_file))) + parser._defaults.setdefault( + '__file__', os.path.abspath(args.conf_file)) + + mgoblin_section = dict(parser.items(args.app_section)) + mgoblin_conf = dict( + [(section_name, dict(parser.items(section_name))) + for section_name in parser.sections()]) + + mgoblin_app = app.paste_app_factory( + mgoblin_conf, **mgoblin_section) + + code.interact( + banner=SHELL_BANNER, + local={ + 'mgoblin_app': mgoblin_app, + 'mgoblin_globals': mgoblin_globals, + 'db': mgoblin_globals.database}) From 8820121ad125728613477f3dec098aa2df5f47ac Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 22 May 2011 09:56:33 -0500 Subject: [PATCH 0282/2731] Move the general applicaiton setup commands to a utility module --- mediagoblin/gmg_commands/__init__.py | 6 ++-- mediagoblin/gmg_commands/shell.py | 22 ++------------ mediagoblin/gmg_commands/util.py | 45 ++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 22 deletions(-) create mode 100644 mediagoblin/gmg_commands/util.py diff --git a/mediagoblin/gmg_commands/__init__.py b/mediagoblin/gmg_commands/__init__.py index e585785c..9ece2ec5 100644 --- a/mediagoblin/gmg_commands/__init__.py +++ b/mediagoblin/gmg_commands/__init__.py @@ -16,7 +16,7 @@ import argparse -from mediagoblin import util +from mediagoblin import util as mg_util SUBCOMMAND_MAP = { @@ -39,8 +39,8 @@ def main_cli(): else: subparser = subparsers.add_parser(command_name) - setup_func = util.import_component(command_struct['setup']) - exec_func = util.import_component(command_struct['func']) + setup_func = mg_util.import_component(command_struct['setup']) + exec_func = mg_util.import_component(command_struct['func']) setup_func(subparser) diff --git a/mediagoblin/gmg_commands/shell.py b/mediagoblin/gmg_commands/shell.py index 5e70d556..9c0259de 100644 --- a/mediagoblin/gmg_commands/shell.py +++ b/mediagoblin/gmg_commands/shell.py @@ -16,12 +16,9 @@ import code -import os -from paste.deploy.loadwsgi import NicerConfigParser - -from mediagoblin import app from mediagoblin import globals as mgoblin_globals +from mediagoblin.gmg_commands import util as commands_util def shell_parser_setup(subparser): @@ -45,22 +42,9 @@ Available vars: def shell(args): """ + Setup a shell for the user """ - # Duplicated from from_celery.py, remove when we have the generic util - parser = NicerConfigParser(args.conf_file) - parser.read(args.conf_file) - parser._defaults.setdefault( - 'here', os.path.dirname(os.path.abspath(args.conf_file))) - parser._defaults.setdefault( - '__file__', os.path.abspath(args.conf_file)) - - mgoblin_section = dict(parser.items(args.app_section)) - mgoblin_conf = dict( - [(section_name, dict(parser.items(section_name))) - for section_name in parser.sections()]) - - mgoblin_app = app.paste_app_factory( - mgoblin_conf, **mgoblin_section) + mgoblin_app = commands_util.setup_app(args) code.interact( banner=SHELL_BANNER, diff --git a/mediagoblin/gmg_commands/util.py b/mediagoblin/gmg_commands/util.py new file mode 100644 index 00000000..41a21a1e --- /dev/null +++ b/mediagoblin/gmg_commands/util.py @@ -0,0 +1,45 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +import os + +from paste.deploy.loadwsgi import NicerConfigParser + +from mediagoblin import app + + +def setup_app(args): + """ + Setup the application after reading the mediagoblin config files + """ + # Duplicated from from_celery.py, remove when we have the generic util + parser = NicerConfigParser(args.conf_file) + parser.read(args.conf_file) + parser._defaults.setdefault( + 'here', os.path.dirname(os.path.abspath(args.conf_file))) + parser._defaults.setdefault( + '__file__', os.path.abspath(args.conf_file)) + + mgoblin_section = dict(parser.items(args.app_section)) + mgoblin_conf = dict( + [(section_name, dict(parser.items(section_name))) + for section_name in parser.sections()]) + + mgoblin_app = app.paste_app_factory( + mgoblin_conf, **mgoblin_section) + + return mgoblin_app From 757f37a52d7854ed752d56c66498383125a05a9f Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 22 May 2011 10:52:53 -0500 Subject: [PATCH 0283/2731] User migration works (but the rest of the system isn't updated for new user setup yet) --- mediagoblin/db/migrations.py | 39 ++++++++++++++++++++++++ mediagoblin/db/models.py | 6 +++- mediagoblin/gmg_commands/__init__.py | 4 +++ mediagoblin/gmg_commands/migrate.py | 45 ++++++++++++++++++++++++++++ 4 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 mediagoblin/db/migrations.py create mode 100644 mediagoblin/gmg_commands/migrate.py diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py new file mode 100644 index 00000000..d035b15b --- /dev/null +++ b/mediagoblin/db/migrations.py @@ -0,0 +1,39 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from mongokit import DocumentMigration + +from mediagoblin import globals as mediagoblin_globals + + +class MediaEntryMigration(DocumentMigration): + def allmigration01_uploader_to_reference(self): + """ + Old MediaEntry['uploader'] accidentally embedded the User instead + of referencing it. Fix that! + """ + # uploader is an associative array + self.target = {'uploader': {'$type': 3}} + if not self.status: + for doc in self.collection.find(self.target): + self.update = { + '$set': { + 'uploader': doc['uploader']['_id']}} + self.collection.update( + self.target, self.update, multi=True, safe=True) + + +MIGRATE_CLASSES = ['MediaEntry'] diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 8e7889eb..3fc8d9e8 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -21,6 +21,8 @@ from mongokit import Document, Set from mediagoblin import util from mediagoblin.auth import lib as auth_lib from mediagoblin import globals as mediagoblin_globals +from mediagoblin.db import migrations +from mediagoblin.db.util import ObjectId ################### # Custom validators @@ -67,7 +69,7 @@ class MediaEntry(Document): __collection__ = 'media_entries' structure = { - 'uploader': User, + 'uploader': ObjectId, 'title': unicode, 'slug': unicode, 'created': datetime.datetime, @@ -99,6 +101,8 @@ class MediaEntry(Document): 'created': datetime.datetime.utcnow, 'state': u'unprocessed'} + migration_handler = migrations.MediaEntryMigration + # Actually we should referene uniqueness by uploader, but we # should fix http://bugs.foocorp.net/issues/340 first. # indexes = [ diff --git a/mediagoblin/gmg_commands/__init__.py b/mediagoblin/gmg_commands/__init__.py index 9ece2ec5..d1f7bfc1 100644 --- a/mediagoblin/gmg_commands/__init__.py +++ b/mediagoblin/gmg_commands/__init__.py @@ -24,6 +24,10 @@ SUBCOMMAND_MAP = { 'setup': 'mediagoblin.gmg_commands.shell:shell_parser_setup', 'func': 'mediagoblin.gmg_commands.shell:shell', 'help': 'Run a shell with some tools pre-setup'}, + 'migrate': { + 'setup': 'mediagoblin.gmg_commands.migrate:migrate_parser_setup', + 'func': 'mediagoblin.gmg_commands.migrate:migrate', + 'help': 'Apply all unapplied bulk migrations to the database'}, } diff --git a/mediagoblin/gmg_commands/migrate.py b/mediagoblin/gmg_commands/migrate.py new file mode 100644 index 00000000..e04fb343 --- /dev/null +++ b/mediagoblin/gmg_commands/migrate.py @@ -0,0 +1,45 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +from mediagoblin.db import migrations +from mediagoblin.gmg_commands import util as commands_util +from mediagoblin import globals as mgoblin_globals + + +def migrate_parser_setup(subparser): + subparser.add_argument( + '-cf', '--conf_file', default='mediagoblin.ini', + help="Config file used to set up environment") + subparser.add_argument( + '-cs', '--app_section', default='app:mediagoblin', + help="Section of the config file where the app config is stored.") + + +def migrate(args): + mgoblin_app = commands_util.setup_app(args) + print "Applying migrations..." + + for model_name in migrations.MIGRATE_CLASSES: + model = getattr(mgoblin_app.db, model_name) + + if not hasattr(model, 'migration_handler') or not model.collection: + continue + + migration = model.migration_handler(model) + migration.migrate_all(collection=model.collection) + + print "... done." From 16509be160470202147d3b711126c7928790777d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 22 May 2011 16:06:45 -0500 Subject: [PATCH 0284/2731] Update all the views so that they use the uploader reference instead of uploader embedding --- mediagoblin/db/models.py | 9 +++++++-- mediagoblin/decorators.py | 4 ++-- mediagoblin/submit/views.py | 2 +- mediagoblin/templates/mediagoblin/user_pages/media.html | 4 ++-- mediagoblin/user_pages/views.py | 2 +- 5 files changed, 13 insertions(+), 8 deletions(-) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 3fc8d9e8..37420834 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -127,17 +127,22 @@ class MediaEntry(Document): Use a slug if we have one, else use our '_id'. """ + uploader = self.uploader() + if self.get('slug'): return urlgen( 'mediagoblin.user_pages.media_home', - user=self['uploader']['username'], + user=uploader['username'], media=self['slug']) else: return urlgen( 'mediagoblin.user_pages.media_home', - user=self['uploader']['username'], + user=uploader['username'], media=unicode(self['_id'])) + def uploader(self): + return self.db.User.find_one({'_id': self['uploader']}) + REGISTER_MODELS = [MediaEntry, User] diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index 34a471cb..ff3f0b5e 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -80,7 +80,7 @@ def get_user_media_entry(controller): media = request.db.MediaEntry.find_one( {'slug': request.matchdict['media'], 'state': 'processed', - 'uploader._id': user['_id']}) + 'uploader': user['_id']}) # no media via slug? Grab it via ObjectId if not media: @@ -88,7 +88,7 @@ def get_user_media_entry(controller): media = request.db.MediaEntry.find_one( {'_id': ObjectId(request.matchdict['media']), 'state': 'processed', - 'uploader._id': user['_id']}) + 'uploader': user['_id']}) except InvalidId: return exc.HTTPNotFound() diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 95a416e2..262f2b12 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -46,7 +46,7 @@ def submit_start(request): entry['title'] = request.POST['title'] or unicode(splitext(filename)[0]) entry['description'] = request.POST.get('description') entry['media_type'] = u'image' # heh - entry['uploader'] = request.user + entry['uploader'] = request.user['_id'] # Save, just so we can get the entry id for the sake of using # it to generate the file path diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index e07cee44..5ccd7299 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -22,7 +22,7 @@ {% if media %}

        Media details for {{media.uploader.username}} + user= media.uploader().username) }}">{{media.uploader.username}} / {{media.title}}

        @@ -32,7 +32,7 @@
        Uploaded on {{ "%4d-%02d-%02d"|format(media.created.year, media.created.month,media.created.day)}} by {{media.uploader.username}} + user= media.uploader().username) }}">{{media.uploader.username}}
        Description: {{media.description}}
        {% else %} diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 0d9833cd..41bdb402 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -31,7 +31,7 @@ def user_home(request, page): return exc.HTTPNotFound() cursor = request.db.MediaEntry.find( - {'uploader': user, + {'uploader': user['_id'], 'state': 'processed'}).sort('created', DESCENDING) pagination = Pagination(page, cursor) From 4194b05d987d8a0dffc1c29d4d3fc706be15b386 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 22 May 2011 16:37:58 -0500 Subject: [PATCH 0285/2731] Forgot switch to media.uploader() in the same way on two lines :P --- mediagoblin/templates/mediagoblin/user_pages/media.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 5ccd7299..3c781006 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -22,7 +22,7 @@ {% if media %}

        Media details for {{media.uploader.username}} + user= media.uploader().username) }}">{{media.uploader().username}} / {{media.title}}

        @@ -32,7 +32,7 @@
        Uploaded on {{ "%4d-%02d-%02d"|format(media.created.year, media.created.month,media.created.day)}} by {{media.uploader.username}} + user= media.uploader().username) }}">{{media.uploader().username}}
        Description: {{media.description}}
        {% else %} From cf0cc3358b2de523013a27af2ce6787e86b3932c Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 22 May 2011 16:40:31 -0500 Subject: [PATCH 0286/2731] Slightly better spacing in media.html --- .../mediagoblin/user_pages/media.html | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 3c781006..036bf726 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -20,20 +20,27 @@ {# temporarily, an "image gallery" that isn't one really ;) #} {% if media %} -

        Media details for {{media.uploader().username}} - / {{media.title}} +

        + Media details for + + {{- media.uploader().username }} + / {{media.title}}

        - -
        Uploaded on {{ "%4d-%02d-%02d"|format(media.created.year, - media.created.month,media.created.day)}} by {{media.uploader().username}} -
        Description: {{media.description}} +
        + Uploaded on + {{ "%4d-%02d-%02d"|format(media.created.year, + media.created.month, media.created.day) }} + by + + {{- media.uploader().username }} +
        + Description: {{ media.description }}
        {% else %}

        Sorry, no such media found.

        From 50c880ac0f0d9fa90244aa8165b53a8968ae3a1a Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 22 May 2011 17:06:11 -0500 Subject: [PATCH 0287/2731] A more explicit version of get_page_url that doesn't use the request is still an option now ;) --- mediagoblin/util.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index f56bea43..2865cf11 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -351,13 +351,20 @@ class Pagination(object): yield num last = num - def get_page_url(self, request, page_no): + def get_page_url_explicit(self, base_url, get_params, page_no): """ - Get a new page url based of the request, and the new page number. + Get a page url by adding a page= parameter to the base url """ - path_info = request.path_info - get_params = request.GET new_get_params = copy.copy(get_params or {}) new_get_params['page'] = page_no return "%s?%s" % ( - path_info, urllib.urlencode(new_get_params)) + base_url, urllib.urlencode(new_get_params)) + + def get_page_url(self, request, page_no): + """ + Get a new page url based of the request, and the new page number. + + This is a nice wrapper around get_page_url_explicit() + """ + return self.get_page_url_explicit( + request.path_info, request.GET, page_no) From f4cfb4e9c8bdfdb3662417048cd6caf2fa4bcd02 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 22 May 2011 17:11:59 -0500 Subject: [PATCH 0288/2731] Encourage users to run migrations every time they buildout. --- docs/hackinghowto.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index 3544ec92..a56498bb 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -96,7 +96,7 @@ While hacking on GNU MediaGoblin over time, you'll eventually have to update your development environment because the dependencies have changed. To do that, run:: - ./bin/buildout + ./bin/buildout && ./bin/gmg migrate **Updating for code changes** From 00c39256145127b9a0f34f4fdc525412065f9426 Mon Sep 17 00:00:00 2001 From: Bernhard Keller Date: Mon, 23 May 2011 19:00:46 +0200 Subject: [PATCH 0289/2731] modified atomfeed feature, corrected spacing, url generation, routing id --- mediagoblin/templates/mediagoblin/base.html | 2 ++ .../mediagoblin/user_pages/user.html | 11 ++++++ mediagoblin/user_pages/routing.py | 4 ++- mediagoblin/user_pages/views.py | 34 +++++++++++++++++++ 4 files changed, 50 insertions(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 4b634cf1..c4bc1364 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -20,6 +20,8 @@ {% block title %}MediaGoblin{% endblock title %} + {% block mediagoblin_head %} + {% endblock mediagoblin_head %} diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index d1809e80..2d09f685 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -16,6 +16,14 @@ # along with this program. If not, see . #} {% extends "mediagoblin/base.html" %} + +{% block mediagoblin_head %} + +{% endblock mediagoblin_head %} + {% block mediagoblin_content -%} {% if user %}

        User page for '{{ user.username }}'

        @@ -25,6 +33,9 @@ {% include "mediagoblin/utils/object_gallery.html" %}
      + atom feed {% else %} {# This *should* not occur as the view makes sure we pass in a user. #}

      Sorry, no such user found.

      diff --git a/mediagoblin/user_pages/routing.py b/mediagoblin/user_pages/routing.py index 8b535d13..96f97427 100644 --- a/mediagoblin/user_pages/routing.py +++ b/mediagoblin/user_pages/routing.py @@ -21,4 +21,6 @@ user_routes = [ controller="mediagoblin.user_pages.views:user_home"), Route('mediagoblin.user_pages.media_home', '/{user}/m/{media}/', requirements=dict(m_id="[0-9a-fA-F]{24}"), - controller="mediagoblin.user_pages.views:media_home")] + controller="mediagoblin.user_pages.views:media_home"), + Route('mediagoblin.user_pages.atom_feed', '/{user}/atom/', + controller="mediagoblin.user_pages.views:atom_feed")] diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 41bdb402..cc9c7b21 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -20,6 +20,7 @@ from mediagoblin.util import Pagination from mediagoblin.decorators import uses_pagination, get_user_media_entry +from werkzeug.contrib.atom import AtomFeed @uses_pagination def user_home(request, page): @@ -61,3 +62,36 @@ def media_home(request, media): template.render( {'request': request, 'media': media})) + +ATOM_DEFAULT_NR_OF_UPDATED_ITEMS = 5 + +def atom_feed(request): + """ + generates the atom feed with the newest images + """ + + user = request.db.User.find_one({ + 'username': request.matchdict['user'], + 'status': 'active'}) + if not user: + return exc.HTTPNotFound() + + cursor = request.db.MediaEntry.find({ + 'uploader': user['_id'], + 'state': 'processed'}) \ + .sort('created', DESCENDING) \ + .limit(ATOM_DEFAULT_NR_OF_UPDATED_ITEMS) + + feed = AtomFeed(request.matchdict['user'], + feed_url=request.url, + url=request.host_url) + + for entry in cursor: + feed.add(entry.get('title'), + entry.get('description'), + content_type='html', + author=request.matchdict['user'], + updated=entry.get('created'), + url=entry.url_for_self(request.urlgen)) + + return feed.get_response() From 76c8e34d5cf4db516becee89fbfbcde38690561a Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 20 May 2011 01:26:52 +0200 Subject: [PATCH 0290/2731] Removed background images and logo, won't need those for a while --- mediagoblin/static/images/back.png | Bin 26165 -> 0 bytes mediagoblin/static/images/header_back.png | Bin 26226 -> 0 bytes mediagoblin/static/images/logo.png | Bin 58408 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 mediagoblin/static/images/back.png delete mode 100644 mediagoblin/static/images/header_back.png delete mode 100644 mediagoblin/static/images/logo.png diff --git a/mediagoblin/static/images/back.png b/mediagoblin/static/images/back.png deleted file mode 100644 index 3d7fe844a5d2d449dafb003ac44645d7f568e271..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26165 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

      H!j5hb3G{skLPw8WgL) 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 From a7b9c65ed52475d872f398ac8f19753cec32a69e Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 23 May 2011 17:39:44 -0500 Subject: [PATCH 0291/2731] Expanded page width to 960px Conflicts: mediagoblin/static/css/base.css --- mediagoblin/static/css/base.css | 3 +- mediagoblin/static/css/base.css~ | 85 -------------------------------- 2 files changed, 1 insertion(+), 87 deletions(-) delete mode 100644 mediagoblin/static/css/base.css~ diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 3a8d3cdc..c66b4526 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -1,6 +1,5 @@ body { background-color: #272727; - background-image: url('../images/back.png'); color: #f7f7f7; font-family: sans; padding:none; @@ -45,7 +44,7 @@ label { } .mediagoblin_content { - width: 800px; + width: 960px; margin-left: auto; margin-right: auto; } diff --git a/mediagoblin/static/css/base.css~ b/mediagoblin/static/css/base.css~ deleted file mode 100644 index 4c5ae9ab..00000000 --- a/mediagoblin/static/css/base.css~ +++ /dev/null @@ -1,85 +0,0 @@ -body { - background-color: #272727; - background-image: url('back.png'); - color: #f7f7f7; - font-family: sans; - padding:none; - margin:0px; -} - -/* Carter One font */ - -@font-face { - font-family: 'Carter One'; - font-style: normal; - font-weight: normal; - src: local('CarterOne'), url('http://themes.googleusercontent.com/font?kit=VjW2qt1pkqVtO22ObxgEBRsxEYwM7FgeyaSgU71cLG0') format('woff'); -} - -/* text styles */ - -h1 { - font-family: 'Carter One', arial, serif; - margin-bottom: 20px; - margin-top:50px; -} - -.dotted_line { - width:100%; - height:0px; - border-bottom: dotted 1px #5f5f5f; - position:absolute; - left:0px; - margin-top:-20px; -} - -a { - color: #d12929; - border-bottom: 1px dotted; - text-decoration: none; -} - -label { - font-weight: normal; -} - -.mediagoblin_header { - width:100%; - height:60px; - background-image:url('../images/header_back.png'); - padding-top:40px; - margin-bottom:80px; -} - -.mediagoblin_content { - width: 800px; - margin-left: auto; - margin-right: auto; -} - -.button_red, .button_green { - font-family: 'Carter One', arial, serif; - height: 28px; - min-width: 99px; - box-shadow: 0px 0px 5px #000; - border-radius: 5px; - border: none; - color: #272727; - margin: 10px; - font-size: 1em; - float: left; - display: block; - text-align: center; - padding-top: 4px; - padding-left:11px; - padding-right:11px; -} - -.button_red { - background-image: url('../images/button_red.png'); -} - -.button_green { - background-image: url('../images/button_green.png'); -} - From 265c19ae338001f718161f2fc812258ba7ff03e5 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 20 May 2011 01:31:45 +0200 Subject: [PATCH 0292/2731] Changed background colors to plain colors --- mediagoblin/static/css/base.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index c66b4526..523be74c 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -38,7 +38,7 @@ label { .mediagoblin_header { width:100%; height:60px; - background-image:url('../images/header_back.png'); + background-color:#393939; padding-top:40px; margin-bottom:80px; } From 7e199c9c87de8feeb51287cd5770f6e830257a79 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 20 May 2011 01:33:28 +0200 Subject: [PATCH 0293/2731] Changed link color and underline --- mediagoblin/static/css/base.css | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 523be74c..5daab9bb 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -24,9 +24,7 @@ h1 { } a { - color: #d12929; - border-bottom: 1px dotted; - text-decoration: none; + color: #86D4B1; } label { From e83f8b3c196e04f99a6a179eda898f2f10648f7c Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Wed, 25 May 2011 23:57:51 +0200 Subject: [PATCH 0294/2731] Removed clever subtitle --- mediagoblin/templates/mediagoblin/base.html | 3 --- 1 file changed, 3 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index c4bc1364..d2885a5b 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -32,9 +32,6 @@ {% block mediagoblin_logo %} MediaGoblin {% endblock %}{% block mediagoblin_header_title %}MediaGoblin Home{% endblock %} - {% block mediagoblin_header_subtitle %} - Clever subtitle here! - {% endblock %} {% if request.user %} Welcome {{ request.user['username'] }}! -- From 2f4d0584d1768f28d6031d19c44fa611250e89be Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Thu, 26 May 2011 00:04:40 +0200 Subject: [PATCH 0295/2731] Added header icon link --- mediagoblin/static/css/base.css | 5 +++++ mediagoblin/templates/mediagoblin/base.html | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 5daab9bb..995840f8 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -41,6 +41,11 @@ label { margin-bottom:80px; } +.icon { + vertical-align:middle; + margin-right:10px; +} + .mediagoblin_content { width: 960px; margin-left: auto; diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index d2885a5b..80a63424 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -30,7 +30,7 @@

      {% block mediagoblin_logo %} - MediaGoblin + {% endblock %}{% block mediagoblin_header_title %}MediaGoblin Home{% endblock %} {% if request.user %} Welcome {{ request.user['username'] }}! -- From d89d1bb9450c32d802fc7bead20fcb02217c5e14 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Thu, 26 May 2011 00:05:08 +0200 Subject: [PATCH 0296/2731] Added actual image --- mediagoblin/static/images/icon.png | Bin 0 -> 960 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 mediagoblin/static/images/icon.png diff --git a/mediagoblin/static/images/icon.png b/mediagoblin/static/images/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..47f07b9a4351a1c8f1192ab80dc15fc8c895e536 GIT binary patch literal 960 zcmV;x13&zUP)X1^@s6RQmj^00004b3#c}2nYxW zdzK^Ykd%XS zLDP^Ua!eD*fsC}CW&jJlzcwtsGXO>cd#0NV<%h|$tQvO`Xr^sCbasx*RSN(St<62; zMM!i4fFi5^D~QKOW5rdCje7<4fG2{&PyhwEuv7#n9919}HUom9%sKL>n41@;(s2eL zX*G48hHq-p{b(N{pJddJ^M+17f9?IjRmr!1+5M!lK|U-kVpfy(FyG&O{lm^x7ft9! zWo`7>M@ag}=TLUmYm>x|fN94EE z;H~|=yw&S1kIv(A%)DGPEk|007J(Lyi%9v`>mTg^$l*Fl?x~Y)u@xG;b-j{Q)gaps zcfV|yoe@BQ5XX1dOky^c!QfK}R*|0wX|7 zZcd?Ts`+o(q9ztGT2giQHsalXa@85lpNr0+SVoQTToLf1WS15Rq>`2YO2NNE8NLOu zK>6Z~z}fUGM!*m=Fd7ICK?CEV@IYv2dqB_-Jg~z6;xG^fhJhTrrmREi+w_CfcZhvQ i^=pLVyXzl31o#_Did*gTQLYdG0000 Date: Thu, 26 May 2011 00:12:23 +0200 Subject: [PATCH 0297/2731] Changed mediagoblin_content name to mediagoblin_container --- mediagoblin/static/css/base.css | 2 +- mediagoblin/templates/mediagoblin/base.html | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 995840f8..7ce71789 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -46,7 +46,7 @@ label { margin-right:10px; } -.mediagoblin_content { +.mediagoblin_container { width: 960px; margin-left: auto; margin-right: auto; diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 80a63424..e785cfcc 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -28,10 +28,11 @@ {% block mediagoblin_body %} {% block mediagoblin_header %} {% endblock %} From 4fdd1021759bd41565fd5aba22320dd8ade72a20 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Thu, 26 May 2011 00:41:13 +0200 Subject: [PATCH 0299/2731] We now have only one button style --- mediagoblin/static/css/base.css | 37 +++++++----------- mediagoblin/static/images/button_green.png | Bin 2054 -> 0 bytes mediagoblin/static/images/button_red.png | Bin 1737 -> 0 bytes .../templates/mediagoblin/auth/login.html | 4 +- .../templates/mediagoblin/auth/register.html | 2 +- .../templates/mediagoblin/submit/start.html | 2 +- .../templates/mediagoblin/test_submit.html | 2 +- 7 files changed, 19 insertions(+), 28 deletions(-) delete mode 100644 mediagoblin/static/images/button_green.png delete mode 100644 mediagoblin/static/images/button_red.png diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 9e5fdcce..d2bc92a0 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -56,20 +56,20 @@ label { float:right; } -.button_red, .button_green { - font-family: 'Carter One', arial, serif; - height: 28px; - min-width: 99px; - box-shadow: 0px 0px 5px #000; - border-radius: 5px; - border: none; - color: #272727; - margin: 10px; - font-size: 1em; - float: left; - display: block; - text-align: center; - padding-top: 4px; +.button { + font-family:'Carter One', arial, serif; + height:32px; + min-width:99px; + background-color:#86d4b1; + box-shadow:0px 0px 4px #000; + border-radius:5px; + border:none; + color:#272727; + margin:10px; + font-size:1em; + float:left; + display:block; + text-align:center; padding-left:11px; padding-right:11px; } @@ -84,12 +84,3 @@ label { left:0px; margin-top:-20px; } - -.button_red { - background-image: url('../images/button_red.png'); -} - -.button_green { - background-image: url('../images/button_green.png'); -} - diff --git a/mediagoblin/static/images/button_green.png b/mediagoblin/static/images/button_green.png deleted file mode 100644 index 0fc234d468be8f90dd5321d3ec4961ab24d624c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2054 zcmV+h2>JJkP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2ipY- z3oj<$GD#;AebsM zoXrZ6NoIn80OQ_EMfvU*B{LxtQ=yj1**kl!WCoeg=47~2%y6G<#b~1wnWzZg?YcJ< ziW$|E?vp+zWTL8g1d+*RMxPTCVcU$&3Z<%{D)i|@1SU%Ox?xO5Mc7Mar6B3ksb)kZ zwHhXh+!^?^&LzTL3Yid*M6BTZ=qSQ-+W^)95cJa;XX_LdUgyQ|2_$_^raJ<((HV0f z0@EE8Ad}yplWK~J(8l0v-w@WCM=9u?_SboG)PlRy`rvGxvvo`aH3S9DtCJpt2kt?7 zP(&b;^rVO)2~~vu`~4;(FyQq$ad$G4F(y@oJ_c9sWCR((Zbo>}$3%fKCK17ylX8tg zF{PSOt@1|`Dyy!U$ySt4YaF$rDm=DIk`z-^1&^SpFx~0Xd2E$FSN2qeF`Y0aB8Utk zg1s(1l&XdxxF;z~rF$vNnG}Wh)d2W$?DR1K*h&GCt4{=BxO3D(pTT3RTy1h}g^0v6 zafi)}M>VE9&uwQ;r>dcCOjO|NgFYuJ!ux6rcOrw#=FBVa3r-4B_O6f@=wKG&e$zqew4#n}2}__`j!&6wbIc1p%N**~5;?{n1# z;OnUL;e-k%f~nxKI^*@-*oyJBS6-jS&*x5x62-{KMZ-R6!xtw^*~-$z7|v#f&)~5Y zbj;xAVDZ6^GB zU$ikf+oYD&eX63gySD%J^U3tZ?}buuPrk2#+)UVOAyepMVH$))czrspJI`aoeRW7R z<*1ds_4M<3@YptrDz8sx%%IF080R(Ew?amMC|^gV^+{D-Ez_Nr$z!iveeyi&0*eO` z$=9(S-koZT9lw4zGT`TPU+w(voaZD1iYl%7Vu%_lqSU($ zTX#&?|27;!h+Ke)NUm#Qs(2)01g)+1e18@P`fxtiL}VQ#b7?3OJl3~}@by^2^+<~Q zngbqtK~?zvbRI{!7enSUoyfd{S+Ft_t{#XO&!aFsm@_zz0<8PaYoIE8Jt|}Ps(D$A zSwjqHIQ%Jt&xC}}Ir;r+geTXv+Hm0(=1jgngE@lD7P?>WPHSsW89n&tuj?{B`Q_IlcI`=u-8@p*5?9CF`j!}_AA1F{y4}; zj#?mqT>25<{oNr}R8pj_pH4)wRbwy4=hHd%Lb5h+4^&vBtH#wP&%H9H<1=`* z$ySY8lra{H$6Pv+qKxS)a1lr-CXkAX2%l@!HScIWl2VK@R~p+`A}nUqYU{cwukU46 z|1Pj)O8gb%9Y5t3dIpP5Ab+Y>`vE0Y9b;_T+fY&yy*#7 zTMv936*J-I*G_nHUXx=l^bwG2O47|3BPbcGKH>Q{0~vtG3M|%i+nW=XJdVoQCdC9Z z<-7)Fx+r>=s$I_61}ZDay%s*-0|bgGB(%%dLCn@n_v_X8d^)DWRuvKO2(C63u|zOi zPI&BwnJ}mGd{pvgL`LvA2deP(tcZXrYX;nmeOtOv6-@tRq8btK<7*>wAy;qyXRbFG z5n>)+?(aa3O4onl5Y<8w}~%XxnW=ecIZF#}O$&Y+y9bL_V| zZ-C4ZH>)RR!oHPz$SAl6eFUyfQN`yHU>eJ|NATmZ<1=wjo{viJPA$e(jouxP#APu? z^Tz7y-T(S}0%HbW&keZMYR2a?P}L=<9-PPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2ipY- z3ojb*TL-QH00v1(L_t(o!&R4Cmg_bSMK{2QT2w z3!9TLLn8Jy?kFJc_*xVZGy)p~0lxqK8_ZZ^P*s`NMXW^u>UEy9)>v~A5!B`8MYSM8egB!?#7+97NrzyPFw_cNAh*8MXi-m3VIv};AVt7D#CT1lv=61R_^Pf zwZ?p4c1M6#%7$&N&8r!z%F6e>HO%Z^+^_paMChfk)&h3`%#2zq>%Ku`qvTF~A3g>} zmFqllcaGkfW=LKvBJaZlAc8dp0EiGkBvP$b=A2jxRYVYAW-;zgQN=}2DTVXCsjVTU z5F*spxYq(zL={RQfKn?f0*9?;Glm%!K>#BiLn^-YPH7E9pcFg;tre~HJ)^oipWgB0 zRYfp&YOT0C0jx1L1#|NC`EZZ1HDbmepARdkX|-ZzFH)PB4ZqLH=Qy@Y=H%1+)(Ik9 zYoQ`|1ho`uLTc`Kb~N4jd_J6G&|BNri(nBO75B|^qNu7n1J|#-up(THADmwDUWzz9%~^YjJ(I(u}n^~AW2<_2=mbjP%V{7e$f+!0PZ>WArahj zqEAGN?0AOliquVS4Ub@^CIVPl%yaHsYhRb2>z!3E_ZODsPHPQO#Z!>=2fV`!bLU>` zrDB>9N#)Ty%YCapq4z9C^8GNQltT67yVXjhm`W-8;N&)dYt9W>DQI@>5h&pKU{M7T zmKn>PqqX-QNv%X8)M^D0YEk8ylOrKtX|0*gm}~LhuP<7y+!@!Zy476@nmmgLD#DrJ z^y&Q{E9U1V3wT6t?$niHu?RlBzlTxlj@Jy3SLG?Tqcy(o8-V_Ux+8UPj=`sQu6z}d ztqqZXA)_R04y*_+GdyAaP8%68%pfCKR5{loL@2dlKu^tFYi($2-D#Qyiz<Tx;!Wv-`(V=FUj5sVXJ8E!o6(hLlBcr!_@&51|xgYi&Ctt*j--r@Oy{ zrm50vCEOWny?Tf&rldOrSeYI7oP2Vku1vgT#(CeIW6(;Wm4YPn?*w%bh8e9jevd(^ zmG3$Eb>EQHi|S6TwBmQBV`Mr$8o85}CmEk}Rh9e4;IfF9B7H-{^`ey_#7 z*46@0O5rx6x5haqcaCmN9X!ytM+>QwhrUNo^|6MzgX&gqj^jwEo^FdOC1TT)i8#$D zNtwCx`@Z=~o*&ge_ug}|-07vf0i{KCKP+SQkK;g9|4BaJoRgBXqSwm#gM#wIMZ=7* z-e1&uim#=ZpU-ZyciE{|9^Px^dkidsmK9Djj?9DS|L-|zrEq08PvIWHk#q=ft+hAn zY_LA6&m6edBHXF%8L!V!0TlMUPr=n3EHjsvXI7AT{>=SW%0379%CLzDTCFbyS_;#B zFEFK0Uu)$ed9B6m&Zjks2zN$i&qFLZkNoXm?k^e-N-DzjY}v{6Gj%2ZmOE91dglm^ zoLGo(B+pOhkEqV{`n?v9c2tC3D?Pil3^Em=ru`oO4|mGre-VDqNgeL2?4V>vtrU7f z=w|$$lTR*^&(wRe;n{*_23b{o=Ygv7Nd&HJbUflyrS3v@2hWE`t;~$d<<3{{*t5~( zR&%YzcP=Xy!JXsxxh_(Kk5gv;V7W6j>yK4#2T`iiBlw;Zb4MaJkM4YGt6huBPH9?wUfzufuC fb-t)>G=TpDh%l - + {% if next %} - + {% endif %} {% endblock %} diff --git a/mediagoblin/templates/mediagoblin/auth/register.html b/mediagoblin/templates/mediagoblin/auth/register.html index ee2f425b..610c7cc4 100644 --- a/mediagoblin/templates/mediagoblin/auth/register.html +++ b/mediagoblin/templates/mediagoblin/auth/register.html @@ -26,7 +26,7 @@ {{ wtforms_util.render_table(register_form) }} - + diff --git a/mediagoblin/templates/mediagoblin/submit/start.html b/mediagoblin/templates/mediagoblin/submit/start.html index 8b446417..8fdbe4ed 100644 --- a/mediagoblin/templates/mediagoblin/submit/start.html +++ b/mediagoblin/templates/mediagoblin/submit/start.html @@ -28,7 +28,7 @@ {{ wtforms_util.render_table(submit_form) }} - + diff --git a/mediagoblin/templates/mediagoblin/test_submit.html b/mediagoblin/templates/mediagoblin/test_submit.html index 86cf4655..5bf8c317 100644 --- a/mediagoblin/templates/mediagoblin/test_submit.html +++ b/mediagoblin/templates/mediagoblin/test_submit.html @@ -25,7 +25,7 @@ {{ wtforms_util.render_table(image_form) }} - + From 3f139dd2595c63c01e184824c536d97aa68ee259 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Thu, 26 May 2011 00:45:17 +0200 Subject: [PATCH 0300/2731] Changed header size --- mediagoblin/static/css/base.css | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index d2bc92a0..c7d3d4ad 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -20,7 +20,7 @@ body { h1 { font-family: 'Carter One', arial, serif; margin-bottom: 20px; - margin-top:50px; + margin-top:40px; } a { @@ -35,10 +35,10 @@ label { .mediagoblin_header { width:100%; - height:60px; + height:36px; background-color:#393939; - padding-top:40px; - margin-bottom:80px; + padding-top:14px; + margin-bottom:40px; } .icon { From 04d7c55fc65407adbf7fee1bd2b0867c7ce99ccb Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Thu, 26 May 2011 01:24:13 +0200 Subject: [PATCH 0301/2731] Changed logout/account text --- mediagoblin/templates/mediagoblin/base.html | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index a0e0730d..9894f27a 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -34,9 +34,8 @@ {% endblock %}{% block mediagoblin_header_title %}MediaGoblin Home{% endblock %}
      {% if request.user %} - Welcome {{ request.user['username'] }}! -- - - Logout + {{ request.user['username'] }}'s account + (logout) {% else %} Login From e698dedad5a3baa73a6bc0025a77a64c384e5bd4 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 26 May 2011 10:14:46 -0500 Subject: [PATCH 0302/2731] *GNU* MediaGoblin home ;) --- mediagoblin/templates/mediagoblin/base.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index a0e0730d..b0c88a13 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -31,7 +31,7 @@
      {% block mediagoblin_logo %} - {% endblock %}{% block mediagoblin_header_title %}MediaGoblin Home{% endblock %} + {% endblock %}{% block mediagoblin_header_title %}GNU MediaGoblin Home{% endblock %}
      {% if request.user %} Welcome {{ request.user['username'] }}! -- From aba81c9f20acd0fa3fd1a31db678fccfba8777d1 Mon Sep 17 00:00:00 2001 From: Elrond Date: Thu, 26 May 2011 23:09:33 +0200 Subject: [PATCH 0303/2731] Starting "edit" functionality. This adds a link to the "edit" form, the form, the view for displaying the form and that's about it. --- mediagoblin/decorators.py | 20 ++++++++++ mediagoblin/edit/__init__.py | 0 mediagoblin/edit/forms.py | 27 +++++++++++++ mediagoblin/edit/routing.py | 22 +++++++++++ mediagoblin/edit/views.py | 23 +++++++++++ mediagoblin/routing.py | 2 + .../templates/mediagoblin/edit/edit.html | 38 +++++++++++++++++++ .../mediagoblin/user_pages/media.html | 3 ++ 8 files changed, 135 insertions(+) create mode 100644 mediagoblin/edit/__init__.py create mode 100644 mediagoblin/edit/forms.py create mode 100644 mediagoblin/edit/routing.py create mode 100644 mediagoblin/edit/views.py create mode 100644 mediagoblin/templates/mediagoblin/edit/edit.html diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index ff3f0b5e..fe631112 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -99,3 +99,23 @@ def get_user_media_entry(controller): return controller(request, media=media, *args, **kwargs) return _make_safe(wrapper, controller) + +def get_media_entry_by_id(controller): + """ + Pass in a MediaEntry based off of a url component + """ + def wrapper(request, *args, **kwargs): + try: + media = request.db.MediaEntry.find_one( + {'_id': ObjectId(request.matchdict['media']), + 'state': 'processed'}) + except InvalidId: + return exc.HTTPNotFound() + + # Still no media? Okay, 404. + if not media: + return exc.HTTPNotFound() + + return controller(request, media=media, *args, **kwargs) + + return _make_safe(wrapper, controller) diff --git a/mediagoblin/edit/__init__.py b/mediagoblin/edit/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py new file mode 100644 index 00000000..ea25141d --- /dev/null +++ b/mediagoblin/edit/forms.py @@ -0,0 +1,27 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +import wtforms + + +class EditForm(wtforms.Form): + title = wtforms.TextField( + 'Title', + [wtforms.validators.Length(min=0, max=500)]) + slug = wtforms.TextField( + 'Slug') + description = wtforms.TextAreaField('Description of this work') diff --git a/mediagoblin/edit/routing.py b/mediagoblin/edit/routing.py new file mode 100644 index 00000000..d7396a60 --- /dev/null +++ b/mediagoblin/edit/routing.py @@ -0,0 +1,22 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from routes.route import Route + +edit_routes = [ + Route('mediagoblin.edit.edit_media', "/{media}/", + controller="mediagoblin.edit.views:edit_media"), +] diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py new file mode 100644 index 00000000..11dd58be --- /dev/null +++ b/mediagoblin/edit/views.py @@ -0,0 +1,23 @@ + + +from webob import Response + +from mediagoblin.edit import forms +from mediagoblin.decorators import require_active_login, get_media_entry_by_id + +@get_media_entry_by_id +@require_active_login +def edit_media(request, media): + form = forms.EditForm(request.POST, + title = media['title'], + slug = media['slug'], + description = media['description']) + + # render + template = request.template_env.get_template( + 'mediagoblin/edit/edit.html') + return Response( + template.render( + {'request': request, + 'media': media, + 'form': form})) diff --git a/mediagoblin/routing.py b/mediagoblin/routing.py index 356ef678..b854c85a 100644 --- a/mediagoblin/routing.py +++ b/mediagoblin/routing.py @@ -19,6 +19,7 @@ from routes import Mapper from mediagoblin.auth.routing import auth_routes from mediagoblin.submit.routing import submit_routes from mediagoblin.user_pages.routing import user_routes +from mediagoblin.edit.routing import edit_routes def get_mapper(): mapping = Mapper() @@ -31,5 +32,6 @@ def get_mapper(): mapping.extend(auth_routes, '/auth') mapping.extend(submit_routes, '/submit') mapping.extend(user_routes, '/u') + mapping.extend(edit_routes, '/edit') return mapping diff --git a/mediagoblin/templates/mediagoblin/edit/edit.html b/mediagoblin/templates/mediagoblin/edit/edit.html new file mode 100644 index 00000000..72773cb5 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/edit/edit.html @@ -0,0 +1,38 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% extends "mediagoblin/base.html" %} + +{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} + +{% block mediagoblin_content %} +

      Edit details for {{ media.title }}

      + +
      + + {{ wtforms_util.render_table(form) }} + + + + +
      +
      + +{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 036bf726..f13c32e3 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -41,6 +41,9 @@ {{- media.uploader().username }}
      Description: {{ media.description }} +
      + Edit
      {% else %}

      Sorry, no such media found.

      From 8782001bf0002143f412e9612e97939f57d63ffe Mon Sep 17 00:00:00 2001 From: Elrond Date: Thu, 26 May 2011 23:17:41 +0200 Subject: [PATCH 0304/2731] Use new button style --- mediagoblin/templates/mediagoblin/edit/edit.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/edit/edit.html b/mediagoblin/templates/mediagoblin/edit/edit.html index 72773cb5..bd85f361 100644 --- a/mediagoblin/templates/mediagoblin/edit/edit.html +++ b/mediagoblin/templates/mediagoblin/edit/edit.html @@ -29,7 +29,7 @@ {{ wtforms_util.render_table(form) }} - + From 98857207ccb432117709f64137ca20f81635f288 Mon Sep 17 00:00:00 2001 From: Elrond Date: Fri, 27 May 2011 00:17:30 +0200 Subject: [PATCH 0305/2731] "edit": Finally implement saving. Currently no checks. Probably not so good. And especially, every logged in user currently can edit the data for any other user's media. --- mediagoblin/edit/views.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 11dd58be..050ece4e 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -1,6 +1,6 @@ -from webob import Response +from webob import Response, exc from mediagoblin.edit import forms from mediagoblin.decorators import require_active_login, get_media_entry_by_id @@ -13,6 +13,17 @@ def edit_media(request, media): slug = media['slug'], description = media['description']) + if request.method == 'POST' and form.validate(): + media['title'] = request.POST['title'] + media['description'] = request.POST['description'] + media['slug'] = request.POST['slug'] + media.save() + + # redirect + return exc.HTTPFound( + location=request.urlgen("mediagoblin.user_pages.media_home", + user=media.uploader()['username'], media=media['_id'])) + # render template = request.template_env.get_template( 'mediagoblin/edit/edit.html') From 8566cdda713566ef632b78388fa9016a704f6e55 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 28 May 2011 09:54:09 -0500 Subject: [PATCH 0306/2731] Added a new form rendering system, render_divs, and using it for registration --- .../templates/mediagoblin/auth/register.html | 15 ++++++------ .../templates/mediagoblin/utils/wtforms.html | 24 +++++++++++++++++++ 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/auth/register.html b/mediagoblin/templates/mediagoblin/auth/register.html index 610c7cc4..31c3d23e 100644 --- a/mediagoblin/templates/mediagoblin/auth/register.html +++ b/mediagoblin/templates/mediagoblin/auth/register.html @@ -20,14 +20,15 @@ {% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} {% block mediagoblin_content %} +

      Create an account!

      +
      - - {{ wtforms_util.render_table(register_form) }} - - - - -
      +
      + {{ wtforms_util.render_divs(register_form) }} +
      + +
      +
      {% endblock %} diff --git a/mediagoblin/templates/mediagoblin/utils/wtforms.html b/mediagoblin/templates/mediagoblin/utils/wtforms.html index 15556936..4a37ab33 100644 --- a/mediagoblin/templates/mediagoblin/utils/wtforms.html +++ b/mediagoblin/templates/mediagoblin/utils/wtforms.html @@ -15,6 +15,30 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . #} + +{# Auto-render a form as a series of divs #} +{% macro render_divs(form) -%} + {% for field in form %} +
      +
      {{ field.label }}
      + {% if field.description -%} +
      {{ field.description }}
      + {%- endif %} +
      {{ field }}
      + {%- if field.errors -%} +
      +
        + {% for error in field.errors %} +
      • {{ error }}
      • + {% endfor %} +
      +
      + {%- endif %} +
      + {% endfor %} +{%- endmacro %} + +{# Auto-render a form as a table #} {% macro render_table(form) -%} {% for field in form %} From 491b9109f368f06aa4032cba14518638b6b7cb5c Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sat, 28 May 2011 18:32:43 +0200 Subject: [PATCH 0307/2731] Styled forms --- mediagoblin/static/css/base.css | 25 +++++++++++++++++++ .../templates/mediagoblin/auth/register.html | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index c7d3d4ad..48331554 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -84,3 +84,28 @@ label { left:0px; margin-top:-20px; } + +/* forms */ + +.form_box { + width:300px; + margin-left:auto; + margin-right:auto; + background-color:#393939; + padding:50px 83px 83px; + border-top:5px solid #d49086; + font-size:18px; +} + +.form_field_input input { + width:300px; + font-size:18px; +} + +.form_field_box { + margin-bottom:20px; +} + +.form_field_label { + margin-bottom:4px; +} diff --git a/mediagoblin/templates/mediagoblin/auth/register.html b/mediagoblin/templates/mediagoblin/auth/register.html index 31c3d23e..2ebe99ec 100644 --- a/mediagoblin/templates/mediagoblin/auth/register.html +++ b/mediagoblin/templates/mediagoblin/auth/register.html @@ -20,7 +20,7 @@ {% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} {% block mediagoblin_content %} -

      Create an account!

      +

      Create an account!

      From 9ef7c0f7376ef18e9703722b6730021c95bbdb33 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sat, 28 May 2011 20:43:57 +0200 Subject: [PATCH 0308/2731] Fixed form header --- mediagoblin/static/css/base.css | 8 +++++++- mediagoblin/templates/mediagoblin/auth/register.html | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 48331554..26bf8bd9 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -23,6 +23,8 @@ h1 { margin-top:40px; } +28px + a { color: #86D4B1; } @@ -92,11 +94,15 @@ label { margin-left:auto; margin-right:auto; background-color:#393939; - padding:50px 83px 83px; + padding:0px 83px 83px; border-top:5px solid #d49086; font-size:18px; } +.form_box h1 { + font-size:28px; +} + .form_field_input input { width:300px; font-size:18px; diff --git a/mediagoblin/templates/mediagoblin/auth/register.html b/mediagoblin/templates/mediagoblin/auth/register.html index 2ebe99ec..730d684d 100644 --- a/mediagoblin/templates/mediagoblin/auth/register.html +++ b/mediagoblin/templates/mediagoblin/auth/register.html @@ -20,11 +20,11 @@ {% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} {% block mediagoblin_content %} -

      Create an account!

      +

      Create an account!

      {{ wtforms_util.render_divs(register_form) }}
      From 716a0ac3f156459e9c6f6bcaab4769d2c64b4171 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sat, 28 May 2011 21:02:34 +0200 Subject: [PATCH 0309/2731] Styled error messages --- mediagoblin/static/css/base.css | 118 +++++++++--------- .../templates/mediagoblin/utils/wtforms.html | 12 +- 2 files changed, 67 insertions(+), 63 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 26bf8bd9..618aaee0 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -1,9 +1,9 @@ body { - background-color: #272727; - color: #f7f7f7; - font-family: sans; - padding:none; - margin:0px; + background-color: #272727; + color: #f7f7f7; + font-family: sans; + padding:none; + margin:0px; } /* Carter One font */ @@ -18,15 +18,13 @@ body { /* text styles */ h1 { - font-family: 'Carter One', arial, serif; - margin-bottom: 20px; - margin-top:40px; + font-family: 'Carter One', arial, serif; + margin-bottom: 20px; + margin-top:40px; } -28px - a { - color: #86D4B1; + color: #86D4B1; } label { @@ -36,82 +34,90 @@ label { /* website structure */ .mediagoblin_header { - width:100%; - height:36px; - background-color:#393939; - padding-top:14px; - margin-bottom:40px; + width:100%; + height:36px; + background-color:#393939; + padding-top:14px; + margin-bottom:40px; } .icon { - vertical-align:middle; - margin-right:10px; + vertical-align:middle; + margin-right:10px; } .mediagoblin_container { - width: 960px; - margin-left: auto; - margin-right: auto; + width: 960px; + margin-left: auto; + margin-right: auto; } .mediagoblin_header_right { - float:right; + float:right; } .button { - font-family:'Carter One', arial, serif; - height:32px; - min-width:99px; - background-color:#86d4b1; - box-shadow:0px 0px 4px #000; - border-radius:5px; - border:none; - color:#272727; - margin:10px; - font-size:1em; - float:left; - display:block; - text-align:center; - padding-left:11px; - padding-right:11px; + font-family:'Carter One', arial, serif; + height:32px; + min-width:99px; + background-color:#86d4b1; + box-shadow:0px 0px 4px #000; + border-radius:5px; + border:none; + color:#272727; + margin:10px; + font-size:1em; + float:left; + display:block; + text-align:center; + padding-left:11px; + padding-right:11px; } /* common website elements */ .dotted_line { - width:100%; - height:0px; - border-bottom: dotted 1px #5f5f5f; - position:absolute; - left:0px; - margin-top:-20px; + width:100%; + height:0px; + border-bottom: dotted 1px #5f5f5f; + position:absolute; + left:0px; + margin-top:-20px; } /* forms */ .form_box { - width:300px; - margin-left:auto; - margin-right:auto; - background-color:#393939; - padding:0px 83px 83px; - border-top:5px solid #d49086; - font-size:18px; + width:300px; + margin-left:auto; + margin-right:auto; + background-color:#393939; + padding:0px 83px 83px; + border-top:5px solid #d49086; + font-size:18px; } .form_box h1 { - font-size:28px; + font-size:28px; } .form_field_input input { - width:300px; - font-size:18px; + width:300px; + font-size:18px; } .form_field_box { - margin-bottom:20px; + margin-bottom:24px; } -.form_field_label { - margin-bottom:4px; +.form_field_label,.form_field_input { + margin-bottom:4px; +} + +.form_field_error { + background-color:#87453b; + border:none; + font-size:16px; + padding:9px; + margin-top:8px; } diff --git a/mediagoblin/templates/mediagoblin/utils/wtforms.html b/mediagoblin/templates/mediagoblin/utils/wtforms.html index 4a37ab33..9adf8e53 100644 --- a/mediagoblin/templates/mediagoblin/utils/wtforms.html +++ b/mediagoblin/templates/mediagoblin/utils/wtforms.html @@ -26,13 +26,11 @@ {%- endif %}
      {{ field }}
      {%- if field.errors -%} -
      -
        - {% for error in field.errors %} -
      • {{ error }}
      • - {% endfor %} -
      -
      + {% for error in field.errors %} +
      + {{ error }} +
      + {% endfor %} {%- endif %}
      {% endfor %} From b0ff25c82cdf424a54b388bb084cfd6849683662 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sat, 28 May 2011 21:10:54 +0200 Subject: [PATCH 0310/2731] Changed login forms to use divs instead of tables --- .../templates/mediagoblin/auth/login.html | 30 ++++++++----------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/auth/login.html b/mediagoblin/templates/mediagoblin/auth/login.html index 02bfb91f..27a3e52a 100644 --- a/mediagoblin/templates/mediagoblin/auth/login.html +++ b/mediagoblin/templates/mediagoblin/auth/login.html @@ -20,25 +20,21 @@ {% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} {% block mediagoblin_content %} -

      Login:

      - - {% if login_failed %} -

      Login failed!

      - {% endif %} - - - {{ wtforms_util.render_table(login_form) }} - - - - -
      - - {% if next %} - - {% endif %} + {% endblock %} From 7c2005b6e2fdc9665ffc5b443f6450f9d5b34b16 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sat, 28 May 2011 21:15:15 +0200 Subject: [PATCH 0311/2731] Forgot a bottom-margin for the error div --- mediagoblin/static/css/base.css | 1 + 1 file changed, 1 insertion(+) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 618aaee0..fbe84c9c 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -120,4 +120,5 @@ label { font-size:16px; padding:9px; margin-top:8px; + margin-bottom:8px; } From b5cc7afea210cb1fc2e607f75d4922136ba4ecb5 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sat, 28 May 2011 21:32:12 +0200 Subject: [PATCH 0312/2731] Fixed submit button style, added create-account notice to log in page --- mediagoblin/static/css/base.css | 8 ++++++-- mediagoblin/templates/mediagoblin/auth/login.html | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index fbe84c9c..672cc04c 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -23,6 +23,11 @@ h1 { margin-top:40px; } +p { + font-family: sans; + font-size:16px; +} + a { color: #86D4B1; } @@ -67,7 +72,6 @@ label { color:#272727; margin:10px; font-size:1em; - float:left; display:block; text-align:center; padding-left:11px; @@ -92,7 +96,7 @@ label { margin-left:auto; margin-right:auto; background-color:#393939; - padding:0px 83px 83px; + padding:0px 83px 30px 83px; border-top:5px solid #d49086; font-size:18px; } diff --git a/mediagoblin/templates/mediagoblin/auth/login.html b/mediagoblin/templates/mediagoblin/auth/login.html index 27a3e52a..22a57b70 100644 --- a/mediagoblin/templates/mediagoblin/auth/login.html +++ b/mediagoblin/templates/mediagoblin/auth/login.html @@ -35,6 +35,7 @@ {% if next %} {% endif %} +

      Don't have an account yet? Create one here!

      {% endblock %} From 491dd3ff47826b419764f6379474dcb859e6dcb1 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Sat, 28 May 2011 23:19:44 +0200 Subject: [PATCH 0313/2731] *GNU* MediaGoblin on --- mediagoblin/templates/mediagoblin/base.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index b0c88a13..3306448d 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -17,7 +17,7 @@ #} <html> <head> - <title>{% block title %}MediaGoblin{% endblock title %} + {% block title %}GNU MediaGoblin{% endblock title %} {% block mediagoblin_head %} From 00cc5cb7455e1430e5bc060d3fb2a230b5b5c562 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Sat, 28 May 2011 23:54:15 +0200 Subject: [PATCH 0314/2731] Changed font from 'sans' to 'sans-serif' --- mediagoblin/static/css/base.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 672cc04c..c62086fa 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -1,7 +1,7 @@ body { background-color: #272727; color: #f7f7f7; - font-family: sans; + font-family: sans-serif; padding:none; margin:0px; } From df901af738b6be18b7e8049e308f6797c21fbd92 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Sat, 28 May 2011 23:56:29 +0200 Subject: [PATCH 0315/2731] Changed

      font from 'sans' to 'sans-serif' --- mediagoblin/static/css/base.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index c62086fa..cc60d7c9 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -24,7 +24,7 @@ h1 { } p { - font-family: sans; + font-family: sans-serif; font-size:16px; } From f0e621c8f564f70517600c96880f8ca3fc60f7ff Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 29 May 2011 01:14:48 +0200 Subject: [PATCH 0316/2731] Changed submit form to divs --- mediagoblin/static/css/base.css | 4 ++++ .../templates/mediagoblin/submit/start.html | 15 +++++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index cc60d7c9..55e5a02e 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -101,6 +101,10 @@ label { font-size:18px; } +.submit_box { + width:600px; +} + .form_box h1 { font-size:28px; } diff --git a/mediagoblin/templates/mediagoblin/submit/start.html b/mediagoblin/templates/mediagoblin/submit/start.html index 8fdbe4ed..75c31df4 100644 --- a/mediagoblin/templates/mediagoblin/submit/start.html +++ b/mediagoblin/templates/mediagoblin/submit/start.html @@ -20,16 +20,15 @@ {% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} {% block mediagoblin_content %} -

      Submit yer media

      - - {{ wtforms_util.render_table(submit_form) }} - - - - -
      +
      +

      Submit yer media

      + {{ wtforms_util.render_divs(submit_form) }} +
      + +
      +
      {% endblock %} From 722d6a970568019b8be09129f2d5b65382bccabf Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 29 May 2011 01:43:12 +0200 Subject: [PATCH 0317/2731] Modified logo to change on :hover --- mediagoblin/static/css/base.css | 12 ++++++++++-- mediagoblin/static/images/icon.png | Bin 960 -> 1670 bytes mediagoblin/templates/mediagoblin/base.html | 4 ++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 55e5a02e..53efd079 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -46,9 +46,17 @@ label { margin-bottom:40px; } -.icon { - vertical-align:middle; +a.mediagoblin_logo { + width:34px; + height:25px; margin-right:10px; + background-image:url('../images/icon.png'); + background-position:0px 0px; + display:inline-block; +} + +a.mediagoblin_logo:hover { + background-position:0px -28px; } .mediagoblin_container { diff --git a/mediagoblin/static/images/icon.png b/mediagoblin/static/images/icon.png index 47f07b9a4351a1c8f1192ab80dc15fc8c895e536..4f4f3e9c3c1b43c0f4149e031b69e34b2e9ce95b 100644 GIT binary patch delta 1609 zcmV-P2DbUY2Zjxh7Ya291^@s6B$PSfks%rj4b}hv4b}mWZ+V=NMkjv;14%?dR9J<@ zn7wZt*A>No_s))HmrIEhMN$5UkS2x0!cBkxLH>at2#|_EfK*B0A|FKxBSi;RzrQ)(mu1;`_MgY~w$2d3sXkKm`~B^U?s^0r;A-1|nQeMw$F63J`hLGM27^KC zX*AfJCYjiYe0IwE-8|2i(==V4OePENzF=kxRaGsx`vTDEcDwHYq-nYmyM8m<>Hr3; zL?-;Nt-mbGUr2v?8_1F*A%uW?eYlclHuZ_V0}w)3F|$@8RaI^I-rn8{khDz*A$;D} zFX>g_EFSx0YPfqeGTnXKvn*SSO)#^~$k6RGkT^sHcr`Yu+wE?92;tTV3vE3wB9dbJ z41vNWwfYCti6%0168U-T%n^z0vkTy677eQq!WR*OXL^50&OeBm#eAeDA}LD5-P?#< zIq5g^ko0)&-&l&+1?af@S}eY^EIUS|D2laM7&aIK`@o*0f6w)|k~g!O$O%qV0$(2O z?Dcxj%Ch{Sq#}fncRHOxRaJx0Xf#+_TFQY@WWAehosw!IKrDP){R7y`vg}wj*X#8X zpufMreZG4%xr&gJRWj-$J!>rmEJ9?Q41Wpy(Ll1!7cyKx3kshS}llO%~^lL z{Xpr3sg= z)k1z}ePiUI@~Ag^MEhD?f*gXxOzBxXhtxHz`w2B`)vkR7XVSj1F#jN@XkSA7Ye3RD zM&wT)Jm?YmD0l4l@&oOwQ?xI#sE>bKc~%@FlJ~nWC5OXs1U3K-gyn_?82gAlPxRqz zmfLk&%2IJ4Ib%ff-+XVQING^3e)QSnboG^S>BY;{cK*h9-WbOoO2r??r( zBCY<>Z2ai=@4w%9w9Mik{_)qoEG&BJ{e-Ys$@-2Kk(PwtmT3*?rkTCcmd}3h5 zYsNEf-Tl{J{*I9#xv;LGKG-6tf8{1wtUpmyymdZ6!4 z7qHn%&sTm}b0SV$gkK7z0}&n#-%Ek(6R4vmr`97zec|I-GbU)JX=^#_3x$G>fsrMf74lFhSdrknzg_>)#{mBaIjzmP5TDY?00000NkvXX Hu0mjfN}L?x delta 893 zcmV-@1A_d94ZsJG7YZ2&1^@s6RQmj^ks%rj4haAN4haE93953DMkjv*JxN4CR7i=% zmcMUXRTze!_xRemcC0jQ(l#K0Ixq!<#Dc_@0U;p)8#^l!3?QUREK!6|29%Mde?|rt zmiz%!U7%%*gamOKl8XA;vE!VV;o8P(?g@_6!YljQ=l65I^L^)jvdz~1Uf$?F{Y-Mx zD6?G;fy|~3WLR~AGns$7Q3kGCWWmae>zK^Ykd%XSLDP^Ua!eD*fsC}CW&jJlzcwts zGXO>cd#0NV<%h|$tQvO`Xr^sCbasx*RSN(St<62;MM!i4fFi5^D~QKOW5rdCje7<4 zfG2{&PyhwEuv7#n9919}HUom9%sKL>n41@;(s2eLX*G48hHrmr(*0;3A)jQ_kMo93 zK7Z}~!Bxq(f7$({vOzv9En-%a_AuYyef`7ERToX@MrCdE*hfhE$mr~i2alfz!M*$U z>Oi}?H5`;6N`Q#YCY$kjfE+EXRa*lvKA0X&B}e49)ZnfCy}Z@yEsxIQa?HG3Gc8A2 zh8BSqj*Ce7*Xw^D?EuK(I!f-TlWnmT8oYJAl2p|o+YfiYY?z%9K!6a(ch}@%n-t6+ zzz#sv`Hhf>OhYF$9=yF$PIplfzgLe`MF>{vWb!8q;gT`#gs?EWm2AcbiKbVt3KFAV zPIVf!uRRWi+i8%H0P!nV1-WFM-sYW+(_muKo27VIT~B|~iqGiJ=@?wSj!M{oRq3bz zilOojG0gRnlsKFzR9_J;VFQo^p>}=&WNUvf$6T8S#O7$Gw35I*hB8@6`baixT>#1Y zy{i5Z=mLeHYv>`K2>mp(V8R7F0nu6_gXw+s=6l7nm7`{>)9jwC$4q_q7mEC}+x_C5 zkNc_3%&33TuROJge6yOvmHx4LXX6xj1mj~mJzf0v(GRzR&lV$Y%VE*DU6Ym!w^jPn zOF(7#YHAU)RJ{SMZ2!FbBY}FEtI`A(fi^0C8>R*|0wX|7Zcd?Ts`+o(q9ztGT2giQ zHsalXa@85lpNr0+SVoQTToLf1WS15Rq>`2YO2JvbLK(gVut53ZjKJCSD@MQ&GcXzm z4?zRtq3}RxXnR1=5InHM0OBwZ28MwgyQZu|>f7{#)OUz|NA+uj
      {% block mediagoblin_logo %} - - {% endblock %}{% block mediagoblin_header_title %}GNU MediaGoblin Home{% endblock %} + + {% endblock %}{% block mediagoblin_header_title %}{% endblock %}
      {% if request.user %} {{ request.user['username'] }}'s account From 37a00748264bc47b5ceb3971622eea4858aef9dd Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 29 May 2011 01:47:12 +0200 Subject: [PATCH 0318/2731] Centered image on media page --- mediagoblin/static/css/base.css | 8 ++++++++ .../mediagoblin/user_pages/media.html | 20 +++++++++---------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 53efd079..5d2189c7 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -138,3 +138,11 @@ a.mediagoblin_logo:hover { margin-top:8px; margin-bottom:8px; } + +/* media pages */ + +img.media_image { + display:block; + margin-left:auto; + margin-right:auto; +} diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 036bf726..475a15ff 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -20,18 +20,17 @@ {# temporarily, an "image gallery" that isn't one really ;) #} {% if media %} -

      - Media details for - - {{- media.uploader().username }} - / {{media.title}} -

      -
      -
      +

      + Media details for + + {{- media.uploader().username }} + / {{media.title}} +

      Uploaded on {{ "%4d-%02d-%02d"|format(media.created.year, media.created.month, media.created.day) }} @@ -41,7 +40,6 @@ {{- media.uploader().username }}
      Description: {{ media.description }} -
      {% else %}

      Sorry, no such media found.

      {% endif %} From d3060210bc47f0647500c3a8298ea311bf5bac32 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 29 May 2011 01:53:41 +0200 Subject: [PATCH 0319/2731] Slightly modified text on media page --- .../templates/mediagoblin/user_pages/media.html | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 475a15ff..886962d1 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -22,25 +22,18 @@ {% if media %} -

      - Media details for - - {{- media.uploader().username }} - / {{media.title}} + {{media.title}}

      - Uploaded on +

      {{ media.description }}

      +

      Uploaded on {{ "%4d-%02d-%02d"|format(media.created.year, media.created.month, media.created.day) }} by - {{- media.uploader().username }} -
      - Description: {{ media.description }} + {{- media.uploader().username }}

      {% else %}

      Sorry, no such media found.

      {% endif %} -{% endblock %} +{% endblock %} From dfd18edadcae821a5b6dc0bb48310e24caa796ec Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 29 May 2011 02:02:26 +0200 Subject: [PATCH 0320/2731] First changes to media gallery view --- mediagoblin/static/css/base.css | 12 ++++++++++++ .../templates/mediagoblin/utils/object_gallery.html | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 5d2189c7..5d928b9a 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -146,3 +146,15 @@ img.media_image { margin-left:auto; margin-right:auto; } + +li.media_thumbnail { + width: 200px; + min-height: 250px; + display: -moz-inline-stack; + display: inline-block; + vertical-align: top; + margin: 5px; + zoom: 1; + *display: inline; + _height: 250px; +} diff --git a/mediagoblin/templates/mediagoblin/utils/object_gallery.html b/mediagoblin/templates/mediagoblin/utils/object_gallery.html index 30497f47..c9c3e0db 100644 --- a/mediagoblin/templates/mediagoblin/utils/object_gallery.html +++ b/mediagoblin/templates/mediagoblin/utils/object_gallery.html @@ -21,7 +21,7 @@ {% if media_entries %}

        {% for entry in media_entries %} -
      • +
      • From ce72a1bb15f421725696cc3eea28b94de098f8f2 Mon Sep 17 00:00:00 2001 From: Jakob Kramer Date: Sun, 29 May 2011 19:15:46 +0200 Subject: [PATCH 0321/2731] this should fix #354 --- mediagoblin/auth/views.py | 13 +++++++++---- mediagoblin/db/models.py | 3 ++- mediagoblin/templates/mediagoblin/base.html | 2 +- .../templates/mediagoblin/user_pages/user.html | 2 +- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index c3d24c74..8775d4c4 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -14,6 +14,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +import re from webob import Response, exc @@ -31,8 +32,11 @@ def register(request): if request.method == 'POST' and register_form.validate(): # TODO: Make sure the user doesn't exist already + users_with_username = \ - request.db.User.find({'username': request.POST['username']}).count() + request.db.User.find({ + 'username': request.POST['username'].lower() + }).count() if users_with_username: register_form.username.errors.append( @@ -41,7 +45,8 @@ def register(request): else: # Create the user entry = request.db.User() - entry['username'] = request.POST['username'] + entry['username'] = request.POST['username'].lower() + entry['username_repr'] = request.POST['username'] entry['email'] = request.POST['email'] entry['pw_hash'] = auth_lib.bcrypt_gen_password_hash( request.POST['password']) @@ -61,7 +66,7 @@ def register(request): # example "GNU MediaGoblin @ Wandborg - [...]". 'GNU MediaGoblin - Verify email', email_template.render( - username=entry['username'], + username=entry['username_repr'], verification_url='http://{host}{uri}?userid={userid}&token={verification_key}'.format( host=request.host, uri=request.urlgen('mediagoblin.auth.verify_email'), @@ -101,7 +106,7 @@ def login(request): if request.method == 'POST' and login_form.validate(): user = request.db.User.one( - {'username': request.POST['username']}) + {'username': request.POST['username'].lower()}) if user and user.check_login(request.POST['password']): # set up login in session diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 37420834..0b4390d7 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -38,6 +38,7 @@ class User(Document): structure = { 'username': unicode, + 'username_repr': unicode, 'email': unicode, 'created': datetime.datetime, 'plugin_data': dict, # plugins can dump stuff here. @@ -48,7 +49,7 @@ class User(Document): 'is_admin': bool, } - required_fields = ['username', 'created', 'pw_hash', 'email'] + required_fields = ['username', 'username_repr', 'created', 'pw_hash', 'email'] default_values = { 'created': datetime.datetime.utcnow, diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 704e5aa7..df803196 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -34,7 +34,7 @@ {% endblock %}{% block mediagoblin_header_title %}{% endblock %}
        {% if request.user %} - {{ request.user['username'] }}'s account + {{ request.user['username_repr'] }}'s account (logout) {% else %} diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 2d09f685..b9c98568 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -26,7 +26,7 @@ {% block mediagoblin_content -%} {% if user %} -

        User page for '{{ user.username }}'

        +

        User page for '{{ user.username_repr }}'

          From ff6b9f7279d7ee2efceae933da43f4a9b6459465 Mon Sep 17 00:00:00 2001 From: Jakob Kramer Date: Sun, 29 May 2011 19:17:44 +0200 Subject: [PATCH 0322/2731] don't import 're' --- mediagoblin/auth/views.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 8775d4c4..cf71be77 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -14,8 +14,6 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -import re - from webob import Response, exc from mediagoblin.auth import lib as auth_lib From db5912e358043c90194c6409fa09ab07d16df4c3 Mon Sep 17 00:00:00 2001 From: Jakob Kramer Date: Sun, 29 May 2011 19:49:25 +0200 Subject: [PATCH 0323/2731] remove all 'username_repr' stuff --- mediagoblin/auth/views.py | 3 +-- mediagoblin/db/models.py | 3 +-- mediagoblin/templates/mediagoblin/base.html | 2 +- mediagoblin/templates/mediagoblin/user_pages/user.html | 2 +- 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index cf71be77..6b5ce88c 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -44,7 +44,6 @@ def register(request): # Create the user entry = request.db.User() entry['username'] = request.POST['username'].lower() - entry['username_repr'] = request.POST['username'] entry['email'] = request.POST['email'] entry['pw_hash'] = auth_lib.bcrypt_gen_password_hash( request.POST['password']) @@ -64,7 +63,7 @@ def register(request): # example "GNU MediaGoblin @ Wandborg - [...]". 'GNU MediaGoblin - Verify email', email_template.render( - username=entry['username_repr'], + username=entry['username'], verification_url='http://{host}{uri}?userid={userid}&token={verification_key}'.format( host=request.host, uri=request.urlgen('mediagoblin.auth.verify_email'), diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 0b4390d7..37420834 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -38,7 +38,6 @@ class User(Document): structure = { 'username': unicode, - 'username_repr': unicode, 'email': unicode, 'created': datetime.datetime, 'plugin_data': dict, # plugins can dump stuff here. @@ -49,7 +48,7 @@ class User(Document): 'is_admin': bool, } - required_fields = ['username', 'username_repr', 'created', 'pw_hash', 'email'] + required_fields = ['username', 'created', 'pw_hash', 'email'] default_values = { 'created': datetime.datetime.utcnow, diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index df803196..704e5aa7 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -34,7 +34,7 @@ {% endblock %}{% block mediagoblin_header_title %}{% endblock %}
          {% if request.user %} - {{ request.user['username_repr'] }}'s account + {{ request.user['username'] }}'s account (logout) {% else %} diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index b9c98568..2d09f685 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -26,7 +26,7 @@ {% block mediagoblin_content -%} {% if user %} -

          User page for '{{ user.username_repr }}'

          +

          User page for '{{ user.username }}'

          {% endblock %} diff --git a/mediagoblin/templates/mediagoblin/utils/pagination.html b/mediagoblin/templates/mediagoblin/utils/pagination.html index 7b55b81d..aae50d22 100644 --- a/mediagoblin/templates/mediagoblin/utils/pagination.html +++ b/mediagoblin/templates/mediagoblin/utils/pagination.html @@ -15,31 +15,48 @@ # along with this program. If not, see . #} -{# only display if {{pagination}} is defined #} +{% macro render_pagination(request, pagination, + base_url=None, preserve_get_params=True) %} + {# only display if {{pagination}} is defined #} + {% if pagination and pagination.pages > 1 %} + {% if not base_url %} + {% set base_url = request.path_info %} + {% endif %} -{% if pagination and pagination.pages > 1 %} - + {% endif %} +{% endmacro %} diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 012d27a3..3a8684d3 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -48,10 +48,15 @@ def user_home(request, page): if media_entries == None: return exc.HTTPNotFound() + user_gallery_url = request.urlgen( + 'mediagoblin.user_pages.user_gallery', + user=user['username']) + return render_to_response( request, 'mediagoblin/user_pages/user.html', {'user': user, + 'user_gallery_url': user_gallery_url, 'media_entries': media_entries, 'pagination': pagination}) From 2c9e635ae2ecbef0649df78636503be357f16a7f Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Sun, 3 Jul 2011 05:46:00 +0200 Subject: [PATCH 0578/2731] Feature #400 - Resize images to fit on page - Additions * `migrations.py` * Removed empty line * Added empty line * `models.py` * Added `MediaEntry.get_display_media()` helper function * `process_media.__init__.py` * Updated `process_media_initial()` * Renamed `main` => `original`. * Added condition to `medium`, it's only created if the original dimensions exceed the MEDIUM_SIZE dimensions. * `media.html` * The image tag is now populated by `MediaEntry.get_display_media()` * `util.py` * Added `DISPLAY_IMAGE_FETCHING_ORDER`, used by `MediaEntry.get_display_media()` --- mediagoblin/db/migrations.py | 2 +- mediagoblin/db/models.py | 19 +++++++++++ mediagoblin/process_media/__init__.py | 33 +++++++++++-------- .../mediagoblin/user_pages/media.html | 9 ++--- mediagoblin/util.py | 2 ++ 5 files changed, 44 insertions(+), 21 deletions(-) diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py index 712f8ab4..b888ad3e 100644 --- a/mediagoblin/db/migrations.py +++ b/mediagoblin/db/migrations.py @@ -49,7 +49,7 @@ class MediaEntryMigration(DocumentMigration): '$set': { 'description_html': cleaned_markdown_conversion( doc['description'])}} - + class UserMigration(DocumentMigration): def allmigration01_add_bio_and_url_profile(self): """ diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index bf825a23..3190d8fa 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -24,6 +24,7 @@ from mediagoblin import mg_globals from mediagoblin.db import migrations from mediagoblin.db.util import DESCENDING, ObjectId from mediagoblin.util import Pagination +from mediagoblin.util import DISPLAY_IMAGE_FETCHING_ORDER ################### # Custom validators @@ -109,6 +110,24 @@ class MediaEntry(Document): migration_handler = migrations.MediaEntryMigration + def get_display_media(self, media_map, fetch_order=DISPLAY_IMAGE_FETCHING_ORDER): + """ + Find the best media for display. + + Args: + - media_map: a dict like + {u'image_size': [u'dir1', u'dir2', u'image.jpg']} + - fetch_order: the order we should try fetching images in + + Returns: + (media_size, media_path) + """ + media_sizes = media_map.keys() + print media_sizes + for media_size in DISPLAY_IMAGE_FETCHING_ORDER: + if media_size in media_sizes: + return media_map[media_size] + def main_mediafile(self): pass diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py index 0d1abcb3..9e0ceff7 100644 --- a/mediagoblin/process_media/__init__.py +++ b/mediagoblin/process_media/__init__.py @@ -57,36 +57,43 @@ def process_media_initial(media_id): thumb.save(thumb_file, "JPEG") """ - Create medium file, used in `media.html` + If the size of the original file exceeds the specified size of a `medium` + file, a `medium.jpg` files is created and later associated with the media + entry. """ medium = Image.open(queued_filename) - medium.thumbnail(MEDIUM_SIZE, Image.ANTIALIAS) + medium_processed = False - if medium.mode != "RGB": - medium = medium.convert("RGB") + if medium.size[0] > MEDIUM_SIZE[0] or medium.size[1] > MEDIUM_SIZE[1]: + medium.thumbnail(MEDIUM_SIZE, Image.ANTIALIAS) - medium_filepath = create_pub_filepath(entry, 'medium.jpg') + if medium.mode != "RGB": + medium = medium.convert("RGB") - medium_file = mgg.public_store.get_file(medium_filepath, 'w') - with medium_file: - medium.save(medium_file, "JPEG") + medium_filepath = create_pub_filepath(entry, 'medium.jpg') + + medium_file = mgg.public_store.get_file(medium_filepath, 'w') + with medium_file: + medium.save(medium_file, "JPEG") + medium_processed = True # we have to re-read because unlike PIL, not everything reads # things in string representation :) queued_file = file(queued_filename, 'rb') with queued_file: - main_filepath = create_pub_filepath(entry, queued_filepath[-1]) + original_filepath = create_pub_filepath(entry, queued_filepath[-1]) - with mgg.public_store.get_file(main_filepath, 'wb') as main_file: - main_file.write(queued_file.read()) + with mgg.public_store.get_file(original_filepath, 'wb') as original_file: + original_file.write(queued_file.read()) mgg.queue_store.delete_file(queued_filepath) entry['queued_media_file'] = [] media_files_dict = entry.setdefault('media_files', {}) media_files_dict['thumb'] = thumb_filepath - media_files_dict['main'] = main_filepath - media_files_dict['medium'] = medium_filepath + media_files_dict['original'] = original_filepath + if medium_processed: + media_files_dict['medium'] = medium_filepath entry['state'] = u'processed' entry.save() diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index e16f1e00..56d79662 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -26,13 +26,8 @@

          {{media.title}}

          - {% if media.media_files.medium %} - - {% else %} - - {% endif %} +

          Uploaded on {{ "%4d-%02d-%02d"|format(media.created.year, diff --git a/mediagoblin/util.py b/mediagoblin/util.py index a20e87c4..a5425663 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -35,6 +35,8 @@ from mediagoblin import mg_globals from mediagoblin import messages from mediagoblin.db.util import ObjectId +DISPLAY_IMAGE_FETCHING_ORDER = [u'medium', u'original', u'thumb'] + TESTS_ENABLED = False def _activate_testing(): """ From 380ac094f6ebcf7b457d98a86ac7cc0af2347ba4 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Sun, 3 Jul 2011 06:37:40 +0200 Subject: [PATCH 0579/2731] Removed debug code, erroneously included in my last commit --- mediagoblin/db/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 3190d8fa..2d6a71f7 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -123,7 +123,7 @@ class MediaEntry(Document): (media_size, media_path) """ media_sizes = media_map.keys() - print media_sizes + for media_size in DISPLAY_IMAGE_FETCHING_ORDER: if media_size in media_sizes: return media_map[media_size] From 4dc7444119f81d1858a2f31457f3a86af1f6a72d Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Sun, 3 Jul 2011 07:50:35 +0200 Subject: [PATCH 0580/2731] Feature #409 - Submitting an image should redirect you back to user's page w/ a message * Successful submission redirects to the logged in user's page (your own, presumably). * "Woohoo! Submitted!" is launched into the tube of session messages to appear on next pageload. If you're not aborting in the window of 210ms it takes for the client to respond to the 302 and load the logged in user's/your page that is, YMMV. --- mediagoblin/submit/views.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 6139614e..4c7476b0 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -24,6 +24,7 @@ from mediagoblin.util import ( from mediagoblin.decorators import require_active_login from mediagoblin.submit import forms as submit_forms, security from mediagoblin.process_media import process_media_initial +from mediagoblin.messages import add_message, SUCCESS @require_active_login @@ -85,7 +86,10 @@ def submit_start(request): # queue it for processing process_media_initial.delay(unicode(entry['_id'])) - return redirect(request, "mediagoblin.submit.success") + add_message(request, SUCCESS, 'Woohoo! Submitted!') + + return redirect(request, "mediagoblin.user_pages.user_home", + user = request.user['username']) return render_to_response( request, From 42de4c5379cd313d470e09aa71b009e731ee2264 Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Sun, 3 Jul 2011 02:37:19 -0500 Subject: [PATCH 0581/2731] moves edit profile link to user page --- mediagoblin/templates/mediagoblin/root.html | 1 - mediagoblin/templates/mediagoblin/user_pages/user.html | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index e29abd51..5b744999 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -23,7 +23,6 @@ {% if request.user %}

          Submit an item - Edit profile

          {% else %}

          diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 99e46a72..22defcbd 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -27,6 +27,10 @@ {% block mediagoblin_content -%} {% if user %}

          {{ user.username }}'s profile

          + {% if request.user == user.username or request.user['is_admin'] %} + Edit + {% endif %} {% include "mediagoblin/utils/profile.html" %} From e192d7b7a55efdfd2f50f5d068a0dfa484e152fa Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Sun, 3 Jul 2011 02:41:39 -0500 Subject: [PATCH 0582/2731] allows admins to edit user media --- mediagoblin/templates/mediagoblin/user_pages/media.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 21506ee4..4dec0641 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -94,7 +94,8 @@ {% include "mediagoblin/utils/prev_next.html" %}

          Sidebar content here!

          - {% if media['uploader'] == request.user['_id'] %} + {% if media['uploader'] == request.user['_id'] or + request.user['is_admin'] %}

          Editing {{ user['username'] }}'s profile

          From 7a44bb16db549797e721433c240dfaa89020156d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Jul 2011 09:21:24 -0500 Subject: [PATCH 0584/2731] user_gallery_url -> {{ user_gallery_url }} ... How embarassing. --- mediagoblin/templates/mediagoblin/user_pages/user.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index da8db261..d23daccd 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -37,7 +37,7 @@ {% set pagination_base_url = user_gallery_url %} {% include "mediagoblin/utils/object_gallery.html" %} -

          View all of {{ user.username }}'s media

          +

          View all of {{ user.username }}'s media

          Date: Sun, 3 Jul 2011 09:26:40 -0500 Subject: [PATCH 0585/2731] Caution an admin when they're editing someone else's media. --- mediagoblin/edit/views.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 64fa0eab..f069d8e7 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -64,6 +64,14 @@ def edit_media(request, media): return redirect(request, "mediagoblin.user_pages.media_home", user=media.uploader()['username'], media=media['slug']) + if request.user['is_admin'] \ + and media['uploader'] != request.user['_id'] \ + and request.method != 'POST': + messages.add_message( + request, messages.WARNING, + 'You are editing another user\'s media. Proceed with caution.') + + return render_to_response( request, 'mediagoblin/edit/edit.html', From b86bedf9eac62ed41715de1a17bb49c672dfba93 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Jul 2011 09:29:09 -0500 Subject: [PATCH 0586/2731] Switching single-quoted strings to double-quote to avoid escaping the apostrophe.. :) --- mediagoblin/edit/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index f069d8e7..e064a9c3 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -69,7 +69,7 @@ def edit_media(request, media): and request.method != 'POST': messages.add_message( request, messages.WARNING, - 'You are editing another user\'s media. Proceed with caution.') + "You are editing another user's media. Proceed with caution.") return render_to_response( @@ -90,7 +90,7 @@ def edit_profile(request): if request.method != 'POST': messages.add_message( request, messages.WARNING, - 'You are editing a user\'s profile. Proceed with caution.') + "You are editing a user's profile. Proceed with caution.") else: user = request.user From 7c42cdf739df17c37b328957a10c2d11b058be84 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Jul 2011 09:42:45 -0500 Subject: [PATCH 0587/2731] class="media_image" accidentally added back during 400 merge. Fixing. --- mediagoblin/templates/mediagoblin/user_pages/media.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 85ba985c..ca2ec5d6 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -24,11 +24,11 @@ {% if media %}
          {% if media.media_files.medium %} - + {% else %} - + {% endif %}

          From 0b69a78f73aced3a0c2a010dec75ac372a613c85 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 3 Jul 2011 21:12:22 +0200 Subject: [PATCH 0588/2731] Put file input form at the top of submission form --- mediagoblin/templates/mediagoblin/submit/start.html | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/submit/start.html b/mediagoblin/templates/mediagoblin/submit/start.html index f34bf2af..387c2743 100644 --- a/mediagoblin/templates/mediagoblin/submit/start.html +++ b/mediagoblin/templates/mediagoblin/submit/start.html @@ -20,17 +20,16 @@ {% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} {% block mediagoblin_content %} -

          Submit yer media

          + {{ wtforms_util.render_field_div(submit_form.file) }} {{ wtforms_util.render_field_div(submit_form.title) }} {{ wtforms_util.render_textarea_div(submit_form.description) }} - {{ wtforms_util.render_field_div(submit_form.file) }}
          -{% endblock %} +{% endblock %} From 1344821daf935c348eaa46c27e17fc3186c59b19 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 3 Jul 2011 21:20:09 +0200 Subject: [PATCH 0589/2731] Added reset.css and text.css from 960.gs. This might shake up a few styles! --- mediagoblin/contrib/reset.css | 202 ++++++++++++++++++++ mediagoblin/contrib/text.css | 86 +++++++++ mediagoblin/static/css/contrib/reset.css | 1 + mediagoblin/static/css/contrib/text.css | 1 + mediagoblin/templates/mediagoblin/base.html | 4 + 5 files changed, 294 insertions(+) create mode 100644 mediagoblin/contrib/reset.css create mode 100644 mediagoblin/contrib/text.css create mode 120000 mediagoblin/static/css/contrib/reset.css create mode 120000 mediagoblin/static/css/contrib/text.css diff --git a/mediagoblin/contrib/reset.css b/mediagoblin/contrib/reset.css new file mode 100644 index 00000000..87b7f368 --- /dev/null +++ b/mediagoblin/contrib/reset.css @@ -0,0 +1,202 @@ +/* `XHTML, HTML4, HTML5 Reset +----------------------------------------------------------------------------------------------------*/ + +a, +abbr, +acronym, +address, +applet, +article, +aside, +audio, +b, +big, +blockquote, +body, +canvas, +caption, +center, +cite, +code, +dd, +del, +details, +dfn, +dialog, +div, +dl, +dt, +em, +embed, +fieldset, +figcaption, +figure, +font, +footer, +form, +h1, +h2, +h3, +h4, +h5, +h6, +header, +hgroup, +hr, +html, +i, +iframe, +img, +ins, +kbd, +label, +legend, +li, +mark, +menu, +meter, +nav, +object, +ol, +output, +p, +pre, +progress, +q, +rp, +rt, +ruby, +s, +samp, +section, +small, +span, +strike, +strong, +sub, +summary, +sup, +table, +tbody, +td, +tfoot, +th, +thead, +time, +tr, +tt, +u, +ul, +var, +video, +xmp { + border: 0; + margin: 0; + padding: 0; + font-size: 100%; +} + +html, +body { + height: 100%; +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +menu, +nav, +section { +/* + Override the default (display: inline) for + browsers that do not recognize HTML5 tags. + + IE8 (and lower) requires a shiv: + http://ejohn.org/blog/html5-shiv +*/ + display: block; +} + +b, +strong { +/* + Makes browsers agree. + IE + Opera = font-weight: bold. + Gecko + WebKit = font-weight: bolder. +*/ + font-weight: bold; +} + +img { + color: transparent; + font-size: 0; + vertical-align: middle; +/* + For IE. + http://css-tricks.com/ie-fix-bicubic-scaling-for-images +*/ + -ms-interpolation-mode: bicubic; +} + +li { +/* + For IE6 + IE7. +*/ + display: list-item; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +th, +td, +caption { + font-weight: normal; + vertical-align: top; + text-align: left; +} + +q { + quotes: none; +} + +q:before, +q:after { + content: ''; + content: none; +} + +sub, +sup, +small { + font-size: 75%; +} + +sub, +sup { + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +svg { +/* + For IE9. +*/ + overflow: hidden; +} \ No newline at end of file diff --git a/mediagoblin/contrib/text.css b/mediagoblin/contrib/text.css new file mode 100644 index 00000000..1a6b302f --- /dev/null +++ b/mediagoblin/contrib/text.css @@ -0,0 +1,86 @@ +/* + 960 Grid System ~ Text CSS. + Learn more ~ http://960.gs/ + + Licensed under GPL and MIT. +*/ + +/* `Basic HTML +----------------------------------------------------------------------------------------------------*/ + +body { + font: 13px/1.5 'Helvetica Neue', Arial, 'Liberation Sans', FreeSans, sans-serif; +} + +pre, +code { + font-family: 'DejaVu Sans Mono', Monaco, Consolas, monospace; +} + +hr { + border: 0 #ccc solid; + border-top-width: 1px; + clear: both; + height: 0; +} + +/* `Headings +----------------------------------------------------------------------------------------------------*/ + +h1 { + font-size: 25px; +} + +h2 { + font-size: 23px; +} + +h3 { + font-size: 21px; +} + +h4 { + font-size: 19px; +} + +h5 { + font-size: 17px; +} + +h6 { + font-size: 15px; +} + +/* `Spacing +----------------------------------------------------------------------------------------------------*/ + +ol { + list-style: decimal; +} + +ul { + list-style: disc; +} + +li { + margin-left: 30px; +} + +p, +dl, +hr, +h1, +h2, +h3, +h4, +h5, +h6, +ol, +ul, +pre, +table, +address, +fieldset, +figure { + margin-bottom: 20px; +} \ No newline at end of file diff --git a/mediagoblin/static/css/contrib/reset.css b/mediagoblin/static/css/contrib/reset.css new file mode 120000 index 00000000..e6796fdc --- /dev/null +++ b/mediagoblin/static/css/contrib/reset.css @@ -0,0 +1 @@ +/home/jef/env/mediagoblin/src/schendjes-mediagoblin/mediagoblin/contrib/reset.css \ No newline at end of file diff --git a/mediagoblin/static/css/contrib/text.css b/mediagoblin/static/css/contrib/text.css new file mode 120000 index 00000000..f54ea50c --- /dev/null +++ b/mediagoblin/static/css/contrib/text.css @@ -0,0 +1 @@ +/home/jef/env/mediagoblin/src/schendjes-mediagoblin/mediagoblin/contrib/text.css \ No newline at end of file diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index fbb52803..87adfabb 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -18,6 +18,10 @@ {% block title %}GNU MediaGoblin{% endblock title %} + + Date: Sun, 3 Jul 2011 21:37:21 +0200 Subject: [PATCH 0590/2731] Switched over to 960_16_col. This may break a bunch of stuff. If you find something that is broken, slap me. --- mediagoblin/contrib/960_12_col.css | 357 -------------- mediagoblin/contrib/960_16_col.css | 447 ++++++++++++++++++ mediagoblin/static/css/base.css | 10 - mediagoblin/static/css/contrib/960_12_col.css | 1 - mediagoblin/static/css/contrib/960_16_col.css | 1 + .../templates/mediagoblin/auth/login.html | 3 +- .../templates/mediagoblin/auth/register.html | 2 +- mediagoblin/templates/mediagoblin/base.html | 14 +- .../templates/mediagoblin/edit/edit.html | 2 +- .../mediagoblin/edit/edit_profile.html | 2 +- .../templates/mediagoblin/submit/start.html | 2 +- .../mediagoblin/user_pages/media.html | 4 +- 12 files changed, 462 insertions(+), 383 deletions(-) delete mode 100644 mediagoblin/contrib/960_12_col.css create mode 100644 mediagoblin/contrib/960_16_col.css delete mode 120000 mediagoblin/static/css/contrib/960_12_col.css create mode 120000 mediagoblin/static/css/contrib/960_16_col.css diff --git a/mediagoblin/contrib/960_12_col.css b/mediagoblin/contrib/960_12_col.css deleted file mode 100644 index 48e86ee8..00000000 --- a/mediagoblin/contrib/960_12_col.css +++ /dev/null @@ -1,357 +0,0 @@ -/* - 960 Grid System ~ Core CSS. - Learn more ~ http://960.gs/ - - Licensed under GPL and MIT. -*/ - -/* - Forces backgrounds to span full width, - even if there is horizontal scrolling. - Increase this if your layout is wider. - - Note: IE6 works fine without this fix. -*/ - -body { - min-width: 960px; -} - -/* `Container -----------------------------------------------------------------------------------------------------*/ - -.container_12 { - margin-left: auto; - margin-right: auto; - width: 960px; -} - -/* `Grid >> Global -----------------------------------------------------------------------------------------------------*/ - -.grid_1, -.grid_2, -.grid_3, -.grid_4, -.grid_5, -.grid_6, -.grid_7, -.grid_8, -.grid_9, -.grid_10, -.grid_11, -.grid_12 { - display: inline; - float: left; - margin-left: 10px; - margin-right: 10px; -} - -.push_1, .pull_1, -.push_2, .pull_2, -.push_3, .pull_3, -.push_4, .pull_4, -.push_5, .pull_5, -.push_6, .pull_6, -.push_7, .pull_7, -.push_8, .pull_8, -.push_9, .pull_9, -.push_10, .pull_10, -.push_11, .pull_11 { - position: relative; -} - -/* `Grid >> Children (Alpha ~ First, Omega ~ Last) -----------------------------------------------------------------------------------------------------*/ - -.alpha { - margin-left: 0; -} - -.omega { - margin-right: 0; -} - -/* `Grid >> 12 Columns -----------------------------------------------------------------------------------------------------*/ - -.container_12 .grid_1 { - width: 60px; -} - -.container_12 .grid_2 { - width: 140px; -} - -.container_12 .grid_3 { - width: 220px; -} - -.container_12 .grid_4 { - width: 300px; -} - -.container_12 .grid_5 { - width: 380px; -} - -.container_12 .grid_6 { - width: 460px; -} - -.container_12 .grid_7 { - width: 540px; -} - -.container_12 .grid_8 { - width: 620px; -} - -.container_12 .grid_9 { - width: 700px; -} - -.container_12 .grid_10 { - width: 780px; -} - -.container_12 .grid_11 { - width: 860px; -} - -.container_12 .grid_12 { - width: 940px; -} - -/* `Prefix Extra Space >> 12 Columns -----------------------------------------------------------------------------------------------------*/ - -.container_12 .prefix_1 { - padding-left: 80px; -} - -.container_12 .prefix_2 { - padding-left: 160px; -} - -.container_12 .prefix_3 { - padding-left: 240px; -} - -.container_12 .prefix_4 { - padding-left: 320px; -} - -.container_12 .prefix_5 { - padding-left: 400px; -} - -.container_12 .prefix_6 { - padding-left: 480px; -} - -.container_12 .prefix_7 { - padding-left: 560px; -} - -.container_12 .prefix_8 { - padding-left: 640px; -} - -.container_12 .prefix_9 { - padding-left: 720px; -} - -.container_12 .prefix_10 { - padding-left: 800px; -} - -.container_12 .prefix_11 { - padding-left: 880px; -} - -/* `Suffix Extra Space >> 12 Columns -----------------------------------------------------------------------------------------------------*/ - -.container_12 .suffix_1 { - padding-right: 80px; -} - -.container_12 .suffix_2 { - padding-right: 160px; -} - -.container_12 .suffix_3 { - padding-right: 240px; -} - -.container_12 .suffix_4 { - padding-right: 320px; -} - -.container_12 .suffix_5 { - padding-right: 400px; -} - -.container_12 .suffix_6 { - padding-right: 480px; -} - -.container_12 .suffix_7 { - padding-right: 560px; -} - -.container_12 .suffix_8 { - padding-right: 640px; -} - -.container_12 .suffix_9 { - padding-right: 720px; -} - -.container_12 .suffix_10 { - padding-right: 800px; -} - -.container_12 .suffix_11 { - padding-right: 880px; -} - -/* `Push Space >> 12 Columns -----------------------------------------------------------------------------------------------------*/ - -.container_12 .push_1 { - left: 80px; -} - -.container_12 .push_2 { - left: 160px; -} - -.container_12 .push_3 { - left: 240px; -} - -.container_12 .push_4 { - left: 320px; -} - -.container_12 .push_5 { - left: 400px; -} - -.container_12 .push_6 { - left: 480px; -} - -.container_12 .push_7 { - left: 560px; -} - -.container_12 .push_8 { - left: 640px; -} - -.container_12 .push_9 { - left: 720px; -} - -.container_12 .push_10 { - left: 800px; -} - -.container_12 .push_11 { - left: 880px; -} - -/* `Pull Space >> 12 Columns -----------------------------------------------------------------------------------------------------*/ - -.container_12 .pull_1 { - left: -80px; -} - -.container_12 .pull_2 { - left: -160px; -} - -.container_12 .pull_3 { - left: -240px; -} - -.container_12 .pull_4 { - left: -320px; -} - -.container_12 .pull_5 { - left: -400px; -} - -.container_12 .pull_6 { - left: -480px; -} - -.container_12 .pull_7 { - left: -560px; -} - -.container_12 .pull_8 { - left: -640px; -} - -.container_12 .pull_9 { - left: -720px; -} - -.container_12 .pull_10 { - left: -800px; -} - -.container_12 .pull_11 { - left: -880px; -} - -/* `Clear Floated Elements -----------------------------------------------------------------------------------------------------*/ - -/* http://sonspring.com/journal/clearing-floats */ - -.clear { - clear: both; - display: block; - overflow: hidden; - visibility: hidden; - width: 0; - height: 0; -} - -/* http://www.yuiblog.com/blog/2010/09/27/clearfix-reloaded-overflowhidden-demystified */ - -.clearfix:before, -.clearfix:after, -.container_12:before, -.container_12:after { - content: '.'; - display: block; - overflow: hidden; - visibility: hidden; - font-size: 0; - line-height: 0; - width: 0; - height: 0; -} - -.clearfix:after, -.container_12:after { - clear: both; -} - -/* - The following zoom:1 rule is specifically for IE6 + IE7. - Move to separate stylesheet if invalid CSS is a problem. -*/ - -.clearfix, -.container_12 { - zoom: 1; -} \ No newline at end of file diff --git a/mediagoblin/contrib/960_16_col.css b/mediagoblin/contrib/960_16_col.css new file mode 100644 index 00000000..faa6d8b2 --- /dev/null +++ b/mediagoblin/contrib/960_16_col.css @@ -0,0 +1,447 @@ +/* + 960 Grid System ~ Core CSS. + Learn more ~ http://960.gs/ + + Licensed under GPL and MIT. +*/ + +/* + Forces backgrounds to span full width, + even if there is horizontal scrolling. + Increase this if your layout is wider. + + Note: IE6 works fine without this fix. +*/ + +body { + min-width: 960px; +} + +/* Container +----------------------------------------------------------------------------------------------------*/ + +.container_16 { + margin-left: auto; + margin-right: auto; + width: 960px; +} + +/* Grid >> Global +----------------------------------------------------------------------------------------------------*/ + +.grid_1, +.grid_2, +.grid_3, +.grid_4, +.grid_5, +.grid_6, +.grid_7, +.grid_8, +.grid_9, +.grid_10, +.grid_11, +.grid_12, +.grid_13, +.grid_14, +.grid_15, +.grid_16 { + display: inline; + float: left; + position: relative; + margin-left: 10px; + margin-right: 10px; +} + +.push_1, .pull_1, +.push_2, .pull_2, +.push_3, .pull_3, +.push_4, .pull_4, +.push_5, .pull_5, +.push_6, .pull_6, +.push_7, .pull_7, +.push_8, .pull_8, +.push_9, .pull_9, +.push_10, .pull_10, +.push_11, .pull_11, +.push_12, .pull_12, +.push_13, .pull_13, +.push_14, .pull_14, +.push_15, .pull_15, +.push_16, .pull_16 { + position: relative; +} + +/* Grid >> Children (Alpha ~ First, Omega ~ Last) +----------------------------------------------------------------------------------------------------*/ + +.alpha { + margin-left: 0; +} + +.omega { + margin-right: 0; +} + +/* Grid >> 16 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_16 .grid_1 { + width: 40px; +} + +.container_16 .grid_2 { + width: 100px; +} + +.container_16 .grid_3 { + width: 160px; +} + +.container_16 .grid_4 { + width: 220px; +} + +.container_16 .grid_5 { + width: 280px; +} + +.container_16 .grid_6 { + width: 340px; +} + +.container_16 .grid_7 { + width: 400px; +} + +.container_16 .grid_8 { + width: 460px; +} + +.container_16 .grid_9 { + width: 520px; +} + +.container_16 .grid_10 { + width: 580px; +} + +.container_16 .grid_11 { + width: 640px; +} + +.container_16 .grid_12 { + width: 700px; +} + +.container_16 .grid_13 { + width: 760px; +} + +.container_16 .grid_14 { + width: 820px; +} + +.container_16 .grid_15 { + width: 880px; +} + +.container_16 .grid_16 { + width: 940px; +} + +/* Prefix Extra Space >> 16 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_16 .prefix_1 { + padding-left: 60px; +} + +.container_16 .prefix_2 { + padding-left: 120px; +} + +.container_16 .prefix_3 { + padding-left: 180px; +} + +.container_16 .prefix_4 { + padding-left: 240px; +} + +.container_16 .prefix_5 { + padding-left: 300px; +} + +.container_16 .prefix_6 { + padding-left: 360px; +} + +.container_16 .prefix_7 { + padding-left: 420px; +} + +.container_16 .prefix_8 { + padding-left: 480px; +} + +.container_16 .prefix_9 { + padding-left: 540px; +} + +.container_16 .prefix_10 { + padding-left: 600px; +} + +.container_16 .prefix_11 { + padding-left: 660px; +} + +.container_16 .prefix_12 { + padding-left: 720px; +} + +.container_16 .prefix_13 { + padding-left: 780px; +} + +.container_16 .prefix_14 { + padding-left: 840px; +} + +.container_16 .prefix_15 { + padding-left: 900px; +} + +/* Suffix Extra Space >> 16 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_16 .suffix_1 { + padding-right: 60px; +} + +.container_16 .suffix_2 { + padding-right: 120px; +} + +.container_16 .suffix_3 { + padding-right: 180px; +} + +.container_16 .suffix_4 { + padding-right: 240px; +} + +.container_16 .suffix_5 { + padding-right: 300px; +} + +.container_16 .suffix_6 { + padding-right: 360px; +} + +.container_16 .suffix_7 { + padding-right: 420px; +} + +.container_16 .suffix_8 { + padding-right: 480px; +} + +.container_16 .suffix_9 { + padding-right: 540px; +} + +.container_16 .suffix_10 { + padding-right: 600px; +} + +.container_16 .suffix_11 { + padding-right: 660px; +} + +.container_16 .suffix_12 { + padding-right: 720px; +} + +.container_16 .suffix_13 { + padding-right: 780px; +} + +.container_16 .suffix_14 { + padding-right: 840px; +} + +.container_16 .suffix_15 { + padding-right: 900px; +} + +/* Push Space >> 16 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_16 .push_1 { + left: 60px; +} + +.container_16 .push_2 { + left: 120px; +} + +.container_16 .push_3 { + left: 180px; +} + +.container_16 .push_4 { + left: 240px; +} + +.container_16 .push_5 { + left: 300px; +} + +.container_16 .push_6 { + left: 360px; +} + +.container_16 .push_7 { + left: 420px; +} + +.container_16 .push_8 { + left: 480px; +} + +.container_16 .push_9 { + left: 540px; +} + +.container_16 .push_10 { + left: 600px; +} + +.container_16 .push_11 { + left: 660px; +} + +.container_16 .push_12 { + left: 720px; +} + +.container_16 .push_13 { + left: 780px; +} + +.container_16 .push_14 { + left: 840px; +} + +.container_16 .push_15 { + left: 900px; +} + +/* Pull Space >> 16 Columns +----------------------------------------------------------------------------------------------------*/ + +.container_16 .pull_1 { + left: -60px; +} + +.container_16 .pull_2 { + left: -120px; +} + +.container_16 .pull_3 { + left: -180px; +} + +.container_16 .pull_4 { + left: -240px; +} + +.container_16 .pull_5 { + left: -300px; +} + +.container_16 .pull_6 { + left: -360px; +} + +.container_16 .pull_7 { + left: -420px; +} + +.container_16 .pull_8 { + left: -480px; +} + +.container_16 .pull_9 { + left: -540px; +} + +.container_16 .pull_10 { + left: -600px; +} + +.container_16 .pull_11 { + left: -660px; +} + +.container_16 .pull_12 { + left: -720px; +} + +.container_16 .pull_13 { + left: -780px; +} + +.container_16 .pull_14 { + left: -840px; +} + +.container_16 .pull_15 { + left: -900px; +} + +/* `Clear Floated Elements +----------------------------------------------------------------------------------------------------*/ + +/* http://sonspring.com/journal/clearing-floats */ + +.clear { + clear: both; + display: block; + overflow: hidden; + visibility: hidden; + width: 0; + height: 0; +} + +/* http://www.yuiblog.com/blog/2010/09/27/clearfix-reloaded-overflowhidden-demystified */ + +.clearfix:before, +.clearfix:after, +.container_16:before, +.container_16:after { + content: '.'; + display: block; + overflow: hidden; + visibility: hidden; + font-size: 0; + line-height: 0; + width: 0; + height: 0; +} + +.clearfix:after, +.container_16:after { + clear: both; +} + +/* + The following zoom:1 rule is specifically for IE6 + IE7. + Move to separate stylesheet if invalid CSS is a problem. +*/ + +.clearfix, +.container_16 { + zoom: 1; +} \ No newline at end of file diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 3b2a9a50..2574683e 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -208,16 +208,6 @@ text-align:center; text-align:right; } -/* media pages */ - -.media_image{ - width:640px; -} - -.media_sidebar{ - width:280px; -} - /* comments */ .comment_author { diff --git a/mediagoblin/static/css/contrib/960_12_col.css b/mediagoblin/static/css/contrib/960_12_col.css deleted file mode 120000 index 15c360e4..00000000 --- a/mediagoblin/static/css/contrib/960_12_col.css +++ /dev/null @@ -1 +0,0 @@ -../../../contrib/960_12_col.css \ No newline at end of file diff --git a/mediagoblin/static/css/contrib/960_16_col.css b/mediagoblin/static/css/contrib/960_16_col.css new file mode 120000 index 00000000..a8e89d29 --- /dev/null +++ b/mediagoblin/static/css/contrib/960_16_col.css @@ -0,0 +1 @@ +/home/jef/env/mediagoblin/src/schendjes-mediagoblin/mediagoblin/contrib/960_16_col.css \ No newline at end of file diff --git a/mediagoblin/templates/mediagoblin/auth/login.html b/mediagoblin/templates/mediagoblin/auth/login.html index f6ee7166..2303ce5c 100644 --- a/mediagoblin/templates/mediagoblin/auth/login.html +++ b/mediagoblin/templates/mediagoblin/auth/login.html @@ -20,10 +20,9 @@ {% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} {% block mediagoblin_content %} -
          -
          +

          Log in

          {% if login_failed %}
          Login failed!
          diff --git a/mediagoblin/templates/mediagoblin/auth/register.html b/mediagoblin/templates/mediagoblin/auth/register.html index 7e18ca58..f77b3782 100644 --- a/mediagoblin/templates/mediagoblin/auth/register.html +++ b/mediagoblin/templates/mediagoblin/auth/register.html @@ -23,7 +23,7 @@ -
          +

          Create an account!

          {{ wtforms_util.render_divs(register_form) }}
          diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 87adfabb..b71fca24 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -23,7 +23,7 @@ + href="{{ request.staticdirect('/css/contrib/960_16_col.css') }}"/> {% block mediagoblin_head %} @@ -35,8 +35,8 @@
          {% block mediagoblin_header %}
          -
          -
          +
          +
          {% block mediagoblin_logo %} {% endblock %}{% block mediagoblin_header_title %}{% endblock %} @@ -55,8 +55,8 @@
          {% endblock %} -
          -
          +
          +
          {% include "mediagoblin/utils/messages.html" %} {% block mediagoblin_content %} {% endblock mediagoblin_content %} @@ -64,8 +64,8 @@
          {% block mediagoblin_footer %}

          - {% include "mediagoblin/utils/object_gallery.html" %} +
          + + + {% endfor %} {% if pagination_base_url %} {# different url, so set that and don't keep the get params #} {{ render_pagination(request, pagination, pagination_base_url, False) }} @@ -37,5 +34,4 @@ {{ render_pagination(request, pagination) }} {% endif %} {% endif %} -
          -{% endblock %} +{% endblock %} From 8dc4381032ad754397a1ef5415e664fffee40c37 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 3 Jul 2011 23:04:09 +0200 Subject: [PATCH 0592/2731] Style navigation buttons --- mediagoblin/static/css/base.css | 23 +++++++++++++++++++ .../mediagoblin/utils/prev_next.html | 14 +++++------ 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 997d25c7..74f283a6 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -237,3 +237,26 @@ img.media_icon{ margin:0 4px; vertical-align:sub; } + +/* navigation */ + +.navigation_button{ + width: 139px; + display:block; + float:left; + text-align: center; + background-color: #393939; + text-decoration: none; + padding: 6px 0pt; + font-family: 'Carter One', arial, serif; + font-size:2em; + margin:0; +} + +p.navigation_button{ + color:#272727; +} + +.navigation_left{ + margin-right:2px; +} diff --git a/mediagoblin/templates/mediagoblin/utils/prev_next.html b/mediagoblin/templates/mediagoblin/utils/prev_next.html index e054ed23..8908c298 100644 --- a/mediagoblin/templates/mediagoblin/utils/prev_next.html +++ b/mediagoblin/templates/mediagoblin/utils/prev_next.html @@ -23,23 +23,21 @@
          {# There are no previous entries for the very first media entry #} {% if prev_entry_url %} - - {# TODO - insert 'Previous' and 'X' image sources #} - Previous + + < {% else %} {# This is the first entry. display greyed-out 'previous' image #} - X + {% endif %} {# Likewise, this could be the very last media entry #} {% if next_entry_url %} - - {# TODO - insert 'Next' and 'X' image sources #} - Next + + > {% else %} {# This is the last entry. display greyed-out 'next' image #} - X + {% endif %}
          From 38f71d47925eea76c34cd36a82600add6a7d0c7a Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 3 Jul 2011 23:13:54 +0200 Subject: [PATCH 0593/2731] Tiny margin changes --- mediagoblin/static/css/base.css | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 74f283a6..70b568ba 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -23,12 +23,16 @@ form { /* text styles */ -h1 { +h1{ font-family: 'Carter One', arial, serif; margin-bottom: 20px; margin-top:40px; } +h2{ + margin-top:20px; +} + p { font-family: sans-serif; font-size:16px; @@ -250,7 +254,7 @@ img.media_icon{ padding: 6px 0pt; font-family: 'Carter One', arial, serif; font-size:2em; - margin:0; + margin:0 0 20px } p.navigation_button{ From 62e2f458fbaf9b85a9939fe475338de955c85a87 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 3 Jul 2011 23:32:39 +0200 Subject: [PATCH 0594/2731] Style changes to messages. Tell me if I changed too much... --- mediagoblin/static/css/base.css | 74 +++++++++++++++------------------ 1 file changed, 33 insertions(+), 41 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 70b568ba..b23bc3cb 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -77,47 +77,6 @@ label { padding-bottom:74px; } -ul.mediagoblin_messages { - list-style:none inside; - color:#393932; - margin:2px; - padding:2px; -} - -ul.mediagoblin_messages li { - background-color:#d4d4d4; - border-style:solid; - border-width:3px; - border-color:#959595; - margin:5px; - padding:8px; -} - -ul.mediagoblin_messages li.message_success { - background-color: #88d486; - border-color: #5bba59; -} - -ul.mediagoblin_messages li.message_warning { - background-color: #d4c686; - border-color: #baa959; -} - -ul.mediagoblin_messages li.message_error { - background-color: #d48686; - border-color: #ba5959; -} - -ul.mediagoblin_messages li.message_info { - background-color: #86b9d4; - border-color: #5998ba; -} - -ul.mediagoblin_messages li.message_debug { - background-color: #aa86d4; - border-color: #8659ba; -} - a.mediagoblin_logo { width:34px; height:25px; @@ -264,3 +223,36 @@ p.navigation_button{ .navigation_left{ margin-right:2px; } + +/* messages */ + +ul.mediagoblin_messages { + list-style:none inside; + color:#f7f7f7; +} + +.mediagoblin_messages li { + margin:5px 0; + padding:8px; + text-align:center; +} + +.message_success { + background-color: #378566; +} + +.message_warning { + background-color: #87453b; +} + +.message_error { + background-color: #87453b; +} + +.message_info { + background-color: #378566; + +.message_debug { + background-color: #f7f7f7; + color:#272727; +} From 18ec9ff324d9bf1af33a7e5c11694d4ee0a83df4 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Jul 2011 17:37:41 -0500 Subject: [PATCH 0595/2731] New thumbnail size is apparently 180x135. We don't know if that's permanent but if it isn't it seems "Mostly Harmless" --- mediagoblin/process_media/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py index 0d1abcb3..a65c3ddc 100644 --- a/mediagoblin/process_media/__init__.py +++ b/mediagoblin/process_media/__init__.py @@ -21,7 +21,7 @@ from celery.task import task from mediagoblin import mg_globals as mgg -THUMB_SIZE = 200, 200 +THUMB_SIZE = 180, 135 MEDIUM_SIZE = 640, 640 From 9fedf30b3548ae58f091248c1ad318c16427b4c5 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 3 Jul 2011 17:38:28 -0500 Subject: [PATCH 0596/2731] Fixing the symlinks for these CSS files Not everyone runs mediagoblin out of /home/jef/env/mediagoblin/src/schendjes-mediagoblin/ ;) --- mediagoblin/static/css/contrib/960_16_col.css | 2 +- mediagoblin/static/css/contrib/reset.css | 2 +- mediagoblin/static/css/contrib/text.css | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mediagoblin/static/css/contrib/960_16_col.css b/mediagoblin/static/css/contrib/960_16_col.css index a8e89d29..bc1a430c 120000 --- a/mediagoblin/static/css/contrib/960_16_col.css +++ b/mediagoblin/static/css/contrib/960_16_col.css @@ -1 +1 @@ -/home/jef/env/mediagoblin/src/schendjes-mediagoblin/mediagoblin/contrib/960_16_col.css \ No newline at end of file +../../../contrib/960_16_col.css \ No newline at end of file diff --git a/mediagoblin/static/css/contrib/reset.css b/mediagoblin/static/css/contrib/reset.css index e6796fdc..87ae5592 120000 --- a/mediagoblin/static/css/contrib/reset.css +++ b/mediagoblin/static/css/contrib/reset.css @@ -1 +1 @@ -/home/jef/env/mediagoblin/src/schendjes-mediagoblin/mediagoblin/contrib/reset.css \ No newline at end of file +../../../contrib/reset.css \ No newline at end of file diff --git a/mediagoblin/static/css/contrib/text.css b/mediagoblin/static/css/contrib/text.css index f54ea50c..d75ce48b 120000 --- a/mediagoblin/static/css/contrib/text.css +++ b/mediagoblin/static/css/contrib/text.css @@ -1 +1 @@ -/home/jef/env/mediagoblin/src/schendjes-mediagoblin/mediagoblin/contrib/text.css \ No newline at end of file +../../../contrib/text.css \ No newline at end of file From 0aa58285c39d7f00f460ac391d4e724dcb42c1f3 Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Sun, 3 Jul 2011 23:59:11 -0500 Subject: [PATCH 0597/2731] bug#422_user_can_not_edit_own_profile_unless_admin user != username..... --- mediagoblin/templates/mediagoblin/user_pages/user.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index d23daccd..96b6b9d1 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -27,7 +27,7 @@ {% block mediagoblin_content -%} {% if user %}

          {{ user.username }}'s profile

          - {% if request.user == user.username or request.user['is_admin'] %} + {% if request.user.username == user.username or request.user['is_admin'] %} Edit {% endif %} From 9973c0580fa1b9ce3a75b37d06c645b3f9829fb8 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 4 Jul 2011 08:47:02 -0500 Subject: [PATCH 0598/2731] Check user['_id'] instead of username, which is slightly more guaranteed --- mediagoblin/templates/mediagoblin/user_pages/user.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 96b6b9d1..ba61e52f 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -27,9 +27,9 @@ {% block mediagoblin_content -%} {% if user %}

          {{ user.username }}'s profile

          - {% if request.user.username == user.username or request.user['is_admin'] %} + {% if request.user['_id'] == user['_id'] or request.user['is_admin'] %} Edit + user.username }}">Edit profile {% endif %} {% include "mediagoblin/utils/profile.html" %} From afa760743147724e6af8666fba17dcdf1e5288a8 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 4 Jul 2011 08:47:28 -0500 Subject: [PATCH 0599/2731] Just removing some trailing whitespace --- mediagoblin/templates/mediagoblin/user_pages/user.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index ba61e52f..71978373 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -28,16 +28,16 @@ {% if user %}

          {{ user.username }}'s profile

          {% if request.user['_id'] == user['_id'] or request.user['is_admin'] %} - Edit profile {% endif %} - + {% include "mediagoblin/utils/profile.html" %} {% set pagination_base_url = user_gallery_url %} {% include "mediagoblin/utils/object_gallery.html" %} -

          View all of {{ user.username }}'s media

          +

          View all of {{ user.username }}'s media

          Sorry, no such user found.

          {% endif %} -{% endblock %} +{% endblock %} From ae50c14f0fcce247922af3fa889687dabd466b52 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 4 Jul 2011 08:47:46 -0500 Subject: [PATCH 0600/2731] Removing a tab... hate mixed tabs and spaces :) --- mediagoblin/templates/mediagoblin/user_pages/user.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 71978373..63e66fa5 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -20,7 +20,7 @@ {% block mediagoblin_head %} {% endblock mediagoblin_head %} From a3a17d10683aac3ac503731ecd69b363f81a2d51 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 4 Jul 2011 08:49:52 -0500 Subject: [PATCH 0601/2731] Put link to edit profile slightly after the profile --- mediagoblin/templates/mediagoblin/user_pages/user.html | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 63e66fa5..98394684 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -27,13 +27,14 @@ {% block mediagoblin_content -%} {% if user %}

          {{ user.username }}'s profile

          - {% if request.user['_id'] == user['_id'] or request.user['is_admin'] %} -
          Edit profile - {% endif %} {% include "mediagoblin/utils/profile.html" %} + {% if request.user['_id'] == user['_id'] or request.user['is_admin'] %} + Edit profile + {% endif %} + {% set pagination_base_url = user_gallery_url %} {% include "mediagoblin/utils/object_gallery.html" %} From 51ca54a8356cb6c628a565693702616067af0bda Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 4 Jul 2011 09:04:37 -0500 Subject: [PATCH 0602/2731] Adjusting indentation of object_gallery.html --- .../mediagoblin/utils/object_gallery.html | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/utils/object_gallery.html b/mediagoblin/templates/mediagoblin/utils/object_gallery.html index 96600c33..2c7a7129 100644 --- a/mediagoblin/templates/mediagoblin/utils/object_gallery.html +++ b/mediagoblin/templates/mediagoblin/utils/object_gallery.html @@ -19,19 +19,19 @@ {% from "mediagoblin/utils/pagination.html" import render_pagination %} {% block object_gallery_content -%} - {% if media_entries %} - {% for entry in media_entries %} -
          - - -
          - {% endfor %} - {% if pagination_base_url %} - {# different url, so set that and don't keep the get params #} - {{ render_pagination(request, pagination, pagination_base_url, False) }} - {% else %} - {{ render_pagination(request, pagination) }} - {% endif %} + {% if media_entries %} + {% for entry in media_entries %} +
          + + +
          + {% endfor %} + {% if pagination_base_url %} + {# different url, so set that and don't keep the get params #} + {{ render_pagination(request, pagination, pagination_base_url, False) }} + {% else %} + {{ render_pagination(request, pagination) }} {% endif %} + {% endif %} {% endblock %} From b51c574188af117f557c8e871bd53fdcbd9d7692 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 4 Jul 2011 09:08:57 -0500 Subject: [PATCH 0603/2731] .message_info was missing closing } --- mediagoblin/static/css/base.css | 1 + 1 file changed, 1 insertion(+) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index b23bc3cb..5073c3b4 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -251,6 +251,7 @@ ul.mediagoblin_messages { .message_info { background-color: #378566; +} .message_debug { background-color: #f7f7f7; From 5c72d31d36bad3aee04e2ec46259ba797a352c2b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 4 Jul 2011 09:11:13 -0500 Subject: [PATCH 0604/2731] Put the profile stuff in p's instead of
            's --- mediagoblin/static/css/base.css | 7 +++++ .../templates/mediagoblin/utils/profile.html | 26 +++++++++---------- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 5073c3b4..da04e1c4 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -257,3 +257,10 @@ ul.mediagoblin_messages { background-color: #f7f7f7; color:#272727; } + +/* profile stuff */ + +.profile_content p, .profile_bio { + padding: 6px; + background-color: #393939; +} diff --git a/mediagoblin/templates/mediagoblin/utils/profile.html b/mediagoblin/templates/mediagoblin/utils/profile.html index 21468033..72a285d2 100644 --- a/mediagoblin/templates/mediagoblin/utils/profile.html +++ b/mediagoblin/templates/mediagoblin/utils/profile.html @@ -17,19 +17,17 @@ #} {% block profile_content -%} -
            -
              - {% if user.url %} -
            • - homepage -
            • - {% endif %} - - {% if user.bio %} -
            • - {{ user.bio }} -
            • - {% endif %} -
            +
            + {% if user.url %} +

            + homepage +

            + {% endif %} + + {% if user.bio %} +

            + {{ user.bio }} +

            + {% endif %}
            {% endblock %} From 6178aa0814f8c9f7d6f073c3c0ed2f94e4990500 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 4 Jul 2011 09:41:43 -0500 Subject: [PATCH 0605/2731] Move submit an item to the user page. --- mediagoblin/templates/mediagoblin/user_pages/user.html | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 98394684..7f8a3cec 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -35,6 +35,12 @@ user.username }}">Edit profile {% endif %} + {% if request.user['_id'] == user['_id'] %} +

            + Submit an item +

            + {% endif %} + {% set pagination_base_url = user_gallery_url %} {% include "mediagoblin/utils/object_gallery.html" %} From 24eaf0fd6bd6529ac59bc3963e0013e34c2c01a4 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 4 Jul 2011 09:41:57 -0500 Subject: [PATCH 0606/2731] Not happy with 180x135, switching back to 180x180 --- mediagoblin/process_media/__init__.py | 2 +- mediagoblin/static/css/base.css | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py index a65c3ddc..27f72b65 100644 --- a/mediagoblin/process_media/__init__.py +++ b/mediagoblin/process_media/__init__.py @@ -21,7 +21,7 @@ from celery.task import task from mediagoblin import mg_globals as mgg -THUMB_SIZE = 180, 135 +THUMB_SIZE = 180, 180 MEDIUM_SIZE = 640, 640 diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index da04e1c4..10dbc98b 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -187,7 +187,7 @@ text-align:center; .media_thumbnail { padding:0px; width:180px; - height:135px; + height:180px; overflow:hidden; float:left; margin:0px 10px 10px 0px; From 0dd0a71f5eb631052aaa2d542454fc3ce3ddbd59 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 4 Jul 2011 11:17:51 -0500 Subject: [PATCH 0607/2731] Put some space between the gallery and the rest of the page content --- mediagoblin/templates/mediagoblin/user_pages/user.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 7f8a3cec..aed330c8 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -44,6 +44,8 @@ {% set pagination_base_url = user_gallery_url %} {% include "mediagoblin/utils/object_gallery.html" %} +
            +

            View all of {{ user.username }}'s media

            Date: Mon, 4 Jul 2011 15:40:05 -0500 Subject: [PATCH 0608/2731] Set the jpeg quality at 90 for now... --- mediagoblin/process_media/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py index 27f72b65..da3e887e 100644 --- a/mediagoblin/process_media/__init__.py +++ b/mediagoblin/process_media/__init__.py @@ -54,7 +54,7 @@ def process_media_initial(media_id): thumb_file = mgg.public_store.get_file(thumb_filepath, 'w') with thumb_file: - thumb.save(thumb_file, "JPEG") + thumb.save(thumb_file, "JPEG", quality=90) """ Create medium file, used in `media.html` @@ -69,7 +69,7 @@ def process_media_initial(media_id): medium_file = mgg.public_store.get_file(medium_filepath, 'w') with medium_file: - medium.save(medium_file, "JPEG") + medium.save(medium_file, "JPEG", quality=90) # we have to re-read because unlike PIL, not everything reads # things in string representation :) From c85c9dc712f38af1403572f9367edc692306dc02 Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 4 Jul 2011 23:47:13 +0200 Subject: [PATCH 0609/2731] Move setting up of staticdirector to init submodule This duplicates some exceptions, which will be fixed very soon. --- mediagoblin/app.py | 18 +++--------------- mediagoblin/init/__init__.py | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 9454b403..ab8549cb 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -20,13 +20,13 @@ import urllib import routes from webob import Request, exc -from mediagoblin import routing, util, storage, staticdirect +from mediagoblin import routing, util, storage from mediagoblin.init.config import ( read_mediagoblin_config, generate_validation_report) from mediagoblin.db.open import setup_connection_and_db_from_config from mediagoblin.mg_globals import setup_globals from mediagoblin.init.celery import setup_celery_from_config -from mediagoblin.init import get_jinja_loader +from mediagoblin.init import get_jinja_loader, get_staticdirector from mediagoblin.workbench import WorkbenchManager @@ -85,19 +85,7 @@ class MediaGoblinApp(object): self.routing = routing.get_mapper() # set up staticdirector tool - if app_config.has_key('direct_remote_path'): - self.staticdirector = staticdirect.RemoteStaticDirect( - app_config['direct_remote_path'].strip()) - elif app_config.has_key('direct_remote_paths'): - direct_remote_path_lines = app_config[ - 'direct_remote_paths'].strip().splitlines() - self.staticdirector = staticdirect.MultiRemoteStaticDirect( - dict([line.strip().split(' ', 1) - for line in direct_remote_path_lines])) - else: - raise ImproperlyConfigured( - "One of direct_remote_path or " - "direct_remote_paths must be provided") + self.staticdirector = get_staticdirector(app_config) # Setup celery, if appropriate if setup_celery and not app_config.get('celery_setup_elsewhere'): diff --git a/mediagoblin/init/__init__.py b/mediagoblin/init/__init__.py index b8ed2456..4bf69158 100644 --- a/mediagoblin/init/__init__.py +++ b/mediagoblin/init/__init__.py @@ -15,6 +15,11 @@ # along with this program. If not, see . import jinja2 +from mediagoblin import staticdirect + + +class Error(Exception): pass +class ImproperlyConfigured(Error): pass def get_jinja_loader(user_template_path=None): @@ -31,3 +36,19 @@ def get_jinja_loader(user_template_path=None): jinja2.PackageLoader('mediagoblin', 'templates')]) else: return jinja2.PackageLoader('mediagoblin', 'templates') + + +def get_staticdirector(app_config): + if app_config.has_key('direct_remote_path'): + return staticdirect.RemoteStaticDirect( + app_config['direct_remote_path'].strip()) + elif app_config.has_key('direct_remote_paths'): + direct_remote_path_lines = app_config[ + 'direct_remote_paths'].strip().splitlines() + return staticdirect.MultiRemoteStaticDirect( + dict([line.strip().split(' ', 1) + for line in direct_remote_path_lines])) + else: + raise ImproperlyConfigured( + "One of direct_remote_path or " + "direct_remote_paths must be provided") From 1a837cf7c8d61bb4bc1c7b4629ff2bcbbf255a97 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 4 Jul 2011 16:54:06 -0500 Subject: [PATCH 0610/2731] Don't even show the profile box if no profile exists --- .../templates/mediagoblin/utils/profile.html | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/utils/profile.html b/mediagoblin/templates/mediagoblin/utils/profile.html index 72a285d2..cd60bbfc 100644 --- a/mediagoblin/templates/mediagoblin/utils/profile.html +++ b/mediagoblin/templates/mediagoblin/utils/profile.html @@ -17,17 +17,19 @@ #} {% block profile_content -%} -
            - {% if user.url %} -

            - homepage -

            - {% endif %} + {% if user.url or user.bio %} +
            + {% if user.url %} + + {% endif %} - {% if user.bio %} -

            - {{ user.bio }} -

            - {% endif %} -
            + {% if user.bio %} +
            + {{ user.bio }} +
            + {% endif %} +
            + {% endif %} {% endblock %} From fe289be4c85774b1d48f9db1ef644ee88b672e08 Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 4 Jul 2011 23:57:45 +0200 Subject: [PATCH 0611/2731] Create setup_global_and_app_config Moving the config reading and error reporting from app.py to init/__init__.py. Straight forward. This also fixes the duplicated exceptions. --- mediagoblin/app.py | 17 +++-------------- mediagoblin/init/__init__.py | 13 +++++++++++++ 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index ab8549cb..0ef670d7 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -21,19 +21,14 @@ import routes from webob import Request, exc from mediagoblin import routing, util, storage -from mediagoblin.init.config import ( - read_mediagoblin_config, generate_validation_report) from mediagoblin.db.open import setup_connection_and_db_from_config from mediagoblin.mg_globals import setup_globals from mediagoblin.init.celery import setup_celery_from_config -from mediagoblin.init import get_jinja_loader, get_staticdirector +from mediagoblin.init import get_jinja_loader, get_staticdirector, \ + setup_global_and_app_config from mediagoblin.workbench import WorkbenchManager -class Error(Exception): pass -class ImproperlyConfigured(Error): pass - - class MediaGoblinApp(object): """ WSGI application of MediaGoblin @@ -55,13 +50,7 @@ class MediaGoblinApp(object): ############## # Open and setup the config - global_config, validation_result = read_mediagoblin_config(config_path) - app_config = global_config['mediagoblin'] - # report errors if necessary - validation_report = generate_validation_report( - global_config, validation_result) - if validation_report: - raise ImproperlyConfigured(validation_report) + global_config, app_config = setup_global_and_app_config(config_path) ########################################## # Setup other connections / useful objects diff --git a/mediagoblin/init/__init__.py b/mediagoblin/init/__init__.py index 4bf69158..4a14fdf8 100644 --- a/mediagoblin/init/__init__.py +++ b/mediagoblin/init/__init__.py @@ -16,12 +16,25 @@ import jinja2 from mediagoblin import staticdirect +from mediagoblin.init.config import ( + read_mediagoblin_config, generate_validation_report) class Error(Exception): pass class ImproperlyConfigured(Error): pass +def setup_global_and_app_config(config_path): + global_config, validation_result = read_mediagoblin_config(config_path) + app_config = global_config['mediagoblin'] + # report errors if necessary + validation_report = generate_validation_report( + global_config, validation_result) + if validation_report: + raise ImproperlyConfigured(validation_report) + + return global_config, app_config + def get_jinja_loader(user_template_path=None): """ Set up the Jinja template loaders, possibly allowing for user From 0b6c3ef14a98f567dd1c29004e58833a5418501b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 4 Jul 2011 16:58:07 -0500 Subject: [PATCH 0612/2731] A few media thumbnail changes pre-release - adjust padding so 5 media thumbs can appear per row - lowering the h1 margins - adding a profile content bottom margin --- mediagoblin/static/css/base.css | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 10dbc98b..53e019f6 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -25,8 +25,8 @@ form { h1{ font-family: 'Carter One', arial, serif; - margin-bottom: 20px; - margin-top:40px; + margin-bottom: 15px; + margin-top:15px; } h2{ @@ -190,7 +190,7 @@ text-align:center; height:180px; overflow:hidden; float:left; - margin:0px 10px 10px 0px; + margin:0px 4px 10px 4px; text-align:center; } @@ -260,7 +260,8 @@ ul.mediagoblin_messages { /* profile stuff */ -.profile_content p, .profile_bio { +.profile_content { padding: 6px; background-color: #393939; + margin-bottom: 10px; } From cca5d55d40fe5b4f097e015c72cbd8e6c4c3232a Mon Sep 17 00:00:00 2001 From: Elrond Date: Tue, 5 Jul 2011 00:02:04 +0200 Subject: [PATCH 0613/2731] Let setup_global_and_app_config call setup_globals Let setup_global_and_app_config set the global and app config in the mg_globals already. This way, the config is available to everyone very early. --- mediagoblin/app.py | 3 --- mediagoblin/init/__init__.py | 5 +++++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 0ef670d7..6d6346d2 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -94,9 +94,6 @@ class MediaGoblinApp(object): ####################################################### setup_globals( - app_config=app_config, - global_config=global_config, - # TODO: No need to set these two up as globals, we could # just read them out of mg_globals.app_config email_sender_address=app_config['email_sender_address'], diff --git a/mediagoblin/init/__init__.py b/mediagoblin/init/__init__.py index 4a14fdf8..1c34c599 100644 --- a/mediagoblin/init/__init__.py +++ b/mediagoblin/init/__init__.py @@ -18,6 +18,7 @@ import jinja2 from mediagoblin import staticdirect from mediagoblin.init.config import ( read_mediagoblin_config, generate_validation_report) +from mediagoblin.mg_globals import setup_globals class Error(Exception): pass @@ -33,6 +34,10 @@ def setup_global_and_app_config(config_path): if validation_report: raise ImproperlyConfigured(validation_report) + setup_globals( + app_config=app_config, + global_config=global_config) + return global_config, app_config def get_jinja_loader(user_template_path=None): From 24df76fa1e4ee4902d882b8e75b5db981d27e08f Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 4 Jul 2011 17:08:10 -0500 Subject: [PATCH 0614/2731] This extra
            is maybe a bit too much space... --- mediagoblin/templates/mediagoblin/user_pages/media.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 0383277b..1484cc73 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -48,7 +48,7 @@ user= media.uploader().username) }}"> {{- media.uploader().username }}

            -

            +

            Comments

            {% if request.user %} From cfe46f3e68b62bba0cfb943dc45e9b88c3f7c25e Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Mon, 4 Jul 2011 19:42:45 -0500 Subject: [PATCH 0615/2731] uses the messaging system to notify user of result of verification check Feature #424 - Use messaging system for email verifification check response * uses add_message in verify_email and routes to the user page, bypassing verify_email.html --- mediagoblin/auth/views.py | 15 ++++++---- .../mediagoblin/auth/verify_email.html | 28 ------------------- 2 files changed, 10 insertions(+), 33 deletions(-) delete mode 100644 mediagoblin/templates/mediagoblin/auth/verify_email.html diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 1d00f382..435ad803 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -18,6 +18,7 @@ import uuid from webob import exc +from mediagoblin import messages from mediagoblin.util import render_to_response, redirect from mediagoblin.db.util import ObjectId from mediagoblin.auth import lib as auth_lib @@ -124,16 +125,20 @@ def verify_email(request): if user and user['verification_key'] == unicode(request.GET['token']): user['status'] = u'active' user['email_verified'] = True - verification_successful = True user.save() + messages.add_message(request, + messages.SUCCESS, + 'Your email address has been verified. ' \ + 'You may now login!') else: - verification_successful = False + messages.add_message(request, + messages.ERROR, + 'The verification key or user id is incorrect') return render_to_response( request, - 'mediagoblin/auth/verify_email.html', - {'user': user, - 'verification_successful': verification_successful}) + 'mediagoblin/user_pages/user.html', + {'user': user}) def resend_activation(request): diff --git a/mediagoblin/templates/mediagoblin/auth/verify_email.html b/mediagoblin/templates/mediagoblin/auth/verify_email.html deleted file mode 100644 index b6e6d1f8..00000000 --- a/mediagoblin/templates/mediagoblin/auth/verify_email.html +++ /dev/null @@ -1,28 +0,0 @@ -{# -# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 Free Software Foundation, Inc -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -#} -{% extends "mediagoblin/base.html" %} - -{% block mediagoblin_content %} -

            - {% if verification_successful %} - Your email address has been verified! - {% else %} - The verification key or user id is incorrect - {% endif %} -

            -{% endblock %} From e054ae9b3dfc518a34eb4a7395b177f0e8a31469 Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Mon, 4 Jul 2011 20:04:00 -0500 Subject: [PATCH 0616/2731] allows using messaging instead of verify_email.html to pass tests * re-instated verification_successful flag * modified test_auth to verify nav to user_pages/user.html template --- mediagoblin/auth/views.py | 5 ++++- mediagoblin/tests/test_auth.py | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 435ad803..47707ca5 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -126,11 +126,13 @@ def verify_email(request): user['status'] = u'active' user['email_verified'] = True user.save() + verification_successful = True messages.add_message(request, messages.SUCCESS, 'Your email address has been verified. ' \ 'You may now login!') else: + verification_successful = False messages.add_message(request, messages.ERROR, 'The verification key or user id is incorrect') @@ -138,7 +140,8 @@ def verify_email(request): return render_to_response( request, 'mediagoblin/user_pages/user.html', - {'user': user}) + {'user': user, + 'verification_successful' : verification_successful}) def resend_activation(request): diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py index 3a13cbb1..ad9dd35b 100644 --- a/mediagoblin/tests/test_auth.py +++ b/mediagoblin/tests/test_auth.py @@ -189,7 +189,7 @@ def test_register_views(test_app): "/auth/verify_email/?userid=%s&token=total_bs" % unicode( new_user['_id'])) context = util.TEMPLATE_TEST_CONTEXT[ - 'mediagoblin/auth/verify_email.html'] + 'mediagoblin/user_pages/user.html'] assert context['verification_successful'] == False new_user = mg_globals.database.User.find_one( {'username': 'happygirl'}) @@ -201,7 +201,7 @@ def test_register_views(test_app): util.clear_test_template_context() test_app.get("%s?%s" % (path, get_params)) context = util.TEMPLATE_TEST_CONTEXT[ - 'mediagoblin/auth/verify_email.html'] + 'mediagoblin/user_pages/user.html'] assert context['verification_successful'] == True new_user = mg_globals.database.User.find_one( {'username': 'happygirl'}) From 77b958018b8ef6343394b8f138e52944334a5e1c Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Mon, 4 Jul 2011 20:24:57 -0500 Subject: [PATCH 0617/2731] Feature #423 - gallery and scroll image ordering match --- mediagoblin/db/models.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 8aa35ca9..e764d368 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -147,9 +147,9 @@ class MediaEntry(Document): """ Provide a url to the previous entry from this user, if there is one """ - cursor = self.db.MediaEntry.find({'_id' : {"$lt": self['_id']}, + cursor = self.db.MediaEntry.find({'_id' : {"$gt": self['_id']}, 'uploader': self['uploader']}).sort( - '_id', DESCENDING).limit(1) + '_id', ASCENDING).limit(1) if cursor.count(): return urlgen('mediagoblin.user_pages.media_home', @@ -160,9 +160,9 @@ class MediaEntry(Document): """ Provide a url to the next entry from this user, if there is one """ - cursor = self.db.MediaEntry.find({'_id' : {"$gt": self['_id']}, + cursor = self.db.MediaEntry.find({'_id' : {"$lt": self['_id']}, 'uploader': self['uploader']}).sort( - '_id', ASCENDING).limit(1) + '_id', DESCENDING).limit(1) if cursor.count(): return urlgen('mediagoblin.user_pages.media_home', From 7c6dffe34d2f0eccf6805eba452e219778a3109c Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Tue, 5 Jul 2011 09:23:20 -0400 Subject: [PATCH 0618/2731] Adds tarball generation script This just makes it easier to generate tarballs of master and tarballs of releases. --- maketarball.sh | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100755 maketarball.sh diff --git a/maketarball.sh b/maketarball.sh new file mode 100755 index 00000000..ef34da5b --- /dev/null +++ b/maketarball.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +# usage: maketarball +# maketarball +# +# With no arguments, this creates a source tarball from git master with a +# filename based on today's date. +# +# With a argument, this creates a tarball of the tag. +# +# Examples: +# +# ./maketarball +# ./maketarball v0.0.2 + +NOWDATE=`date "+%Y-%m-%d"` + +if [ -z "$1" ] +then + REVISH=master + PREFIX="$NOWDATE-$REVISH" +else + REVISH=$1 + PREFIX="$REVISH" +fi + +# convert PREFIX to all lowercase. +# nix the v from tag names. +PREFIX=`echo "$PREFIX" | tr '[A-Z]' '[a-z]' | sed s/v//` + +echo "== REVISH $REVISH" +echo "== PREFIX $PREFIX" + +echo "" + +echo "generating archive...." +git archive \ + --format=tar \ + --prefix=mediagoblin-$PREFIX/ \ + $REVISH > mediagoblin-$PREFIX.tar + +echo "compressing...." +gzip mediagoblin-$PREFIX.tar + +echo "archive at mediagoblin-$PREFIX.tar.gz" + +echo "done." \ No newline at end of file From 132773ae083ee137d6667ccdfc858c7a6865be5a Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Tue, 5 Jul 2011 09:26:45 -0400 Subject: [PATCH 0619/2731] Updates version to 0.0.3. --- docs/conf.py | 4 ++-- setup.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 0e75a617..6c64cdda 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -48,9 +48,9 @@ copyright = u'2011, Free Software Foundation, Inc and contributors' # built documents. # # The short X.Y version. -version = '0.0.2' +version = '0.0.3' # The full version, including alpha/beta/rc tags. -release = '0.0.2' +release = '0.0.3' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/setup.py b/setup.py index 2a007f4e..799f00d8 100644 --- a/setup.py +++ b/setup.py @@ -18,7 +18,7 @@ from setuptools import setup, find_packages setup( name = "mediagoblin", - version = "0.0.2", + version = "0.0.3", packages=find_packages(exclude=['ez_setup', 'examples', 'tests']), zip_safe=False, # scripts and dependencies From 5ed4722de8106a512a4faacfedaae7b8eda7260b Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Tue, 5 Jul 2011 09:36:07 -0400 Subject: [PATCH 0620/2731] Makes maketarball more resilient to errors --- maketarball.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/maketarball.sh b/maketarball.sh index ef34da5b..2ee78016 100755 --- a/maketarball.sh +++ b/maketarball.sh @@ -39,6 +39,16 @@ git archive \ --prefix=mediagoblin-$PREFIX/ \ $REVISH > mediagoblin-$PREFIX.tar +if [[ $? -ne 0 ]] +then + echo "git archive command failed. See above text for reason." + if [[ -e mediagoblin-$PREFIX.tar ]] + then + rm mediagoblin-$PREFIX.tar + fi + exit 1; +fi + echo "compressing...." gzip mediagoblin-$PREFIX.tar From ce2ac488263470270dea8619c88de648831b06ec Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Tue, 5 Jul 2011 21:33:02 -0500 Subject: [PATCH 0621/2731] f#435 - avoids linking to unprocessed media in prev and next --- mediagoblin/db/models.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 8aa35ca9..3bd1f61f 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -148,7 +148,8 @@ class MediaEntry(Document): Provide a url to the previous entry from this user, if there is one """ cursor = self.db.MediaEntry.find({'_id' : {"$lt": self['_id']}, - 'uploader': self['uploader']}).sort( + 'uploader': self['uploader'], + 'state': 'processed'}).sort( '_id', DESCENDING).limit(1) if cursor.count(): @@ -161,7 +162,8 @@ class MediaEntry(Document): Provide a url to the next entry from this user, if there is one """ cursor = self.db.MediaEntry.find({'_id' : {"$gt": self['_id']}, - 'uploader': self['uploader']}).sort( + 'uploader': self['uploader'], + 'state': 'processed'}).sort( '_id', ASCENDING).limit(1) if cursor.count(): From b1db2c2e744dc0e5fcd10b53792c6ce306fc7149 Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Tue, 5 Jul 2011 21:40:00 -0500 Subject: [PATCH 0622/2731] slug-style urls in previous and next urls look much better Bug #434 - identifies media by slug instead of _id in prev/next --- mediagoblin/db/models.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 8aa35ca9..c7506dbb 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -154,7 +154,7 @@ class MediaEntry(Document): if cursor.count(): return urlgen('mediagoblin.user_pages.media_home', user=self.uploader()['username'], - media=unicode(cursor[0]['_id'])) + media=unicode(cursor[0]['slug'])) def url_to_next(self, urlgen): """ @@ -167,7 +167,7 @@ class MediaEntry(Document): if cursor.count(): return urlgen('mediagoblin.user_pages.media_home', user=self.uploader()['username'], - media=unicode(cursor[0]['_id'])) + media=unicode(cursor[0]['slug'])) def uploader(self): return self.db.User.find_one({'_id': self['uploader']}) From ad35dd490cc0e82acea852befd25126c0dcb61ad Mon Sep 17 00:00:00 2001 From: Chris Moylan Date: Tue, 5 Jul 2011 21:42:41 -0500 Subject: [PATCH 0623/2731] finished basic submission testing --- mediagoblin/tests/test_submission.py | 112 ++++++++++++++++++--- mediagoblin/tests/test_submission/evil | Bin 0 -> 96284 bytes mediagoblin/tests/test_submission/evil.jpg | Bin 0 -> 96284 bytes mediagoblin/tests/test_submission/evil.png | Bin 0 -> 96284 bytes mediagoblin/tests/test_submission/good.jpg | Bin 0 -> 10059 bytes mediagoblin/tests/test_submission/good.png | Bin 0 -> 50598 bytes 6 files changed, 97 insertions(+), 15 deletions(-) create mode 100755 mediagoblin/tests/test_submission/evil create mode 100755 mediagoblin/tests/test_submission/evil.jpg create mode 100755 mediagoblin/tests/test_submission/evil.png create mode 100644 mediagoblin/tests/test_submission/good.jpg create mode 100644 mediagoblin/tests/test_submission/good.png diff --git a/mediagoblin/tests/test_submission.py b/mediagoblin/tests/test_submission.py index 4489692e..20c187e7 100644 --- a/mediagoblin/tests/test_submission.py +++ b/mediagoblin/tests/test_submission.py @@ -15,6 +15,7 @@ # along with this program. If not, see . import urlparse +from os import getcwd from nose.tools import assert_equal @@ -23,11 +24,12 @@ from mediagoblin.tests.tools import setup_fresh_app, get_test_app from mediagoblin import mg_globals from mediagoblin import util -IMAGE_ROOT = 'mediagoblin/tests/test_submission' +IMAGE_ROOT = getcwd() + '/mediagoblin/tests/test_submission/' GOOD_JPG = 'good.jpg' GOOD_PNG = 'good.png' -EVIL_JPG = '' -EVIL_PNG = '' +EVIL_FILE = 'evil' +EVIL_JPG = 'evil.jpg' +EVIL_PNG = 'evil.png' # TODO: @@ -45,6 +47,8 @@ class TestSubmission: test_user = mg_globals.database.User() test_user['username'] = u'chris' test_user['email'] = u'chris@example.com' + test_user['email_verified'] = True + test_user['status'] = u'active' test_user['pw_hash'] = auth_lib.bcrypt_gen_password_hash('toast') test_user.save() @@ -54,10 +58,25 @@ class TestSubmission: 'password': 'toast'}) def test_missing_fields(self): - # Test missing title - # Test missing description (if it's required) - # Test missing file - pass + # Test blank form + # --------------- + util.clear_test_template_context() + response = self.test_app.post( + '/submit/', {}) + context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] + form = context['submit_form'] + assert form.file.errors == [u'You must provide a file.'] + + # Test blank file + # --------------- + util.clear_test_template_context() + response = self.test_app.post( + '/submit/', { + 'title': 'test title'}) + context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] + form = context['submit_form'] + assert form.file.errors == [u'You must provide a file.'] + def test_normal_uploads(self): # FYI: @@ -67,15 +86,78 @@ class TestSubmission: # read from disk. # Test JPG - # Test PNG - # Test additional supported formats + # -------- + util.clear_test_template_context() + response = self.test_app.post( + '/submit/', { + 'title': 'Normal upload 1' + }, upload_files=[( + 'file', IMAGE_ROOT + GOOD_JPG)]) + + # User should be redirected + response.follow() + assert_equal( + urlparse.urlsplit(response.location)[2], + '/submit/success/') + assert util.TEMPLATE_TEST_CONTEXT.has_key( + 'mediagoblin/submit/success.html') + + # Test PNG + # -------- + util.clear_test_template_context() + response = self.test_app.post( + '/submit/', { + 'title': 'Normal upload 2' + }, upload_files=[( + 'file', IMAGE_ROOT + GOOD_PNG)]) + + response.follow() + assert_equal( + urlparse.urlsplit(response.location)[2], + '/submit/success/') + assert util.TEMPLATE_TEST_CONTEXT.has_key( + 'mediagoblin/submit/success.html') + + # TODO: Test additional supported formats - #resp = self.test_app.get('/') - #print resp - pass def test_malicious_uploads(self): - # Test non-supported file with .jpg extension - # Test non-supported file with .png extension - pass + # Test non-suppoerted file with non-supported extension + # ----------------------------------------------------- + util.clear_test_template_context() + response = self.test_app.post( + '/submit/', { + 'title': 'Malicious Upload 2' + }, upload_files=[( + 'file', IMAGE_ROOT + EVIL_FILE)]) + + context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] + form = context['submit_form'] + assert form.file.errors == ['The file doesn\'t seem to be an image!'] + + # Test non-supported file with .jpg extension + # ------------------------------------------- + util.clear_test_template_context() + response = self.test_app.post( + '/submit/', { + 'title': 'Malicious Upload 2' + }, upload_files=[( + 'file', IMAGE_ROOT + EVIL_JPG)]) + + context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] + form = context['submit_form'] + assert form.file.errors == ['The file doesn\'t seem to be an image!'] + + # Test non-supported file with .png extension + # ------------------------------------------- + util.clear_test_template_context() + response = self.test_app.post( + '/submit/', { + 'title': 'Malicious Upload 3' + }, upload_files=[( + 'file', IMAGE_ROOT + EVIL_PNG)]) + + context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] + form = context['submit_form'] + assert form.file.errors == ['The file doesn\'t seem to be an image!'] diff --git a/mediagoblin/tests/test_submission/evil b/mediagoblin/tests/test_submission/evil new file mode 100755 index 0000000000000000000000000000000000000000..775da66498273a5de4e7b8518f2735fd854c3d89 GIT binary patch literal 96284 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 literal 0 HcmV?d00001 diff --git a/mediagoblin/tests/test_submission/good.png b/mediagoblin/tests/test_submission/good.png new file mode 100644 index 0000000000000000000000000000000000000000..c1eadf9c2cf5461b8078182c59afdd4c2b3e3ab9 GIT binary patch literal 50598 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 Date: Tue, 5 Jul 2011 22:11:56 -0500 Subject: [PATCH 0624/2731] B #429 - form validation allows blank profile url --- mediagoblin/edit/forms.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index 2efdb9e4..d5e7f0a9 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -31,4 +31,5 @@ class EditProfileForm(wtforms.Form): [wtforms.validators.Length(min=0, max=500)]) url = wtforms.TextField( 'Website', - [wtforms.validators.URL(message='Improperly formed URL')]) + [wtforms.validators.Optional(), + wtforms.validators.URL(message='Improperly formed URL')]) From 02542d54e1c0556cee79c9f1d75c5dc64aeb18c8 Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Wed, 6 Jul 2011 17:14:07 -0500 Subject: [PATCH 0625/2731] edit profile submit redirects to user home page --- mediagoblin/edit/views.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 5a7aa4bd..5cfe904e 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -87,7 +87,9 @@ def edit_profile(request): messages.add_message(request, messages.SUCCESS, 'Profile edited!') - return redirect(request, "mediagoblin.edit.profile") + return redirect(request, + 'mediagoblin.user_pages.user_home', + user=user['username']) return render_to_response( request, From 983e11f09ee1c0801b646299b352c35291c5f674 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 6 Jul 2011 22:29:12 -0500 Subject: [PATCH 0626/2731] Instructions for installing MediaGoblin on Fedora --- docs/hackinghowto.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index 08b228f1..914a5135 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -57,6 +57,11 @@ requirements:: sudo apt-get install mongodb git-core python python-dev \ python-lxml +On Fedora:: + + yum install mongodb-server python-paste-deploy python-paste-script \ + git-core python python-devel + .. YouCanHelp:: If you have instructions for other GNU/Linux distributions to set From fe80cb06c499723a4e557c10b993b754f4b60456 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 6 Jul 2011 22:52:08 -0500 Subject: [PATCH 0627/2731] Also encourages editing your profile and submitting images --- mediagoblin/auth/views.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 47707ca5..2450023f 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -127,10 +127,11 @@ def verify_email(request): user['email_verified'] = True user.save() verification_successful = True - messages.add_message(request, - messages.SUCCESS, - 'Your email address has been verified. ' \ - 'You may now login!') + messages.add_message( + request, + messages.SUCCESS, + ('Your email address has been verified. ' + 'You may now login, edit your profile, and submit images!')) else: verification_successful = False messages.add_message(request, From e6fd112d429d1fcc5994ff19c61bd67367a33ce5 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 7 Jul 2011 08:22:12 -0500 Subject: [PATCH 0628/2731] This should actually fix the next and previous buttons now. Sorry I borked the merge! --- mediagoblin/db/models.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 2b7933a4..279cb9f2 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -147,7 +147,7 @@ class MediaEntry(Document): """ Provide a url to the previous entry from this user, if there is one """ - cursor = self.db.MediaEntry.find({'_id' : {"$lt": self['_id']}, + cursor = self.db.MediaEntry.find({'_id' : {"$gt": self['_id']}, 'uploader': self['uploader'], 'state': 'processed'}).sort( '_id', ASCENDING).limit(1) @@ -160,7 +160,7 @@ class MediaEntry(Document): """ Provide a url to the next entry from this user, if there is one """ - cursor = self.db.MediaEntry.find({'_id' : {"$gt": self['_id']}, + cursor = self.db.MediaEntry.find({'_id' : {"$lt": self['_id']}, 'uploader': self['uploader'], 'state': 'processed'}).sort( '_id', DESCENDING).limit(1) From fd9807ffc33c85552e39d5f7d367ba7a32d8cc2e Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Thu, 7 Jul 2011 17:21:02 +0200 Subject: [PATCH 0629/2731] Experimental black-and-white style change --- mediagoblin/static/css/base.css | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 53e019f6..0fc33ed7 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -1,6 +1,6 @@ body { - background-color: #272727; - color: #f7f7f7; + background-color: #1F1F1F; + color: #aaa; font-family: sans-serif; padding:none; margin:0px; @@ -18,7 +18,7 @@ form { font-family: 'Carter One'; font-style: normal; font-weight: normal; - src: local('CarterOne'), url('http://themes.googleusercontent.com/font?kit=VjW2qt1pkqVtO22ObxgEBRsxEYwM7FgeyaSgU71cLG0') format('woff'); + src: local('CarterOne'), url('http://themes.googleusercontent.com/font?kit=FWNn6ITYqL6or7ZTmBxRhq3fkYX5z1QtDUdIWoaaD_k') format('woff'); } /* text styles */ @@ -39,7 +39,7 @@ p { } a { - color: #86D4B1; + color: #fff; } label { @@ -56,7 +56,7 @@ label { .mediagoblin_header { width:100%; height:36px; - background-color:#393939; + background-color:#2F2F2F; padding-top:14px; margin-bottom:40px; } @@ -64,7 +64,7 @@ label { .mediagoblin_footer { width:100%; height:26px; - background-color:#393939; + background-color:#2F2F2F; bottom:0px; padding-top:8px; position:absolute; @@ -160,6 +160,7 @@ text-align:center; .form_field_error { background-color:#87453b; + color:#fff; border:none; font-size:16px; padding:9px; From 4924d6a50cbc80b7a3a721de72fa7879446610d3 Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Thu, 7 Jul 2011 10:45:23 -0500 Subject: [PATCH 0630/2731] bug #404 - corrects querystring variable name in redirect --- mediagoblin/edit/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index a3326b2d..3bcf788b 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -108,7 +108,7 @@ def edit_profile(request): 'Profile edited!') return redirect(request, 'mediagoblin.user_pages.user_home', - username=edit_username) + user=edit_username) return render_to_response( request, From d6ae709c14a628edb2c493654f0c02146503b7d8 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Thu, 7 Jul 2011 17:54:33 +0200 Subject: [PATCH 0631/2731] Additional style changes to navigation; add three navigation images --- mediagoblin/static/css/base.css | 12 ++++++------ mediagoblin/static/images/navigation_end.png | Bin 0 -> 718 bytes mediagoblin/static/images/navigation_left.png | Bin 0 -> 406 bytes mediagoblin/static/images/navigation_right.png | Bin 0 -> 383 bytes .../templates/mediagoblin/utils/prev_next.html | 13 ++++++++----- 5 files changed, 14 insertions(+), 11 deletions(-) create mode 100644 mediagoblin/static/images/navigation_end.png create mode 100644 mediagoblin/static/images/navigation_left.png create mode 100644 mediagoblin/static/images/navigation_right.png diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 0fc33ed7..09f08445 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -205,14 +205,14 @@ img.media_icon{ /* navigation */ .navigation_button{ - width: 139px; + width:139px; display:block; float:left; - text-align: center; - background-color: #393939; - text-decoration: none; - padding: 6px 0pt; - font-family: 'Carter One', arial, serif; + text-align:center; + background-color:#393939; + text-decoration:none; + padding:12px 0pt; + font-family:'Carter One', arial, serif; font-size:2em; margin:0 0 20px } diff --git a/mediagoblin/static/images/navigation_end.png b/mediagoblin/static/images/navigation_end.png new file mode 100644 index 0000000000000000000000000000000000000000..b2f2729698bf8443ce687ab4a6a872726735cc19 GIT binary patch literal 718 zcmV;<0x|uGP)FN`H1O zGH5A6C_;f`MhjtFI9koZg(x`MCTgMJLI_*A5QG#Xgo(6`(Ss6#CE~PdF}wr1w_3aE>Z@J4ZMz>1RO?6Ly*LxY(PX0WZ2--9y^bLKJC#gCY4Tqkcv#Cs*T zt8uJFe>5{6bTjh_4zvhiCL+d)@if*n=>EV7=nP+8L|nxCE%3eg88U43v>aWmJ{8IU>bk7z?)(=Gk%!_I0y#%6|tZsGPrY;F*r%FH<^ zjR literal 0 HcmV?d00001 diff --git a/mediagoblin/static/images/navigation_left.png b/mediagoblin/static/images/navigation_left.png new file mode 100644 index 0000000000000000000000000000000000000000..d1645120322caaa60c8173e8c7dbcc7fc2575397 GIT binary patch literal 406 zcmeAS@N?(olHy`uVBq!ia0vp^YCtT_!3HD+ZvMRsq*#ibJVQ8upoSx*1IXtr@Q5r1 zs=p4xj7}P}D}aKMC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)l3VXUZ zhD5Z!y|z2+Pyj>wM}N(rBRlyYYIRKCDPAHzUGLVy{0A!**S0+~s$4VM_Y`&$HkIw&br^mF2APpwHij;&h9SRZ=GM>}y@EZ1sAXXyzk=IQUQvn)GM zyrCw&T{x8~n?d;j>x*O8*01eq`g9=bfVRQ0|GCR%1aGvt=B%^ x+IqF2`oUp7^;ba=iGOd)A3dZ6bhz#t@wbP>H(mHWF9R5c44$rjF6*2UngBDsrLq73 literal 0 HcmV?d00001 diff --git a/mediagoblin/static/images/navigation_right.png b/mediagoblin/static/images/navigation_right.png new file mode 100644 index 0000000000000000000000000000000000000000..d4caa7b8ba1fa404cefa63a7d216f346a64960f5 GIT binary patch literal 383 zcmeAS@N?(olHy`uVBq!ia0vp^YCtT_!3HD+ZvMRsq*#ibJVQ8upoSx*1IXtr@Q5r1 zs=p4xj7}P}D}aKMC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NC6f7@pN$v ziD-R$Wv|x}2a&di>fIZf%x-a23troHuYK);>kIcLJmT~v-c~ax*lA*l!4%7XMomZC%ulDBJ$kgpSdx_BQgN9+t|GG`o zI6luH_-(tzifb>{^9FU^O@4QHv-q4u{^edjDa!S?S9mU}Ut^eia-)AqQt8Vh auRd|D{C?4*OEDZ2ybPYMelF{r5}E+h>7 - < + Previous image {% else %} {# This is the first entry. display greyed-out 'previous' image #} -

            + {% endif %} - {# Likewise, this could be the very last media entry #} {% if next_entry_url %} - > + Next image {% else %} {# This is the last entry. display greyed-out 'next' image #} - + {% endif %}
            From af2fcba5c4ce16bde1a2267b95803bc2afc9e572 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Thu, 7 Jul 2011 18:04:19 +0200 Subject: [PATCH 0632/2731] Issue #431 - Prevent comment link expiry - Added functionality for comment linking * `media.html` * Changed comment textarea handle from `comment` => `field_comment` * Active comment is hilighted with the CSS class name `comment_active` and also with the hyperlink anchor #comment * Changed media.html so that pagination always uses Route('mediagoblin.user_pages.media_home') as base_url * `user_pages/forms.py` * Renamed MediaComment form field `comment` => `field_comment` * `user_pages/routing.py` * Added route for `/u/joar/m/123..456/c/234..567/`, points to `media_home` * `user_pages/views.py` * `media_home` now checks if the request contains a comment id parameter then acts accordingly with pagination whether to call it with a `jump_to_id` or not. * `media_post_comment` - Updated MediaCommentForm field name `comment` => `field_comment` * `util.py` * `redirect` now supports querystring arguments. - NOT USED (should we keep it? I think so, it might be useful, sometime [don't call me a code hoarder]). * `Pagination.__init__` now accepts one further argument, the `jump_to_id`. It assist the comment linking functionality in finding and returning the proper page for a comment. This feature will work for all kinds of objects. It might not be optimal, but it is well functional :) --- .../mediagoblin/user_pages/media.html | 19 +++++++--- mediagoblin/user_pages/forms.py | 4 +-- mediagoblin/user_pages/routing.py | 3 ++ mediagoblin/user_pages/views.py | 10 ++++-- mediagoblin/util.py | 36 ++++++++++++++++--- 5 files changed, 60 insertions(+), 12 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 1484cc73..477eae61 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -55,7 +55,7 @@ - {{ wtforms_util.render_field_div(comment_form.comment) }} + {{ wtforms_util.render_field_div(comment_form.field_comment) }}
            @@ -65,7 +65,12 @@ {% if comments %} {% for comment in comments %} {% set comment_author = comment.author() %} -
            + {% if pagination.active_id == comment._id %} +
            + + {% else %} + {% endif %}
            diff --git a/mediagoblin/user_pages/forms.py b/mediagoblin/user_pages/forms.py index 9f7d2fbd..b234d739 100644 --- a/mediagoblin/user_pages/forms.py +++ b/mediagoblin/user_pages/forms.py @@ -17,5 +17,5 @@ import wtforms class MediaCommentForm(wtforms.Form): - comment = wtforms.TextAreaField('Comment', - [wtforms.validators.Required()]) \ No newline at end of file + field_comment = wtforms.TextAreaField('Comment', + [wtforms.validators.Required()]) diff --git a/mediagoblin/user_pages/routing.py b/mediagoblin/user_pages/routing.py index 255b6f66..3be0617d 100644 --- a/mediagoblin/user_pages/routing.py +++ b/mediagoblin/user_pages/routing.py @@ -24,6 +24,9 @@ user_routes = [ Route('mediagoblin.user_pages.media_home', '/{user}/m/{media}/', requirements=dict(m_id="[0-9a-fA-F]{24}"), controller="mediagoblin.user_pages.views:media_home"), + Route('mediagoblin.user_pages.media_home.view_comment', + '/{user}/m/{media}/c/{comment}/', + controller="mediagoblin.user_pages.views:media_home"), Route('mediagoblin.edit.edit_media', "/{user}/m/{media}/edit/", controller="mediagoblin.edit.views:edit_media"), Route('mediagoblin.user_pages.atom_feed', '/{user}/atom/', diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 3a8684d3..ca1060a3 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -95,8 +95,14 @@ def media_home(request, media, page, **kwargs): """ 'Homepage' of a MediaEntry() """ + if ObjectId(request.matchdict.get('comment')): + pagination = Pagination( + page, media.get_comments(), MEDIA_COMMENTS_PER_PAGE, + ObjectId(request.matchdict.get('comment'))) + else: + pagination = Pagination( + page, media.get_comments(), MEDIA_COMMENTS_PER_PAGE) - pagination = Pagination(page, media.get_comments(), MEDIA_COMMENTS_PER_PAGE) comments = pagination() comment_form = user_forms.MediaCommentForm(request.POST) @@ -118,7 +124,7 @@ def media_post_comment(request): comment = request.db.MediaComment() comment['media_entry'] = ObjectId(request.matchdict['media']) comment['author'] = request.user['_id'] - comment['content'] = request.POST['comment'] + comment['content'] = request.POST['field_comment'] comment['content_html'] = cleaned_markdown_conversion(comment['content']) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index ab219df0..7b1e4a2a 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -14,6 +14,8 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +from __future__ import division + from email.MIMEText import MIMEText import gettext import pkg_resources @@ -21,7 +23,7 @@ import smtplib import sys import re import urllib -from math import ceil +from math import ceil, floor import copy from babel.localedata import exists @@ -35,6 +37,8 @@ from mediagoblin import mg_globals from mediagoblin import messages from mediagoblin.db.util import ObjectId +from itertools import izip, count + TESTS_ENABLED = False def _activate_testing(): """ @@ -133,7 +137,16 @@ def render_to_response(request, template, context): def redirect(request, *args, **kwargs): """Returns a HTTPFound(), takes a request and then urlgen params""" - return exc.HTTPFound(location=request.urlgen(*args, **kwargs)) + + querystring = None + if kwargs.get('querystring'): + querystring = kwargs.get('querystring') + del kwargs['querystring'] + + return exc.HTTPFound( + location=''.join([ + request.urlgen(*args, **kwargs), + querystring if querystring else ''])) def setup_user_in_request(request): @@ -418,7 +431,8 @@ class Pagination(object): get actual data slice through __call__(). """ - def __init__(self, page, cursor, per_page=PAGINATION_DEFAULT_PER_PAGE): + def __init__(self, page, cursor, per_page=PAGINATION_DEFAULT_PER_PAGE, + jump_to_id=False): """ Initializes Pagination @@ -426,11 +440,25 @@ class Pagination(object): - page: requested page - per_page: number of objects per page - cursor: db cursor + - jump_to_id: ObjectId, sets the page to the page containing the object + with _id == jump_to_id. """ - self.page = page + self.page = page self.per_page = per_page self.cursor = cursor self.total_count = self.cursor.count() + self.active_id = None + + if jump_to_id: + cursor = copy.copy(self.cursor) + + for (doc, increment) in izip(cursor, count(0)): + if doc['_id'] == jump_to_id: + self.page = 1 + int(floor(increment / self.per_page)) + + self.active_id = jump_to_id + break + def __call__(self): """ From 0e1c036c7ae388b10940606dca28f1c638035a45 Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Thu, 7 Jul 2011 11:11:03 -0500 Subject: [PATCH 0633/2731] Bug #437 - adds required validator to slug field for media edit' otherwise we get a 404 because we navigate to blank slug --- mediagoblin/edit/forms.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index d5e7f0a9..0ed52af1 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -23,7 +23,8 @@ class EditForm(wtforms.Form): 'Title', [wtforms.validators.Length(min=0, max=500)]) slug = wtforms.TextField( - 'Slug') + 'Slug', + [wtforms.validators.Required(message="The slug can't be empty")]) description = wtforms.TextAreaField('Description of this work') class EditProfileForm(wtforms.Form): From 0a45fa590395a12dfd529a67a8264aab48099819 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Thu, 7 Jul 2011 20:04:30 +0200 Subject: [PATCH 0634/2731] Change pagination styling; add 2 images --- mediagoblin/static/css/base.css | 4 ++++ mediagoblin/static/images/pagination_left.png | Bin 0 -> 252 bytes mediagoblin/static/images/pagination_right.png | Bin 0 -> 249 bytes .../mediagoblin/utils/pagination.html | 17 +++++++++-------- 4 files changed, 13 insertions(+), 8 deletions(-) create mode 100644 mediagoblin/static/images/pagination_left.png create mode 100644 mediagoblin/static/images/pagination_right.png diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 09f08445..18a60f50 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -122,6 +122,10 @@ a.mediagoblin_logo:hover { text-align:center; } +.pagination_arrow{ + margin:5px; +} + /* forms */ .form_box { diff --git a/mediagoblin/static/images/pagination_left.png b/mediagoblin/static/images/pagination_left.png new file mode 100644 index 0000000000000000000000000000000000000000..56a26596d12e370eae8d853c7dde982fbc72f805 GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^f%RlvAJf4T$n6bEg+wkZczIZ$u9ae r$?5LwlN?)C`uNqVU!NFjJCnh{XJO)^NnUn9M=*H0`njxgN@xNAeOg#b literal 0 HcmV?d00001 diff --git a/mediagoblin/static/images/pagination_right.png b/mediagoblin/static/images/pagination_right.png new file mode 100644 index 0000000000000000000000000000000000000000..84f8abba7d6249ea6780add165e790b5b902753e GIT binary patch literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^fV#>Z0u|to=`a{&CVg6Wuq&Q*n_Wq|E zcduZ1wK^f-{T>~DHKucFU7-)oO5@Zq&7k7D0)fPIG9)oh-u#cA0>%%0~AnAb;7 nQgNs}?)Pt>U(Sh__CFb$4ALKbi#=!$bOD2>tDnm{r-UW|u4-1f literal 0 HcmV?d00001 diff --git a/mediagoblin/templates/mediagoblin/utils/pagination.html b/mediagoblin/templates/mediagoblin/utils/pagination.html index aae50d22..23d49463 100644 --- a/mediagoblin/templates/mediagoblin/utils/pagination.html +++ b/mediagoblin/templates/mediagoblin/utils/pagination.html @@ -34,9 +34,16 @@ {% if pagination.has_prev %} « Prev + pagination.page - 1) }}">Previous pageNewer {% endif %} - + {% if pagination.has_next %} + OlderNext page + + {% endif %} +
            + Go to page: {%- for page in pagination.iter_pages() %} {% if page %} {% if page != pagination.page %} @@ -50,12 +57,6 @@ {% endif %} {%- endfor %} - - {% if pagination.has_next %} - Next » - {% endif %}

            {% endif %} From 7664b4db81f1449b37c774cecb4fba4a505ae5d0 Mon Sep 17 00:00:00 2001 From: Elrond Date: Thu, 7 Jul 2011 22:08:20 +0200 Subject: [PATCH 0635/2731] Factor setup_workbench into init submodule. --- mediagoblin/app.py | 7 +++---- mediagoblin/edit/forms.py | 3 ++- mediagoblin/init/__init__.py | 10 ++++++++++ 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 6d6346d2..c5fcc1dd 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -25,8 +25,7 @@ from mediagoblin.db.open import setup_connection_and_db_from_config from mediagoblin.mg_globals import setup_globals from mediagoblin.init.celery import setup_celery_from_config from mediagoblin.init import get_jinja_loader, get_staticdirector, \ - setup_global_and_app_config -from mediagoblin.workbench import WorkbenchManager + setup_global_and_app_config, setup_workbench class MediaGoblinApp(object): @@ -104,8 +103,8 @@ class MediaGoblinApp(object): db_connection=self.connection, database=self.db, public_store=self.public_store, - queue_store=self.queue_store, - workbench_manager=WorkbenchManager(app_config['workbench_path'])) + queue_store=self.queue_store) + setup_workbench() def __call__(self, environ, start_response): request = Request(environ) diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index 2efdb9e4..d5e7f0a9 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -31,4 +31,5 @@ class EditProfileForm(wtforms.Form): [wtforms.validators.Length(min=0, max=500)]) url = wtforms.TextField( 'Website', - [wtforms.validators.URL(message='Improperly formed URL')]) + [wtforms.validators.Optional(), + wtforms.validators.URL(message='Improperly formed URL')]) diff --git a/mediagoblin/init/__init__.py b/mediagoblin/init/__init__.py index 1c34c599..6320d21b 100644 --- a/mediagoblin/init/__init__.py +++ b/mediagoblin/init/__init__.py @@ -18,7 +18,9 @@ import jinja2 from mediagoblin import staticdirect from mediagoblin.init.config import ( read_mediagoblin_config, generate_validation_report) +from mediagoblin import mg_globals from mediagoblin.mg_globals import setup_globals +from mediagoblin.workbench import WorkbenchManager class Error(Exception): pass @@ -70,3 +72,11 @@ def get_staticdirector(app_config): raise ImproperlyConfigured( "One of direct_remote_path or " "direct_remote_paths must be provided") + + +def setup_workbench(): + app_config = mg_globals.app_config + + workbench_manager = WorkbenchManager(app_config['workbench_path']) + + setup_globals(workbench_manager = workbench_manager) From f646f5d36df0730a8c34019dfcc37cca31cc6bb6 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Thu, 7 Jul 2011 22:45:51 +0200 Subject: [PATCH 0636/2731] Updated `MediaCommentForm.field_comment` => `MediaCommentForm.comment_content` * Also changed file encoding of `user_pages/forms.py` from dos to unix. --- .../mediagoblin/user_pages/media.html | 2 +- mediagoblin/user_pages/forms.py | 43 ++++++++++--------- mediagoblin/user_pages/views.py | 2 +- 3 files changed, 24 insertions(+), 23 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 477eae61..3f4dce3b 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -55,7 +55,7 @@ - {{ wtforms_util.render_field_div(comment_form.field_comment) }} + {{ wtforms_util.render_field_div(comment_form.comment_content) }}
            diff --git a/mediagoblin/user_pages/forms.py b/mediagoblin/user_pages/forms.py index b234d739..8829b674 100644 --- a/mediagoblin/user_pages/forms.py +++ b/mediagoblin/user_pages/forms.py @@ -1,21 +1,22 @@ -# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 Free Software Foundation, Inc -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . - -import wtforms - -class MediaCommentForm(wtforms.Form): - field_comment = wtforms.TextAreaField('Comment', - [wtforms.validators.Required()]) +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import wtforms + +class MediaCommentForm(wtforms.Form): + comment_content = wtforms.TextAreaField( + 'Comment', + [wtforms.validators.Required()]) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index ca1060a3..a3172ebd 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -124,7 +124,7 @@ def media_post_comment(request): comment = request.db.MediaComment() comment['media_entry'] = ObjectId(request.matchdict['media']) comment['author'] = request.user['_id'] - comment['content'] = request.POST['field_comment'] + comment['content'] = request.POST['comment_content'] comment['content_html'] = cleaned_markdown_conversion(comment['content']) From 04a95150646247abd13992b5c103a6d780d8861b Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Fri, 8 Jul 2011 01:59:44 -0500 Subject: [PATCH 0637/2731] F360(tagging) - adds tag fields for submission, edit and display --- mediagoblin/edit/forms.py | 2 ++ mediagoblin/edit/views.py | 5 ++++- mediagoblin/submit/forms.py | 1 + mediagoblin/submit/views.py | 2 ++ mediagoblin/templates/mediagoblin/submit/start.html | 1 + mediagoblin/templates/mediagoblin/user_pages/media.html | 4 ++++ 6 files changed, 14 insertions(+), 1 deletion(-) diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index d5e7f0a9..b2d575cb 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -25,6 +25,8 @@ class EditForm(wtforms.Form): slug = wtforms.TextField( 'Slug') description = wtforms.TextAreaField('Description of this work') + tags = wtforms.TextField( + 'Tags') class EditProfileForm(wtforms.Form): bio = wtforms.TextAreaField('Bio', diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index a3326b2d..96cb4be3 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -16,6 +16,7 @@ from webob import exc +from string import split from mediagoblin import messages from mediagoblin.util import render_to_response, redirect, clean_html @@ -35,7 +36,8 @@ def edit_media(request, media): form = forms.EditForm(request.POST, title = media['title'], slug = media['slug'], - description = media['description']) + description = media['description'], + tags = ' '.join(media['tags'])) if request.method == 'POST' and form.validate(): # Make sure there isn't already a MediaEntry with such a slug @@ -59,6 +61,7 @@ def edit_media(request, media): media['description'])) media['slug'] = request.POST['slug'] + media['tags'] = split(request.POST['tags']) media.save() return redirect(request, "mediagoblin.user_pages.media_home", diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py index 3fd9ea49..0e0fd086 100644 --- a/mediagoblin/submit/forms.py +++ b/mediagoblin/submit/forms.py @@ -24,3 +24,4 @@ class SubmitStartForm(wtforms.Form): [wtforms.validators.Length(min=0, max=500)]) description = wtforms.TextAreaField('Description of this work') file = wtforms.FileField('File') + tags = wtforms.TextField('Tags') diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 4c7476b0..cdd58786 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -16,6 +16,7 @@ from os.path import splitext from cgi import FieldStorage +from string import split from werkzeug.utils import secure_filename @@ -58,6 +59,7 @@ def submit_start(request): entry['media_type'] = u'image' # heh entry['uploader'] = request.user['_id'] + entry['tags'] = split(request.POST.get('tags')) # Save, just so we can get the entry id for the sake of using # it to generate the file path diff --git a/mediagoblin/templates/mediagoblin/submit/start.html b/mediagoblin/templates/mediagoblin/submit/start.html index 50c86afe..7bacb552 100644 --- a/mediagoblin/templates/mediagoblin/submit/start.html +++ b/mediagoblin/templates/mediagoblin/submit/start.html @@ -25,6 +25,7 @@

            Submit yer media

            {{ wtforms_util.render_field_div(submit_form.file) }} + {{ wtforms_util.render_field_div(submit_form.tags) }} {{ wtforms_util.render_field_div(submit_form.title) }} {{ wtforms_util.render_textarea_div(submit_form.description) }}
            diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 1484cc73..1c263880 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -48,6 +48,10 @@ user= media.uploader().username) }}"> {{- media.uploader().username }}

            + +

            + {{ ' '.join(media.tags) }} +


            Comments

            From 7fb39157e0e4e5610dc8cfaf6c91278688d2d977 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 8 Jul 2011 15:14:27 +0200 Subject: [PATCH 0638/2731] Remove p style; not need yet --- mediagoblin/static/css/base.css | 5 ----- 1 file changed, 5 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 18a60f50..02fa3469 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -33,11 +33,6 @@ h2{ margin-top:20px; } -p { - font-family: sans-serif; - font-size:16px; -} - a { color: #fff; } From cdc8cb285dc4aec215cac763d423c6c7e12d0926 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 8 Jul 2011 15:22:15 +0200 Subject: [PATCH 0639/2731] Added sidebar to profile page; moved some content --- mediagoblin/static/css/base.css | 8 ------ .../mediagoblin/user_pages/user.html | 5 ++++ .../templates/mediagoblin/utils/profile.html | 25 ++++++++----------- 3 files changed, 15 insertions(+), 23 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 02fa3469..9dc6444b 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -257,11 +257,3 @@ ul.mediagoblin_messages { background-color: #f7f7f7; color:#272727; } - -/* profile stuff */ - -.profile_content { - padding: 6px; - background-color: #393939; - margin-bottom: 10px; -} diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index aed330c8..97a882c6 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -28,6 +28,7 @@ {% if user %}

            {{ user.username }}'s profile

            +
            {% include "mediagoblin/utils/profile.html" %} {% if request.user['_id'] == user['_id'] or request.user['is_admin'] %} @@ -40,6 +41,8 @@ Submit an item

            {% endif %} +
            +
            {% set pagination_base_url = user_gallery_url %} {% include "mediagoblin/utils/object_gallery.html" %} @@ -55,4 +58,6 @@ {# This *should* not occur as the view makes sure we pass in a user. #}

            Sorry, no such user found.

            {% endif %} + +

            {% endblock %} diff --git a/mediagoblin/templates/mediagoblin/utils/profile.html b/mediagoblin/templates/mediagoblin/utils/profile.html index cd60bbfc..f44defa5 100644 --- a/mediagoblin/templates/mediagoblin/utils/profile.html +++ b/mediagoblin/templates/mediagoblin/utils/profile.html @@ -17,19 +17,14 @@ #} {% block profile_content -%} - {% if user.url or user.bio %} -
            - {% if user.url %} - - {% endif %} - - {% if user.bio %} -
            - {{ user.bio }} -
            - {% endif %} -
            + {% if user.bio %} +

            + {{ user.bio }} +

            {% endif %} -{% endblock %} + {% if user.url %} +

            + {{ user.url }} +

            + {% endif %} +{% endblock %} From 681e137194ec68632e0feb54955f2e23c0c7ed71 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 8 Jul 2011 15:53:45 +0200 Subject: [PATCH 0640/2731] Moved Submit button to header, styled button --- mediagoblin/static/css/base.css | 17 +++++++ mediagoblin/templates/mediagoblin/base.html | 6 ++- .../mediagoblin/user_pages/user.html | 51 +++++++------------ 3 files changed, 41 insertions(+), 33 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 9dc6444b..1cc26cad 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -56,6 +56,23 @@ label { margin-bottom:40px; } +.header_submit{ + background-color:#aaa; + background-image: -webkit-gradient(linear, left top, left bottom, from(##D2D2D2), to(#aaa)); + background-image: -webkit-linear-gradient(top, #D2D2D2, #aaa); + background-image: -moz-linear-gradient(top, #D2D2D2, #aaa); + background-image: -ms-linear-gradient(top, #D2D2D2, #aaa); + background-image: -o-linear-gradient(top, #D2D2D2, #aaa); + background-image: linear-gradient(top, #D2D2D2, #aaa); + box-shadow:0px 0px 4px #000; + color:#272727; + border-radius:5px 5px 5px 5px; + padding:5px 8px; + text-decoration:none; + border:medium none; + font-family:'Carter One',arial,serif; +} + .mediagoblin_footer { width:100%; height:26px; diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index b71fca24..d6890ac0 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -39,7 +39,11 @@
            {% block mediagoblin_logo %} - {% endblock %}{% block mediagoblin_header_title %}{% endblock %} + {% endblock %} + {% if request.user %} + Submit media + {% endif %} + {% block mediagoblin_header_title %}{% endblock %}
            {% if request.user %} - {% include "mediagoblin/utils/profile.html" %} - - {% if request.user['_id'] == user['_id'] or request.user['is_admin'] %} - Edit profile - {% endif %} - - {% if request.user['_id'] == user['_id'] %} -

            - Submit an item -

            - {% endif %} +

            {{ user.username }}'s profile

            +
            + {% include "mediagoblin/utils/profile.html" %} + {% if request.user['_id'] == user['_id'] or request.user['is_admin'] %} + Edit profile + {% endif %} +
            +
            + {% set pagination_base_url = user_gallery_url %} + {% include "mediagoblin/utils/object_gallery.html" %} +
            +

            View all of {{ user.username }}'s media

            + atom feed + {% else %} + {# This *should* not occur as the view makes sure we pass in a user. #} +

            Sorry, no such user found.

            -
            - - {% set pagination_base_url = user_gallery_url %} - {% include "mediagoblin/utils/object_gallery.html" %} - -
            - -

            View all of {{ user.username }}'s media

            - - atom feed - {% else %} - {# This *should* not occur as the view makes sure we pass in a user. #} -

            Sorry, no such user found.

            {% endif %} - -

            {% endblock %} From 8d74ec4dde8b7afca11f3e8fad3d775849f5b06a Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 8 Jul 2011 16:01:07 +0200 Subject: [PATCH 0641/2731] Fix logo styling, positioning --- mediagoblin/static/css/base.css | 18 +++--------------- mediagoblin/static/images/icon.png | Bin 1670 -> 0 bytes mediagoblin/static/images/logo.png | Bin 0 -> 839 bytes mediagoblin/templates/mediagoblin/base.html | 2 +- 4 files changed, 4 insertions(+), 16 deletions(-) delete mode 100644 mediagoblin/static/images/icon.png create mode 100644 mediagoblin/static/images/logo.png diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 1cc26cad..10f9e223 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -57,6 +57,7 @@ label { } .header_submit{ + color:#272727; background-color:#aaa; background-image: -webkit-gradient(linear, left top, left bottom, from(##D2D2D2), to(#aaa)); background-image: -webkit-linear-gradient(top, #D2D2D2, #aaa); @@ -65,9 +66,9 @@ label { background-image: -o-linear-gradient(top, #D2D2D2, #aaa); background-image: linear-gradient(top, #D2D2D2, #aaa); box-shadow:0px 0px 4px #000; - color:#272727; border-radius:5px 5px 5px 5px; - padding:5px 8px; + margin:8px; + padding:3px 8px; text-decoration:none; border:medium none; font-family:'Carter One',arial,serif; @@ -89,19 +90,6 @@ label { padding-bottom:74px; } -a.mediagoblin_logo { - width:34px; - height:25px; - margin-right:10px; - background-image:url('../images/icon.png'); - background-position:0px 0px; - display:inline-block; -} - -a.mediagoblin_logo:hover { - background-position:0px -28px; -} - .mediagoblin_header_right { float:right; } diff --git a/mediagoblin/static/images/icon.png b/mediagoblin/static/images/icon.png deleted file mode 100644 index 4f4f3e9c3c1b43c0f4149e031b69e34b2e9ce95b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1670 zcmV;126_33P)#|Q!@^B~073qN zAPA6(K!8+9;UXVJ3L{7*qzHsShJ!%=fm;;@oB#q+xijJ}F=7~rn;?co(jq09JDi=} zop(~q>~cxYK2r7j{q2kHdITNd zYTJOBZF*zJu4aq+e!nsXgF)+QG}xRbnb?VZcFOwQJkOWYG+mxdCJXMqU}g(dRV}#t z0?_GpyYB#`X}S`-ely$Z00yi?Cj76hzbwmNNO~K{k|ZI7fO~zol4dsbiM|66LRc}g zRw7kZZTa5b-U^VkO$Z@;-qtVaRp2Zh`($dkdo(iLecQ7vTZ>IFv(3oR?K6-#L zHmTd~ZhHvf)(H!3Juf1XV*3n%!X>r(2h@osGISF8dF;#)iS4rs;AR#Ls}RB$5rSuW zNzOlrnZ&&sm=p`;>&kas$rK~+_Q(P%VST3X71QDnWFZJm;8 zB0wyBTm1vr%d+fPHP`F)5}?1ozkef1lEtd3t|duwt0}r(CKA5069JYY8!i+@alffa zQ=liQZ)S@?A6RVK)b0Yf`z*VjrN)u;WJ=^(WX_72{ptw&Qx`rjrYGXWPvlY%LYNU* zevw3g|3ZB==PkEJO)Fde9ZG4%xrNy9($Um z6)=`GmNX6_Osc9HUA=mBy2+Sx)~RQOU7&jZT5ysKyb$hx`Y_vttiM0(mhM^NmIX_? zXdK-uOuR5j-2LR;8%&ZvWAqG5g;G!|S!%8n&2mX+QrIyqpDekY>z+~Um~6$b}^nBmJ8(= zIascs+)*y`9Fz-{$by?yGTlRMFF)!Zojjg5`!+|S$K z?#J)lYaeN}udwLVj2XUn=k<+U0A9N&g&AUXYps2;=+}VJo%M#qSH%5KA7+SN+nCX4 zUsLo%S_Rfcus1HEYC&kTxtjKn{Lw?5*Q}X5eQnvyw$Fh#o8IduWWg=} z&$qMH=~^v_UCmj;{Xpr3sg=)k1z}ePiUI@~Ag^MEhD?f*gXxOzBxXhtxHz`w2B`)vkR7XVSj1 zF#jN@XkSA7Ye3RDM&wT)Jm?YmD0l4l@&oOwQ?xI#sE=HERvaUe_q#78hr@6LHUJHT z<%R|r`-nYH^xFFS7{?yu z@Q&@#X-p-jxEaYJt^Uz${OI@Zzu$SZ%;F#Z@z=gAEPCqwgs@o2`i>TnmW1DyX$|S7 znZ44M&kjz+>{@HaGj84e*I)jQks!ISuAx5IBB+1mCRwe|n$NHy5CEGMn+6C|V@Hze z!HJ-D?JIhq?@kx6*-Fn>epquNPF#dv3Zw%O9u411f$I~fqb8@;BSwAU<5@E%Xr^gv zJu6B%B~od4DKs>rRHJ7dKd_xrvH}Z*f{lTZn-%gM)2RW_Hxe%Yy Q$p8QV07*qoM6N<$f&>RAdH?_b diff --git a/mediagoblin/static/images/logo.png b/mediagoblin/static/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..cf28a6d4118a823c937235335ac6e03cee5f1df3 GIT binary patch literal 839 zcmV-N1GxN&P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01egv01egwkZ*aM00007bV*G`2ipe- z4L30gxPk5f00PHJL_t(Y$HiB{Zqq;zeKWReJ5ETOmKIcT=Ti`0z?mb0FG1>sKj=^N zAGmVkhCnDuNkd5-+i`Xu2kah!e7>0kFg@a8-YwevJF-ejPABYM* zfQ};~eXVp?Y6ew)|5>Kf=|RJGziu+FhovS(&Oj)G!Q>8%nqD*m|}lHO4FYsWZP(G*oNtNmJ{6 zC?F(VesTbrlI%4^#8tW{TLKxa0CD-b0ss{eXIWWmFC754`jcFJ5fM3T1VZwlfkc~t z>^1#njnqF@ZjYLP_^NvBs_!riZvn}&?ATR?m6QNx045|q-__nlcly2iRN3@`0Q)zJ0SRlduJ0O&d#wz4eyP|c(PfS6<=B5eQ(fOfTNJ*s%M?5^9)I3&k4 zkVlSZdLr_64gG^pXLUrhAtL`pthGxZ`#T<-ztpL@@3=LuR@8U%p>P?9W3me$&ZF=pQBbZRH%edp9|
            {% block mediagoblin_logo %} - + {% endblock %} {% if request.user %} Submit media From aa84bdd09ee15c6313e1f918c254174d0ed29d40 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 8 Jul 2011 16:03:17 +0200 Subject: [PATCH 0642/2731] Tiny padding fix for forms/h1 --- mediagoblin/static/css/base.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 10f9e223..2bc9ef6b 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -134,7 +134,7 @@ text-align:center; background-repeat:repeat-x; font-size:18px; padding-bottom:30px; - padding-top:1px; + padding-top:30px; margin-left:auto; margin-right:auto; display:block; From 77e63c8f2ebdc1ab61c1e514a489dd392383f22b Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 8 Jul 2011 16:05:20 +0200 Subject: [PATCH 0643/2731] Tiny height fix to footer --- mediagoblin/static/css/base.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 2bc9ef6b..31b8ebc2 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -76,7 +76,7 @@ label { .mediagoblin_footer { width:100%; - height:26px; + height:30px; background-color:#2F2F2F; bottom:0px; padding-top:8px; From eedc5428fd4fa775405084c74baa186d9c41efda Mon Sep 17 00:00:00 2001 From: Rasmus Larsson Date: Sat, 9 Jul 2011 02:47:06 +0200 Subject: [PATCH 0644/2731] Removed route, view and template file for "Submit Success" page --- mediagoblin/submit/routing.py | 5 +---- mediagoblin/submit/views.py | 5 ----- .../templates/mediagoblin/submit/success.html | 22 ------------------- 3 files changed, 1 insertion(+), 31 deletions(-) delete mode 100644 mediagoblin/templates/mediagoblin/submit/success.html diff --git a/mediagoblin/submit/routing.py b/mediagoblin/submit/routing.py index 3edbab70..5585ecb0 100644 --- a/mediagoblin/submit/routing.py +++ b/mediagoblin/submit/routing.py @@ -18,7 +18,4 @@ from routes.route import Route submit_routes = [ Route('mediagoblin.submit.start', '/', - controller='mediagoblin.submit.views:submit_start'), - Route('mediagoblin.submit.success', '/success/', - template='mediagoblin/submit/success.html', - controller='mediagoblin.views:simple_template_render')] + controller='mediagoblin.submit.views:submit_start')] diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 4c7476b0..1848f5e5 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -95,8 +95,3 @@ def submit_start(request): request, 'mediagoblin/submit/start.html', {'submit_form': submit_form}) - - -def submit_success(request): - return render_to_response( - request, 'mediagoblin/submit/success.html', {}) diff --git a/mediagoblin/templates/mediagoblin/submit/success.html b/mediagoblin/templates/mediagoblin/submit/success.html deleted file mode 100644 index afc9f9d1..00000000 --- a/mediagoblin/templates/mediagoblin/submit/success.html +++ /dev/null @@ -1,22 +0,0 @@ -{# -# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 Free Software Foundation, Inc -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -#} -{% extends "mediagoblin/base.html" %} - -{% block mediagoblin_content %} - Woohoo! Submitted! -{% endblock %} From 13677ef97a24fea19fe8df1cce4812c18623d88f Mon Sep 17 00:00:00 2001 From: Rasmus Larsson Date: Sat, 9 Jul 2011 15:12:00 +0200 Subject: [PATCH 0645/2731] Added configuration variable to toggle registrations, if disabled the registration page redirects to index and no link to register is shown --- mediagoblin.ini | 3 +++ mediagoblin/auth/views.py | 6 ++++++ mediagoblin/config_spec.ini | 5 ++++- mediagoblin/templates/mediagoblin/root.html | 2 ++ mediagoblin/views.py | 4 +++- 5 files changed, 18 insertions(+), 2 deletions(-) diff --git a/mediagoblin.ini b/mediagoblin.ini index 596107dc..e889646a 100644 --- a/mediagoblin.ini +++ b/mediagoblin.ini @@ -8,6 +8,9 @@ email_sender_address = "notice@mediagoblin.example.org" # set to false to enable sending notices email_debug_mode = true +# Set to false to disable registrations +allow_registration = true + ## Uncomment this to put some user-overriding templates here #local_templates = %(here)s/user_dev/templates/ diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 2450023f..a6ae1407 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -19,6 +19,7 @@ import uuid from webob import exc from mediagoblin import messages +from mediagoblin import mg_globals from mediagoblin.util import render_to_response, redirect from mediagoblin.db.util import ObjectId from mediagoblin.auth import lib as auth_lib @@ -30,6 +31,11 @@ def register(request): """ Your classic registration view! """ + + # Redirects to indexpage if registrations are disabled + if not mg_globals.app_config["allow_registration"]: + return redirect(request, "index") + register_form = auth_forms.RegistrationForm(request.POST) if request.method == 'POST' and register_form.validate(): diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini index aadf5c21..b6356b0e 100644 --- a/mediagoblin/config_spec.ini +++ b/mediagoblin/config_spec.ini @@ -21,6 +21,9 @@ direct_remote_path = string(default="/mgoblin_static/") email_debug_mode = boolean(default=True) email_sender_address = string(default="notice@mediagoblin.example.org") +# Set to false to disable registrations +allow_registration = boolean(default=True) + # By default not set, but you might want something like: # "%(here)s/user_dev/templates/" local_templates = string() @@ -73,4 +76,4 @@ celeryd_eta_scheduler_precision = float() # known lists celery_routes = string_list() -celery_imports = string_list() \ No newline at end of file +celery_imports = string_list() diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index 5b744999..ad9aabcb 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -29,10 +29,12 @@ If you have an account, you can Login.

            + {% if allow_registration %}

            If you don't have an account, please Register.

            + {% endif %} {% endif %} {# temporarily, an "image gallery" that isn't one really ;) #} diff --git a/mediagoblin/views.py b/mediagoblin/views.py index 5b6d9773..6145484b 100644 --- a/mediagoblin/views.py +++ b/mediagoblin/views.py @@ -14,6 +14,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +from mediagoblin import mg_globals from mediagoblin.util import render_to_response from mediagoblin.db.util import DESCENDING @@ -23,7 +24,8 @@ def root_view(request): return render_to_response( request, 'mediagoblin/root.html', - {'media_entries': media_entries}) + {'media_entries': media_entries, + 'allow_registration': mg_globals.app_config["allow_registration"]}) def simple_template_render(request): From 13bb1d676e3363605d87acd34bdb6b701ec467dd Mon Sep 17 00:00:00 2001 From: Rasmus Larsson Date: Sat, 9 Jul 2011 15:19:55 +0200 Subject: [PATCH 0646/2731] Updated the loginpage to not show a link to register if registrations are disabled --- mediagoblin/auth/views.py | 3 ++- mediagoblin/templates/mediagoblin/auth/login.html | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index a6ae1407..01bfc066 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -104,7 +104,8 @@ def login(request): 'mediagoblin/auth/login.html', {'login_form': login_form, 'next': request.GET.get('next') or request.POST.get('next'), - 'login_failed': login_failed}) + 'login_failed': login_failed, + 'allow_registration': mg_globals.app_config["allow_registration"]}) def logout(request): diff --git a/mediagoblin/templates/mediagoblin/auth/login.html b/mediagoblin/templates/mediagoblin/auth/login.html index 2303ce5c..ebf5200a 100644 --- a/mediagoblin/templates/mediagoblin/auth/login.html +++ b/mediagoblin/templates/mediagoblin/auth/login.html @@ -35,7 +35,9 @@ {% endif %} + {% if allow_registration %}

            Don't have an account yet?
            Create one here!

            + {% endif %}
            {% endblock %} From 5647d641a27b1ebd9f9de4c8b6c452d80be0f4a2 Mon Sep 17 00:00:00 2001 From: Rasmus Larsson Date: Sat, 9 Jul 2011 15:52:30 +0200 Subject: [PATCH 0647/2731] Updated spacings in code for better readability --- mediagoblin/templates/mediagoblin/auth/login.html | 2 +- mediagoblin/templates/mediagoblin/root.html | 8 ++++---- mediagoblin/views.py | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/auth/login.html b/mediagoblin/templates/mediagoblin/auth/login.html index ebf5200a..e25783ea 100644 --- a/mediagoblin/templates/mediagoblin/auth/login.html +++ b/mediagoblin/templates/mediagoblin/auth/login.html @@ -36,7 +36,7 @@ style="display: none;"/> {% endif %} {% if allow_registration %} -

            Don't have an account yet?
            Create one here!

            +

            Don't have an account yet?
            Create one here!

            {% endif %}
            diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index ad9aabcb..bae033c4 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -30,10 +30,10 @@ Login.

            {% if allow_registration %} -

            - If you don't have an account, please - Register. -

            +

            + If you don't have an account, please + Register. +

            {% endif %} {% endif %} diff --git a/mediagoblin/views.py b/mediagoblin/views.py index 6145484b..e7d9dbdd 100644 --- a/mediagoblin/views.py +++ b/mediagoblin/views.py @@ -25,7 +25,7 @@ def root_view(request): return render_to_response( request, 'mediagoblin/root.html', {'media_entries': media_entries, - 'allow_registration': mg_globals.app_config["allow_registration"]}) + 'allow_registration': mg_globals.app_config["allow_registration"]}) def simple_template_render(request): From 166dc91aca21048e235dec126c0518a807fead41 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 9 Jul 2011 09:02:17 -0500 Subject: [PATCH 0648/2731] Add a warning to the user that registrations are disabled. --- mediagoblin/auth/views.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 01bfc066..7facc1bf 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -31,9 +31,12 @@ def register(request): """ Your classic registration view! """ - # Redirects to indexpage if registrations are disabled if not mg_globals.app_config["allow_registration"]: + messages.add_message( + request, + messages.WARNING, + ('Sorry, registration is disabled on this instance.')) return redirect(request, "index") register_form = auth_forms.RegistrationForm(request.POST) From 7b31a11c80afa4f7e819ca102553e5de5c2e4746 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 9 Jul 2011 09:02:57 -0500 Subject: [PATCH 0649/2731] Removing trailing whitespace from this file --- mediagoblin/auth/views.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 7facc1bf..7fe507b1 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -61,7 +61,7 @@ def register(request): entry['pw_hash'] = auth_lib.bcrypt_gen_password_hash( request.POST['password']) entry.save(validate=True) - + send_verification_email(entry, request) return redirect(request, "mediagoblin.auth.register_success") @@ -114,7 +114,7 @@ def login(request): def logout(request): # Maybe deleting the user_id parameter would be enough? request.session.delete() - + return redirect(request, "index") @@ -138,16 +138,16 @@ def verify_email(request): user.save() verification_successful = True messages.add_message( - request, - messages.SUCCESS, + request, + messages.SUCCESS, ('Your email address has been verified. ' 'You may now login, edit your profile, and submit images!')) else: verification_successful = False - messages.add_message(request, - messages.ERROR, - 'The verification key or user id is incorrect') - + messages.add_message(request, + messages.ERROR, + 'The verification key or user id is incorrect') + return render_to_response( request, 'mediagoblin/user_pages/user.html', From 51dcfb56827fc00eb4761ce5421a23cae3177304 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 9 Jul 2011 14:50:41 -0500 Subject: [PATCH 0650/2731] New migration utility code.... I haven't tested this! ;) I think it's looking right though. - Provides MigrationManager which should have plenty of utilities for doing migrations hopefully correctly :) - Provides RegisterMigration which should be able to decorate migrations and register them in doing so --- mediagoblin/db/util.py | 136 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index 70c37945..ebf8409d 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -37,6 +37,11 @@ from mongokit import ObjectId from mediagoblin.db.indexes import ACTIVE_INDEXES, DEPRECATED_INDEXES +################ +# Indexing tools +################ + + def add_new_indexes(database, active_indexes=ACTIVE_INDEXES): """ Add any new indexes to the database. @@ -99,3 +104,134 @@ def remove_deprecated_indexes(database, deprecated_indexes=DEPRECATED_INDEXES): indexes_removed.append((collection_name, index_name)) return indexes_removed + + +################# +# Migration tools +################# + +# The default migration registry... +# +# Don't set this yourself! RegisterMigration will automatically fill +# this with stuff via decorating methods in migrations.py + +MIGRATIONS = {} + + +class RegisterMigration(object): + def __init__(self, migration_number, migration_registry=MIGRATIONS): + self.migration_number = migration_number + self.migration_registry = migration_registry + + def __call__(self, migration): + self.migration_registry[self.migration_number] = migration + return migration + + +class MigrationManager(object): + """ + Migration handling tool. + + Takes information about a database, lets you update the database + to the latest migrations, etc. + """ + def __init__(self, database, migration_registry=MIGRATIONS): + """ + Args: + - database: database we're going to migrate + - migration_registry: where we should find all migrations to + run + """ + self.database = database + self.migration_registry = migration_registry + self._sorted_migrations = None + + @property + def sorted_migrations(self): + """ + Sort migrations if necessary and store in self._sorted_migrations + """ + if not self._sorted_migrations: + self._sorted_migrations = sorted( + self.migration_registry.items(), + # sort on the key... the migration number + key=lambda migration_tuple: migration_tuple[0]) + + return self._sorted_migrations + + def latest_migration(self): + """ + Return a tuple like: + (migration_number, migration_func) + + Where migration_number is the number of the latest migration + and migration func is the actual function that would be run. + """ + return self.sorted_migrations[-1] + + def set_current_migration(self, migration_number=None): + """ + Set the migration in the database to migration_number + """ + # Add the mediagoblin migration if necessary + self.database['app_metadata'].update( + {'_id': 'mediagoblin'}, + {'$set': {'current_migration': migration_number}}, + upsert=True) + + def database_current_migration(self, install_if_missing=True): + """ + Return the current migration in the database. + """ + mgoblin_metadata = self.database['app_metadata'].find_one( + {'_id': 'mediagoblin'}) + if not mgoblin_metadata: + if install_if_missing: + latest_migration = self.latest_migration() + self.set_current_migration(latest_migration) + return latest_migration + else: + return None + else: + return mgoblin_metadata['current_migration'] + + def database_at_latest_migration(self): + """ + See if the database is at the latest migration. + Returns a boolean. + """ + current_migration = self.database_current_migration() + return current_migration == self.latest_migration() + + def migrations_to_run(self): + """ + Get a list of migrations to run still, if any. + """ + db_current_migration = self.database_current_migration() + return [ + (migration_number, migration_func) + for migration_number, migration_func in self.sorted_migrations + if migration_number > db_current_migration] + + def iteratively_migrate(self): + """ + Iteratively run all migrations. + + Useful if you need to print some message about each migration + after you run it. + + Each time you loop over this, it'll return the migration + number and migration function. + """ + for migration_number, migration_func in self.migrations_to_run(): + migration_func(self.database) + self.set_current_migration(migration_number) + yield migration_number, migration_func + + def run_outdated_migrations(self): + """ + Install all migrations that need to be installed, quietly. + """ + for migration_number, migration_func in self.iteratively_migrate(): + # No need to say anything... we're just migrating iteratively. + pass From 993f0a9321618d7da399c063d61a2e1f3bf7cc8d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 9 Jul 2011 14:51:48 -0500 Subject: [PATCH 0651/2731] Migrating quietly, not iteratively, that comment should say! --- mediagoblin/db/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index ebf8409d..a7ee8dd1 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -233,5 +233,5 @@ class MigrationManager(object): Install all migrations that need to be installed, quietly. """ for migration_number, migration_func in self.iteratively_migrate(): - # No need to say anything... we're just migrating iteratively. + # No need to say anything... we're just migrating quietly. pass From dca6406a90227c72dd6e0661d8cd26556a44606b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 9 Jul 2011 15:07:40 -0500 Subject: [PATCH 0652/2731] latest_migration now returns migration numbers only, and 0 if no migrations. --- mediagoblin/db/util.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index a7ee8dd1..c8932755 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -119,6 +119,9 @@ MIGRATIONS = {} class RegisterMigration(object): + """ + Tool for registering migrations + """ def __init__(self, migration_number, migration_registry=MIGRATIONS): self.migration_number = migration_number self.migration_registry = migration_registry @@ -161,13 +164,14 @@ class MigrationManager(object): def latest_migration(self): """ - Return a tuple like: - (migration_number, migration_func) - - Where migration_number is the number of the latest migration - and migration func is the actual function that would be run. + Return a migration number for the latest migration, or 0 if + there are no migrations. """ - return self.sorted_migrations[-1] + if self.sorted_migrations: + return self.sorted_migrations[-1][0] + else: + # If no migrations have been set, we start at 0. + return 0 def set_current_migration(self, migration_number=None): """ From 363fc97259bac58b8b9a933cbdf301ab6cd584b3 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 9 Jul 2011 15:10:47 -0500 Subject: [PATCH 0653/2731] Some instructions in the RegisterMigration docstring on how to use. --- mediagoblin/db/util.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index c8932755..ca1aed74 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -121,6 +121,19 @@ MIGRATIONS = {} class RegisterMigration(object): """ Tool for registering migrations + + Call like: + + @RegisterMigration(33) + def update_dwarves(database): + [...] + + This will register your migration with the default migration + registry. Alternately, to specify a very specific + migration_registry, you can pass in that as the second argument. + + Note, the number of your migration should NEVER be 0 or less than + 0. 0 is the default "no migrations" state! """ def __init__(self, migration_number, migration_registry=MIGRATIONS): self.migration_number = migration_number From 50bb8fe5e44eae5974121e9b518d373205251eb9 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 9 Jul 2011 16:51:19 -0500 Subject: [PATCH 0654/2731] Changing things back so that we keep information about deprecated indexes around. --- mediagoblin/db/util.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index 70c37945..37e6586f 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -81,18 +81,25 @@ def remove_deprecated_indexes(database, deprecated_indexes=DEPRECATED_INDEXES): Args: - database: pymongo or mongokit database instance. - deprecated_indexes: the indexes to deprecate in the pattern of: - {'collection': ['index_identifier1', 'index_identifier2']} + {'collection_name': { + 'identifier': { + 'index': [index_foo_goes_here], + 'unique': True}} + + (... although we really only need the 'identifier' here, as the + rest of the information isn't used in this case. But it's kept + around so we can remember what it was) Returns: A list of indexes removed in form ('collection', 'index_name') """ indexes_removed = [] - for collection_name, index_names in deprecated_indexes.iteritems(): + for collection_name, indexes in deprecated_indexes.iteritems(): collection = database[collection_name] collection_indexes = collection.index_information().keys() - for index_name in index_names: + for index_name, index_data in indexes.iteritems(): if index_name in collection_indexes: collection.drop_index(index_name) From 7ecb1b0726c1ebdafa62af3eb21d31b02ab79a8c Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 9 Jul 2011 16:52:57 -0500 Subject: [PATCH 0655/2731] Adjusting documentation in indexes.py also re: more info in deprecation --- mediagoblin/db/indexes.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mediagoblin/db/indexes.py b/mediagoblin/db/indexes.py index d379a52b..a832e013 100644 --- a/mediagoblin/db/indexes.py +++ b/mediagoblin/db/indexes.py @@ -45,11 +45,13 @@ REQUIRED READING: To remove deprecated indexes ---------------------------- -Removing deprecated indexes is easier, just do: +Removing deprecated indexes is the same, just move the index into the +deprecated indexes mapping. -INACTIVE_INDEXES = { - 'collection_name': [ - 'deprecated_index_identifier1', 'deprecated_index_identifier2']} +DEPRECATED_INDEXES = { + 'collection_name': { + 'deprecated_index_identifier1': { + 'index': [index_foo_goes_here]}} ... etc. From 1fd97db348fb8eb7b455f4f991fe73143611a945 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 9 Jul 2011 17:11:23 -0500 Subject: [PATCH 0656/2731] Added a note about workbench only currently being used by celery --- mediagoblin/app.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index c5fcc1dd..ae39694f 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -104,6 +104,9 @@ class MediaGoblinApp(object): database=self.db, public_store=self.public_store, queue_store=self.queue_store) + + # Workbench *currently* only used by celery, so this only + # matters in always eager mode :) setup_workbench() def __call__(self, environ, start_response): From f4cd7a4ade374bdace27d8f0216f36c96c652efc Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 9 Jul 2011 17:13:21 -0500 Subject: [PATCH 0657/2731] Oh well... Did I really have this wtforms cruft in my setup_workbench commit. :-( I don't know even, how it got in there. :-| --- mediagoblin/edit/forms.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index 0ed52af1..fdbd5c75 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -32,5 +32,4 @@ class EditProfileForm(wtforms.Form): [wtforms.validators.Length(min=0, max=500)]) url = wtforms.TextField( 'Website', - [wtforms.validators.Optional(), - wtforms.validators.URL(message='Improperly formed URL')]) + [wtforms.validators.URL(message='Improperly formed URL')]) From 3054e2b3cb08839aca7da2e1c5b4cce1768bf705 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 9 Jul 2011 17:16:18 -0500 Subject: [PATCH 0658/2731] Sorry, that OptionalField belonged there. I am a bad person and am not allowed to commit anything else today. --- mediagoblin/edit/forms.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index fdbd5c75..0ed52af1 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -32,4 +32,5 @@ class EditProfileForm(wtforms.Form): [wtforms.validators.Length(min=0, max=500)]) url = wtforms.TextField( 'Website', - [wtforms.validators.URL(message='Improperly formed URL')]) + [wtforms.validators.Optional(), + wtforms.validators.URL(message='Improperly formed URL')]) From ec86d16a5376168127190aee36dfc8f3e559b527 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 9 Jul 2011 17:21:47 -0500 Subject: [PATCH 0659/2731] run_new_migrations() makes more sense --- mediagoblin/db/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index ca1aed74..5f0699c1 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -245,7 +245,7 @@ class MigrationManager(object): self.set_current_migration(migration_number) yield migration_number, migration_func - def run_outdated_migrations(self): + def run_new_migrations(self): """ Install all migrations that need to be installed, quietly. """ From 32ae9e1b4eeb426f31c0a15100fcebe1b353eea4 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 9 Jul 2011 18:17:54 -0500 Subject: [PATCH 0660/2731] Making sure migration_number > 0 :) --- mediagoblin/db/util.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index 5f0699c1..7bae57ff 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -136,6 +136,8 @@ class RegisterMigration(object): 0. 0 is the default "no migrations" state! """ def __init__(self, migration_number, migration_registry=MIGRATIONS): + assert migration_number > 0, "Migration number must be > 0!" + self.migration_number = migration_number self.migration_registry = migration_registry @@ -196,7 +198,7 @@ class MigrationManager(object): {'$set': {'current_migration': migration_number}}, upsert=True) - def database_current_migration(self, install_if_missing=True): + def database_current_migration(self, install_if_missing=False): """ Return the current migration in the database. """ From 42fe0780297f87c046f9f44887874147b94c1f08 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Jul 2011 15:28:46 -0500 Subject: [PATCH 0661/2731] test_migrations.py w/ migrate'able fixtures and some migration scaffolding Not usable yet, but fleshing out well! --- mediagoblin/tests/test_migrations.py | 166 +++++++++++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 mediagoblin/tests/test_migrations.py diff --git a/mediagoblin/tests/test_migrations.py b/mediagoblin/tests/test_migrations.py new file mode 100644 index 00000000..5d8ed02a --- /dev/null +++ b/mediagoblin/tests/test_migrations.py @@ -0,0 +1,166 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +from pymongo import Connection + +from mediagoblin.db.util import RegisterMigration, MigrationManager + +# This one will get filled with local migrations +TEST_MIGRATION_REGISTRY = {} +# this one won't get filled +TEST_EMPTY_MIGRATION_REGISTRY = {} + +MIGRATION_DB_NAME = u'__mediagoblin_test_migrations__' + + +###################### +# Fake test migrations +###################### + +@RegisterMigration(1, TEST_MIGRATION_REGISTRY) +def creature_add_magical_powers(database): + """ + Add lists of magical powers. + + This defaults to [], an empty list. Since we haven't declared any + magical powers, all existing monsters should + """ + pass + + +@RegisterMigration(2, TEST_MIGRATION_REGISTRY) +def creature_rename_num_legs_to_num_limbs(database): + """ + It turns out we want to track how many limbs a creature has, not + just how many legs. We don't care about the ambiguous distinction + between arms/legs currently. + """ + pass + + +@RegisterMigration(3, TEST_MIGRATION_REGISTRY) +def creature_remove_is_demon(database): + """ + It turns out we don't care much about whether creatures are demons + or not. + """ + pass + + +@RegisterMigration(4, TEST_MIGRATION_REGISTRY) +def level_exits_dict_to_list(database): + """ + For the sake of the indexes we want to write, and because we + intend to add more flexible fields, we want to move level exits + from like: + + {'big_door': 'castle_level_id', + 'trapdoor': 'dungeon_level_id'} + + to like: + + [{'name': 'big_door', + 'exits_to': 'castle_level_id'}, + {'name': 'trapdoor', + 'exits_to': 'dungeon_level_id'}] + """ + pass + + +UNMIGRATED_DBDATA = { + 'creatures': [ + {'name': 'centipede', + 'num_legs': 100, + 'is_demon': False}, + {'name': 'wolf', + 'num_legs': 4, + 'is_demon': False}, + # don't ask me what a wizardsnake is. + {'name': 'wizardsnake', + 'num_legs': 0, + 'is_demon': True}], + 'levels': [ + {'_id': 'necroplex', + 'name': 'The Necroplex', + 'description': 'A complex full of pure deathzone.', + 'exits': { + 'deathwell': 'evilstorm', + 'portal': 'central_park'}}, + {'_id': 'evilstorm', + 'name': 'Evil Storm', + 'description': 'A storm full of pure evil.', + 'exits': {}}, # you can't escape the evilstorm + {'_id': 'central_park', + 'name': 'Central Park, NY, NY', + 'description': "New York's friendly Central Park.", + 'exits': { + 'portal': 'necroplex'}}]} + + +# We want to make sure that if we're at migration 3, migration 3 +# doesn't get re-run. + +SEMI_MIGRATED_DBDATA = { + 'creatures': [ + {'name': 'centipede', + 'num_limbs': 100, + 'magical_powers': []}, + {'name': 'wolf', + 'num_limbs': 4, + # kept around namely to check that it *isn't* removed! + 'is_demon': False, + 'magical_powers': [ + 'ice_breath', 'death_stare']}, + {'name': 'wizardsnake', + 'num_limbs': 0, + 'magical_powers': [ + 'death_rattle', 'sneaky_stare', + 'slithery_smoke', 'treacherous_tremors'], + 'is_demon': True}], + 'levels': [ + {'_id': 'necroplex', + 'name': 'The Necroplex', + 'description': 'A complex full of pure deathzone.', + 'exits': [ + {'name': 'deathwell', + 'exits_to': 'evilstorm'}, + {'name': 'portal', + 'exits_to': 'central_park'}]}, + {'_id': 'evilstorm', + 'name': 'Evil Storm', + 'description': 'A storm full of pure evil.', + 'exits': []}, # you can't escape the evilstorm + {'_id': 'central_park', + 'name': 'Central Park, NY, NY', + 'description': "New York's friendly Central Park.", + 'exits': [ + {'name': 'portal', + 'exits_to': 'necroplex'}]}]} + + +class TestMigrations(object): + def setUp(self): + # Set up the connection, drop an existing possible database + self.connection = Connection() + self.connection.drop_database(MIGRATION_DB_NAME) + self.db = Connection()[MIGRATION_DB_NAME] + self.migration_manager = MigrationManager( + self.db, TEST_MIGRATION_REGISTRY) + + def tearDown(self): + self.connection.drop_database(MIGRATION_DB_NAME) + From d0ee0003a2473b8ef23e32a0b1d754f5ce36d530 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Jul 2011 15:41:18 -0500 Subject: [PATCH 0662/2731] Simpler run_migrations method. Allows for calbacks, should be useful for printing output and catching things in tests. Gets rid of the generator stuff which now that I think of it is a messy idea. --- mediagoblin/db/util.py | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index 7bae57ff..9e4efcab 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -232,25 +232,22 @@ class MigrationManager(object): for migration_number, migration_func in self.sorted_migrations if migration_number > db_current_migration] - def iteratively_migrate(self): + def migrate_new(self, pre_callback=None, post_callback=None): """ - Iteratively run all migrations. + Run all migrations. - Useful if you need to print some message about each migration - after you run it. - - Each time you loop over this, it'll return the migration - number and migration function. + Includes two optional args: + - pre_callback: if called, this is a callback on something to + run pre-migration. Takes (migration_number, migration_func) + as arguments + - pre_callback: if called, this is a callback on something to + run post-migration. Takes (migration_number, migration_func) + as arguments """ for migration_number, migration_func in self.migrations_to_run(): + if pre_callback: + pre_callback(migration_number, migration_func) migration_func(self.database) self.set_current_migration(migration_number) - yield migration_number, migration_func - - def run_new_migrations(self): - """ - Install all migrations that need to be installed, quietly. - """ - for migration_number, migration_func in self.iteratively_migrate(): - # No need to say anything... we're just migrating quietly. - pass + if post_callback: + post_callback(migration_number, migration_func) From 77ffe9be582e35d5686997a2e381f1071cf10e93 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Jul 2011 16:19:49 -0500 Subject: [PATCH 0663/2731] Added the actual fake/testing migrations. Haven't run them yet... --- mediagoblin/tests/test_migrations.py | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/mediagoblin/tests/test_migrations.py b/mediagoblin/tests/test_migrations.py index 5d8ed02a..6866b744 100644 --- a/mediagoblin/tests/test_migrations.py +++ b/mediagoblin/tests/test_migrations.py @@ -17,6 +17,7 @@ from pymongo import Connection +from mediagoblin.tests.tools import install_fixtures_simple from mediagoblin.db.util import RegisterMigration, MigrationManager # This one will get filled with local migrations @@ -39,7 +40,9 @@ def creature_add_magical_powers(database): This defaults to [], an empty list. Since we haven't declared any magical powers, all existing monsters should """ - pass + database['creatures'].update( + {'magical_powers': {'$exists': False}}, + {'$set': {'magical_powers': []}}) @RegisterMigration(2, TEST_MIGRATION_REGISTRY) @@ -49,7 +52,9 @@ def creature_rename_num_legs_to_num_limbs(database): just how many legs. We don't care about the ambiguous distinction between arms/legs currently. """ - pass + database['creatures'].update( + {'num_legs': {'$exists': True}}, + {'$rename': {'num_legs': 'num_limbs'}}) @RegisterMigration(3, TEST_MIGRATION_REGISTRY) @@ -58,7 +63,9 @@ def creature_remove_is_demon(database): It turns out we don't care much about whether creatures are demons or not. """ - pass + database['creatures'].update( + {'is_demon': {'$exists': True}}, + {'$unset': {'is_demon': 1}}) @RegisterMigration(4, TEST_MIGRATION_REGISTRY) @@ -78,7 +85,18 @@ def level_exits_dict_to_list(database): {'name': 'trapdoor', 'exits_to': 'dungeon_level_id'}] """ - pass + target = database['levels'].find( + {'exits': {'$type': 3}}) + + for level in target: + new_exits = [] + for exit_name, exits_to in level['exits'].items(): + new_exits.append( + {'name': exit_name, + 'exits_to': exits_to}) + + level['exits'] = new_exits + database['levels'].save(level) UNMIGRATED_DBDATA = { From 8569533f2183348b4eae43bdbd4378cd9faa0e4c Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Jul 2011 16:23:36 -0500 Subject: [PATCH 0664/2731] Make sure all these strings in db/util.py are unicode --- mediagoblin/db/util.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index 9e4efcab..49275711 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -193,17 +193,17 @@ class MigrationManager(object): Set the migration in the database to migration_number """ # Add the mediagoblin migration if necessary - self.database['app_metadata'].update( - {'_id': 'mediagoblin'}, - {'$set': {'current_migration': migration_number}}, + self.database[u'app_metadata'].update( + {u'_id': u'mediagoblin'}, + {u'$set': {u'current_migration': migration_number}}, upsert=True) def database_current_migration(self, install_if_missing=False): """ Return the current migration in the database. """ - mgoblin_metadata = self.database['app_metadata'].find_one( - {'_id': 'mediagoblin'}) + mgoblin_metadata = self.database[u'app_metadata'].find_one( + {u'_id': u'mediagoblin'}) if not mgoblin_metadata: if install_if_missing: latest_migration = self.latest_migration() @@ -212,7 +212,7 @@ class MigrationManager(object): else: return None else: - return mgoblin_metadata['current_migration'] + return mgoblin_metadata[u'current_migration'] def database_at_latest_migration(self): """ From 1b38cfa3b7a208a0af995c082fc0998cd0099996 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Jul 2011 18:27:38 -0500 Subject: [PATCH 0665/2731] install_migration_version_if_missing() now a separate function Also added it to MigrationManager.migrate_new(), because we'll always need a migration number when migrating. --- mediagoblin/db/util.py | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index 49275711..03e896f3 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -198,19 +198,25 @@ class MigrationManager(object): {u'$set': {u'current_migration': migration_number}}, upsert=True) - def database_current_migration(self, install_if_missing=False): + def install_migration_version_if_missing(self): + """ + Sets the migration to the latest version if no migration + version at all is set. + """ + mgoblin_metadata = self.database[u'app_metadata'].find_one( + {u'_id': u'mediagoblin'}) + if not mgoblin_metadata: + latest_migration = self.latest_migration() + self.set_current_migration(latest_migration) + + def database_current_migration(self): """ Return the current migration in the database. """ mgoblin_metadata = self.database[u'app_metadata'].find_one( {u'_id': u'mediagoblin'}) if not mgoblin_metadata: - if install_if_missing: - latest_migration = self.latest_migration() - self.set_current_migration(latest_migration) - return latest_migration - else: - return None + return None else: return mgoblin_metadata[u'current_migration'] @@ -227,6 +233,7 @@ class MigrationManager(object): Get a list of migrations to run still, if any. """ db_current_migration = self.database_current_migration() + return [ (migration_number, migration_func) for migration_number, migration_func in self.sorted_migrations @@ -244,6 +251,11 @@ class MigrationManager(object): run post-migration. Takes (migration_number, migration_func) as arguments """ + # If we aren't set to any version number, presume we're at the + # latest (which means we'll do nothing here...) + # @@: should this be in migrations_to_run()? + self.install_migration_version_if_missing() + for migration_number, migration_func in self.migrations_to_run(): if pre_callback: pre_callback(migration_number, migration_func) From 9cf8b469e7f8e4fea581875637c16025e75550d4 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Jul 2011 18:43:08 -0500 Subject: [PATCH 0666/2731] Move the call to install_migration_version_if_missing() to migrations_to_run() This means there's a serious side effect of calling this, but there's no way to get useful data here unless if that's set anyway. --- mediagoblin/db/util.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index 03e896f3..2ca17f0b 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -231,7 +231,14 @@ class MigrationManager(object): def migrations_to_run(self): """ Get a list of migrations to run still, if any. + + Note that calling this will set your migration version to the + latest version if it isn't installed to anything yet! """ + # If we aren't set to any version number, presume we're at the + # latest (which means we'll do nothing here...) + self.install_migration_version_if_missing() + db_current_migration = self.database_current_migration() return [ @@ -251,11 +258,6 @@ class MigrationManager(object): run post-migration. Takes (migration_number, migration_func) as arguments """ - # If we aren't set to any version number, presume we're at the - # latest (which means we'll do nothing here...) - # @@: should this be in migrations_to_run()? - self.install_migration_version_if_missing() - for migration_number, migration_func in self.migrations_to_run(): if pre_callback: pre_callback(migration_number, migration_func) From 77ab4b66cec1666517ab10f79e02944a16729809 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Jul 2011 18:46:48 -0500 Subject: [PATCH 0667/2731] Mock out tests, define expected results, add first test Specifically test_migrations_registered_and_sorted() :) --- mediagoblin/tests/test_migrations.py | 115 +++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) diff --git a/mediagoblin/tests/test_migrations.py b/mediagoblin/tests/test_migrations.py index 6866b744..bf78b067 100644 --- a/mediagoblin/tests/test_migrations.py +++ b/mediagoblin/tests/test_migrations.py @@ -129,10 +129,77 @@ UNMIGRATED_DBDATA = { 'portal': 'necroplex'}}]} +EXPECTED_POST_MIGRATION_UNMIGRATED_DBDATA = { + 'creatures': [ + {'name': 'centipede', + 'num_limbs': 100, + 'magical_powers': []}, + {'name': 'wolf', + 'num_limbs': 4, + # kept around namely to check that it *isn't* removed! + 'magical_powers': []}, + {'name': 'wizardsnake', + 'num_limbs': 0, + 'magical_powers': []}], + 'levels': [ + {'_id': 'necroplex', + 'name': 'The Necroplex', + 'description': 'A complex full of pure deathzone.', + 'exits': [ + {'name': 'deathwell', + 'exits_to': 'evilstorm'}, + {'name': 'portal', + 'exits_to': 'central_park'}]}, + {'_id': 'evilstorm', + 'name': 'Evil Storm', + 'description': 'A storm full of pure evil.', + 'exits': []}, # you can't escape the evilstorm + {'_id': 'central_park', + 'name': 'Central Park, NY, NY', + 'description': "New York's friendly Central Park.", + 'exits': [ + {'name': 'portal', + 'exits_to': 'necroplex'}]}]} + # We want to make sure that if we're at migration 3, migration 3 # doesn't get re-run. SEMI_MIGRATED_DBDATA = { + 'creatures': [ + {'name': 'centipede', + 'num_limbs': 100, + 'magical_powers': []}, + {'name': 'wolf', + 'num_limbs': 4, + # kept around namely to check that it *isn't* removed! + 'is_demon': False, + 'magical_powers': [ + 'ice_breath', 'death_stare']}, + {'name': 'wizardsnake', + 'num_limbs': 0, + 'magical_powers': [ + 'death_rattle', 'sneaky_stare', + 'slithery_smoke', 'treacherous_tremors'], + 'is_demon': True}], + 'levels': [ + {'_id': 'necroplex', + 'name': 'The Necroplex', + 'description': 'A complex full of pure deathzone.', + 'exits': { + 'deathwell': 'evilstorm', + 'portal': 'central_park'}}, + {'_id': 'evilstorm', + 'name': 'Evil Storm', + 'description': 'A storm full of pure evil.', + 'exits': {}}, # you can't escape the evilstorm + {'_id': 'central_park', + 'name': 'Central Park, NY, NY', + 'description': "New York's friendly Central Park.", + 'exits': { + 'portal': 'necroplex'}}]} + + +EXPECTED_POST_MIGRATION_SEMI_MIGRATED_DBDATA = { 'creatures': [ {'name': 'centipede', 'num_limbs': 100, @@ -168,6 +235,7 @@ SEMI_MIGRATED_DBDATA = { 'exits': [ {'name': 'portal', 'exits_to': 'necroplex'}]}]} + class TestMigrations(object): @@ -178,7 +246,54 @@ class TestMigrations(object): self.db = Connection()[MIGRATION_DB_NAME] self.migration_manager = MigrationManager( self.db, TEST_MIGRATION_REGISTRY) + self.empty_migration_manager = MigrationManager( + self.db, TEST_EMPTY_MIGRATION_REGISTRY) def tearDown(self): self.connection.drop_database(MIGRATION_DB_NAME) + def test_migrations_registered_and_sorted(self): + """ + Make sure that migrations get registered and are sorted right + in the migration manager + """ + assert TEST_MIGRATION_REGISTRY == { + 1: creature_add_magical_powers, + 2: creature_rename_num_legs_to_num_limbs, + 3: creature_remove_is_demon, + 4: level_exits_dict_to_list} + assert self.migration_manager.sorted_migrations == [ + (1, creature_add_magical_powers), + (2, creature_rename_num_legs_to_num_limbs), + (3, creature_remove_is_demon), + (4, level_exits_dict_to_list)] + assert self.empty_migration_manager.sorted_migrations == [] + + def test_run_full_migrations(self): + """ + Make sure that running the full migration suite from 0 updates + everything + """ + pass + + def test_run_partial_migrations(self): + """ + Make sure that running full migration suite from 3 only runs + last migration + """ + + pass + + def test_migrations_recorded_as_latest(self): + """ + Make sure that if we don't have a migration_status + pre-recorded it's marked as the latest + """ + pass + + def test_no_migrations_recorded_as_zero(self): + """ + Make sure that if we don't have a migration_status + but there *are* no migrations that it's marked as 0 + """ + pass From 0143c5a1e43649b77baee50ae09cafc2e856b9db Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Jul 2011 18:48:09 -0500 Subject: [PATCH 0668/2731] No reason to have migration_number optional or default to None --- mediagoblin/db/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index 2ca17f0b..1a4dd95b 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -188,7 +188,7 @@ class MigrationManager(object): # If no migrations have been set, we start at 0. return 0 - def set_current_migration(self, migration_number=None): + def set_current_migration(self, migration_number): """ Set the migration in the database to migration_number """ From ae6b0a4e6e5234c7721b105813cf91f23db3b10b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Jul 2011 21:14:38 -0500 Subject: [PATCH 0669/2731] test_run_full_migrations() all working properly! --- mediagoblin/tests/test_migrations.py | 107 ++++++++++++++++++++------- 1 file changed, 81 insertions(+), 26 deletions(-) diff --git a/mediagoblin/tests/test_migrations.py b/mediagoblin/tests/test_migrations.py index bf78b067..14fca1b8 100644 --- a/mediagoblin/tests/test_migrations.py +++ b/mediagoblin/tests/test_migrations.py @@ -17,8 +17,9 @@ from pymongo import Connection -from mediagoblin.tests.tools import install_fixtures_simple -from mediagoblin.db.util import RegisterMigration, MigrationManager +from mediagoblin.tests.tools import ( + install_fixtures_simple, assert_db_meets_expected) +from mediagoblin.db.util import RegisterMigration, MigrationManager, ObjectId # This one will get filled with local migrations TEST_MIGRATION_REGISTRY = {} @@ -38,11 +39,12 @@ def creature_add_magical_powers(database): Add lists of magical powers. This defaults to [], an empty list. Since we haven't declared any - magical powers, all existing monsters should + magical powers, all existing monsters should """ database['creatures'].update( {'magical_powers': {'$exists': False}}, - {'$set': {'magical_powers': []}}) + {'$set': {'magical_powers': []}}, + multi=True) @RegisterMigration(2, TEST_MIGRATION_REGISTRY) @@ -52,9 +54,17 @@ def creature_rename_num_legs_to_num_limbs(database): just how many legs. We don't care about the ambiguous distinction between arms/legs currently. """ - database['creatures'].update( - {'num_legs': {'$exists': True}}, - {'$rename': {'num_legs': 'num_limbs'}}) + # $rename not available till 1.7.2+, Debian Stable only includes + # 1.4.4... we should do renames manually for now :( + + collection = database['creatures'] + target = collection.find( + {'num_legs': {'$exists': True}}) + + for document in target: + # A lame manual renaming. + document['num_limbs'] = document.pop('num_legs') + collection.save(document) @RegisterMigration(3, TEST_MIGRATION_REGISTRY) @@ -65,7 +75,8 @@ def creature_remove_is_demon(database): """ database['creatures'].update( {'is_demon': {'$exists': True}}, - {'$unset': {'is_demon': 1}}) + {'$unset': {'is_demon': 1}}, + multi=True) @RegisterMigration(4, TEST_MIGRATION_REGISTRY) @@ -85,7 +96,8 @@ def level_exits_dict_to_list(database): {'name': 'trapdoor', 'exits_to': 'dungeon_level_id'}] """ - target = database['levels'].find( + collection = database['levels'] + target = collection.find( {'exits': {'$type': 3}}) for level in target: @@ -96,19 +108,26 @@ def level_exits_dict_to_list(database): 'exits_to': exits_to}) level['exits'] = new_exits - database['levels'].save(level) + collection.save(level) +CENTIPEDE_OBJECTID = ObjectId() +WOLF_OBJECTID = ObjectId() +WIZARDSNAKE_OBJECTID = ObjectId() + UNMIGRATED_DBDATA = { 'creatures': [ - {'name': 'centipede', + {'_id': CENTIPEDE_OBJECTID, + 'name': 'centipede', 'num_legs': 100, 'is_demon': False}, - {'name': 'wolf', + {'_id': WOLF_OBJECTID, + 'name': 'wolf', 'num_legs': 4, 'is_demon': False}, # don't ask me what a wizardsnake is. - {'name': 'wizardsnake', + {'_id': WIZARDSNAKE_OBJECTID, + 'name': 'wizardsnake', 'num_legs': 0, 'is_demon': True}], 'levels': [ @@ -127,18 +146,21 @@ UNMIGRATED_DBDATA = { 'description': "New York's friendly Central Park.", 'exits': { 'portal': 'necroplex'}}]} - + EXPECTED_POST_MIGRATION_UNMIGRATED_DBDATA = { 'creatures': [ - {'name': 'centipede', + {'_id': CENTIPEDE_OBJECTID, + 'name': 'centipede', 'num_limbs': 100, 'magical_powers': []}, - {'name': 'wolf', + {'_id': WOLF_OBJECTID, + 'name': 'wolf', 'num_limbs': 4, # kept around namely to check that it *isn't* removed! 'magical_powers': []}, - {'name': 'wizardsnake', + {'_id': WIZARDSNAKE_OBJECTID, + 'name': 'wizardsnake', 'num_limbs': 0, 'magical_powers': []}], 'levels': [ @@ -166,16 +188,19 @@ EXPECTED_POST_MIGRATION_UNMIGRATED_DBDATA = { SEMI_MIGRATED_DBDATA = { 'creatures': [ - {'name': 'centipede', + {'_id': CENTIPEDE_OBJECTID, + 'name': 'centipede', 'num_limbs': 100, 'magical_powers': []}, - {'name': 'wolf', + {'_id': WOLF_OBJECTID, + 'name': 'wolf', 'num_limbs': 4, # kept around namely to check that it *isn't* removed! 'is_demon': False, 'magical_powers': [ 'ice_breath', 'death_stare']}, - {'name': 'wizardsnake', + {'_id': WIZARDSNAKE_OBJECTID, + 'name': 'wizardsnake', 'num_limbs': 0, 'magical_powers': [ 'death_rattle', 'sneaky_stare', @@ -201,16 +226,19 @@ SEMI_MIGRATED_DBDATA = { EXPECTED_POST_MIGRATION_SEMI_MIGRATED_DBDATA = { 'creatures': [ - {'name': 'centipede', + {'_id': CENTIPEDE_OBJECTID, + 'name': 'centipede', 'num_limbs': 100, 'magical_powers': []}, - {'name': 'wolf', + {'_id': WOLF_OBJECTID, + 'name': 'wolf', 'num_limbs': 4, # kept around namely to check that it *isn't* removed! 'is_demon': False, 'magical_powers': [ 'ice_breath', 'death_stare']}, - {'name': 'wizardsnake', + {'_id': WIZARDSNAKE_OBJECTID, + 'name': 'wizardsnake', 'num_limbs': 0, 'magical_powers': [ 'death_rattle', 'sneaky_stare', @@ -235,7 +263,6 @@ EXPECTED_POST_MIGRATION_SEMI_MIGRATED_DBDATA = { 'exits': [ {'name': 'portal', 'exits_to': 'necroplex'}]}]} - class TestMigrations(object): @@ -248,10 +275,14 @@ class TestMigrations(object): self.db, TEST_MIGRATION_REGISTRY) self.empty_migration_manager = MigrationManager( self.db, TEST_EMPTY_MIGRATION_REGISTRY) + self.run_migrations = [] def tearDown(self): self.connection.drop_database(MIGRATION_DB_NAME) + def _record_migration(self, migration_number, migration_func): + self.run_migrations.append((migration_number, migration_func)) + def test_migrations_registered_and_sorted(self): """ Make sure that migrations get registered and are sorted right @@ -274,14 +305,38 @@ class TestMigrations(object): Make sure that running the full migration suite from 0 updates everything """ - pass + self.migration_manager.set_current_migration(0) + assert self.migration_manager.database_current_migration() == 0 + install_fixtures_simple(self.db, UNMIGRATED_DBDATA) + self.migration_manager.migrate_new(post_callback=self._record_migration) + + assert self.run_migrations == [ + (1, creature_add_magical_powers), + (2, creature_rename_num_legs_to_num_limbs), + (3, creature_remove_is_demon), + (4, level_exits_dict_to_list)] + + assert_db_meets_expected( + self.db, EXPECTED_POST_MIGRATION_UNMIGRATED_DBDATA) + + # Make sure the migration is recorded correctly + assert self.migration_manager.database_current_migration() == 4 + + # run twice! It should do nothing the second time. + # ------------------------------------------------ + self.run_migrations = [] + self.migration_manager.migrate_new(post_callback=self._record_migration) + assert self.run_migrations == [] + assert_db_meets_expected( + self.db, EXPECTED_POST_MIGRATION_UNMIGRATED_DBDATA) + assert self.migration_manager.database_current_migration() == 4 + def test_run_partial_migrations(self): """ Make sure that running full migration suite from 3 only runs last migration """ - pass def test_migrations_recorded_as_latest(self): From 85663692cdedf95082e5f505319a22f03d298bfd Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Jul 2011 21:16:50 -0500 Subject: [PATCH 0670/2731] testing tools install_fixtures_simple and assert_db_meets_expected Thought I installed these... guess I didn't! --- mediagoblin/tests/tools.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/mediagoblin/tests/tools.py b/mediagoblin/tests/tools.py index e56af4de..4b61f259 100644 --- a/mediagoblin/tests/tools.py +++ b/mediagoblin/tests/tools.py @@ -118,3 +118,35 @@ def setup_fresh_app(func): return func(test_app, *args, **kwargs) return _make_safe(wrapper, func) + + +def install_fixtures_simple(db, fixtures): + """ + Very simply install fixtures in the database + """ + for collection_name, collection_fixtures in fixtures.iteritems(): + collection = db[collection_name] + for fixture in collection_fixtures: + collection.insert(fixture) + + +def assert_db_meets_expected(db, expected): + """ + Assert a database contains the things we expect it to. + + Objects are found via '_id', so you should make sure your document + has an _id. + + Args: + - db: pymongo or mongokit database connection + - expected: the data we expect. Formatted like: + {'collection_name': [ + {'_id': 'foo', + 'some_field': 'some_value'},]} + """ + for collection_name, collection_data in expected.iteritems(): + collection = db[collection_name] + for expected_document in collection_data: + document = collection.find_one({'_id': expected_document['_id']}) + assert document is not None # make sure it exists + assert document == expected_document # make sure it matches From 4c465852d198a1d8e8562a1e25b23fa7c9b4d2b4 Mon Sep 17 00:00:00 2001 From: Aaron Williamson Date: Sun, 10 Jul 2011 22:28:48 -0400 Subject: [PATCH 0671/2731] Markdown-enable user bio (Feature 410) --- mediagoblin/db/models.py | 3 ++- mediagoblin/edit/views.py | 4 ++++ mediagoblin/templates/mediagoblin/utils/profile.html | 6 +++--- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 279cb9f2..8e07e738 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -47,7 +47,8 @@ class User(Document): 'verification_key': unicode, 'is_admin': bool, 'url' : unicode, - 'bio' : unicode + 'bio' : unicode, # May contain markdown + 'bio_html': unicode, # May contain plaintext, or HTML } required_fields = ['username', 'created', 'pw_hash', 'email'] diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 3bcf788b..fac1f41d 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -101,6 +101,10 @@ def edit_profile(request): if request.method == 'POST' and form.validate(): user['url'] = request.POST['url'] user['bio'] = request.POST['bio'] + + md = markdown.Markdown(safe_mode = 'escape') + user['bio_html'] = clean_html(md.convert(user['bio'])) + user.save() messages.add_message(request, diff --git a/mediagoblin/templates/mediagoblin/utils/profile.html b/mediagoblin/templates/mediagoblin/utils/profile.html index f44defa5..d9b121f6 100644 --- a/mediagoblin/templates/mediagoblin/utils/profile.html +++ b/mediagoblin/templates/mediagoblin/utils/profile.html @@ -18,9 +18,9 @@ {% block profile_content -%} {% if user.bio %} -

            - {{ user.bio }} -

            + {% autoescape False %} +

            {{ user.bio_html }}

            + {% endautoescape %} {% endif %} {% if user.url %}

            From 01040b78e169b39f88067eebd2add9b9fbc09ba2 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Jul 2011 21:29:23 -0500 Subject: [PATCH 0672/2731] test_run_partial_migrations() working! --- mediagoblin/tests/test_migrations.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/mediagoblin/tests/test_migrations.py b/mediagoblin/tests/test_migrations.py index 14fca1b8..f999a794 100644 --- a/mediagoblin/tests/test_migrations.py +++ b/mediagoblin/tests/test_migrations.py @@ -337,7 +337,19 @@ class TestMigrations(object): Make sure that running full migration suite from 3 only runs last migration """ - pass + self.migration_manager.set_current_migration(3) + assert self.migration_manager.database_current_migration() == 3 + install_fixtures_simple(self.db, SEMI_MIGRATED_DBDATA) + self.migration_manager.migrate_new(post_callback=self._record_migration) + + assert self.run_migrations == [ + (4, level_exits_dict_to_list)] + + assert_db_meets_expected( + self.db, EXPECTED_POST_MIGRATION_SEMI_MIGRATED_DBDATA) + + # Make sure the migration is recorded correctly + assert self.migration_manager.database_current_migration() == 4 def test_migrations_recorded_as_latest(self): """ From 9548c6463b157284dabdc98391afb4c784d1c2a2 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Jul 2011 21:51:02 -0500 Subject: [PATCH 0673/2731] test_migrations_recorded_as_(latest|zero) tests passing :) --- mediagoblin/tests/test_migrations.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mediagoblin/tests/test_migrations.py b/mediagoblin/tests/test_migrations.py index f999a794..527655bc 100644 --- a/mediagoblin/tests/test_migrations.py +++ b/mediagoblin/tests/test_migrations.py @@ -356,11 +356,13 @@ class TestMigrations(object): Make sure that if we don't have a migration_status pre-recorded it's marked as the latest """ - pass + self.migration_manager.install_migration_version_if_missing() + assert self.migration_manager.database_current_migration() == 4 def test_no_migrations_recorded_as_zero(self): """ Make sure that if we don't have a migration_status but there *are* no migrations that it's marked as 0 """ - pass + self.empty_migration_manager.install_migration_version_if_missing() + assert self.empty_migration_manager.database_current_migration() == 0 From dab0d24d98ef6bdbb43548f7108437b8b91e4af0 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Jul 2011 22:02:51 -0500 Subject: [PATCH 0674/2731] Made it so that it's migrate_new() which installs the migration version if missing, migrations_to_run just throws an error if not set --- mediagoblin/db/util.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index 1a4dd95b..5a1b317d 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -115,6 +115,9 @@ def remove_deprecated_indexes(database, deprecated_indexes=DEPRECATED_INDEXES): # Don't set this yourself! RegisterMigration will automatically fill # this with stuff via decorating methods in migrations.py +class MissingCurrentMigration(Exception): pass + + MIGRATIONS = {} @@ -164,6 +167,16 @@ class MigrationManager(object): self.migration_registry = migration_registry self._sorted_migrations = None + def _ensure_current_migration_record(self): + """ + If there isn't a database[u'app_metadata'] mediagoblin entry + with the 'current_migration', throw an error. + """ + if self.database_current_migration() is None: + MissingCurrentMigration( + "Tried to call function which requires " + "'current_migration' set in database") + @property def sorted_migrations(self): """ @@ -235,9 +248,7 @@ class MigrationManager(object): Note that calling this will set your migration version to the latest version if it isn't installed to anything yet! """ - # If we aren't set to any version number, presume we're at the - # latest (which means we'll do nothing here...) - self.install_migration_version_if_missing() + self._ensure_current_migration_record() db_current_migration = self.database_current_migration() @@ -258,6 +269,10 @@ class MigrationManager(object): run post-migration. Takes (migration_number, migration_func) as arguments """ + # If we aren't set to any version number, presume we're at the + # latest (which means we'll do nothing here...) + self.install_migration_version_if_missing() + for migration_number, migration_func in self.migrations_to_run(): if pre_callback: pre_callback(migration_number, migration_func) From f92bea33c7edcabce277b756aaceb40935c2e1e0 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Jul 2011 22:44:20 -0500 Subject: [PATCH 0675/2731] give option in connect_database_from_config to connect to a pymongo.Connection --- mediagoblin/db/open.py | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/mediagoblin/db/open.py b/mediagoblin/db/open.py index cae33394..cb040c29 100644 --- a/mediagoblin/db/open.py +++ b/mediagoblin/db/open.py @@ -14,24 +14,41 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +import pymongo import mongokit from paste.deploy.converters import asint from mediagoblin.db import models -def connect_database_from_config(app_config): - """Connect to the main database, take config from app_config""" +def connect_database_from_config(app_config, use_pymongo=False): + """ + Connect to the main database, take config from app_config + + Optionally use pymongo instead of mongokit for the connection. + """ port = app_config.get('db_port') if port: port = asint(port) - connection = mongokit.Connection( - app_config.get('db_host'), port) + + if use_pymongo: + connection = pymongo.Connection( + app_config.get('db_host'), port) + else: + connection = mongokit.Connection( + app_config.get('db_host'), port) return connection -def setup_connection_and_db_from_config(app_config): - connection = connect_database_from_config(app_config) +def setup_connection_and_db_from_config(app_config, use_pymongo=False): + """ + Setup connection and database from config. + + Optionally use pymongo instead of mongokit. + """ + connection = connect_database_from_config(app_config, use_pymongo) database_path = app_config.get('db_name', 'mediagoblin') db = connection[database_path] - models.register_models(connection) - # Could configure indexes here on db + + if not use_pymongo: + models.register_models(connection) + return (connection, db) From ba04c887302c3f902b4fb6bd380e8abfb023b39b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Jul 2011 22:44:33 -0500 Subject: [PATCH 0676/2731] Use new migrations system in ./bin/gmg migrate --- mediagoblin/gmg_commands/migrate.py | 36 ++++++++++++++++++----------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/mediagoblin/gmg_commands/migrate.py b/mediagoblin/gmg_commands/migrate.py index ab1a267b..7ddbed23 100644 --- a/mediagoblin/gmg_commands/migrate.py +++ b/mediagoblin/gmg_commands/migrate.py @@ -14,10 +14,12 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +import sys from mediagoblin.db import migrations from mediagoblin.db import util as db_util -from mediagoblin.gmg_commands import util as commands_util +from mediagoblin.db.open import setup_connection_and_db_from_config +from mediagoblin.init.config import read_mediagoblin_config def migrate_parser_setup(subparser): @@ -25,32 +27,38 @@ def migrate_parser_setup(subparser): '-cf', '--conf_file', default='mediagoblin.ini', help="Config file used to set up environment") +def _print_started_migration(migration_number, migration_func): + sys.stdout.write( + "Running migration %s, '%s'... " % ( + migration_number, migration_func.func_name)) + +def _print_finished_migration(migration_number, migration_func): + print "done." + def migrate(args): - mgoblin_app = commands_util.setup_app(args) + config, validation_result = read_mediagoblin_config(args.conf_file) + connection, db = setup_connection_and_db_from_config( + config['mediagoblin'], use_pymongo=True) + migration_manager = db_util.MigrationManager(db) # Clear old indexes print "== Clearing old indexes... ==" - removed_indexes = db_util.remove_deprecated_indexes(mgoblin_app.db) + removed_indexes = db_util.remove_deprecated_indexes(db) for collection, index_name in removed_indexes: print "Removed index '%s' in collection '%s'" % ( index_name, collection) # Migrate - print "== Applying migrations... ==" - for model_name in migrations.MIGRATE_CLASSES: - model = getattr(mgoblin_app.db, model_name) - - if not hasattr(model, 'migration_handler') or not model.collection: - continue - - migration = model.migration_handler(model) - migration.migrate_all(collection=model.collection) + print "\n== Applying migrations... ==" + migration_manager.migrate_new( + pre_callback=_print_started_migration, + post_callback=_print_finished_migration) # Add new indexes - print "== Adding new indexes... ==" - new_indexes = db_util.add_new_indexes(mgoblin_app.db) + print "\n== Adding new indexes... ==" + new_indexes = db_util.add_new_indexes(db) for collection, index_name in new_indexes: print "Added index '%s' to collection '%s'" % ( From 9df37e8a4a9387e9ebe6690d0f18b94a31d7ae4d Mon Sep 17 00:00:00 2001 From: Chris Moylan Date: Sun, 10 Jul 2011 22:45:27 -0500 Subject: [PATCH 0677/2731] added suggestions as per http://bugs.foocorp.net/issues/365#note-9 --- mediagoblin/tests/test_submission.py | 86 +++++++++++++--------------- 1 file changed, 40 insertions(+), 46 deletions(-) diff --git a/mediagoblin/tests/test_submission.py b/mediagoblin/tests/test_submission.py index 20c187e7..22b6117c 100644 --- a/mediagoblin/tests/test_submission.py +++ b/mediagoblin/tests/test_submission.py @@ -15,7 +15,7 @@ # along with this program. If not, see . import urlparse -from os import getcwd +import pkg_resources from nose.tools import assert_equal @@ -24,20 +24,18 @@ from mediagoblin.tests.tools import setup_fresh_app, get_test_app from mediagoblin import mg_globals from mediagoblin import util -IMAGE_ROOT = getcwd() + '/mediagoblin/tests/test_submission/' -GOOD_JPG = 'good.jpg' -GOOD_PNG = 'good.png' -EVIL_FILE = 'evil' -EVIL_JPG = 'evil.jpg' -EVIL_PNG = 'evil.png' +GOOD_JPG = pkg_resources.resource_filename( + 'mediagoblin.tests', 'test_submission/good.jpg') +GOOD_PNG = pkg_resources.resource_filename( + 'mediagoblin.tests', 'test_submission/good.png') +EVIL_FILE = pkg_resources.resource_filename( + 'mediagoblin.tests', 'test_submission/evil') +EVIL_JPG = pkg_resources.resource_filename( + 'mediagoblin.tests', 'test_submission/evil.jpg') +EVIL_PNG = pkg_resources.resource_filename( + 'mediagoblin.tests', 'test_submission/evil.png') -# TODO: -# - Define test files as globals -# - supported mime types -# - unsupported mime type with supported extension -# - Remove any imports that aren't neccessary - class TestSubmission: def setUp(self): self.test_app = get_test_app() @@ -79,12 +77,6 @@ class TestSubmission: def test_normal_uploads(self): - # FYI: - # upload_files is for file uploads. It should be a list of - # [(fieldname, filename, file_content)]. You can also use - # just [(fieldname, filename)] and the file content will be - # read from disk. - # Test JPG # -------- util.clear_test_template_context() @@ -92,15 +84,15 @@ class TestSubmission: '/submit/', { 'title': 'Normal upload 1' }, upload_files=[( - 'file', IMAGE_ROOT + GOOD_JPG)]) + 'file', GOOD_JPG)]) # User should be redirected response.follow() assert_equal( urlparse.urlsplit(response.location)[2], - '/submit/success/') + '/u/chris/') assert util.TEMPLATE_TEST_CONTEXT.has_key( - 'mediagoblin/submit/success.html') + 'mediagoblin/user_pages/user.html') # Test PNG # -------- @@ -109,16 +101,14 @@ class TestSubmission: '/submit/', { 'title': 'Normal upload 2' }, upload_files=[( - 'file', IMAGE_ROOT + GOOD_PNG)]) + 'file', GOOD_PNG)]) response.follow() assert_equal( urlparse.urlsplit(response.location)[2], - '/submit/success/') + '/u/chris/') assert util.TEMPLATE_TEST_CONTEXT.has_key( - 'mediagoblin/submit/success.html') - - # TODO: Test additional supported formats + 'mediagoblin/user_pages/user.html') def test_malicious_uploads(self): @@ -129,35 +119,39 @@ class TestSubmission: '/submit/', { 'title': 'Malicious Upload 2' }, upload_files=[( - 'file', IMAGE_ROOT + EVIL_FILE)]) + 'file', EVIL_FILE)]) context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] form = context['submit_form'] assert form.file.errors == ['The file doesn\'t seem to be an image!'] + # NOTE: The following 2 tests will fail. These can be uncommented + # after http://bugs.foocorp.net/issues/324 is resolved and + # bad files are handled properly. + # Test non-supported file with .jpg extension # ------------------------------------------- - util.clear_test_template_context() - response = self.test_app.post( - '/submit/', { - 'title': 'Malicious Upload 2' - }, upload_files=[( - 'file', IMAGE_ROOT + EVIL_JPG)]) + #util.clear_test_template_context() + #response = self.test_app.post( + # '/submit/', { + # 'title': 'Malicious Upload 2' + # }, upload_files=[( + # 'file', EVIL_JPG)]) - context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] - form = context['submit_form'] - assert form.file.errors == ['The file doesn\'t seem to be an image!'] + #context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] + #form = context['submit_form'] + #assert form.file.errors == ['The file doesn\'t seem to be an image!'] # Test non-supported file with .png extension # ------------------------------------------- - util.clear_test_template_context() - response = self.test_app.post( - '/submit/', { - 'title': 'Malicious Upload 3' - }, upload_files=[( - 'file', IMAGE_ROOT + EVIL_PNG)]) + #util.clear_test_template_context() + #response = self.test_app.post( + # '/submit/', { + # 'title': 'Malicious Upload 3' + # }, upload_files=[( + # 'file', EVIL_PNG)]) - context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] - form = context['submit_form'] - assert form.file.errors == ['The file doesn\'t seem to be an image!'] + #context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] + #form = context['submit_form'] + #assert form.file.errors == ['The file doesn\'t seem to be an image!'] From ff94114c5d19be45a674a36980be643e097f7f12 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Jul 2011 22:50:03 -0500 Subject: [PATCH 0678/2731] Setup the application to record the database version if missing on launch --- mediagoblin/app.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 9454b403..523b9302 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -24,6 +24,7 @@ from mediagoblin import routing, util, storage, staticdirect from mediagoblin.init.config import ( read_mediagoblin_config, generate_validation_report) from mediagoblin.db.open import setup_connection_and_db_from_config +from mediagoblin.db.util import MigrationManager from mediagoblin.mg_globals import setup_globals from mediagoblin.init.celery import setup_celery_from_config from mediagoblin.init import get_jinja_loader @@ -71,6 +72,16 @@ class MediaGoblinApp(object): self.connection, self.db = setup_connection_and_db_from_config( app_config) + # Init the migration number if necessary + migration_manager = MigrationManager(self.db) + migration_manager.install_migration_version_if_missing() + + # Tiny hack to warn user if our migration is out of date + if not migration_manager.database_at_latest_migration(): + print ( + "*WARNING:* Your migrations are out of date, " + "maybe run ./bin/gmg migrate?") + # Get the template environment self.template_loader = get_jinja_loader( app_config.get('user_template_path')) From 0c915735d5053a75037165105723848c17415ec8 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 10 Jul 2011 22:58:48 -0500 Subject: [PATCH 0679/2731] Just making a note of where the new migrations will go! --- mediagoblin/db/migrations.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py index 712f8ab4..4cafb1a3 100644 --- a/mediagoblin/db/migrations.py +++ b/mediagoblin/db/migrations.py @@ -15,10 +15,21 @@ # along with this program. If not, see . from mediagoblin.util import cleaned_markdown_conversion +# from mediagoblin.db.util import RegisterMigration from mongokit import DocumentMigration +# This is where the first new-style migration will be written! +# +# Please see mediagoblin/tests/test_migrations.py for some examples of +# basic migrations. + +# @RegisterMigration(1) +# def do_something(database): +# pass + + class MediaEntryMigration(DocumentMigration): def allmigration01_uploader_to_reference(self): """ From 272469daf5eb53f2302ae3948dde4e40eaf12497 Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Sun, 10 Jul 2011 23:36:21 -0500 Subject: [PATCH 0680/2731] adds index for tag searches by an uploader --- mediagoblin/db/indexes.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mediagoblin/db/indexes.py b/mediagoblin/db/indexes.py index d379a52b..57bd33cd 100644 --- a/mediagoblin/db/indexes.py +++ b/mediagoblin/db/indexes.py @@ -88,6 +88,13 @@ MEDIAENTRY_INDEXES = { # Indexing on uploaders and when media entries are created. # Used for showing a user gallery, etc. 'index': [('uploader', ASCENDING), + ('created', DESCENDING)]}, + + 'uploader_tags_created': { + # Indexing on the media uploader, the associated tags, and timestamp + # Used for showing media items matching a tag search, most recent first. + 'index': [('uploader', ASCENDING), + ('tags', DESCENDING), ('created', DESCENDING)]}} From 35166f7654f27ca6665f1b7c4ef39f50cdb5ac03 Mon Sep 17 00:00:00 2001 From: Osama Khalid Date: Mon, 11 Jul 2011 20:34:37 +0300 Subject: [PATCH 0681/2731] Referring to the Hacking HOWTO in deploymenthowto (this is where I looked in first when I wanted to build MG) --- docs/deploymenthowto.rst | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/deploymenthowto.rst b/docs/deploymenthowto.rst index d943e276..f50edfb6 100644 --- a/docs/deploymenthowto.rst +++ b/docs/deploymenthowto.rst @@ -10,4 +10,7 @@ Step 2: ? Step 3: Write the deployment guide and profit! -But seriously, this is a stub since we're not quite there, yet. +But seriously, this is a stub since we're not quite there (yet) but if +you want to see where we are now, you can try to run the latest +development version by following the instructions at +:ref:`hacking-howto`. From 6d27a5cf637665be5228b6d74e7bbea5a272e688 Mon Sep 17 00:00:00 2001 From: Osama Khalid Date: Mon, 11 Jul 2011 20:55:25 +0300 Subject: [PATCH 0682/2731] python-lxml is required on Fedora --- docs/hackinghowto.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index 914a5135..46288882 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -60,7 +60,7 @@ requirements:: On Fedora:: yum install mongodb-server python-paste-deploy python-paste-script \ - git-core python python-devel + git-core python python-devel python-lxml .. YouCanHelp:: From 39c6b2bdc601c60dd3cf1acacf795fec721224ca Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 11 Jul 2011 23:25:15 +0200 Subject: [PATCH 0683/2731] Move db_name default into config_spec.ini The default name of the database ("mediagoblin") was coded in db/open.py and init/celery/__init__.py. Instead use the new config system to have this as the default for the "db_name" config option. --- mediagoblin/config_spec.ini | 2 +- mediagoblin/db/open.py | 2 +- mediagoblin/init/celery/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini index b6356b0e..28be5f34 100644 --- a/mediagoblin/config_spec.ini +++ b/mediagoblin/config_spec.ini @@ -1,7 +1,7 @@ [mediagoblin] # database stuff db_host = string() -db_name = string() +db_name = string(default="mediagoblin") db_port = integer() # diff --git a/mediagoblin/db/open.py b/mediagoblin/db/open.py index cae33394..b6987677 100644 --- a/mediagoblin/db/open.py +++ b/mediagoblin/db/open.py @@ -30,7 +30,7 @@ def connect_database_from_config(app_config): def setup_connection_and_db_from_config(app_config): connection = connect_database_from_config(app_config) - database_path = app_config.get('db_name', 'mediagoblin') + database_path = app_config['db_name'] db = connection[database_path] models.register_models(connection) # Could configure indexes here on db diff --git a/mediagoblin/init/celery/__init__.py b/mediagoblin/init/celery/__init__.py index 67c3dfa0..bfae954e 100644 --- a/mediagoblin/init/celery/__init__.py +++ b/mediagoblin/init/celery/__init__.py @@ -62,7 +62,7 @@ def setup_celery_from_config(app_config, global_config, celery_mongo_settings['port'] = app_config['db_port'] if celery_settings['BROKER_BACKEND'] == 'mongodb': celery_settings['BROKER_PORT'] = app_config['db_port'] - celery_mongo_settings['database'] = app_config.get('db_name', 'mediagoblin') + celery_mongo_settings['database'] = app_config['db_name'] celery_settings['CELERY_MONGODB_BACKEND_SETTINGS'] = celery_mongo_settings From c2ddd85e4ac6c50289711fb5673dd716329a569b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 11 Jul 2011 21:09:36 -0500 Subject: [PATCH 0684/2731] Removing old style migrations... not in use anymore --- mediagoblin/db/migrations.py | 58 +----------------------------------- mediagoblin/db/models.py | 8 ++--- 2 files changed, 3 insertions(+), 63 deletions(-) diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py index 4cafb1a3..683a57f3 100644 --- a/mediagoblin/db/migrations.py +++ b/mediagoblin/db/migrations.py @@ -14,67 +14,11 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from mediagoblin.util import cleaned_markdown_conversion -# from mediagoblin.db.util import RegisterMigration +from mediagoblin.db.util import RegisterMigration -from mongokit import DocumentMigration - - -# This is where the first new-style migration will be written! -# # Please see mediagoblin/tests/test_migrations.py for some examples of # basic migrations. # @RegisterMigration(1) # def do_something(database): # pass - - -class MediaEntryMigration(DocumentMigration): - def allmigration01_uploader_to_reference(self): - """ - Old MediaEntry['uploader'] accidentally embedded the User instead - of referencing it. Fix that! - """ - # uploader is an associative array - self.target = {'uploader': {'$type': 3}} - if not self.status: - for doc in self.collection.find(self.target): - self.update = { - '$set': { - 'uploader': doc['uploader']['_id']}} - self.collection.update( - self.target, self.update, multi=True, safe=True) - - def allmigration02_add_description_html(self): - """ - Now that we can have rich descriptions via Markdown, we should - update all existing entries to record the rich description versions. - """ - self.target = {'description_html': {'$exists': False}, - 'description': {'$exists': True}} - - if not self.status: - for doc in self.collection.find(self.target): - self.update = { - '$set': { - 'description_html': cleaned_markdown_conversion( - doc['description'])}} - -class UserMigration(DocumentMigration): - def allmigration01_add_bio_and_url_profile(self): - """ - User can elaborate profile with home page and biography - """ - self.target = {'url': {'$exists': False}, - 'bio': {'$exists': False}} - if not self.status: - for doc in self.collection.find(self.target): - self.update = { - '$set': {'url': '', - 'bio': ''}} - self.collection.update( - self.target, self.update, multi=True, safe=True) - - -MIGRATE_CLASSES = ['MediaEntry', 'User'] diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 279cb9f2..918dee0e 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -16,12 +16,11 @@ import datetime, uuid -from mongokit import Document, Set +from mongokit import Document from mediagoblin import util from mediagoblin.auth import lib as auth_lib from mediagoblin import mg_globals -from mediagoblin.db import migrations from mediagoblin.db.util import ASCENDING, DESCENDING, ObjectId ################### @@ -59,8 +58,6 @@ class User(Document): 'verification_key': lambda: unicode(uuid.uuid4()), 'is_admin': False} - migration_handler = migrations.UserMigration - def check_login(self, password): """ See if a user can login with this password @@ -106,8 +103,6 @@ class MediaEntry(Document): 'created': datetime.datetime.utcnow, 'state': u'unprocessed'} - migration_handler = migrations.MediaEntryMigration - def get_comments(self): return self.db.MediaComment.find({ 'media_entry': self['_id']}).sort('created', DESCENDING) @@ -196,6 +191,7 @@ class MediaComment(Document): def author(self): return self.db.User.find_one({'_id': self['author']}) + REGISTER_MODELS = [ MediaEntry, User, From cdf538bd6163a47b4c4a6326c943b6deaf2c495a Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Tue, 12 Jul 2011 20:06:17 -0500 Subject: [PATCH 0685/2731] adds filter function to parse and clean tags field input - for some reason the tags are showing up in the media edit form with u'..' and surrounded with []. I don't know why, grr --- mediagoblin/edit/forms.py | 5 +++-- mediagoblin/edit/views.py | 5 +++-- mediagoblin/submit/forms.py | 4 +++- mediagoblin/util.py | 19 ++++++++++++++++++- 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index b2d575cb..5e3aab96 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -17,6 +17,8 @@ import wtforms +from mediagoblin.util import convert_to_tag_list + class EditForm(wtforms.Form): title = wtforms.TextField( @@ -25,8 +27,7 @@ class EditForm(wtforms.Form): slug = wtforms.TextField( 'Slug') description = wtforms.TextAreaField('Description of this work') - tags = wtforms.TextField( - 'Tags') + tags = wtforms.TextField('Tags', filters=[convert_to_tag_list]) class EditProfileForm(wtforms.Form): bio = wtforms.TextAreaField('Bio', diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 96cb4be3..f5e7f454 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -19,7 +19,8 @@ from webob import exc from string import split from mediagoblin import messages -from mediagoblin.util import render_to_response, redirect, clean_html +from mediagoblin.util import render_to_response, redirect, clean_html, \ + TAGS_DELIMITER from mediagoblin.edit import forms from mediagoblin.edit.lib import may_edit_media from mediagoblin.decorators import require_active_login, get_user_media_entry @@ -37,7 +38,7 @@ def edit_media(request, media): title = media['title'], slug = media['slug'], description = media['description'], - tags = ' '.join(media['tags'])) + tags = TAGS_DELIMITER.join(media['tags'])) if request.method == 'POST' and form.validate(): # Make sure there isn't already a MediaEntry with such a slug diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py index 0e0fd086..e13d5425 100644 --- a/mediagoblin/submit/forms.py +++ b/mediagoblin/submit/forms.py @@ -17,6 +17,8 @@ import wtforms +from mediagoblin.util import convert_to_tag_list + class SubmitStartForm(wtforms.Form): title = wtforms.TextField( @@ -24,4 +26,4 @@ class SubmitStartForm(wtforms.Form): [wtforms.validators.Length(min=0, max=500)]) description = wtforms.TextAreaField('Description of this work') file = wtforms.FileField('File') - tags = wtforms.TextField('Tags') + tags = wtforms.TextField('Tags', filters=[convert_to_tag_list]) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index ab219df0..7ee0a2d5 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -22,6 +22,7 @@ import sys import re import urllib from math import ceil +from string import strip import copy from babel.localedata import exists @@ -369,8 +370,24 @@ def clean_html(html): return HTML_CLEANER.clean_html(html) -MARKDOWN_INSTANCE = markdown.Markdown(safe_mode='escape') +TAGS_DELIMITER = ' ' +def convert_to_tag_list(tag_string): + """ + Filter input from a "tags" field, + + Strips trailing, leading, and internal whitespace, and also converts + the user input into an array of tags + """ + if tag_string: + taglist = [] + stripped_tag_string = ' '.join(tag_string.strip().split()) + for tag in stripped_tag_string.split(TAGS_DELIMITER): + if tag.strip(): taglist.append(tag.strip()) + return taglist + + +MARKDOWN_INSTANCE = markdown.Markdown(safe_mode='escape') def cleaned_markdown_conversion(text): """ From 6ae8b541f957b49ae86051814097e769d20f29af Mon Sep 17 00:00:00 2001 From: Deb Date: Tue, 12 Jul 2011 21:21:35 -0400 Subject: [PATCH 0686/2731] removed email variables from globals module --- mediagoblin/app.py | 6 ------ mediagoblin/auth/lib.py | 2 +- mediagoblin/mg_globals.py | 6 ------ mediagoblin/util.py | 6 +++--- 4 files changed, 4 insertions(+), 16 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index ae39694f..147db09c 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -93,12 +93,6 @@ class MediaGoblinApp(object): ####################################################### setup_globals( - # TODO: No need to set these two up as globals, we could - # just read them out of mg_globals.app_config - email_sender_address=app_config['email_sender_address'], - email_debug_mode=app_config['email_debug_mode'], - - # Actual, useful to everyone objects app=self, db_connection=self.connection, database=self.db, diff --git a/mediagoblin/auth/lib.py b/mediagoblin/auth/lib.py index 08bbdd16..6d1aec49 100644 --- a/mediagoblin/auth/lib.py +++ b/mediagoblin/auth/lib.py @@ -112,7 +112,7 @@ def send_verification_email(user, request): # TODO: There is no error handling in place send_email( - mg_globals.email_sender_address, + mg_globals.app_config['email_sender_address'], [user['email']], # TODO # Due to the distributed nature of GNU MediaGoblin, we should diff --git a/mediagoblin/mg_globals.py b/mediagoblin/mg_globals.py index 739f44ee..12a0e016 100644 --- a/mediagoblin/mg_globals.py +++ b/mediagoblin/mg_globals.py @@ -20,12 +20,6 @@ database = None public_store = None queue_store = None -# Dump mail to stdout instead of sending it: -email_debug_mode = False - -# Address for sending out mails -email_sender_address = None - # A WorkBenchManager workbench_manager = None diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 7b1e4a2a..9c4d024a 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -265,9 +265,9 @@ def send_email(from_addr, to_addrs, subject, message_body): - message_body: email body text """ # TODO: make a mock mhost if testing is enabled - if TESTS_ENABLED or mg_globals.email_debug_mode: + if TESTS_ENABLED or mg_globals.app_config['email_debug_mode']: mhost = FakeMhost() - elif not mg_globals.email_debug_mode: + elif not mg_globals.app_config['email_debug_mode']: mhost = smtplib.SMTP() mhost.connect() @@ -280,7 +280,7 @@ def send_email(from_addr, to_addrs, subject, message_body): if TESTS_ENABLED: EMAIL_TEST_INBOX.append(message) - if getattr(mg_globals, 'email_debug_mode', False): + if mg_globals.app_config['email_debug_mode']: print u"===== Email =====" print u"From address: %s" % message['From'] print u"To addresses: %s" % message['To'] From 93e3468a2af92a623a659628a20605025cea9ca7 Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Tue, 12 Jul 2011 20:43:16 -0500 Subject: [PATCH 0687/2731] displays the tags on edit correctly now -before it was running the tags field through the submit filter. that was kind of dumb -removes the filter function from the edit form -adds unicode syntax in the filter function -uses split correctly when saving the edited tags to mongodb --- mediagoblin/edit/forms.py | 2 +- mediagoblin/edit/views.py | 2 +- mediagoblin/util.py | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index 5e3aab96..e13cfaa9 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -27,7 +27,7 @@ class EditForm(wtforms.Form): slug = wtforms.TextField( 'Slug') description = wtforms.TextAreaField('Description of this work') - tags = wtforms.TextField('Tags', filters=[convert_to_tag_list]) + tags = wtforms.TextField('Tags') class EditProfileForm(wtforms.Form): bio = wtforms.TextAreaField('Bio', diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index f5e7f454..0c4fd735 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -62,7 +62,7 @@ def edit_media(request, media): media['description'])) media['slug'] = request.POST['slug'] - media['tags'] = split(request.POST['tags']) + media['tags'] = request.POST['tags'].split(TAGS_DELIMITER) media.save() return redirect(request, "mediagoblin.user_pages.media_home", diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 7ee0a2d5..4421bec4 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -370,7 +370,7 @@ def clean_html(html): return HTML_CLEANER.clean_html(html) -TAGS_DELIMITER = ' ' +TAGS_DELIMITER = u' ' def convert_to_tag_list(tag_string): """ @@ -381,7 +381,7 @@ def convert_to_tag_list(tag_string): """ if tag_string: taglist = [] - stripped_tag_string = ' '.join(tag_string.strip().split()) + stripped_tag_string = u' '.join(tag_string.strip().split()) for tag in stripped_tag_string.split(TAGS_DELIMITER): if tag.strip(): taglist.append(tag.strip()) return taglist From 6f2e4585cc7475362205a9ddb0e69d6da2b6dc85 Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Tue, 12 Jul 2011 22:26:10 -0500 Subject: [PATCH 0688/2731] uses standard functions instead of form filters and fixes taglist default - seems simpler to use the same tag field processing procedures on media submit and edit, so now processing with a regular function instead of a form filter. Filters run on form load and post by default. - moved tags to sidebar - taglist defaults to [] instead of None - adds case sensitivity toggle --- mediagoblin/edit/forms.py | 2 -- mediagoblin/edit/views.py | 7 ++++--- mediagoblin/submit/forms.py | 4 +--- mediagoblin/submit/views.py | 5 +++-- .../templates/mediagoblin/user_pages/media.html | 9 +++++---- mediagoblin/util.py | 11 ++++++++--- 6 files changed, 21 insertions(+), 17 deletions(-) diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index e13cfaa9..21c8509a 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -17,8 +17,6 @@ import wtforms -from mediagoblin.util import convert_to_tag_list - class EditForm(wtforms.Form): title = wtforms.TextField( diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 0c4fd735..0432024e 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -19,8 +19,9 @@ from webob import exc from string import split from mediagoblin import messages -from mediagoblin.util import render_to_response, redirect, clean_html, \ - TAGS_DELIMITER +from mediagoblin.util import ( + render_to_response, redirect, clean_html, TAGS_DELIMITER, \ + convert_to_tag_list) from mediagoblin.edit import forms from mediagoblin.edit.lib import may_edit_media from mediagoblin.decorators import require_active_login, get_user_media_entry @@ -62,7 +63,7 @@ def edit_media(request, media): media['description'])) media['slug'] = request.POST['slug'] - media['tags'] = request.POST['tags'].split(TAGS_DELIMITER) + media['tags'] = convert_to_tag_list(request.POST['tags']) media.save() return redirect(request, "mediagoblin.user_pages.media_home", diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py index e13d5425..0e0fd086 100644 --- a/mediagoblin/submit/forms.py +++ b/mediagoblin/submit/forms.py @@ -17,8 +17,6 @@ import wtforms -from mediagoblin.util import convert_to_tag_list - class SubmitStartForm(wtforms.Form): title = wtforms.TextField( @@ -26,4 +24,4 @@ class SubmitStartForm(wtforms.Form): [wtforms.validators.Length(min=0, max=500)]) description = wtforms.TextAreaField('Description of this work') file = wtforms.FileField('File') - tags = wtforms.TextField('Tags', filters=[convert_to_tag_list]) + tags = wtforms.TextField('Tags') diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index cdd58786..46ec4cea 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -21,7 +21,8 @@ from string import split from werkzeug.utils import secure_filename from mediagoblin.util import ( - render_to_response, redirect, cleaned_markdown_conversion) + render_to_response, redirect, cleaned_markdown_conversion, \ + convert_to_tag_list) from mediagoblin.decorators import require_active_login from mediagoblin.submit import forms as submit_forms, security from mediagoblin.process_media import process_media_initial @@ -59,7 +60,7 @@ def submit_start(request): entry['media_type'] = u'image' # heh entry['uploader'] = request.user['_id'] - entry['tags'] = split(request.POST.get('tags')) + entry['tags'] = convert_to_tag_list(request.POST.get('tags')) # Save, just so we can get the entry id for the sake of using # it to generate the file path diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 1c263880..47d5db35 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -48,10 +48,6 @@ user= media.uploader().username) }}"> {{- media.uploader().username }}

            - -

            - {{ ' '.join(media.tags) }} -


            Comments

            @@ -114,6 +110,11 @@

            {% endif %}

            + {% if media.tags %} +

            + {{ ' '.join(media.tags) }} +

            + {% endif %}
            {% else %}

            Sorry, no such media found.

            diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 4421bec4..f2a2793b 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -371,6 +371,7 @@ def clean_html(html): TAGS_DELIMITER = u' ' +TAGS_CASE_SENSITIVE = False def convert_to_tag_list(tag_string): """ @@ -379,12 +380,16 @@ def convert_to_tag_list(tag_string): Strips trailing, leading, and internal whitespace, and also converts the user input into an array of tags """ + taglist = [] if tag_string: - taglist = [] stripped_tag_string = u' '.join(tag_string.strip().split()) for tag in stripped_tag_string.split(TAGS_DELIMITER): - if tag.strip(): taglist.append(tag.strip()) - return taglist + if tag.strip(): + if TAGS_CASE_SENSITIVE: + taglist.append(tag.strip()) + else: + taglist.append(tag.strip().lower()) + return taglist MARKDOWN_INSTANCE = markdown.Markdown(safe_mode='escape') From 4451219560a4d991a8c4d04e9dffa99fb092bd5b Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Tue, 12 Jul 2011 22:52:32 -0500 Subject: [PATCH 0689/2731] ensures no duplicate tags per media entry --- mediagoblin/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index f2a2793b..951bdd51 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -384,7 +384,7 @@ def convert_to_tag_list(tag_string): if tag_string: stripped_tag_string = u' '.join(tag_string.strip().split()) for tag in stripped_tag_string.split(TAGS_DELIMITER): - if tag.strip(): + if tag.strip() and tag not in taglist: if TAGS_CASE_SENSITIVE: taglist.append(tag.strip()) else: From cc7ff3c50513ae169abab196f32de97af30e6744 Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Tue, 12 Jul 2011 23:58:25 -0500 Subject: [PATCH 0690/2731] enforces maximum tag length with (in)appropriate messaging --- mediagoblin/edit/views.py | 4 +++- mediagoblin/submit/views.py | 4 +++- mediagoblin/util.py | 26 +++++++++++++++++++++++--- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 0432024e..df0a0d52 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -63,7 +63,9 @@ def edit_media(request, media): media['description'])) media['slug'] = request.POST['slug'] - media['tags'] = convert_to_tag_list(request.POST['tags']) + + # Process the user's folksonomy "tags" + media['tags'] = convert_to_tag_list(request) media.save() return redirect(request, "mediagoblin.user_pages.media_home", diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 46ec4cea..bda77b1d 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -60,7 +60,9 @@ def submit_start(request): entry['media_type'] = u'image' # heh entry['uploader'] = request.user['_id'] - entry['tags'] = convert_to_tag_list(request.POST.get('tags')) + + # Process the user's folksonomy "tags" + entry['tags'] = convert_to_tag_list(request) # Save, just so we can get the entry id for the sake of using # it to generate the file path diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 951bdd51..44e64258 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -372,19 +372,39 @@ def clean_html(html): TAGS_DELIMITER = u' ' TAGS_CASE_SENSITIVE = False +TAGS_MAX_LENGTH = 50 -def convert_to_tag_list(tag_string): +def convert_to_tag_list(request): """ - Filter input from a "tags" field, + Filter input from any "tags" field in the session, Strips trailing, leading, and internal whitespace, and also converts - the user input into an array of tags + the "tags" text into an array of tags """ + tag_string = request.POST.get('tags') taglist = [] if tag_string: + + # Strip out internal, trailing, and leading whitespace stripped_tag_string = u' '.join(tag_string.strip().split()) + + # Split the tag string into a list of tags for tag in stripped_tag_string.split(TAGS_DELIMITER): + + # Do not permit duplicate tags if tag.strip() and tag not in taglist: + + # Enforce maximum tag length + if len(tag) > TAGS_MAX_LENGTH: + tag = tag[:TAGS_MAX_LENGTH] + u'...' + messages.add_message( + request, messages.WARNING, \ + u'Tag truncated to ' + unicode(TAGS_MAX_LENGTH) + \ + u' characters.') + messages.add_message( + request, messages.INFO, \ + u'Why the long tag? Seriously.') + if TAGS_CASE_SENSITIVE: taglist.append(tag.strip()) else: From 1580c7c5ceb309134a7c4e0c8ecf89f95cb76273 Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Wed, 13 Jul 2011 00:22:16 -0500 Subject: [PATCH 0691/2731] adds index for searching across all users' tagged images --- mediagoblin/db/indexes.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mediagoblin/db/indexes.py b/mediagoblin/db/indexes.py index 57bd33cd..1a2de55f 100644 --- a/mediagoblin/db/indexes.py +++ b/mediagoblin/db/indexes.py @@ -95,6 +95,12 @@ MEDIAENTRY_INDEXES = { # Used for showing media items matching a tag search, most recent first. 'index': [('uploader', ASCENDING), ('tags', DESCENDING), + ('created', DESCENDING)]}, + + 'tags_created': { + # Indexing media tags, and timestamp (across all users) + # This is used for a front page tag search. + 'index': [('tags', DESCENDING), ('created', DESCENDING)]}} From cea8f2b632de13ca9b423ea97ee8f6abf3cd6ecb Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Wed, 13 Jul 2011 12:14:18 -0500 Subject: [PATCH 0692/2731] adds "state" to tags indices --- mediagoblin/db/indexes.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/mediagoblin/db/indexes.py b/mediagoblin/db/indexes.py index 1a2de55f..3440ac2a 100644 --- a/mediagoblin/db/indexes.py +++ b/mediagoblin/db/indexes.py @@ -90,17 +90,19 @@ MEDIAENTRY_INDEXES = { 'index': [('uploader', ASCENDING), ('created', DESCENDING)]}, - 'uploader_tags_created': { - # Indexing on the media uploader, the associated tags, and timestamp + 'state_uploader_tags_created': { + # Indexing on processed?, media uploader, associated tags, and timestamp # Used for showing media items matching a tag search, most recent first. - 'index': [('uploader', ASCENDING), + 'index': [('state', ASCENDING), + ('uploader', ASCENDING), ('tags', DESCENDING), ('created', DESCENDING)]}, - 'tags_created': { - # Indexing media tags, and timestamp (across all users) + 'state_tags_created': { + # Indexing on processed?, media tags, and timestamp (across all users) # This is used for a front page tag search. - 'index': [('tags', DESCENDING), + 'index': [('state', ASCENDING), + ('tags', DESCENDING), ('created', DESCENDING)]}} From 511b10efda06f4a4933c936594d5d270bdd6824c Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 13 Jul 2011 20:58:13 -0500 Subject: [PATCH 0693/2731] We should *raise* MissingCurrentMigration :) Thanks for the catch, Elrond. --- mediagoblin/db/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index 5a1b317d..3e52d8ce 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -173,7 +173,7 @@ class MigrationManager(object): with the 'current_migration', throw an error. """ if self.database_current_migration() is None: - MissingCurrentMigration( + raise MissingCurrentMigration( "Tried to call function which requires " "'current_migration' set in database") From 77fb1e13316ab229897fa1e83e39ce1765213812 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 13 Jul 2011 21:09:04 -0500 Subject: [PATCH 0694/2731] A couple of tests related to migrations_to_run() Includes a test making sure an exception is raised if current_migration not set in database --- mediagoblin/tests/test_migrations.py | 36 +++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/mediagoblin/tests/test_migrations.py b/mediagoblin/tests/test_migrations.py index 527655bc..127b90e1 100644 --- a/mediagoblin/tests/test_migrations.py +++ b/mediagoblin/tests/test_migrations.py @@ -15,11 +15,14 @@ # along with this program. If not, see . +from nose.tools import assert_raises from pymongo import Connection from mediagoblin.tests.tools import ( install_fixtures_simple, assert_db_meets_expected) -from mediagoblin.db.util import RegisterMigration, MigrationManager, ObjectId +from mediagoblin.db.util import ( + RegisterMigration, MigrationManager, ObjectId, + MissingCurrentMigration) # This one will get filled with local migrations TEST_MIGRATION_REGISTRY = {} @@ -366,3 +369,34 @@ class TestMigrations(object): """ self.empty_migration_manager.install_migration_version_if_missing() assert self.empty_migration_manager.database_current_migration() == 0 + + def test_migrations_to_run(self): + """ + Make sure we get the right list of migrations to run + """ + self.migration_manager.set_current_migration(0) + + assert self.migration_manager.migrations_to_run() == [ + (1, creature_add_magical_powers), + (2, creature_rename_num_legs_to_num_limbs), + (3, creature_remove_is_demon), + (4, level_exits_dict_to_list)] + + self.migration_manager.set_current_migration(3) + + assert self.migration_manager.migrations_to_run() == [ + (4, level_exits_dict_to_list)] + + self.migration_manager.set_current_migration(4) + + assert self.migration_manager.migrations_to_run() == [] + + + def test_no_migrations_raises_exception(self): + """ + If we don't have the current migration set in the database, + this should error out. + """ + assert_raises( + MissingCurrentMigration, + self.migration_manager.migrations_to_run) From ecf518020f347ddfe3b19d118d2e3e81c2111bf6 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 13 Jul 2011 21:14:31 -0500 Subject: [PATCH 0695/2731] Elrond thinks we should use one of print/sys.stdout.write and .flush() I don't see the harm, so... done. --- mediagoblin/gmg_commands/migrate.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mediagoblin/gmg_commands/migrate.py b/mediagoblin/gmg_commands/migrate.py index 7ddbed23..e8d43a1f 100644 --- a/mediagoblin/gmg_commands/migrate.py +++ b/mediagoblin/gmg_commands/migrate.py @@ -27,13 +27,17 @@ def migrate_parser_setup(subparser): '-cf', '--conf_file', default='mediagoblin.ini', help="Config file used to set up environment") + def _print_started_migration(migration_number, migration_func): sys.stdout.write( "Running migration %s, '%s'... " % ( migration_number, migration_func.func_name)) + sys.stdout.flush() + def _print_finished_migration(migration_number, migration_func): - print "done." + sys.stdout.write("done.\n") + sys.stdout.flush() def migrate(args): From 59051a23f01eb49ed6fe6975991730021ac169ac Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 13 Jul 2011 22:32:51 -0500 Subject: [PATCH 0696/2731] Duplicate migration numbers not allowed, bro --- mediagoblin/db/util.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index 3e52d8ce..0cdbd5c4 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -140,6 +140,8 @@ class RegisterMigration(object): """ def __init__(self, migration_number, migration_registry=MIGRATIONS): assert migration_number > 0, "Migration number must be > 0!" + assert not migration_registry.has_key(migration_number), \ + "Duplicate migration numbers detected! That's not allowed!" self.migration_number = migration_number self.migration_registry = migration_registry From 3bc3d429fe3d8556616dff1ead4daa57d0a1b1cf Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 13 Jul 2011 23:20:16 -0500 Subject: [PATCH 0697/2731] Indenting section in the autoscape block --- mediagoblin/templates/mediagoblin/utils/profile.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/utils/profile.html b/mediagoblin/templates/mediagoblin/utils/profile.html index d9b121f6..63024b77 100644 --- a/mediagoblin/templates/mediagoblin/utils/profile.html +++ b/mediagoblin/templates/mediagoblin/utils/profile.html @@ -19,7 +19,7 @@ {% block profile_content -%} {% if user.bio %} {% autoescape False %} -

            {{ user.bio_html }}

            +

            {{ user.bio_html }}

            {% endautoescape %} {% endif %} {% if user.url %} From 5ebe69e5a0cdaf7e27d485624465834eb3132c13 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 14 Jul 2011 00:00:24 -0500 Subject: [PATCH 0698/2731] First migration: Add markdown bio! --- mediagoblin/db/migrations.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py index 683a57f3..f398f4b3 100644 --- a/mediagoblin/db/migrations.py +++ b/mediagoblin/db/migrations.py @@ -15,10 +15,24 @@ # along with this program. If not, see . from mediagoblin.db.util import RegisterMigration +from mediagoblin.util import cleaned_markdown_conversion + # Please see mediagoblin/tests/test_migrations.py for some examples of # basic migrations. -# @RegisterMigration(1) -# def do_something(database): -# pass + +@RegisterMigration(1) +def user_add_bio_html(database): + """ + Users now have richtext bios via Markdown, reflect appropriately. + """ + collection = database['users'] + + target = collection.find( + {'bio_html': {'$exists': False}}) + + for document in target: + document['bio_html'] = cleaned_markdown_conversion( + document['bio']) + collection.save(document) From 90e342f90ffc59991e040645938521a0a5ba050d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 14 Jul 2011 00:32:01 -0500 Subject: [PATCH 0699/2731] app.py and migrate.py must import migrations in order to load said migrations... --- mediagoblin/app.py | 3 +++ mediagoblin/gmg_commands/migrate.py | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 7a6a1f33..1c38f778 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -28,6 +28,9 @@ from mediagoblin.init.celery import setup_celery_from_config from mediagoblin.init import get_jinja_loader, get_staticdirector, \ setup_global_and_app_config, setup_workbench +# This MUST be imported so as to set up the appropriate migrations! +from mediagoblin.db import migrations + class MediaGoblinApp(object): """ diff --git a/mediagoblin/gmg_commands/migrate.py b/mediagoblin/gmg_commands/migrate.py index e8d43a1f..94adc9e0 100644 --- a/mediagoblin/gmg_commands/migrate.py +++ b/mediagoblin/gmg_commands/migrate.py @@ -16,11 +16,13 @@ import sys -from mediagoblin.db import migrations from mediagoblin.db import util as db_util from mediagoblin.db.open import setup_connection_and_db_from_config from mediagoblin.init.config import read_mediagoblin_config +# This MUST be imported so as to set up the appropriate migrations! +from mediagoblin.db import migrations + def migrate_parser_setup(subparser): subparser.add_argument( From 0d91af09d20791920be287b7f772d8a505efc8d4 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 14 Jul 2011 00:40:16 -0500 Subject: [PATCH 0700/2731] Use cleaned_markdown_conversion in both cases in edit/views.py --- mediagoblin/edit/views.py | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index fac1f41d..f372fbb9 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -18,13 +18,12 @@ from webob import exc from mediagoblin import messages -from mediagoblin.util import render_to_response, redirect, clean_html +from mediagoblin.util import ( + render_to_response, redirect, cleaned_markdown_conversion) from mediagoblin.edit import forms from mediagoblin.edit.lib import may_edit_media from mediagoblin.decorators import require_active_login, get_user_media_entry -import markdown - @get_user_media_entry @require_active_login @@ -51,12 +50,9 @@ def edit_media(request, media): else: media['title'] = request.POST['title'] media['description'] = request.POST.get('description') - - md = markdown.Markdown( - safe_mode = 'escape') - media['description_html'] = clean_html( - md.convert( - media['description'])) + + media['description_html'] = cleaned_markdown_conversion( + media['description']) media['slug'] = request.POST['slug'] media.save() @@ -102,8 +98,7 @@ def edit_profile(request): user['url'] = request.POST['url'] user['bio'] = request.POST['bio'] - md = markdown.Markdown(safe_mode = 'escape') - user['bio_html'] = clean_html(md.convert(user['bio'])) + user['bio_html'] = cleaned_markdown_conversion(user['bio']) user.save() From ef8e47f260a38ecbb37e64277caa87ce14a48556 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Fri, 15 Jul 2011 12:32:21 -0400 Subject: [PATCH 0701/2731] Changes clone url from http url to git url Cloning over http is always yuckier than cloning over git protocol. --- docs/hackinghowto.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index 46288882..4cdbf03c 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -85,7 +85,7 @@ After installing the requirements, follow these steps: 1. Clone the repository:: - git clone http://git.gitorious.org/mediagoblin/mediagoblin.git + git clone git://gitorious.org/mediagoblin/mediagoblin.git 2. Bootstrap and run buildout:: From fa92d52fa5c57f6f76061d161b087f887e912344 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 17 Jul 2011 08:50:09 -0500 Subject: [PATCH 0702/2731] Migration for mediafiles main->original --- mediagoblin/db/migrations.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py index f398f4b3..6a8ebcf9 100644 --- a/mediagoblin/db/migrations.py +++ b/mediagoblin/db/migrations.py @@ -36,3 +36,19 @@ def user_add_bio_html(database): document['bio_html'] = cleaned_markdown_conversion( document['bio']) collection.save(document) + + +@RegisterMigration(2) +def mediaentry_mediafiles_main_to_original(database): + """ + Rename "main" media file to "original". + """ + collection = database['media_entries'] + target = collection.find( + {'media_files.main': {'$exists': True}}) + + for document in target: + original = document['media_files'].pop('main') + document['media_files']['original'] = original + + collection.save(document) From 3f4b5e4a4e318360e02b070b4aee2d0b2c01c3d9 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sun, 17 Jul 2011 17:45:50 +0200 Subject: [PATCH 0703/2731] Move application level setup of database to init/ Setting up the database now involves checking the migrations status and setting up the globals. Moved all of that into init/__init__.py:setup_database(). --- mediagoblin/app.py | 22 ++-------------------- mediagoblin/init/__init__.py | 29 +++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 20 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 1c38f778..85c3c0c7 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -21,15 +21,10 @@ import routes from webob import Request, exc from mediagoblin import routing, util, storage -from mediagoblin.db.open import setup_connection_and_db_from_config -from mediagoblin.db.util import MigrationManager from mediagoblin.mg_globals import setup_globals from mediagoblin.init.celery import setup_celery_from_config from mediagoblin.init import get_jinja_loader, get_staticdirector, \ - setup_global_and_app_config, setup_workbench - -# This MUST be imported so as to set up the appropriate migrations! -from mediagoblin.db import migrations + setup_global_and_app_config, setup_workbench, setup_database class MediaGoblinApp(object): @@ -60,18 +55,7 @@ class MediaGoblinApp(object): ########################################## # Set up the database - self.connection, self.db = setup_connection_and_db_from_config( - app_config) - - # Init the migration number if necessary - migration_manager = MigrationManager(self.db) - migration_manager.install_migration_version_if_missing() - - # Tiny hack to warn user if our migration is out of date - if not migration_manager.database_at_latest_migration(): - print ( - "*WARNING:* Your migrations are out of date, " - "maybe run ./bin/gmg migrate?") + self.connection, self.db = setup_database() # Get the template environment self.template_loader = get_jinja_loader( @@ -108,8 +92,6 @@ class MediaGoblinApp(object): setup_globals( app=self, - db_connection=self.connection, - database=self.db, public_store=self.public_store, queue_store=self.queue_store) diff --git a/mediagoblin/init/__init__.py b/mediagoblin/init/__init__.py index 6320d21b..1e519cc9 100644 --- a/mediagoblin/init/__init__.py +++ b/mediagoblin/init/__init__.py @@ -20,6 +20,8 @@ from mediagoblin.init.config import ( read_mediagoblin_config, generate_validation_report) from mediagoblin import mg_globals from mediagoblin.mg_globals import setup_globals +from mediagoblin.db.open import setup_connection_and_db_from_config +from mediagoblin.db.util import MigrationManager from mediagoblin.workbench import WorkbenchManager @@ -42,6 +44,33 @@ def setup_global_and_app_config(config_path): return global_config, app_config + +def setup_database(): + app_config = mg_globals.app_config + + # This MUST be imported so as to set up the appropriate migrations! + from mediagoblin.db import migrations + + # Set up the database + connection, db = setup_connection_and_db_from_config(app_config) + + # Init the migration number if necessary + migration_manager = MigrationManager(db) + migration_manager.install_migration_version_if_missing() + + # Tiny hack to warn user if our migration is out of date + if not migration_manager.database_at_latest_migration(): + print ( + "*WARNING:* Your migrations are out of date, " + "maybe run ./bin/gmg migrate?") + + setup_globals( + db_connection = connection, + database = db) + + return connection, db + + def get_jinja_loader(user_template_path=None): """ Set up the Jinja template loaders, possibly allowing for user From dd33ed06fbf4b4347b166a94ce137db64806ebef Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 17 Jul 2011 11:32:05 -0500 Subject: [PATCH 0704/2731] Finished the docstring of the creature_add_magical_powers fake migration --- mediagoblin/tests/test_migrations.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mediagoblin/tests/test_migrations.py b/mediagoblin/tests/test_migrations.py index 127b90e1..c100a26a 100644 --- a/mediagoblin/tests/test_migrations.py +++ b/mediagoblin/tests/test_migrations.py @@ -42,7 +42,8 @@ def creature_add_magical_powers(database): Add lists of magical powers. This defaults to [], an empty list. Since we haven't declared any - magical powers, all existing monsters should + magical powers, all existing monsters, setting to an empty list is + fine. """ database['creatures'].update( {'magical_powers': {'$exists': False}}, From 63fd974b4c73b22efd6d95ae91287261adddb580 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 17 Jul 2011 11:36:56 -0500 Subject: [PATCH 0705/2731] Docs: fixing an issue with being unable to install with distribute installed already Basically, use "python bootstrap.py --distribute" if you get DistributionNotFound: distribute --- docs/hackinghowto.rst | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index 4cdbf03c..0e3202ce 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -197,6 +197,18 @@ If it's installed, check the mongodb log. On my machine, that's Then delete the lock file and relaunch mongodb. +pkg_resources.DistributionNotFound: distribute +---------------------------------------------- + +If you get this while running buildout:: + + pkg_resources.DistributionNotFound: distribute + +Try this commmand instead:: + + python bootstrap.py --distribute && ./bin/buildout + + Wiping your user data ===================== From 3923174b706cc0d2f320412dcf1e5b8dc0728b39 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 17 Jul 2011 12:02:13 -0500 Subject: [PATCH 0706/2731] Added instructions on how to run mongod --repair --- docs/hackinghowto.rst | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/hackinghowto.rst b/docs/hackinghowto.rst index 0e3202ce..caafba53 100644 --- a/docs/hackinghowto.rst +++ b/docs/hackinghowto.rst @@ -194,7 +194,14 @@ If it's installed, check the mongodb log. On my machine, that's old lock file: /var/lib/mongodb/mongod.lock. probably means... -Then delete the lock file and relaunch mongodb. +in that case you might have had an unclean shutdown. Try:: + + sudo mongod --repair + +If that didn't work, just delete the lock file and relaunch mongodb. + +Anyway, then start the mongodb server in whatever way is appropriate +for your distro / OS. pkg_resources.DistributionNotFound: distribute From 16bcd1e71494700fba04406c0500a6bb32423d8a Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 17 Jul 2011 15:48:44 -0500 Subject: [PATCH 0707/2731] Docstring for the User model's various schema fields --- mediagoblin/db/models.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 9d7bcf6b..763e4d68 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -37,6 +37,32 @@ from mediagoblin.util import DISPLAY_IMAGE_FETCHING_ORDER class User(Document): + """ + A user of MediaGoblin. + + Structure: + - username: The username of this user, should be unique to this instance. + - email: Email address of this user + - created: When the user was created + - plugin_data: a mapping of extra plugin information for this User. + Nothing uses this yet as we don't have plugins, but someday we + might... :) + - pw_hash: Hashed version of user's password. + - email_verified: Whether or not the user has verified their email or not. + Most parts of the site are disabled for users who haven't yet. + - status: whether or not the user is active, etc. Currently only has two + values, 'needs_email_verification' or 'active'. (In the future, maybe + we'll change this to a boolean with a key of 'active' and have a + separate field for a reason the user's been disabled if that's + appropriate... email_verified is already separate, after all.) + - verification_key: If the user is awaiting email verification, the user + will have to provide this key (which will be encoded in the presented + URL) in order to confirm their email as active. + - is_admin: Whether or not this user is an administrator or not. + - url: this user's personal webpage/website, if appropriate. + - bio: biography of this user (plaintext, in markdown) + - bio_html: biography of the user converted to proper HTML. + """ __collection__ = 'users' structure = { From 080a81ec48b9681ed19adb998340585ed8716c77 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 17 Jul 2011 16:51:36 -0500 Subject: [PATCH 0708/2731] Described the MediaEntry structure in the docstring. --- mediagoblin/db/models.py | 87 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 81 insertions(+), 6 deletions(-) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 763e4d68..db755402 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -88,7 +88,7 @@ class User(Document): 'status': u'needs_email_verification', 'verification_key': lambda: unicode(uuid.uuid4()), 'is_admin': False} - + def check_login(self, password): """ See if a user can login with this password @@ -98,6 +98,81 @@ class User(Document): class MediaEntry(Document): + """ + Record of a piece of media. + + Structure: + - uploader: A reference to a User who uploaded this. + + - title: Title of this work + + - slug: A normalized "slug" which can be used as part of a URL to retrieve + this work, such as 'my-works-name-in-slug-form' may be viewable by + 'http://mg.example.org/u/username/m/my-works-name-in-slug-form/' + Note that since URLs are constructed this way, slugs must be unique + per-uploader. (An index is provided to enforce that but code should be + written on the python side to ensure this as well.) + + - created: Date and time of when this piece of work was uploaded. + + - description: Uploader-set description of this work. This can be marked + up with MarkDown for slight fanciness (links, boldness, italics, + paragraphs...) + + - description_html: Rendered version of the description, run through + Markdown and cleaned with our cleaning tool. + + - media_type: What type of media is this? Currently we only support + 'image' ;) + + - media_data: Extra information that's media-format-dependent. + For example, images might contain some EXIF data that's not appropriate + to other formats. You might store it like: + + mediaentry['media_data']['exif'] = { + 'manufacturer': 'CASIO', + 'model': 'QV-4000', + 'exposure_time': .659} + + Alternately for video you might store: + + # play length in seconds + mediaentry['media_data']['play_length'] = 340 + + ... so what's appropriate here really depends on the media type. + + - plugin_data: a mapping of extra plugin information for this User. + Nothing uses this yet as we don't have plugins, but someday we + might... :) + + - tags: A list of tags. Each tag is stored as a dictionary that has a key + for the actual name and the normalized name-as-slug, so ultimately this + looks like: + [{'name': 'Gully Gardens', + 'slug': 'gully-gardens'}, + {'name': 'Castle Adventure Time?!", + 'slug': 'castle-adventure-time'}] + + - state: What's the state of this file? Active, inactive, disabled, etc... + But really for now there are only two states: + "unprocessed": uploaded but needs to go through processing for display + "processed": processed and able to be displayed + + - queued_media_file: storage interface style filepath describing a file + queued for processing. This is stored in the mg_globals.queue_store + storage system. + + - media_files: Files relevant to this that have actually been processed + and are available for various types of display. Stored like: + {'thumb': ['dir1', 'dir2', 'pic.png'} + + - attachment_files: A list of "attachment" files, ones that aren't + critical to this piece of media but may be usefully relevant to people + viewing the work. (currently unused.) + + - thumbnail_file: Deprecated... we should remove this ;) + + """ __collection__ = 'media_entries' structure = { @@ -164,7 +239,7 @@ class MediaEntry(Document): duplicate = mg_globals.database.media_entries.find_one( {'slug': self['slug']}) - + if duplicate: self['slug'] = "%s-%s" % (self['_id'], self['slug']) @@ -186,12 +261,12 @@ class MediaEntry(Document): 'mediagoblin.user_pages.media_home', user=uploader['username'], media=unicode(self['_id'])) - + def url_to_prev(self, urlgen): """ Provide a url to the previous entry from this user, if there is one """ - cursor = self.db.MediaEntry.find({'_id' : {"$gt": self['_id']}, + cursor = self.db.MediaEntry.find({'_id' : {"$gt": self['_id']}, 'uploader': self['uploader'], 'state': 'processed'}).sort( '_id', ASCENDING).limit(1) @@ -199,12 +274,12 @@ class MediaEntry(Document): return urlgen('mediagoblin.user_pages.media_home', user=self.uploader()['username'], media=unicode(cursor[0]['slug'])) - + def url_to_next(self, urlgen): """ Provide a url to the next entry from this user, if there is one """ - cursor = self.db.MediaEntry.find({'_id' : {"$lt": self['_id']}, + cursor = self.db.MediaEntry.find({'_id' : {"$lt": self['_id']}, 'uploader': self['uploader'], 'state': 'processed'}).sort( '_id', DESCENDING).limit(1) From e83dc091cc8d60f5dd7372b0d684f16fbfbc7fec Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 17 Jul 2011 17:06:06 -0500 Subject: [PATCH 0709/2731] docstring for MediaComment's structure --- mediagoblin/db/models.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index db755402..bad15aca 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -171,7 +171,6 @@ class MediaEntry(Document): viewing the work. (currently unused.) - thumbnail_file: Deprecated... we should remove this ;) - """ __collection__ = 'media_entries' @@ -294,6 +293,18 @@ class MediaEntry(Document): class MediaComment(Document): + """ + A comment on a MediaEntry. + + Structure: + - media_entry: The media entry this comment is attached to + - author: user who posted this comment + - created: when the comment was created + - content: plaintext (but markdown'able) version of the comment's content. + - content_html: the actual html-rendered version of the comment displayed. + Run through Markdown and the HTML cleaner. + """ + __collection__ = 'media_comments' structure = { From dccef26263ba98c47fc5f8121a074a34b012ba89 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sun, 17 Jul 2011 16:09:22 +0200 Subject: [PATCH 0710/2731] Move setting up of storage into init/__init__.py Factoring out this one should be the last one needed to rewrite the celery setup. The idea is to not setup the whole app, but just call a bunch of individual setup_* functions and be done. --- mediagoblin/app.py | 15 +++++---------- mediagoblin/init/__init__.py | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 85c3c0c7..58db4e8d 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -20,11 +20,12 @@ import urllib import routes from webob import Request, exc -from mediagoblin import routing, util, storage +from mediagoblin import routing, util from mediagoblin.mg_globals import setup_globals from mediagoblin.init.celery import setup_celery_from_config from mediagoblin.init import get_jinja_loader, get_staticdirector, \ - setup_global_and_app_config, setup_workbench, setup_database + setup_global_and_app_config, setup_workbench, setup_database, \ + setup_storage class MediaGoblinApp(object): @@ -62,10 +63,7 @@ class MediaGoblinApp(object): app_config.get('user_template_path')) # Set up storage systems - self.public_store = storage.storage_system_from_config( - app_config, 'publicstore') - self.queue_store = storage.storage_system_from_config( - app_config, 'queuestore') + self.public_store, self.queue_store = setup_storage() # set up routing self.routing = routing.get_mapper() @@ -90,10 +88,7 @@ class MediaGoblinApp(object): # object. ####################################################### - setup_globals( - app=self, - public_store=self.public_store, - queue_store=self.queue_store) + setup_globals(app = self) # Workbench *currently* only used by celery, so this only # matters in always eager mode :) diff --git a/mediagoblin/init/__init__.py b/mediagoblin/init/__init__.py index 1e519cc9..64fa9b92 100644 --- a/mediagoblin/init/__init__.py +++ b/mediagoblin/init/__init__.py @@ -23,6 +23,7 @@ from mediagoblin.mg_globals import setup_globals from mediagoblin.db.open import setup_connection_and_db_from_config from mediagoblin.db.util import MigrationManager from mediagoblin.workbench import WorkbenchManager +from mediagoblin.storage import storage_system_from_config class Error(Exception): pass @@ -103,6 +104,19 @@ def get_staticdirector(app_config): "direct_remote_paths must be provided") +def setup_storage(): + app_config = mg_globals.app_config + + public_store = storage_system_from_config(app_config, 'publicstore') + queue_store = storage_system_from_config(app_config, 'queuestore') + + setup_globals( + public_store = public_store, + queue_store = queue_store) + + return public_store, queue_store + + def setup_workbench(): app_config = mg_globals.app_config From 909371cdceace162af880c275b9e6e70488e3029 Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Wed, 20 Jul 2011 23:54:32 -0500 Subject: [PATCH 0711/2731] raises tag length error in form context instead of in message queue --- mediagoblin/edit/forms.py | 5 ++++- mediagoblin/edit/views.py | 4 +--- mediagoblin/submit/forms.py | 5 ++++- mediagoblin/util.py | 35 +++++++++++++++++++++-------------- 4 files changed, 30 insertions(+), 19 deletions(-) diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index 21c8509a..e7a86bba 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -16,6 +16,7 @@ import wtforms +from mediagoblin.util import tag_length_validator, TOO_LONG_TAG_WARNING class EditForm(wtforms.Form): @@ -25,7 +26,9 @@ class EditForm(wtforms.Form): slug = wtforms.TextField( 'Slug') description = wtforms.TextAreaField('Description of this work') - tags = wtforms.TextField('Tags') + tags = wtforms.TextField( + 'Tags', + [tag_length_validator]) class EditProfileForm(wtforms.Form): bio = wtforms.TextAreaField('Bio', diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index df0a0d52..b3d239e1 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -55,6 +55,7 @@ def edit_media(request, media): else: media['title'] = request.POST['title'] media['description'] = request.POST.get('description') + media['tags'] = convert_to_tag_list(request.POST.get('tags')) md = markdown.Markdown( safe_mode = 'escape') @@ -63,9 +64,6 @@ def edit_media(request, media): media['description'])) media['slug'] = request.POST['slug'] - - # Process the user's folksonomy "tags" - media['tags'] = convert_to_tag_list(request) media.save() return redirect(request, "mediagoblin.user_pages.media_home", diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py index 0e0fd086..1a5a7f4e 100644 --- a/mediagoblin/submit/forms.py +++ b/mediagoblin/submit/forms.py @@ -16,6 +16,7 @@ import wtforms +from mediagoblin.util import tag_length_validator, TOO_LONG_TAG_WARNING class SubmitStartForm(wtforms.Form): @@ -24,4 +25,6 @@ class SubmitStartForm(wtforms.Form): [wtforms.validators.Length(min=0, max=500)]) description = wtforms.TextAreaField('Description of this work') file = wtforms.FileField('File') - tags = wtforms.TextField('Tags') + tags = wtforms.TextField( + 'Tags', + [tag_length_validator]) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 44e64258..a84e07c4 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -24,6 +24,7 @@ import urllib from math import ceil from string import strip import copy +import wtforms from babel.localedata import exists import jinja2 @@ -374,14 +375,13 @@ TAGS_DELIMITER = u' ' TAGS_CASE_SENSITIVE = False TAGS_MAX_LENGTH = 50 -def convert_to_tag_list(request): +def convert_to_tag_list(tag_string): """ - Filter input from any "tags" field in the session, + Filter input from incoming string containing user tags, Strips trailing, leading, and internal whitespace, and also converts the "tags" text into an array of tags """ - tag_string = request.POST.get('tags') taglist = [] if tag_string: @@ -394,17 +394,6 @@ def convert_to_tag_list(request): # Do not permit duplicate tags if tag.strip() and tag not in taglist: - # Enforce maximum tag length - if len(tag) > TAGS_MAX_LENGTH: - tag = tag[:TAGS_MAX_LENGTH] + u'...' - messages.add_message( - request, messages.WARNING, \ - u'Tag truncated to ' + unicode(TAGS_MAX_LENGTH) + \ - u' characters.') - messages.add_message( - request, messages.INFO, \ - u'Why the long tag? Seriously.') - if TAGS_CASE_SENSITIVE: taglist.append(tag.strip()) else: @@ -412,6 +401,24 @@ def convert_to_tag_list(request): return taglist +TOO_LONG_TAG_WARNING = \ + u'Tags must be shorter than %s characters. Tags that are too long: %s' + +def tag_length_validator(form, field): + """ + Make sure tags do not exceed the maximum tag length. + """ + tags = convert_to_tag_list(field.data) + too_long_tags = [ + tag for tag in tags + if len(tag) > TAGS_MAX_LENGTH] + + if too_long_tags: + raise wtforms.ValidationError( + TOO_LONG_TAG_WARNING % ( + TAGS_MAX_LENGTH, ', '.join(too_long_tags))) + + MARKDOWN_INSTANCE = markdown.Markdown(safe_mode='escape') def cleaned_markdown_conversion(text): From 0a80ad41a92840f80b306acfb45649eab3f34ae1 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Sun, 24 Jul 2011 15:19:38 -0400 Subject: [PATCH 0712/2731] 333. Adds text about naming bugfix branches --- docs/git.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/git.rst b/docs/git.rst index 73e7a311..bd0f9d52 100644 --- a/docs/git.rst +++ b/docs/git.rst @@ -63,6 +63,10 @@ Further, if you isolate your changes to a branch, then you can work on multiple issues at the same time and they don't conflict with one another. +Name your branches using the isue number and something that makes it clear +what it's about. For example, if you were working on tagging, you +might name your branch ``360_tagging``. + Properly document your changes ------------------------------ From 5fa3588411f402d9ec1dfb3123e9d828c3ce9753 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 24 Jul 2011 14:52:36 -0500 Subject: [PATCH 0713/2731] Make charset utf-8. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks for the patch Velmont / Odin Hørthe Omdal! --- mediagoblin/templates/mediagoblin/base.html | 1 + 1 file changed, 1 insertion(+) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 40bb085e..19239f27 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -17,6 +17,7 @@ #} + {% block title %}GNU MediaGoblin{% endblock title %} From 9a5b2da574278716d9f0b4afc7217166612cad3e Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 24 Jul 2011 15:04:49 -0500 Subject: [PATCH 0714/2731] Add html doctype MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks for the patch Velmont / Odin Hørthe Omdal! --- mediagoblin/templates/mediagoblin/base.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 19239f27..12f188de 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -14,7 +14,8 @@ # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -#} +-#} + From 2684f341f5111fb831fb80e2b3b7ea7401cefc1c Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 24 Jul 2011 15:06:16 -0500 Subject: [PATCH 0715/2731] User profile had the wrong {% else %} nesting. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks for the patch Velmont / Odin Hørthe Omdal! --- user_profile-fix_wrong_nesting.patch | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 user_profile-fix_wrong_nesting.patch diff --git a/user_profile-fix_wrong_nesting.patch b/user_profile-fix_wrong_nesting.patch new file mode 100644 index 00000000..590f87ff --- /dev/null +++ b/user_profile-fix_wrong_nesting.patch @@ -0,0 +1,17 @@ +diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html +index 9d99ac5..a2b85af 100644 +--- a/mediagoblin/templates/mediagoblin/user_pages/user.html ++++ b/mediagoblin/templates/mediagoblin/user_pages/user.html +@@ -42,9 +42,9 @@ + atom feed +- {% else %} +- {# This *should* not occur as the view makes sure we pass in a user. #} +-

            Sorry, no such user found.

            +

            ++ {% else %} ++ {# This *should* not occur as the view makes sure we pass in a user. #} ++

            Sorry, no such user found.

            + {% endif %} + {% endblock %} From 6b9ee0ca13b99ee20f9d0c680a950c6a7494a5a0 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 24 Jul 2011 23:12:46 -0500 Subject: [PATCH 0716/2731] Store the task id of a processing action in the database. --- mediagoblin/db/migrations.py | 12 ++++++++++++ mediagoblin/db/models.py | 3 +++ mediagoblin/submit/views.py | 3 ++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py index 6a8ebcf9..797d39de 100644 --- a/mediagoblin/db/migrations.py +++ b/mediagoblin/db/migrations.py @@ -52,3 +52,15 @@ def mediaentry_mediafiles_main_to_original(database): document['media_files']['original'] = original collection.save(document) + + +@RegisterMigration(3) +def mediaentry_add_queued_task_id(database): + """ + Add the 'queued_task_id' field for entries that don't have it. + """ + collection = database['media_entries'] + collection.update( + {'queued_task_id': {'$exists': False}}, + {'$set': {'queued_task_id': None}}, + multi=True) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index bad15aca..e97dc537 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -162,6 +162,8 @@ class MediaEntry(Document): queued for processing. This is stored in the mg_globals.queue_store storage system. + - queued_task_id: celery task id. Use this to fetch the task state. + - media_files: Files relevant to this that have actually been processed and are available for various types of display. Stored like: {'thumb': ['dir1', 'dir2', 'pic.png'} @@ -190,6 +192,7 @@ class MediaEntry(Document): # For now let's assume there can only be one main file queued # at a time 'queued_media_file': [unicode], + 'queued_task_id': unicode, # A dictionary of logical names to filepaths 'media_files': dict, diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 1848f5e5..f19bf22e 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -84,7 +84,8 @@ def submit_start(request): entry.save(validate=True) # queue it for processing - process_media_initial.delay(unicode(entry['_id'])) + result = process_media_initial.delay(unicode(entry['_id'])) + entry['queued_task_id'] = result.task_id add_message(request, SUCCESS, 'Woohoo! Submitted!') From 6272920cff0f5b5bf1343ee01a33f010d315fe83 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Mon, 25 Jul 2011 21:25:34 +0200 Subject: [PATCH 0717/2731] Assorted style changes, small base.html changes, added new background image --- mediagoblin/static/images/background.png | Bin 0 -> 6336 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 mediagoblin/static/images/background.png diff --git a/mediagoblin/static/images/background.png b/mediagoblin/static/images/background.png new file mode 100644 index 0000000000000000000000000000000000000000..aa101308dc8677b9e606361fdccd33ea4e98cde0 GIT binary patch literal 6336 zcmV;x7(eHUP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipf3 z5;HZHW>iD~000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000;pNkl?1MLn!%?=z5sqEYNYIz+x@2Wl&tG3($23jTvMkf< z^_q_3n5Jo(ZnxXSKd;won&){sj$>MuW!m?By4`NmzVFjK&zGO&8S^|}zMt>!MLyGT4I=E-JZGmw4XFN>7VaIl=HPZ1Yyp6APA zTNv`*e9jA(v2u>wbP7Yp%z5!yJTYF_{LOnZUapDPkn@V*FPvmf2Y1sOmc`BjL_#>Q zEI_`WMdP4fuh+C~+hu~3HmbcW4i`MqMK!`j%`@{EE=1;<@p~~j|2!k>!1r?u(JIsi zZ3Df=6o&uDb=9}owf1F7AOFoo$>L|@vJm-i7A()qruch2Nj|-{HMB1j1_~Ob)AQs> z<@-FZsFyr1Yey|$LEzeDJ*gu3yLq0cg+@G!(Tp4?%mwD|N0N9{qxU0089;Lycv3uQ zK9lc^?zKAOVo(_Pc|Vhm1m8g$Yn7OjMzy`~`+1t}$ix&-jqyayUteDb4K*ib&&0;s zzsrR3LLS$A$40+-M%1hJ*6bx^>>j@jH^*s@G6K`=p*JJ*i-%;pXVqw%YjtmdU$SeF zUhf(uePjfAVmR=5o-eK)Z3zcMJx$%r6Vg02+c8QaZ68l%b3~dqXuD&9jHLS%`<)RE z&Wi%*F|1jfZQCwBF?WtH;R&&8*Nid$L}IDptU9>ac9SFZoM6+}j$5c6?5=aMqqetg zyTmDc=C*AY_dj!Dd}ce#dFM0PNDA{j&(jj!p22hRX(xEZGN^T3PsyYMz!Sk2QzB?c zdDQuHdO=h{ZPRHy{S2S32vl1A}@AvbAcK`T-80e-dvS91Fo*VdlKHq{q z8|<7c#wU!fZ3OT4d&RV@i|u*kdDI4@K#+6t{P=VJ3#7tQA>_x2%tti*}z(j zQvJl4p)-{E*)B3f$ar`IUX514W&~Dwrzx3C_E83ZkP>tbI+T{N43?0 z)r1LextOGIeU#duD7_96o&T_;THW~jEq1WW*+4)4n~UsJLId~so@S%CxmJS)L=CcX zU9HBOy*uG|zm&(c8RrHR#w2*%lx%Kb zBTuy8EZ?!su)%GBBt1LlBslhXlcW4lo}0~Qj%LIKa1xGoYjN5!3rC5tv7{S33e*}? zW81b9o3htJID)q1e!pMT9;Iyr_1hRXMAq&yjj(g&{OoZY)8p}Y17Mk#iOO#FiB1Jw z?Q^|7V5S*!aPp+OR6>hTMf9&V;xUPs>fUF?YQCoepWeT(WD zPk5tj%Z$aDT;N2SK~2XRjU&)Dg|?}kC?g3=i#l5tj)Vb9vei@bvWy^`M%02!{-K-L zkb>qMIIfD(HM-32NB2|Za171!GKgw7mMYQ0@6Em4Zqq`L(0aMKiw?XP)!Xm)ARDWY z(JIxDQRK#rrQ2+BL&h1~XST~vpyVj$GO}BQNumXq!*S-dVQ8n9WiKEg;K&OyWK2)Q z6JeZ^4IJS}MhZqioO3ly=kjC{1Z{4s=VDc5LG)rag2dzTxIp=~CHA~*k5&gUOh$Q= z8ez=IDsyp(f!Tm&<7qsd9&NEgBf;6`IVNGUs@Z}@QMFn!a&7mTNI2c$cACtpIn|-V zdr!>jp%KjDrH*&JNhZS)sAQg_;bu*uGgiC0R6+b*92KAB7GN9s zKG9x&$rzB~4SP8uFU<2iJsywC(WWl9SK&N0rN3ZENP$`YsnhAr%vJ8<1@vSTwKou4a;()$j=6Wy-)&xlsUf(F|@T>rEiA?cv7xk597;o0i7k zCAw>=X@;xua+%Z`)$uhzj}Ae@lRi~^wXz3eVlk*uyG?j}!YSdlhukc)WLm|TODFF4 z`^6ofzrVkaHZk)~8*FWZ>co{XtP#`CDPu?NE%(y0i&jmo(9@&^7T-`UT7_HHHNvzZ zCsUWG!pH)Rpl#cBrILCe4Mun23Li*6os?5M0QdX-0#-KU)Glu%$xep_z?n%WwwMj| zLX8Lx4O(g?bi~~3wmYV2==5ytDV^_qF)xjm04>jd>NbCRyD(O12r|X*m(r(%61j z&DJVhZ$?`POAzrN6VzIDE7PU~+!{~GMVmZ%iTrcYXgloonwy*x)0q5rMCjqsJ~mQ_ ziPWRnCt3(b9O&0$zm(W-g5sVzrhe5rL5G9kmCH?zhCIB_-zvp0&6Stpk` z#5^YIw?=t%)Z0+l)=%G=%%0UN)N0eImeNrJuTMoZCKa@%HLb>v z38dDq%Yo-7_B=Cz#-`r7_Q+vq!b$2-3s4&ecy+d~wXq<5h0;y1&N?yq3n!Ucn?A!9 zj4@hJ#w?^aFYiy}-g4os2-I{OmsYo!rJ)*)-eV3Jzvs;5(!fH}V_K%H(JxzXtQPhA z_>aokoYdm!GDq0lViwI9uNrx3R&y>@7)9Nmnzp&`3p*s4Cl+G(I;t)m^+NO_wOWkq zJnPxH_^q!<^EgQOws3d@vN0|1(t32YL|5=CvtCB5eU7gceHzxGyWblAymbTeNnm1W zlqzlNg=yN>s;@N=Xzri^O{1mUgoeX4$D~#JHVV|J%LAWb?m%PxvviLq+}}SDWCMFP zKsoyE>}H0%V+$JD5o5(Da%(1OCLncnP~IH();ojbS#Es0jcJhFb5D5rx$mz1Ha1$tHt#BW8=e9_LS5Jmeg> z?a{vPC-m;L0g(lttP|C6TGNKhWCTyH<(Ef(K4S(~VKvqx%fT%DqlPbZ%NrtKr^T)@ z15wu%w*HRvNSQzP=9}o?nC}$e)+G4xc)SgsdN_;JTA+^Z2WcH2+_{u0rm3=#{jp1G zZ_tT0y1*CK;GoQ`<#SrehU+bf9=LGHjQ&&DeRSq|K95}M8JKKX<0%<7=i*0tg1)vc zb@ZN`r*1Z>d3UYCiMet2vNE-^F>m5H7<^^7Rkv;;^wLThZ2N$HEp@{792#S!(O;6Th$Z!Ns2ER9y?b|QynS6wr zx^erA)&;>(fy>sc>mAflvYE%A6w)C`I-q%aL~;`yTXl_Sp)H+Yo>_zZKUEeRn`>*f zZQB((X+@2#&(!GZ3jeIBJOh0kOct@}Y}X~)8*>c@DX0ecoLF-A)Yg!Ow3zGt27EF~umy;8busIaFWvWLi%y<6VYuS_h)$4!7i4%Lww{ ziRcZ{*a704Mr`_adPnUB7o)Al{@qrnT@TkfdAeDqF|XzcHD-z7kd|+-%4znX@s$l> zG!<&^ukoAn*Nq8A!LPLjd1ea-#G}lpm&S-XG{(|}n(l)#sq`UmAwR)wm?j$}J`SEyEiD*5koLh0uo14>k zPrf;gHgHsd<T(H~aJsjAh;sps*qvKu9)Y|lr(Inu zG0H=?Rvrx&Z{6w)3Nl`B0|WQ@ZRHQGpBIgA!^~QpNXz}Z@xXa1TLb#mr7Scb_x-fKmBoSgq# ztmXiwHEwCQmyy=#hRCg3ry+i39UJ@JMWj4QnV`q)zJ^AM*-xHWS)&BC`+@BtSrR z%NAv~JdWw1W|)lJ+>zUR=>{}{v{}t+aIDqXS%14Q=2Ii%b`fR%{Qdj)R6+Lq8XM6C zm?Oh$L?Pd!x@#53jjF`{U>*7V{kInFCw_T2a!GG|QzWmt0UvX>U!>T1i98hMuai0f2!;e64~@php*cjW)quBiM?9m98#7 zaMKybJEZow`Y9*T9T(cYyM%;VQ%=J~Z@{4VXCu|>5;uN!ZJ?g9A>;e5oQlD71mAeK z4k#Oqrjfpz-SS;k4U;ml&GjCm1~Q|V#H!G(0Y}|RNBxW6ns>HJrPk%Z$$v^1H;4xA zQ?uhX>6Sa8`eS<~(@Uvl+6~jKjZ=%ry}3qjU$56&;Zm!&^a*TTk8B^$#sRLf9ks)@ ztJs1@mI$|a!dHSjmB~rA>s6o6XYI-22A57XH-@`op4M!i8&A@OJE}SeHZRMN)acJ! z-`;jbsmm4e`{>#c>A1Oxju-NMsvh4+L*jM2gtA5Xts_LkuDC&?&T_mdu9fLERGK!$ zX<`f0#no@@#J1B;0yScQlSR!Xwmzp9*K*x9o&o7v^OjLzQCm1;WUVr{75ldfKSk*?Sey$t7x8zk?=vN86Jm^?u(Mazc% zu5@a*+3?nb#*p;sw>#dhXKEK>w!7t>nrOXZTJtyCJ$`njfA82}#Nul@@KYOB8%N)g zNl%M8kG656Yb{)UKo_^MOw2E)^TCtZfK`{I8Rl=aqZY5UvWnGEaqE-ra)DORXmWF_ z*>kBJsrb$&+M{cTYZfK0a4@Yn0WPa!7S9BTW@8-iax+@FnyZpq$=WE7bgskYa`l3) zI+g3Y$wz4Hh|ty|S>LeGu9#@-lPrFyr(9TfWU#%V`fPW|w;01&QYOO8HES2#Hc-ex>tkY?lXK#&+jgsI zG$ks(w*z%L5$Ts@VgVrw6TzG?YTc&!S@x0lEj?C^*2%4{_v7(6i-vqdL%Tr54vD?E zkt=(<-7fWlZg4;q*b;IrZSm8ch)eTUc-$gQz9g(ofD278!dDoLsGqJYX-t)*b4MK| z>~*#NTdj$i%b7{zaSW3Au#vt?54_ Date: Mon, 25 Jul 2011 21:26:58 +0200 Subject: [PATCH 0718/2731] Ok, so here are the actual changes. Woops! --- mediagoblin/static/css/base.css | 34 ++++++++++------ mediagoblin/templates/mediagoblin/base.html | 44 ++++++++++----------- 2 files changed, 41 insertions(+), 37 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 31b8ebc2..2d099526 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -1,10 +1,12 @@ body { - background-color: #1F1F1F; - color: #aaa; + background-color: #111; + background-image:url("../images/background.png"); + color: #999; font-family: sans-serif; padding:none; margin:0px; height:100%; + font: 16px "HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue",Helvetica,Arial,sans-serif; } form { @@ -18,23 +20,31 @@ form { font-family: 'Carter One'; font-style: normal; font-weight: normal; - src: local('CarterOne'), url('http://themes.googleusercontent.com/font?kit=FWNn6ITYqL6or7ZTmBxRhq3fkYX5z1QtDUdIWoaaD_k') format('woff'); + src: local('CarterOne'), url('http://themes.googleusercontent.com/font?kit=VjW2qt1pkqVtO22ObxgEBRsxEYwM7FgeyaSgU71cLG0') format('woff'); } /* text styles */ h1{ - font-family: 'Carter One', arial, serif; + font-family:'Carter One',arial,serif; margin-bottom: 15px; margin-top:15px; + color:#fff; + font-size: 30px; } h2{ margin-top:20px; + color:#fff; +} + +h3{ + border-bottom:1px solid #222; + font-size:18px; } a { - color: #fff; + color: #999; } label { @@ -49,11 +59,10 @@ label { } .mediagoblin_header { - width:100%; height:36px; - background-color:#2F2F2F; padding-top:14px; - margin-bottom:40px; + margin-bottom:20px; + border-bottom:1px solid #222222; } .header_submit{ @@ -75,12 +84,10 @@ label { } .mediagoblin_footer { - width:100%; height:30px; - background-color:#2F2F2F; + border-top:1px solid #222222; bottom:0px; padding-top:8px; - position:absolute; text-align:center; font-size:14px; color:#999; @@ -129,7 +136,7 @@ text-align:center; /* forms */ .form_box { - background-color:#393939; + background-color:#222; background-image:url("../images/background_lines.png"); background-repeat:repeat-x; font-size:18px; @@ -181,6 +188,7 @@ text-align:center; .comment_author { margin-bottom:40px; padding-top:4px; + font-size:14px; } .comment_content p { @@ -213,7 +221,7 @@ img.media_icon{ display:block; float:left; text-align:center; - background-color:#393939; + background-color:#222; text-decoration:none; padding:12px 0pt; font-family:'Carter One', arial, serif; diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 12f188de..b38ad674 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -36,27 +36,25 @@ {% block mediagoblin_body %}

            {% block mediagoblin_header %} -
            -
            -
            - {% block mediagoblin_logo %} - - {% endblock %} +
            +
            + {% block mediagoblin_logo %} + + {% endblock %} + {% if request.user %} + Submit media + {% endif %} + {% block mediagoblin_header_title %}{% endblock %} +
            {% if request.user %} - Submit media + + {{ request.user['username'] }}'s account + (logout) + {% else %} + + Login {% endif %} - {% block mediagoblin_header_title %}{% endblock %} -
            - {% if request.user %} - - {{ request.user['username'] }}'s account - (logout) - {% else %} - - Login - {% endif %} -
            @@ -69,11 +67,9 @@
            {% block mediagoblin_footer %} - {% else %} diff --git a/mediagoblin/templates/mediagoblin/utils/tags.html b/mediagoblin/templates/mediagoblin/utils/tags.html new file mode 100644 index 00000000..94c4cf69 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/utils/tags.html @@ -0,0 +1,25 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} + +{% block tags_content -%} +
              + {% for tag in media.tags %} +
            • {{ tag['name'] }}
            • + {% endfor %} +
            +{% endblock %} diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 8bb90acf..ab72b5c8 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -371,7 +371,7 @@ def clean_html(html): return HTML_CLEANER.clean_html(html) -def convert_to_tag_list(tag_string): +def convert_to_tag_list_of_dicts(tag_string): """ Filter input from incoming string containing user tags, @@ -389,15 +389,29 @@ def convert_to_tag_list(tag_string): mg_globals.app_config['tags_delimiter']): # Do not permit duplicate tags - if tag.strip() and tag not in taglist: + if tag.strip() and tag.strip() not in taglist: if mg_globals.app_config['tags_case_sensitive']: - taglist.append(tag.strip()) + taglist.append({'name': tag.strip(), + 'slug': slugify(tag.strip())}) else: - taglist.append(tag.strip().lower()) + taglist.append({'name': tag.strip().lower(), + 'slug': slugify(tag.strip().lower())}) return taglist +def media_tags_as_string(media_entry_tags): + """ + Generate a string from a media item's tags, stored as a list of dicts + + This is the opposite of convert_to_tag_list_of_dicts + """ + media_tag_string = '' + if media_entry_tags: + media_tag_string = mg_globals.app_config['tags_delimiter'].join( + [tag['name'] for tag in media_entry_tags]) + return media_tag_string + TOO_LONG_TAG_WARNING = \ u'Tags must be shorter than %s characters. Tags that are too long: %s' @@ -405,10 +419,10 @@ def tag_length_validator(form, field): """ Make sure tags do not exceed the maximum tag length. """ - tags = convert_to_tag_list(field.data) + tags = convert_to_tag_list_of_dicts(field.data) too_long_tags = [ - tag for tag in tags - if len(tag) > mg_globals.app_config['tags_max_length']] + tag['name'] for tag in tags + if len(tag['name']) > mg_globals.app_config['tags_max_length']] if too_long_tags: raise wtforms.ValidationError( From 37be7b6da6aa765991fac55c5c2d0cdb37fd24fc Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Wed, 27 Jul 2011 16:04:41 -0500 Subject: [PATCH 0725/2731] updates indices to index on the slug component of the tag list - uses dot notation to reach into the JSON-style MediaEntry tags field object to index on the slug property of each tag --- mediagoblin/db/indexes.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/db/indexes.py b/mediagoblin/db/indexes.py index 3440ac2a..d0e11311 100644 --- a/mediagoblin/db/indexes.py +++ b/mediagoblin/db/indexes.py @@ -95,14 +95,14 @@ MEDIAENTRY_INDEXES = { # Used for showing media items matching a tag search, most recent first. 'index': [('state', ASCENDING), ('uploader', ASCENDING), - ('tags', DESCENDING), + ('tags.slug', DESCENDING), ('created', DESCENDING)]}, 'state_tags_created': { # Indexing on processed?, media tags, and timestamp (across all users) # This is used for a front page tag search. 'index': [('state', ASCENDING), - ('tags', DESCENDING), + ('tags.slug', DESCENDING), ('created', DESCENDING)]}} From f99b5caeb68cb60d768f0e049388a6f4a8b68ac0 Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Wed, 27 Jul 2011 23:57:43 -0500 Subject: [PATCH 0726/2731] modifies duplicate tag check for list of dict tag type change --- mediagoblin/util.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index ab72b5c8..f051dc50 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -388,8 +388,8 @@ def convert_to_tag_list_of_dicts(tag_string): for tag in stripped_tag_string.split( mg_globals.app_config['tags_delimiter']): - # Do not permit duplicate tags - if tag.strip() and tag.strip() not in taglist: + # Ignore empty or duplicate tags + if tag.strip() and tag.strip() not in [t['name'] for t in taglist]: if mg_globals.app_config['tags_case_sensitive']: taglist.append({'name': tag.strip(), From 4476adcdb02d8c36ae87efe1c00ef0972ecff64d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 28 Jul 2011 21:20:32 -0500 Subject: [PATCH 0727/2731] Make "needs verification" link only appear if you need verification really. --- mediagoblin/templates/mediagoblin/base.html | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 22a691b5..8e3b0724 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -50,10 +50,15 @@ {{ request.user['username'] }}'s account - - - needs verification! + + {# the following link should only appear when verification is needed #} + {% if request.user.status == "needs_email_verification" %} + + needs verification! + {% endif %} + (logout) {% else %} From 990d3b6985041facf391f4ece0829a11c0fd317e Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 28 Jul 2011 22:12:24 -0500 Subject: [PATCH 0728/2731] Give useful verification information on users that need to verify their email --- .../mediagoblin/user_pages/user.html | 63 +++++++++++++------ mediagoblin/user_pages/views.py | 8 ++- 2 files changed, 50 insertions(+), 21 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index b0c1027c..ae540bfe 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -25,22 +25,49 @@ {% endblock mediagoblin_head %} {% block mediagoblin_content -%} - {% if user %} - -
            -

            Verification needed

            - -

            Almost done! Your account still needs to be verified.

            -

            An email should arrive in a few moments with instructions on how to do so.

            -

            In case it doesn't:

            - -
            Resend verification email - -

            Someone has registered an account with this username, but it still has to be verified.

            -

            If you are that person but you've lost your verification email, you can log in and resend it.

            -
            - {# + {# If no user... #} + {% if not user %} +

            Sorry, no such user found.

            + + {# User exists, but needs verification #} + {% elif user.status == "needs_email_verification" %} + {% if user == request.user %} + {# this should only be visible when you are this user #} +

            +

            Verification needed

            + +

            Almost done! Your account still needs to be verified.

            +

            + An email should arrive in a few moments with instructions + on how to do so. +

            +

            In case it doesn't:

            + + Resend verification email +
            + {% else %} + {# if the user is not you, but still needs to verify their email #} +
            +

            Verification needed

            + +

            + Someone has registered an account with this username, but it + still has to be verified. +

            + +

            + If you are that person but you've lost your verification + email, you can + log in + and resend it. +

            +
            + {% endif %} + + {# Active(?) (or at least verified at some point) user, horray! #} + {% else %}

            {{ user.username }}'s profile

            +
            {% include "mediagoblin/utils/profile.html" %} {% if request.user['_id'] == user['_id'] or request.user['is_admin'] %} @@ -48,6 +75,7 @@ user.username }}">Edit profile {% endif %}
            +
            {% set pagination_base_url = user_gallery_url %} {% include "mediagoblin/utils/object_gallery.html" %} @@ -56,10 +84,7 @@ 'mediagoblin.user_pages.atom_feed', user=user.username) }}>atom feed
            +
            - #} - {% else %} - {# This *should* not occur as the view makes sure we pass in a user. #} -

            Sorry, no such user found.

            {% endif %} {% endblock %} diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index a3172ebd..57dcb555 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -32,10 +32,14 @@ from werkzeug.contrib.atom import AtomFeed def user_home(request, page): """'Homepage' of a User()""" user = request.db.User.find_one({ - 'username': request.matchdict['user'], - 'status': 'active'}) + 'username': request.matchdict['user']}) if not user: return exc.HTTPNotFound() + elif user['status'] != u'active': + return render_to_response( + request, + 'mediagoblin/user_pages/user.html', + {'user': user}) cursor = request.db.MediaEntry.find( {'uploader': user['_id'], From f22339d22983cb0fb4d0261c8296e3e27a3f5939 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 28 Jul 2011 22:14:20 -0500 Subject: [PATCH 0729/2731] A small amount of indenting in base.html --- mediagoblin/templates/mediagoblin/base.html | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 8e3b0724..9fcd1dcd 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -39,10 +39,17 @@

            {% block mediagoblin_logo %} - + {% endblock %} {% if request.user %} - Submit media + + Submit media + {% endif %} {% block mediagoblin_header_title %}{% endblock %}
            From 391861ac9feb8e31454f62ba7ca7e70fea2445ef Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 28 Jul 2011 22:15:18 -0500 Subject: [PATCH 0730/2731] I prefer it when "needs verification" looks like a button :) --- mediagoblin/templates/mediagoblin/base.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 9fcd1dcd..c1d3caed 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -62,7 +62,7 @@ {% if request.user.status == "needs_email_verification" %} + class="header_submit"> needs verification! {% endif %} From a435bcb313b1f15d522387a27625fa1ed1290bcb Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 28 Jul 2011 22:19:05 -0500 Subject: [PATCH 0731/2731] I think the "'s account" is a waste of space --- mediagoblin/templates/mediagoblin/base.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index c1d3caed..0dbd6d6f 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -56,7 +56,7 @@ {% if request.user %} - {{ request.user['username'] }}'s account + {{ request.user['username'] }} {# the following link should only appear when verification is needed #} {% if request.user.status == "needs_email_verification" %} From d43b472a08b9debf966015ef2ecfd12e3bc5d9d1 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 29 Jul 2011 08:05:57 -0500 Subject: [PATCH 0732/2731] require_active_login now redirect's to user's homepage if not email verified --- mediagoblin/decorators.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index 081eda62..2e90274e 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -38,8 +38,9 @@ def require_active_login(controller): def new_controller_func(request, *args, **kwargs): if request.user and \ request.user.get('status') == u'needs_email_verification': - return redirect(request, - 'mediagoblin.auth.verify_email_notice') + return redirect( + request, 'mediagoblin.user_pages.user_home', + user=request.user['username']) elif not request.user or request.user.get('status') != u'active': return exc.HTTPFound( location="%s?next=%s" % ( From 61927e6e802d5d138466a9f3c34c6faa91ec19b6 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 29 Jul 2011 08:09:13 -0500 Subject: [PATCH 0733/2731] resend_activation should give the user a message and redirect them to their user_home --- mediagoblin/auth/views.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 7fe507b1..6f3c5165 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -166,4 +166,10 @@ def resend_activation(request): send_verification_email(request.user, request) - return redirect(request, 'mediagoblin.auth.resend_verification_success') + messages.add_message( + request, + messages.INFO, + 'Resent your verification email.') + return redirect( + request, 'mediagoblin.user_pages.user_home', + user=request.user['username']) From 3880c8f31b68cc19a868d738071ea6180100ef22 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 29 Jul 2011 08:10:45 -0500 Subject: [PATCH 0734/2731] "Resend verification email" button should actually resend the verification email --- mediagoblin/templates/mediagoblin/user_pages/user.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index ae540bfe..7769b8b3 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -43,7 +43,8 @@

            In case it doesn't:

            - Resend verification email + Resend verification email
            {% else %} {# if the user is not you, but still needs to verify their email #} From 8adc3841a34ebd54d2542fe3ad3db394c6ccc19a Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 29 Jul 2011 08:11:50 -0500 Subject: [PATCH 0735/2731] Make the button CSS not underline its link text --- mediagoblin/static/css/base.css | 1 + 1 file changed, 1 insertion(+) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 2073ecb8..84eea9ca 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -127,6 +127,7 @@ label { text-align:center; padding-left:11px; padding-right:11px; + text-decoration:none; } .pagination{ From 7074304c91bfc19e2a6365f3d9567ec5a2636f9d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 29 Jul 2011 08:14:02 -0500 Subject: [PATCH 0736/2731] Remove the verification needed page --- mediagoblin/auth/routing.py | 3 -- .../mediagoblin/auth/verification_needed.html | 29 ------------------- 2 files changed, 32 deletions(-) delete mode 100644 mediagoblin/templates/mediagoblin/auth/verification_needed.html diff --git a/mediagoblin/auth/routing.py b/mediagoblin/auth/routing.py index 46c585d2..a50afb48 100644 --- a/mediagoblin/auth/routing.py +++ b/mediagoblin/auth/routing.py @@ -28,9 +28,6 @@ auth_routes = [ controller='mediagoblin.auth.views:logout'), Route('mediagoblin.auth.verify_email', '/verify_email/', controller='mediagoblin.auth.views:verify_email'), - Route('mediagoblin.auth.verify_email_notice', '/verification_required/', - template='mediagoblin/auth/verification_needed.html', - controller='mediagoblin.views:simple_template_render'), Route('mediagoblin.auth.resend_verification', '/resend_verification/', controller='mediagoblin.auth.views:resend_activation'), Route('mediagoblin.auth.resend_verification_success', diff --git a/mediagoblin/templates/mediagoblin/auth/verification_needed.html b/mediagoblin/templates/mediagoblin/auth/verification_needed.html deleted file mode 100644 index 4104da19..00000000 --- a/mediagoblin/templates/mediagoblin/auth/verification_needed.html +++ /dev/null @@ -1,29 +0,0 @@ -{# -# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 Free Software Foundation, Inc -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -#} -{% extends "mediagoblin/base.html" %} - -{% block mediagoblin_content %} -

            - Verfication needed!
            - Please check your email to verify your account. -

            - -

            - Still haven't received an email? Click here to resend it. -

            -{% endblock %} From 0bc036209dab581ad60b97231473c832fca9e875 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 29 Jul 2011 08:22:26 -0500 Subject: [PATCH 0737/2731] Redirect to the user's profile after registration - Updated the view - Updated the tests - Fixed a weirdness in the registration view where the 'user' variable used to be called 'entry' --- mediagoblin/auth/routing.py | 3 --- mediagoblin/auth/views.py | 21 ++++++++++++++------- mediagoblin/tests/test_auth.py | 4 ++-- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/mediagoblin/auth/routing.py b/mediagoblin/auth/routing.py index a50afb48..9547b3ea 100644 --- a/mediagoblin/auth/routing.py +++ b/mediagoblin/auth/routing.py @@ -19,9 +19,6 @@ from routes.route import Route auth_routes = [ Route('mediagoblin.auth.register', '/register/', controller='mediagoblin.auth.views:register'), - Route('mediagoblin.auth.register_success', '/register/success/', - template='mediagoblin/auth/register_success.html', - controller='mediagoblin.views:simple_template_render'), Route('mediagoblin.auth.login', '/login/', controller='mediagoblin.auth.views:login'), Route('mediagoblin.auth.logout', '/logout/', diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 6f3c5165..cf07d668 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -55,16 +55,23 @@ def register(request): else: # Create the user - entry = request.db.User() - entry['username'] = request.POST['username'].lower() - entry['email'] = request.POST['email'] - entry['pw_hash'] = auth_lib.bcrypt_gen_password_hash( + user = request.db.User() + user['username'] = request.POST['username'].lower() + user['email'] = request.POST['email'] + user['pw_hash'] = auth_lib.bcrypt_gen_password_hash( request.POST['password']) - entry.save(validate=True) + user.save(validate=True) - send_verification_email(entry, request) + send_verification_email(user, request) - return redirect(request, "mediagoblin.auth.register_success") + messages.add_message( + request, + messages.INFO, + ('Registration successful! ' + 'You should get a registration email soon.')) + return redirect( + request, 'mediagoblin.user_pages.user_home', + user=user['username']) return render_to_response( request, diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py index ad9dd35b..ccb9a536 100644 --- a/mediagoblin/tests/test_auth.py +++ b/mediagoblin/tests/test_auth.py @@ -153,9 +153,9 @@ def test_register_views(test_app): ## Did we redirect to the proper page? Use the right template? assert_equal( urlparse.urlsplit(response.location)[2], - '/auth/register/success/') + '/u/happygirl/') assert util.TEMPLATE_TEST_CONTEXT.has_key( - 'mediagoblin/auth/register_success.html') + 'mediagoblin/user_pages/user.html') ## Make sure user is in place new_user = mg_globals.database.User.find_one( From dc9cbb3888ea2e285fcf2d8368382a688f03268a Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 29 Jul 2011 08:23:56 -0500 Subject: [PATCH 0738/2731] Only show submit button if user is active --- mediagoblin/templates/mediagoblin/base.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 0dbd6d6f..0a037d26 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -45,7 +45,7 @@ alt="Mediagoblin logo" /> {% endblock %} - {% if request.user %} + {% if request.user and request.user['status'] == 'active' %} Submit media From 7b6836a362a2c4a42be1ae95e7a31e07c113d600 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 29 Jul 2011 08:25:22 -0500 Subject: [PATCH 0739/2731] "Needs verification!" button should go to the left of username Looks cleaner is all.. --- mediagoblin/templates/mediagoblin/base.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 0a037d26..45c17e94 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -54,10 +54,6 @@ {% block mediagoblin_header_title %}{% endblock %}
            From ebcd29d4f8e984f59d808360708f8fc38cfbda99 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 29 Jul 2011 08:27:32 -0500 Subject: [PATCH 0741/2731] Don't need the register success template anymore --- .../mediagoblin/auth/register_success.html | 25 ------------------- 1 file changed, 25 deletions(-) delete mode 100644 mediagoblin/templates/mediagoblin/auth/register_success.html diff --git a/mediagoblin/templates/mediagoblin/auth/register_success.html b/mediagoblin/templates/mediagoblin/auth/register_success.html deleted file mode 100644 index cd82a0b9..00000000 --- a/mediagoblin/templates/mediagoblin/auth/register_success.html +++ /dev/null @@ -1,25 +0,0 @@ -{# -# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 Free Software Foundation, Inc -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -#} -{% extends "mediagoblin/base.html" %} - -{% block mediagoblin_content %} -

            - Register successful! :D
            - You should get a confirmation email soon. -

            -{% endblock %} From 7c9d1a2bca0479d83bff390621c38fac0ef4c144 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 29 Jul 2011 08:36:35 -0500 Subject: [PATCH 0742/2731] Adding spaces after the colon in our CSS file. Discussed this style change with Jef van Schendel and got his buy-in ;) --- mediagoblin/static/css/base.css | 216 ++++++++++++++++---------------- 1 file changed, 108 insertions(+), 108 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 84eea9ca..70db6da9 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -1,17 +1,17 @@ body { background-color: #111; - background-image:url("../images/background.png"); + background-image: url("../images/background.png"); color: #999; font-family: sans-serif; - padding:none; - margin:0px; - height:100%; + padding: none; + margin: 0px; + height: 100%; font: 16px "HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue",Helvetica,Arial,sans-serif; } form { - margin:0px; - padding:0px; + margin: 0px; + padding: 0px; } /* Carter One font */ @@ -26,21 +26,21 @@ form { /* text styles */ h1{ - font-family:'Carter One',arial,serif; + font-family: 'Carter One',arial,serif; margin-bottom: 15px; - margin-top:15px; - color:#fff; + margin-top: 15px; + color: #fff; font-size: 30px; } h2{ - margin-top:20px; - color:#fff; + margin-top: 20px; + color: #fff; } h3{ - border-bottom:1px solid #222; - font-size:18px; + border-bottom: 1px solid #222; + font-size: 18px; } a { @@ -58,201 +58,201 @@ label { /* website structure */ .mediagoblin_body { - position:relative; - min-height:100%; + position: relative; + min-height: 100%; } .mediagoblin_header { - height:36px; - padding-top:14px; - margin-bottom:20px; - border-bottom:1px solid #222222; + height: 36px; + padding-top: 14px; + margin-bottom: 20px; + border-bottom: 1px solid #222222; } .header_submit{ - color:#272727; - background-color:#aaa; + color: #272727; + background-color: #aaa; background-image: -webkit-gradient(linear, left top, left bottom, from(##D2D2D2), to(#aaa)); background-image: -webkit-linear-gradient(top, #D2D2D2, #aaa); background-image: -moz-linear-gradient(top, #D2D2D2, #aaa); background-image: -ms-linear-gradient(top, #D2D2D2, #aaa); background-image: -o-linear-gradient(top, #D2D2D2, #aaa); background-image: linear-gradient(top, #D2D2D2, #aaa); - box-shadow:0px 0px 4px #000; - border-radius:5px 5px 5px 5px; - margin:8px; - padding:3px 8px; - text-decoration:none; - border:medium none; - font-family:'Carter One',arial,serif; + box-shadow: 0px 0px 4px #000; + border-radius: 5px 5px 5px 5px; + margin: 8px; + padding: 3px 8px; + text-decoration: none; + border: medium none; + font-family: 'Carter One',arial,serif; } .mediagoblin_footer { - height:30px; - border-top:1px solid #222222; - bottom:0px; - padding-top:8px; - text-align:center; - font-size:14px; - color:#999; + height: 30px; + border-top: 1px solid #222222; + bottom: 0px; + padding-top: 8px; + text-align: center; + font-size: 14px; + color: #999; } .mediagoblin_content { - padding-bottom:74px; + padding-bottom: 74px; } .mediagoblin_header_right { - float:right; + float: right; } /* common website elements */ .button { - font-family:'Carter One', arial, serif; - height:32px; - min-width:99px; - background-color:#86d4b1; + font-family: 'Carter One', arial, serif; + height: 32px; + min-width: 99px; + background-color: #86d4b1; background-image: -webkit-gradient(linear, left top, left bottom, from(#86d4b1), to(#62caa2)); background-image: -webkit-linear-gradient(top, #86d4b1, #62caa2); background-image: -moz-linear-gradient(top, #86d4b1, #62caa2); background-image: -ms-linear-gradient(top, #86d4b1, #62caa2); background-image: -o-linear-gradient(top, #86d4b1, #62caa2); background-image: linear-gradient(top, #86d4b1, #62caa2); - box-shadow:0px 0px 4px #000; - border-radius:5px; - border:none; - color:#272727; - margin:10px 0px 10px 15px; - font-size:1em; - text-align:center; - padding-left:11px; - padding-right:11px; - text-decoration:none; + box-shadow: 0px 0px 4px #000; + border-radius: 5px; + border: none; + color: #272727; + margin: 10px 0px 10px 15px; + font-size: 1em; + text-align: center; + padding-left: 11px; + padding-right: 11px; + text-decoration: none; } .pagination{ -text-align:center; +text-align: center; } .pagination_arrow{ - margin:5px; + margin: 5px; } /* forms */ .form_box { - background-color:#222; - background-image:url("../images/background_lines.png"); - background-repeat:repeat-x; - font-size:18px; - padding-bottom:30px; - padding-top:30px; - margin-left:auto; - margin-right:auto; - display:block; - float:none; + background-color: #222; + background-image: url("../images/background_lines.png"); + background-repeat: repeat-x; + font-size: 18px; + padding-bottom: 30px; + padding-top: 30px; + margin-left: auto; + margin-right: auto; + display: block; + float: none; } .edit_box { - background-image:url("../images/background_edit.png"); + background-image: url("../images/background_edit.png"); } .form_box h1 { - font-size:28px; + font-size: 28px; } .form_field_input input, .form_field_input textarea { - width:100%; - font-size:18px; + width: 100%; + font-size: 18px; } .form_field_box { - margin-bottom:24px; + margin-bottom: 24px; } .form_field_label,.form_field_input { - margin-bottom:4px; + margin-bottom: 4px; } .form_field_error { - background-color:#87453b; - color:#fff; - border:none; - font-size:16px; - padding:9px; - margin-top:8px; - margin-bottom:8px; + background-color: #87453b; + color: #fff; + border: none; + font-size: 16px; + padding: 9px; + margin-top: 8px; + margin-bottom: 8px; } .form_submit_buttons { - text-align:right; + text-align: right; } /* comments */ .comment_author { - margin-bottom:40px; - padding-top:4px; - font-size:14px; + margin-bottom: 40px; + padding-top: 4px; + font-size: 14px; } .comment_content p { - margin-bottom:4px; + margin-bottom: 4px; } /* media galleries */ .media_thumbnail { - padding:0px; - width:180px; - height:180px; - overflow:hidden; - float:left; - margin:0px 4px 10px 4px; - text-align:center; + padding: 0px; + width: 180px; + height: 180px; + overflow: hidden; + float: left; + margin: 0px 4px 10px 4px; + text-align: center; } /* icons */ img.media_icon{ - margin:0 4px; - vertical-align:sub; + margin: 0 4px; + vertical-align: sub; } /* navigation */ .navigation_button{ - width:139px; - display:block; - float:left; - text-align:center; - background-color:#222; - text-decoration:none; - padding:12px 0pt; - font-family:'Carter One', arial, serif; - font-size:2em; - margin:0 0 20px + width: 139px; + display: block; + float: left; + text-align: center; + background-color: #222; + text-decoration: none; + padding: 12px 0pt; + font-family: 'Carter One', arial, serif; + font-size: 2em; + margin: 0 0 20px } p.navigation_button{ - color:#272727; + color: #272727; } .navigation_left{ - margin-right:2px; + margin-right: 2px; } /* messages */ ul.mediagoblin_messages { - list-style:none inside; - color:#f7f7f7; + list-style: none inside; + color: #f7f7f7; } .mediagoblin_messages li { - margin:5px 0; - padding:8px; - text-align:center; + margin: 5px 0; + padding: 8px; + text-align: center; } .message_success { @@ -273,5 +273,5 @@ ul.mediagoblin_messages { .message_debug { background-color: #f7f7f7; - color:#272727; + color: #272727; } From f73f4c4b8425fb49b95a453107e5717caeb38386 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 29 Jul 2011 08:43:59 -0500 Subject: [PATCH 0743/2731] Log in user after regitration --- mediagoblin/auth/views.py | 6 ++++++ mediagoblin/tests/test_auth.py | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index cf07d668..e0d9c8f1 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -62,8 +62,14 @@ def register(request): request.POST['password']) user.save(validate=True) + # log the user in + request.session['user_id'] = unicode(user['_id']) + request.session.save() + + # send verification email send_verification_email(user, request) + # give the user a message and redirect messages.add_message( request, messages.INFO, diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py index ccb9a536..f0bb183f 100644 --- a/mediagoblin/tests/test_auth.py +++ b/mediagoblin/tests/test_auth.py @@ -164,6 +164,11 @@ def test_register_views(test_app): assert new_user['status'] == u'needs_email_verification' assert new_user['email_verified'] == False + ## Make sure user is logged in + request = util.TEMPLATE_TEST_CONTEXT[ + 'mediagoblin/user_pages/user.html']['request'] + assert request.session['user_id'] == unicode(new_user['_id']) + ## Make sure we get email confirmation, and try verifying assert len(util.EMAIL_TEST_INBOX) == 1 message = util.EMAIL_TEST_INBOX.pop() From dce5c9cb9b28154edef85f5c9031f6a67be503ea Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 29 Jul 2011 08:44:47 -0500 Subject: [PATCH 0744/2731] Remove this superfluous "registration successful" message --- mediagoblin/auth/views.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index e0d9c8f1..fb5db870 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -69,12 +69,8 @@ def register(request): # send verification email send_verification_email(user, request) - # give the user a message and redirect - messages.add_message( - request, - messages.INFO, - ('Registration successful! ' - 'You should get a registration email soon.')) + # redirect the user to their homepage... there will be a + # message waiting for them to verify their email return redirect( request, 'mediagoblin.user_pages.user_home', user=user['username']) From 8ff4dec742d0b9f375afd9d1862a560e1be200d1 Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Fri, 29 Jul 2011 13:56:40 -0500 Subject: [PATCH 0745/2731] Adds tag unit testing - overrides default tag parsing globals in test_mgoblin_app.ini - piggybacks on existing test_submission code to check correct tag parsing and storage in the database - verifies expected behavior given different delimiters, case sensitivities, tags that are too long, and extra whitespace - verifies list-of-dict database storage and tag slugification --- mediagoblin/tests/test_mgoblin_app.ini | 5 + mediagoblin/tests/test_submission.py | 198 +++++++++++++++++++++ mediagoblin/tests/test_submission/evil | Bin 0 -> 96284 bytes mediagoblin/tests/test_submission/evil.jpg | Bin 0 -> 96284 bytes mediagoblin/tests/test_submission/evil.png | Bin 0 -> 96284 bytes mediagoblin/tests/test_submission/good.jpg | Bin 0 -> 10059 bytes mediagoblin/tests/test_submission/good.png | Bin 0 -> 50598 bytes mediagoblin/tests/test_tags.py | 57 ++++++ 8 files changed, 260 insertions(+) create mode 100644 mediagoblin/tests/test_submission.py create mode 100755 mediagoblin/tests/test_submission/evil create mode 100755 mediagoblin/tests/test_submission/evil.jpg create mode 100755 mediagoblin/tests/test_submission/evil.png create mode 100644 mediagoblin/tests/test_submission/good.jpg create mode 100644 mediagoblin/tests/test_submission/good.png create mode 100644 mediagoblin/tests/test_tags.py diff --git a/mediagoblin/tests/test_mgoblin_app.ini b/mediagoblin/tests/test_mgoblin_app.ini index fd0f87a4..5395ca10 100644 --- a/mediagoblin/tests/test_mgoblin_app.ini +++ b/mediagoblin/tests/test_mgoblin_app.ini @@ -7,6 +7,11 @@ email_sender_address = "notice@mediagoblin.example.org" email_debug_mode = true db_name = __mediagoblin_tests__ +# tag parsing +tags_delimiter = "," +tags_case_sensitive = False +tags_max_length = 50 + # Celery shouldn't be set up by the application as it's setup via # mediagoblin.init.celery.from_celery celery_setup_elsewhere = true diff --git a/mediagoblin/tests/test_submission.py b/mediagoblin/tests/test_submission.py new file mode 100644 index 00000000..7c6b0f75 --- /dev/null +++ b/mediagoblin/tests/test_submission.py @@ -0,0 +1,198 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import urlparse +import pkg_resources + +from nose.tools import assert_equal + +from mediagoblin.auth import lib as auth_lib +from mediagoblin.tests.tools import setup_fresh_app, get_test_app +from mediagoblin import mg_globals +from mediagoblin import util + +GOOD_JPG = pkg_resources.resource_filename( + 'mediagoblin.tests', 'test_submission/good.jpg') +GOOD_PNG = pkg_resources.resource_filename( + 'mediagoblin.tests', 'test_submission/good.png') +EVIL_FILE = pkg_resources.resource_filename( + 'mediagoblin.tests', 'test_submission/evil') +EVIL_JPG = pkg_resources.resource_filename( + 'mediagoblin.tests', 'test_submission/evil.jpg') +EVIL_PNG = pkg_resources.resource_filename( + 'mediagoblin.tests', 'test_submission/evil.png') + +GOOD_TAG_STRING = 'yin,yang' +BAD_TAG_STRING = 'rage,' + 'f' * 26 + 'u' * 26 + + +class TestSubmission: + def setUp(self): + self.test_app = get_test_app() + + # TODO: Possibly abstract into a decorator like: + # @as_authenticated_user('chris') + test_user = mg_globals.database.User() + test_user['username'] = u'chris' + test_user['email'] = u'chris@example.com' + test_user['email_verified'] = True + test_user['status'] = u'active' + test_user['pw_hash'] = auth_lib.bcrypt_gen_password_hash('toast') + test_user.save() + + self.test_app.post( + '/auth/login/', { + 'username': u'chris', + 'password': 'toast'}) + + def test_missing_fields(self): + # Test blank form + # --------------- + util.clear_test_template_context() + response = self.test_app.post( + '/submit/', {}) + context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] + form = context['submit_form'] + assert form.file.errors == [u'You must provide a file.'] + + # Test blank file + # --------------- + util.clear_test_template_context() + response = self.test_app.post( + '/submit/', { + 'title': 'test title'}) + context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] + form = context['submit_form'] + assert form.file.errors == [u'You must provide a file.'] + + + def test_normal_uploads(self): + # Test JPG + # -------- + util.clear_test_template_context() + response = self.test_app.post( + '/submit/', { + 'title': 'Normal upload 1' + }, upload_files=[( + 'file', GOOD_JPG)]) + + # User should be redirected + response.follow() + assert_equal( + urlparse.urlsplit(response.location)[2], + '/u/chris/') + assert util.TEMPLATE_TEST_CONTEXT.has_key( + 'mediagoblin/user_pages/user.html') + + # Test PNG + # -------- + util.clear_test_template_context() + response = self.test_app.post( + '/submit/', { + 'title': 'Normal upload 2' + }, upload_files=[( + 'file', GOOD_PNG)]) + + response.follow() + assert_equal( + urlparse.urlsplit(response.location)[2], + '/u/chris/') + assert util.TEMPLATE_TEST_CONTEXT.has_key( + 'mediagoblin/user_pages/user.html') + + + def test_tags(self): + # Good tag string + # -------- + util.clear_test_template_context() + response = self.test_app.post( + '/submit/', { + 'title': 'Balanced Goblin', + 'tags': GOOD_TAG_STRING + }, upload_files=[( + 'file', GOOD_JPG)]) + + # New media entry with correct tags should be created + response.follow() + context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/user_pages/user.html'] + request = context['request'] + media = request.db.MediaEntry.find({'title': 'Balanced Goblin'})[0] + assert_equal(media['tags'], + [{'name': u'yin', 'slug': u'yin'}, + {'name': u'yang', 'slug': u'yang'}]) + + # Test tags that are too long + # --------------- + util.clear_test_template_context() + response = self.test_app.post( + '/submit/', { + 'title': 'Balanced Goblin', + 'tags': BAD_TAG_STRING + }, upload_files=[( + 'file', GOOD_JPG)]) + + # Too long error should be raised + context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] + form = context['submit_form'] + assert form.tags.errors == [ + u'Tags must be shorter than 50 characters. Tags that are too long'\ + ': ffffffffffffffffffffffffffuuuuuuuuuuuuuuuuuuuuuuuuuu'] + + + def test_malicious_uploads(self): + # Test non-suppoerted file with non-supported extension + # ----------------------------------------------------- + util.clear_test_template_context() + response = self.test_app.post( + '/submit/', { + 'title': 'Malicious Upload 2' + }, upload_files=[( + 'file', EVIL_FILE)]) + + context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] + form = context['submit_form'] + assert form.file.errors == ['The file doesn\'t seem to be an image!'] + + # NOTE: The following 2 tests will fail. These can be uncommented + # after http://bugs.foocorp.net/issues/324 is resolved and + # bad files are handled properly. + + # Test non-supported file with .jpg extension + # ------------------------------------------- + #util.clear_test_template_context() + #response = self.test_app.post( + # '/submit/', { + # 'title': 'Malicious Upload 2' + # }, upload_files=[( + # 'file', EVIL_JPG)]) + + #context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] + #form = context['submit_form'] + #assert form.file.errors == ['The file doesn\'t seem to be an image!'] + + # Test non-supported file with .png extension + # ------------------------------------------- + #util.clear_test_template_context() + #response = self.test_app.post( + # '/submit/', { + # 'title': 'Malicious Upload 3' + # }, upload_files=[( + # 'file', EVIL_PNG)]) + + #context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] + #form = context['submit_form'] + #assert form.file.errors == ['The file doesn\'t seem to be an image!'] + diff --git a/mediagoblin/tests/test_submission/evil b/mediagoblin/tests/test_submission/evil new file mode 100755 index 0000000000000000000000000000000000000000..775da66498273a5de4e7b8518f2735fd854c3d89 GIT binary patch literal 96284 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 literal 0 HcmV?d00001 diff --git a/mediagoblin/tests/test_submission/good.png b/mediagoblin/tests/test_submission/good.png new file mode 100644 index 0000000000000000000000000000000000000000..c1eadf9c2cf5461b8078182c59afdd4c2b3e3ab9 GIT binary patch literal 50598 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. + +from mediagoblin.tests.tools import setup_fresh_app +from mediagoblin import util +from mediagoblin import mg_globals + + +@setup_fresh_app +def test_list_of_dicts_conversion(test_app): + """ + When the user adds tags to a media entry, the string from the form is + converted into a list of tags, where each tag is stored in the database + as a dict. Each tag dict should contain the tag's name and slug. Another + function performs the reverse operation when populating a form to edit tags. + """ + # Leading, trailing, and internal whitespace should be removed and slugified + assert util.convert_to_tag_list_of_dicts('sleep , 6 AM, chainsaw! ') == [ + {'name': u'sleep', 'slug': u'sleep'}, + {'name': u'6 am', 'slug': u'6-am'}, + {'name': u'chainsaw!', 'slug': u'chainsaw'}] + + # Make sure case-sensitivity is retained when desired + mg_globals.app_config['tags_case_sensitive'] = True + assert util.convert_to_tag_list_of_dicts('sleep , 6 AM, chainsaw! ') == [ + {'name': u'sleep', 'slug': u'sleep'}, + {'name': u'6 AM', 'slug': u'6-am'}, + {'name': u'chainsaw!', 'slug': u'chainsaw'}] + + # If the user enters two identical tags, record only one of them + assert util.convert_to_tag_list_of_dicts('echo,echo') == [{'name': u'echo', + 'slug': u'echo'}] + + # Make sure converting the list of dicts to a string works + assert util.media_tags_as_string([{'name': u'yin', 'slug': u'yin'}, + {'name': u'yang', 'slug': u'yang'}]) == \ + u'yin,yang' + + # If the tag delimiter is a space then we expect different results + mg_globals.app_config['tags_delimiter'] = u' ' + assert util.convert_to_tag_list_of_dicts('unicorn ceramic nazi') == [ + {'name': u'unicorn', 'slug': u'unicorn'}, + {'name': u'ceramic', 'slug': u'ceramic'}, + {'name': u'nazi', 'slug': u'nazi'}] From a7e23c4863999a996ee56917755bef5d7ae8f69f Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Wed, 27 Jul 2011 15:02:30 -0700 Subject: [PATCH 0746/2731] Minor tweaks to README. --- README | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README b/README index 2ef6f78e..082ab2a7 100644 --- a/README +++ b/README @@ -12,7 +12,7 @@ What is GNU MediaGoblin? * Federated with OStatus! * Customizable! * A place for people to collaborate and show off original and derived - creations. Free, as in freedom. We’re a GNU project in the making, + creations. Free, as in freedom. We’re a GNU project in the making, afterall. @@ -34,5 +34,5 @@ Where is the documentation? =========================== Documentation is located in the ``docs/`` directory in a "raw" -restructured-text form. It is also mirrored at +restructured-text form. It is also available at http://docs.mediagoblin.org/ in HTML form. From 24c5c586dfe2ae047ca116c54b256b7d70273c62 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Wed, 27 Jul 2011 15:16:42 -0700 Subject: [PATCH 0747/2731] Tweaks maketarball.sh This tweaks maketarball.sh so that it takes a -d argument which adds the date to the filename and parent directory. Also, this changes maketarball.sh so it requires a rev-ish--no more "by default, grabs master". --- maketarball.sh | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/maketarball.sh b/maketarball.sh index 2ee78016..635ba481 100755 --- a/maketarball.sh +++ b/maketarball.sh @@ -1,29 +1,31 @@ #!/bin/bash -# usage: maketarball -# maketarball +# usage: maketarball [-d] # -# With no arguments, this creates a source tarball from git master with a -# filename based on today's date. -# -# With a argument, this creates a tarball of the tag. +# Creates a tarball from a rev-ish. If -d is passed in, then it adds +# the date to the directory name. # # Examples: # -# ./maketarball +# ./maketarball -d master # ./maketarball v0.0.2 +if [[ -z "$1" ]]; then + echo "Usage: ./maketarball [-d] "; + exit 1; +fi + NOWDATE=`date "+%Y-%m-%d"` -if [ -z "$1" ] -then - REVISH=master +if [[ $@ == *-d* ]]; then + REVISH=$2 PREFIX="$NOWDATE-$REVISH" else REVISH=$1 PREFIX="$REVISH" fi + # convert PREFIX to all lowercase. # nix the v from tag names. PREFIX=`echo "$PREFIX" | tr '[A-Z]' '[a-z]' | sed s/v//` @@ -54,4 +56,4 @@ gzip mediagoblin-$PREFIX.tar echo "archive at mediagoblin-$PREFIX.tar.gz" -echo "done." \ No newline at end of file +echo "done." From 0c0fc054e64907e12996e3c47471893c19faddbd Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Wed, 27 Jul 2011 15:19:51 -0700 Subject: [PATCH 0748/2731] Cosmetic. Tweaks spacing. --- lazyserver.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lazyserver.sh b/lazyserver.sh index 4f10f771..e4afdaa5 100755 --- a/lazyserver.sh +++ b/lazyserver.sh @@ -18,18 +18,18 @@ if [ "$1" = "-h" ] then - echo "$0 [-h] [-c paste.ini] ARGS_to_paster" - echo " For example:" - echo " $0 -c fcgi.ini port_number=23371" - exit 1 + echo "$0 [-h] [-c paste.ini] ARGS_to_paster" + echo " For example:" + echo " $0 -c fcgi.ini port_number=23371" + exit 1 fi PASTE_INI=paste.ini if [ "$1" = "-c" ] then - PASTE_INI="$2" - shift - shift + PASTE_INI="$2" + shift + shift fi if [ -f ./bin/paster ]; then From 88bbab2789b91d2de1783f7f5a8670b4a0f01a4a Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Wed, 27 Jul 2011 15:20:07 -0700 Subject: [PATCH 0749/2731] Adds license/copyright header to maketarball.sh --- maketarball.sh | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/maketarball.sh b/maketarball.sh index 635ba481..5ded9671 100755 --- a/maketarball.sh +++ b/maketarball.sh @@ -1,5 +1,22 @@ #!/bin/bash +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + # usage: maketarball [-d] # # Creates a tarball from a rev-ish. If -d is passed in, then it adds @@ -11,7 +28,7 @@ # ./maketarball v0.0.2 if [[ -z "$1" ]]; then - echo "Usage: ./maketarball [-d] "; + echo "Usage: $0 [-d] "; exit 1; fi From 763cf83f641e03070f11304a8bdeee31eab1a726 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Wed, 27 Jul 2011 15:38:47 -0700 Subject: [PATCH 0750/2731] Moves destroy_environment to wipealldata command --- destroy_environment.py | 22 ----------- mediagoblin/gmg_commands/__init__.py | 4 ++ mediagoblin/gmg_commands/wipealldata.py | 51 +++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 22 deletions(-) delete mode 100755 destroy_environment.py create mode 100644 mediagoblin/gmg_commands/wipealldata.py diff --git a/destroy_environment.py b/destroy_environment.py deleted file mode 100755 index bbdeffe9..00000000 --- a/destroy_environment.py +++ /dev/null @@ -1,22 +0,0 @@ -#!./bin/python - -import pymongo -import sys, os - -print "*** WARNING! ***" -print " Running this will destroy your mediagoblin database," -print " remove all your media files in user_dev/, etc." - -drop_it = raw_input( - 'Are you SURE you want to destroy your environment? (if so, type "yes")> ') - -if not drop_it == 'yes': - sys.exit(1) - -conn = pymongo.Connection() -conn.drop_database('mediagoblin') - -os.popen('rm -rf user_dev/media') -os.popen('rm -rf user_dev/beaker') - -print "removed all your stuff! okay, now re-run ./bin/buildout" diff --git a/mediagoblin/gmg_commands/__init__.py b/mediagoblin/gmg_commands/__init__.py index 0cb4d3a2..921f0430 100644 --- a/mediagoblin/gmg_commands/__init__.py +++ b/mediagoblin/gmg_commands/__init__.py @@ -40,6 +40,10 @@ SUBCOMMAND_MAP = { 'setup': 'mediagoblin.gmg_commands.users:changepw_parser_setup', 'func': 'mediagoblin.gmg_commands.users:changepw', 'help': 'Makes admin an user'}, + 'wipealldata': { + 'setup': 'mediagoblin.gmg_commands.wipealldata:wipe_parser_setup', + 'func': 'mediagoblin.gmg_commands.wipealldata:wipe', + 'help': 'Wipes **all** the data for this MediaGoblin instance'}, } diff --git a/mediagoblin/gmg_commands/wipealldata.py b/mediagoblin/gmg_commands/wipealldata.py new file mode 100644 index 00000000..9ad32051 --- /dev/null +++ b/mediagoblin/gmg_commands/wipealldata.py @@ -0,0 +1,51 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import sys +import pymongo +import sys +import os +import shutil + + +def wipe_parser_setup(subparser): + pass + + +def wipe(args): + print "*** WARNING! ***" + print "" + print "Running this will destroy your mediagoblin database," + print "remove all your media files in user_dev/, etc." + + drop_it = raw_input( + 'Are you **SURE** you want to destroy your environment? ' + '(if so, type "yes")> ') + + if not drop_it == 'yes': + return + + print "nixing data in mongodb...." + conn = pymongo.Connection() + conn.drop_database('mediagoblin') + + for directory in [os.path.join(os.getcwd(), "user_dev", "media"), + os.path.join(os.getcwd(), "user_dev", "beaker")]: + if os.path.exists(directory): + print "nixing %s...." % directory + shutil.rmtree(directory) + + print "removed all your stuff! okay, now re-run ./bin/buildout" From fc3dc2554179b9e08209ed27a750bb581fe2d85c Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Wed, 27 Jul 2011 16:16:05 -0700 Subject: [PATCH 0751/2731] Adds license header --- mediagoblin/edit/__init__.py | 17 +++++++++++++++++ mediagoblin/gmg_commands/users.py | 16 ++++++++++++++++ mediagoblin/mg_globals.py | 15 +++++++++++++++ mediagoblin/submit/__init__.py | 17 +++++++++++++++++ mediagoblin/user_pages/__init__.py | 17 +++++++++++++++++ 5 files changed, 82 insertions(+) diff --git a/mediagoblin/edit/__init__.py b/mediagoblin/edit/__init__.py index e69de29b..a8eeb5ed 100644 --- a/mediagoblin/edit/__init__.py +++ b/mediagoblin/edit/__init__.py @@ -0,0 +1,17 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + diff --git a/mediagoblin/gmg_commands/users.py b/mediagoblin/gmg_commands/users.py index b4a6bbc1..14b6875d 100644 --- a/mediagoblin/gmg_commands/users.py +++ b/mediagoblin/gmg_commands/users.py @@ -1,3 +1,19 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + from mediagoblin.gmg_commands import util as commands_util from mediagoblin.auth import lib as auth_lib from mediagoblin import mg_globals diff --git a/mediagoblin/mg_globals.py b/mediagoblin/mg_globals.py index 12a0e016..80ff5ead 100644 --- a/mediagoblin/mg_globals.py +++ b/mediagoblin/mg_globals.py @@ -1,3 +1,18 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . """ In some places, we need to access the database, public_store, queue_store """ diff --git a/mediagoblin/submit/__init__.py b/mediagoblin/submit/__init__.py index e69de29b..a8eeb5ed 100644 --- a/mediagoblin/submit/__init__.py +++ b/mediagoblin/submit/__init__.py @@ -0,0 +1,17 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + diff --git a/mediagoblin/user_pages/__init__.py b/mediagoblin/user_pages/__init__.py index e69de29b..a8eeb5ed 100644 --- a/mediagoblin/user_pages/__init__.py +++ b/mediagoblin/user_pages/__init__.py @@ -0,0 +1,17 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + From 50854db05d130ef4b564379584d147880fe72a92 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Wed, 27 Jul 2011 16:21:21 -0700 Subject: [PATCH 0752/2731] Tweaks import lines switching \ for ( ). --- mediagoblin/app.py | 6 +++--- mediagoblin/user_pages/views.py | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 58db4e8d..c1ee3d77 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -23,9 +23,9 @@ from webob import Request, exc from mediagoblin import routing, util from mediagoblin.mg_globals import setup_globals from mediagoblin.init.celery import setup_celery_from_config -from mediagoblin.init import get_jinja_loader, get_staticdirector, \ - setup_global_and_app_config, setup_workbench, setup_database, \ - setup_storage +from mediagoblin.init import (get_jinja_loader, get_staticdirector, + setup_global_and_app_config, setup_workbench, setup_database, + setup_storage) class MediaGoblinApp(object): diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 57dcb555..dc71b059 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -22,8 +22,8 @@ from mediagoblin.util import ( Pagination, render_to_response, redirect, cleaned_markdown_conversion) from mediagoblin.user_pages import forms as user_forms -from mediagoblin.decorators import uses_pagination, get_user_media_entry, \ - require_active_login +from mediagoblin.decorators import (uses_pagination, get_user_media_entry, + require_active_login) from werkzeug.contrib.atom import AtomFeed From 482d53cd30229798ff58f9d6f3cbb3b86f94f218 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 30 Jul 2011 12:33:57 -0500 Subject: [PATCH 0753/2731] Let users know when their migrations are from the future :O --- mediagoblin/init/__init__.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/mediagoblin/init/__init__.py b/mediagoblin/init/__init__.py index 64fa9b92..ff005703 100644 --- a/mediagoblin/init/__init__.py +++ b/mediagoblin/init/__init__.py @@ -61,9 +61,16 @@ def setup_database(): # Tiny hack to warn user if our migration is out of date if not migration_manager.database_at_latest_migration(): - print ( - "*WARNING:* Your migrations are out of date, " - "maybe run ./bin/gmg migrate?") + db_migration_num = migration_manager.database_current_migration() + latest_migration_num = migration_manager.latest_migration() + if db_migration_num < latest_migration_num: + print ( + "*WARNING:* Your migrations are out of date, " + "maybe run ./bin/gmg migrate?") + elif db_migration_num > latest_migration_num: + print ( + "*WARNING:* Your migrations are out of date... " + "in fact they appear to be from the future?!") setup_globals( db_connection = connection, From d4535719370ca3be4790070e4bbe572671ba6045 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Sat, 30 Jul 2011 16:25:44 -0400 Subject: [PATCH 0754/2731] 460. Adds texinfo output bits Building texinfo version of the manual only works with Sphinx from hg tip at present. Also, there are some minor issues and someone should go through the manual and read it to make sure there aren't issues. --- docs/Makefile | 21 +++++++++++++++++++++ docs/conf.py | 23 +++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/docs/Makefile b/docs/Makefile index 81fc3d13..9a4608de 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -12,6 +12,9 @@ PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . +# the i18n builder cannot share the environment and doctrees with the others +I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . + .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest help: @@ -113,6 +116,24 @@ man: @echo @echo "Build finished. The manual pages are in $(BUILDDIR)/man." +texinfo: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo + @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." + @echo "Run \`make' in that directory to run these through makeinfo" \ + "(use \`make info' here to do that automatically)." + +info: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo "Running Texinfo files through makeinfo..." + make -C $(BUILDDIR)/texinfo info + @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." + +gettext: + $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale + @echo + @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." + changes: $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes @echo diff --git a/docs/conf.py b/docs/conf.py index 6c64cdda..a7acd3e2 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -214,3 +214,26 @@ man_pages = [ ('index', 'gnumediagoblin', u'GNU MediaGoblin Documentation', [u'Chris Webber, et al'], 1) ] + +# If true, show URL addresses after external links. +#man_show_urls = False + + +# -- Options for Texinfo output ------------------------------------------------ + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + ('index', 'gnumediagoblin', u'GNU MediaGoblin Documentation', u'gnumediagoblin', + 'GNU MediaGoblin', 'Media sharing web application.', 'Miscellaneous'), +] + +# Documents to append as an appendix to all manuals. +#texinfo_appendices = [] + +# If false, no module index is generated. +#texinfo_domain_indices = True + +# How to display URL addresses: 'footnote', 'no', or 'inline'. +#texinfo_show_urls = 'footnote' From 2271286079397b8f9f1adc23e36c35a5d8ea35e2 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Sat, 30 Jul 2011 19:52:19 -0400 Subject: [PATCH 0755/2731] 270, 459. extlib policy, JS -> lgpl, ... * adds README to extlib/ * changes javascript to lgpl * also fixes the agplv3 text so that it says "agplv3 or later" * moves license files into licenses/ * adds lgplv3 license --- COPYING | 60 +++++++--- extlib/README | 71 ++++++++++++ AGPLv3.txt => licenses/AGPLv3.txt | 0 CC0_1.0.txt => licenses/CC0_1.0.txt | 0 licenses/LGPLv3.txt | 165 ++++++++++++++++++++++++++++ 5 files changed, 279 insertions(+), 17 deletions(-) create mode 100644 extlib/README rename AGPLv3.txt => licenses/AGPLv3.txt (100%) rename CC0_1.0.txt => licenses/CC0_1.0.txt (100%) create mode 100644 licenses/LGPLv3.txt diff --git a/COPYING b/COPYING index fc930ccb..6895d3b8 100644 --- a/COPYING +++ b/COPYING @@ -2,30 +2,56 @@ COPYING ========= -GNU MediaGoblin is composed of the following kinds of files: +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as +published by the Free Software Foundation, either version 3 of the +License, or (at your option) any later version. -* software files: Python, JavaScript and HTML templates -* non-software data: CSS, images, and video -* documentation +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public +License along with this program, in the file ``licenses/AGPLv3.txt``. +If not, see . -Software files -============== +JavaScript files located in the ``mediagoblin/`` directory tree of +are free software: you can redistribute and/or modify them under the +terms of the GNU Lesser General Public License as published by the +Free Software Foundation, either version 3 of the License, or (at +your option) any later version. -Python, JavaScript, and template files files are released under the -AGPL v3. The text of this license is located in ``AGPLv3.txt``. +You should have received a copy of the GNU Lesser General Public +License along with this program, in the file ``licenses/LGPLv3.txt``. +If not, see . -Non-software data -================= +Documentation files located in the ``docs/`` directory tree are released +under a CC0 license. To the extent possible under law, the author(s) +have dedicated all copyright and related and neighboring rights to these +files to the public domain worldwide. These files are distributed +without any warranty. -CSS, images and video are all released under a CC0 license. The text -of this license is located in ``CC0_1.0.txt``. +You should have received a copy of the CC0 license in the file +``licenses/CC0_1.0.txt``. If not, see +. -Documentation -============= +CSS, images and video located in the ``mediagoblin/`` directory tree are +released under a CC0 license. To the extent possible under law, the author(s) +have dedicated all copyright and related and neighboring rights to these +files to the public domain worldwide. These files are distributed without +any warranty. -All documentation is under the ``docs/`` directory. These materials -are all released under a CC0 license. The text of this license is -located in ``CC0_1.0.txt``. +You should have received a copy of the CC0 license in the file +``licenses/CC0_1.0.txt``. If not, see +. + + +Additional library software has been made available in the ``extlib/`` +directory. All of it is Free Software and can be distributed under +liberal terms, but those terms may differ in detail from the AGPL's +particulars. See each package's license file in the extlib directory +for additional terms. diff --git a/extlib/README b/extlib/README new file mode 100644 index 00000000..c23da6e6 --- /dev/null +++ b/extlib/README @@ -0,0 +1,71 @@ +========================= + External Library README +========================= + +DO NOT "FIX" CODE IN THIS DIRECTORY. + +ONLY UPSTREAM VERSIONS OF SOFTWARE GO IN THIS DIRECTORY. + +This directory is provided as a courtesy to our users who might be +unable or unwilling to find and install libraries we depend on. + +If we "fix" software in this directory, we hamstring users who do the +right thing and keep a single version of upstream libraries in a +system-wide library. We introduce subtle and maddening bugs where +our code is "accidentally" using the "wrong" library version. We may +unwittingly interfere with other software that depends on the +canonical release versions of those same libraries! + +Forking upstream software for trivial reasons makes us bad citizens in +the Open Source community and adds unnecessary heartache for our +users. Don't make us "that" project. + + +FAQ +=== + +:Q: What should we do when we find a bug in upstream software? + +:A: First and foremost, REPORT THE BUG, and if possible send in a patch. + + Watch for a release of the upstream software and integrate with it + when it's released. + + In the meantime, work around the bug, if at all possible. Usually, + it's quite possible, if slightly harder or less efficient. + +:Q: What if the bug can't be worked around? + +:A: If the upstream developers have accepted a bug patch, it's + undesirable but acceptable to apply that patch to the library in + the ``extlib/`` dir. Ideally, use a release version for upstream or a + version control system snapshot. + + Note that this is a last resort. + +:Q: What if upstream is unresponsive or won't accept a patch? + +:A: Try again. + +:Q: I tried again, and upstream is still unresponsive and nobody's + checked on my patch. Now what? + +:A: If the upstream project is moribund and there's a way to adopt it, + propose having the StatusNet dev team adopt the project. Or, adopt + it yourself. + +:Q: What if there's no upstream authority and it can't be adopted? + +:A: Then we fork it. Make a new name and a new version. Include it in + ``lib/`` instead of ``extlib/``, and use the GMG_* prefix to change + the namespace to avoid collisions (or something like that). + + This is a last resort; consult with the rest of the dev group + before taking this radical step. + + +Thanks +====== + +This policy originally copied from Status.net. Many many thanks to them +for working out such a nice system for doing things. diff --git a/AGPLv3.txt b/licenses/AGPLv3.txt similarity index 100% rename from AGPLv3.txt rename to licenses/AGPLv3.txt diff --git a/CC0_1.0.txt b/licenses/CC0_1.0.txt similarity index 100% rename from CC0_1.0.txt rename to licenses/CC0_1.0.txt diff --git a/licenses/LGPLv3.txt b/licenses/LGPLv3.txt new file mode 100644 index 00000000..65c5ca88 --- /dev/null +++ b/licenses/LGPLv3.txt @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. From 2faec3672371db3e17bf6671306fcc243eefadf2 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Sat, 30 Jul 2011 22:27:46 -0400 Subject: [PATCH 0756/2731] 270. Moves 960.gs stuff to extlib/ per policy This adds the README.txt from the tarball for 960.gs and also moves the files and fixes the symlinks. --- .../contrib => extlib/960.gs}/960_16_col.css | 0 extlib/960.gs/README.txt | 54 +++++++++++++++++++ .../contrib => extlib/960.gs}/reset.css | 0 .../contrib => extlib/960.gs}/text.css | 0 mediagoblin/static/css/contrib/960_16_col.css | 1 - mediagoblin/static/css/contrib/reset.css | 1 - mediagoblin/static/css/contrib/text.css | 1 - mediagoblin/templates/mediagoblin/base.html | 6 +-- 8 files changed, 57 insertions(+), 6 deletions(-) rename {mediagoblin/contrib => extlib/960.gs}/960_16_col.css (100%) create mode 100755 extlib/960.gs/README.txt rename {mediagoblin/contrib => extlib/960.gs}/reset.css (100%) rename {mediagoblin/contrib => extlib/960.gs}/text.css (100%) delete mode 120000 mediagoblin/static/css/contrib/960_16_col.css delete mode 120000 mediagoblin/static/css/contrib/reset.css delete mode 120000 mediagoblin/static/css/contrib/text.css diff --git a/mediagoblin/contrib/960_16_col.css b/extlib/960.gs/960_16_col.css similarity index 100% rename from mediagoblin/contrib/960_16_col.css rename to extlib/960.gs/960_16_col.css diff --git a/extlib/960.gs/README.txt b/extlib/960.gs/README.txt new file mode 100755 index 00000000..da0ea86f --- /dev/null +++ b/extlib/960.gs/README.txt @@ -0,0 +1,54 @@ +=============== +960 GRID SYSTEM +=============== + +Created by Nathan Smith. See the official site for more info: http://960.gs/ + +============================================================================ + +To install the Adobe Fireworks extension, simply double-click the *.mxp file +included in the /fireworks_extension directory. If you are running Windows 7 +you will need admin permissions in order to install this extension properly. + +============================================================================ + +Thank you for downloading the 960 Grid System. I hope it helps to streamline +web development workflow. Enclosed in the bundle are printable sketch sheets +and template files for Adobe Fireworks and Photoshop, OmniGraffle and Visio. + +Also included is a lightweight CSS file, which contains the grid dimensions. +To use this file, simply include the 960.css in the of the HTML page. +You may also use the reset.css and text.css files, or opt to leave them out. +Here is an example of the XHTML code necessary to incorporate the CSS files: + + + + + + + +It is worth noting that these styles do not automatically make up a finished +site design. They are simply a starting point, ideally for rapid prototyping +or as a basis for creating your own designs. You should not feel constrained +by the way I have built the initial code. If you disagree with how something +has been done, feel free to revise it for the needs of your particular site. + +The files in the 960 Grid System are free of charge, licensed under MIT/GPL. + +============================================================================ + +Note that if you are building a site in a language which reads from right to +left, use the CSS files that end in "_rtl.css" instead. Denote the language: + + + +Be sure to replace "..." with the appropriate two-letter abbreviation of the +language you are using. Example: lang="he" for Hebrew, lang="ar" for Arabic. + +============================================================================ + +GPL license: +http://www.gnu.org/licenses/gpl.html + +MIT license: +http://www.opensource.org/licenses/mit-license.php \ No newline at end of file diff --git a/mediagoblin/contrib/reset.css b/extlib/960.gs/reset.css similarity index 100% rename from mediagoblin/contrib/reset.css rename to extlib/960.gs/reset.css diff --git a/mediagoblin/contrib/text.css b/extlib/960.gs/text.css similarity index 100% rename from mediagoblin/contrib/text.css rename to extlib/960.gs/text.css diff --git a/mediagoblin/static/css/contrib/960_16_col.css b/mediagoblin/static/css/contrib/960_16_col.css deleted file mode 120000 index bc1a430c..00000000 --- a/mediagoblin/static/css/contrib/960_16_col.css +++ /dev/null @@ -1 +0,0 @@ -../../../contrib/960_16_col.css \ No newline at end of file diff --git a/mediagoblin/static/css/contrib/reset.css b/mediagoblin/static/css/contrib/reset.css deleted file mode 120000 index 87ae5592..00000000 --- a/mediagoblin/static/css/contrib/reset.css +++ /dev/null @@ -1 +0,0 @@ -../../../contrib/reset.css \ No newline at end of file diff --git a/mediagoblin/static/css/contrib/text.css b/mediagoblin/static/css/contrib/text.css deleted file mode 120000 index d75ce48b..00000000 --- a/mediagoblin/static/css/contrib/text.css +++ /dev/null @@ -1 +0,0 @@ -../../../contrib/text.css \ No newline at end of file diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 656fb46b..6af02c00 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -21,11 +21,11 @@ {% block title %}GNU MediaGoblin{% endblock title %} + href="{{ request.staticdirect('/css/extlib/reset.css') }}"/> + href="{{ request.staticdirect('/css/extlib/text.css') }}"/> + href="{{ request.staticdirect('/css/extlib/960_16_col.css') }}"/> {% block mediagoblin_head %} From 3539dc8fb6cb59c6a52cb116e8993d73cd26f0d5 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 30 Jul 2011 21:44:36 -0500 Subject: [PATCH 0757/2731] TOO_LONG_TAG_WARNING isn't needed in this module --- mediagoblin/submit/forms.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py index 1a5a7f4e..f02c95a6 100644 --- a/mediagoblin/submit/forms.py +++ b/mediagoblin/submit/forms.py @@ -16,7 +16,7 @@ import wtforms -from mediagoblin.util import tag_length_validator, TOO_LONG_TAG_WARNING +from mediagoblin.util import tag_length_validator class SubmitStartForm(wtforms.Form): From 34e4be6fb1c047ece5d3fc311e758468f2a72795 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 30 Jul 2011 21:45:11 -0500 Subject: [PATCH 0758/2731] tags field should be last on the submission form --- mediagoblin/templates/mediagoblin/submit/start.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/submit/start.html b/mediagoblin/templates/mediagoblin/submit/start.html index 7bacb552..6d00510c 100644 --- a/mediagoblin/templates/mediagoblin/submit/start.html +++ b/mediagoblin/templates/mediagoblin/submit/start.html @@ -25,9 +25,9 @@

            Submit yer media

            {{ wtforms_util.render_field_div(submit_form.file) }} - {{ wtforms_util.render_field_div(submit_form.tags) }} {{ wtforms_util.render_field_div(submit_form.title) }} {{ wtforms_util.render_textarea_div(submit_form.description) }} + {{ wtforms_util.render_field_div(submit_form.tags) }}
            From 1b89b817e5bfdc29aa266bdad056252f55e49a00 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 30 Jul 2011 21:54:18 -0500 Subject: [PATCH 0759/2731] Removing option to make tags lowercase ...that's basically handled by the slugification --- mediagoblin/config_spec.ini | 1 - mediagoblin/tests/test_mgoblin_app.ini | 1 - mediagoblin/util.py | 8 ++------ 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini index a296f0c1..bbc1f7d6 100644 --- a/mediagoblin/config_spec.ini +++ b/mediagoblin/config_spec.ini @@ -26,7 +26,6 @@ allow_registration = boolean(default=True) # tag parsing tags_delimiter = string(default=",") -tags_case_sensitive = boolean(default=False) tags_max_length = integer(default=50) # By default not set, but you might want something like: diff --git a/mediagoblin/tests/test_mgoblin_app.ini b/mediagoblin/tests/test_mgoblin_app.ini index 5395ca10..7716e9ca 100644 --- a/mediagoblin/tests/test_mgoblin_app.ini +++ b/mediagoblin/tests/test_mgoblin_app.ini @@ -9,7 +9,6 @@ db_name = __mediagoblin_tests__ # tag parsing tags_delimiter = "," -tags_case_sensitive = False tags_max_length = 50 # Celery shouldn't be set up by the application as it's setup via diff --git a/mediagoblin/util.py b/mediagoblin/util.py index bb9f6db4..5880f856 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -405,12 +405,8 @@ def convert_to_tag_list_of_dicts(tag_string): # Ignore empty or duplicate tags if tag.strip() and tag.strip() not in [t['name'] for t in taglist]: - if mg_globals.app_config['tags_case_sensitive']: - taglist.append({'name': tag.strip(), - 'slug': slugify(tag.strip())}) - else: - taglist.append({'name': tag.strip().lower(), - 'slug': slugify(tag.strip().lower())}) + taglist.append({'name': tag.strip(), + 'slug': slugify(tag.strip())}) return taglist From bc0b10d177253344852cbe4e0dee3048f4206831 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 30 Jul 2011 22:15:54 -0500 Subject: [PATCH 0760/2731] Updating tests to reflect not having a 'tags_case_sensitive' option. I should probably update the tags of things when I change them. --- mediagoblin/tests/test_tags.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/mediagoblin/tests/test_tags.py b/mediagoblin/tests/test_tags.py index fa6beca9..c2e9fa2b 100644 --- a/mediagoblin/tests/test_tags.py +++ b/mediagoblin/tests/test_tags.py @@ -28,13 +28,6 @@ def test_list_of_dicts_conversion(test_app): function performs the reverse operation when populating a form to edit tags. """ # Leading, trailing, and internal whitespace should be removed and slugified - assert util.convert_to_tag_list_of_dicts('sleep , 6 AM, chainsaw! ') == [ - {'name': u'sleep', 'slug': u'sleep'}, - {'name': u'6 am', 'slug': u'6-am'}, - {'name': u'chainsaw!', 'slug': u'chainsaw'}] - - # Make sure case-sensitivity is retained when desired - mg_globals.app_config['tags_case_sensitive'] = True assert util.convert_to_tag_list_of_dicts('sleep , 6 AM, chainsaw! ') == [ {'name': u'sleep', 'slug': u'sleep'}, {'name': u'6 AM', 'slug': u'6-am'}, From 4a74d54ef59ea3a4eff06d78f6c235fcb6631203 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 31 Jul 2011 15:00:42 -0500 Subject: [PATCH 0761/2731] Add a clear div between the object gallery and the "user's media" / atom feed --- mediagoblin/templates/mediagoblin/user_pages/user.html | 1 + 1 file changed, 1 insertion(+) diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 7769b8b3..76cf36be 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -80,6 +80,7 @@
            {% set pagination_base_url = user_gallery_url %} {% include "mediagoblin/utils/object_gallery.html" %} +

            View all of {{ user.username }}'s media

            Date: Sun, 31 Jul 2011 15:07:43 -0500 Subject: [PATCH 0762/2731] Give a more usful message if no media is available. --- mediagoblin/templates/mediagoblin/utils/object_gallery.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mediagoblin/templates/mediagoblin/utils/object_gallery.html b/mediagoblin/templates/mediagoblin/utils/object_gallery.html index 2c7a7129..a14d7d7b 100644 --- a/mediagoblin/templates/mediagoblin/utils/object_gallery.html +++ b/mediagoblin/templates/mediagoblin/utils/object_gallery.html @@ -33,5 +33,9 @@ {% else %} {{ render_pagination(request, pagination) }} {% endif %} + {% else %} +

            + There doesn't seem to be anything here... +

            {% endif %} {% endblock %} From 269943a645d16c51af0388c764c76721336369bc Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 31 Jul 2011 15:09:52 -0500 Subject: [PATCH 0763/2731] We should redirect after verify_email to the user's homepage --- mediagoblin/auth/views.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index fb5db870..df7e2a88 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -145,23 +145,19 @@ def verify_email(request): user['status'] = u'active' user['email_verified'] = True user.save() - verification_successful = True messages.add_message( request, messages.SUCCESS, ('Your email address has been verified. ' 'You may now login, edit your profile, and submit images!')) else: - verification_successful = False messages.add_message(request, messages.ERROR, 'The verification key or user id is incorrect') - return render_to_response( - request, - 'mediagoblin/user_pages/user.html', - {'user': user, - 'verification_successful' : verification_successful}) + return redirect( + request, 'mediagoblin.user_pages.user_home', + user=request.user['username']) def resend_activation(request): From 77bc1c286778f7b0618f64c1d7498e7f6735d3c6 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 31 Jul 2011 15:22:54 -0500 Subject: [PATCH 0764/2731] Show the message about nothing exiting either if media_entries object not there or empty --- mediagoblin/templates/mediagoblin/utils/object_gallery.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/utils/object_gallery.html b/mediagoblin/templates/mediagoblin/utils/object_gallery.html index a14d7d7b..1b1c69f6 100644 --- a/mediagoblin/templates/mediagoblin/utils/object_gallery.html +++ b/mediagoblin/templates/mediagoblin/utils/object_gallery.html @@ -19,7 +19,7 @@ {% from "mediagoblin/utils/pagination.html" import render_pagination %} {% block object_gallery_content -%} - {% if media_entries %} + {% if media_entries and media_entries.count() %} {% for entry in media_entries %}
            @@ -35,7 +35,7 @@ {% endif %} {% else %}

            - There doesn't seem to be anything here... + There doesn't seem to be any media here yet...

            {% endif %} {% endblock %} From 8a20ee349ffdc76b6de7cde8a43c4714fcc034af Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 31 Jul 2011 15:51:55 -0500 Subject: [PATCH 0765/2731] Renaming "StatusNet" -> MediaGoblin in the extlib policy --- extlib/README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extlib/README b/extlib/README index c23da6e6..c690beac 100644 --- a/extlib/README +++ b/extlib/README @@ -51,7 +51,7 @@ FAQ checked on my patch. Now what? :A: If the upstream project is moribund and there's a way to adopt it, - propose having the StatusNet dev team adopt the project. Or, adopt + propose having the MediaGoblin dev team adopt the project. Or, adopt it yourself. :Q: What if there's no upstream authority and it can't be adopted? From 82b15ad93f6d9dbfb0b00e1fb0a966506be792a0 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Sun, 31 Jul 2011 17:09:09 -0400 Subject: [PATCH 0766/2731] 270. Adds symlinks for 960.gs stuff --- mediagoblin/static/css/extlib/960_16_col.css | 1 + mediagoblin/static/css/extlib/reset.css | 1 + mediagoblin/static/css/extlib/text.css | 1 + 3 files changed, 3 insertions(+) create mode 120000 mediagoblin/static/css/extlib/960_16_col.css create mode 120000 mediagoblin/static/css/extlib/reset.css create mode 120000 mediagoblin/static/css/extlib/text.css diff --git a/mediagoblin/static/css/extlib/960_16_col.css b/mediagoblin/static/css/extlib/960_16_col.css new file mode 120000 index 00000000..d4e43898 --- /dev/null +++ b/mediagoblin/static/css/extlib/960_16_col.css @@ -0,0 +1 @@ +../../../../extlib/960.gs/960_16_col.css \ No newline at end of file diff --git a/mediagoblin/static/css/extlib/reset.css b/mediagoblin/static/css/extlib/reset.css new file mode 120000 index 00000000..65d06d34 --- /dev/null +++ b/mediagoblin/static/css/extlib/reset.css @@ -0,0 +1 @@ +../../../../extlib/960.gs/reset.css \ No newline at end of file diff --git a/mediagoblin/static/css/extlib/text.css b/mediagoblin/static/css/extlib/text.css new file mode 120000 index 00000000..2d864de4 --- /dev/null +++ b/mediagoblin/static/css/extlib/text.css @@ -0,0 +1 @@ +../../../../extlib/960.gs/text.css \ No newline at end of file From 25a7eb25bf8ba7ce977434fda0d18be441fe3d07 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Sun, 31 Jul 2011 17:54:54 -0400 Subject: [PATCH 0767/2731] Moves docs files around so we build from source/ directory --- docs/Makefile | 12 +- docs/{ => source}/_static/placeholder | 0 docs/source/_templates/mg_theme/layout.html | 39 +++ .../_templates/mg_theme/static/default.css_t | 299 ++++++++++++++++++ docs/source/_templates/mg_theme/theme.conf | 31 ++ docs/{ => source}/codebase.rst | 0 docs/{ => source}/conf.py | 2 +- docs/{ => source}/contributinghowto.rst | 0 docs/{ => source}/deploymenthowto.rst | 0 docs/{ => source}/designdecisions.rst | 0 docs/{ => source}/foreword.rst | 0 docs/{ => source}/git.rst | 0 docs/{ => source}/goblin.png | Bin docs/{ => source}/hackinghowto.rst | 0 docs/{ => source}/index.rst | 0 docs/{ => source}/mediagoblin.rst | 0 docs/{ => source}/mgext/__init__.py | 0 docs/{ => source}/mgext/youcanhelp.py | 0 docs/{ => source}/snugglygoblin.png | Bin docs/{ => source}/theminghowto.rst | 0 docs/{ => source}/vision.rst | 0 21 files changed, 377 insertions(+), 6 deletions(-) rename docs/{ => source}/_static/placeholder (100%) create mode 100644 docs/source/_templates/mg_theme/layout.html create mode 100644 docs/source/_templates/mg_theme/static/default.css_t create mode 100644 docs/source/_templates/mg_theme/theme.conf rename docs/{ => source}/codebase.rst (100%) rename docs/{ => source}/conf.py (99%) rename docs/{ => source}/contributinghowto.rst (100%) rename docs/{ => source}/deploymenthowto.rst (100%) rename docs/{ => source}/designdecisions.rst (100%) rename docs/{ => source}/foreword.rst (100%) rename docs/{ => source}/git.rst (100%) rename docs/{ => source}/goblin.png (100%) rename docs/{ => source}/hackinghowto.rst (100%) rename docs/{ => source}/index.rst (100%) rename docs/{ => source}/mediagoblin.rst (100%) rename docs/{ => source}/mgext/__init__.py (100%) rename docs/{ => source}/mgext/youcanhelp.py (100%) rename docs/{ => source}/snugglygoblin.png (100%) rename docs/{ => source}/theminghowto.rst (100%) rename docs/{ => source}/vision.rst (100%) diff --git a/docs/Makefile b/docs/Makefile index 9a4608de..0b97bf7c 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -5,17 +5,16 @@ SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = -BUILDDIR = _build +BUILDDIR = build # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . - +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source # the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . +I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext help: @echo "Please use \`make ' where is one of" @@ -35,6 +34,9 @@ help: @echo " changes to make an overview of all changed/added/deprecated items" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" + @echo " texinfo to make Texinfo files" + @echo " info to make Texinfo files and run them through makeinfo" + @echo " gettext to make PO message catalogs" clean: -rm -rf $(BUILDDIR)/* diff --git a/docs/_static/placeholder b/docs/source/_static/placeholder similarity index 100% rename from docs/_static/placeholder rename to docs/source/_static/placeholder diff --git a/docs/source/_templates/mg_theme/layout.html b/docs/source/_templates/mg_theme/layout.html new file mode 100644 index 00000000..eccda14b --- /dev/null +++ b/docs/source/_templates/mg_theme/layout.html @@ -0,0 +1,39 @@ +{# + default/layout.html + ~~~~~~~~~~~~~~~~~~~ + + Sphinx layout template for the default theme. + + :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. + :license: BSD, see LICENSE for details. +#} +{% extends "basic/layout.html" %} + +{% if theme_collapsiblesidebar|tobool %} +{% set script_files = script_files + ['_static/sidebar.js'] %} +{% endif %} + +{%- block footer %} +
            + + +{%- endblock %} diff --git a/docs/source/_templates/mg_theme/static/default.css_t b/docs/source/_templates/mg_theme/static/default.css_t new file mode 100644 index 00000000..f200a0fe --- /dev/null +++ b/docs/source/_templates/mg_theme/static/default.css_t @@ -0,0 +1,299 @@ +/* + * default.css_t + * ~~~~~~~~~~~~~ + * + * Sphinx stylesheet -- default theme. + * + * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +@import url("basic.css"); + +/* -- page layout ----------------------------------------------------------- */ + +body { + font-family: {{ theme_bodyfont }}; + font-size: 100%; + background-color: {{ theme_footerbgcolor }}; + color: #000; + margin: 0; + padding: 0; +} + +div.document { + background-color: {{ theme_sidebarbgcolor }}; +} + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 230px; +} + +div.body { + background-color: {{ theme_bgcolor }}; + color: {{ theme_textcolor }}; + padding: 0 20px 30px 20px; +} + +{%- if theme_rightsidebar|tobool %} +div.bodywrapper { + margin: 0 230px 0 0; +} +{%- endif %} + +div.footer { + color: {{ theme_footertextcolor }}; + width: 100%; + padding: 9px 0 9px 0; + text-align: center; + font-size: 75%; +} + +div.footer a { + color: {{ theme_footertextcolor }}; + text-decoration: underline; +} + +div.related { + background-color: {{ theme_relbarbgcolor }}; + line-height: 30px; + color: {{ theme_relbartextcolor }}; +} + +div.related a { + color: {{ theme_relbarlinkcolor }}; +} + +div.sphinxsidebar { + {%- if theme_stickysidebar|tobool %} + top: 30px; + bottom: 0; + margin: 0; + position: fixed; + overflow: auto; + height: auto; + {%- endif %} + {%- if theme_rightsidebar|tobool %} + float: right; + {%- if theme_stickysidebar|tobool %} + right: 0; + {%- endif %} + {%- endif %} +} + +{%- if theme_stickysidebar|tobool %} +/* this is nice, but it it leads to hidden headings when jumping + to an anchor */ +/* +div.related { + position: fixed; +} + +div.documentwrapper { + margin-top: 30px; +} +*/ +{%- endif %} + +div.sphinxsidebar h3 { + font-family: {{ theme_headfont }}; + color: {{ theme_sidebartextcolor }}; + font-size: 1.4em; + font-weight: normal; + margin: 0; + padding: 0; +} + +div.sphinxsidebar h3 a { + color: {{ theme_sidebartextcolor }}; +} + +div.sphinxsidebar h4 { + font-family: {{ theme_headfont }}; + color: {{ theme_sidebartextcolor }}; + font-size: 1.3em; + font-weight: normal; + margin: 5px 0 0 0; + padding: 0; +} + +div.sphinxsidebar p { + color: {{ theme_sidebartextcolor }}; +} + +div.sphinxsidebar p.topless { + margin: 5px 10px 10px 10px; +} + +div.sphinxsidebar ul { + margin: 10px; + padding: 0; + color: {{ theme_sidebartextcolor }}; +} + +div.sphinxsidebar a { + color: {{ theme_sidebarlinkcolor }}; +} + +div.sphinxsidebar input { + border: 1px solid {{ theme_sidebarlinkcolor }}; + font-family: sans-serif; + font-size: 1em; +} + + +/* -- hyperlink styles ------------------------------------------------------ */ + +a { + color: {{ theme_linkcolor }}; + text-decoration: none; +} + +a:visited { + color: {{ theme_visitedlinkcolor }}; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +{% if theme_externalrefs|tobool %} +a.external { + text-decoration: none; + border-bottom: 1px dashed {{ theme_linkcolor }}; +} + +a.external:hover { + text-decoration: none; + border-bottom: none; +} +{% endif %} + +/* -- body styles ----------------------------------------------------------- */ + +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: {{ theme_headfont }}; + background-color: {{ theme_headbgcolor }}; + font-weight: normal; + color: {{ theme_headtextcolor }}; + border-bottom: 1px solid #ccc; + margin: 20px -20px 10px -20px; + padding: 3px 0 3px 10px; +} + +div.body h1 { margin-top: 0; font-size: 200%; } +div.body h2 { font-size: 160%; } +div.body h3 { font-size: 140%; } +div.body h4 { font-size: 120%; } +div.body h5 { font-size: 110%; } +div.body h6 { font-size: 100%; } + +a.headerlink { + color: {{ theme_headlinkcolor }}; + font-size: 0.8em; + padding: 0 4px 0 4px; + text-decoration: none; +} + +a.headerlink:hover { + background-color: {{ theme_headlinkcolor }}; + color: white; +} + +div.body p, div.body dd, div.body li { + text-align: justify; + line-height: 130%; +} + +div.admonition p.admonition-title + p { + display: inline; +} + +div.admonition p { + margin-bottom: 5px; +} + +div.admonition pre { + margin-bottom: 5px; +} + +div.admonition ul, div.admonition ol { + margin-bottom: 5px; +} + +div.note { + background-color: #eee; + border: 1px solid #ccc; +} + +div.seealso { + background-color: #ffc; + border: 1px solid #ff6; +} + +div.topic { + background-color: #eee; +} + +div.warning { + background-color: #ffe4e4; + border: 1px solid #f66; +} + +p.admonition-title { + display: inline; +} + +p.admonition-title:after { + content: ":"; +} + +pre { + padding: 5px; + background-color: {{ theme_codebgcolor }}; + color: {{ theme_codetextcolor }}; + line-height: 120%; + border: 1px solid #ac9; + border-left: none; + border-right: none; +} + +tt { + background-color: #ecf0f3; + padding: 0 1px 0 1px; + font-size: 0.95em; +} + +th { + background-color: #ede; +} + +.warning tt { + background: #efc2c2; +} + +.note tt { + background: #d6d6d6; +} + +.viewcode-back { + font-family: {{ theme_bodyfont }}; +} + +div.viewcode-block:target { + background-color: #f4debf; + border-top: 1px solid #ac9; + border-bottom: 1px solid #ac9; +} diff --git a/docs/source/_templates/mg_theme/theme.conf b/docs/source/_templates/mg_theme/theme.conf new file mode 100644 index 00000000..49442e3b --- /dev/null +++ b/docs/source/_templates/mg_theme/theme.conf @@ -0,0 +1,31 @@ +[theme] +inherit = basic +stylesheet = default.css +pygments_style = sphinx + +[options] +rightsidebar = false +stickysidebar = false +collapsiblesidebar = false +externalrefs = false + +footerbgcolor = #b11818 +footertextcolor = #ffffff +sidebarbgcolor = #6a0000 +sidebartextcolor = #ffffff +sidebarlinkcolor = #98dbcc +relbarbgcolor = #b11818 +relbartextcolor = #ffffff +relbarlinkcolor = #ffffff +bgcolor = #ffffff +textcolor = #000000 +headbgcolor = #fdeded +headtextcolor = #20435c +headlinkcolor = #c60f0f +linkcolor = #355f7c +visitedlinkcolor = #355f7c +codebgcolor = #eeffcc +codetextcolor = #333333 + +bodyfont = sans-serif +headfont = 'Trebuchet MS', sans-serif diff --git a/docs/codebase.rst b/docs/source/codebase.rst similarity index 100% rename from docs/codebase.rst rename to docs/source/codebase.rst diff --git a/docs/conf.py b/docs/source/conf.py similarity index 99% rename from docs/conf.py rename to docs/source/conf.py index a7acd3e2..5861a463 100644 --- a/docs/conf.py +++ b/docs/source/conf.py @@ -64,7 +64,7 @@ release = '0.0.3' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ['_build', 'mgext', '_templates', '_static'] # The reST default role (used for this markup: `text`) to use for all documents. #default_role = None diff --git a/docs/contributinghowto.rst b/docs/source/contributinghowto.rst similarity index 100% rename from docs/contributinghowto.rst rename to docs/source/contributinghowto.rst diff --git a/docs/deploymenthowto.rst b/docs/source/deploymenthowto.rst similarity index 100% rename from docs/deploymenthowto.rst rename to docs/source/deploymenthowto.rst diff --git a/docs/designdecisions.rst b/docs/source/designdecisions.rst similarity index 100% rename from docs/designdecisions.rst rename to docs/source/designdecisions.rst diff --git a/docs/foreword.rst b/docs/source/foreword.rst similarity index 100% rename from docs/foreword.rst rename to docs/source/foreword.rst diff --git a/docs/git.rst b/docs/source/git.rst similarity index 100% rename from docs/git.rst rename to docs/source/git.rst diff --git a/docs/goblin.png b/docs/source/goblin.png similarity index 100% rename from docs/goblin.png rename to docs/source/goblin.png diff --git a/docs/hackinghowto.rst b/docs/source/hackinghowto.rst similarity index 100% rename from docs/hackinghowto.rst rename to docs/source/hackinghowto.rst diff --git a/docs/index.rst b/docs/source/index.rst similarity index 100% rename from docs/index.rst rename to docs/source/index.rst diff --git a/docs/mediagoblin.rst b/docs/source/mediagoblin.rst similarity index 100% rename from docs/mediagoblin.rst rename to docs/source/mediagoblin.rst diff --git a/docs/mgext/__init__.py b/docs/source/mgext/__init__.py similarity index 100% rename from docs/mgext/__init__.py rename to docs/source/mgext/__init__.py diff --git a/docs/mgext/youcanhelp.py b/docs/source/mgext/youcanhelp.py similarity index 100% rename from docs/mgext/youcanhelp.py rename to docs/source/mgext/youcanhelp.py diff --git a/docs/snugglygoblin.png b/docs/source/snugglygoblin.png similarity index 100% rename from docs/snugglygoblin.png rename to docs/source/snugglygoblin.png diff --git a/docs/theminghowto.rst b/docs/source/theminghowto.rst similarity index 100% rename from docs/theminghowto.rst rename to docs/source/theminghowto.rst diff --git a/docs/vision.rst b/docs/source/vision.rst similarity index 100% rename from docs/vision.rst rename to docs/source/vision.rst From fd857e219fbf3cd1671ce4971e67d57207af18bc Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Sun, 31 Jul 2011 21:03:01 -0400 Subject: [PATCH 0768/2731] Adds release-related bits; fixes arg handling * fixes arg handling * adds -h support * builds html and texinfo docs and puts them in the right place * puts the resulting tarball and any work done in a tmp/ directory * fixes messages so it tells you what it's doing --- maketarball.sh | 163 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 131 insertions(+), 32 deletions(-) diff --git a/maketarball.sh b/maketarball.sh index 5ded9671..6bfaf920 100755 --- a/maketarball.sh +++ b/maketarball.sh @@ -17,60 +17,159 @@ # along with this program. If not, see . -# usage: maketarball [-d] +# usage: maketarball [-drh] REVISH # -# Creates a tarball from a rev-ish. If -d is passed in, then it adds -# the date to the directory name. +# Creates a tarball of the repository at rev REVISH. + +# If -d is passed in, then it adds the date to the directory name. +# +# If -r is passed in, then it does some additional things required +# for a release-ready tarball. +# +# If -h is passed in, shows help and exits. # # Examples: # -# ./maketarball -d master # ./maketarball v0.0.2 +# ./maketarball -d master +# ./maketarball -r v0.0.2 + + +USAGE="Usage: $0 -h | [-dr] REVISH" + +REVISH="none" +PREFIX="none" +NOWDATE="" +RELEASE="no" + +while getopts ":dhr" opt; +do + case "$opt" in + h) + echo "$USAGE" + echo "" + echo "Creates a tarball of the repository at rev REVISH." + echo "" + echo " -h Shows this help message" + echo " -d Includes date in tar file name and directory" + echo " -r Performs other release-related actions" + exit 0 + ;; + d) + NOWDATE=`date "+%Y-%m-%d-"` + shift $((OPTIND-1)) + ;; + r) + RELEASE="yes" + shift $((OPTIND-1)) + ;; + \?) + echo "Invalid option: -$OPTARG" >&2 + echo "$USAGE" >&2 + ;; + esac +done if [[ -z "$1" ]]; then - echo "Usage: $0 [-d] "; + echo "$USAGE"; exit 1; fi -NOWDATE=`date "+%Y-%m-%d"` +REVISH=$1 +PREFIX="$NOWDATE$REVISH" -if [[ $@ == *-d* ]]; then - REVISH=$2 - PREFIX="$NOWDATE-$REVISH" -else - REVISH=$1 - PREFIX="$REVISH" -fi - - -# convert PREFIX to all lowercase. -# nix the v from tag names. +# convert PREFIX to all lowercase and nix the v from tag names. PREFIX=`echo "$PREFIX" | tr '[A-Z]' '[a-z]' | sed s/v//` -echo "== REVISH $REVISH" -echo "== PREFIX $PREFIX" +# build the filename base minus the .tar.gz stuff--this is also +# the directory in the tarball. +FNBASE="mediagoblin-$PREFIX" + +STARTDIR=`pwd` + +function cleanup { + pushd $STARTDIR + + if [[ -e tmp ]] + then + echo "+ cleaning up tmp/" + rm -rf tmp + fi + popd +} + +echo "+ Building tarball from: $REVISH" +echo "+ Using prefix: $PREFIX" +echo "+ Release?: $RELEASE" echo "" -echo "generating archive...." +if [[ -e tmp ]] +then + echo "+ there's an existing tmp/. please remove it." + exit 1 +fi + +mkdir $STARTDIR/tmp +echo "+ generating archive...." git archive \ --format=tar \ - --prefix=mediagoblin-$PREFIX/ \ - $REVISH > mediagoblin-$PREFIX.tar + --prefix=$FNBASE/ \ + $REVISH > tmp/$FNBASE.tar if [[ $? -ne 0 ]] then - echo "git archive command failed. See above text for reason." - if [[ -e mediagoblin-$PREFIX.tar ]] - then - rm mediagoblin-$PREFIX.tar - fi - exit 1; + echo "+ git archive command failed. See above text for reason." + cleanup + exit 1 fi -echo "compressing...." -gzip mediagoblin-$PREFIX.tar -echo "archive at mediagoblin-$PREFIX.tar.gz" +if [[ $RELEASE = "yes" ]] +then + pushd tmp/ + tar -xvf $FNBASE.tar -echo "done." + pushd $FNBASE + pushd docs + + echo "+ generating html docs" + make html + if [[ $? -ne 0 ]] + then + echo "+ sphinx docs generation failed. See above text for reason." + cleanup + exit 1 + fi + + # NOTE: this doesn't work for gmg prior to v0.0.4. + echo "+ generating texinfo docs (doesn't work prior to v0.0.4)" + make info + popd + + echo "+ moving docs to the right place" + if [[ -e docs/build/html/ ]] + then + mv docs/build/html/ docs/html/ + mv docs/build/texinfo/ docs/texinfo/ + + rm -rf docs/build/ + else + mv docs/_build/html/ docs/html/ + + rm -rf docs/_build/ + fi + + popd + + tar -cvf $FNBASE.tar $FNBASE + popd +fi + + +echo "+ compressing...." +gzip tmp/$FNBASE.tar + +echo "+ archive at tmp/$FNBASE.tar.gz" + +echo "+ done." From 71454fd351bcc18662168bd89d6876ea498c3715 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 31 Jul 2011 20:45:49 -0500 Subject: [PATCH 0769/2731] Added tag listing views. Also added routing, added templates, etc. --- mediagoblin/listings/__init__.py | 19 +++++++ mediagoblin/listings/routing.py | 25 +++++++++ mediagoblin/listings/views.py | 53 +++++++++++++++++++ mediagoblin/routing.py | 3 ++ .../templates/mediagoblin/listings/tag.html | 28 ++++++++++ .../templates/mediagoblin/utils/tags.html | 6 ++- 6 files changed, 133 insertions(+), 1 deletion(-) create mode 100644 mediagoblin/listings/__init__.py create mode 100644 mediagoblin/listings/routing.py create mode 100644 mediagoblin/listings/views.py create mode 100644 mediagoblin/templates/mediagoblin/listings/tag.html diff --git a/mediagoblin/listings/__init__.py b/mediagoblin/listings/__init__.py new file mode 100644 index 00000000..fbccb9b8 --- /dev/null +++ b/mediagoblin/listings/__init__.py @@ -0,0 +1,19 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +""" +Non-user listing views and routing should go in this submodule. +""" diff --git a/mediagoblin/listings/routing.py b/mediagoblin/listings/routing.py new file mode 100644 index 00000000..90580601 --- /dev/null +++ b/mediagoblin/listings/routing.py @@ -0,0 +1,25 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +from routes.route import Route + +tag_routes = [ + # Route('mediagoblin.listings.tags_home', "/", + # controller="mediagoblin.listings.views:tags_home"), + Route('mediagoblin.listings.tags_listing', "/{tag}/", + controller="mediagoblin.listings.views:tag_listing")] + diff --git a/mediagoblin/listings/views.py b/mediagoblin/listings/views.py new file mode 100644 index 00000000..cdb3db31 --- /dev/null +++ b/mediagoblin/listings/views.py @@ -0,0 +1,53 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from mediagoblin.db.util import DESCENDING + +from mediagoblin.util import Pagination, render_to_response +from mediagoblin.decorators import uses_pagination + + +@uses_pagination +def tag_listing(request, page): + """'Gallery'/listing for this tag slug""" + tag_slug = request.matchdict[u'tag'] + + cursor = request.db.MediaEntry.find( + {u'state': u'processed', + u'tags.slug': tag_slug}) + cursor = cursor.sort('created', DESCENDING) + + pagination = Pagination(page, cursor) + media_entries = pagination() + + # Take the tag "name" from the first MediaEntry's non-normalized + # tag naming. + # ... this is slightly hacky looking :\ + tag_name = tag_slug + if media_entries.count(): + for tag in media_entries[0]['tags']: + if tag['slug'] == tag_slug: + tag_name == tag['name'] + break + else: + tag_name = tag_slug + + return render_to_response( + request, + 'mediagoblin/listings/tag.html', + {'tag_name': tag_name, + 'media_entries': media_entries, + 'pagination': pagination}) diff --git a/mediagoblin/routing.py b/mediagoblin/routing.py index b854c85a..1340da60 100644 --- a/mediagoblin/routing.py +++ b/mediagoblin/routing.py @@ -20,6 +20,8 @@ from mediagoblin.auth.routing import auth_routes from mediagoblin.submit.routing import submit_routes from mediagoblin.user_pages.routing import user_routes from mediagoblin.edit.routing import edit_routes +from mediagoblin.listings.routing import tag_routes + def get_mapper(): mapping = Mapper() @@ -33,5 +35,6 @@ def get_mapper(): mapping.extend(submit_routes, '/submit') mapping.extend(user_routes, '/u') mapping.extend(edit_routes, '/edit') + mapping.extend(tag_routes, '/tag') return mapping diff --git a/mediagoblin/templates/mediagoblin/listings/tag.html b/mediagoblin/templates/mediagoblin/listings/tag.html new file mode 100644 index 00000000..db3381d2 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/listings/tag.html @@ -0,0 +1,28 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% extends "mediagoblin/base.html" %} + +{% block mediagoblin_content -%} +

            + Media tagged with: {{ tag_name }} +

            + + +{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/utils/tags.html b/mediagoblin/templates/mediagoblin/utils/tags.html index 94c4cf69..ade41944 100644 --- a/mediagoblin/templates/mediagoblin/utils/tags.html +++ b/mediagoblin/templates/mediagoblin/utils/tags.html @@ -17,9 +17,13 @@ #} {% block tags_content -%} +

            Tags

            {% endblock %} From 5d9006479088ecadcc4dcef14a9d8ccb0e4227f3 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 31 Jul 2011 20:48:13 -0500 Subject: [PATCH 0770/2731] Updated media detail view to linkify the tags. Adjusted tag link styling. --- mediagoblin/static/css/base.css | 10 ++++++++++ .../templates/mediagoblin/user_pages/media.html | 3 +++ 2 files changed, 13 insertions(+) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 70db6da9..c84fe047 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -275,3 +275,13 @@ ul.mediagoblin_messages { background-color: #f7f7f7; color: #272727; } + +ul.mediaentry_tags { + list-style-type: none; +} + +ul.mediaentry_tags li { + display: inline; + margin: 0px 5px 0px 0px; + padding: 0px; +} diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 7622d6e6..353cf91c 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -97,9 +97,11 @@ media = media._id)) }}
            {% endif %} +
            {% include "mediagoblin/utils/prev_next.html" %}

            Sidebar content here!

            +

            {% if media['uploader'] == request.user['_id'] or request.user['is_admin'] %} @@ -116,6 +118,7 @@

            {% endif %}

            + {% if media.tags %} {% include "mediagoblin/utils/tags.html" %} {% endif %} From 92ed289261fc8b091ef459757eb321db9be7d6b8 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 31 Jul 2011 20:54:21 -0500 Subject: [PATCH 0771/2731] Align image in media detail to center --- mediagoblin/static/css/base.css | 6 ++++++ mediagoblin/templates/mediagoblin/user_pages/media.html | 7 +++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index c84fe047..59c2f49d 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -212,6 +212,12 @@ text-align: center; text-align: center; } +/* media detail */ + +.media_image_container { + text-align: center; +} + /* icons */ img.media_icon{ diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 353cf91c..a1382518 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -23,8 +23,11 @@ {% block mediagoblin_content %} {% if media %}
            - +
            + +

            {{media.title}} From a5303e4791236d83189c81b50fee782e294b231e Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 31 Jul 2011 21:05:35 -0500 Subject: [PATCH 0772/2731] For no good reason, I feel like 15 is a good number of default feed items. --- mediagoblin/user_pages/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index dc71b059..85a84db6 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -143,7 +143,7 @@ def media_post_comment(request): user = request.matchdict['user']) -ATOM_DEFAULT_NR_OF_UPDATED_ITEMS = 5 +ATOM_DEFAULT_NR_OF_UPDATED_ITEMS = 15 def atom_feed(request): """ From 1a897068725233b607d377b713b733c6d5084477 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 31 Jul 2011 21:24:33 -0500 Subject: [PATCH 0773/2731] Added tags atom feed and linked it in the appropriate places --- mediagoblin/listings/routing.py | 5 +- mediagoblin/listings/views.py | 62 +++++++++++++++---- .../templates/mediagoblin/listings/tag.html | 13 ++++ 3 files changed, 67 insertions(+), 13 deletions(-) diff --git a/mediagoblin/listings/routing.py b/mediagoblin/listings/routing.py index 90580601..61dd5210 100644 --- a/mediagoblin/listings/routing.py +++ b/mediagoblin/listings/routing.py @@ -21,5 +21,8 @@ tag_routes = [ # Route('mediagoblin.listings.tags_home', "/", # controller="mediagoblin.listings.views:tags_home"), Route('mediagoblin.listings.tags_listing', "/{tag}/", - controller="mediagoblin.listings.views:tag_listing")] + controller="mediagoblin.listings.views:tag_listing"), + Route('mediagoblin.listings.tag_atom_feed', "/{tag}/atom/", + controller="mediagoblin.listings.views:tag_atom_feed"), + ] diff --git a/mediagoblin/listings/views.py b/mediagoblin/listings/views.py index cdb3db31..aade7e64 100644 --- a/mediagoblin/listings/views.py +++ b/mediagoblin/listings/views.py @@ -19,6 +19,23 @@ from mediagoblin.db.util import DESCENDING from mediagoblin.util import Pagination, render_to_response from mediagoblin.decorators import uses_pagination +from werkzeug.contrib.atom import AtomFeed + + +def _get_tag_name_from_entries(media_entries, tag_slug): + """ + Get a tag name from the first entry by looking it up via its slug. + """ + # ... this is slightly hacky looking :\ + tag_name = tag_slug + if media_entries.count(): + for tag in media_entries[0]['tags']: + if tag['slug'] == tag_slug: + tag_name == tag['name'] + break + + return tag_name + @uses_pagination def tag_listing(request, page): @@ -33,21 +50,42 @@ def tag_listing(request, page): pagination = Pagination(page, cursor) media_entries = pagination() - # Take the tag "name" from the first MediaEntry's non-normalized - # tag naming. - # ... this is slightly hacky looking :\ - tag_name = tag_slug - if media_entries.count(): - for tag in media_entries[0]['tags']: - if tag['slug'] == tag_slug: - tag_name == tag['name'] - break - else: - tag_name = tag_slug + tag_name = _get_tag_name_from_entries(media_entries, tag_slug) return render_to_response( request, 'mediagoblin/listings/tag.html', - {'tag_name': tag_name, + {'tag_slug': tag_slug, + 'tag_name': tag_name, 'media_entries': media_entries, 'pagination': pagination}) + + +ATOM_DEFAULT_NR_OF_UPDATED_ITEMS = 15 + +def tag_atom_feed(request): + """ + generates the atom feed with the tag images + """ + tag_slug = request.matchdict[u'tag'] + + cursor = request.db.MediaEntry.find( + {u'state': u'processed', + u'tags.slug': tag_slug}) + cursor = cursor.sort('created', DESCENDING) + cursor = cursor.limit(ATOM_DEFAULT_NR_OF_UPDATED_ITEMS) + + feed = AtomFeed( + "MediaGoblin: Feed for tag '%s'" % tag_slug, + feed_url=request.url, + url=request.host_url) + + for entry in cursor: + feed.add(entry.get('title'), + entry.get('description_html'), + content_type='html', + author=entry.uploader()['username'], + updated=entry.get('created'), + url=entry.url_for_self(request.urlgen)) + + return feed.get_response() diff --git a/mediagoblin/templates/mediagoblin/listings/tag.html b/mediagoblin/templates/mediagoblin/listings/tag.html index db3381d2..6f10ec8d 100644 --- a/mediagoblin/templates/mediagoblin/listings/tag.html +++ b/mediagoblin/templates/mediagoblin/listings/tag.html @@ -17,6 +17,13 @@ #} {% extends "mediagoblin/base.html" %} +{% block mediagoblin_head %} + +{% endblock mediagoblin_head %} + {% block mediagoblin_content -%}

            Media tagged with: {{ tag_name }} @@ -25,4 +32,10 @@ + + {% endblock %} From b855b010d08eecb34108da6c8b9bed728fa0ff72 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 31 Jul 2011 21:24:54 -0500 Subject: [PATCH 0774/2731] user pages atom feed not enclosed properly in div, fixing. --- mediagoblin/templates/mediagoblin/user_pages/gallery.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/gallery.html b/mediagoblin/templates/mediagoblin/user_pages/gallery.html index a434ff15..637c892d 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/gallery.html +++ b/mediagoblin/templates/mediagoblin/user_pages/gallery.html @@ -36,10 +36,10 @@ {% include "mediagoblin/utils/object_gallery.html" %}

            {% else %} {# This *should* not occur as the view makes sure we pass in a user. #}

            Sorry, no such user found.

            From f9372f6c8b2b9889a05d072c79abe96dee699cda Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 31 Jul 2011 21:33:01 -0500 Subject: [PATCH 0775/2731] "needs verification"->"verify your email" willkg says "needs verification" isn't a verb, so it's a weird link. Good point. --- mediagoblin/templates/mediagoblin/base.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 6af02c00..4da685f9 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -59,7 +59,7 @@ - needs verification! + verify your email! {% endif %} `_, a - goblin is: - - a legendary evil or mischievous illiterate creature, described - as grotesquely evil or evil-like phantom - - So are we evil? No. Are we mischievous or illiterate? Not - really. So what kind of goblin are we thinking about? We're - thinking about these goblins: - - .. figure:: goblin.png - :alt: Cute goblin with a beret. - - *Figure 1: Cute goblin with a beret. llustrated by Chris - Webber* - - .. figure:: snugglygoblin.png - :scale: 50% - :alt: Snuggly goblin with a beret. - - *Figure 2: Snuggly goblin. Illustrated by Karen Rustad* - - Those are pretty cute goblins. Those are the kinds of goblins - we're thinking about. - - Chris started doing work on the project after thinking about it - for a year. Then, after talking with Matt and Rob, it became an - official GNU project. Thus we now call it GNU MediaGoblin. - - That's a lot of letters, though, so in the interest of brevity and - facilitating easier casual conversation and balancing that with - what's important to us, we have the following rules: - - 1. "GNU MediaGoblin" is the name we're going to use in all official - capacities: web site, documentation, press releases, ... - - 2. In casual conversation, it's ok to use more casual names. - - 3. If you're writing about the project, we ask that you call it GNU - MediaGoblin. - - 4. If you don't like the name, we kindly ask you to take a deep - breath, think a happy thought about cute little goblins playing - on a playground and taking cute pictures of themselves, and let - it go. (Will added this one.) - - -Why Python -========== - -Chris Webber on "Why Python": - - Because I know Python, love Python, am capable of actually making - this thing happen in Python (I've worked on a lot of large free - software web applications before in Python, including `Miro - Community`_, the `Miro Guide`_, a large portion of `Creative - Commons`_, and a whole bunch of things while working at `Imaginary - Landscape`_). Me starting a project like this makes sense if it's - done in Python. - - You might say that PHP is way more deployable, that Rails has way - more cool developers riding around on fixie bikes---and all of - those things are true. But I know Python, like Python, and think - that Python is pretty great. I do think that deployment in Python - is not as good as with PHP, but I think the days of shared hosting - are (thankfully) coming to an end, and will probably be replaced - by cheap virtual machines spun up on the fly for people who want - that sort of stuff, and Python will be a huge part of that future, - maybe even more than PHP will. The deployment tools are getting - better. Maybe we can use something like Silver Lining. Maybe we - can just distribute as ``.debs`` or ``.rpms``. We'll figure it - out when we get there. - - Regardless, if I'm starting this project, which I am, it's gonna - be in Python. - -.. _Miro Community: http://mirocommunity.org/ -.. _Miro Guide: http://miroguide.org/ -.. _Creative Commons: http://creativecommons.org/ -.. _Imaginary Landscape: http://www.imagescape.com/ - - -Why WSGI Minimalism -=================== - -Chris Webber on "Why WSGI Minimalism": - - If you notice in the technology list I list a lot of components - that are very "django-like", but not actually `Django`_ - components. What can I say, I really like a lot of the ideas in - Django! Which leads to the question: why not just use Django? - - While I really like Django's ideas and a lot of its components, I - also feel that most of the best ideas in Django I want have been - implemented as good or even better outside of Django. I could - just use Django and replace the templating system with Jinja2, and - the form system with wtforms, and the database with MongoDB and - MongoKit, but at that point, how much of Django is really left? - - I also am sometimes saddened and irritated by how coupled all of - Django's components are. Loosely coupled yes, but still coupled. - WSGI has done a good job of providing a base layer for running - applications on and if you know how to do it yourself [1]_, it's - not hard or many lines of code at all to bind them together - without any framework at all (not even say `Pylons`_, `Pyramid`_ - or `Flask`_ which I think are still great projects, especially for - people who want this sort of thing but have no idea how to get - started). And even at this already really early stage of writing - MediaGoblin, that glue work is mostly done. - - Not to say I don't think Django isn't great for a lot of things. - For a lot of stuff, it's still the best, but not for MediaGoblin, - I think. - - One thing that Django does super well though is documentation. It - still has some faults, but even with those considered I can hardly - think of any other project in Python that has as nice of - documentation as Django. It may be worth learning some lessons on - documentation from Django [2]_, on that note. - - I'd really like to have a good, thorough hacking-howto and - deployment-howto, especially in the former making some notes on - how to make it easier for Django hackers to get started. - -.. _Django: http://www.djangoproject.com/ -.. _Pylons: http://pylonshq.com/ -.. _Pyramid: http://docs.pylonsproject.org/projects/pyramid/dev/ -.. _Flask: http://flask.pocoo.org/ - -.. [1] http://pythonpaste.org/webob/do-it-yourself.html -.. [2] http://pycon.blip.tv/file/4881071/ - - -Why MongoDB -=========== - -Chris Webber on "Why MongoDB": - - In case you were wondering, I am not a NOSQL fanboy, I do not go - around telling people that MongoDB is web scale. Actually my - choice for MongoDB isn't scalability, though scaling up really - nicely is a pretty good feature and sets us up well in case large - volume sites eventually do use MediaGoblin. But there's another - side of scalability, and that's scaling down, which is important - for federation, maybe even more important than scaling up in an - ideal universe where everyone ran servers out of their own - housing. As a memory-mapped database, MongoDB is pretty hungry, - so actually I spent a lot of time debating whether the inability - to scale down as nicely as something like SQL has with sqlite - meant that it was out. - - But I decided in the end that I really want MongoDB, not for - scalability, but for flexibility. Schema evolution pains in SQL - are almost enough reason for me to want MongoDB, but not quite. - The real reason is because I want the ability to eventually handle - multiple media types through MediaGoblin, and also allow for - plugins, without the rigidity of tables making that difficult. In - other words, something like:: - - {"title": "Me talking until you are bored", - "description": "blah blah blah", - "media_type": "audio", - "media_data": { - "length": "2:30", - "codec": "OGG Vorbis"}, - "plugin_data": { - "licensing": { - "license": "http://creativecommons.org/licenses/by-sa/3.0/"}}} - - - Being able to just dump media-specific information in a media_data - hashtable is pretty great, and even better is having a plugin - system where you can just let plugins have their own entire - key-value space cleanly inside the document that doesn't interfere - with anyone else's stuff. If we were to let plugins to deposit - their own information inside the database, either we'd let plugins - create their own tables which makes SQL migrations even harder - than they already are, or we'd probably end up creating a table - with a column for key, a column for value, and a column for type - in one huge table called "plugin_data" or something similar. (Yo - dawg, I heard you liked plugins, so I put a database in your - database so you can query while you query.) Gross. - - I also don't want things to be too loose so that we forget or lose - the structure of things, and that's one reason why I want to use - MongoKit, because we can cleanly define a much structure as we - want and verify that documents match that structure generally - without adding too much bloat or overhead (MongoKit is a pretty - lightweight wrapper and doesn't inject extra MongoKit-specific - stuff into the database, which is nice and nicer than many other - ORMs in that way). - - -Why Sphinx for documentation -============================ - -Will Kahn-Greene on "Why Sphinx": - - `Sphinx`_ is a fantastic tool for organizing documentation for a - Python-based project that makes it pretty easy to write docs that - are readable in source form and can be "compiled" into HTML, LaTeX - and other formats. - - There are other doc systems out there, but given that GNU - MediaGoblin is being written in Python and I've done a ton of - documentation using Sphinx, it makes sense to use Sphinx for now. - -.. _Sphinx: http://sphinx.pocoo.org/ - - -Why AGPLv3 and CC0? -=================== - -Chris, Brett, Will, Rob, Matt, et al curated into a story where -everyone is the hero by Will on "Why AGPLv3 and CC0": - - The `AGPL v3`_ preserves the freedoms guaranteed by the GPL v3 in - the context of software as a service. Using this license ensures - that users of the service have the ability to examine the source, - deploy their own instance, and implement their own version. This - is really important to us and a core mission component of this - project. Thus we decided that the software parts should be under - this license. - - However, the project is made up of more than just software: - there's CSS, images, and other output-related things. We wanted - the templates/images/css side of the project all permissive and - permissive in the same absolutely permissive way. We're waiving - our copyrights to non-software things under the CC0 waiver. - - That brings us to the templates where there's some code and some - output. The template engine we're using is called Jinja2. It - mixes HTML markup with Python code to render the output of the - software. We decided the templates are part of the output of the - software and not the software itself. We wanted the output of the - software to be licensed in a hassle-free way so that when someone - deploys their own GNU MediaGoblin instance with their own - templates, they don't have to deal with the copyleft aspects of - the AGPLv3 and we'd be fine with that because the changes they're - making are identity-related. So at first we decided to waive our - copyrights to the templates with a CC0 waiver and then add an - exception to the AGPLv3 for the software such that the templates - can make calls into the software and yet be a separately licensed - work. However, Brett brought up the question of whether this - allows some unscrupulous person to make changes to the software - through the templates in such a way that they're not bound by the - AGPLv3: i.e. a loophole. We thought about this loophole and - between this and the extra legalese involved in the exception to - the AGPLv3, we decided that it's just way simpler if the templates - were also licensed under the AGPLv3. - - Then we have the licensing for the documentation. Given that the - documentation is tied to the software content-wise, we don't feel - like we have to worry about ensuring freedom of the documentation - or worry about attribution concerns. Thus we're waiving our - copyrights to the documentation under CC0 as well. - - Lastly, we have branding. This covers logos and other things that - are distinctive to GNU MediaGoblin that we feel represents this - project. Since we don't currently have any branding, this is an - open issue, but we're thinking we'll go with a CC BY-SA license. - - By licensing in this way, we make sure that users of the software - receive the freedoms that the AGPLv3 ensures regardless of what - fate befalls this project. - - So to summarize: - - * software (Python, JavaScript, HTML templates): licensed - under AGPLv3 - * non-software things (CSS, images, video): copyrights waived - under CC0 because this is output of the software - * documentation: copyrights waived under CC0 because it's not part - of the software - * branding assets: we're kicking this can down the road, but - probably CC BY-SA - - This is all codified in the ``COPYING`` file. - -.. _AGPL v3: http://www.gnu.org/licenses/agpl.html -.. _CC0 v1: http://creativecommons.org/publicdomain/zero/1.0/ - - -Why (non-mandatory) copyright assignment? -========================================= - -Chris Webber on "Why copyright assignment?": - - GNU MediaGoblin is a GNU project with non-mandatory but heavily - encouraged copyright assignment to the FSF. Most, if not all, of - the core contributors to GNU MediaGoblin will have done a - copyright assignment, but unlike some other GNU projects, it isn't - required here. We think this is the best choice for GNU - MediaGoblin: it ensures that the Free Software Foundation may - protect the software by enforcing the AGPL if the FSF sees fit, - but it also means that we can immediately merge in changes from a - new contributor. It also means that some significant non-FSF - contributors might also be able to enforce the AGPL if seen fit. - - Again, assignment is not mandatory, but it is heavily encouraged, - even incentivized: significant contributors who do a copyright - assignment to the FSF are eligible to have a unique goblin drawing - produced for them by the project's main founder, Christopher Allan - Webber. See :ref:`contributing-howto-chapter` for details. - - diff --git a/docs/source/git.rst b/docs/source/git.rst index bd0f9d52..ab3206b6 100644 --- a/docs/source/git.rst +++ b/docs/source/git.rst @@ -221,4 +221,4 @@ because he doesn't need it anymore. How to learn git ================ -Check out :ref:`hacking-howto-git`! +Check out `the wiki `_. diff --git a/docs/source/hackinghowto.rst b/docs/source/hackinghowto.rst deleted file mode 100644 index caafba53..00000000 --- a/docs/source/hackinghowto.rst +++ /dev/null @@ -1,345 +0,0 @@ -.. _hacking-howto: - -=============== - Hacking HOWTO -=============== - -.. contents:: Sections - :local: - - -So you want to hack on GNU MediaGoblin? -======================================= - -First thing to do is check out the `Web site -`_ where we list all the project -infrastructure including: - -* the IRC channel -* the mailing list -* the issue tracker - -Additionally, we have information on how to get involved, who to talk -to, what needs to be worked on, and other things besides! - -Second thing to do is take a look at :ref:`codebase-chapter` where -we've started documenting how GNU MediaGoblin is built and how to add -new things. - -Third you'll need to :ref:`get the requirements -`. - -Fourth, you'll need to build a development environment. We use buildout, -but if you want to use virtualenv, there's a set of mediocre not-very-supported -steps in the `wiki `_. - - -.. _get-requirements-section: - -Getting requirements -==================== - -First, you need to have the following installed before you can build -an environment for hacking on GNU MediaGoblin: - -* Python 2.6 or 2.7 - http://www.python.org/ - - You'll need Python as well as the dev files for building modules. - -* python-lxml - http://lxml.de/ -* git - http://git-scm.com/ -* MongoDB - http://www.mongodb.org/ - -If you're running Debian GNU/Linux or a Debian-derived distribution -such as Mint or Ubuntu, running the following should install these -requirements:: - - sudo apt-get install mongodb git-core python python-dev \ - python-lxml - -On Fedora:: - - yum install mongodb-server python-paste-deploy python-paste-script \ - git-core python python-devel python-lxml - -.. YouCanHelp:: - - If you have instructions for other GNU/Linux distributions to set - up requirements, let us know! - - -.. _hacking-with-buildout: - - -How to set up and maintain an environment for hacking with buildout -=================================================================== - -**Requirements** - -No additional requirements. - - -**Create a development environment** - -After installing the requirements, follow these steps: - -1. Clone the repository:: - - git clone git://gitorious.org/mediagoblin/mediagoblin.git - -2. Bootstrap and run buildout:: - - cd mediagoblin - python bootstrap.py && ./bin/buildout - - -That's it! Using this method, buildout should create a ``user_dev`` -directory, in which certain things will be stored (media, beaker -session stuff, etc). You can change this, but for development -purposes this default should be fine. - - -**Updating for dependency changes** - -While hacking on GNU MediaGoblin over time, you'll eventually have to -update your development environment because the dependencies have -changed. To do that, run:: - - ./bin/buildout && ./bin/gmg migrate - - -**Updating for code changes** - -You don't need to do anything---code changes are automatically -available. - - -**Deleting your buildout** - -At some point, you may want to delete your buildout. Perhaps it's to -start over. Perhaps it's to test building development environments -with buildout. - -To do this, do:: - - rm -rf bin develop-eggs eggs mediagoblin.egg-info parts user_dev - - -Running the server -================== - -If you want to get things running quickly and without hassle, just -run:: - - ./lazyserver.sh - -This will start up a python server where you can begin playing with -mediagoblin. It will also run celery in "always eager" mode so you -don't have to start a separate process for it. - -This is fine in development, but if you want to actually run celery -separately for testing (or deployment purposes), you'll want to run -the server independently:: - - ./bin/paster serve paste.ini --reload - - -Running celeryd -=============== - -If you aren't using ./lazyserver.sh or otherwise aren't running celery -in always eager mode, you'll need to do this if you want your media to -process and actually show up. It's probably a good idea in -development to have the web server (above) running in one terminal and -celeryd in another window. - -Run:: - - CELERY_CONFIG_MODULE=mediagoblin.init.celery.from_celery ./bin/celeryd - - -Running the test suite -====================== - -Run:: - - ./runtests.sh - - -Running a shell -=============== - -If you want a shell with your database pre-setup and an instantiated -application ready and at your fingertips.... - -Run:: - - ./bin/gmg shell - - -Troubleshooting -=============== - -pymongo.errors.AutoReconnect: could not find master/primary ------------------------------------------------------------ - -If you see this:: - - pymongo.errors.AutoReconnect: could not find master/primary - -then make sure mongodb is installed and running. - -If it's installed, check the mongodb log. On my machine, that's -``/var/log/mongodb/mongodb.log``. If you see something like:: - - old lock file: /var/lib/mongodb/mongod.lock. probably means... - -in that case you might have had an unclean shutdown. Try:: - - sudo mongod --repair - -If that didn't work, just delete the lock file and relaunch mongodb. - -Anyway, then start the mongodb server in whatever way is appropriate -for your distro / OS. - - -pkg_resources.DistributionNotFound: distribute ----------------------------------------------- - -If you get this while running buildout:: - - pkg_resources.DistributionNotFound: distribute - -Try this commmand instead:: - - python bootstrap.py --distribute && ./bin/buildout - - -Wiping your user data -===================== - -.. Note:: - - Unless you're doing development and working on and testing creating - a new instance, you will probably never have to do this. Will - plans to do this work and thus he documented it. - -.. YouCanHelp:: - - If you're familiar with MongoDB, we'd love to get a `script that - removes all the GNU MediaGoblin data from an existing instance - `_. Let us know! - - -Quickstart for Django programmers -================================= - -We're not using Django, but the codebase is very Django-like in its -structure. - -* ``routing.py`` is like ``urls.py`` in Django -* ``models.py`` has mongokit ORM definitions -* ``views.py`` is where the views go - -We're using MongoDB. Basically, instead of a relational database with -tables, you have a big JSON structure which acts a lot like a Python -dict. - - -.. YouCanHelp:: - - If there are other things that you think would help orient someone - new to GNU MediaGoblin but coming from Django, let us know! - - -Bite-sized bugs to start with -============================= - -**May 3rd, 2011**: We don't have a list of bite-sized bugs, yet, but -this is important to us. If you're interested in things to work on, -let us know on `the mailing list `_ or -on the `IRC channel `_. - - -Tips for people new to coding -============================= - -Learning Python ---------------- - -GNU MediaGoblin is written using a programming language called `Python -`_. - -There are two different incompatible iterations of Python which I'll -refer to as Python 2 and Python 3. GNU MediaGoblin is written in -Python 2 and requires Python 2.6 or 2.7. At some point, we might -switch to Python 3, but that's a future thing. - -You can learn how to code in Python 2 from several excellent books -that are freely available on the Internet: - -* `Learn Python the Hard Way `_ -* `Dive Into Pyton `_ -* `Python for Software Design `_ -* `A Byte of Python `_ - -These are all excellent texts. - -.. YouCanHelp:: - - If you know of other good quality Python tutorials and Python - tutorial videos, let us know! - - -Learning Libraries GNU MediaGoblin uses ---------------------------------------- - -GNU MediaGoblin uses a variety of libraries in order to do what it -does. These libraries are listed in the :ref:`codebase-chapter` -along with links to the project Web sites and documentation for the -libraries. - -There are a variety of Python-related conferences every year that have -sessions covering many aspects of these libraries. You can find them -at `Python Miro Community `_ [0]_. - -.. [0] This is a shameless plug. Will Kahn-Greene runs Python Miro - Community. - -If you have questions or need help, find us on the mailing list and on -IRC. - - -.. _hacking-howto-git: - -Learning git ------------- - -git is an interesting and very powerful tool. Like all powerful -tools, it has a learning curve. - -If you're new to git, we highly recommend the following resources for -getting the hang of it: - -* `Learn Git `_ --- the GitHub - intro to git -* `Pro Git `_ --- fantastic book -* `Git casts `_ --- screencast covering git - usage -* `Git Reference `_ --- Git reference that makes - it easier to get the hang of git if you're coming from other version - control systems - -There's also a git mission at `OpenHatch `_. - - -Learning other utilities ------------------------- - -The `OpenHatch `_ site has a series of -`training missions `_ which are -designed to help you learn how to use these tools. - -If you're new to tar, diff, patch and git, we highly recommend you sign -up with OpenHatch and do the missions. diff --git a/docs/source/index.rst b/docs/source/index.rst index 2f84d6a6..8c00869a 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -15,11 +15,9 @@ Table of Contents: mediagoblin contributinghowto deploymenthowto - hackinghowto theminghowto git codebase - designdecisions vision From a656ccd561a1ac735e3256748016646a7d5576c3 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 1 Aug 2011 08:34:50 -0500 Subject: [PATCH 0777/2731] Updating tests to reflect we redirect to the user's page after verification now. --- mediagoblin/tests/test_auth.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py index f0bb183f..4781dd9b 100644 --- a/mediagoblin/tests/test_auth.py +++ b/mediagoblin/tests/test_auth.py @@ -190,12 +190,14 @@ def test_register_views(test_app): ## Try verifying with bs verification key, shouldn't work util.clear_test_template_context() - test_app.get( + response = test_app.get( "/auth/verify_email/?userid=%s&token=total_bs" % unicode( new_user['_id'])) + response.follow() context = util.TEMPLATE_TEST_CONTEXT[ 'mediagoblin/user_pages/user.html'] - assert context['verification_successful'] == False + # assert context['verification_successful'] == True + # TODO: Would be good to test messages here when we can do so... new_user = mg_globals.database.User.find_one( {'username': 'happygirl'}) assert new_user @@ -204,10 +206,12 @@ def test_register_views(test_app): ## Verify the email activation works util.clear_test_template_context() - test_app.get("%s?%s" % (path, get_params)) + response = test_app.get("%s?%s" % (path, get_params)) + response.follow() context = util.TEMPLATE_TEST_CONTEXT[ 'mediagoblin/user_pages/user.html'] - assert context['verification_successful'] == True + # assert context['verification_successful'] == True + # TODO: Would be good to test messages here when we can do so... new_user = mg_globals.database.User.find_one( {'username': 'happygirl'}) assert new_user From 0419d0da24f44ce1fa1c1b8478067c76fc870085 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 1 Aug 2011 09:11:14 -0500 Subject: [PATCH 0778/2731] get_test_app() should turn on testing buckets --- mediagoblin/tests/tools.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mediagoblin/tests/tools.py b/mediagoblin/tests/tools.py index 4b61f259..ab14c21e 100644 --- a/mediagoblin/tests/tools.py +++ b/mediagoblin/tests/tools.py @@ -58,6 +58,9 @@ def suicide_if_bad_celery_environ(): def get_test_app(dump_old_app=True): suicide_if_bad_celery_environ() + # Make sure we've turned on testing + util._activate_testing() + # Leave this imported as it sets up celery. from mediagoblin.init.celery import from_tests From cd57611f95191ba9b1d58a11dd8eb42d3c9185e0 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 1 Aug 2011 09:54:09 -0500 Subject: [PATCH 0779/2731] Phrasing update: "own your data" -> "free your data from proprietary control" --- docs/source/mediagoblin.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/source/mediagoblin.rst b/docs/source/mediagoblin.rst index c437ecc3..af6658f3 100644 --- a/docs/source/mediagoblin.rst +++ b/docs/source/mediagoblin.rst @@ -30,9 +30,9 @@ Why are we doing this? Centralization and proprietization of media on the internet is a serious problem and makes the web go from a system of extreme resilience to a system of frightening fragility. We believe people -should be able to own their data and that means someone has to build -the tools to make it possible. We decided that in this case, that -someone would be us! +should be able to free their data from proprietary control and that +means someone has to build the tools to make it possible. We decided +that in this case, that someone would be us! Who are you? From db2b07eeb7f162ec1d0d75ae20d2b19215020c7e Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 1 Aug 2011 10:46:44 -0500 Subject: [PATCH 0780/2731] Make sure there's a break between the object gallery and its pagination. --- mediagoblin/templates/mediagoblin/utils/object_gallery.html | 1 + 1 file changed, 1 insertion(+) diff --git a/mediagoblin/templates/mediagoblin/utils/object_gallery.html b/mediagoblin/templates/mediagoblin/utils/object_gallery.html index 1b1c69f6..03b85b17 100644 --- a/mediagoblin/templates/mediagoblin/utils/object_gallery.html +++ b/mediagoblin/templates/mediagoblin/utils/object_gallery.html @@ -27,6 +27,7 @@ entry['media_files']['thumb']) }}" />

            {% endfor %} +
            {% if pagination_base_url %} {# different url, so set that and don't keep the get params #} {{ render_pagination(request, pagination, pagination_base_url, False) }} From 2542aa30c0fcee783a12f9b8b610e4998871fdd9 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 1 Aug 2011 10:49:05 -0500 Subject: [PATCH 0781/2731] Make index page paginated --- mediagoblin/templates/mediagoblin/root.html | 2 +- mediagoblin/views.py | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index bae033c4..ed7b931f 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -39,5 +39,5 @@ {# temporarily, an "image gallery" that isn't one really ;) #} - {% include "mediagoblin/utils/object_gallery.html" %} + {% include "mediagoblin/utils/object_gallery.html" %} {% endblock %} diff --git a/mediagoblin/views.py b/mediagoblin/views.py index e7d9dbdd..ccd7a2df 100644 --- a/mediagoblin/views.py +++ b/mediagoblin/views.py @@ -15,17 +15,23 @@ # along with this program. If not, see . from mediagoblin import mg_globals -from mediagoblin.util import render_to_response +from mediagoblin.util import render_to_response, Pagination from mediagoblin.db.util import DESCENDING +from mediagoblin.decorators import uses_pagination -def root_view(request): - media_entries = request.db.MediaEntry.find( +@uses_pagination +def root_view(request, page): + cursor = request.db.MediaEntry.find( {u'state': u'processed'}).sort('created', DESCENDING) - + + pagination = Pagination(page, cursor) + media_entries = pagination() + return render_to_response( request, 'mediagoblin/root.html', {'media_entries': media_entries, - 'allow_registration': mg_globals.app_config["allow_registration"]}) + 'allow_registration': mg_globals.app_config["allow_registration"], + 'pagination': pagination}) def simple_template_render(request): From 21cdb646562452e45ea1ba5c93819836a1aaa9b3 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Mon, 1 Aug 2011 12:12:41 -0400 Subject: [PATCH 0782/2731] Updates documentation section in the README --- README | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/README b/README index 082ab2a7..0aba179b 100644 --- a/README +++ b/README @@ -33,6 +33,10 @@ hang out, see `our Join page `_ Where is the documentation? =========================== -Documentation is located in the ``docs/`` directory in a "raw" -restructured-text form. It is also available at -http://docs.mediagoblin.org/ in HTML form. +The beginnings of a user manual is located in the ``docs/`` directory +in HTML, Texinfo, and source (Restructured Text) forms. It's also +available online at http://docs.mediagoblin.org/ in HTML form. + +Contributor/developer documentation as well as documentation on the +project processes and infrastructure is located on +`the wiki `_. From b7e57b1f76c5f2fba3527dfcd919f517d1c67cca Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Mon, 1 Aug 2011 12:13:02 -0400 Subject: [PATCH 0783/2731] Adds additional metadata to setup.py * trove classifiers * long description * url and download_url * ... --- setup.py | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/setup.py b/setup.py index 799f00d8..400bd591 100644 --- a/setup.py +++ b/setup.py @@ -49,21 +49,32 @@ setup( # 'lxml', ], test_suite='nose.collector', - - license = 'AGPLv3', - author = 'Free Software Foundation and contributors', - author_email = 'cwebber@gnu.org', entry_points = """\ - [console_scripts] - gmg = mediagoblin.gmg_commands:main_cli + [console_scripts] + gmg = mediagoblin.gmg_commands:main_cli - [paste.app_factory] - app = mediagoblin.app:paste_app_factory + [paste.app_factory] + app = mediagoblin.app:paste_app_factory - [zc.buildout] - make_user_dev_dirs = mediagoblin.buildout_recipes:MakeUserDevDirs + [zc.buildout] + make_user_dev_dirs = mediagoblin.buildout_recipes:MakeUserDevDirs - [babel.extractors] - jinja2 = jinja2.ext:babel_extract - """, + [babel.extractors] + jinja2 = jinja2.ext:babel_extract + """, + + license='AGPLv3', + author='Free Software Foundation and contributors', + author_email='cwebber@gnu.org', + url="http://mediagoblin.org/", + download_url="http://mediagoblin.org/download/", + long_description=open('README').read(), + classifiers=[ + "Development Status :: 3 - Alpha", + "Environment :: Web Environment", + "License :: OSI Approved :: GNU Affero General Public License", + "Operating System :: OS Independent", + "Programming Language :: Python", + "Topic :: Internet :: WWW/HTTP :: Dynamic Content" + ], ) From c7f0b6fab08a52cc5a6e242ad3df2e674cb68fb9 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Mon, 1 Aug 2011 12:17:03 -0400 Subject: [PATCH 0784/2731] Updating version to 0.0.4. --- docs/source/conf.py | 4 ++-- setup.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 5861a463..e2f327c9 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -48,9 +48,9 @@ copyright = u'2011, Free Software Foundation, Inc and contributors' # built documents. # # The short X.Y version. -version = '0.0.3' +version = '0.0.4' # The full version, including alpha/beta/rc tags. -release = '0.0.3' +release = '0.0.4' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/setup.py b/setup.py index 400bd591..3508f5f0 100644 --- a/setup.py +++ b/setup.py @@ -18,7 +18,7 @@ from setuptools import setup, find_packages setup( name = "mediagoblin", - version = "0.0.3", + version = "0.0.4", packages=find_packages(exclude=['ez_setup', 'examples', 'tests']), zip_safe=False, # scripts and dependencies From 4d74812dfc5a671aa50f54951ffe9e0ee520f8f7 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Mon, 1 Aug 2011 12:20:31 -0400 Subject: [PATCH 0785/2731] Removes .pyc files from mgext directory after building --- maketarball.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/maketarball.sh b/maketarball.sh index 6bfaf920..5f17e578 100755 --- a/maketarball.sh +++ b/maketarball.sh @@ -154,10 +154,13 @@ then mv docs/build/texinfo/ docs/texinfo/ rm -rf docs/build/ + rm -rf docs/source/mgext/*.pyc else + # this is the old directory structure pre-0.0.4 mv docs/_build/html/ docs/html/ rm -rf docs/_build/ + rm -rf docs/mgext/*.pyc fi popd From 68cf996c1df17ac1f53f5fd86b71bfdfcb9f2aba Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 18 Jul 2011 14:07:03 +0200 Subject: [PATCH 0786/2731] First start at MountStorage. This includes the mounttab, a resolver and adding mount entries. --- mediagoblin/storage.py | 76 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index 5d6faa4c..3d5ce9ab 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -216,6 +216,82 @@ class BasicFileStorage(StorageInterface): return self._resolve_filepath(filepath) +class MountStorage(StorageInterface): + def __init__(self, **kwargs): + self.mounttab = {} + + def mount(self, dirpath, backend): + """ + Mount a new backend under dirpath + """ + new_ent = clean_listy_filepath(dirpath) + new_ent.append(u'') + + print "Mounting:", repr(new_ent) + already, rem_1, table, rem_2 = self.resolve_to_backend(new_ent, True) + print "===", repr(already), repr(rem_1), repr(rem_2) + + assert rem_1.pop(-1) == u'', "Internal Error 1" + assert rem_2.pop(-1) == u'', "Internal Error 2" + assert (already is None) or (len(rem_2) > 0), "Already mounted" + for part in rem_2: + table[part] = {} + table = table[part] + table[None] = backend + + def resolve_to_backend(self, filepath, extra_info = False): + """ + extra_info = True is for internal use! + + Normally, returns the backend and the filepath inside that backend. + + With extra_info = True it returns the last directory node and the + remaining filepath from there in addition. + """ + table = self.mounttab + filepath = filepath[:] + res_fp = None + while True: + new_be = table.get(None) + if (new_be is not None) or res_fp is None: + res_be = new_be + res_fp = filepath[:] + res_extra = (table, filepath[:]) + # print "... New res: %r, %r, %r" % (res_be, res_fp, res_extra) + if len(filepath) == 0: + break + query = filepath.pop(0) + entry = table.get(query) + if entry is not None: + table = entry + res_extra = (table, filepath[:]) + else: + break + if extra_info: + return (res_be, res_fp) + res_extra + else: + return (res_be, res_fp) + + def __repr__(self, table = None, indent = ""): + res = [] + if table is None: + res.append("MountStorage<") + table = self.mounttab + v = table.get(None) + if v: + res.append(indent + "On this level: " + repr(v)) + for k, v in table.iteritems(): + if k == None: + continue + res.append(indent + repr(k) + ":") + res += self.__repr__(v, indent + " ") + if table is self.mounttab: + res.append(">") + return "\n".join(res) + else: + return res + + ########### # Utilities ########### From 93b2796c7e89e269d60db8e48bf84a0f2ca88d12 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 23 Jul 2011 15:27:02 +0200 Subject: [PATCH 0787/2731] MountStorage: Some small fixups/changes. 1) A bit more assert. 2) Change __repr__ to use lists for the recursion parameter. --- mediagoblin/storage.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index 3d5ce9ab..d994268b 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -237,6 +237,7 @@ class MountStorage(StorageInterface): for part in rem_2: table[part] = {} table = table[part] + assert not table.has_key(None), "Huh? Already mounted?!" table[None] = backend def resolve_to_backend(self, filepath, extra_info = False): @@ -272,19 +273,19 @@ class MountStorage(StorageInterface): else: return (res_be, res_fp) - def __repr__(self, table = None, indent = ""): + def __repr__(self, table = None, indent = []): res = [] if table is None: res.append("MountStorage<") table = self.mounttab v = table.get(None) if v: - res.append(indent + "On this level: " + repr(v)) + res.append(" " * len(indent) + repr(indent) + ": " + repr(v)) for k, v in table.iteritems(): if k == None: continue - res.append(indent + repr(k) + ":") - res += self.__repr__(v, indent + " ") + res.append(" " * len(indent) + repr(k) + ":") + res += self.__repr__(v, indent + [k]) if table is self.mounttab: res.append(">") return "\n".join(res) From 937e2c88112ee2f2ec71b9b38ccb1b473f32237e Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 23 Jul 2011 15:29:22 +0200 Subject: [PATCH 0788/2731] MountStorage: Create all the wrappers All those methods just call the appropiate method of the relevant backend. --- mediagoblin/storage.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index d994268b..e3d54a30 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -292,6 +292,34 @@ class MountStorage(StorageInterface): else: return res + def file_exists(self, filepath): + backend, filepath = self.resolve_to_backend(filepath) + return backend.file_exists(filepath) + + def get_file(self, filepath, mode='r'): + backend, filepath = self.resolve_to_backend(filepath) + return backend.get_file(filepath, mode) + + def delete_file(self, filepath): + backend, filepath = self.resolve_to_backend(filepath) + return backend.delete_file(filepath) + + def file_url(self, filepath): + backend, filepath = self.resolve_to_backend(filepath) + return backend.file_url(filepath) + + def get_local_path(self, filepath): + backend, filepath = self.resolve_to_backend(filepath) + return backend.get_local_path(filepath) + + def copy_locally(self, filepath, dest_path): + """ + Need to override copy_locally, because the local_storage + attribute is not correct. + """ + backend, filepath = self.resolve_to_backend(filepath) + backend.copy_locally(filepath, dest_path) + ########### # Utilities From aaa46f5a156093c4295e4cb0d85eae72e28468ea Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Tue, 2 Aug 2011 21:17:30 +0200 Subject: [PATCH 0789/2731] Sidebar changes: correct tags header to be

            , show action buttons header only to owner --- mediagoblin/templates/mediagoblin/user_pages/media.html | 5 +---- mediagoblin/templates/mediagoblin/utils/tags.html | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index a1382518..ddcf3ce9 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -103,11 +103,9 @@
            {% include "mediagoblin/utils/prev_next.html" %} -

            Sidebar content here!

            - -

            {% if media['uploader'] == request.user['_id'] or request.user['is_admin'] %} +

            Temporary button holder

            delete

            {% endif %} -

            {% if media.tags %} {% include "mediagoblin/utils/tags.html" %} diff --git a/mediagoblin/templates/mediagoblin/utils/tags.html b/mediagoblin/templates/mediagoblin/utils/tags.html index ade41944..32db6e31 100644 --- a/mediagoblin/templates/mediagoblin/utils/tags.html +++ b/mediagoblin/templates/mediagoblin/utils/tags.html @@ -17,7 +17,7 @@ #} {% block tags_content -%} -

            Tags

            +

            Tags

              {% for tag in media.tags %}
            • From 926aec14737d59160c0fac04a1af201550abe967 Mon Sep 17 00:00:00 2001 From: Elrond Date: Wed, 3 Aug 2011 23:11:42 +0200 Subject: [PATCH 0790/2731] MountStorage: drop u'' nonsense from mount method My old resolver couldn't handle empty lists, so for the mount resolving I appeneded a u'' as dummy element. Not needed any more. --- mediagoblin/storage.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index e3d54a30..abbe16c9 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -225,14 +225,11 @@ class MountStorage(StorageInterface): Mount a new backend under dirpath """ new_ent = clean_listy_filepath(dirpath) - new_ent.append(u'') print "Mounting:", repr(new_ent) already, rem_1, table, rem_2 = self.resolve_to_backend(new_ent, True) print "===", repr(already), repr(rem_1), repr(rem_2) - assert rem_1.pop(-1) == u'', "Internal Error 1" - assert rem_2.pop(-1) == u'', "Internal Error 2" assert (already is None) or (len(rem_2) > 0), "Already mounted" for part in rem_2: table[part] = {} From eea315623fdff018f389dad2ab037a2b2aaf982b Mon Sep 17 00:00:00 2001 From: Elrond Date: Wed, 3 Aug 2011 23:13:58 +0200 Subject: [PATCH 0791/2731] MountStorage: Better error reporting Created a new resolver frontend function, that raises and error, when no backend is found. Useful for all the wrappers. --- mediagoblin/storage.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index abbe16c9..f9d2c3ea 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -227,7 +227,7 @@ class MountStorage(StorageInterface): new_ent = clean_listy_filepath(dirpath) print "Mounting:", repr(new_ent) - already, rem_1, table, rem_2 = self.resolve_to_backend(new_ent, True) + already, rem_1, table, rem_2 = self._resolve_to_backend(new_ent, True) print "===", repr(already), repr(rem_1), repr(rem_2) assert (already is None) or (len(rem_2) > 0), "Already mounted" @@ -237,7 +237,7 @@ class MountStorage(StorageInterface): assert not table.has_key(None), "Huh? Already mounted?!" table[None] = backend - def resolve_to_backend(self, filepath, extra_info = False): + def _resolve_to_backend(self, filepath, extra_info = False): """ extra_info = True is for internal use! @@ -270,6 +270,12 @@ class MountStorage(StorageInterface): else: return (res_be, res_fp) + def resolve_to_backend(self, filepath): + backend, filepath = self._resolve_to_backend(filepath) + if backend is None: + raise Error("Path not mounted") + return backend, filepath + def __repr__(self, table = None, indent = []): res = [] if table is None: From 5bb1f9b0efdfa801dfdf083184e5820fb29e00b0 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 3 Aug 2011 18:01:00 -0500 Subject: [PATCH 0792/2731] Joar points out that these are "local" rather than "user" config files, so changing .gitignore. See http://wiki.mediagoblin.org/ConfigureMediaGoblin for details. --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index f5c2ba31..9da56bab 100644 --- a/.gitignore +++ b/.gitignore @@ -10,7 +10,8 @@ mediagoblin.egg-info *.pyo docs/_build/ user_dev/ -mediagoblin_user.ini +paste_local.ini +mediagoblin_local.ini server-log.txt *~ *.swp From 851c51a354d1355683093cdb04d48fcaafc20c28 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Thu, 4 Aug 2011 01:32:34 +0200 Subject: [PATCH 0793/2731] Feature 477 - Support Cloud Files public storage * Added configuration options to mediagoblin.ini * process_media supports the python-cloudfiles almost-file-like objects by wrapping them in a contextlib.contextmanager-decorated func. * storage now has the CloudFilesStorage * New dependency added to setup.py; `python-cloudfiles` --- mediagoblin.ini | 28 +++++++++++++- mediagoblin/process_media/__init__.py | 13 +++++-- mediagoblin/storage.py | 56 +++++++++++++++++++++++++++ setup.py | 1 + 4 files changed, 94 insertions(+), 4 deletions(-) diff --git a/mediagoblin.ini b/mediagoblin.ini index e889646a..100e9376 100644 --- a/mediagoblin.ini +++ b/mediagoblin.ini @@ -1,7 +1,33 @@ [mediagoblin] -queuestore_base_dir = %(here)s/user_dev/media/queue +## +# BEGIN CloudFiles public storage +## +# Uncomment the following line and fill in your details to enable Cloud Files +# (or OpenStack Object Storage [Swift]) +# - +# publicstore_storage_class = mediagoblin.storage:CloudFilesStorage +publicstore_cloudfiles_user = user +publicstore_cloudfiles_api_key = 1a2b3c4d5e6f7g8h9i +publicstore_cloudfiles_container = mediagoblin + +# Only applicable if you run MediaGoblin on a Rackspace Cloud Server +# it routes traffic through the internal Rackspace network, this +# means that the bandwith betis free. +publicstore_cloudfiles_use_servicenet = false +## +# END CloudFiles +## + +## +# BEGIN filesystem public storage +## publicstore_base_dir = %(here)s/user_dev/media/public publicstore_base_url = /mgoblin_media/ +## +# END +## + +queuestore_base_dir = %(here)s/user_dev/media/queue direct_remote_path = /mgoblin_static/ email_sender_address = "notice@mediagoblin.example.org" diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py index 125b24e0..8e12ca4d 100644 --- a/mediagoblin/process_media/__init__.py +++ b/mediagoblin/process_media/__init__.py @@ -19,6 +19,7 @@ from mediagoblin.db.util import ObjectId from celery.task import task from mediagoblin import mg_globals as mgg +from contextlib import contextmanager THUMB_SIZE = 180, 180 @@ -31,6 +32,12 @@ def create_pub_filepath(entry, filename): unicode(entry['_id']), filename]) +@contextmanager +def closing(callback): + try: + yield callback + finally: + pass @task def process_media_initial(media_id): @@ -53,7 +60,7 @@ def process_media_initial(media_id): thumb_filepath = create_pub_filepath(entry, 'thumbnail.jpg') thumb_file = mgg.public_store.get_file(thumb_filepath, 'w') - with thumb_file: + with closing(thumb_file): thumb.save(thumb_file, "JPEG", quality=90) """ @@ -73,7 +80,7 @@ def process_media_initial(media_id): medium_filepath = create_pub_filepath(entry, 'medium.jpg') medium_file = mgg.public_store.get_file(medium_filepath, 'w') - with medium_file: + with closing(medium_file): medium.save(medium_file, "JPEG", quality=90) medium_processed = True @@ -84,7 +91,7 @@ def process_media_initial(media_id): with queued_file: original_filepath = create_pub_filepath(entry, queued_filepath[-1]) - with mgg.public_store.get_file(original_filepath, 'wb') as original_file: + with closing(mgg.public_store.get_file(original_filepath, 'wb')) as original_file: original_file.write(queued_file.read()) mgg.queue_store.delete_file(queued_filepath) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index 5d6faa4c..0e50938f 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -19,6 +19,7 @@ import re import shutil import urlparse import uuid +import cloudfiles from werkzeug.utils import secure_filename @@ -161,6 +162,61 @@ class StorageInterface(object): dest_file.write(source_file.read()) +class CloudFilesStorage(StorageInterface): + def __init__(self, **kwargs): + self.param_container = kwargs.get('cloudfiles_container') + self.param_user = kwargs.get('cloudfiles_user') + self.param_api_key = kwargs.get('cloudfiles_api_key') + self.param_host = kwargs.get('cloudfiles_host') + self.param_use_servicenet = kwargs.get('cloudfiles_use_servicenet') + + if not self.param_host: + print('No CloudFiles host URL specified, defaulting to Rackspace US') + + self.connection = cloudfiles.get_connection( + username=self.param_user, + api_key=self.param_api_key, + servicenet=True if self.param_use_servicenet == 'true' or \ + self.param_use_servicenet == True else False) + + if not self.param_container in [self.connection.get_container(self.param_container)]: + self.container = self.connection.create_container(self.param_container) + self.container.make_public( + ttl=60 * 60 * 2) + else: + self.container = self.connection.get_container(self.param_container) + + def _resolve_filepath(self, filepath): + return '-'.join( + clean_listy_filepath(filepath)) + + def file_exists(self, filepath): + try: + object = self.container.get_object( + self._resolve_filepath(filepath)) + return True + except cloudfiles.errors.NoSuchObject: + return False + + def get_file(self, filepath, mode='r'): + try: + obj = self.container.get_object( + self._resolve_filepath(filepath)) + except cloudfiles.errors.NoSuchObject: + obj = self.container.create_object( + self._resolve_filepath(filepath)) + + return obj + + def delete_file(self, filepath): + # TODO: Also delete unused directories if empty (safely, with + # checks to avoid race conditions). + self.container.delete_object(filepath) + + def file_url(self, filepath): + return self.get_file(filepath).public_uri() + + class BasicFileStorage(StorageInterface): """ Basic local filesystem implementation of storage API diff --git a/setup.py b/setup.py index 3508f5f0..6043ad41 100644 --- a/setup.py +++ b/setup.py @@ -44,6 +44,7 @@ setup( 'webtest', 'ConfigObj', 'Markdown', + 'python-cloudfiles', ## For now we're expecting that users will install this from ## their package managers. # 'lxml', From aa797ca130c5331e6d40d4be746c3963ec9de111 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Thu, 4 Aug 2011 14:49:12 +0200 Subject: [PATCH 0794/2731] Feature #477 - Cloud Files public storage * mediagoblin.storage is now fully PEP-8 compliant. * mediagoblin.storage:BaseFileStorage precedes CloudFilesStorage * Removed all the cloudfiles-specific options from mediagoblin.ini, now it's in the wiki, http://wiki.mediagoblin.org/ConfigureMediaGoblin#Setting_up_Cloud_Files_public_storage --- mediagoblin.ini | 28 +-------- mediagoblin/storage.py | 140 ++++++++++++++++++++++------------------- 2 files changed, 77 insertions(+), 91 deletions(-) diff --git a/mediagoblin.ini b/mediagoblin.ini index 100e9376..e889646a 100644 --- a/mediagoblin.ini +++ b/mediagoblin.ini @@ -1,33 +1,7 @@ [mediagoblin] -## -# BEGIN CloudFiles public storage -## -# Uncomment the following line and fill in your details to enable Cloud Files -# (or OpenStack Object Storage [Swift]) -# - -# publicstore_storage_class = mediagoblin.storage:CloudFilesStorage -publicstore_cloudfiles_user = user -publicstore_cloudfiles_api_key = 1a2b3c4d5e6f7g8h9i -publicstore_cloudfiles_container = mediagoblin - -# Only applicable if you run MediaGoblin on a Rackspace Cloud Server -# it routes traffic through the internal Rackspace network, this -# means that the bandwith betis free. -publicstore_cloudfiles_use_servicenet = false -## -# END CloudFiles -## - -## -# BEGIN filesystem public storage -## +queuestore_base_dir = %(here)s/user_dev/media/queue publicstore_base_dir = %(here)s/user_dev/media/public publicstore_base_url = /mgoblin_media/ -## -# END -## - -queuestore_base_dir = %(here)s/user_dev/media/queue direct_remote_path = /mgoblin_static/ email_sender_address = "notice@mediagoblin.example.org" diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index 0e50938f..e449eda3 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -29,11 +29,21 @@ from mediagoblin import util # Errors ######## -class Error(Exception): pass -class InvalidFilepath(Error): pass -class NoWebServing(Error): pass -class NotImplementedError(Error): pass +class Error(Exception): + pass + + +class InvalidFilepath(Error): + pass + + +class NoWebServing(Error): + pass + + +class NotImplementedError(Error): + pass ############################################### @@ -118,7 +128,7 @@ class StorageInterface(object): Eg, if the filename doesn't exist: >>> storage_handler.get_unique_filename(['dir1', 'dir2', 'fname.jpg']) [u'dir1', u'dir2', u'fname.jpg'] - + But if a file does exist, let's get one back with at uuid tacked on: >>> storage_handler.get_unique_filename(['dir1', 'dir2', 'fname.jpg']) [u'dir1', u'dir2', u'd02c3571-dd62-4479-9d62-9e3012dada29-fname.jpg'] @@ -162,61 +172,6 @@ class StorageInterface(object): dest_file.write(source_file.read()) -class CloudFilesStorage(StorageInterface): - def __init__(self, **kwargs): - self.param_container = kwargs.get('cloudfiles_container') - self.param_user = kwargs.get('cloudfiles_user') - self.param_api_key = kwargs.get('cloudfiles_api_key') - self.param_host = kwargs.get('cloudfiles_host') - self.param_use_servicenet = kwargs.get('cloudfiles_use_servicenet') - - if not self.param_host: - print('No CloudFiles host URL specified, defaulting to Rackspace US') - - self.connection = cloudfiles.get_connection( - username=self.param_user, - api_key=self.param_api_key, - servicenet=True if self.param_use_servicenet == 'true' or \ - self.param_use_servicenet == True else False) - - if not self.param_container in [self.connection.get_container(self.param_container)]: - self.container = self.connection.create_container(self.param_container) - self.container.make_public( - ttl=60 * 60 * 2) - else: - self.container = self.connection.get_container(self.param_container) - - def _resolve_filepath(self, filepath): - return '-'.join( - clean_listy_filepath(filepath)) - - def file_exists(self, filepath): - try: - object = self.container.get_object( - self._resolve_filepath(filepath)) - return True - except cloudfiles.errors.NoSuchObject: - return False - - def get_file(self, filepath, mode='r'): - try: - obj = self.container.get_object( - self._resolve_filepath(filepath)) - except cloudfiles.errors.NoSuchObject: - obj = self.container.create_object( - self._resolve_filepath(filepath)) - - return obj - - def delete_file(self, filepath): - # TODO: Also delete unused directories if empty (safely, with - # checks to avoid race conditions). - self.container.delete_object(filepath) - - def file_url(self, filepath): - return self.get_file(filepath).public_uri() - - class BasicFileStorage(StorageInterface): """ Basic local filesystem implementation of storage API @@ -240,7 +195,7 @@ class BasicFileStorage(StorageInterface): """ return os.path.join( self.base_dir, *clean_listy_filepath(filepath)) - + def file_exists(self, filepath): return os.path.exists(self._resolve_filepath(filepath)) @@ -272,6 +227,65 @@ class BasicFileStorage(StorageInterface): return self._resolve_filepath(filepath) +class CloudFilesStorage(StorageInterface): + def __init__(self, **kwargs): + self.param_container = kwargs.get('cloudfiles_container') + self.param_user = kwargs.get('cloudfiles_user') + self.param_api_key = kwargs.get('cloudfiles_api_key') + self.param_host = kwargs.get('cloudfiles_host') + self.param_use_servicenet = kwargs.get('cloudfiles_use_servicenet') + + if not self.param_host: + print('No CloudFiles host URL specified, ' + 'defaulting to Rackspace US') + + self.connection = cloudfiles.get_connection( + username=self.param_user, + api_key=self.param_api_key, + servicenet=True if self.param_use_servicenet == 'true' or \ + self.param_use_servicenet == True else False) + + if not self.param_container == \ + self.connection.get_container(self.param_container): + self.container = self.connection.create_container( + self.param_container) + self.container.make_public( + ttl=60 * 60 * 2) + else: + self.container = self.connection.get_container( + self.param_container) + + def _resolve_filepath(self, filepath): + return '/'.join( + clean_listy_filepath(filepath)) + + def file_exists(self, filepath): + try: + object = self.container.get_object( + self._resolve_filepath(filepath)) + return True + except cloudfiles.errors.NoSuchObject: + return False + + def get_file(self, filepath, mode='r'): + try: + obj = self.container.get_object( + self._resolve_filepath(filepath)) + except cloudfiles.errors.NoSuchObject: + obj = self.container.create_object( + self._resolve_filepath(filepath)) + + return obj + + def delete_file(self, filepath): + # TODO: Also delete unused directories if empty (safely, with + # checks to avoid race conditions). + self.container.delete_object(filepath) + + def file_url(self, filepath): + return self.get_file(filepath).public_uri() + + ########### # Utilities ########### @@ -339,7 +353,7 @@ def storage_system_from_config(paste_config, storage_prefix): for key, value in paste_config.iteritems() if prefix_re.match(key)]) - if config_params.has_key('storage_class'): + if 'storage_class' in config_params: storage_class = config_params['storage_class'] config_params.pop('storage_class') else: @@ -347,5 +361,3 @@ def storage_system_from_config(paste_config, storage_prefix): storage_class = util.import_component(storage_class) return storage_class(**config_params) - - From 2c4374938f05782cd8aceb789098f787d04adc51 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Fri, 5 Aug 2011 22:08:29 +0200 Subject: [PATCH 0795/2731] Feature #482 - Media attachments --- mediagoblin/config_spec.ini | 5 +++ mediagoblin/edit/forms.py | 4 +++ mediagoblin/edit/views.py | 17 +++++++++- mediagoblin/submit/forms.py | 3 ++ mediagoblin/submit/views.py | 32 ++++++++++++++++++- .../templates/mediagoblin/edit/edit.html | 9 +++++- .../templates/mediagoblin/submit/start.html | 3 ++ .../mediagoblin/user_pages/media.html | 14 ++++++++ 8 files changed, 84 insertions(+), 3 deletions(-) diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini index bbc1f7d6..a82541b6 100644 --- a/mediagoblin/config_spec.ini +++ b/mediagoblin/config_spec.ini @@ -37,6 +37,11 @@ local_templates = string() # itself) celery_setup_elsewhere = boolean(default=False) +# Whether or not users are able to upload files of any filetype with +# their media entries -- This is useful if you want to provide the +# source files for a media file but can also be a HUGE security risk. +allow_attachments = boolean(default=False) + [celery] # known booleans celery_result_persistent = boolean() diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index a1783a72..37e2349c 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -30,6 +30,10 @@ class EditForm(wtforms.Form): tags = wtforms.TextField( 'Tags', [tag_length_validator]) + attachment_name = wtforms.TextField( + 'Attachment title') + attachment_delete = wtforms.BooleanField( + 'Delete attachment') class EditProfileForm(wtforms.Form): bio = wtforms.TextAreaField('Bio', diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 5cbaadb5..09aee48b 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -34,12 +34,21 @@ def edit_media(request, media): if not may_edit_media(request, media): return exc.HTTPForbidden() - form = forms.EditForm(request.POST, + + defaults = dict( title = media['title'], slug = media['slug'], description = media['description'], tags = media_tags_as_string(media['tags'])) + if len(media['attachment_files']): + defaults['attachment_name'] = media['attachment_files'][0]['name'] + + + form = forms.EditForm( + request.POST, + **defaults) + if request.method == 'POST' and form.validate(): # Make sure there isn't already a MediaEntry with such a slug # and userid. @@ -60,6 +69,12 @@ def edit_media(request, media): media['description_html'] = cleaned_markdown_conversion( media['description']) + if 'attachment_name' in request.POST: + media['attachment_files'][0]['name'] = request.POST['attachment_name'] + + if 'attachment_delete' in request.POST and 'y' == request.POST['attachment_delete']: + del media['attachment_files'][0] + media['slug'] = request.POST['slug'] media.save() diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py index f02c95a6..9b35a8c3 100644 --- a/mediagoblin/submit/forms.py +++ b/mediagoblin/submit/forms.py @@ -28,3 +28,6 @@ class SubmitStartForm(wtforms.Form): tags = wtforms.TextField( 'Tags', [tag_length_validator]) + attachment = wtforms.FileField( + 'Attachment', + [wtforms.validators.Optional()]) diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 87e57dda..213b2494 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -14,6 +14,10 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . + +import mediagoblin.mg_globals as mg_globals +from datetime import datetime + from os.path import splitext from cgi import FieldStorage from string import split @@ -72,6 +76,31 @@ def submit_start(request): # Generate a slug from the title entry.generate_slug() + # Add any attachements + if (mg_globals.app_config['allow_attachments'] + and request.POST.has_key('attachment') + and isinstance(request.POST['attachment'], FieldStorage) + and request.POST['attachment'].file): + + attachment_public_filepath = mg_globals.public_store.get_unique_filepath( + ['media_entries', + unicode('attachment-%s' % entry['_id']), + secure_filename(request.POST['attachment'].filename)]) + + attachment_public_file = mg_globals.public_store.get_file( + attachment_public_filepath, 'wb') + + try: + attachment_public_file.write(request.POST['attachment'].file.read()) + finally: + request.POST['attachment'].file.close() + + entry['attachment_files'] = [dict( + name=request.POST['attachment'].filename, + filepath=attachment_public_filepath, + created=datetime.utcnow() + )] + # Now store generate the queueing related filename queue_filepath = request.app.queue_store.get_unique_filepath( ['media_entries', @@ -100,4 +129,5 @@ def submit_start(request): return render_to_response( request, 'mediagoblin/submit/start.html', - {'submit_form': submit_form}) + {'submit_form': submit_form, + 'app_config': mg_globals.app_config}) diff --git a/mediagoblin/templates/mediagoblin/edit/edit.html b/mediagoblin/templates/mediagoblin/edit/edit.html index d19034cb..c834918e 100644 --- a/mediagoblin/templates/mediagoblin/edit/edit.html +++ b/mediagoblin/templates/mediagoblin/edit/edit.html @@ -31,7 +31,14 @@
            - {{ wtforms_util.render_divs(form) }} + {{ wtforms_util.render_field_div(form.title) }} + {{ wtforms_util.render_field_div(form.slug) }} + {{ wtforms_util.render_field_div(form.description) }} + {{ wtforms_util.render_field_div(form.tags) }} + {% if media.attachment_files %} + {{ wtforms_util.render_field_div(form.attachment_name) }} + {{ wtforms_util.render_field_div(form.attachment_delete) }} + {% endif %}
            Cancel diff --git a/mediagoblin/templates/mediagoblin/submit/start.html b/mediagoblin/templates/mediagoblin/submit/start.html index 6d00510c..42bbf724 100644 --- a/mediagoblin/templates/mediagoblin/submit/start.html +++ b/mediagoblin/templates/mediagoblin/submit/start.html @@ -28,6 +28,9 @@ {{ wtforms_util.render_field_div(submit_form.title) }} {{ wtforms_util.render_textarea_div(submit_form.description) }} {{ wtforms_util.render_field_div(submit_form.tags) }} + {% if app_config.allow_attachments %} + {{ wtforms_util.render_field_div(submit_form.attachment) }} + {% endif %}
            diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index a1382518..cc4c3350 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -105,6 +105,20 @@ {% include "mediagoblin/utils/prev_next.html" %}

            Sidebar content here!

            + {% if media.attachment_files %} +
            +
            Attachments
            + {% for attachment in media.attachment_files %} +
            + + {{ attachment.name }} + +
            + {% endfor %} +
            + {% endif %} +

            {% if media['uploader'] == request.user['_id'] or request.user['is_admin'] %} From 47364ead6b281b820422901ddba2d06e073395bd Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Sun, 7 Aug 2011 01:22:31 +0200 Subject: [PATCH 0796/2731] Added SMTP configuration options --- mediagoblin/config_spec.ini | 4 ++++ mediagoblin/util.py | 16 +++++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini index bbc1f7d6..bc6f00d9 100644 --- a/mediagoblin/config_spec.ini +++ b/mediagoblin/config_spec.ini @@ -20,6 +20,10 @@ direct_remote_path = string(default="/mgoblin_static/") # set to false to enable sending notices email_debug_mode = boolean(default=True) email_sender_address = string(default="notice@mediagoblin.example.org") +email_smtp_host = string(default=None) +email_smtp_port = integer(default=25) +email_smtp_user = string(default=None) +email_smtp_pass = string(default=None) # Set to false to disable registrations allow_registration = boolean(default=True) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 5880f856..6dced54e 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -240,6 +240,9 @@ class FakeMhost(object): def connect(self): pass + def login(self): + pass + def sendmail(self, from_addr, to_addrs, message): EMAIL_TEST_MBOX_INBOX.append( {'from': from_addr, @@ -267,13 +270,20 @@ def send_email(from_addr, to_addrs, subject, message_body): - subject: subject of the email - message_body: email body text """ - # TODO: make a mock mhost if testing is enabled if TESTS_ENABLED or mg_globals.app_config['email_debug_mode']: mhost = FakeMhost() elif not mg_globals.app_config['email_debug_mode']: - mhost = smtplib.SMTP() + if not mg_globals.app_config['email_smtp_host']: + mhost = smtplib.SMTP() + else: + mhost = smtplib.SMTP( + mg_globals.app_config['email_smtp_host'], + mg_globals.app_config['email_smtp_port']) - mhost.connect() + if mg_globals.app_config['email_smtp_user']: + mhost.login( + mg_globals.app_config['email_smtp_user'], + mg_globals.app_config['email_smtp_pass']) message = MIMEText(message_body.encode('utf-8'), 'plain', 'utf-8') message['Subject'] = subject From e86d4f5d51dfdd42e2fe91e268bd0f335732908a Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Sun, 7 Aug 2011 02:58:03 +0200 Subject: [PATCH 0797/2731] Feature #298 - Environment tarball * Added command hooks for gmg_commands.import_export * Added (DANGEROUSLY BLEEDING EDGE) gmg_commands.import_export --- mediagoblin/gmg_commands/__init__.py | 8 +++ mediagoblin/gmg_commands/import_export.py | 87 +++++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 mediagoblin/gmg_commands/import_export.py diff --git a/mediagoblin/gmg_commands/__init__.py b/mediagoblin/gmg_commands/__init__.py index 921f0430..8226fd0e 100644 --- a/mediagoblin/gmg_commands/__init__.py +++ b/mediagoblin/gmg_commands/__init__.py @@ -44,6 +44,14 @@ SUBCOMMAND_MAP = { 'setup': 'mediagoblin.gmg_commands.wipealldata:wipe_parser_setup', 'func': 'mediagoblin.gmg_commands.wipealldata:wipe', 'help': 'Wipes **all** the data for this MediaGoblin instance'}, + 'env_export': { + 'setup': 'mediagoblin.gmg_commands.import_export:import_export_parse_setup', + 'func': 'mediagoblin.gmg_commands.import_export:env_export', + 'help': 'Exports the data for this MediaGoblin instance'}, + 'env_import': { + 'setup': 'mediagoblin.gmg_commands.import_export:import_export_parse_setup', + 'func': 'mediagoblin.gmg_commands.import_export:env_import', + 'help': 'Exports the data for this MediaGoblin instance'}, } diff --git a/mediagoblin/gmg_commands/import_export.py b/mediagoblin/gmg_commands/import_export.py new file mode 100644 index 00000000..c0ac444b --- /dev/null +++ b/mediagoblin/gmg_commands/import_export.py @@ -0,0 +1,87 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from mediagoblin.gmg_commands import util as commands_util +from mediagoblin import mg_globals +from mediagoblin.db import util as db_util +from mediagoblin.db.open import setup_connection_and_db_from_config +from mediagoblin.init.config import read_mediagoblin_config + +import shlex +import tarfile +import subprocess +import os.path + +def import_export_parse_setup(subparser): + # TODO: Add default + subparser.add_argument( + 'tar_file') + subparser.add_argument( + '-cf', '--conf_file', default='mediagoblin.ini', + help='Config file used to set up environment') + subparser.add_argument( + '--mongodump_cache', default='mongodump', + help='mongodump cache directory') + subparser.add_argument( + '--mongodump_path', default='mongodump', + help='mongodump binary') + +def _export_database(db, args): + print "\n== Exporting database ==\n" + + command = '{mongodump_path} -d {database} -o {mongodump_cache}'.format( + mongodump_path=args.mongodump_path, + database=db.name, + mongodump_cache=args.mongodump_cache) + + p = subprocess.Popen( + shlex.split(command)) + + p.wait() + + print "\n== Database exported ==\n" + +def _import_database(db, args): + pass + +def env_import(args): + config, validation_result = read_mediagoblin_config(args.conf_file) + connection, db = setup_connection_and_db_from_config( + config['mediagoblin'], use_pymongo=True) + +def env_export(args): + config, validation_result = read_mediagoblin_config(args.conf_file) + connection, db = setup_connection_and_db_from_config( + config['mediagoblin'], use_pymongo=True) + + if os.path.exists(args.tar_file): + overwrite = raw_input( + 'The output file already exists. ' + 'Are you **SURE** you want to overwrite it? ' + '(yes/no)> ') + if not overwrite == 'yes': + print "Aborting." + return + + tf = tarfile.open( + args.tar_file, + mode='w|gz') + + + _export_database(db, args) + + tf.add(args.mongodump_cache) + From 224813d28cc60aa7ec1ead34ea028713a2d61c74 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Sun, 7 Aug 2011 05:00:46 +0200 Subject: [PATCH 0798/2731] Feature #298 * Added some minor things to gmg_commands.import_export --- mediagoblin/gmg_commands/import_export.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/mediagoblin/gmg_commands/import_export.py b/mediagoblin/gmg_commands/import_export.py index c0ac444b..aa3fe1a1 100644 --- a/mediagoblin/gmg_commands/import_export.py +++ b/mediagoblin/gmg_commands/import_export.py @@ -38,6 +38,12 @@ def import_export_parse_setup(subparser): subparser.add_argument( '--mongodump_path', default='mongodump', help='mongodump binary') + subparser.add_argument( + '--mongorestore_path', default='mongorestore', + help='mongorestore binary') + subparser.add_argument( + '--extract_path', default='/tmp/mediagoblin-import', + help='the directory to which the tarball should be extracted temporarily') def _export_database(db, args): print "\n== Exporting database ==\n" @@ -55,13 +61,22 @@ def _export_database(db, args): print "\n== Database exported ==\n" def _import_database(db, args): - pass + command = '{mongorestore_path} -d {database} -o {mongodump_cache}'.format( + mongorestore_path=args.mongorestore_path, + database=db.name, + mongodump_cache=args.mongodump_cache) def env_import(args): config, validation_result = read_mediagoblin_config(args.conf_file) connection, db = setup_connection_and_db_from_config( config['mediagoblin'], use_pymongo=True) + tf = tarfile.open( + args.tar_file, + mode='r|gz') + + tf.extractall(args.extract_path) + def env_export(args): config, validation_result = read_mediagoblin_config(args.conf_file) connection, db = setup_connection_and_db_from_config( From fbeeacd7aee5646418849d2ef732fc76e6caa3c1 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 6 Aug 2011 22:00:49 -0500 Subject: [PATCH 0799/2731] Tools to extract translation from python files and templates - Added pybabel script to entry points - Added babel.ini, which we'll use to extract stuff --- babel.ini | 2 +- setup.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/babel.ini b/babel.ini index 666270df..a4e3267a 100644 --- a/babel.ini +++ b/babel.ini @@ -10,4 +10,4 @@ encoding = utf-8 # # Extraction from JavaScript files # [javascript: mediagoblin/static/js/**.js] -# extract_messages = $._, jQuery._ \ No newline at end of file +# extract_messages = $._, jQuery._ diff --git a/setup.py b/setup.py index 6043ad41..40715dd0 100644 --- a/setup.py +++ b/setup.py @@ -53,6 +53,7 @@ setup( entry_points = """\ [console_scripts] gmg = mediagoblin.gmg_commands:main_cli + pybabel = mediagoblin.babel.messages.frontend:main [paste.app_factory] app = mediagoblin.app:paste_app_factory From 74a9c0eba5d71574ee8131897f0fad12220620ca Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 6 Aug 2011 23:53:34 -0500 Subject: [PATCH 0800/2731] MediaGoblin source translation, Transifex config file, German translation test :) --- .tx/config | 8 +++++ .../i18n/de/LC_MESSAGES/mediagoblin.po | 25 +++++++++++++ .../i18n/en/LC_MESSAGES/mediagoblin.po | 35 +++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 .tx/config create mode 100644 mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po create mode 100644 mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po diff --git a/.tx/config b/.tx/config new file mode 100644 index 00000000..711b5d94 --- /dev/null +++ b/.tx/config @@ -0,0 +1,8 @@ +[mediagoblin.mediagoblin] +file_filter = mediagoblin/i18n//LC_MESSAGES/mediagoblin.po +source_file = mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po +source_lang = en + +[main] +host = https://www.transifex.net + diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po new file mode 100644 index 00000000..a840bdaa --- /dev/null +++ b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po @@ -0,0 +1,25 @@ +# Translations template for PROJECT. +# Copyright (C) 2011 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# +# , 2011. +msgid "" +msgstr "" +"Project-Id-Version: GNU MediaGoblin\n" +"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" +"POT-Creation-Date: 2011-08-06 23:01-0500\n" +"PO-Revision-Date: 2011-08-07 03:57+0000\n" +"Last-Translator: cwebber \n" +"Language-Team: German (http://www.transifex.net/projects/p/mediagoblin/team/de/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 0.9.6\n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: mediagoblin/templates/mediagoblin/root.html:21 +msgid "Welcome to GNU MediaGoblin!" +msgstr "Willkommen aus GNU MediaGoblin!" + + diff --git a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po new file mode 100644 index 00000000..67830c2e --- /dev/null +++ b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po @@ -0,0 +1,35 @@ +# Translations template for GNU MediaGoblin. +# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: GNU MediaGoblin\n" +"POT-Creation-Date: 2011-08-06 23:01-0500\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 0.9.6\n" + +#: mediagoblin/templates/mediagoblin/root.html:21 +msgid "Welcome to GNU MediaGoblin!" +msgstr "" + From 145922b8a48093a96f77678148d63019f19918e1 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 7 Aug 2011 00:05:09 -0500 Subject: [PATCH 0801/2731] Changed mediagoblin translations directory to the one we actually use. --- mediagoblin/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 5880f856..c9f4a0ac 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -300,7 +300,7 @@ def send_email(from_addr, to_addrs, subject, message_body): TRANSLATIONS_PATH = pkg_resources.resource_filename( - 'mediagoblin', 'translations') + 'mediagoblin', 'i18n') def locale_to_lower_upper(locale): From 3965f0f5fae2fdd3d1242a31806f8fe305d69273 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 7 Aug 2011 09:14:17 -0500 Subject: [PATCH 0802/2731] Correct version of the GNU MediaGoblin welcome string translated into German :) --- mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo | Bin 0 -> 602 bytes mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo new file mode 100644 index 0000000000000000000000000000000000000000..ba6256234c243d76d87ef64c1363068aff62f8a7 GIT binary patch literal 602 zcmZ8e+iuf95H*M=Kk^C^lebo|_9j3G+Zv%>h$<0?szAl#+Mc)z>s@PiOqvhr?;$>g zaa*Z0BOUD-X>RB2pQlf*6OPA>=ZsfF@?RV>f5s>ne;*~u4}M=T)X;E&w(>0kd6<9s z1`Di>p8L`oH%gYl|HO*KSuMU}h{ij$Ta=z-=L3mFY)mbV`X-8%S8z$xsXQ+^&(_{o zK6IHw%DdZ%F>i-G&CQ3vf zP`9iVL#rL^-Kp7ZHW>}$%o?vA%IO{mBJR#>%=go!?Sr=BlMiiF;JTYM7Lx$@JJeLdOcW9a}+o#r9ck+yPXVIz*(Rr?r^f*A1twF^E%F`P#Tf p!K^ft&e36DJNbLI3XXJ%7G(B5o2JQyvG$j5TXayO+5Ov5@(\n" "Language-Team: German (http://www.transifex.net/projects/p/mediagoblin/team/de/)\n" "MIME-Version: 1.0\n" @@ -20,6 +20,6 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:21 msgid "Welcome to GNU MediaGoblin!" -msgstr "Willkommen aus GNU MediaGoblin!" +msgstr "Willkommen bei GNU MediaGoblin!" From 8f4c9b813d306228e1eecec7551d46902c264189 Mon Sep 17 00:00:00 2001 From: Osama Khalid Date: Sun, 7 Aug 2011 23:36:55 +0300 Subject: [PATCH 0803/2731] Adding {% trans %} to all fixed strings in the templates --- .../templates/mediagoblin/auth/login.html | 16 ++++--- .../templates/mediagoblin/auth/register.html | 5 ++- .../auth/resent_verification_email.html | 2 +- .../mediagoblin/auth/verification_email.txt | 8 ++-- mediagoblin/templates/mediagoblin/base.html | 12 +++--- .../templates/mediagoblin/edit/edit.html | 6 +-- .../mediagoblin/edit/edit_profile.html | 4 +- .../templates/mediagoblin/listings/tag.html | 4 +- mediagoblin/templates/mediagoblin/root.html | 11 ++--- .../templates/mediagoblin/submit/start.html | 4 +- .../mediagoblin/user_pages/gallery.html | 8 ++-- .../mediagoblin/user_pages/media.html | 26 +++++------ .../mediagoblin/user_pages/user.html | 43 +++++++++++-------- 13 files changed, 81 insertions(+), 68 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/auth/login.html b/mediagoblin/templates/mediagoblin/auth/login.html index e25783ea..8b1e2296 100644 --- a/mediagoblin/templates/mediagoblin/auth/login.html +++ b/mediagoblin/templates/mediagoblin/auth/login.html @@ -23,21 +23,23 @@

            -

            Log in

            +

            {% trans %}Log in{% endtrans %}

            {% if login_failed %} -
            Login failed!
            - {% endif %} - {{ wtforms_util.render_divs(login_form) }} +
            {% trans %}Login failed!{% + endtrans %}
            {% endif %} {{ + wtforms_util.render_divs(login_form) }}
            - +
            {% if next %} {% endif %} {% if allow_registration %} -

            Don't have an account yet?
            Create one here!

            - {% endif %} +

            {% trans %}Don't have an account yet?{% endtrans + %}
            {% trans %}Create one here!{% endtrans %}

            {% endif + %}
            {% endblock %} diff --git a/mediagoblin/templates/mediagoblin/auth/register.html b/mediagoblin/templates/mediagoblin/auth/register.html index f77b3782..5d512829 100644 --- a/mediagoblin/templates/mediagoblin/auth/register.html +++ b/mediagoblin/templates/mediagoblin/auth/register.html @@ -24,10 +24,11 @@
            -

            Create an account!

            +

            {% trans %}Create an account!{% endtrans %}

            {{ wtforms_util.render_divs(register_form) }}
            - +
            diff --git a/mediagoblin/templates/mediagoblin/auth/resent_verification_email.html b/mediagoblin/templates/mediagoblin/auth/resent_verification_email.html index da3a9e99..8fd80ee9 100644 --- a/mediagoblin/templates/mediagoblin/auth/resent_verification_email.html +++ b/mediagoblin/templates/mediagoblin/auth/resent_verification_email.html @@ -19,6 +19,6 @@ {% block mediagoblin_content %}

            - Resent your verification email. + {% trans %}Resent your verification email.{% endtrans %}

            {% endblock %} diff --git a/mediagoblin/templates/mediagoblin/auth/verification_email.txt b/mediagoblin/templates/mediagoblin/auth/verification_email.txt index 7863374d..cb01600d 100644 --- a/mediagoblin/templates/mediagoblin/auth/verification_email.txt +++ b/mediagoblin/templates/mediagoblin/auth/verification_email.txt @@ -15,8 +15,10 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . #} -Hi {{ username }}, -to activate your GNU MediaGoblin account, open the following URL in your web browser +{% trans username=username, verification_url=verification_url %}Hi {{ username }}, -{{ verification_url|safe }} +to activate your GNU MediaGoblin account, open the following URL in +your web browser: + +{{ verification_url|safe }}{% endtrans %} diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 4da685f9..b9c98ef6 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -19,7 +19,7 @@ - {% block title %}GNU MediaGoblin{% endblock title %} + {% block title %}{% trans %}GNU MediaGoblin{% endtrans %}{% endblock title %} Mediagoblin logo + alt="{% trans %}Mediagoblin logo{% endtrans %}" /> {% endblock %} {% if request.user and request.user['status'] == 'active' %} - Submit media + {% trans %}Submit media{% endtrans %} {% endif %} {% block mediagoblin_header_title %}{% endblock %} @@ -59,7 +59,7 @@ - verify your email! + {% trans %}verify your email!{% endtrans %} {% endif %} logout) {% else %} - Login + {% trans %}Login{% endtrans %} {% endif %}

            @@ -85,7 +85,7 @@ {% block mediagoblin_footer %}
            {% endblock %} diff --git a/mediagoblin/templates/mediagoblin/edit/edit.html b/mediagoblin/templates/mediagoblin/edit/edit.html index d19034cb..3dc170c8 100644 --- a/mediagoblin/templates/mediagoblin/edit/edit.html +++ b/mediagoblin/templates/mediagoblin/edit/edit.html @@ -26,15 +26,15 @@ media= media._id) }}" method="POST" enctype="multipart/form-data">
            -

            Editing {{ media.title }}

            +

            {% trans media_title=media.title %}Editing {{ media_title }}{% endtrans %}

            {{ wtforms_util.render_divs(form) }}
            diff --git a/mediagoblin/templates/mediagoblin/edit/edit_profile.html b/mediagoblin/templates/mediagoblin/edit/edit_profile.html index a11b86d7..4171cb4d 100644 --- a/mediagoblin/templates/mediagoblin/edit/edit_profile.html +++ b/mediagoblin/templates/mediagoblin/edit/edit_profile.html @@ -25,10 +25,10 @@ user['username'] }}" method="POST" enctype="multipart/form-data">
            -

            Editing {{ user['username'] }}'s profile

            +

            {% trans username=user['username'] %}Editing {{ username }}'s profile{% endtrans %}

            {{ wtforms_util.render_divs(form) }}
            - +
            diff --git a/mediagoblin/templates/mediagoblin/listings/tag.html b/mediagoblin/templates/mediagoblin/listings/tag.html index 6f10ec8d..18123dbd 100644 --- a/mediagoblin/templates/mediagoblin/listings/tag.html +++ b/mediagoblin/templates/mediagoblin/listings/tag.html @@ -26,7 +26,7 @@ {% block mediagoblin_content -%}

            - Media tagged with: {{ tag_name }} + {% trans %}Media tagged with:{% endtrans %} {{ tag_name }}

            From 9188f3afe24a52fff3262360a0896cc521546fa8 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Mon, 8 Aug 2011 03:47:17 +0200 Subject: [PATCH 0804/2731] Feature #298 - Changed some defaults in gmg_commands.import_export --- mediagoblin/gmg_commands/import_export.py | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/mediagoblin/gmg_commands/import_export.py b/mediagoblin/gmg_commands/import_export.py index aa3fe1a1..c05a48d9 100644 --- a/mediagoblin/gmg_commands/import_export.py +++ b/mediagoblin/gmg_commands/import_export.py @@ -19,6 +19,7 @@ from mediagoblin import mg_globals from mediagoblin.db import util as db_util from mediagoblin.db.open import setup_connection_and_db_from_config from mediagoblin.init.config import read_mediagoblin_config +from mediagoblin import util as mg_util import shlex import tarfile @@ -33,7 +34,7 @@ def import_export_parse_setup(subparser): '-cf', '--conf_file', default='mediagoblin.ini', help='Config file used to set up environment') subparser.add_argument( - '--mongodump_cache', default='mongodump', + '--mongodump_cache', default='/tmp/mediagoblin/mongodump', help='mongodump cache directory') subparser.add_argument( '--mongodump_path', default='mongodump', @@ -42,12 +43,15 @@ def import_export_parse_setup(subparser): '--mongorestore_path', default='mongorestore', help='mongorestore binary') subparser.add_argument( - '--extract_path', default='/tmp/mediagoblin-import', + '--extract_path', default='/tmp/mediagoblin/import', help='the directory to which the tarball should be extracted temporarily') + subparser.add_argument( + '--media_cache_path', default='/tmp/mediagoblin/mediaentries', + help='') def _export_database(db, args): print "\n== Exporting database ==\n" - + command = '{mongodump_path} -d {database} -o {mongodump_cache}'.format( mongodump_path=args.mongodump_path, database=db.name, @@ -60,6 +64,13 @@ def _export_database(db, args): print "\n== Database exported ==\n" +def _export_media(db, args): + for entry in db.media_entries.find(): + storage = mg_util.import_component( + 'mediagoblin.storage:BasicFileStorage')() + print(storage.get_file(entry['media_files']['medium'])) + print(entry) + def _import_database(db, args): command = '{mongorestore_path} -d {database} -o {mongodump_cache}'.format( mongorestore_path=args.mongorestore_path, @@ -74,7 +85,7 @@ def env_import(args): tf = tarfile.open( args.tar_file, mode='r|gz') - + tf.extractall(args.extract_path) def env_export(args): @@ -91,6 +102,8 @@ def env_export(args): print "Aborting." return + _export_media(db, args) + tf = tarfile.open( args.tar_file, mode='w|gz') From d88e1d15c7c4903a696830155527f70e33b88c72 Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Mon, 8 Aug 2011 00:10:46 -0500 Subject: [PATCH 0805/2731] Bug #488 - email validation assumes active login - loads username from user object instead of session to remove dependency on active login --- mediagoblin/auth/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index df7e2a88..19dafed0 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -157,7 +157,7 @@ def verify_email(request): return redirect( request, 'mediagoblin.user_pages.user_home', - user=request.user['username']) + user = user['username']) def resend_activation(request): From 58b79b159e15335a0d8c82ba329543088cabfd49 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 8 Aug 2011 10:19:21 -0500 Subject: [PATCH 0806/2731] Just some indentation changes to the templates because I'm picky about such things :) --- .../templates/mediagoblin/auth/login.html | 19 ++++--- .../templates/mediagoblin/auth/register.html | 2 +- .../mediagoblin/auth/verification_email.txt | 8 +-- mediagoblin/templates/mediagoblin/base.html | 4 +- .../mediagoblin/edit/edit_profile.html | 6 ++- .../templates/mediagoblin/listings/tag.html | 4 +- mediagoblin/templates/mediagoblin/root.html | 15 +++--- .../mediagoblin/user_pages/gallery.html | 18 ++++--- .../mediagoblin/user_pages/media.html | 16 +++--- .../mediagoblin/user_pages/user.html | 50 +++++++++++-------- 10 files changed, 88 insertions(+), 54 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/auth/login.html b/mediagoblin/templates/mediagoblin/auth/login.html index 8b1e2296..5750feb0 100644 --- a/mediagoblin/templates/mediagoblin/auth/login.html +++ b/mediagoblin/templates/mediagoblin/auth/login.html @@ -25,9 +25,11 @@

            {% trans %}Log in{% endtrans %}

            {% if login_failed %} -
            {% trans %}Login failed!{% - endtrans %}
            {% endif %} {{ - wtforms_util.render_divs(login_form) }} +
            + {% trans %}Login failed!{% endtrans %} +
            + {% endif %} + {{ wtforms_util.render_divs(login_form) }}
            @@ -36,10 +38,13 @@ style="display: none;"/> {% endif %} {% if allow_registration %} -

            {% trans %}Don't have an account yet?{% endtrans - %}
            {% trans %}Create one here!{% endtrans %}

            {% endif - %} +

            + {% trans %}Don't have an account yet?{% endtrans %} +
            + + {%- trans %}Create one here!{% endtrans %} +

            + {% endif %}
            {% endblock %} diff --git a/mediagoblin/templates/mediagoblin/auth/register.html b/mediagoblin/templates/mediagoblin/auth/register.html index 5d512829..623cbdfd 100644 --- a/mediagoblin/templates/mediagoblin/auth/register.html +++ b/mediagoblin/templates/mediagoblin/auth/register.html @@ -28,7 +28,7 @@ {{ wtforms_util.render_divs(register_form) }}
            + class="button" />
            diff --git a/mediagoblin/templates/mediagoblin/auth/verification_email.txt b/mediagoblin/templates/mediagoblin/auth/verification_email.txt index cb01600d..32053101 100644 --- a/mediagoblin/templates/mediagoblin/auth/verification_email.txt +++ b/mediagoblin/templates/mediagoblin/auth/verification_email.txt @@ -14,11 +14,13 @@ # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -#} +-#} -{% trans username=username, verification_url=verification_url %}Hi {{ username }}, +{% trans username=username, verification_url=verification_url|safe -%} +Hi {{ username }}, to activate your GNU MediaGoblin account, open the following URL in your web browser: -{{ verification_url|safe }}{% endtrans %} +{{ verification_url }} +{%- endtrans %} diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index b9c98ef6..986e0995 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -85,7 +85,9 @@ {% block mediagoblin_footer %}
            {% endblock %} diff --git a/mediagoblin/templates/mediagoblin/edit/edit_profile.html b/mediagoblin/templates/mediagoblin/edit/edit_profile.html index 4171cb4d..534e5f20 100644 --- a/mediagoblin/templates/mediagoblin/edit/edit_profile.html +++ b/mediagoblin/templates/mediagoblin/edit/edit_profile.html @@ -25,7 +25,11 @@ user['username'] }}" method="POST" enctype="multipart/form-data">
            -

            {% trans username=user['username'] %}Editing {{ username }}'s profile{% endtrans %}

            +

            + {%- trans username=user['username'] -%} + Editing {{ username }}'s profile + {%- endtrans %} +

            {{ wtforms_util.render_divs(form) }}
            diff --git a/mediagoblin/templates/mediagoblin/listings/tag.html b/mediagoblin/templates/mediagoblin/listings/tag.html index 18123dbd..a013797f 100644 --- a/mediagoblin/templates/mediagoblin/listings/tag.html +++ b/mediagoblin/templates/mediagoblin/listings/tag.html @@ -36,6 +36,8 @@
            {% trans %}atom feed{% endtrans %} + tag=tag_slug) }}"> + {%- trans %}atom feed{% endtrans -%} +
            {% endblock %} diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index 3570374e..a4e19984 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -22,18 +22,21 @@ {% if request.user %}

            - {% trans %}Submit an item{% endtrans %} + + {%- trans %}Submit an item{% endtrans -%} +

            {% else %}

            - {% trans login_url=request.urlgen('mediagoblin.auth.login') %}If you have an account, you can - Login.{% endtrans %} + {% trans login_url=request.urlgen('mediagoblin.auth.login') -%} + If you have an account, you can Login. + {%- endtrans %}

            {% if allow_registration %}

            - {% trans - register_url=request.urlgen('mediagoblin.auth.register') %}If you don't have an account, please - Register.{% endtrans %} + {% trans register_url=request.urlgen('mediagoblin.auth.register') -%} + If you don't have an account, please Register. + {%- endtrans %}

            {% endif %} {% endif %} diff --git a/mediagoblin/templates/mediagoblin/user_pages/gallery.html b/mediagoblin/templates/mediagoblin/user_pages/gallery.html index 71f14da4..a66a547e 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/gallery.html +++ b/mediagoblin/templates/mediagoblin/user_pages/gallery.html @@ -27,20 +27,24 @@ {% block mediagoblin_content -%} {% if user %}

            - {% trans - username=user.username %}{{ username }}'s - media{% endtrans %}

            + {%- trans username=user.username, + user_url=request.urlgen( + 'mediagoblin.user_pages.user_home', + user=user.username) -%} + {{ username }}'s media + {%- endtrans %} +
            {% else %} {# This *should* not occur as the view makes sure we pass in a user. #} diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 2acf7a3d..afc0d903 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -38,13 +38,15 @@ {% endautoescape %}

            - {% trans date="%4d-%02d-%02d"|format(media.created.year, - media.created.month, media.created.day), user_url= - request.urlgen('mediagoblin.user_pages.user_home',user= - media.uploader().username), - username=media.uploader().username %} - — uploaded on {{ date }} by {{ username }}{% endtrans %} + {% trans date="%4d-%02d-%02d"|format( + media.created.year, + media.created.month, media.created.day), + user_url=request.urlgen( + 'mediagoblin.user_pages.user_home', + user=media.uploader().username), + username=media.uploader().username -%} + — uploaded on {{ date }} by {{ username }} + {%- endtrans %}


            diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index c3ad07db..1115fc56 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -36,11 +36,15 @@

            {% trans %}Verification needed{% endtrans %}

            -

            {% trans %}Almost done! Your account still needs to be - verified.{% endtrans %}

            - {% trans %}An email should arrive in a few moments with - instructions on how to do so.{% endtrans %} + {% trans -%} + Almost done! Your account still needs to be verified. + {%- endtrans %} +

            +

            + {% trans -%} + An email should arrive in a few moments with instructions on how to do so. + {%- endtrans %}

            {% trans %}In case it doesn't:{% endtrans %}

            @@ -53,30 +57,32 @@

            {% trans %}Verification needed{% endtrans %}

            - {% trans %}Someone has registered an account with this - username, but it still has to be verified.{% endtrans %} + {% trans -%} + Someone has registered an account with this username, but it still has to be verified. + {%- endtrans %}

            - {% trans login_url=request.urlgen('mediagoblin.auth.login') - %}If you are that person but you've lost your verification - email, you can - log in and resend it.{% - endtrans %} + {% trans login_url=request.urlgen('mediagoblin.auth.login') -%} + If you are that person but you've lost your verification email, you can log in and resend it. + {%- endtrans %}

            {% endif %} {# Active(?) (or at least verified at some point) user, horray! #} {% else %} -

            {% trans username=user.username %}{{ username }}'s profile{% - endtrans %}

            +

            + {%- trans username=user.username %}{{ username }}'s profile{% endtrans -%} +

            {% include "mediagoblin/utils/profile.html" %} {% if request.user['_id'] == user['_id'] or request.user['is_admin'] %} {% trans %}Edit profile{% endtrans %} + user.username }}"> + {%- trans %}Edit profile{% endtrans -%} + {% endif %}
            @@ -84,12 +90,16 @@ {% set pagination_base_url = user_gallery_url %} {% include "mediagoblin/utils/object_gallery.html" %}
            -

            {% trans - username=user.username %}View all of {{ username }}'s media{% - endtrans %}

            - {% trans %}atom feed1{% - endtrans %} +

            + + {% trans username=user.username -%} + View all of {{ username }}'s media{% endtrans -%} + +

            + + {%- trans %}atom feed{% endtrans -%} +
            From 4100798b86106832373b5afca77960edec5cdcc8 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 8 Aug 2011 10:21:17 -0500 Subject: [PATCH 0807/2731] New extracted strings from the templates! --- .../i18n/en/LC_MESSAGES/mediagoblin.po | 200 ++++++++++++++++-- 1 file changed, 181 insertions(+), 19 deletions(-) diff --git a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po index 67830c2e..5e54390d 100644 --- a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po @@ -1,26 +1,14 @@ -# Translations template for GNU MediaGoblin. -# -# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 Free Software Foundation, Inc -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . +# Translations template for PROJECT. +# Copyright (C) 2011 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# FIRST AUTHOR , 2011. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: GNU MediaGoblin\n" -"POT-Creation-Date: 2011-08-06 23:01-0500\n" +"Project-Id-Version: PROJECT VERSION\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2011-08-08 10:20-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -29,7 +17,181 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 0.9.6\n" +#: mediagoblin/templates/mediagoblin/base.html:22 +msgid "GNU MediaGoblin" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:45 +msgid "Mediagoblin logo" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:51 +msgid "Submit media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:62 +msgid "verify your email!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "Login" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:88 +msgid "" +"Powered by MediaGoblin, a GNU project" +msgstr "" + #: mediagoblin/templates/mediagoblin/root.html:21 msgid "Welcome to GNU MediaGoblin!" msgstr "" +#: mediagoblin/templates/mediagoblin/root.html:26 +msgid "Submit an item" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:31 +#, python-format +msgid "If you have an account, you can Login." +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:37 +#, python-format +msgid "" +"If you don't have an account, please Register." +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +msgid "Log in" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:29 +msgid "Login failed!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 +#: mediagoblin/templates/mediagoblin/submit/start.html:32 +msgid "Submit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:42 +msgid "Don't have an account yet?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:45 +msgid "Create one here!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/register.html:27 +msgid "Create an account!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +msgid "Resent your verification email." +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to activate your GNU MediaGoblin account, open the following URL in\n" +"your web browser:\n" +"\n" +"%(verification_url)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:29 +#, python-format +msgid "Editing %(media_title)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:36 +msgid "Cancel" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:37 +msgid "Save changes" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 +#, python-format +msgid "Editing %(username)s's profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:29 +msgid "Media tagged with:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:40 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +msgid "atom feed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:26 +msgid "Submit yer media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:30 +msgid "Sorry, no such user found." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:37 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:57 +msgid "Verification needed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:40 +msgid "Almost done! Your account still needs to be verified." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:45 +msgid "An email should arrive in a few moments with instructions on how to do so." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:49 +msgid "In case it doesn't:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:52 +msgid "Resend verification email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:60 +msgid "" +"Someone has registered an account with this username, but it still has to" +" be verified." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:66 +#, python-format +msgid "" +"If you are that person but you've lost your verification email, you can " +"log in and resend it." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:76 +#, python-format +msgid "%(username)s's profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:84 +msgid "Edit profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:95 +#, python-format +msgid "View all of %(username)s's media" +msgstr "" + From 255f02c48623533f6e781d9d1eade12d18ee0745 Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 8 Aug 2011 20:11:28 +0200 Subject: [PATCH 0808/2731] MountStorage: Add docs. --- mediagoblin/storage.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index 25598c82..bbf1c034 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -287,6 +287,21 @@ class CloudFilesStorage(StorageInterface): class MountStorage(StorageInterface): + """ + Experimental "Mount" virtual Storage Interface + + This isn't an interface to some real storage, instead + it's a redirecting interface, that redirects requests + to other "StorageInterface"s. + For example, requests for ["store1", "a"] to first + storage with the path ["a"], etc. + + To set this up, you currently need to call the mount() + method with the target path and a backend, that shall + be available under that target path. + You have to mount things in a sensible order, + especially you can't mount ["a", "b"] before ["a"]. + """ def __init__(self, **kwargs): self.mounttab = {} From 620fca54727e37ba1b3e5ba745fdd7d7186dcafd Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 8 Aug 2011 21:51:11 +0200 Subject: [PATCH 0809/2731] MountStorage: Improve mounting asserts The asserts now differentiate between mounting on the same path and mounting over a shorter path. --- mediagoblin/storage.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index bbf1c034..88c748ce 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -313,13 +313,16 @@ class MountStorage(StorageInterface): print "Mounting:", repr(new_ent) already, rem_1, table, rem_2 = self._resolve_to_backend(new_ent, True) - print "===", repr(already), repr(rem_1), repr(rem_2) + print "===", repr(already), repr(rem_1), repr(rem_2), len(table) + + assert (len(rem_2) > 0) or (None not in table), \ + "That path is already mounted" + assert (len(rem_2) > 0) or (len(table)==0), \ + "A longer path is already mounted here" - assert (already is None) or (len(rem_2) > 0), "Already mounted" for part in rem_2: table[part] = {} table = table[part] - assert not table.has_key(None), "Huh? Already mounted?!" table[None] = backend def _resolve_to_backend(self, filepath, extra_info = False): From c65ea50fbd09842f9928a4879063ed5c343a73a2 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 8 Aug 2011 19:52:14 -0500 Subject: [PATCH 0810/2731] Swedish translations updated to 100% --- .../i18n/de/LC_MESSAGES/mediagoblin.po | 179 +++++++++++++++++- 1 file changed, 177 insertions(+), 2 deletions(-) diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po index 715757fb..0303ec12 100644 --- a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-06 23:01-0500\n" -"PO-Revision-Date: 2011-08-07 14:06+0000\n" +"POT-Creation-Date: 2011-08-08 10:20-0500\n" +"PO-Revision-Date: 2011-08-08 15:22+0000\n" "Last-Translator: cwebber \n" "Language-Team: German (http://www.transifex.net/projects/p/mediagoblin/team/de/)\n" "MIME-Version: 1.0\n" @@ -18,8 +18,183 @@ msgstr "" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" +#: mediagoblin/templates/mediagoblin/base.html:22 +msgid "GNU MediaGoblin" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:45 +msgid "Mediagoblin logo" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:51 +msgid "Submit media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:62 +msgid "verify your email!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "Login" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:88 +msgid "" +"Powered by MediaGoblin, a GNU project" +msgstr "" + #: mediagoblin/templates/mediagoblin/root.html:21 msgid "Welcome to GNU MediaGoblin!" msgstr "Willkommen bei GNU MediaGoblin!" +#: mediagoblin/templates/mediagoblin/root.html:26 +msgid "Submit an item" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:31 +#, python-format +msgid "If you have an account, you can Login." +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:37 +#, python-format +msgid "" +"If you don't have an account, please Register." +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +msgid "Log in" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:29 +msgid "Login failed!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 +#: mediagoblin/templates/mediagoblin/submit/start.html:32 +msgid "Submit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:42 +msgid "Don't have an account yet?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:45 +msgid "Create one here!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/register.html:27 +msgid "Create an account!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +msgid "Resent your verification email." +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to activate your GNU MediaGoblin account, open the following URL in\n" +"your web browser:\n" +"\n" +"%(verification_url)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:29 +#, python-format +msgid "Editing %(media_title)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:36 +msgid "Cancel" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:37 +msgid "Save changes" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 +#, python-format +msgid "Editing %(username)s's profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:29 +msgid "Media tagged with:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:40 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +msgid "atom feed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:26 +msgid "Submit yer media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:30 +msgid "Sorry, no such user found." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:37 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:57 +msgid "Verification needed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:40 +msgid "Almost done! Your account still needs to be verified." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:45 +msgid "" +"An email should arrive in a few moments with instructions on how to do so." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:49 +msgid "In case it doesn't:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:52 +msgid "Resend verification email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:60 +msgid "" +"Someone has registered an account with this username, but it still has to be" +" verified." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:66 +#, python-format +msgid "" +"If you are that person but you've lost your verification email, you can log in and resend it." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:76 +#, python-format +msgid "%(username)s's profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:84 +msgid "Edit profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:95 +#, python-format +msgid "View all of %(username)s's media" +msgstr "" + From 4d989b5eaff0490b13a9698a598b7bc678901eb1 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 8 Aug 2011 19:53:40 -0500 Subject: [PATCH 0811/2731] Compiled the new Swedish translations. I know Elrond wants 'no compiled crap in our repository' but until I have a better solution... --- mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo | Bin 602 -> 3688 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo index ba6256234c243d76d87ef64c1363068aff62f8a7..c403e3cc1e98f59c087bc732986a57d6b25cac1b 100644 GIT binary patch literal 3688 zcmeH}&u<$=6vwAfKwW;SNFaU)#zAQl)oVMEii+E$v}p*1q(n(t!~sR)-Di7XJ!8$x z#dfCFqjFpWWIszF$Fl{pe+#l+*Fe_m z2FQAS53*jjK-TNr;~+q(m@|Gz;AM(D)$PJo!Yco$^l)=w=?_C8Zrix|scRUY7JH72R3(7 zC5g>VkUr=vlZGhuGFaInxkFC3HKjFi&PeJhok`!dd6r7$oZca+ja0Ht1KG1ZGQrD% z4qe>!!R1NN)_7@+?AievOs({`CYF>*C=*MLR3NEfq4ZxF-$G=vOO7hyf;Gp3>?(NL z>nDd4&Whz!hg}W0p-o3l&lGdq4mxB|spwSRzpr#FmoCdS7G=e@GHt}$8W#3?R-*_} zE6ihuBOS6<`-Y5TuS(k|BSV*D+h&;^u-D5QtB@ip#to0a^qy%7`55>uDN~7_TT_lIogp4BNKLtHBK#g z#MKmdjQAPjt8619DXoZN5oJ)F4y8p3Hp^R`VqKwI$BK13Ku)EyHQbv?H-vt(UN4fS z>|3+0GqpI86dX?#NxrM^s7y_hH6VkA;F zH`wEwd8?W!O)M&rhi+^CvdDJn#n$3^L&R9w+02nwadw(r_cyCvv-$`Z_u zW81f%DnbR@Lq&m^Lcn2}??vsYi1kwD_+lEvvB%zN?za$aP~W-`ulbHnsBcqdA`Y^gG#{pFh#SCt6iL#9K}opJAG=DHD{17PLGw`txR*`!Gy0o2Q&y zix^=#x$027MXHCnlIvkzW=69a3_dt`S0P`fv^mW=>pX>p zJhbCed;K`HHo17&BsN7wY|2wD9ikO7?Q p7?qZy06h2zL8U)9;||Wa|HB!Fcj=F94{ybIk=FZ9sRx{M{{j-PON#&i delta 125 zcmaDMbBiVXo)F7a1|VPpVi_RT0dbIk4UjDj#I`{EfRTYA5=hGfu@y)|cxp~^er~El zNxp)+U#Nm_YD#9Jdwx<*X5QpF_8xXK1tViC1H;LJ9E$Ab3Wg?D24 Date: Tue, 9 Aug 2011 03:09:42 +0200 Subject: [PATCH 0812/2731] Feature 298 - Create environment tarball Saving changes. --- mediagoblin/gmg_commands/import_export.py | 109 +++++++++++++++++----- 1 file changed, 88 insertions(+), 21 deletions(-) diff --git a/mediagoblin/gmg_commands/import_export.py b/mediagoblin/gmg_commands/import_export.py index c05a48d9..2c626da1 100644 --- a/mediagoblin/gmg_commands/import_export.py +++ b/mediagoblin/gmg_commands/import_export.py @@ -20,11 +20,15 @@ from mediagoblin.db import util as db_util from mediagoblin.db.open import setup_connection_and_db_from_config from mediagoblin.init.config import read_mediagoblin_config from mediagoblin import util as mg_util +from mediagoblin.storage import BasicFileStorage +from mediagoblin.init import setup_storage, setup_global_and_app_config import shlex import tarfile import subprocess import os.path +import os +import re def import_export_parse_setup(subparser): # TODO: Add default @@ -33,9 +37,6 @@ def import_export_parse_setup(subparser): subparser.add_argument( '-cf', '--conf_file', default='mediagoblin.ini', help='Config file used to set up environment') - subparser.add_argument( - '--mongodump_cache', default='/tmp/mediagoblin/mongodump', - help='mongodump cache directory') subparser.add_argument( '--mongodump_path', default='mongodump', help='mongodump binary') @@ -43,10 +44,7 @@ def import_export_parse_setup(subparser): '--mongorestore_path', default='mongorestore', help='mongorestore binary') subparser.add_argument( - '--extract_path', default='/tmp/mediagoblin/import', - help='the directory to which the tarball should be extracted temporarily') - subparser.add_argument( - '--media_cache_path', default='/tmp/mediagoblin/mediaentries', + '--cache_path', default='/tmp/mediagoblin/', help='') def _export_database(db, args): @@ -55,7 +53,7 @@ def _export_database(db, args): command = '{mongodump_path} -d {database} -o {mongodump_cache}'.format( mongodump_path=args.mongodump_path, database=db.name, - mongodump_cache=args.mongodump_cache) + mongodump_cache=args._cache_path['database']) p = subprocess.Popen( shlex.split(command)) @@ -65,19 +63,38 @@ def _export_database(db, args): print "\n== Database exported ==\n" def _export_media(db, args): + + print "\n== Exporting media ==\n" + + media_cache = BasicFileStorage( + args._cache_path['media']) + for entry in db.media_entries.find(): - storage = mg_util.import_component( - 'mediagoblin.storage:BasicFileStorage')() - print(storage.get_file(entry['media_files']['medium'])) + for name, path in entry['media_files'].items(): + mc_file = media_cache.get_file(path, mode='wb') + mc_file.write( + mg_globals.public_store.get_file(path, mode='rb').read()) + + print(mc_file) print(entry) + queue_cache = BasicFileStorage( + args._cache_path['queue']) + + qc_file = queue_cache.get_file(entry['queued_media_file'], mode='wb') + qc_file.write( + mg_globals.queue_store.get_file(entry['queued_media_file'], mode='rb').read()) + print(qc_file) + + print "\n== Media exported ==\n" + def _import_database(db, args): command = '{mongorestore_path} -d {database} -o {mongodump_cache}'.format( mongorestore_path=args.mongorestore_path, database=db.name, mongodump_cache=args.mongodump_cache) -def env_import(args): +def env_import(args): config, validation_result = read_mediagoblin_config(args.conf_file) connection, db = setup_connection_and_db_from_config( config['mediagoblin'], use_pymongo=True) @@ -88,7 +105,63 @@ def env_import(args): tf.extractall(args.extract_path) +def _setup_paths(args): + args._cache_path = dict() + PATH_MAP = { + 'media': 'media', + 'queue': 'queue', + 'database': 'database'} + + for key, val in PATH_MAP.items(): + args._cache_path[key] = os.path.join(args.cache_path, val) + + return args + +def _create_archive(args): + print "\n== Compressing to archive ==\n" + tf = tarfile.open( + args.tar_file, + mode='w|gz') + with tf: + for root, dirs, files in os.walk(args.cache_path): + print root, dirs, files + + everything = [] + everything.extend(dirs) + everything.extend(files) + + print everything + + for d in everything: + directory_path = os.path.join(root, d) + virtual_path = os.path.join( + root.replace(args.cache_path, 'mediagoblin-data/'), d) + + # print 'dir', directory_path, '\n', 'vir', virtual_path + + tarinfo = tf.gettarinfo( + directory_path, + arcname=virtual_path) + + tf.addfile(tarinfo) + + print 'added ', d + + ''' + mg_data = tf.gettarinfo( + args.cache_path, + arcname='mediagoblin-data') + + tf.addfile(mg_data) + ''' + print "\n== Archiving done ==\n" + def env_export(args): + args = _setup_paths(args) + + setup_global_and_app_config(args.conf_file) + setup_storage() + config, validation_result = read_mediagoblin_config(args.conf_file) connection, db = setup_connection_and_db_from_config( config['mediagoblin'], use_pymongo=True) @@ -102,14 +175,8 @@ def env_export(args): print "Aborting." return + _export_database(db, args) + _export_media(db, args) - tf = tarfile.open( - args.tar_file, - mode='w|gz') - - - _export_database(db, args) - - tf.add(args.mongodump_cache) - + _create_archive(args) From 8951f822bf40a0808674b08e7fc81baf73ee260a Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 8 Aug 2011 22:26:30 -0500 Subject: [PATCH 0813/2731] Actually I did *not* successfully check in our new languages (sr and sv); now fixed :) --- .../i18n/sr/LC_MESSAGES/mediagoblin.po | 199 ++++++++++++++++ .../i18n/sv/LC_MESSAGES/mediagoblin.po | 214 ++++++++++++++++++ 2 files changed, 413 insertions(+) create mode 100644 mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po create mode 100644 mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po diff --git a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po new file mode 100644 index 00000000..b5a6f2d3 --- /dev/null +++ b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po @@ -0,0 +1,199 @@ +# Translations template for PROJECT. +# Copyright (C) 2011 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU MediaGoblin\n" +"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" +"POT-Creation-Date: 2011-08-08 10:20-0500\n" +"PO-Revision-Date: 2011-08-09 03:25+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Serbian (http://www.transifex.net/projects/p/mediagoblin/team/sr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 0.9.6\n" +"Language: sr\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" + +#: mediagoblin/templates/mediagoblin/base.html:22 +msgid "GNU MediaGoblin" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:45 +msgid "Mediagoblin logo" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:51 +msgid "Submit media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:62 +msgid "verify your email!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "Login" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:88 +msgid "" +"Powered by MediaGoblin, a GNU project" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:21 +msgid "Welcome to GNU MediaGoblin!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:26 +msgid "Submit an item" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:31 +#, python-format +msgid "If you have an account, you can Login." +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:37 +#, python-format +msgid "" +"If you don't have an account, please Register." +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +msgid "Log in" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:29 +msgid "Login failed!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 +#: mediagoblin/templates/mediagoblin/submit/start.html:32 +msgid "Submit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:42 +msgid "Don't have an account yet?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:45 +msgid "Create one here!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/register.html:27 +msgid "Create an account!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +msgid "Resent your verification email." +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to activate your GNU MediaGoblin account, open the following URL in\n" +"your web browser:\n" +"\n" +"%(verification_url)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:29 +#, python-format +msgid "Editing %(media_title)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:36 +msgid "Cancel" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:37 +msgid "Save changes" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 +#, python-format +msgid "Editing %(username)s's profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:29 +msgid "Media tagged with:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:40 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +msgid "atom feed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:26 +msgid "Submit yer media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:30 +msgid "Sorry, no such user found." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:37 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:57 +msgid "Verification needed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:40 +msgid "Almost done! Your account still needs to be verified." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:45 +msgid "" +"An email should arrive in a few moments with instructions on how to do so." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:49 +msgid "In case it doesn't:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:52 +msgid "Resend verification email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:60 +msgid "" +"Someone has registered an account with this username, but it still has to be" +" verified." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:66 +#, python-format +msgid "" +"If you are that person but you've lost your verification email, you can log in and resend it." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:76 +#, python-format +msgid "%(username)s's profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:84 +msgid "Edit profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:95 +#, python-format +msgid "View all of %(username)s's media" +msgstr "" + + diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po new file mode 100644 index 00000000..8899a3ea --- /dev/null +++ b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po @@ -0,0 +1,214 @@ +# Translations template for PROJECT. +# Copyright (C) 2011 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# +# , 2011. +msgid "" +msgstr "" +"Project-Id-Version: GNU MediaGoblin\n" +"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" +"POT-Creation-Date: 2011-08-08 10:20-0500\n" +"PO-Revision-Date: 2011-08-09 00:35+0000\n" +"Last-Translator: joar \n" +"Language-Team: Swedish (http://www.transifex.net/projects/p/mediagoblin/team/sv/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 0.9.6\n" +"Language: sv\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: mediagoblin/templates/mediagoblin/base.html:22 +msgid "GNU MediaGoblin" +msgstr "GNU MediaGoblin" + +#: mediagoblin/templates/mediagoblin/base.html:45 +msgid "Mediagoblin logo" +msgstr "MediaGoblin logo" + +#: mediagoblin/templates/mediagoblin/base.html:51 +msgid "Submit media" +msgstr "Ladda upp" + +#: mediagoblin/templates/mediagoblin/base.html:62 +msgid "verify your email!" +msgstr "Verifiera din e-postadress!" + +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "Login" +msgstr "Logga in" + +#: mediagoblin/templates/mediagoblin/base.html:88 +msgid "" +"Powered by MediaGoblin, a GNU project" +msgstr "" +"Drivs av MediaGoblin, ett project " +"från GNU" + +#: mediagoblin/templates/mediagoblin/root.html:21 +msgid "Welcome to GNU MediaGoblin!" +msgstr "Välkommen till GNU MediaGoblin!" + +#: mediagoblin/templates/mediagoblin/root.html:26 +msgid "Submit an item" +msgstr "Ladda upp" + +#: mediagoblin/templates/mediagoblin/root.html:31 +#, python-format +msgid "If you have an account, you can Login." +msgstr "Har du ett konto? Logga in." + +#: mediagoblin/templates/mediagoblin/root.html:37 +#, python-format +msgid "" +"If you don't have an account, please Register." +msgstr "" +"Har du inget konto? Registrera ett konto." + +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +msgid "Log in" +msgstr "Logga in" + +#: mediagoblin/templates/mediagoblin/auth/login.html:29 +msgid "Login failed!" +msgstr "Inloggning misslyckades!" + +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 +#: mediagoblin/templates/mediagoblin/submit/start.html:32 +msgid "Submit" +msgstr "Skicka" + +#: mediagoblin/templates/mediagoblin/auth/login.html:42 +msgid "Don't have an account yet?" +msgstr "Har du inget konto?" + +#: mediagoblin/templates/mediagoblin/auth/login.html:45 +msgid "Create one here!" +msgstr "Skapa ett!" + +#: mediagoblin/templates/mediagoblin/auth/register.html:27 +msgid "Create an account!" +msgstr "Skapa ett konto!" + +#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +msgid "Resent your verification email." +msgstr "Skickade ett nytt verifierings-email." + +#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to activate your GNU MediaGoblin account, open the following URL in\n" +"your web browser:\n" +"\n" +"%(verification_url)s" +msgstr "" +"Hej %(username)s,\n" +"\n" +"oppna den följande URLen i din webbläsare för att aktivera ditt konto på GNU MediaGoblin:\n" +"\n" +"%(verification_url)s" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:29 +#, python-format +msgid "Editing %(media_title)s" +msgstr "Redigerar %(media_title)s" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:36 +msgid "Cancel" +msgstr "Avbryt" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:37 +msgid "Save changes" +msgstr "Spara" + +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 +#, python-format +msgid "Editing %(username)s's profile" +msgstr "Redigerar %(username)ss profil" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:29 +msgid "Media tagged with:" +msgstr "Taggat med:" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:40 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +msgid "atom feed" +msgstr "atom-feed" + +#: mediagoblin/templates/mediagoblin/submit/start.html:26 +msgid "Submit yer media" +msgstr "Ladda upp" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "%(username)ss media" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:30 +msgid "Sorry, no such user found." +msgstr "Finns ingen sådan användare ännu." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:37 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:57 +msgid "Verification needed" +msgstr "Verifiering krävs" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:40 +msgid "Almost done! Your account still needs to be verified." +msgstr "Nästan klart! Nu behöver du bara verifiera ditt konto." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:45 +msgid "" +"An email should arrive in a few moments with instructions on how to do so." +msgstr "" +"Ett e-postmeddelande med instruktioner kommer att hamna hos dig inom kort." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:49 +msgid "In case it doesn't:" +msgstr "Om det inte skulle göra det:" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:52 +msgid "Resend verification email" +msgstr "Skicka ett nytt e-postmeddelande" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:60 +msgid "" +"Someone has registered an account with this username, but it still has to be" +" verified." +msgstr "" +"Det finns redan ett konto med det här användarnamnet, men det behöver " +"verifieras." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:66 +#, python-format +msgid "" +"If you are that person but you've lost your verification email, you can log in and resend it." +msgstr "" +"Om det är du som är den personen och har förlorat ditt e-postmeddelande med " +"detaljer om hur du verifierar ditt konto så kan du logga in och begära ett nytt." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:76 +#, python-format +msgid "%(username)s's profile" +msgstr "%(username)ss profil" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:84 +msgid "Edit profile" +msgstr "Redigera profil" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:95 +#, python-format +msgid "View all of %(username)s's media" +msgstr "Se all media från %(username)s" + + From 956ba354c9c79384250e85ad4d9f16900503921b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 8 Aug 2011 22:27:26 -0500 Subject: [PATCH 0814/2731] Once again compiling .po to .mo --- mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo | Bin 0 -> 3752 bytes mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo | Bin 0 -> 3767 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo create mode 100644 mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo diff --git a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo new file mode 100644 index 0000000000000000000000000000000000000000..cb07e1d0835f00a0fb97666fdbe3062b8227a5eb GIT binary patch literal 3752 zcmeH}&u<$=6vwAfT45-lB7uMkULx{KWbJiIQM-*((k2Z-PKc7Uhy#k&-tl_SddHfX zjcciuIDjhA6H+VnALt1V2(CR;f;$Hea4Hu#!4V0G3w+oNFMy;uBnsfuDgK z_cq9JzX03dUGODv3`Vbk=RnS53%m>_Am{fjh_ASh%QN7wAkX^)WPgW_7V(dRgz-4| z3b+J52{u8F-vM8T79WGG*Bv}$z3zgn*Y6rasNI{H+h*QX%s^*6|Rt-_e~`W)nS-2owm_!4Bjz6Lq&J&@!60J2`cfUMUF zCb3>Ih+E=1$a>ubIltdP_Im_kv0le;;dv)O_BRD``~W0y6=c0M$a>uXIsPqBj7?@% znl$XlDLY}QYjjH`Qp|?bHnLS4EuL>>CYiFMb9-mcR>C=0bY!GLF`sm_brk7Tj?f1> zGZZ$PI!hf{r;>zHDI-fxQ$y0WG^(X!R2K6o$xf&evTdCu5rxL6ZAmJnkXo`w9o>#1rNJ3 zr%NSd9bz5ZoN1r6+GjG%eVTMvrsUd^S~^K|kE32%uS1GbZr76yY8c%^1%py)Y_d?c z8L~!2$;5JtLqJ&xKOq(;jfHrP%<=sRXpnH>a(8>pi^5Fj#!bkyry&v@tAYE`ISh~v z_X5O>$Ve*z<;ugzXo-i_o~CXhLn~>oUn65>oixK{TOW+s`Hs7NWqWjjbM&HUPN+X9Lp$g!JxPm=XHf{u@-B(hn|Y4(cfK3+qrH~ zspL&l%q?pZkIwCB3eIO5O}?Y*z$Q*Jo?986`4W zpT*YO)Bz2u*1)*j(z>Zlx135>85GX$?SYE2Hj}or_THwKpHhh9E#L?UXvVKrJ^wVm zRP}=y-}6uTJ|=qWa$9je`{$h@|70+8>J1;CQa!ZJ+caTn6D-pNbn#NXPOI}Pi!{5q zGQV7ZdwyYIeQ{%B4pY-O3uEbR%CHmAhBOU@icAjH(d+ffjvc9%yz<~ex(_VH!MtKk zWvaB6WF}0!i`sN-KxsE0+Sx6Hkpo9{aUR`JH0!P7uk}=TTGie!l@e2>4tKpC7DWtlAy%>fX;^vnUG&TQ+}&-@SYsL g&kx>{gMVNK$5VcYJo+_+x5dGG^58xBe|}H?15eCV>i_@% literal 0 HcmV?d00001 diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo new file mode 100644 index 0000000000000000000000000000000000000000..e300ae89d0b8fc62abab1aa603c44cbcc1bcaf4c GIT binary patch literal 3767 zcma);&u=706~`+Oeq{I&w4e}v=8c7SZN)t^-e_SnS$oN@on0gE#@LP{4#}!!x~985 z-Bqos>Y0p`l{g@f;DiLy3M3BTU8&k7pecYdoK+ z?&?>szVE$y{qBXwf6nlC5&vJs|L$XMbo%$^M;Lnw!~0+x{26!!{3G}s@W0^4!R?PS zb^+W4KL_3ezYON!r@^0qUj!e3Uk85=J_-IAybt~ZoPe)A&e&b>uiy>v;>Q^KJeYuP zo%<9Sz4ESTvt@{9U>;4vu!9Rds0+;d7GvIa5`Ed_C0#nfWHwE!w@8avT;J-jO z??0fk_t+=O^)G;g@kQ_};4Sb8un)TRGw|=w?)%^uFn%33Tc822g1-ixUVj7KdKVj| z{Q$&=ZQ{%Aa|d*~yaqb|GtlYvqw4zG;14l=2)+Yue2TH#;CtY=z%4lcHSkUFli)8Z z{sw#+= zBqbB8A`OXaos0w}k~j^-m@<_KX$_4N8{?|6y6D?PNkd9ftj5k@sK}@myUAr=r0k{^ z+zR5bP_EysFTpd4g%(Y=rQ{_`F~>@$^JpUMb+#QQcBX+FBr>Aq6~D)OHnAyG@{`Kz z=Sp|$?kjZ1iE>Nz(nPY`2`rq>Tx&GoHOD?i&eMt0YT=RE_cc{fkc ze-~0T{BvW`qn=h{M6lavEU%Qx_PNuj3>n)QxFw*hfE|v_32h)=udwd=C1{Ykz0v+#pt^-f(}e4t%ZII5AY`?3&LO zh*p+zj7Jv>`9NtsStE&BEc&s35-D3q)c8Ts%Mx3`EtFW1)kCjQJ(vhxohC>Agedda z9~~lOM+puDj-x~k&eYTF2zphdeeBNpwop$^#;wY5qQHz7a8l;GKYN;Nuar612?H!_ zP&?g43ypn|D{X^2CQ8EKMiH6dP<5$_S`XvaK&igcc}oi0t^#M~bD*6VQwY=8d-*W% zrxex+wr~V=>2ha%J?LD;ht@mY%blQerPIO0U|)<9=g;E2=c&`_K6mBW4*nXu+}Pky zb7@j+Q+MfDaZT5(yOIpV8{ZzIFnh?VmJyqnEu(@*A~+O0>(ap(CzXk5rP|7PJZ{aN zJiC|t%x)|mZ<|qjwXv5Lny0}_N@u1^GWSEXarp(*xVy8lBB{AS>#L1BJ9oBEC0=iJ z8aI`+IN^iCNe&&Xcmvv{JdrQBgw;majlvFstEcnarUpU>+p@1h9EV-H+DmNXmXJb2 zOT=cm>$rd-=5-7V0@;^{-=5{3B9 zHLsf*exYkv8e(JUO56A;f*dC-GCdS2A|YIkSIunb4r&+~sw@LIX2(2}=)KCojysu< zw?kwedgZ96C#a(#&pC;DiRS5rCcBNe!ym{ZDi5yXbbuXbQ+2i3SU=L%>Y46NUHYqL zCfPzwvD@PK%tZ7xmFMt1M9UgXAEw8CvuIZsC)kZ7w5whUDLI-EW|SM|5CKBY>qhzX zt;Gs_zy9`eh6OE6PyE&mJqk1q{XL%#hQc z7zsSYXck&BaB+x~z=XMELQgo;8Y7NqxbxdP(GwAzE2AeT7C}8HV)N$e6Z&jN)K0Bg z29&L>GBmq-ecsF&uh8jcUbR>yUxG3uGc3|nP=v_1D3;C9&vosw{IMfpERya;B*TH0 zPWnS03e#kVXp>MDxm|V1^6jVWl3RGKGsH)yPJQSe>2_2dr!>&hx8~kN&g+@JR~`%# zxaB2sGCxv*s2Mi_rRc2tDRq#sF%$T{fX Date: Mon, 8 Aug 2011 22:32:28 -0500 Subject: [PATCH 0815/2731] We should pass ugettext instead of gettext into the jinja template env Otherwise we might get UnicodeDecodeErrors :) --- mediagoblin/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index c9f4a0ac..d26dc6dc 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -93,7 +93,7 @@ def get_jinja_env(template_loader, locale): extensions=['jinja2.ext.i18n', 'jinja2.ext.autoescape']) template_env.install_gettext_callables( - mg_globals.translations.gettext, + mg_globals.translations.ugettext, mg_globals.translations.ngettext) # All templates will know how to ... From 1eec9c88445ca73e4b237ce39190fda0775fc4f1 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 8 Aug 2011 22:49:35 -0500 Subject: [PATCH 0816/2731] mediagoblin/translations/ directory not used, mediagoblin/i18n/ is; removing former --- .../en/LC_MESSAGES/mediagoblin.mo | Bin 502 -> 0 bytes .../en/LC_MESSAGES/mediagoblin.po | 23 ------------------ 2 files changed, 23 deletions(-) delete mode 100644 mediagoblin/translations/en/LC_MESSAGES/mediagoblin.mo delete mode 100644 mediagoblin/translations/en/LC_MESSAGES/mediagoblin.po diff --git a/mediagoblin/translations/en/LC_MESSAGES/mediagoblin.mo b/mediagoblin/translations/en/LC_MESSAGES/mediagoblin.mo deleted file mode 100644 index fb7046cdd069d85b478d03ce838a08b13736f58b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 502 zcmaJ;%TB^T6s^Wpmu_`&*=gcn+eCu{CAC;T}Vev5;e zpc`&-l5>)i`#AUW^yJ+#b!>2MaJ3VEs$uwhMGT3jq}$+)FzeM!`M>x9ZqkDKrYR$98QF()g;c*9GIE4(St9C2D`8m!!7$?e<-w lB7sO{#zjt{w&2, 2011. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PROJECT VERSION\n" -"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-05-12 22:28-0500\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 0.9.6\n" - -#: mediagoblin/templates/mediagoblin/root.html:22 -msgid "Welcome to GNU MediaGoblin!" -msgstr "" - From 03e5bd6d352f9479eefd3c7ad1f39137bd9ba17d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 8 Aug 2011 22:51:03 -0500 Subject: [PATCH 0817/2731] Provide a pass_to_ugettext method and set up gettext to default to English. --- mediagoblin/util.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index d26dc6dc..ed7be841 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -478,6 +478,22 @@ def setup_gettext(locale): translations=this_gettext) +# Force en to be setup before anything else so that +# mg_globals.translations is never None +setup_gettext('en') + + +def pass_to_ugettext(*args, **kwargs): + """ + Pass a translation on to the appropriate ugettext method. + + The reason we can't have a global ugettext method is because + mg_globals gets swapped out by the application per-request. + """ + return mg_globals.translations.ugettext( + *args, **kwargs) + + PAGINATION_DEFAULT_PER_PAGE = 30 class Pagination(object): From 4b1adc132cf45507e2f910122992230d428c6856 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 8 Aug 2011 22:53:39 -0500 Subject: [PATCH 0818/2731] Marked relevant strings in python views/forms for translation via ugettext --- mediagoblin/auth/forms.py | 16 +++++++++------- mediagoblin/auth/views.py | 18 ++++++++++-------- mediagoblin/edit/forms.py | 17 ++++++++++------- mediagoblin/edit/views.py | 7 ++++--- mediagoblin/submit/forms.py | 8 +++++--- mediagoblin/submit/views.py | 7 ++++--- 6 files changed, 42 insertions(+), 31 deletions(-) diff --git a/mediagoblin/auth/forms.py b/mediagoblin/auth/forms.py index 7bc0aeb1..1b6bc7c2 100644 --- a/mediagoblin/auth/forms.py +++ b/mediagoblin/auth/forms.py @@ -16,34 +16,36 @@ import wtforms +from mediagoblin.util import pass_to_ugettext as _ + class RegistrationForm(wtforms.Form): username = wtforms.TextField( - 'Username', + _('Username'), [wtforms.validators.Required(), wtforms.validators.Length(min=3, max=30), wtforms.validators.Regexp(r'^\w+$')]) password = wtforms.PasswordField( - 'Password', + _('Password'), [wtforms.validators.Required(), wtforms.validators.Length(min=6, max=30), wtforms.validators.EqualTo( 'confirm_password', - 'Passwords must match.')]) + _('Passwords must match.'))]) confirm_password = wtforms.PasswordField( - 'Confirm password', + _('Confirm password'), [wtforms.validators.Required()]) email = wtforms.TextField( - 'Email address', + _('Email address'), [wtforms.validators.Required(), wtforms.validators.Email()]) class LoginForm(wtforms.Form): username = wtforms.TextField( - 'Username', + _('Username'), [wtforms.validators.Required(), wtforms.validators.Regexp(r'^\w+$')]) password = wtforms.PasswordField( - 'Password', + _('Password'), [wtforms.validators.Required()]) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index df7e2a88..121a8c8e 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -21,6 +21,7 @@ from webob import exc from mediagoblin import messages from mediagoblin import mg_globals from mediagoblin.util import render_to_response, redirect +from mediagoblin.util import pass_to_ugettext as _ from mediagoblin.db.util import ObjectId from mediagoblin.auth import lib as auth_lib from mediagoblin.auth import forms as auth_forms @@ -36,7 +37,7 @@ def register(request): messages.add_message( request, messages.WARNING, - ('Sorry, registration is disabled on this instance.')) + _('Sorry, registration is disabled on this instance.')) return redirect(request, "index") register_form = auth_forms.RegistrationForm(request.POST) @@ -51,7 +52,7 @@ def register(request): if users_with_username: register_form.username.errors.append( - u'Sorry, a user with that name already exists.') + _(u'Sorry, a user with that name already exists.')) else: # Create the user @@ -148,12 +149,13 @@ def verify_email(request): messages.add_message( request, messages.SUCCESS, - ('Your email address has been verified. ' - 'You may now login, edit your profile, and submit images!')) + _("Your email address has been verified. " + "You may now login, edit your profile, and submit images!")) else: - messages.add_message(request, - messages.ERROR, - 'The verification key or user id is incorrect') + messages.add_message( + request, + messages.ERROR, + _('The verification key or user id is incorrect')) return redirect( request, 'mediagoblin.user_pages.user_home', @@ -174,7 +176,7 @@ def resend_activation(request): messages.add_message( request, messages.INFO, - 'Resent your verification email.') + _('Resent your verification email.')) return redirect( request, 'mediagoblin.user_pages.user_home', user=request.user['username']) diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index a1783a72..8052f482 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -16,25 +16,28 @@ import wtforms + from mediagoblin.util import tag_length_validator, TOO_LONG_TAG_WARNING +from mediagoblin.util import pass_to_ugettext as _ class EditForm(wtforms.Form): title = wtforms.TextField( - 'Title', + _('Title'), [wtforms.validators.Length(min=0, max=500)]) slug = wtforms.TextField( - 'Slug', - [wtforms.validators.Required(message="The slug can't be empty")]) + _('Slug'), + [wtforms.validators.Required(message=_("The slug can't be empty"))]) description = wtforms.TextAreaField('Description of this work') tags = wtforms.TextField( - 'Tags', + _('Tags'), [tag_length_validator]) class EditProfileForm(wtforms.Form): - bio = wtforms.TextAreaField('Bio', + bio = wtforms.TextAreaField( + _('Bio'), [wtforms.validators.Length(min=0, max=500)]) url = wtforms.TextField( - 'Website', + _('Website'), [wtforms.validators.Optional(), - wtforms.validators.URL(message='Improperly formed URL')]) + wtforms.validators.URL(message=_('Improperly formed URL'))]) diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 5cbaadb5..0b1a98f1 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -23,6 +23,7 @@ from mediagoblin import mg_globals from mediagoblin.util import ( render_to_response, redirect, clean_html, convert_to_tag_list_of_dicts, media_tags_as_string, cleaned_markdown_conversion) +from mediagoblin.util import pass_to_ugettext as _ from mediagoblin.edit import forms from mediagoblin.edit.lib import may_edit_media from mediagoblin.decorators import require_active_login, get_user_media_entry @@ -50,7 +51,7 @@ def edit_media(request, media): if existing_user_slug_entries: form.slug.errors.append( - u'An entry with that slug already exists for this user.') + _(u'An entry with that slug already exists for this user.')) else: media['title'] = request.POST['title'] media['description'] = request.POST.get('description') @@ -71,7 +72,7 @@ def edit_media(request, media): and request.method != 'POST': messages.add_message( request, messages.WARNING, - "You are editing another user's media. Proceed with caution.") + _("You are editing another user's media. Proceed with caution.")) return render_to_response( @@ -92,7 +93,7 @@ def edit_profile(request): if request.method != 'POST': messages.add_message( request, messages.WARNING, - "You are editing a user's profile. Proceed with caution.") + _("You are editing a user's profile. Proceed with caution.")) else: user = request.user diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py index f02c95a6..ccb62a03 100644 --- a/mediagoblin/submit/forms.py +++ b/mediagoblin/submit/forms.py @@ -16,15 +16,17 @@ import wtforms + from mediagoblin.util import tag_length_validator +from mediagoblin.util import pass_to_ugettext as _ class SubmitStartForm(wtforms.Form): title = wtforms.TextField( - 'Title', + _('Title'), [wtforms.validators.Length(min=0, max=500)]) description = wtforms.TextAreaField('Description of this work') - file = wtforms.FileField('File') + file = wtforms.FileField(_('File')) tags = wtforms.TextField( - 'Tags', + _('Tags'), [tag_length_validator]) diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 87e57dda..ba13b755 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -23,6 +23,7 @@ from werkzeug.utils import secure_filename from mediagoblin.util import ( render_to_response, redirect, cleaned_markdown_conversion, \ convert_to_tag_list_of_dicts) +from mediagoblin.util import pass_to_ugettext as _ from mediagoblin.decorators import require_active_login from mediagoblin.submit import forms as submit_forms, security from mediagoblin.process_media import process_media_initial @@ -41,10 +42,10 @@ def submit_start(request): and isinstance(request.POST['file'], FieldStorage) and request.POST['file'].file): submit_form.file.errors.append( - u'You must provide a file.') + _(u'You must provide a file.')) elif not security.check_filetype(request.POST['file']): submit_form.file.errors.append( - u'The file doesn\'t seem to be an image!') + _(u"The file doesn't seem to be an image!")) else: filename = request.POST['file'].filename @@ -92,7 +93,7 @@ def submit_start(request): # queue it for processing process_media_initial.delay(unicode(entry['_id'])) - add_message(request, SUCCESS, 'Woohoo! Submitted!') + add_message(request, SUCCESS, _('Woohoo! Submitted!')) return redirect(request, "mediagoblin.user_pages.user_home", user = request.user['username']) From d1e67890da02f29a8fc4605c2f6601526fcacf35 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 8 Aug 2011 22:56:16 -0500 Subject: [PATCH 0819/2731] Extracted translatable strings from python files. --- .../i18n/en/LC_MESSAGES/mediagoblin.po | 105 +++++++++++++++++- 1 file changed, 100 insertions(+), 5 deletions(-) diff --git a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po index 5e54390d..0de5ca62 100644 --- a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-08-08 10:20-0500\n" +"POT-Creation-Date: 2011-08-08 22:53-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,6 +17,105 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 0.9.6\n" +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46 +msgid "Username" +msgstr "" + +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50 +msgid "Password" +msgstr "" + +#: mediagoblin/auth/forms.py:34 +msgid "Passwords must match." +msgstr "" + +#: mediagoblin/auth/forms.py:36 +msgid "Confirm password" +msgstr "" + +#: mediagoblin/auth/forms.py:39 +msgid "Email address" +msgstr "" + +#: mediagoblin/auth/views.py:40 +msgid "Sorry, registration is disabled on this instance." +msgstr "" + +#: mediagoblin/auth/views.py:55 +msgid "Sorry, a user with that name already exists." +msgstr "" + +#: mediagoblin/auth/views.py:152 +msgid "" +"Your email address has been verified. You may now login, edit your " +"profile, and submit images!" +msgstr "" + +#: mediagoblin/auth/views.py:158 +msgid "The verification key or user id is incorrect" +msgstr "" + +#: mediagoblin/auth/views.py:179 +#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +msgid "Resent your verification email." +msgstr "" + +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26 +msgid "Title" +msgstr "" + +#: mediagoblin/edit/forms.py:29 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:30 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +msgid "Tags" +msgstr "" + +#: mediagoblin/edit/forms.py:38 +msgid "Bio" +msgstr "" + +#: mediagoblin/edit/forms.py:41 +msgid "Website" +msgstr "" + +#: mediagoblin/edit/forms.py:43 +msgid "Improperly formed URL" +msgstr "" + +#: mediagoblin/edit/views.py:54 +msgid "An entry with that slug already exists for this user." +msgstr "" + +#: mediagoblin/edit/views.py:75 +msgid "You are editing another user's media. Proceed with caution." +msgstr "" + +#: mediagoblin/edit/views.py:96 +msgid "You are editing a user's profile. Proceed with caution." +msgstr "" + +#: mediagoblin/submit/forms.py:29 +msgid "File" +msgstr "" + +#: mediagoblin/submit/views.py:45 +msgid "You must provide a file." +msgstr "" + +#: mediagoblin/submit/views.py:48 +msgid "The file doesn't seem to be an image!" +msgstr "" + +#: mediagoblin/submit/views.py:96 +msgid "Woohoo! Submitted!" +msgstr "" + #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" msgstr "" @@ -90,10 +189,6 @@ msgstr "" msgid "Create an account!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 -msgid "Resent your verification email." -msgstr "" - #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format msgid "" From ed7970696e3194fdfc9fb597342e2cecacc75935 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sun, 31 Jul 2011 13:54:07 +0200 Subject: [PATCH 0820/2731] Storage Config: Use own section Instead of configuring storage X by parameters in the main section "X_class = backend" and "X_param = value", use a new section in the config: "[storage:X]" and use "class = backend" and "param = value" there. This is the beginning, it includes a try at being backward compatible. But that try isn't really fully useful anyway. --- mediagoblin.ini | 10 +++++++--- mediagoblin/config_spec.ini | 12 +++++++----- mediagoblin/init/__init__.py | 18 ++++++++++++++++-- mediagoblin/storage.py | 7 ++++++- 4 files changed, 36 insertions(+), 11 deletions(-) diff --git a/mediagoblin.ini b/mediagoblin.ini index e889646a..c22d12d7 100644 --- a/mediagoblin.ini +++ b/mediagoblin.ini @@ -1,7 +1,4 @@ [mediagoblin] -queuestore_base_dir = %(here)s/user_dev/media/queue -publicstore_base_dir = %(here)s/user_dev/media/public -publicstore_base_url = /mgoblin_media/ direct_remote_path = /mgoblin_static/ email_sender_address = "notice@mediagoblin.example.org" @@ -14,5 +11,12 @@ allow_registration = true ## Uncomment this to put some user-overriding templates here #local_templates = %(here)s/user_dev/templates/ +[storage:queuestore] +base_dir = %(here)s/user_dev/media/queue + +[storage:publicstore] +base_dir = %(here)s/user_dev/media/public +base_url = /mgoblin_media/ + [celery] # Put celery stuff here diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini index bbc1f7d6..6e0d52b4 100644 --- a/mediagoblin/config_spec.ini +++ b/mediagoblin/config_spec.ini @@ -4,15 +4,10 @@ db_host = string() db_name = string(default="mediagoblin") db_port = integer() -# -queuestore_base_dir = string(default="%(here)s/user_dev/media/queue") -publicstore_base_dir = string(default="%(here)s/user_dev/media/public") # Where temporary files used in processing and etc are kept workbench_path = string(default="%(here)s/user_dev/media/workbench") -# -publicstore_base_url = string(default="/mgoblin_media/") # Where mediagoblin-builtin static assets are kept direct_remote_path = string(default="/mgoblin_static/") @@ -37,6 +32,13 @@ local_templates = string() # itself) celery_setup_elsewhere = boolean(default=False) +[storage:publicstore] +base_dir = string(default="%(here)s/user_dev/media/public") +base_url = string(default="/mgoblin_media/") + +[storage:queuestore] +base_dir = string(default="%(here)s/user_dev/media/queue") + [celery] # known booleans celery_result_persistent = boolean() diff --git a/mediagoblin/init/__init__.py b/mediagoblin/init/__init__.py index ff005703..b87bd7a4 100644 --- a/mediagoblin/init/__init__.py +++ b/mediagoblin/init/__init__.py @@ -113,9 +113,23 @@ def get_staticdirector(app_config): def setup_storage(): app_config = mg_globals.app_config + global_config = mg_globals.global_config - public_store = storage_system_from_config(app_config, 'publicstore') - queue_store = storage_system_from_config(app_config, 'queuestore') + key_short = 'publicstore' + key_long = "storage:" + key_short + if global_config.has_key(key_long): + print "New style" + public_store = storage_system_from_config(global_config[key_long], None) + else: + print "old style" + public_store = storage_system_from_config(app_config, key_short) + + key_short = 'queuestore' + key_long = "storage:" + key_short + if global_config.has_key(key_long): + queue_store = storage_system_from_config(global_config[key_long], None) + else: + queue_store = storage_system_from_config(app_config, key_short) setup_globals( public_store = public_store, diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index 88c748ce..46a0c040 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -472,7 +472,10 @@ def storage_system_from_config(paste_config, storage_prefix): base_url='/media/', base_dir='/var/whatever/media') """ - prefix_re = re.compile('^%s_(.+)$' % re.escape(storage_prefix)) + if storage_prefix is not None: + prefix_re = re.compile('^%s_(.+)$' % re.escape(storage_prefix)) + else: + prefix_re = re.compile('^(.+)$') config_params = dict( [(prefix_re.match(key).groups()[0], value) @@ -485,5 +488,7 @@ def storage_system_from_config(paste_config, storage_prefix): else: storage_class = "mediagoblin.storage:BasicFileStorage" + print storage_class, repr(config_params) + storage_class = util.import_component(storage_class) return storage_class(**config_params) From f7d73aeb34ed16c7d1aa06d977ffb4c9c7a44051 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sun, 7 Aug 2011 17:41:24 +0200 Subject: [PATCH 0821/2731] storage Config: Stop being backward compatible (beginning). Chris Webber says "no backward compatibility for this". So start removing the backward compat stuff. --- mediagoblin/init/__init__.py | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/mediagoblin/init/__init__.py b/mediagoblin/init/__init__.py index b87bd7a4..32f0194c 100644 --- a/mediagoblin/init/__init__.py +++ b/mediagoblin/init/__init__.py @@ -117,19 +117,11 @@ def setup_storage(): key_short = 'publicstore' key_long = "storage:" + key_short - if global_config.has_key(key_long): - print "New style" - public_store = storage_system_from_config(global_config[key_long], None) - else: - print "old style" - public_store = storage_system_from_config(app_config, key_short) + public_store = storage_system_from_config(global_config[key_long], None) key_short = 'queuestore' key_long = "storage:" + key_short - if global_config.has_key(key_long): - queue_store = storage_system_from_config(global_config[key_long], None) - else: - queue_store = storage_system_from_config(app_config, key_short) + queue_store = storage_system_from_config(global_config[key_long], None) setup_globals( public_store = public_store, From 56fc71865919792159ce4307101ef246488b4194 Mon Sep 17 00:00:00 2001 From: Elrond Date: Tue, 9 Aug 2011 13:11:34 +0200 Subject: [PATCH 0822/2731] Storage config: Drop all Backward Compatibility Chris Webber says not to care about backward compatibility at this stage. So drop the last bits. --- mediagoblin/init/__init__.py | 5 ++--- mediagoblin/storage.py | 14 ++++---------- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/mediagoblin/init/__init__.py b/mediagoblin/init/__init__.py index 32f0194c..44f604b1 100644 --- a/mediagoblin/init/__init__.py +++ b/mediagoblin/init/__init__.py @@ -112,16 +112,15 @@ def get_staticdirector(app_config): def setup_storage(): - app_config = mg_globals.app_config global_config = mg_globals.global_config key_short = 'publicstore' key_long = "storage:" + key_short - public_store = storage_system_from_config(global_config[key_long], None) + public_store = storage_system_from_config(global_config[key_long]) key_short = 'queuestore' key_long = "storage:" + key_short - queue_store = storage_system_from_config(global_config[key_long], None) + queue_store = storage_system_from_config(global_config[key_long]) setup_globals( public_store = public_store, diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index 46a0c040..66acc1d4 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -443,7 +443,7 @@ def clean_listy_filepath(listy_filepath): return cleaned_filepath -def storage_system_from_config(paste_config, storage_prefix): +def storage_system_from_config(config): """ Utility for setting up a storage system from the paste app config. @@ -472,15 +472,9 @@ def storage_system_from_config(paste_config, storage_prefix): base_url='/media/', base_dir='/var/whatever/media') """ - if storage_prefix is not None: - prefix_re = re.compile('^%s_(.+)$' % re.escape(storage_prefix)) - else: - prefix_re = re.compile('^(.+)$') - - config_params = dict( - [(prefix_re.match(key).groups()[0], value) - for key, value in paste_config.iteritems() - if prefix_re.match(key)]) + # This construct is needed, because dict(config) does + # not replace the variables in the config items. + config_params = dict(config.iteritems()) if 'storage_class' in config_params: storage_class = config_params['storage_class'] From f9b68f6efa8624a425464a62d5a836167f5e000e Mon Sep 17 00:00:00 2001 From: Elrond Date: Tue, 9 Aug 2011 13:40:20 +0200 Subject: [PATCH 0823/2731] Storage Config: Finally drop debug --- mediagoblin/storage.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index 66acc1d4..d338fb31 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -482,7 +482,5 @@ def storage_system_from_config(config): else: storage_class = "mediagoblin.storage:BasicFileStorage" - print storage_class, repr(config_params) - storage_class = util.import_component(storage_class) return storage_class(**config_params) From 7bc2d2e313336759d77e4dbf9f4a6ced711a5bf1 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Tue, 9 Aug 2011 09:41:16 -0500 Subject: [PATCH 0824/2731] New translations including Swedish at 100% (again! now with python strings) --- .../i18n/de/LC_MESSAGES/mediagoblin.po | 107 ++++++++++++++++- .../i18n/sr/LC_MESSAGES/mediagoblin.po | 109 ++++++++++++++++-- .../i18n/sv/LC_MESSAGES/mediagoblin.po | 109 +++++++++++++++++- 3 files changed, 306 insertions(+), 19 deletions(-) diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po index 0303ec12..065a28b8 100644 --- a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-08 10:20-0500\n" -"PO-Revision-Date: 2011-08-08 15:22+0000\n" +"POT-Creation-Date: 2011-08-08 22:53-0500\n" +"PO-Revision-Date: 2011-08-09 03:57+0000\n" "Last-Translator: cwebber \n" "Language-Team: German (http://www.transifex.net/projects/p/mediagoblin/team/de/)\n" "MIME-Version: 1.0\n" @@ -18,6 +18,105 @@ msgstr "" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46 +msgid "Username" +msgstr "" + +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50 +msgid "Password" +msgstr "" + +#: mediagoblin/auth/forms.py:34 +msgid "Passwords must match." +msgstr "" + +#: mediagoblin/auth/forms.py:36 +msgid "Confirm password" +msgstr "" + +#: mediagoblin/auth/forms.py:39 +msgid "Email address" +msgstr "" + +#: mediagoblin/auth/views.py:40 +msgid "Sorry, registration is disabled on this instance." +msgstr "" + +#: mediagoblin/auth/views.py:55 +msgid "Sorry, a user with that name already exists." +msgstr "" + +#: mediagoblin/auth/views.py:152 +msgid "" +"Your email address has been verified. You may now login, edit your profile, " +"and submit images!" +msgstr "" + +#: mediagoblin/auth/views.py:158 +msgid "The verification key or user id is incorrect" +msgstr "" + +#: mediagoblin/auth/views.py:179 +#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +msgid "Resent your verification email." +msgstr "" + +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26 +msgid "Title" +msgstr "" + +#: mediagoblin/edit/forms.py:29 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:30 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +msgid "Tags" +msgstr "" + +#: mediagoblin/edit/forms.py:38 +msgid "Bio" +msgstr "" + +#: mediagoblin/edit/forms.py:41 +msgid "Website" +msgstr "" + +#: mediagoblin/edit/forms.py:43 +msgid "Improperly formed URL" +msgstr "" + +#: mediagoblin/edit/views.py:54 +msgid "An entry with that slug already exists for this user." +msgstr "" + +#: mediagoblin/edit/views.py:75 +msgid "You are editing another user's media. Proceed with caution." +msgstr "" + +#: mediagoblin/edit/views.py:96 +msgid "You are editing a user's profile. Proceed with caution." +msgstr "" + +#: mediagoblin/submit/forms.py:29 +msgid "File" +msgstr "" + +#: mediagoblin/submit/views.py:45 +msgid "You must provide a file." +msgstr "" + +#: mediagoblin/submit/views.py:48 +msgid "The file doesn't seem to be an image!" +msgstr "" + +#: mediagoblin/submit/views.py:96 +msgid "Woohoo! Submitted!" +msgstr "" + #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" msgstr "" @@ -91,10 +190,6 @@ msgstr "" msgid "Create an account!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 -msgid "Resent your verification email." -msgstr "" - #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format msgid "" diff --git a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po index b5a6f2d3..ec8611ee 100644 --- a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po @@ -6,9 +6,9 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-08 10:20-0500\n" -"PO-Revision-Date: 2011-08-09 03:25+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2011-08-08 22:53-0500\n" +"PO-Revision-Date: 2011-08-09 03:57+0000\n" +"Last-Translator: cwebber \n" "Language-Team: Serbian (http://www.transifex.net/projects/p/mediagoblin/team/sr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,6 +17,105 @@ msgstr "" "Language: sr\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" +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46 +msgid "Username" +msgstr "" + +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50 +msgid "Password" +msgstr "" + +#: mediagoblin/auth/forms.py:34 +msgid "Passwords must match." +msgstr "" + +#: mediagoblin/auth/forms.py:36 +msgid "Confirm password" +msgstr "" + +#: mediagoblin/auth/forms.py:39 +msgid "Email address" +msgstr "" + +#: mediagoblin/auth/views.py:40 +msgid "Sorry, registration is disabled on this instance." +msgstr "" + +#: mediagoblin/auth/views.py:55 +msgid "Sorry, a user with that name already exists." +msgstr "" + +#: mediagoblin/auth/views.py:152 +msgid "" +"Your email address has been verified. You may now login, edit your profile, " +"and submit images!" +msgstr "" + +#: mediagoblin/auth/views.py:158 +msgid "The verification key or user id is incorrect" +msgstr "" + +#: mediagoblin/auth/views.py:179 +#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +msgid "Resent your verification email." +msgstr "" + +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26 +msgid "Title" +msgstr "" + +#: mediagoblin/edit/forms.py:29 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:30 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +msgid "Tags" +msgstr "" + +#: mediagoblin/edit/forms.py:38 +msgid "Bio" +msgstr "" + +#: mediagoblin/edit/forms.py:41 +msgid "Website" +msgstr "" + +#: mediagoblin/edit/forms.py:43 +msgid "Improperly formed URL" +msgstr "" + +#: mediagoblin/edit/views.py:54 +msgid "An entry with that slug already exists for this user." +msgstr "" + +#: mediagoblin/edit/views.py:75 +msgid "You are editing another user's media. Proceed with caution." +msgstr "" + +#: mediagoblin/edit/views.py:96 +msgid "You are editing a user's profile. Proceed with caution." +msgstr "" + +#: mediagoblin/submit/forms.py:29 +msgid "File" +msgstr "" + +#: mediagoblin/submit/views.py:45 +msgid "You must provide a file." +msgstr "" + +#: mediagoblin/submit/views.py:48 +msgid "The file doesn't seem to be an image!" +msgstr "" + +#: mediagoblin/submit/views.py:96 +msgid "Woohoo! Submitted!" +msgstr "" + #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" msgstr "" @@ -90,10 +189,6 @@ msgstr "" msgid "Create an account!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 -msgid "Resent your verification email." -msgstr "" - #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format msgid "" diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po index 8899a3ea..ffcd17df 100644 --- a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-08 10:20-0500\n" -"PO-Revision-Date: 2011-08-09 00:35+0000\n" +"POT-Creation-Date: 2011-08-08 22:53-0500\n" +"PO-Revision-Date: 2011-08-09 14:10+0000\n" "Last-Translator: joar \n" "Language-Team: Swedish (http://www.transifex.net/projects/p/mediagoblin/team/sv/)\n" "MIME-Version: 1.0\n" @@ -18,6 +18,107 @@ msgstr "" "Language: sv\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46 +msgid "Username" +msgstr "Användarnamn" + +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50 +msgid "Password" +msgstr "Lösenord" + +#: mediagoblin/auth/forms.py:34 +msgid "Passwords must match." +msgstr "Lösenorden måste vara identiska." + +#: mediagoblin/auth/forms.py:36 +msgid "Confirm password" +msgstr "Bekräfta lösenord" + +#: mediagoblin/auth/forms.py:39 +msgid "Email address" +msgstr "E-postadress" + +#: mediagoblin/auth/views.py:40 +msgid "Sorry, registration is disabled on this instance." +msgstr "Vi beklagar, registreringen är avtängd på den här instansen." + +#: mediagoblin/auth/views.py:55 +msgid "Sorry, a user with that name already exists." +msgstr "En användare med det användarnamnet finns redan." + +#: mediagoblin/auth/views.py:152 +msgid "" +"Your email address has been verified. You may now login, edit your profile, " +"and submit images!" +msgstr "" +"Din e-postadress är verifierad. Du kan nu logga in, redigera din profil och " +"ladda upp filer!" + +#: mediagoblin/auth/views.py:158 +msgid "The verification key or user id is incorrect" +msgstr "Verifieringsnyckeln eller användar-IDt är fel." + +#: mediagoblin/auth/views.py:179 +#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +msgid "Resent your verification email." +msgstr "Skickade ett nytt verifierings-email." + +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26 +msgid "Title" +msgstr "Titel" + +#: mediagoblin/edit/forms.py:29 +msgid "Slug" +msgstr "Sökvägsnamn" + +#: mediagoblin/edit/forms.py:30 +msgid "The slug can't be empty" +msgstr "Sökvägsnamnet kan inte vara tomt" + +#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +msgid "Tags" +msgstr "Taggar" + +#: mediagoblin/edit/forms.py:38 +msgid "Bio" +msgstr "Presentation" + +#: mediagoblin/edit/forms.py:41 +msgid "Website" +msgstr "Hemsida" + +#: mediagoblin/edit/forms.py:43 +msgid "Improperly formed URL" +msgstr "Ogiltig URL" + +#: mediagoblin/edit/views.py:54 +msgid "An entry with that slug already exists for this user." +msgstr "Ett inlägg med det sökvägsnamnet existerar redan." + +#: mediagoblin/edit/views.py:75 +msgid "You are editing another user's media. Proceed with caution." +msgstr "Var försiktig, du redigerar någon annans inlägg." + +#: mediagoblin/edit/views.py:96 +msgid "You are editing a user's profile. Proceed with caution." +msgstr "Var försiktig, du redigerar en annan användares profil." + +#: mediagoblin/submit/forms.py:29 +msgid "File" +msgstr "Fil" + +#: mediagoblin/submit/views.py:45 +msgid "You must provide a file." +msgstr "Du måste ange en fil" + +#: mediagoblin/submit/views.py:48 +msgid "The file doesn't seem to be an image!" +msgstr "Filen verkar inte vara en giltig bildfil!" + +#: mediagoblin/submit/views.py:96 +msgid "Woohoo! Submitted!" +msgstr "Tjohoo! Upladdat!" + #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" msgstr "GNU MediaGoblin" @@ -94,10 +195,6 @@ msgstr "Skapa ett!" msgid "Create an account!" msgstr "Skapa ett konto!" -#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 -msgid "Resent your verification email." -msgstr "Skickade ett nytt verifierings-email." - #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format msgid "" From b811346a2abfb6b0359b12cb68047f8fd98bf204 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Tue, 9 Aug 2011 09:48:06 -0500 Subject: [PATCH 0825/2731] Compiling the translations files again --- .../i18n/de/LC_MESSAGES/mediagoblin.mo | Bin 3688 -> 5330 bytes .../i18n/sr/LC_MESSAGES/mediagoblin.mo | Bin 3752 -> 5401 bytes .../i18n/sv/LC_MESSAGES/mediagoblin.mo | Bin 3767 -> 5467 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo index c403e3cc1e98f59c087bc732986a57d6b25cac1b..eaa79dfa4c8bed2a279beb08a59c418b57dc7ed6 100644 GIT binary patch literal 5330 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 CN`2J; delta 786 zcmYMwO-NKx6u|NG(l;NCO*W%7S>}_P7X{VSFj#^`pJQP|QMQ{zr-26ML(BrhVOmH* zt>P36Ni7Q6*g_bnjX_au+C(cCqC(&*TGb*9s{f@2J?^`|d+z%<_nd{@uR3c>k>-cO z<#KQ39CXomZU@Hz`2aaM3-os5;$89)^>qTnv ziA9x-Wt_llvq%Q#@ff=5QQ%vjdE}F!3G>K>MD$e0%jPp?!9zk=EA-se| z>>$6qW5JLmrZBFcdGQCDA6ou@2Z*3U?BW(oV-Ry_4p72Hx_1lPh%fVSFJ8lg_!LdY z7SQB#*Ybbz%N`aCIm~1#J&m+RvS=zOp=sG2Z~r;oCVq*pu`eXjkH4@7PjLE9oWuY= z@_dFd;upxP@&Rk6!p|(q_yrw2PhaCWhICQtcoCoA4*ZU$f*9?h80qrd<(Wj&kv=r7 zKZg#Ede85p>ELu&^lQ^c-|^vcE?-oiJ=J(@Pg|PtU(h%HS-l>}>YqTno(d-QXRs$$ z%vDNxXT0L1GlS0A{FTCRx-wEMlr4&|FgSE5OE+PXE>?*0YmF>B)h From ff0e4fd52b680a13ac75756ec3f8a883bed9f535 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Tue, 9 Aug 2011 10:12:05 -0500 Subject: [PATCH 0826/2731] Joar updating a typo in the Swedish translations :) --- .../i18n/sv/LC_MESSAGES/mediagoblin.mo | Bin 5467 -> 5461 bytes .../i18n/sv/LC_MESSAGES/mediagoblin.po | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo index f13bfb9e3e1679a162a01a2dba0ed37fd8cba734..04fe0b6ffde34b7eabe97b8ea9784f123e96795b 100644 GIT binary patch delta 299 zcmXZWF-rn*7{~F4j_VR^IIX1+OFFs}c4(-f(W`HWcLkBxp!EsTh;xW9lP!B&*JzO9+;TN^^IA@EMl8q2vsm)<~2qY&IH zkY0g<+z_s zxWFs?!9#SiB1c%>+t}MhmG{uYJ{IsPD-)?Oys=OZm#7{l$W2*e9ygf6)06+A7Sd5V z*u*~8aEdux;0-3I3e{PjVOxc^`#AQa;CASHV<-OA+_ZMtx`^%L7u^^|;k`e2u\n" "Language-Team: Swedish (http://www.transifex.net/projects/p/mediagoblin/team/sv/)\n" "MIME-Version: 1.0\n" @@ -144,8 +144,8 @@ msgid "" "Powered by MediaGoblin, a GNU project" msgstr "" -"Drivs av MediaGoblin, ett project " -"från GNU" +"Drivs av MediaGoblin, ett GNU-projekt" #: mediagoblin/templates/mediagoblin/root.html:21 msgid "Welcome to GNU MediaGoblin!" From 1c266dc328cd6fb1e0275d104a6e8fbceeb187fc Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 10 Aug 2011 10:48:02 -0500 Subject: [PATCH 0827/2731] Utilities to lazily translate strings and also fake a translation for extraction --- mediagoblin/util.py | 48 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index ed7be841..b46c65d9 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -28,11 +28,13 @@ import copy import wtforms from babel.localedata import exists +from babel.support import LazyProxy import jinja2 import translitcodec from webob import Response, exc from lxml.html.clean import Cleaner import markdown +from wtforms.form import Form from mediagoblin import mg_globals from mediagoblin import messages @@ -94,7 +96,7 @@ def get_jinja_env(template_loader, locale): template_env.install_gettext_callables( mg_globals.translations.ugettext, - mg_globals.translations.ngettext) + mg_globals.translations.ungettext) # All templates will know how to ... # ... fetch all waiting messages and remove them from the queue @@ -494,6 +496,50 @@ def pass_to_ugettext(*args, **kwargs): *args, **kwargs) +def lazy_pass_to_ugettext(*args, **kwargs): + """ + Lazily pass to ugettext. + + This is useful if you have to define a translation on a module + level but you need it to not translate until the time that it's + used as a string. + """ + return LazyProxy(pass_to_ugettext, *args, **kwargs) + + +def pass_to_ngettext(*args, **kwargs): + """ + Pass a translation on to the appropriate ngettext method. + + The reason we can't have a global ngettext method is because + mg_globals gets swapped out by the application per-request. + """ + return mg_globals.translations.ngettext( + *args, **kwargs) + + +def lazy_pass_to_ngettext(*args, **kwargs): + """ + Lazily pass to ngettext. + + This is useful if you have to define a translation on a module + level but you need it to not translate until the time that it's + used as a string. + """ + return LazyProxy(pass_to_ngettext, *args, **kwargs) + + +def fake_ugettext_passthrough(string): + """ + Fake a ugettext call for extraction's sake ;) + + In wtforms there's a separate way to define a method to translate + things... so we just need to mark up the text so that it can be + extracted, not so that it's actually run through gettext. + """ + return string + + PAGINATION_DEFAULT_PER_PAGE = 30 class Pagination(object): From db3e0583494f201c663c7d037410011da951666b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 10 Aug 2011 10:50:42 -0500 Subject: [PATCH 0828/2731] Make it so that form fields and descriptions are actually translated --- mediagoblin/templates/mediagoblin/utils/wtforms.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/utils/wtforms.html b/mediagoblin/templates/mediagoblin/utils/wtforms.html index 1d2f8619..e3d8e137 100644 --- a/mediagoblin/templates/mediagoblin/utils/wtforms.html +++ b/mediagoblin/templates/mediagoblin/utils/wtforms.html @@ -19,9 +19,9 @@ {# Generically render a field #} {% macro render_field_div(field) %}
            -
            {{ field.label }}
            +
            {{ _(field.label.text) }}
            {% if field.description -%} -
            {{ field.description }}
            +
            {{ _(field.description) }}
            {%- endif %}
            {{ field }}
            {%- if field.errors -%} @@ -38,9 +38,9 @@ # ... mostly the same thing except it includes rows and cols #} {% macro render_textarea_div(field, rows=8, cols=20) %}
            -
            {{ field.label }}
            +
            {{ _(field.label.text) }}
            {% if field.description -%} -
            {{ field.description }}
            +
            {{ _(field.description) }}
            {%- endif %}
            {{ field(rows=rows, cols=cols) }}
            {%- if field.errors -%} @@ -64,7 +64,7 @@ {% macro render_table(form) -%} {% for field in form %} - {{field.label}} + {{ _(field.label.text) }} {{field}} {% if field.errors %} From 7960ac985f9b5a80063f21012d53793cb2d22dd9 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 10 Aug 2011 12:07:59 -0500 Subject: [PATCH 0829/2731] Converting all forms to use the "fake/null" gettext conversion function Gettext doesn't actually get run right in the form but we do need to wrap the strings in _() so stuff extracts :) --- mediagoblin/auth/forms.py | 2 +- mediagoblin/edit/forms.py | 2 +- mediagoblin/submit/forms.py | 2 +- mediagoblin/user_pages/forms.py | 9 ++++++--- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/mediagoblin/auth/forms.py b/mediagoblin/auth/forms.py index 1b6bc7c2..917909c5 100644 --- a/mediagoblin/auth/forms.py +++ b/mediagoblin/auth/forms.py @@ -16,7 +16,7 @@ import wtforms -from mediagoblin.util import pass_to_ugettext as _ +from mediagoblin.util import fake_ugettext_passthrough as _ class RegistrationForm(wtforms.Form): diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index 8052f482..2f3ed203 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -18,7 +18,7 @@ import wtforms from mediagoblin.util import tag_length_validator, TOO_LONG_TAG_WARNING -from mediagoblin.util import pass_to_ugettext as _ +from mediagoblin.util import fake_ugettext_passthrough as _ class EditForm(wtforms.Form): diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py index ccb62a03..241d32dc 100644 --- a/mediagoblin/submit/forms.py +++ b/mediagoblin/submit/forms.py @@ -18,7 +18,7 @@ import wtforms from mediagoblin.util import tag_length_validator -from mediagoblin.util import pass_to_ugettext as _ +from mediagoblin.util import fake_ugettext_passthrough as _ class SubmitStartForm(wtforms.Form): diff --git a/mediagoblin/user_pages/forms.py b/mediagoblin/user_pages/forms.py index 8829b674..0489f76a 100644 --- a/mediagoblin/user_pages/forms.py +++ b/mediagoblin/user_pages/forms.py @@ -16,7 +16,10 @@ import wtforms +from mediagoblin.util import pass_to_ugettext as _ + + class MediaCommentForm(wtforms.Form): - comment_content = wtforms.TextAreaField( - 'Comment', - [wtforms.validators.Required()]) + comment_content = wtforms.TextAreaField( + _('Comment'), + [wtforms.validators.Required()]) From ad4aef3a67301cf941944981f50dc8734efb9b91 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 10 Aug 2011 12:08:14 -0500 Subject: [PATCH 0830/2731] Removing a tab. This is a tab-free zone! --- mediagoblin/user_pages/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 85a84db6..fb72a421 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -154,7 +154,7 @@ def atom_feed(request): 'username': request.matchdict['user'], 'status': 'active'}) if not user: - return exc.HTTPNotFound() + return exc.HTTPNotFound() cursor = request.db.MediaEntry.find({ 'uploader': user['_id'], From 369fd2f97214168eae0f8408c4006741b4de8d0a Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 10 Aug 2011 12:28:42 -0500 Subject: [PATCH 0831/2731] Ooops! We should do a fake ugettext passthrough here also. --- mediagoblin/user_pages/forms.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/user_pages/forms.py b/mediagoblin/user_pages/forms.py index 0489f76a..ce7bfaa4 100644 --- a/mediagoblin/user_pages/forms.py +++ b/mediagoblin/user_pages/forms.py @@ -16,7 +16,7 @@ import wtforms -from mediagoblin.util import pass_to_ugettext as _ +from mediagoblin.util import fake_ugettext_passthrough as _ class MediaCommentForm(wtforms.Form): From 9bc564ff53a7488ee3b6548dea73d5b43d234cda Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 10 Aug 2011 12:44:58 -0500 Subject: [PATCH 0832/2731] Minor change to indentation --- mediagoblin/user_pages/forms.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/user_pages/forms.py b/mediagoblin/user_pages/forms.py index ce7bfaa4..25001019 100644 --- a/mediagoblin/user_pages/forms.py +++ b/mediagoblin/user_pages/forms.py @@ -21,5 +21,5 @@ from mediagoblin.util import fake_ugettext_passthrough as _ class MediaCommentForm(wtforms.Form): comment_content = wtforms.TextAreaField( - _('Comment'), - [wtforms.validators.Required()]) + _('Comment'), + [wtforms.validators.Required()]) From 84abd2bbc43e2d92d429c679f49e237207057150 Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Wed, 10 Aug 2011 12:48:23 -0500 Subject: [PATCH 0833/2731] Bug #372 - MediaEntry.thumbnail_file not used - deleted the thumbnail_file from the media_entries collection - added a migration to remove the field from previous db versions --- mediagoblin/db/migrations.py | 10 ++++++++++ mediagoblin/db/models.py | 7 +------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py index 6a8ebcf9..8c088145 100644 --- a/mediagoblin/db/migrations.py +++ b/mediagoblin/db/migrations.py @@ -52,3 +52,13 @@ def mediaentry_mediafiles_main_to_original(database): document['media_files']['original'] = original collection.save(document) + +@RegisterMigration(3) +def mediaentry_remove_thumbnail_file(database): + """ + Use media_files['thumb'] instead of media_entries['thumbnail_file'] + """ + database['media_entries'].update( + {'thumbnail_file': {'$exists': True}}, + {'$unset': {'thumbnail_file': 1}}, + multi=True) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 4ef2d928..aff2a65b 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -169,8 +169,6 @@ class MediaEntry(Document): - attachment_files: A list of "attachment" files, ones that aren't critical to this piece of media but may be usefully relevant to people viewing the work. (currently unused.) - - - thumbnail_file: Deprecated... we should remove this ;) """ __collection__ = 'media_entries' @@ -196,10 +194,7 @@ class MediaEntry(Document): # The following should be lists of lists, in appropriate file # record form - 'attachment_files': list, - - # This one should just be a single file record - 'thumbnail_file': [unicode]} + 'attachment_files': list} required_fields = [ 'uploader', 'created', 'media_type', 'slug'] From 5d2b00be871c09022446d863150bb77fe7b6e4b2 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 10 Aug 2011 13:07:09 -0500 Subject: [PATCH 0834/2731] Updating translations --- .../i18n/de/LC_MESSAGES/mediagoblin.mo | Bin 5330 -> 5453 bytes .../i18n/de/LC_MESSAGES/mediagoblin.po | 51 +-- .../i18n/es/LC_MESSAGES/mediagoblin.mo | Bin 0 -> 5331 bytes .../i18n/es/LC_MESSAGES/mediagoblin.po | 299 ++++++++++++++++++ .../i18n/pt_BR/LC_MESSAGES/mediagoblin.mo | Bin 0 -> 5337 bytes .../i18n/pt_BR/LC_MESSAGES/mediagoblin.po | 294 +++++++++++++++++ 6 files changed, 620 insertions(+), 24 deletions(-) create mode 100644 mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo create mode 100644 mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po create mode 100644 mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo create mode 100644 mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo index eaa79dfa4c8bed2a279beb08a59c418b57dc7ed6..d5024687f631db02c1be382230123cf93e96fc0b 100644 GIT binary patch delta 1067 zcmZ|MPe>F|90%~?|)GdOb@6)a9-!RPQ{pQc__j|v2m44CwsJg1K z93k>I6Ky4;(FUUZa1tJZci|vhti(H`L>myFfwgc9Zh;qJGt9##cpdJ5w_yyp$8N2A&kQXxCt&*`~bHjUV)~e8dS%U zlF+=DhOO`b%)xW9!rBKds&{;#p`Wu?+DEeS)T7 z6}mIVp~=$<+h7`QgQua%=T2f_CU6VZ!#fZsJ-~&*$Ix{C4w?o(Le!ud%>4*V!eej* zCgBaJ;0!d4C9#`!xCfSo8wNL)4%e+jj&~pJ={mTt3rF3M73$2WvSjF4I#4}~dn%9) z>-D)KEH|({Av*)*_Jx*jTNy3g()s!?k(PejR(w3iC5>2NI29<(rUZAm$^{;mMK{{l zF`|MA;W3+A%H~4j)waE>SubdzJ)RENJt{trrsA1lOL&=nNAWP^bi&eHl)gn5BJKUs z=bnQEe=PFSWfMH-xjY=td6tX9Z<|uxLxCIoY-?>%o>Q7D=9lM@TC(!I%@r3i)WY}i zRZDCpQNAY8K2qX&c$o`qPRZiS*z4XO0SySLmF2QrV9J?>hA}0)|Nk4srDk2rJ<4*K z*VDz%wS5s@ycvI5IGIzN4g9ucHkDTn$5cXHzORL=JK0&m*<^W6O4AftVwbp{*37C5 qq=O+1`)klFk3X0d7@7LjT8i+4eawqHloe^M*HuDxQ|TW)rRY1zngAC7 delta 597 zcmXZYODIH99LMqhFyk>8?`Pp!OpHfJni`aBlq3sAHfkPMvzUkOok>EoR+G&{_KFqB zV5JnR36ZiPalXX{^9Gtin*PUd1Nr6qe#X*5e7b;0@AJ-W`$@D~lgC%JCQ1(Lu3- zDV)LrZW+T_ti>Iy#zRy=F42ZrRE_UY1$st?d@>cGrSkv09YfSwWm2S(#ReO#xQil*&ZlVgfjr5Q+bYm8W&{8APfFrnoUM$8_RPSG)I6D%iZbW?%-DS3$+L94l zJhrwKx%&n@gYK?A9{Z%vjQ7kKzNi`Y#bbs?3oPq?ziw#5xy5KOVa8Vi;aDP=St$Ls RWIn9pw)9)|Mf%IW_6IX5Q>Fj_ diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po index 065a28b8..14ef5b83 100644 --- a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po @@ -2,14 +2,15 @@ # Copyright (C) 2011 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # +# , 2011. # , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" "POT-Creation-Date: 2011-08-08 22:53-0500\n" -"PO-Revision-Date: 2011-08-09 03:57+0000\n" -"Last-Translator: cwebber \n" +"PO-Revision-Date: 2011-08-09 19:03+0000\n" +"Last-Translator: elrond \n" "Language-Team: German (http://www.transifex.net/projects/p/mediagoblin/team/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,23 +21,23 @@ msgstr "" #: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46 msgid "Username" -msgstr "" +msgstr "Benutzername" #: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50 msgid "Password" -msgstr "" +msgstr "Passwort" #: mediagoblin/auth/forms.py:34 msgid "Passwords must match." -msgstr "" +msgstr "Passwörter müssen übereinstimmen." #: mediagoblin/auth/forms.py:36 msgid "Confirm password" -msgstr "" +msgstr "Passwort wiederholen" #: mediagoblin/auth/forms.py:39 msgid "Email address" -msgstr "" +msgstr "E-Mail-Adresse" #: mediagoblin/auth/views.py:40 msgid "Sorry, registration is disabled on this instance." @@ -51,6 +52,8 @@ msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "" +"Ihre E-Mail-Adresse wurde bestätigt. Sie können sich jetzt anmelden, Ihr " +"Profil bearbeiten und Bilder hochladen!" #: mediagoblin/auth/views.py:158 msgid "The verification key or user id is incorrect" @@ -63,7 +66,7 @@ msgstr "" #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26 msgid "Title" -msgstr "" +msgstr "Titel" #: mediagoblin/edit/forms.py:29 msgid "Slug" @@ -83,7 +86,7 @@ msgstr "" #: mediagoblin/edit/forms.py:41 msgid "Website" -msgstr "" +msgstr "Webseite" #: mediagoblin/edit/forms.py:43 msgid "Improperly formed URL" @@ -103,7 +106,7 @@ msgstr "" #: mediagoblin/submit/forms.py:29 msgid "File" -msgstr "" +msgstr "Datei" #: mediagoblin/submit/views.py:45 msgid "You must provide a file." @@ -119,23 +122,23 @@ msgstr "" #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" -msgstr "" +msgstr "GNU MediaGoblin" #: mediagoblin/templates/mediagoblin/base.html:45 msgid "Mediagoblin logo" -msgstr "" +msgstr "Mediagoblin Logo" #: mediagoblin/templates/mediagoblin/base.html:51 msgid "Submit media" -msgstr "" +msgstr "Medien hochladen" #: mediagoblin/templates/mediagoblin/base.html:62 msgid "verify your email!" -msgstr "" +msgstr "Bitte bestätigen Sie Ihre E-Mail-Adresse!" #: mediagoblin/templates/mediagoblin/base.html:72 msgid "Login" -msgstr "" +msgstr "Anmelden" #: mediagoblin/templates/mediagoblin/base.html:88 msgid "" @@ -149,7 +152,7 @@ msgstr "Willkommen bei GNU MediaGoblin!" #: mediagoblin/templates/mediagoblin/root.html:26 msgid "Submit an item" -msgstr "" +msgstr "Eintrag hochladen" #: mediagoblin/templates/mediagoblin/root.html:31 #, python-format @@ -165,18 +168,18 @@ msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:26 msgid "Log in" -msgstr "" +msgstr "Anmelden" #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Login failed!" -msgstr "" +msgstr "Anmeldung fehlgeschlagen!" #: mediagoblin/templates/mediagoblin/auth/login.html:34 #: mediagoblin/templates/mediagoblin/auth/register.html:30 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 #: mediagoblin/templates/mediagoblin/submit/start.html:32 msgid "Submit" -msgstr "" +msgstr "Speichern" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" @@ -204,15 +207,15 @@ msgstr "" #: mediagoblin/templates/mediagoblin/edit/edit.html:29 #, python-format msgid "Editing %(media_title)s" -msgstr "" +msgstr "%(media_title)s bearbeiten" #: mediagoblin/templates/mediagoblin/edit/edit.html:36 msgid "Cancel" -msgstr "" +msgstr "Abbrechen" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 msgid "Save changes" -msgstr "" +msgstr "Änderungen speichern" #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format @@ -231,7 +234,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" -msgstr "" +msgstr "Medien hochladen" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format @@ -285,7 +288,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:84 msgid "Edit profile" -msgstr "" +msgstr "Profil bearbeiten" #: mediagoblin/templates/mediagoblin/user_pages/user.html:95 #, python-format diff --git a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo new file mode 100644 index 0000000000000000000000000000000000000000..043265a330a162bc23df295f3220a69d93155b07 GIT binary patch literal 5331 zcmeI0O^h5z6@V*XNEl3F;s8mApvGb4HQt$>wQ*v`-UY9-Hjcbz@$T9RNSK=LnwheD zy2f4IyB-NRapJ-O@e=_8q#(h;Na5!M5)vjSBqYQIE{KyQ1So(|lna9Ibs66epub8ruvEW%4rP8h!_=iOC|^EHwjrAnXr%nE9?ttU7LVKeOH0ebwie ziYz%0_RVddeSF%?v0`9jXVi&g;6tuspW3>9#uu43QRIs>*CBUFqEl<*pmVP~RO`vTz_>(*zAutkn=Er{R=ZRi-L>m_;0HF%gI;%epQj~-*!s5H+;)!e*q*f}YB+9a7Z@krZiE+DDvGoANc&|-B{%{#A7nl!SBI_cA{%LaOA zLRj}%tWL5px7wggWlDYH5k~61&1_vg<Yqg2VDsGXH2viB7&U9r9 z;%1S9%ZD}#gr-yE@_avTNhB>waod+yVV^1&M|f^qx+T8n#^U$QF+d&3H2fQD++cyr zn;ScmaJL6wN)Hojg4NsQX0}HL*lZ(}&yU9}^2Xwqg-h2{zt!ms4Qlx++7fbJOdwUedl@J?fRw#+yB_mNqhU;|~sD zftLp+kNQou-Bc?cao1qx5>7|9to!&Pm zd4!3VZIsJob-s$m?QyL>xntOyYFQ3U)Hi9*2DQvFRm+_8@>rQbl&eT#!?r_J)_~2U zD+Oz+%rhKYm6$$DcNUmspJgMlN>0eO(jd!slm@h_CZ`mXBI;L5y3{ZV)%c@Iv#dM; znj#XrU^>K2%2BDB)F>$@tSCAImyaQKxZDmlhGiT!1|u}99;}#NP%CmCNrsJd(ZSlm z*f0?@Fg*&7%qr^}r-uVTRked*J}RHz5|Ar)q^WtO{f?s($h-(c38Gq&Dx_A&^vDCz%YtoVb-_`F4F%kHZ>ckzh5w@M1WZ#GZ4wbfQFKSWsjG|L_r0&{$|t$x`7`6H zK_x2-V-=yT3#h4=G9PhiR6&bOAyub&`?}Oqz$*JTboys&%Y#A^ueq26C>>o2&Bhne zxYknA15TwpR?g(Il3R@adyG zd>U0mV%UD#r(Fnz4Yj2Yt~APfjeQzVaYMBAq1Mbyqji**K6I#kPq}5_#Dpxz`Ht7eE53hRKjxU4_6m}>v0}}j zt(S);b)l~(Pa?u4&ZGzQt_Kt7qBOm%%$&m5>No>^Sj^7Tx!RpaW<=`$KDqahB-?KPa37?&QC8kGf` z&lY*Nadc~*sMfVvV}YX-b8WWu(T>Y&r)_E}4wfK|+Irq}Y@%Du_couX{m-;ntEthr zDl@Us5mnCyIYhWgkN7}(EK3KK@wfa{gu-Nw?rf{iGTE!{v~-|^Iszdp}-T(haeiDqZ_vDLmUq-&DRb=BnGD)l`^2|7<24iY?~RUmB&zAjhZ TxQl%iofH3~aJ9HolB>T1MPD@2 literal 0 HcmV?d00001 diff --git a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po new file mode 100644 index 00000000..d2744d86 --- /dev/null +++ b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po @@ -0,0 +1,299 @@ +# Translations template for PROJECT. +# Copyright (C) 2011 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# +# , 2011. +msgid "" +msgstr "" +"Project-Id-Version: GNU MediaGoblin\n" +"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" +"POT-Creation-Date: 2011-08-08 22:53-0500\n" +"PO-Revision-Date: 2011-08-10 03:38+0000\n" +"Last-Translator: nvjacobo \n" +"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mediagoblin/team/es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 0.9.6\n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46 +msgid "Username" +msgstr "Nombre de Usuario" + +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50 +msgid "Password" +msgstr "Contraseña" + +#: mediagoblin/auth/forms.py:34 +msgid "Passwords must match." +msgstr "" + +#: mediagoblin/auth/forms.py:36 +msgid "Confirm password" +msgstr "" + +#: mediagoblin/auth/forms.py:39 +msgid "Email address" +msgstr "" + +#: mediagoblin/auth/views.py:40 +msgid "Sorry, registration is disabled on this instance." +msgstr "" + +#: mediagoblin/auth/views.py:55 +msgid "Sorry, a user with that name already exists." +msgstr "" + +#: mediagoblin/auth/views.py:152 +msgid "" +"Your email address has been verified. You may now login, edit your profile, " +"and submit images!" +msgstr "" + +#: mediagoblin/auth/views.py:158 +msgid "The verification key or user id is incorrect" +msgstr "" + +#: mediagoblin/auth/views.py:179 +#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +msgid "Resent your verification email." +msgstr "Reenvíe su correo electrónico de verificación" + +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26 +msgid "Title" +msgstr "" + +#: mediagoblin/edit/forms.py:29 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:30 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +msgid "Tags" +msgstr "" + +#: mediagoblin/edit/forms.py:38 +msgid "Bio" +msgstr "Bio" + +#: mediagoblin/edit/forms.py:41 +msgid "Website" +msgstr "Sitio web" + +#: mediagoblin/edit/forms.py:43 +msgid "Improperly formed URL" +msgstr "URL de forma incorrecta" + +#: mediagoblin/edit/views.py:54 +msgid "An entry with that slug already exists for this user." +msgstr "Una entrada con esa ficha ya existe para este usuario." + +#: mediagoblin/edit/views.py:75 +msgid "You are editing another user's media. Proceed with caution." +msgstr "." + +#: mediagoblin/edit/views.py:96 +msgid "You are editing a user's profile. Proceed with caution." +msgstr "." + +#: mediagoblin/submit/forms.py:29 +msgid "File" +msgstr "Archivo" + +#: mediagoblin/submit/views.py:45 +msgid "You must provide a file." +msgstr "Usted debe proporcionar un archivo." + +#: mediagoblin/submit/views.py:48 +msgid "The file doesn't seem to be an image!" +msgstr "El archivo no parece ser una imagen!" + +#: mediagoblin/submit/views.py:96 +msgid "Woohoo! Submitted!" +msgstr "Woohoo! Enviado!" + +#: mediagoblin/templates/mediagoblin/base.html:22 +msgid "GNU MediaGoblin" +msgstr "GNU MediaGoblin" + +#: mediagoblin/templates/mediagoblin/base.html:45 +msgid "Mediagoblin logo" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:51 +msgid "Submit media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:62 +msgid "verify your email!" +msgstr "Verifique su correo electrónico" + +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "Login" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:88 +msgid "" +"Powered by MediaGoblin, a GNU project" +msgstr "" +"Potenciado por MediaGoblin, a GNU project" + +#: mediagoblin/templates/mediagoblin/root.html:21 +msgid "Welcome to GNU MediaGoblin!" +msgstr "¡Bienvenido a GNU MediaGoblin!" + +#: mediagoblin/templates/mediagoblin/root.html:26 +msgid "Submit an item" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:31 +#, python-format +msgid "If you have an account, you can Login." +msgstr "" +"Si tiene una cuenta, puede iniciar sesión Login." + +#: mediagoblin/templates/mediagoblin/root.html:37 +#, python-format +msgid "" +"If you don't have an account, please Register." +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +msgid "Log in" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:29 +msgid "Login failed!" +msgstr "El inicio de sesión fallo" + +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 +#: mediagoblin/templates/mediagoblin/submit/start.html:32 +msgid "Submit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:42 +msgid "Don't have an account yet?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:45 +msgid "Create one here!" +msgstr "Crea una aquí" + +#: mediagoblin/templates/mediagoblin/auth/register.html:27 +msgid "Create an account!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to activate your GNU MediaGoblin account, open the following URL in\n" +"your web browser:\n" +"\n" +"%(verification_url)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:29 +#, python-format +msgid "Editing %(media_title)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:36 +msgid "Cancel" +msgstr "Cancelar" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:37 +msgid "Save changes" +msgstr "Salvar cambios" + +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 +#, python-format +msgid "Editing %(username)s's profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:29 +msgid "Media tagged with:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:40 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +msgid "atom feed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:26 +msgid "Submit yer media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:30 +msgid "Sorry, no such user found." +msgstr "Lo sentimos, no se ha encontrado el usuario." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:37 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:57 +msgid "Verification needed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:40 +msgid "Almost done! Your account still needs to be verified." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:45 +msgid "" +"An email should arrive in a few moments with instructions on how to do so." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:49 +msgid "In case it doesn't:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:52 +msgid "Resend verification email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:60 +msgid "" +"Someone has registered an account with this username, but it still has to be" +" verified." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:66 +#, python-format +msgid "" +"If you are that person but you've lost your verification email, you can log in and resend it." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:76 +#, python-format +msgid "%(username)s's profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:84 +msgid "Edit profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:95 +#, python-format +msgid "View all of %(username)s's media" +msgstr "" + + diff --git a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo new file mode 100644 index 0000000000000000000000000000000000000000..ce967d59fec8ad8a2c8fa7d1c881116ea36eaf4b GIT binary patch literal 5337 zcmeH}O>87b6~_xOBpDXS2LTcglr62+)_TU{1+&ZS+F-A}iz9n6{@B&Bf~97rB#@9m3d#)*2*e=*1QOzc1OyZzp(qj;ey@AR_Imla zaq?(9KUa6v>-XOO)vNyf!xLXsd=~k84}TM{m(k(puWwN59Sr{l=itPIQVZ|{@Co?j zX#4}n6!kKE6MO|e2w#N{!~5P?jvt4QGd>GX!7K2ca0k8@J_X+bzXVyTz6Re0pMjr) z&%+@+%R{cg@4yxK5BMlNf1gs1z)dKA7|0UUg<>~_;?HNH`1fUaKYSL-`sZL5z6c+K z)7*R?T!G?m6N+CBUWWnB!koqtJA9h8J`|mwg-^g=jmDD%BRb!JlHXfU;%P#8z8{Uh2qhm+Ly7zQP~v+L ziq5}=m{hMq$-@L9i_Q=5BRW3@MdzpCHTVz@5uHB`MW=5;$;XeN`0;Zn`FaV8-QPm- z=TDHY`X@h<$5RiL>mP+(#%H1E{1qrVe;10szkuS`@1W@X2PnFn$Ed^=!Fl)vD9`^M zBoy^SDC>U;<+(3GvGYeLI{yVq9v;Mbu{RCH?>#8~-GY2o#E*t|py>Q{C^~-=VnY2G ziq5};qVxT4FLhppqVp%A===hd`9Fc`^mOiRmYSZO@n^j5XRaM5R$Vf>o7wi_RC)h) zo+UGWYU$|gOLJz46+IipMlB~j=Yx)1YA5wgmuK3vS}sq6_90FZomv}t9h`1jy>GL) z9owj;mQ!teCQh{Px;%-r$+CFg>NwR#x9vdpT+gP#>p>j4T=gN#TOoF-*DlpvHxPr7 z)83V)(vS_yxuI)#a*}tnNiu7qp|*EokEOQDbm+!jOVl;B5<7L-q%E7M%PwulSx@(k z_XC$j>M{$1)dpwEP$tKh2vT=#W+&CEOV0$|H8_1ZPY-SQuv&}aaF9+J#A!#Lo-WdL zJH#O&;l-r#`oC3Stw@fEqRe`)u81&KukGngN%>XROyX31G{)%R;@L`toEWmSFU}7| ziDOH~;mm5+w<+1MWF<-5KpffI-XPJHV%@+tbu)7VGS#S5PEVJ*wTviG7KB=F%OlXu zVuzIXZRU}tnFqOkhO{J77KOQ^%S+j3i^VN6cck1B*NI2wrNdN;Mw67=>Lots*cIwHg; zZ7axRwOy)ludd~t|0sJ+?Z}2{bxqo_UhS|=)ebwo*jC1)a;X$C9NAPw4>;Jm(y(TW zIwP@Vi|MlTc!Sw-SvHiYWQQDS4YK@LYrv~=a!NzVTitR=n;u4^8r>>A%ZeSKX(CbV zO%vUu9Tl!gkCJx6ioDs2!w3>b9BgkqEOZzThIm$9*fkxmc4a?O4C8Xq-rC+MFfr3J z9U70!D*79{hYdhiwY`2A7T50*Yen62ZfycU5XqS}=%r1nPrUtKTya=E{Y zhHWEtJ*EvC8n|oU)n^VG{|(#pgr;uTq=km!=&^n?sctyeb#79ZISEqdH%DEAPF6I= zQlY~GsHV3v*W%D9MQfQ{x=!uhb*ZC)mGO;z`fqECjY1Lc#}NfkB)Tw~jSiwwucf7X zl1h6llgVKvry5&qs8h}z_F^ z*Yg(|^@X!_K9vpQLv=SZsZR(qYv?O`8youC^5&Ypw6?jtzVVUe)z$5_ot-77rk$MP zt?pXWYv?UP$~!n^_4G<+J`*RgNoVx*D6GL?Pzz!=ZreL|$JM_pvVgU@ez?7|JvUR? zO7hGk)hqO0-_U8l82ZI?7da8+&f;{cm-PHhWpjOV?J(i\n" +"Language-Team: Portuguese (Brazilian) (http://www.transifex.net/projects/p/mediagoblin/team/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 0.9.6\n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1)\n" + +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46 +msgid "Username" +msgstr "" + +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50 +msgid "Password" +msgstr "" + +#: mediagoblin/auth/forms.py:34 +msgid "Passwords must match." +msgstr "" + +#: mediagoblin/auth/forms.py:36 +msgid "Confirm password" +msgstr "" + +#: mediagoblin/auth/forms.py:39 +msgid "Email address" +msgstr "" + +#: mediagoblin/auth/views.py:40 +msgid "Sorry, registration is disabled on this instance." +msgstr "" + +#: mediagoblin/auth/views.py:55 +msgid "Sorry, a user with that name already exists." +msgstr "" + +#: mediagoblin/auth/views.py:152 +msgid "" +"Your email address has been verified. You may now login, edit your profile, " +"and submit images!" +msgstr "" + +#: mediagoblin/auth/views.py:158 +msgid "The verification key or user id is incorrect" +msgstr "" + +#: mediagoblin/auth/views.py:179 +#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +msgid "Resent your verification email." +msgstr "" + +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26 +msgid "Title" +msgstr "" + +#: mediagoblin/edit/forms.py:29 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:30 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +msgid "Tags" +msgstr "" + +#: mediagoblin/edit/forms.py:38 +msgid "Bio" +msgstr "" + +#: mediagoblin/edit/forms.py:41 +msgid "Website" +msgstr "" + +#: mediagoblin/edit/forms.py:43 +msgid "Improperly formed URL" +msgstr "" + +#: mediagoblin/edit/views.py:54 +msgid "An entry with that slug already exists for this user." +msgstr "" + +#: mediagoblin/edit/views.py:75 +msgid "You are editing another user's media. Proceed with caution." +msgstr "" + +#: mediagoblin/edit/views.py:96 +msgid "You are editing a user's profile. Proceed with caution." +msgstr "" + +#: mediagoblin/submit/forms.py:29 +msgid "File" +msgstr "" + +#: mediagoblin/submit/views.py:45 +msgid "You must provide a file." +msgstr "" + +#: mediagoblin/submit/views.py:48 +msgid "The file doesn't seem to be an image!" +msgstr "" + +#: mediagoblin/submit/views.py:96 +msgid "Woohoo! Submitted!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:22 +msgid "GNU MediaGoblin" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:45 +msgid "Mediagoblin logo" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:51 +msgid "Submit media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:62 +msgid "verify your email!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "Login" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:88 +msgid "" +"Powered by MediaGoblin, a GNU project" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:21 +msgid "Welcome to GNU MediaGoblin!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:26 +msgid "Submit an item" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:31 +#, python-format +msgid "If you have an account, you can Login." +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:37 +#, python-format +msgid "" +"If you don't have an account, please Register." +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +msgid "Log in" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:29 +msgid "Login failed!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 +#: mediagoblin/templates/mediagoblin/submit/start.html:32 +msgid "Submit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:42 +msgid "Don't have an account yet?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:45 +msgid "Create one here!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/register.html:27 +msgid "Create an account!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to activate your GNU MediaGoblin account, open the following URL in\n" +"your web browser:\n" +"\n" +"%(verification_url)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:29 +#, python-format +msgid "Editing %(media_title)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:36 +msgid "Cancel" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:37 +msgid "Save changes" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 +#, python-format +msgid "Editing %(username)s's profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:29 +msgid "Media tagged with:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:40 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +msgid "atom feed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:26 +msgid "Submit yer media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:30 +msgid "Sorry, no such user found." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:37 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:57 +msgid "Verification needed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:40 +msgid "Almost done! Your account still needs to be verified." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:45 +msgid "" +"An email should arrive in a few moments with instructions on how to do so." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:49 +msgid "In case it doesn't:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:52 +msgid "Resend verification email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:60 +msgid "" +"Someone has registered an account with this username, but it still has to be" +" verified." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:66 +#, python-format +msgid "" +"If you are that person but you've lost your verification email, you can log in and resend it." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:76 +#, python-format +msgid "%(username)s's profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:84 +msgid "Edit profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:95 +#, python-format +msgid "View all of %(username)s's media" +msgstr "" + + From 6d794f268bb1f5d3cc56c5f0dc902571d48ebeac Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 10 Aug 2011 18:31:29 -0500 Subject: [PATCH 0835/2731] Updating translations --- .../i18n/de/LC_MESSAGES/mediagoblin.mo | Bin 5453 -> 5641 bytes .../i18n/de/LC_MESSAGES/mediagoblin.po | 91 +++-- .../i18n/es/LC_MESSAGES/mediagoblin.mo | Bin 5331 -> 5708 bytes .../i18n/es/LC_MESSAGES/mediagoblin.po | 79 +++-- .../i18n/fr/LC_MESSAGES/mediagoblin.mo | Bin 0 -> 5406 bytes .../i18n/fr/LC_MESSAGES/mediagoblin.po | 305 +++++++++++++++++ .../i18n/nn_NO/LC_MESSAGES/mediagoblin.mo | Bin 0 -> 5217 bytes .../i18n/nn_NO/LC_MESSAGES/mediagoblin.po | 308 +++++++++++++++++ .../i18n/pt_BR/LC_MESSAGES/mediagoblin.mo | Bin 5337 -> 5414 bytes .../i18n/pt_BR/LC_MESSAGES/mediagoblin.po | 108 +++--- .../i18n/ro/LC_MESSAGES/mediagoblin.mo | Bin 0 -> 5629 bytes .../i18n/ro/LC_MESSAGES/mediagoblin.po | 314 ++++++++++++++++++ .../i18n/sl/LC_MESSAGES/mediagoblin.mo | Bin 0 -> 5487 bytes .../i18n/sl/LC_MESSAGES/mediagoblin.po | 309 +++++++++++++++++ 14 files changed, 1399 insertions(+), 115 deletions(-) create mode 100644 mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo create mode 100644 mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po create mode 100644 mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mo create mode 100644 mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po create mode 100644 mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo create mode 100644 mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po create mode 100644 mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mo create mode 100644 mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo index d5024687f631db02c1be382230123cf93e96fc0b..6bb69ce9bd9b38a4afc601b10d53fa76ef313738 100644 GIT binary patch delta 2265 zcmZ{l-)~e!6vsyh0_FD)qbT6nq(!LRQYng7B(xN&&^G>n5EG-!?#{hC?7efz%-lBi zWqt6)@Sw>)5lKu8Z-&H3LZabqO-xMGHxk2>`s9=N2N?aHxp#MqV$<%Yvv=mqIp6c+ z{xJH{*q58vv>z8joZlkE5ikK?20sHA!F%8+IJ#AcA@BmY5xfNM1}}qqz&5x8yaql2 zeo?N!1)s$FE?5Eo1YuI_+9t$0u(D0G1^yS$;NxTP7> z*$Mm%%}eL2=dCm@kv_9ibXJ;EGnuV7rEPdR{=o8NC(xoK|!?l{&$JR+gs9j1exvpCu>xuv~DwGZ;-}y{SyN$&ZU!tsGY8 za=YTSR|z%QIqa<|tF(8tq-?BeeD#dZVk@sSwd!2hN~ac8u3YK1Rk3#7YMe0@@#bI! zAL`ADc(pVd9BB2!?R>TM@bJjN+$n2hst&nTs!>ha8a#krr_;{bZAaUAN{#+e_@`-Z z@dB}?axSYS&~POu+46cR_%T+5$gxCO5-ZbCG~KYuIYrpZs-<*M)oM0dh6B{S9Ysc& zsiC2fg9utjx-PxW%zL>_4mojgQ5h2?g|x08d90e<+tyQV8bR}!UdnP4yO5J*6%)i6 zqn0$L(3VB%T;0BBTAEZP$m{XL@#TEk`{X_@C23ob z+*7Lkln4olLqe*Z;T@Bk=DRn#ccSpLBX>-$3(9x?TED+tMT1;cEzb^%)yfr>x*(HM zg$EwGYEkT=m7DHkcI}*LO6+@AY{I1(*J4Dd8Oe5#k%HsZ?BCwXhSo~1mmm}HQMEUD1Ee7=tMi% zvYeyi3GL423fW^7q0V^opv4d_mlw%ADgvNN%Wy{|I*s&jwm(e^@- zyr5d)1IF|9KiAC+TyO5?zT>CnfeMnthu#j5?YWgcql6SBX)}&+t=>o?Aw|d4+>$2 z4h3D}d8r5@i;f9OmktJ2w+`JZx)c;dm%0RX>ia^6$9#Uj;mz;&d+%2N+rFii*!)%@ z#KdMH_Te-R;e9-g@7D93twJ=CpT#6jVmp>_3(jB)Z{iNTi)mb0&);Ad`DbJa(I!OP z(kA9@EF50fuoq`>5l>+!Rg37OgU>L7uQ7oi*8PIp$$y|7C{A}mkwv>NhdsC-t9Tym z{+H=_A-V}Z^1(Lvi<>Y-l}U84AAS6PG8`aZL3fxPDc{q3>p^8SbZb*? zKGK!t3oWq*^QZB*DYbT+ruY%_sx@z><1&^%X`HqL%d7E64W=VqFxQ(pOf@}dR+|=` zwHvyuf*D;=T83AYcd@DhZFJ&&Y9kS2o{j>yV(w%*&4WzJ%qGL6@WVcyzazmW2CNC*f h7DX?Ll$=swwDvgi>`1oAMpf7I^GC~p3PZI^`~x9tmi7Pu diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po index 14ef5b83..30c55e21 100644 --- a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po @@ -2,15 +2,17 @@ # Copyright (C) 2011 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # +# Rafael Maguiña , 2011. # , 2011. # , 2011. +# Jan-Christoph Borchardt , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" "POT-Creation-Date: 2011-08-08 22:53-0500\n" -"PO-Revision-Date: 2011-08-09 19:03+0000\n" -"Last-Translator: elrond \n" +"PO-Revision-Date: 2011-08-10 23:20+0000\n" +"Last-Translator: JanCBorchardt \n" "Language-Team: German (http://www.transifex.net/projects/p/mediagoblin/team/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -37,32 +39,32 @@ msgstr "Passwort wiederholen" #: mediagoblin/auth/forms.py:39 msgid "Email address" -msgstr "E-Mail-Adresse" +msgstr "Email-Adresse" #: mediagoblin/auth/views.py:40 msgid "Sorry, registration is disabled on this instance." -msgstr "" +msgstr "Registrierung ist auf dieser Instanz leider deaktiviert." #: mediagoblin/auth/views.py:55 msgid "Sorry, a user with that name already exists." -msgstr "" +msgstr "Leider gibt es bereits einen Benutzer mit diesem Namen." #: mediagoblin/auth/views.py:152 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "" -"Ihre E-Mail-Adresse wurde bestätigt. Sie können sich jetzt anmelden, Ihr " +"Deine Email-Adresse wurde bestätigt. Du kannst dich nun anmelden, dein " "Profil bearbeiten und Bilder hochladen!" #: mediagoblin/auth/views.py:158 msgid "The verification key or user id is incorrect" -msgstr "" +msgstr "Der Bestätigungssschlüssel oder die Nutzernummer ist falsch." #: mediagoblin/auth/views.py:179 #: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 msgid "Resent your verification email." -msgstr "" +msgstr "Bestätigungs-Email noch Mal senden." #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26 msgid "Title" @@ -70,19 +72,19 @@ msgstr "Titel" #: mediagoblin/edit/forms.py:29 msgid "Slug" -msgstr "" +msgstr "Kurztitel" #: mediagoblin/edit/forms.py:30 msgid "The slug can't be empty" -msgstr "" +msgstr "Bitte gib einen Kurztitel ein" #: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 msgid "Tags" -msgstr "" +msgstr "Markierungen" #: mediagoblin/edit/forms.py:38 msgid "Bio" -msgstr "" +msgstr "Biographie" #: mediagoblin/edit/forms.py:41 msgid "Website" @@ -90,19 +92,19 @@ msgstr "Webseite" #: mediagoblin/edit/forms.py:43 msgid "Improperly formed URL" -msgstr "" +msgstr "Adresse fehlerhaft" #: mediagoblin/edit/views.py:54 msgid "An entry with that slug already exists for this user." -msgstr "" +msgstr "Diesen Kurztitel hast du bereits vergeben." #: mediagoblin/edit/views.py:75 msgid "You are editing another user's media. Proceed with caution." -msgstr "" +msgstr "Du bearbeitest die Medien eines Anderen. Bitte sei vorsichtig." #: mediagoblin/edit/views.py:96 msgid "You are editing a user's profile. Proceed with caution." -msgstr "" +msgstr "Du bearbeitest das Profil eines Anderen. Bitte sei vorsichtig." #: mediagoblin/submit/forms.py:29 msgid "File" @@ -110,15 +112,15 @@ msgstr "Datei" #: mediagoblin/submit/views.py:45 msgid "You must provide a file." -msgstr "" +msgstr "Du musst eine Datei angeben." #: mediagoblin/submit/views.py:48 msgid "The file doesn't seem to be an image!" -msgstr "" +msgstr "Diese Datei scheint kein Bild zu sein!" #: mediagoblin/submit/views.py:96 msgid "Woohoo! Submitted!" -msgstr "" +msgstr "Yeeeaaah! Geschafft!" #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" @@ -126,7 +128,7 @@ msgstr "GNU MediaGoblin" #: mediagoblin/templates/mediagoblin/base.html:45 msgid "Mediagoblin logo" -msgstr "Mediagoblin Logo" +msgstr "Mediagoblin-Logo" #: mediagoblin/templates/mediagoblin/base.html:51 msgid "Submit media" @@ -134,7 +136,7 @@ msgstr "Medien hochladen" #: mediagoblin/templates/mediagoblin/base.html:62 msgid "verify your email!" -msgstr "Bitte bestätigen Sie Ihre E-Mail-Adresse!" +msgstr "Bitte bestätige deine Email-Adresse!" #: mediagoblin/templates/mediagoblin/base.html:72 msgid "Login" @@ -145,6 +147,8 @@ msgid "" "Powered by MediaGoblin, a GNU project" msgstr "" +"Läüft mit MediaGoblin, einem GNU-Projekt" #: mediagoblin/templates/mediagoblin/root.html:21 msgid "Welcome to GNU MediaGoblin!" @@ -158,6 +162,8 @@ msgstr "Eintrag hochladen" #, python-format msgid "If you have an account, you can Login." msgstr "" +"Falls du ein Konto hast, kannst du dich anmelden." #: mediagoblin/templates/mediagoblin/root.html:37 #, python-format @@ -165,6 +171,8 @@ msgid "" "If you don't have an account, please Register." msgstr "" +"Wenn du noch kein Konto hast, registriere " +"dich." #: mediagoblin/templates/mediagoblin/auth/login.html:26 msgid "Log in" @@ -179,19 +187,19 @@ msgstr "Anmeldung fehlgeschlagen!" #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 #: mediagoblin/templates/mediagoblin/submit/start.html:32 msgid "Submit" -msgstr "Speichern" +msgstr "Bestätigen" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" -msgstr "" +msgstr "Hast du noch kein Konto?" #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Create one here!" -msgstr "" +msgstr "Registriere dich!" #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" -msgstr "" +msgstr "Neues Konto registrieren!" #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format @@ -203,6 +211,11 @@ msgid "" "\n" "%(verification_url)s" msgstr "" +"Hi %(username)s,\n" +"\n" +"um dein Konto bei GNU MediaGoblin zu aktivieren, musst du folgende Adresse in einem Webbrowser öffnen:\n" +"\n" +"%(verification_url)s" #: mediagoblin/templates/mediagoblin/edit/edit.html:29 #, python-format @@ -220,17 +233,17 @@ msgstr "Änderungen speichern" #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" -msgstr "" +msgstr "%(username)s’s Profil barbeiten" #: mediagoblin/templates/mediagoblin/listings/tag.html:29 msgid "Media tagged with:" -msgstr "" +msgstr "Medien markiert mit:" #: mediagoblin/templates/mediagoblin/listings/tag.html:40 #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46 #: mediagoblin/templates/mediagoblin/user_pages/user.html:101 msgid "atom feed" -msgstr "" +msgstr "Atom-Feed" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" @@ -239,40 +252,44 @@ msgstr "Medien hochladen" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" -msgstr "" +msgstr "%(username)s’s Medien" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51 #: mediagoblin/templates/mediagoblin/user_pages/user.html:30 msgid "Sorry, no such user found." -msgstr "" +msgstr "Dieser Benutzer wurde leider nicht gefunden." #: mediagoblin/templates/mediagoblin/user_pages/user.html:37 #: mediagoblin/templates/mediagoblin/user_pages/user.html:57 msgid "Verification needed" -msgstr "" +msgstr "Überprüfung notwendig" #: mediagoblin/templates/mediagoblin/user_pages/user.html:40 msgid "Almost done! Your account still needs to be verified." -msgstr "" +msgstr "Fast geschafft! Dein Konto muss nur noch bestätigt werden." #: mediagoblin/templates/mediagoblin/user_pages/user.html:45 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "" +"Gleich solltest du eine Email bekommen, die dir sagt was du noch machen " +"musst." #: mediagoblin/templates/mediagoblin/user_pages/user.html:49 msgid "In case it doesn't:" -msgstr "" +msgstr "Wenn sie nicht ankommt:" #: mediagoblin/templates/mediagoblin/user_pages/user.html:52 msgid "Resend verification email" -msgstr "" +msgstr "Bestätigung noch Mal senden" #: mediagoblin/templates/mediagoblin/user_pages/user.html:60 msgid "" "Someone has registered an account with this username, but it still has to be" " verified." msgstr "" +"Jemand hat schon ein Konto mit diesem Nutzernamen registriert, aber es muss " +"noch bestätigt werden." #: mediagoblin/templates/mediagoblin/user_pages/user.html:66 #, python-format @@ -280,11 +297,13 @@ msgid "" "If you are that person but you've lost your verification email, you can log in and resend it." msgstr "" +"Wenn dir dieses Konto gehört und die Bestätigungsmail weg ist, kannst du " +"dich anmelden und sie erneut senden." #: mediagoblin/templates/mediagoblin/user_pages/user.html:76 #, python-format msgid "%(username)s's profile" -msgstr "" +msgstr "%(username)s’s Profil" #: mediagoblin/templates/mediagoblin/user_pages/user.html:84 msgid "Edit profile" @@ -293,6 +312,6 @@ msgstr "Profil bearbeiten" #: mediagoblin/templates/mediagoblin/user_pages/user.html:95 #, python-format msgid "View all of %(username)s's media" -msgstr "" +msgstr "Alle Medien von %(username)s anschauen" diff --git a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo index 043265a330a162bc23df295f3220a69d93155b07..dfd3a1bcc4775ce5f49a4adbf1ba9c481103fe50 100644 GIT binary patch delta 2081 zcmaKs&ug4T7{|wk#HvlwO=4_HrL$J^12>!a16x8hhPnppHU!%UB2s4Oo$L_USO-r(O~@(m8t4`L3iSKRley$CPVPMzIDL5V<;A5} z7Wbx)R3DpO7j{!B8VUNsY~qB~tS#o;j3eiaj)j(y@$a&ahv!oA0i(jj-J6s%CuvLY zmMPPV3FV2M5v~jd;+Src= zZZuWQQK?;Q6V9d4!qF{e8Er8>Ags!!M%Gfq$C*gaGAFvX7&&JJLnu}xQvPRwZ71Db za{I?MlV|7p{FmHcvy$FhS&{Izl^FZcvjO+!gdSJyTwlrv`3d<1+ zoc&UoJyt1}w-SLHSRr&rGOJ8>e{^b*agJ4cc7eT7^}+Qct|cCtMJAlPP5gUis4J&dd!% zMJy37W=kaK*35NNrfGtUdp4nUc&pDh4z+4PLT;qyGLkl{m9~fSi)X)Dcc z-eP1$1=(RkNYj+K81(M*k`L>9!(Xc1u)@0_aS5~16r#r_Vx8{pe|CwflDa|T=vcOm zLp9JG2yg-sis1XPuc8gFAP13MA6rNd>=LS%AM6)eH4?7H8dAaO$QZW`Sr#ox&z2TDV>+#_;`A!%Lp0_yl zeT*UK?mIEmeSe%C9CbANWBhEoQ8bL7Z|J_5=}_UK!}|(arR&y&eh7uxLg%w29PKda z9u?)^$D25GVX#Lp+8A>6Ch7~9otl_VF<#-!{~s>imd;P=p01d=bfsl5GV)SL-9#rc qTgh)0CQUxMD)cH$;afeQyzTDICZ@P6lTCs7u`&>wc6MvxxxWE@Cv#N* delta 667 zcmXZXPe>GD9LDkAx^BB`+q&bdmL@feuGF^q2g#x!kPcCz2x)mLN8NDK-C<{Ti=bGD zE}ef+L`4uCx)|9;myRZMkRUvD>*OH_szaS5zb^^zyr1_Sc%S!qH}acD-z1vq9U?Nd zPh@B}`=i}(dcusbOd#!DE(E11GrY{LpNP`HfMOR;lw5 z%5)bG;B9<}6PV(balD2mXa#Lt$36HJBlr!?#an0!g{=Pt)3}#?7Ta+Mm+?Gy;ybG@ zGRWdHKPV;tuo;u2Tt*x7cw^T`IK=)VngV~&oZCk8;sovJAf0G(a@dOlXdWn?0*KsSgwH3`p%F$7OezADdYdnq2g!EbJx{gOPnzs(> zooKIf&MQ}aHz=&Fx-#ho!7a~U2%J(as5&LLI=`qdtcvDhT{_x!R=wB*?Y57r9beK7 tJF73_W7dRMn)3_JLcy61YOY`O^lyAb->1(s^^4wX@6%r`MLpJ$*#Ul;X@LL$ diff --git a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po index d2744d86..0a12586c 100644 --- a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" "POT-Creation-Date: 2011-08-08 22:53-0500\n" -"PO-Revision-Date: 2011-08-10 03:38+0000\n" +"PO-Revision-Date: 2011-08-10 20:30+0000\n" "Last-Translator: nvjacobo \n" "Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mediagoblin/team/es/)\n" "MIME-Version: 1.0\n" @@ -28,33 +28,36 @@ msgstr "Contraseña" #: mediagoblin/auth/forms.py:34 msgid "Passwords must match." -msgstr "" +msgstr "Las contraseñas deben coincidir." #: mediagoblin/auth/forms.py:36 msgid "Confirm password" -msgstr "" +msgstr "Confirme su contraseña" #: mediagoblin/auth/forms.py:39 msgid "Email address" -msgstr "" +msgstr "Dirección de correo electrónico" #: mediagoblin/auth/views.py:40 msgid "Sorry, registration is disabled on this instance." -msgstr "" +msgstr "Lo sentimos, el registro está deshabilitado en este momento." #: mediagoblin/auth/views.py:55 msgid "Sorry, a user with that name already exists." -msgstr "" +msgstr "Lo sentimos, un usuario con ese nombre ya existe." #: mediagoblin/auth/views.py:152 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "" +"Su dirección de correo electrónico ha sido verificada. Ahora puede ingresar," +" editar su perfil, y enviar las imágenes!" #: mediagoblin/auth/views.py:158 msgid "The verification key or user id is incorrect" msgstr "" +"La clave de la verificación o la identificación del usuario es incorrecta" #: mediagoblin/auth/views.py:179 #: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 @@ -63,19 +66,19 @@ msgstr "Reenvíe su correo electrónico de verificación" #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26 msgid "Title" -msgstr "" +msgstr "Título" #: mediagoblin/edit/forms.py:29 msgid "Slug" -msgstr "" +msgstr "Ficha" #: mediagoblin/edit/forms.py:30 msgid "The slug can't be empty" -msgstr "" +msgstr "La ficha no puede estar vacia" #: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 msgid "Tags" -msgstr "" +msgstr "Etiquetas" #: mediagoblin/edit/forms.py:38 msgid "Bio" @@ -95,11 +98,12 @@ msgstr "Una entrada con esa ficha ya existe para este usuario." #: mediagoblin/edit/views.py:75 msgid "You are editing another user's media. Proceed with caution." -msgstr "." +msgstr "" +"Usted está editando el contenido de otro usuario. Proceder con precaución." #: mediagoblin/edit/views.py:96 msgid "You are editing a user's profile. Proceed with caution." -msgstr "." +msgstr "Usted está editando un perfil de usuario. Proceder con precaucións." #: mediagoblin/submit/forms.py:29 msgid "File" @@ -123,11 +127,11 @@ msgstr "GNU MediaGoblin" #: mediagoblin/templates/mediagoblin/base.html:45 msgid "Mediagoblin logo" -msgstr "" +msgstr "Mediagoblin logo" #: mediagoblin/templates/mediagoblin/base.html:51 msgid "Submit media" -msgstr "" +msgstr "Enviar contenido" #: mediagoblin/templates/mediagoblin/base.html:62 msgid "verify your email!" @@ -135,7 +139,7 @@ msgstr "Verifique su correo electrónico" #: mediagoblin/templates/mediagoblin/base.html:72 msgid "Login" -msgstr "" +msgstr "Conectarse" #: mediagoblin/templates/mediagoblin/base.html:88 msgid "" @@ -151,7 +155,7 @@ msgstr "¡Bienvenido a GNU MediaGoblin!" #: mediagoblin/templates/mediagoblin/root.html:26 msgid "Submit an item" -msgstr "" +msgstr "Enviar un item" #: mediagoblin/templates/mediagoblin/root.html:31 #, python-format @@ -166,10 +170,12 @@ msgid "" "If you don't have an account, please Register." msgstr "" +"Si no tienes una cuenta, por favor, Regístrese ." #: mediagoblin/templates/mediagoblin/auth/login.html:26 msgid "Log in" -msgstr "" +msgstr "Conectarse" #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Login failed!" @@ -180,11 +186,11 @@ msgstr "El inicio de sesión fallo" #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 #: mediagoblin/templates/mediagoblin/submit/start.html:32 msgid "Submit" -msgstr "" +msgstr "Enviar" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" -msgstr "" +msgstr "¿No tienes una cuenta?" #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Create one here!" @@ -192,7 +198,7 @@ msgstr "Crea una aquí" #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" -msgstr "" +msgstr "Crea una cuenta!" #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format @@ -204,11 +210,13 @@ msgid "" "\n" "%(verification_url)s" msgstr "" +"Hola %(username)s , para activar su cuenta MediaGoblin GNU, abra ls " +"siguiente URL en su navegador: %(verification_url)s " #: mediagoblin/templates/mediagoblin/edit/edit.html:29 #, python-format msgid "Editing %(media_title)s" -msgstr "" +msgstr "Edición %(media_title)s " #: mediagoblin/templates/mediagoblin/edit/edit.html:36 msgid "Cancel" @@ -221,26 +229,26 @@ msgstr "Salvar cambios" #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" -msgstr "" +msgstr "Edición %(username)s de perfil" #: mediagoblin/templates/mediagoblin/listings/tag.html:29 msgid "Media tagged with:" -msgstr "" +msgstr "El contenido con la etiqueta:" #: mediagoblin/templates/mediagoblin/listings/tag.html:40 #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46 #: mediagoblin/templates/mediagoblin/user_pages/user.html:101 msgid "atom feed" -msgstr "" +msgstr "feed Atom" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" -msgstr "" +msgstr "Envíe su contenido" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" -msgstr "" +msgstr "Contenido de %(username)s's" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51 #: mediagoblin/templates/mediagoblin/user_pages/user.html:30 @@ -250,30 +258,33 @@ msgstr "Lo sentimos, no se ha encontrado el usuario." #: mediagoblin/templates/mediagoblin/user_pages/user.html:37 #: mediagoblin/templates/mediagoblin/user_pages/user.html:57 msgid "Verification needed" -msgstr "" +msgstr "Verificación necesaria" #: mediagoblin/templates/mediagoblin/user_pages/user.html:40 msgid "Almost done! Your account still needs to be verified." -msgstr "" +msgstr "Ya está casi hecho! Su cuenta tiene que ser verificada." #: mediagoblin/templates/mediagoblin/user_pages/user.html:45 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "" +"Un e-mail debe llegar en unos momentos con las instrucciones para hacerlo." #: mediagoblin/templates/mediagoblin/user_pages/user.html:49 msgid "In case it doesn't:" -msgstr "" +msgstr "En caso de que no:" #: mediagoblin/templates/mediagoblin/user_pages/user.html:52 msgid "Resend verification email" -msgstr "" +msgstr "Reenviar correo electrónico de verificación" #: mediagoblin/templates/mediagoblin/user_pages/user.html:60 msgid "" "Someone has registered an account with this username, but it still has to be" " verified." msgstr "" +"Alguien ha registrado una cuenta con este nombre de usuario, pero todavía " +"tiene que ser verificado." #: mediagoblin/templates/mediagoblin/user_pages/user.html:66 #, python-format @@ -281,19 +292,21 @@ msgid "" "If you are that person but you've lost your verification email, you can log in and resend it." msgstr "" +"Si usted es esa persona, pero usted ha perdido su correo electrónico de " +"verificación, usted puede reenviarlo acceder." #: mediagoblin/templates/mediagoblin/user_pages/user.html:76 #, python-format msgid "%(username)s's profile" -msgstr "" +msgstr "Perfil de %(username)s's" #: mediagoblin/templates/mediagoblin/user_pages/user.html:84 msgid "Edit profile" -msgstr "" +msgstr "Editar perfil" #: mediagoblin/templates/mediagoblin/user_pages/user.html:95 #, python-format msgid "View all of %(username)s's media" -msgstr "" +msgstr "Ver todo el contenido de %(username)s's " diff --git a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo new file mode 100644 index 0000000000000000000000000000000000000000..a7daf2c91cd50bd2dea5da7b64a63ece9b1ac78f GIT binary patch literal 5406 zcmeH~TZ|i58GsKEXlu$X<=RksHqvT0itW9S(BLFXvgsxy+D(`2CQ&JBHTE3alZ@w> zIcL0a6nLiafIw8LDv&BJ68k`S;;j-wEAhfZc>uu^2m}%cP=%DDJ^|l9W3L@25RiC4 zRad+F`OM7u=f9udzuLR!ImOR${yxm#o;S;C^z-MpDD{4pe}Qvw&mN@?!$a^KyfRq- z0P=|X6MP$d1-={p4eo{ay|q|B3?F8F5IzV`!w_z`#&z5{*{vQ<3~-vz$`KL@`D z`|uzyIS;=Bm*Fk=KKR&uN<9SEpy&}mwx~7~xd{|~Za~rR%kX~qB9#5xunm6*KLlsF z`6yh5qHi6FUKU=09+u%xpxE^qT!0TfP`rNyzLWJTl>JXZd2btvoIad}pNHayZ$pvy z5){4v2ob4XfnwKdP{RjH_!L&)K6n_4U7v!F!4MvWUxy!rzl2Z2zd}T)^|u$#e;R)O zO-gm3#Q71NBym0jCC(u{2VWShe-94v6FAex(D0=)9ia&k} z<+)d(`0)X5%Kp9ZDx8H9=dZyL5Z`566e!UF}-&Y{N>IMF3coT}BUxuRBFCe1Tt5D*6 zKQEOypMc`u8&Lf992C87L5aiPp_-n}oJo_QV-C0(r@N_bMzK-H0^Lqc^Z5Sa{xew` zA8`AZ#-Bbm7c8-(W5OsFzLbDXtw5T_;x``TQK9Fm$g)xI4$Eml|6a%9!1AZeIbow7+YN;|q6 zIJaffP@Q6!j!4uC5+T6{uZhdg*m@i#>XQ*dN1Mx~5PK6>SG1Ius8Mi2IUd#95rF z&L+Acs*nt!H4bfSicMH082;Bys=$O(Di5vpL94}nN&8xHsg*|?Z?>#jA7<$A14WqO z-~}WZST9axw$;~3Q<*?w)QWLWs(?CrtWq_G1${eGI@4x|B~bp zCSEZOFAu8=MKtb=YjNjahP|pbq+lBDAZZz=HYiiIL8a$q6*!_?L<$?miYo5`yQM1) ztDNTRq=2_L&+NLVoQ@AMxz?sDl|*;3eYr> zFmgeixJf(8Rg)ei?Svg!y%YHX#E!_D&TyH>VYuj{S#e=AXgReh^++-d(?vUDIs?N* zOebj3c;uDHXP8vZS%H1v)lMDo4Ug^b=kxXVknAE^qVPl+1j?XQ@Zepmpp%R&^72} zd1EXhG&+E)dOfub4vivcjUbb*Q@wLvVrgK7eM6o8-QK)VNa9`;k^s4*bD`q zTDrrjw8z4k99D9wQDS|aaPCltQBu~TebL+yDM2IE=ua+>eGw`*r2=m|9A|hl7uGL! zc14CuA-^DU-uHlV1h?1kyY*J_Z@ys_XM@G+y;!TrQR;Y=P^RK3l)FWRy zV-iD^8@%1G>E)nqVm)8|c=cnYH|8aVwj_(q^}7vBJKN^E&N%Tb&4@0w!pC%YF=|9p z>ii6?|9YioGilb@73LFWvEh!1sp*MC?`%tn{qM)7Wt+&m%eOT(hNo^Zx-ve|RC?Ak z*c8TS`o%OYMueioA<1JRgYPI3 zW$k8|%k%q`(9TU?9!&<*v%@2LI85cwariZ4e!pJKLqqWr@NvO~OkBt1-C<*THgBmz zc@%O&4>Re1J6h!%uhF$6Jrjoh@lUkxtjM&jz|xa fWJd42IN8eHn9)WvT2U*MMo~qBiI4$1FDLa+wTxLT literal 0 HcmV?d00001 diff --git a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po new file mode 100644 index 00000000..4606bf47 --- /dev/null +++ b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po @@ -0,0 +1,305 @@ +# Translations template for PROJECT. +# Copyright (C) 2011 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# +# , 2011. +msgid "" +msgstr "" +"Project-Id-Version: GNU MediaGoblin\n" +"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" +"POT-Creation-Date: 2011-08-08 22:53-0500\n" +"PO-Revision-Date: 2011-08-10 21:24+0000\n" +"Last-Translator: MarkTraceur \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 0.9.6\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1)\n" + +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46 +msgid "Username" +msgstr "" + +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50 +msgid "Password" +msgstr "" + +#: mediagoblin/auth/forms.py:34 +msgid "Passwords must match." +msgstr "" + +#: mediagoblin/auth/forms.py:36 +msgid "Confirm password" +msgstr "" + +#: mediagoblin/auth/forms.py:39 +msgid "Email address" +msgstr "" + +#: mediagoblin/auth/views.py:40 +msgid "Sorry, registration is disabled on this instance." +msgstr "" + +#: mediagoblin/auth/views.py:55 +msgid "Sorry, a user with that name already exists." +msgstr "" + +#: mediagoblin/auth/views.py:152 +msgid "" +"Your email address has been verified. You may now login, edit your profile, " +"and submit images!" +msgstr "" + +#: mediagoblin/auth/views.py:158 +msgid "The verification key or user id is incorrect" +msgstr "" + +#: mediagoblin/auth/views.py:179 +#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +msgid "Resent your verification email." +msgstr "Nous avons renvoyé votre e-mail de vérification." + +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26 +msgid "Title" +msgstr "" + +#: mediagoblin/edit/forms.py:29 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:30 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +msgid "Tags" +msgstr "" + +#: mediagoblin/edit/forms.py:38 +msgid "Bio" +msgstr "" + +#: mediagoblin/edit/forms.py:41 +msgid "Website" +msgstr "" + +#: mediagoblin/edit/forms.py:43 +msgid "Improperly formed URL" +msgstr "" + +#: mediagoblin/edit/views.py:54 +msgid "An entry with that slug already exists for this user." +msgstr "" + +#: mediagoblin/edit/views.py:75 +msgid "You are editing another user's media. Proceed with caution." +msgstr "" + +#: mediagoblin/edit/views.py:96 +msgid "You are editing a user's profile. Proceed with caution." +msgstr "" + +#: mediagoblin/submit/forms.py:29 +msgid "File" +msgstr "" + +#: mediagoblin/submit/views.py:45 +msgid "You must provide a file." +msgstr "" + +#: mediagoblin/submit/views.py:48 +msgid "The file doesn't seem to be an image!" +msgstr "" + +#: mediagoblin/submit/views.py:96 +msgid "Woohoo! Submitted!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:22 +msgid "GNU MediaGoblin" +msgstr "GNU MediaGoblin" + +#: mediagoblin/templates/mediagoblin/base.html:45 +msgid "Mediagoblin logo" +msgstr "logo de MediaGoblin" + +#: mediagoblin/templates/mediagoblin/base.html:51 +msgid "Submit media" +msgstr "Soumettez des médias" + +#: mediagoblin/templates/mediagoblin/base.html:62 +msgid "verify your email!" +msgstr "vérifiez votre addresse e-mail" + +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "Login" +msgstr "Connexion" + +#: mediagoblin/templates/mediagoblin/base.html:88 +msgid "" +"Powered by MediaGoblin, a GNU project" +msgstr "" +"Alimenté par MediaGoblin, un projet GNU" + +#: mediagoblin/templates/mediagoblin/root.html:21 +msgid "Welcome to GNU MediaGoblin!" +msgstr "Bienvenue à GNU MediaGoblin!" + +#: mediagoblin/templates/mediagoblin/root.html:26 +msgid "Submit an item" +msgstr "Soumettez un fichier" + +#: mediagoblin/templates/mediagoblin/root.html:31 +#, python-format +msgid "If you have an account, you can Login." +msgstr "" +"Si vous avez un compte, vous pouvez Connecter." + +#: mediagoblin/templates/mediagoblin/root.html:37 +#, python-format +msgid "" +"If you don't have an account, please Register." +msgstr "" +"Si vous n'avez pas un compte, s'il vous plaît, vous inscrivez." + +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +msgid "Log in" +msgstr "Connexion" + +#: mediagoblin/templates/mediagoblin/auth/login.html:29 +msgid "Login failed!" +msgstr "Connexion manqué" + +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 +#: mediagoblin/templates/mediagoblin/submit/start.html:32 +msgid "Submit" +msgstr "Soumettez" + +#: mediagoblin/templates/mediagoblin/auth/login.html:42 +msgid "Don't have an account yet?" +msgstr "N'avez-vous toujours un compte?" + +#: mediagoblin/templates/mediagoblin/auth/login.html:45 +msgid "Create one here!" +msgstr "En créez un ici!" + +#: mediagoblin/templates/mediagoblin/auth/register.html:27 +msgid "Create an account!" +msgstr "Créez un compte!" + +#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to activate your GNU MediaGoblin account, open the following URL in\n" +"your web browser:\n" +"\n" +"%(verification_url)s" +msgstr "" +"Bonjour, %(username)s,\n" +"\n" +"pour activer votre compte de GNU MediaGoblin, ouvrez l'URL suite avec votre navigateur web:\n" +"\n" +"%(verification_url)s" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:29 +#, python-format +msgid "Editing %(media_title)s" +msgstr "On édit %(media_title)s" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:36 +msgid "Cancel" +msgstr "Annulez" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:37 +msgid "Save changes" +msgstr "Enregistrez les modifications" + +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 +#, python-format +msgid "Editing %(username)s's profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:29 +msgid "Media tagged with:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:40 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +msgid "atom feed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:26 +msgid "Submit yer media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:30 +msgid "Sorry, no such user found." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:37 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:57 +msgid "Verification needed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:40 +msgid "Almost done! Your account still needs to be verified." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:45 +msgid "" +"An email should arrive in a few moments with instructions on how to do so." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:49 +msgid "In case it doesn't:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:52 +msgid "Resend verification email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:60 +msgid "" +"Someone has registered an account with this username, but it still has to be" +" verified." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:66 +#, python-format +msgid "" +"If you are that person but you've lost your verification email, you can log in and resend it." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:76 +#, python-format +msgid "%(username)s's profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:84 +msgid "Edit profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:95 +#, python-format +msgid "View all of %(username)s's media" +msgstr "" + + diff --git a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mo new file mode 100644 index 0000000000000000000000000000000000000000..8911785ff9b8003d2146b82adccd80693b97cafc GIT binary patch literal 5217 zcmb7{OKc=Z8Gs8|2uu-+c*cl0ObAE_-)8i^$PqH{2}}%`~@7t$2jB~ zd<`zcf56Yer|wYdKDZ7=4g*=DdQkRFp~&+MDDr(5ejNS?%KD$e9{er*Je=X>m*6rK zdD~Fr%HTFE;4J(d6usVq3-G>Al;^L)PcmMEvi_@3&h0_jXADomm!a6hU;)`e zy#gg}UWel6pTQjd8Wu3%;RX0(D0=-FBC2{ABZ}TLP|jPaxDM}Oyba~t9^_Yz_z-)2 z3yPlKfjjVZDD&^(L*nldD0W|lBHtBw6K=x=_;V=v@HW)&pHTdGKgJh19;*1|iUAaP zpM*`g45#7Oq1g9(Q0({?#5L*oL^9%3+h{)9*CoHjlfp4V&shs_nqU ziFUngl!V&kdAw_NoNA-Hc25toflUji_u`_*Q&;4pP7!CR(^;x}*`90|X4+-tR%wxs z%eh6*aB?z=v`KPn!m+k5#g3i2S+0v-?6hdzRLgOuE}FDs6Lm35yKz3yL*v|DmWS#h z3k$0a!j!5^)sIk8_iS#b)Jm2Q{qY8V&$=9EF4M*8H8H`j|rTqGFW zPb#0^)(flNI3^5p>zukIj=6m8rd}75U(VV|oT@7^n;tBlZ8Wfn!AiR#{8&73WJ#^g ztj>lu#Tpi?BuTa>g512ZhM^mN-JWghcAo8FsaB(La;EfK$A|~YfKXSvas+;}?1RaN zHg~wDJu2k+qnIU;u<+YWE-&3a>lb&h+(ft~Srk{>PcJb*9EmjS8*0p8L0mNJlL@%v z4w%)$#2RPyW+v) zFocx>4X2cMtu9Oyv0lQyRX&Qmx3OlFsf{{9>wieX5mp|UqSI@t zjckwD40U^apnk6?hON0dAAIFj%`A_mmnI@fl$a&&_FYk}iPDkGots{gI6}o8+bLwS zx>0)LxL?aR@9Xxa+LVOp^h_FAr#4AbwMnM?v@#Aam!3k0iKOy1U_W)GV9okC!?0zE z>9O=^f!WORd@Nc?hD?+OS$?E6AXPazrJ#&Dy>dyH8b+b2UX_yNJ_9sGB#fPD<2NZs zUNosuQchSgY7gR~g6I(!c2Ez!AL_vv$;t;?CUR;^@{wSu!$mu52bE&7&A>zy9+~Cq z8`(nwP*v?vEajzF^x>ZO4>h zLjljahw99J;lE|u4%O5xn{@D@2zsR6OsQL0*2}UfUD~9OIDfvX8dNf07)uWwTtH2| zk!Kw)jnZiyGm@&)Jiac?C}5?2wM-wh)+Y)rEfH$e+X@nZ}$$8(Gu5we#6xo353~Tz$#^nls@l7ezl!OYd zh5`0>DA_t{z{U+b%<>{wcTpS$%cIBzTUkq2`PpXN>}DBG9X3;2%pr>G=q9s$E_QBY zU1Q_=R^ab7&IwkyAzFHIeqkY)Kf|wHTx^|wJeWT{KhMPAhTV-to+I-X=Jn!2Yw_{N z=J{!?8CL{bxk+7unt2O*(Ft(vpUc8HZDxbeB+o{2jWr36CFZBmhzJh0tQoX)n!b4L zx<0qI_G}VMm04HA2-JHYlgE0e$14lA~4w(Ylgfx}oFE zkUiE7Wy92HG}qlX-$cKJhLX>SUh(ys11xQ+s>>hKpHZr;w& zlgHH;XnkVY>WJBquWVK-SM7W8naTBs#9c$&TH2<%8I2P*DO($nxNC_VF@TQy$fg}1 zxo>g&Drs`cf36aV{4Y&r*T#vFUMKI{#0-aq1?vYrZNR*;%aLG{CI=clz(n3FN!-T< zEAmx=-hB5!^8dNZv1G=+dv4d~1Vo|RvHh~q*_5VJOjSEZO+J})kawHUh@9_4lbNPg zFwx;$JIJ9bJ-Ns8QQye7F#>azrvwszb^4dZVdA{982H!q7R2G?CWnsxVjREwWK!YKERsN z-caJy^1e;gmanc822`6nNGAP_FUq=`Go1WBrLNd`U>)58?NQRF!zl~Xu^#8Svc=, 2011. +msgid "" +msgstr "" +"Project-Id-Version: GNU MediaGoblin\n" +"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" +"POT-Creation-Date: 2011-08-08 22:53-0500\n" +"PO-Revision-Date: 2011-08-10 21:23+0000\n" +"Last-Translator: velmont \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 0.9.6\n" +"Language: nn_NO\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46 +msgid "Username" +msgstr "Brukarnamn" + +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50 +msgid "Password" +msgstr "Passord" + +#: mediagoblin/auth/forms.py:34 +msgid "Passwords must match." +msgstr "Passorda må vera like." + +#: mediagoblin/auth/forms.py:36 +msgid "Confirm password" +msgstr "Gjenta passord" + +#: mediagoblin/auth/forms.py:39 +msgid "Email address" +msgstr "E-postadresse" + +#: mediagoblin/auth/views.py:40 +msgid "Sorry, registration is disabled on this instance." +msgstr "Registrering er slege av. Orsak." + +#: mediagoblin/auth/views.py:55 +msgid "Sorry, a user with that name already exists." +msgstr "Ein konto med dette brukarnamnet finst allereide." + +#: mediagoblin/auth/views.py:152 +msgid "" +"Your email address has been verified. You may now login, edit your profile, " +"and submit images!" +msgstr "" +"E-postadressa di, og dimed kontoen din er stadfesta. Du kan no logga inn, " +"endra profilen din og lasta opp filer." + +#: mediagoblin/auth/views.py:158 +msgid "The verification key or user id is incorrect" +msgstr "Stadfestingsnykelen eller brukar-ID-en din er feil." + +#: mediagoblin/auth/views.py:179 +#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +msgid "Resent your verification email." +msgstr "Send ein ny stadfestingsepost." + +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26 +msgid "Title" +msgstr "Tittel" + +#: mediagoblin/edit/forms.py:29 +msgid "Slug" +msgstr "Adressetittel" + +#: mediagoblin/edit/forms.py:30 +msgid "The slug can't be empty" +msgstr "Adressetittelen kan ikkje vera tom" + +#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +msgid "Tags" +msgstr "Merkelappar" + +#: mediagoblin/edit/forms.py:38 +msgid "Bio" +msgstr "Presentasjon" + +#: mediagoblin/edit/forms.py:41 +msgid "Website" +msgstr "Heimeside" + +#: mediagoblin/edit/forms.py:43 +msgid "Improperly formed URL" +msgstr "Ugyldeg URL" + +#: mediagoblin/edit/views.py:54 +msgid "An entry with that slug already exists for this user." +msgstr "Eit innlegg med denne adressetittelen finst allereie." + +#: mediagoblin/edit/views.py:75 +msgid "You are editing another user's media. Proceed with caution." +msgstr "Ver forsiktig, du redigerer ein annan konto sitt innlegg." + +#: mediagoblin/edit/views.py:96 +msgid "You are editing a user's profile. Proceed with caution." +msgstr "Ver forsiktig, du redigerer ein annan konto sin profil." + +#: mediagoblin/submit/forms.py:29 +msgid "File" +msgstr "Fil" + +#: mediagoblin/submit/views.py:45 +msgid "You must provide a file." +msgstr "Du må velja ei fil." + +#: mediagoblin/submit/views.py:48 +msgid "The file doesn't seem to be an image!" +msgstr "Fila verkar ikkje å vera ei gyldig biletefil." + +#: mediagoblin/submit/views.py:96 +msgid "Woohoo! Submitted!" +msgstr "Johoo! Opplasta!" + +#: mediagoblin/templates/mediagoblin/base.html:22 +msgid "GNU MediaGoblin" +msgstr "GNU MediaGoblin" + +#: mediagoblin/templates/mediagoblin/base.html:45 +msgid "Mediagoblin logo" +msgstr "MediaGoblin-logo" + +#: mediagoblin/templates/mediagoblin/base.html:51 +msgid "Submit media" +msgstr "Last opp" + +#: mediagoblin/templates/mediagoblin/base.html:62 +msgid "verify your email!" +msgstr "Stadfest epostadressa di" + +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "Login" +msgstr "Logg inn" + +#: mediagoblin/templates/mediagoblin/base.html:88 +msgid "" +"Powered by MediaGoblin, a GNU project" +msgstr "" +"Driven av MediaGoblin, eit GNU-prosjekt" + +#: mediagoblin/templates/mediagoblin/root.html:21 +msgid "Welcome to GNU MediaGoblin!" +msgstr "Velkomen til GNU MediaGoblin!" + +#: mediagoblin/templates/mediagoblin/root.html:26 +msgid "Submit an item" +msgstr "Last opp" + +#: mediagoblin/templates/mediagoblin/root.html:31 +#, python-format +msgid "If you have an account, you can Login." +msgstr "Har du ein konto? Logg inn." + +#: mediagoblin/templates/mediagoblin/root.html:37 +#, python-format +msgid "" +"If you don't have an account, please Register." +msgstr "Har du ingen konto? Registrer deg." + +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +msgid "Log in" +msgstr "Logg inn" + +#: mediagoblin/templates/mediagoblin/auth/login.html:29 +msgid "Login failed!" +msgstr "Innlogging feila!" + +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 +#: mediagoblin/templates/mediagoblin/submit/start.html:32 +msgid "Submit" +msgstr "Send" + +#: mediagoblin/templates/mediagoblin/auth/login.html:42 +msgid "Don't have an account yet?" +msgstr "Har du ingen konto?" + +#: mediagoblin/templates/mediagoblin/auth/login.html:45 +msgid "Create one here!" +msgstr "Lag ein!" + +#: mediagoblin/templates/mediagoblin/auth/register.html:27 +msgid "Create an account!" +msgstr "Lag ein konto." + +#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to activate your GNU MediaGoblin account, open the following URL in\n" +"your web browser:\n" +"\n" +"%(verification_url)s" +msgstr "" +"Hei %(username)s,\n" +"\n" +"opna den følgjande adressa i netlesaren din for å aktivera kontoen din:\n" +"\n" +"%(verification_url)s" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:29 +#, python-format +msgid "Editing %(media_title)s" +msgstr "Redigerer %(media_title)s" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:36 +msgid "Cancel" +msgstr "Avbryt" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:37 +msgid "Save changes" +msgstr "Lagra" + +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 +#, python-format +msgid "Editing %(username)s's profile" +msgstr "Redigerar profilen til %(username)s" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:29 +msgid "Media tagged with:" +msgstr "Merkelappar:" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:40 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +msgid "atom feed" +msgstr "atom-feed" + +#: mediagoblin/templates/mediagoblin/submit/start.html:26 +msgid "Submit yer media" +msgstr "Last opp" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "%(username)s sin mediafiler" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:30 +msgid "Sorry, no such user found." +msgstr "Fann ingen slik brukar" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:37 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:57 +msgid "Verification needed" +msgstr "Treng stadfesting" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:40 +msgid "Almost done! Your account still needs to be verified." +msgstr "Nesten klart. Du treng berre stadfesta kontoen din." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:45 +msgid "" +"An email should arrive in a few moments with instructions on how to do so." +msgstr "Ein epost med instruksjonar kjem straks." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:49 +msgid "In case it doesn't:" +msgstr "I tilfelle det ikkje skjer:" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:52 +msgid "Resend verification email" +msgstr "Send ein ny epost" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:60 +msgid "" +"Someone has registered an account with this username, but it still has to be" +" verified." +msgstr "" +"Det finst allereie ein konto med det brukarnamnet, men den kontoen treng " +"stadfesting." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:66 +#, python-format +msgid "" +"If you are that person but you've lost your verification email, you can log in and resend it." +msgstr "" +"Viss dette er deg, kan du logga inn for å få " +"tilsendt ny epost med stadfestingslenkje." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:76 +#, python-format +msgid "%(username)s's profile" +msgstr "%(username)s sin profil" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:84 +msgid "Edit profile" +msgstr "Endra profil" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:95 +#, python-format +msgid "View all of %(username)s's media" +msgstr "Sjå all media frå %(username)s" + + diff --git a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo index ce967d59fec8ad8a2c8fa7d1c881116ea36eaf4b..4dc4ab5f772ebae42247eb44feec1c54b2d3d495 100644 GIT binary patch delta 2117 zcmZ{lPiS049LGm#lbR-JW0W+_p|e6YHObc0s*r|gTthDXlbS!E2lbctW?x3$o7v2J zZ&Q14>rK3PSSaX02#TRXQAj;{TD)lSPz4bb_2xwsy!7bzH*d391BUQE@6F8bH^2Y; z)0t17{G$KC#)uH&l>s5nf}7wpxDB2IzXzWIdj^H*182b_;39YoTmp}SZ-Dq0n|M45 z-T)ygZh|MkPry^)SK!0oFJLeD_n>HaMfb6A4GTx0^*!(%@DkV$?G^AzVIH%7yJeega5Smdxr``2EYxhKMt}%?+-PEcmgktQQS1BXG5^aMByRzQxxjSw#^@GdwC zegH~vw|(FTa17r+gM7h#@Hw#O5g{&sb0B+i9gM*b!H2+JgbS}?h{M+Wb#P?2HlTZ( z$vb)-U=z)H{swPn(6R4P+s900g zE+HpVWj3(kG~V;1Z9s_^l>es9T$jYWHX%s^6J(~6!pi5xLZ~x{)x3wrmkBN0OjM}p z^-O0mJQWKKKF2%7Nj9)M6k@@I%Bj|l18*wFu>)pbW zeSJ&hNK&Tj>`o_!U6KXx8)-9pmgc0APAOB@ zt?j9p%A#}ae*--!Yt|u~b?chn^gK51$a(25flg8mUV3!FWP9hE+s98dDwJBEKa_;i zb_T)c1L7hZRXlN3ykYZ_@PU^ZMUe{Smd-Y2_<+xn--?QyEc+7jPcFVX3It^?b(E7% z%VNoHA-kbme@o6%^KS2J4R#rED9ZO>*u<6p*^pJM+wnr4;5@~g@gxt)w00;J%W)ow z`8dj3w-Wg#>cpu?qc3c}U)kIljiLmMO;nLl^3}~T+{~4?eXr|6WaTB526B zBV8Ojv7E0bI+J81N;+w;%A|E0t>VAn2U?-MutHIaxKhznV?`s^2veqTmm6Ov6se>+ zIDE1(FM|!V19#(IApH1|h$KgC-zl~hGeN^G=Tv5q?v>W~glATU2>a8Re)~O_YAkeSh4c8lMzR|e! zP$Z63^Dx`PpLTj4X0@A^YiiF&JXThWGAv<~ eO!;#50W@hz;8!7$Ri(nV%SBOPPVks0iGKm-qK8lb delta 557 zcmXZY!7IaI9LMo58{70_8yiM32ZfQXtZ5ufo1$$8GtweI?cgA^?Z81lCx3xjZloNA zT_|$nL=KB^aZy^iy0~~h@$2b%J>Ory=lgt~-*Mkd@2OU8G>gc5y~rSLU=R;*3ZMS# zt_Bek^&Hk>1|7JJjhO$hcd?DSh#H<_3*KM{J|ivV8_j68iy?LvHl}U#;1(7!iB3)# z$0c;*5jNo^sv!4RgJo2WUr`16M27q@Sy6NT?RVn}wGTbG=QKn*S)A}fC4NAa>V@@O*gKJq$Gyo&BIX^9B_fmYu}CyJ9ZRK3Y0X?!`ZDcUegPrsLz4gi diff --git a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po index 68b7a0b5..43f65af6 100644 --- a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po @@ -2,13 +2,14 @@ # Copyright (C) 2011 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # +# , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" "POT-Creation-Date: 2011-08-08 22:53-0500\n" -"PO-Revision-Date: 2011-08-10 18:05+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2011-08-10 23:16+0000\n" +"Last-Translator: osc \n" "Language-Team: Portuguese (Brazilian) (http://www.transifex.net/projects/p/mediagoblin/team/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,50 +20,52 @@ msgstr "" #: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46 msgid "Username" -msgstr "" +msgstr "Nome de Usuário" #: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50 msgid "Password" -msgstr "" +msgstr "Senha" #: mediagoblin/auth/forms.py:34 msgid "Passwords must match." -msgstr "" +msgstr "Senhas devem ser iguais." #: mediagoblin/auth/forms.py:36 msgid "Confirm password" -msgstr "" +msgstr "Confirmar senha" #: mediagoblin/auth/forms.py:39 msgid "Email address" -msgstr "" +msgstr "Endereço de email" #: mediagoblin/auth/views.py:40 msgid "Sorry, registration is disabled on this instance." -msgstr "" +msgstr "Desculpa, o registro está desativado neste momento." #: mediagoblin/auth/views.py:55 msgid "Sorry, a user with that name already exists." -msgstr "" +msgstr "Desculpe, um usuário com este nome já existe." #: mediagoblin/auth/views.py:152 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "" +"O seu endereço de e-mail foi verificado. Você pode agora fazer login, editar" +" seu perfil, e enviar imagens!" #: mediagoblin/auth/views.py:158 msgid "The verification key or user id is incorrect" -msgstr "" +msgstr "A chave de verificação ou nome usuário estão incorretos." #: mediagoblin/auth/views.py:179 #: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 msgid "Resent your verification email." -msgstr "" +msgstr "O email de verificação foi reenviado." #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26 msgid "Title" -msgstr "" +msgstr "Título" #: mediagoblin/edit/forms.py:29 msgid "Slug" @@ -74,15 +77,15 @@ msgstr "" #: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 msgid "Tags" -msgstr "" +msgstr "Tags" #: mediagoblin/edit/forms.py:38 msgid "Bio" -msgstr "" +msgstr "Biográfia" #: mediagoblin/edit/forms.py:41 msgid "Website" -msgstr "" +msgstr "Website" #: mediagoblin/edit/forms.py:43 msgid "Improperly formed URL" @@ -102,49 +105,51 @@ msgstr "" #: mediagoblin/submit/forms.py:29 msgid "File" -msgstr "" +msgstr "Arquivo" #: mediagoblin/submit/views.py:45 msgid "You must provide a file." -msgstr "" +msgstr "Você deve fornecer um arquivo." #: mediagoblin/submit/views.py:48 msgid "The file doesn't seem to be an image!" -msgstr "" +msgstr "O arquivo não parece ser uma imagem!" #: mediagoblin/submit/views.py:96 msgid "Woohoo! Submitted!" -msgstr "" +msgstr "Eba! Enviado!" #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" -msgstr "" +msgstr "GNU MediaGoblin" #: mediagoblin/templates/mediagoblin/base.html:45 msgid "Mediagoblin logo" -msgstr "" +msgstr "Logo de Mediagoblin" #: mediagoblin/templates/mediagoblin/base.html:51 msgid "Submit media" -msgstr "" +msgstr "Enviar mídia" #: mediagoblin/templates/mediagoblin/base.html:62 msgid "verify your email!" -msgstr "" +msgstr "Verifique seu email!" #: mediagoblin/templates/mediagoblin/base.html:72 msgid "Login" -msgstr "" +msgstr "Login" #: mediagoblin/templates/mediagoblin/base.html:88 msgid "" "Powered by MediaGoblin, a GNU project" msgstr "" +"Powered by MediaGoblin, a GNU project" #: mediagoblin/templates/mediagoblin/root.html:21 msgid "Welcome to GNU MediaGoblin!" -msgstr "" +msgstr "Bemvindo a GNU Mediagoblin!" #: mediagoblin/templates/mediagoblin/root.html:26 msgid "Submit an item" @@ -153,7 +158,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 #, python-format msgid "If you have an account, you can Login." -msgstr "" +msgstr "Se você tem conta, você pode Entrar ." #: mediagoblin/templates/mediagoblin/root.html:37 #, python-format @@ -161,33 +166,35 @@ msgid "" "If you don't have an account, please Register." msgstr "" +"Se você não tem conta, por favor Registrar " +"." #: mediagoblin/templates/mediagoblin/auth/login.html:26 msgid "Log in" -msgstr "" +msgstr "Entrar" #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Login failed!" -msgstr "" +msgstr "Login falhou!" #: mediagoblin/templates/mediagoblin/auth/login.html:34 #: mediagoblin/templates/mediagoblin/auth/register.html:30 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 #: mediagoblin/templates/mediagoblin/submit/start.html:32 msgid "Submit" -msgstr "" +msgstr "Enviar" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" -msgstr "" +msgstr "Ainda não tem conta?" #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Create one here!" -msgstr "" +msgstr "Crie uma aqui!" #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" -msgstr "" +msgstr "Criar uma conta!" #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format @@ -199,24 +206,29 @@ msgid "" "\n" "%(verification_url)s" msgstr "" +"Olá %(username)s,\n" +"\n" +"Para ativar sua conta GNU MediaGoblin, visite este endereço no seu navegador:\n" +"\n" +"%(verification_url)s" #: mediagoblin/templates/mediagoblin/edit/edit.html:29 #, python-format msgid "Editing %(media_title)s" -msgstr "" +msgstr "Editando %(media_title)s" #: mediagoblin/templates/mediagoblin/edit/edit.html:36 msgid "Cancel" -msgstr "" +msgstr "Cancelar" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 msgid "Save changes" -msgstr "" +msgstr "Salvar mudanças" #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" -msgstr "" +msgstr "Editando perfil de %(username)s" #: mediagoblin/templates/mediagoblin/listings/tag.html:29 msgid "Media tagged with:" @@ -226,11 +238,11 @@ msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46 #: mediagoblin/templates/mediagoblin/user_pages/user.html:101 msgid "atom feed" -msgstr "" +msgstr "atom feed" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" -msgstr "" +msgstr "Envie sua mídia" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format @@ -240,35 +252,37 @@ msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51 #: mediagoblin/templates/mediagoblin/user_pages/user.html:30 msgid "Sorry, no such user found." -msgstr "" +msgstr "Desculpe, tal usuário não encontrado." #: mediagoblin/templates/mediagoblin/user_pages/user.html:37 #: mediagoblin/templates/mediagoblin/user_pages/user.html:57 msgid "Verification needed" -msgstr "" +msgstr "Verificação necessária" #: mediagoblin/templates/mediagoblin/user_pages/user.html:40 msgid "Almost done! Your account still needs to be verified." -msgstr "" +msgstr "Quase pronto! Sua conta precisa de verificação." #: mediagoblin/templates/mediagoblin/user_pages/user.html:45 msgid "" "An email should arrive in a few moments with instructions on how to do so." -msgstr "" +msgstr "Receberá um email com instruções de como fazer." #: mediagoblin/templates/mediagoblin/user_pages/user.html:49 msgid "In case it doesn't:" -msgstr "" +msgstr "Caso contrário:" #: mediagoblin/templates/mediagoblin/user_pages/user.html:52 msgid "Resend verification email" -msgstr "" +msgstr "Reenviar email de verificação" #: mediagoblin/templates/mediagoblin/user_pages/user.html:60 msgid "" "Someone has registered an account with this username, but it still has to be" " verified." msgstr "" +"Alguém já registrou uma conta com este nome, mas ainda tem que ser " +"verificada." #: mediagoblin/templates/mediagoblin/user_pages/user.html:66 #, python-format @@ -276,15 +290,17 @@ msgid "" "If you are that person but you've lost your verification email, you can log in and resend it." msgstr "" +"Se você é essa pessoa, mas você perdeu seu e-mail de verificação, você pode " +"efetuar login e reenviá-la." #: mediagoblin/templates/mediagoblin/user_pages/user.html:76 #, python-format msgid "%(username)s's profile" -msgstr "" +msgstr "Perfil de %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/user.html:84 msgid "Edit profile" -msgstr "" +msgstr "Editar perfil" #: mediagoblin/templates/mediagoblin/user_pages/user.html:95 #, python-format diff --git a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo new file mode 100644 index 0000000000000000000000000000000000000000..361846d4d930e4d83983757e96d7170cdb4863fc GIT binary patch literal 5629 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, 2011. +msgid "" +msgstr "" +"Project-Id-Version: GNU MediaGoblin\n" +"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" +"POT-Creation-Date: 2011-08-08 22:53-0500\n" +"PO-Revision-Date: 2011-08-10 21:52+0000\n" +"Last-Translator: gap \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 0.9.6\n" +"Language: ro\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1))\n" + +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46 +msgid "Username" +msgstr "Nume de utilizator" + +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50 +msgid "Password" +msgstr "Parolă" + +#: mediagoblin/auth/forms.py:34 +msgid "Passwords must match." +msgstr "Parolele trebuie să fie identice." + +#: mediagoblin/auth/forms.py:36 +msgid "Confirm password" +msgstr "Reintroduceți parola" + +#: mediagoblin/auth/forms.py:39 +msgid "Email address" +msgstr "Adresa de e-mail" + +#: mediagoblin/auth/views.py:40 +msgid "Sorry, registration is disabled on this instance." +msgstr "Ne pare rău, dar înscrierile sunt dezactivate pe această instanță." + +#: mediagoblin/auth/views.py:55 +msgid "Sorry, a user with that name already exists." +msgstr "Ne pare rău, există deja un utilizator cu același nume." + +#: mediagoblin/auth/views.py:152 +msgid "" +"Your email address has been verified. You may now login, edit your profile, " +"and submit images!" +msgstr "" +"Adresa dvs. de e-mail a fost confirmată. Puteți să vă autentificați, să vă " +"modificați profilul și să trimiteți imagini!" + +#: mediagoblin/auth/views.py:158 +msgid "The verification key or user id is incorrect" +msgstr "Cheie de verificare sau user ID incorect." + +#: mediagoblin/auth/views.py:179 +#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +msgid "Resent your verification email." +msgstr "E-mail-ul de verificare a fost retrimis." + +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26 +msgid "Title" +msgstr "Titlu" + +#: mediagoblin/edit/forms.py:29 +msgid "Slug" +msgstr "Identificator" + +#: mediagoblin/edit/forms.py:30 +msgid "The slug can't be empty" +msgstr "Identificatorul nu poate să lipsească" + +#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +msgid "Tags" +msgstr "Etichete" + +#: mediagoblin/edit/forms.py:38 +msgid "Bio" +msgstr "Biografie" + +#: mediagoblin/edit/forms.py:41 +msgid "Website" +msgstr "Sit Web" + +#: mediagoblin/edit/forms.py:43 +msgid "Improperly formed URL" +msgstr "Adresă URL incorectă" + +#: mediagoblin/edit/views.py:54 +msgid "An entry with that slug already exists for this user." +msgstr "" +"Există deja un entry cu același identificator pentru acest utilizator." + +#: mediagoblin/edit/views.py:75 +msgid "You are editing another user's media. Proceed with caution." +msgstr "Editați fișierul unui alt utilizator. Se recomandă prudență." + +#: mediagoblin/edit/views.py:96 +msgid "You are editing a user's profile. Proceed with caution." +msgstr "Editați profilul unui utilizator. Se recomandă prudență." + +#: mediagoblin/submit/forms.py:29 +msgid "File" +msgstr "Fișier" + +#: mediagoblin/submit/views.py:45 +msgid "You must provide a file." +msgstr "Trebuie să selectați un fișier." + +#: mediagoblin/submit/views.py:48 +msgid "The file doesn't seem to be an image!" +msgstr "Fișierul nu pare a fi o imagine!" + +#: mediagoblin/submit/views.py:96 +msgid "Woohoo! Submitted!" +msgstr "Gata, trimis!" + +#: mediagoblin/templates/mediagoblin/base.html:22 +msgid "GNU MediaGoblin" +msgstr "GNU MediaGoblin" + +#: mediagoblin/templates/mediagoblin/base.html:45 +msgid "Mediagoblin logo" +msgstr "Logo MediaGoblin" + +#: mediagoblin/templates/mediagoblin/base.html:51 +msgid "Submit media" +msgstr "Transmiteți fișier" + +#: mediagoblin/templates/mediagoblin/base.html:62 +msgid "verify your email!" +msgstr "verificați e-mail-ul!" + +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "Login" +msgstr "Autentificare" + +#: mediagoblin/templates/mediagoblin/base.html:88 +msgid "" +"Powered by MediaGoblin, a GNU project" +msgstr "" +"Construit cu MediaGoblin, un proiect GNU" + +#: mediagoblin/templates/mediagoblin/root.html:21 +msgid "Welcome to GNU MediaGoblin!" +msgstr "Bun venit la GNU MediaGoblin!" + +#: mediagoblin/templates/mediagoblin/root.html:26 +msgid "Submit an item" +msgstr "Trimite un fișier" + +#: mediagoblin/templates/mediagoblin/root.html:31 +#, python-format +msgid "If you have an account, you can Login." +msgstr "" +"Dacă aveți deja un cont, vă puteți autentifica." + +#: mediagoblin/templates/mediagoblin/root.html:37 +#, python-format +msgid "" +"If you don't have an account, please Register." +msgstr "" +"Dacă nu aveți cont, vă rugăm să vă înregistrați." + +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +msgid "Log in" +msgstr "Autentificare" + +#: mediagoblin/templates/mediagoblin/auth/login.html:29 +msgid "Login failed!" +msgstr "Autentificare nereușită!" + +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 +#: mediagoblin/templates/mediagoblin/submit/start.html:32 +msgid "Submit" +msgstr "Trimite" + +#: mediagoblin/templates/mediagoblin/auth/login.html:42 +msgid "Don't have an account yet?" +msgstr "Nu aveți un cont?" + +#: mediagoblin/templates/mediagoblin/auth/login.html:45 +msgid "Create one here!" +msgstr "Creați-l aici!" + +#: mediagoblin/templates/mediagoblin/auth/register.html:27 +msgid "Create an account!" +msgstr "Creați un cont!" + +#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to activate your GNU MediaGoblin account, open the following URL in\n" +"your web browser:\n" +"\n" +"%(verification_url)s" +msgstr "" +"Bună, %(username)s,\n" +"\n" +"pentru activarea contului tău GNU MediaGoblin, accesează adresa următoare:\n" +"\n" +"%(verification_url)s" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:29 +#, python-format +msgid "Editing %(media_title)s" +msgstr "Editare %(media_title)s" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:36 +msgid "Cancel" +msgstr "Anulare" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:37 +msgid "Save changes" +msgstr "Salvează modificările" + +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 +#, python-format +msgid "Editing %(username)s's profile" +msgstr "Editare profil %(username)s" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:29 +msgid "Media tagged with:" +msgstr "Etichete:" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:40 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +msgid "atom feed" +msgstr "flux atom" + +#: mediagoblin/templates/mediagoblin/submit/start.html:26 +msgid "Submit yer media" +msgstr "Trimite fișierele tale" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "Fișierele lui %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:30 +msgid "Sorry, no such user found." +msgstr "Ne pare rău, nu am găsit utilizatorul căutat." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:37 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:57 +msgid "Verification needed" +msgstr "Confirmare necesară" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:40 +msgid "Almost done! Your account still needs to be verified." +msgstr "Aproape gata! Este necesară confirmarea contului dvs." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:45 +msgid "" +"An email should arrive in a few moments with instructions on how to do so." +msgstr "Veți primi în scurt timp un mesaj prin e-mail cu instrucțiuni." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:49 +msgid "In case it doesn't:" +msgstr "Dacă nu primiți mesajul:" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:52 +msgid "Resend verification email" +msgstr "Retrimite mesajul de verificare" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:60 +msgid "" +"Someone has registered an account with this username, but it still has to be" +" verified." +msgstr "" +"Cineva s-a înscris pe site cu acest nume de utilizator, dar nu a fost " +"confirmat încă." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:66 +#, python-format +msgid "" +"If you are that person but you've lost your verification email, you can log in and resend it." +msgstr "" +"Dacă dvs. sunteți persoana respectivă și nu mai aveți e-mail-ul de " +"verificare, puteți să vă autentificați pentru " +"a-l retrimite." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:76 +#, python-format +msgid "%(username)s's profile" +msgstr "Profil %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:84 +msgid "Edit profile" +msgstr "Editare profil" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:95 +#, python-format +msgid "View all of %(username)s's media" +msgstr "Toate fișierele lui %(username)s" + + diff --git a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mo new file mode 100644 index 0000000000000000000000000000000000000000..a70b1fef8130a4406cfc4e637d76b718986663e6 GIT binary patch literal 5487 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, 2011. +msgid "" +msgstr "" +"Project-Id-Version: GNU MediaGoblin\n" +"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" +"POT-Creation-Date: 2011-08-08 22:53-0500\n" +"PO-Revision-Date: 2011-08-10 21:28+0000\n" +"Last-Translator: JLP \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 0.9.6\n" +"Language: sl\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3)\n" + +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46 +msgid "Username" +msgstr "Uporabniško ime" + +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50 +msgid "Password" +msgstr "Geslo" + +#: mediagoblin/auth/forms.py:34 +msgid "Passwords must match." +msgstr "Gesli morata biti enaki." + +#: mediagoblin/auth/forms.py:36 +msgid "Confirm password" +msgstr "Potrdite geslo" + +#: mediagoblin/auth/forms.py:39 +msgid "Email address" +msgstr "E-poštni naslov" + +#: mediagoblin/auth/views.py:40 +msgid "Sorry, registration is disabled on this instance." +msgstr "Oprostite, prijava za ta izvod ni omogočena." + +#: mediagoblin/auth/views.py:55 +msgid "Sorry, a user with that name already exists." +msgstr "Oprostite, uporabnik s tem imenom že obstaja." + +#: mediagoblin/auth/views.py:152 +msgid "" +"Your email address has been verified. You may now login, edit your profile, " +"and submit images!" +msgstr "" +"Vaš e-poštni naslov je bil potrjen. Sedaj se lahko prijavite, uredite svoj " +"profil in pošljete slike." + +#: mediagoblin/auth/views.py:158 +msgid "The verification key or user id is incorrect" +msgstr "Potrditveni ključ ali uporabniška identifikacija je napačna" + +#: mediagoblin/auth/views.py:179 +#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +msgid "Resent your verification email." +msgstr "Ponovno pošiljanje potrditvene e-pošte." + +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26 +msgid "Title" +msgstr "Naslov" + +#: mediagoblin/edit/forms.py:29 +msgid "Slug" +msgstr "Oznaka" + +#: mediagoblin/edit/forms.py:30 +msgid "The slug can't be empty" +msgstr "Oznaka ne sme biti prazna" + +#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +msgid "Tags" +msgstr "Oznake" + +#: mediagoblin/edit/forms.py:38 +msgid "Bio" +msgstr "Biografija" + +#: mediagoblin/edit/forms.py:41 +msgid "Website" +msgstr "Spletna stran" + +#: mediagoblin/edit/forms.py:43 +msgid "Improperly formed URL" +msgstr "Napačno oblikovan URL" + +#: mediagoblin/edit/views.py:54 +msgid "An entry with that slug already exists for this user." +msgstr "Vnos s to oznako za tega uporabnika že obstaja." + +#: mediagoblin/edit/views.py:75 +msgid "You are editing another user's media. Proceed with caution." +msgstr "Urejate vsebino drugega uporabnika. Nadaljujte pazljivo." + +#: mediagoblin/edit/views.py:96 +msgid "You are editing a user's profile. Proceed with caution." +msgstr "Urejate uporabniški profil. Nadaljujte pazljivo." + +#: mediagoblin/submit/forms.py:29 +msgid "File" +msgstr "Datoteka" + +#: mediagoblin/submit/views.py:45 +msgid "You must provide a file." +msgstr "Podati morate datoteko." + +#: mediagoblin/submit/views.py:48 +msgid "The file doesn't seem to be an image!" +msgstr "Kot kaže datoteka ni slika." + +#: mediagoblin/submit/views.py:96 +msgid "Woohoo! Submitted!" +msgstr "Juhej! Poslano." + +#: mediagoblin/templates/mediagoblin/base.html:22 +msgid "GNU MediaGoblin" +msgstr "GNU MediaGoblin" + +#: mediagoblin/templates/mediagoblin/base.html:45 +msgid "Mediagoblin logo" +msgstr "Logotip MediaGoblin" + +#: mediagoblin/templates/mediagoblin/base.html:51 +msgid "Submit media" +msgstr "Pošlji vsebino" + +#: mediagoblin/templates/mediagoblin/base.html:62 +msgid "verify your email!" +msgstr "Preverite svojo e-pošto." + +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "Login" +msgstr "Prijava" + +#: mediagoblin/templates/mediagoblin/base.html:88 +msgid "" +"Powered by MediaGoblin, a GNU project" +msgstr "" +"Stran poganja MediaGoblin, del projekta GNU" + +#: mediagoblin/templates/mediagoblin/root.html:21 +msgid "Welcome to GNU MediaGoblin!" +msgstr "Dobrodošli v GNU MediaGoblin!" + +#: mediagoblin/templates/mediagoblin/root.html:26 +msgid "Submit an item" +msgstr "Pošljite datoteko" + +#: mediagoblin/templates/mediagoblin/root.html:31 +#, python-format +msgid "If you have an account, you can Login." +msgstr "Če imate račun, se lahko Prijavite." + +#: mediagoblin/templates/mediagoblin/root.html:37 +#, python-format +msgid "" +"If you don't have an account, please Register." +msgstr "Če računa še nimate, se Registrirajte." + +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +msgid "Log in" +msgstr "Prijava" + +#: mediagoblin/templates/mediagoblin/auth/login.html:29 +msgid "Login failed!" +msgstr "Neuspešna prijava." + +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 +#: mediagoblin/templates/mediagoblin/submit/start.html:32 +msgid "Submit" +msgstr "Pošlji" + +#: mediagoblin/templates/mediagoblin/auth/login.html:42 +msgid "Don't have an account yet?" +msgstr "Še nimate računa?" + +#: mediagoblin/templates/mediagoblin/auth/login.html:45 +msgid "Create one here!" +msgstr "Ustvarite si ga." + +#: mediagoblin/templates/mediagoblin/auth/register.html:27 +msgid "Create an account!" +msgstr "Ustvarite račun." + +#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to activate your GNU MediaGoblin account, open the following URL in\n" +"your web browser:\n" +"\n" +"%(verification_url)s" +msgstr "" +"Pozdravljeni, %(username)s\n" +"\n" +"Za aktivacijo svojega računa GNU MediaGoblin odprite\n" +"naslednji URL v svojem spletnem brskalniku:\n" +"\n" +"%(verification_url)s" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:29 +#, python-format +msgid "Editing %(media_title)s" +msgstr "Urejanje %(media_title)s" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:36 +msgid "Cancel" +msgstr "Prekliči" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:37 +msgid "Save changes" +msgstr "Shrani spremembe" + +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 +#, python-format +msgid "Editing %(username)s's profile" +msgstr "Urejanje profila – %(username)s" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:29 +msgid "Media tagged with:" +msgstr "Vsebina označena z:" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:40 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +msgid "atom feed" +msgstr "Vir Atom" + +#: mediagoblin/templates/mediagoblin/submit/start.html:26 +msgid "Submit yer media" +msgstr "Pošljite svojo vsebino" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "Vsebina uporabnika %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:30 +msgid "Sorry, no such user found." +msgstr "Oprostite, tega uporabnika ni bilo moč najti." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:37 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:57 +msgid "Verification needed" +msgstr "Potrebna je potrditev" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:40 +msgid "Almost done! Your account still needs to be verified." +msgstr "Skoraj ste zaključili. Račun je potrebno le še potrditi." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:45 +msgid "" +"An email should arrive in a few moments with instructions on how to do so." +msgstr "V kratkem bi morali prejeti e-pošto z navodili, kako to storiti." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:49 +msgid "In case it doesn't:" +msgstr "Če je ne prejmete:" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:52 +msgid "Resend verification email" +msgstr "Ponovno pošlji potrditveno e-pošto" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:60 +msgid "" +"Someone has registered an account with this username, but it still has to be" +" verified." +msgstr "" +"Nekdo je s tem uporabniškim imenom že registriral račun, vendar mora biti še" +" potrjen." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:66 +#, python-format +msgid "" +"If you are that person but you've lost your verification email, you can log in and resend it." +msgstr "" +"Če ste ta oseba vi, a ste izgubili potrditveno e-pošto, se lahko prijavite in jo ponovno pošljete." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:76 +#, python-format +msgid "%(username)s's profile" +msgstr "Profil – %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:84 +msgid "Edit profile" +msgstr "Uredi profil" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:95 +#, python-format +msgid "View all of %(username)s's media" +msgstr "Prikaži vso vsebino uporabnika %(username)s" + + From d990a3799846a06ada11805ca4f2806eb1bf8b5e Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 10 Aug 2011 20:26:22 -0500 Subject: [PATCH 0836/2731] We should save the entry *after* we add the queued_task_id. --- mediagoblin/submit/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 59d8fe3f..53711236 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -88,11 +88,11 @@ def submit_start(request): # Add queued filename to the entry entry['queued_media_file'] = queue_filepath - entry.save(validate=True) # queue it for processing result = process_media_initial.delay(unicode(entry['_id'])) entry['queued_task_id'] = result.task_id + entry.save(validate=True) add_message(request, SUCCESS, _('Woohoo! Submitted!')) From f64e5250906401a3d5a5fc587521bc31e146859c Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 10 Aug 2011 21:03:16 -0500 Subject: [PATCH 0837/2731] Generate the ObjectId() manually instead of via .save() --- mediagoblin/submit/views.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index ba13b755..a3a58400 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -20,6 +20,7 @@ from string import split from werkzeug.utils import secure_filename +from mediagoblin.db.util import ObjectId from mediagoblin.util import ( render_to_response, redirect, cleaned_markdown_conversion, \ convert_to_tag_list_of_dicts) @@ -51,6 +52,7 @@ def submit_start(request): # create entry and save in database entry = request.db.MediaEntry() + entry['_id'] = ObjectId() entry['title'] = ( request.POST['title'] or unicode(splitext(filename)[0])) @@ -66,10 +68,6 @@ def submit_start(request): entry['tags'] = convert_to_tag_list_of_dicts( request.POST.get('tags')) - # Save, just so we can get the entry id for the sake of using - # it to generate the file path - entry.save(validate=False) - # Generate a slug from the title entry.generate_slug() From f6bf68cae5f2907924e126a3a2f3a2f015292323 Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Thu, 11 Aug 2011 00:50:16 -0500 Subject: [PATCH 0838/2731] Feature #446 - Render the submission form using the render_divs macro - Currently there are individual calls to wtforms_util.render_field_div for each field in the media submit form, which is too verbose - Matched the field ordering in submit/form.py to the verbose version - hacks the correct textareafield rendering with hard-coded rows and columns. - TODO - figure out how to pass the textarea dimensions with **kwargs --- mediagoblin/submit/forms.py | 2 +- mediagoblin/templates/mediagoblin/submit/start.html | 5 +---- mediagoblin/templates/mediagoblin/utils/wtforms.html | 6 +++++- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py index 241d32dc..4519b057 100644 --- a/mediagoblin/submit/forms.py +++ b/mediagoblin/submit/forms.py @@ -22,11 +22,11 @@ from mediagoblin.util import fake_ugettext_passthrough as _ class SubmitStartForm(wtforms.Form): + file = wtforms.FileField(_('File')) title = wtforms.TextField( _('Title'), [wtforms.validators.Length(min=0, max=500)]) description = wtforms.TextAreaField('Description of this work') - file = wtforms.FileField(_('File')) tags = wtforms.TextField( _('Tags'), [tag_length_validator]) diff --git a/mediagoblin/templates/mediagoblin/submit/start.html b/mediagoblin/templates/mediagoblin/submit/start.html index eb34c2e2..3a40850d 100644 --- a/mediagoblin/templates/mediagoblin/submit/start.html +++ b/mediagoblin/templates/mediagoblin/submit/start.html @@ -24,10 +24,7 @@ method="POST" enctype="multipart/form-data">

            {% trans %}Submit yer media{% endtrans %}

            - {{ wtforms_util.render_field_div(submit_form.file) }} - {{ wtforms_util.render_field_div(submit_form.title) }} - {{ wtforms_util.render_textarea_div(submit_form.description) }} - {{ wtforms_util.render_field_div(submit_form.tags) }} + {{ wtforms_util.render_divs(submit_form) }}
            diff --git a/mediagoblin/templates/mediagoblin/utils/wtforms.html b/mediagoblin/templates/mediagoblin/utils/wtforms.html index e3d8e137..3b6cff15 100644 --- a/mediagoblin/templates/mediagoblin/utils/wtforms.html +++ b/mediagoblin/templates/mediagoblin/utils/wtforms.html @@ -23,7 +23,11 @@ {% if field.description -%}
            {{ _(field.description) }}
            {%- endif %} -
            {{ field }}
            + {% if field.type == "TextAreaField" %} +
            {{ field(rows=8, cols=20) }}
            + {% else %} +
            {{ field }}
            + {% endif %} {%- if field.errors -%} {% for error in field.errors %}
            From d07be8119de3b2e10ca37d43dfecd4239dc09aba Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Thu, 11 Aug 2011 10:15:30 -0500 Subject: [PATCH 0839/2731] eliminates textarea handling since rows cols not required in HTML5 --- .../templates/mediagoblin/utils/wtforms.html | 25 +------------------ 1 file changed, 1 insertion(+), 24 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/utils/wtforms.html b/mediagoblin/templates/mediagoblin/utils/wtforms.html index 3b6cff15..2639522a 100644 --- a/mediagoblin/templates/mediagoblin/utils/wtforms.html +++ b/mediagoblin/templates/mediagoblin/utils/wtforms.html @@ -23,30 +23,7 @@ {% if field.description -%}
            {{ _(field.description) }}
            {%- endif %} - {% if field.type == "TextAreaField" %} -
            {{ field(rows=8, cols=20) }}
            - {% else %} -
            {{ field }}
            - {% endif %} - {%- if field.errors -%} - {% for error in field.errors %} -
            - {{ error }} -
            - {% endfor %} - {%- endif %} -
            -{%- endmacro %} - -{# Generically render a textarea - # ... mostly the same thing except it includes rows and cols #} -{% macro render_textarea_div(field, rows=8, cols=20) %} -
            -
            {{ _(field.label.text) }}
            - {% if field.description -%} -
            {{ _(field.description) }}
            - {%- endif %} -
            {{ field(rows=rows, cols=cols) }}
            +
            {{ field }}
            {%- if field.errors -%} {% for error in field.errors %}
            From f016fc65056c03fd64d40b918da670281835f76d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 11 Aug 2011 11:29:14 -0500 Subject: [PATCH 0840/2731] Adding slightly clearer docs to MountStorage. --- mediagoblin/storage.py | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index 88c748ce..3968fa29 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -290,16 +290,29 @@ class MountStorage(StorageInterface): """ Experimental "Mount" virtual Storage Interface - This isn't an interface to some real storage, instead - it's a redirecting interface, that redirects requests - to other "StorageInterface"s. - For example, requests for ["store1", "a"] to first - storage with the path ["a"], etc. + This isn't an interface to some real storage, instead it's a + redirecting interface, that redirects requests to other + "StorageInterface"s. + + For example, say you have the paths: + + 1. ['user_data', 'cwebber', 'avatar.jpg'] + 2. ['user_data', 'elrond', 'avatar.jpg'] + 3. ['media_entries', '34352f304c3f4d0ad8ad0f043522b6f2', 'thumb.jpg'] + + You could mount media_entries under CloudFileStorage and user_data + under BasicFileStorage. Then 1 would be passed to + BasicFileStorage under the path ['cwebber', 'avatar.jpg'] and 3 + would be passed to CloudFileStorage under + ['34352f304c3f4d0ad8ad0f043522b6f2', 'thumb.jpg']. + + In other words, this is kind of like mounting /home/ and /etc/ + under different filesystems on your operating system... but with + mediagoblin filestorages :) - To set this up, you currently need to call the mount() - method with the target path and a backend, that shall - be available under that target path. - You have to mount things in a sensible order, + To set this up, you currently need to call the mount() method with + the target path and a backend, that shall be available under that + target path. You have to mount things in a sensible order, especially you can't mount ["a", "b"] before ["a"]. """ def __init__(self, **kwargs): From 07934b442f7cd3abae18eecdf533de004f88e6b1 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 11 Aug 2011 11:30:26 -0500 Subject: [PATCH 0841/2731] Moving things around a bit/commenting in the submit view to make the workflow clearer --- mediagoblin/submit/views.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index d4858c87..1e8c6a68 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -87,9 +87,13 @@ def submit_start(request): # Add queued filename to the entry entry['queued_media_file'] = queue_filepath - # queue it for processing + # Save now so we have this data before kicking off processing + entry.save(validate=False) + result = process_media_initial.delay(unicode(entry['_id'])) - entry['queued_task_id'] = result.task_id + + # Save the task id + entry['queued_task_id'] = unicode(result.task_id) entry.save(validate=True) add_message(request, SUCCESS, _('Woohoo! Submitted!')) From 7219983f8e017fe9163cbe5e28bf6314d91aa7a8 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Fri, 12 Aug 2011 02:13:58 +0200 Subject: [PATCH 0842/2731] Feature #298 - Create environment tarball * It's now possible to import/export your environment from/to a tarball. ./bin/gmg env_export [ -c mediagoblin_local.ini ] test.tar and ./bin/gmg env_import [ -c mediagoblin_local.ini ] test.tar --- mediagoblin/gmg_commands/import_export.py | 196 +++++++++++++--------- 1 file changed, 121 insertions(+), 75 deletions(-) diff --git a/mediagoblin/gmg_commands/import_export.py b/mediagoblin/gmg_commands/import_export.py index 2c626da1..56b3913d 100644 --- a/mediagoblin/gmg_commands/import_export.py +++ b/mediagoblin/gmg_commands/import_export.py @@ -24,11 +24,14 @@ from mediagoblin.storage import BasicFileStorage from mediagoblin.init import setup_storage, setup_global_and_app_config import shlex +import shutil import tarfile import subprocess import os.path import os import re +import sys + def import_export_parse_setup(subparser): # TODO: Add default @@ -47,28 +50,33 @@ def import_export_parse_setup(subparser): '--cache_path', default='/tmp/mediagoblin/', help='') + def _export_database(db, args): print "\n== Exporting database ==\n" - + command = '{mongodump_path} -d {database} -o {mongodump_cache}'.format( mongodump_path=args.mongodump_path, database=db.name, mongodump_cache=args._cache_path['database']) - + p = subprocess.Popen( shlex.split(command)) - + p.wait() print "\n== Database exported ==\n" + def _export_media(db, args): - print "\n== Exporting media ==\n" - + media_cache = BasicFileStorage( args._cache_path['media']) + # TODO: Add export of queue files + queue_cache = BasicFileStorage( + args._cache_path['queue']) + for entry in db.media_entries.find(): for name, path in entry['media_files'].items(): mc_file = media_cache.get_file(path, mode='wb') @@ -78,85 +86,54 @@ def _export_media(db, args): print(mc_file) print(entry) + print "\n== Media exported ==\n" + + +def _import_media(db, args): + """ + Import media files + + Must be called after _import_database() + """ + print "\n== Importing media ==\n" + + media_cache = BasicFileStorage( + args._cache_path['media']) + + # TODO: Add import of queue files queue_cache = BasicFileStorage( args._cache_path['queue']) - qc_file = queue_cache.get_file(entry['queued_media_file'], mode='wb') - qc_file.write( - mg_globals.queue_store.get_file(entry['queued_media_file'], mode='rb').read()) - print(qc_file) + for entry in db.media_entries.find(): + for name, path in entry['media_files'].items(): + media_file = mg_globals.public_store.get_file(path, mode='wb') + media_file.write( + media_cache.get_file(path, mode='rb').read()) + + print(media_file) + print(entry) + + print "\n== Media imported ==\n" - print "\n== Media exported ==\n" def _import_database(db, args): - command = '{mongorestore_path} -d {database} -o {mongodump_cache}'.format( + print "\n== Importing database ==\n" + command = '{mongorestore_path} -d {database}' + '{backup_dir}/{database}'.format( mongorestore_path=args.mongorestore_path, database=db.name, - mongodump_cache=args.mongodump_cache) + backup_dir=args._cache_path['database']) + + print command + + p = subprocess.Popen( + shlex.split(command)) + + p.wait() + def env_import(args): - config, validation_result = read_mediagoblin_config(args.conf_file) - connection, db = setup_connection_and_db_from_config( - config['mediagoblin'], use_pymongo=True) - - tf = tarfile.open( - args.tar_file, - mode='r|gz') - - tf.extractall(args.extract_path) - -def _setup_paths(args): - args._cache_path = dict() - PATH_MAP = { - 'media': 'media', - 'queue': 'queue', - 'database': 'database'} - - for key, val in PATH_MAP.items(): - args._cache_path[key] = os.path.join(args.cache_path, val) - - return args - -def _create_archive(args): - print "\n== Compressing to archive ==\n" - tf = tarfile.open( - args.tar_file, - mode='w|gz') - with tf: - for root, dirs, files in os.walk(args.cache_path): - print root, dirs, files - - everything = [] - everything.extend(dirs) - everything.extend(files) - - print everything - - for d in everything: - directory_path = os.path.join(root, d) - virtual_path = os.path.join( - root.replace(args.cache_path, 'mediagoblin-data/'), d) - - # print 'dir', directory_path, '\n', 'vir', virtual_path - - tarinfo = tf.gettarinfo( - directory_path, - arcname=virtual_path) - - tf.addfile(tarinfo) - - print 'added ', d - - ''' - mg_data = tf.gettarinfo( - args.cache_path, - arcname='mediagoblin-data') - - tf.addfile(mg_data) - ''' - print "\n== Archiving done ==\n" - -def env_export(args): + args.cache_path += 'mediagoblin-data' args = _setup_paths(args) setup_global_and_app_config(args.conf_file) @@ -166,6 +143,49 @@ def env_export(args): connection, db = setup_connection_and_db_from_config( config['mediagoblin'], use_pymongo=True) + tf = tarfile.open( + args.tar_file, + mode='r|gz') + + tf.extractall(args.cache_path) + + # Import database from extracted data + _import_database(db, args) + + _import_media(db, args) + + +def _setup_paths(args): + args._cache_path = dict() + PATH_MAP = { + 'media': 'media', + 'queue': 'queue', + 'database': 'database'} + + for key, val in PATH_MAP.items(): + args._cache_path[key] = os.path.join(args.cache_path, val) + + return args + + +def _create_archive(args): + print "\n== Compressing to archive ==\n" + + tf = tarfile.open( + args.tar_file, + mode='w|gz') + + with tf: + tf.add(args.cache_path, 'mediagoblin-data/') + + print "\n== Archiving done ==\n" + + +def _clean(args): + shutil.rmtree(args.cache_path) + + +def _check(args): if os.path.exists(args.tar_file): overwrite = raw_input( 'The output file already exists. ' @@ -173,10 +193,36 @@ def env_export(args): '(yes/no)> ') if not overwrite == 'yes': print "Aborting." - return + + return False + + if os.path.exists(args.cache_path): + print 'The cache directory must not exist before you run this script' + print 'Cache directory: ', args.cache_path + + return False + + return True + + +def env_export(args): + args = _setup_paths(args) + + if not _check(args): + print "\n== Checks did not pass, exiting ==\n" + sys.exit(0) + + setup_global_and_app_config(args.conf_file) + setup_storage() + + config, validation_result = read_mediagoblin_config(args.conf_file) + connection, db = setup_connection_and_db_from_config( + config['mediagoblin'], use_pymongo=True) _export_database(db, args) _export_media(db, args) _create_archive(args) + + _clean(args) From d9204d3a3dd91f63fd43345415ebeb6fc02cc1c8 Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Thu, 11 Aug 2011 19:17:56 -0500 Subject: [PATCH 0843/2731] uses render_divs for the comments form in media.html for completeness --- mediagoblin/templates/mediagoblin/user_pages/media.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index afc0d903..9c0a1cca 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -55,7 +55,7 @@
            - {{ wtforms_util.render_field_div(comment_form.comment_content) }} + {{ wtforms_util.render_divs(comment_form) }}
            From dc49cf600aba92331419a3566f768b061b8102e3 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 11 Aug 2011 20:15:55 -0500 Subject: [PATCH 0844/2731] Making the users_with_username function call in the register view slightly cleaner --- mediagoblin/auth/views.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 121a8c8e..dc90173e 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -45,10 +45,8 @@ def register(request): if request.method == 'POST' and register_form.validate(): # TODO: Make sure the user doesn't exist already - users_with_username = \ - request.db.User.find({ - 'username': request.POST['username'].lower() - }).count() + users_with_username = request.db.User.find( + {'username': request.POST['username'].lower()}).count() if users_with_username: register_form.username.errors.append( From 0bf099d7536b5f5f876fa21e4c72f132b7c757a8 Mon Sep 17 00:00:00 2001 From: Alejandro Villanueva Date: Tue, 14 Jun 2011 11:03:56 -0500 Subject: [PATCH 0845/2731] Checks if the email(lowercase) have been used before to register a user --- mediagoblin/auth/views.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index dc90173e..61164be8 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -47,10 +47,15 @@ def register(request): users_with_username = request.db.User.find( {'username': request.POST['username'].lower()}).count() + users_with_email = request.db.User.find( + {'email': request.POST['email'].lower()}).count() if users_with_username: register_form.username.errors.append( _(u'Sorry, a user with that name already exists.')) + elif users_with_email: + register_form.email.errors.append( + _(u'Sorry, that email address has already been taken.')) else: # Create the user From 873e4e9d2da8a3976de6c44838f517cfc314d620 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 11 Aug 2011 20:34:12 -0500 Subject: [PATCH 0846/2731] Also normalize user's emails to .lower() when we accept the user. --- mediagoblin/auth/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 61164be8..91599e47 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -61,7 +61,7 @@ def register(request): # Create the user user = request.db.User() user['username'] = request.POST['username'].lower() - user['email'] = request.POST['email'] + user['email'] = request.POST['email'].lower() user['pw_hash'] = auth_lib.bcrypt_gen_password_hash( request.POST['password']) user.save(validate=True) From 9f6ea47586f78370c42dc9b45782f398bebf7d2e Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 11 Aug 2011 20:37:21 -0500 Subject: [PATCH 0847/2731] If both the username and the email checks fail, warn about both at the same time --- mediagoblin/auth/views.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 91599e47..ce6b5dfc 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -50,14 +50,18 @@ def register(request): users_with_email = request.db.User.find( {'email': request.POST['email'].lower()}).count() + extra_validation_passes = True + if users_with_username: register_form.username.errors.append( _(u'Sorry, a user with that name already exists.')) - elif users_with_email: + extra_validation_passes = False + if users_with_email: register_form.email.errors.append( _(u'Sorry, that email address has already been taken.')) + extra_validation_passes = False - else: + if extra_validation_passes: # Create the user user = request.db.User() user['username'] = request.POST['username'].lower() From 788272f30034fb2f917496197e317226d21aad2e Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 11 Aug 2011 22:44:47 -0500 Subject: [PATCH 0848/2731] PEP-8ing the keyword argument passing here --- mediagoblin/auth/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 55f42141..9120196f 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -166,7 +166,7 @@ def verify_email(request): return redirect( request, 'mediagoblin.user_pages.user_home', - user = user['username']) + user=user['username']) def resend_activation(request): From 758eb746547cc8c6c52135fd88bee11b5f81d3d4 Mon Sep 17 00:00:00 2001 From: Elrond Date: Fri, 12 Aug 2011 13:01:41 +0200 Subject: [PATCH 0849/2731] Document changes to storage_system_from_config Chris suggested changing the docs for storage_system_from_config: - The only param is a config section. - The format of that section is much simpler, no prefix. --- mediagoblin/storage.py | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index d338fb31..ec3bc1b5 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -15,7 +15,6 @@ # along with this program. If not, see . import os -import re import shutil import urlparse import uuid @@ -443,29 +442,25 @@ def clean_listy_filepath(listy_filepath): return cleaned_filepath -def storage_system_from_config(config): +def storage_system_from_config(config_section): """ - Utility for setting up a storage system from the paste app config. + Utility for setting up a storage system from a config section. - Note that a special argument may be passed in to the paste_config - which is "${storage_prefix}_storage_class" which will provide an + Note that a special argument may be passed in to + the config_section which is "storage_class" which will provide an import path to a storage system. This defaults to "mediagoblin.storage:BasicFileStorage" if otherwise undefined. Arguments: - - paste_config: dictionary of config parameters - - storage_prefix: the storage system we're setting up / will be - getting keys/arguments from. For example 'publicstore' will - grab all arguments that are like 'publicstore_FOO'. + - config_section: dictionary of config parameters Returns: An instantiated storage system. Example: storage_system_from_config( - {'publicstore_base_url': '/media/', - 'publicstore_base_dir': '/var/whatever/media/'}, - 'publicstore') + {'base_url': '/media/', + 'base_dir': '/var/whatever/media/'}) Will return: BasicFileStorage( @@ -474,7 +469,7 @@ def storage_system_from_config(config): """ # This construct is needed, because dict(config) does # not replace the variables in the config items. - config_params = dict(config.iteritems()) + config_params = dict(config_section.iteritems()) if 'storage_class' in config_params: storage_class = config_params['storage_class'] From 035c976fb2ccbbc7dc73cc6ceb4b5ed8d4523561 Mon Sep 17 00:00:00 2001 From: Karen Rustad Date: Tue, 2 Aug 2011 18:01:02 -0700 Subject: [PATCH 0850/2731] adds feature #458 -- given a column number, limits the number of items in a row (and adds divs saying so). No CSS styling to make these demarcations visible, though --- .../mediagoblin/utils/object_gallery.html | 45 ++++++++++++++++--- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/utils/object_gallery.html b/mediagoblin/templates/mediagoblin/utils/object_gallery.html index 03b85b17..c5e890fc 100644 --- a/mediagoblin/templates/mediagoblin/utils/object_gallery.html +++ b/mediagoblin/templates/mediagoblin/utils/object_gallery.html @@ -18,15 +18,46 @@ {% from "mediagoblin/utils/pagination.html" import render_pagination %} +{% macro media_grid(media_list, col_number=5) %} + {% set num_items = media_list.count() %} + {% set col_counter = 0 %} + {% set row_counter = 0 %} + {% set item_counter = 0 %} + + {% set num_rows = num_items // col_number %} + {% if num_items % col_number != 0 %} + {% set num_rows = num_rows + 1 %} + {% endif %} + + +{%- endmacro %} + {% block object_gallery_content -%} {% if media_entries and media_entries.count() %} - {% for entry in media_entries %} -
            - - -
            - {% endfor %} + {{ media_grid(media_entries) }}
            {% if pagination_base_url %} {# different url, so set that and don't keep the get params #} From 38bf03c6aae118870c1c58873c2aa72bfbf34887 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 12 Aug 2011 09:55:50 -0500 Subject: [PATCH 0851/2731] Converting object_gallery() from a block to a macro and updating usages of it The main motivation here is that this lets us pass in a specific number of col_number --- .../templates/mediagoblin/listings/tag.html | 4 +++- mediagoblin/templates/mediagoblin/root.html | 6 +++--- .../mediagoblin/user_pages/gallery.html | 4 +++- .../mediagoblin/user_pages/user.html | 5 ++++- .../mediagoblin/utils/object_gallery.html | 21 +++++++++++++++---- 5 files changed, 30 insertions(+), 10 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/listings/tag.html b/mediagoblin/templates/mediagoblin/listings/tag.html index a013797f..a43355a7 100644 --- a/mediagoblin/templates/mediagoblin/listings/tag.html +++ b/mediagoblin/templates/mediagoblin/listings/tag.html @@ -17,6 +17,8 @@ #} {% extends "mediagoblin/base.html" %} +{% from "mediagoblin/utils/object_gallery.html" import object_gallery %} + {% block mediagoblin_head %} - {% include "mediagoblin/utils/object_gallery.html" %} + {{ object_gallery(request, media_entries, pagination) }}
            diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index a4e19984..06beb436 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -17,6 +17,8 @@ #} {% extends "mediagoblin/base.html" %} +{% from "mediagoblin/utils/object_gallery.html" import object_gallery %} + {% block mediagoblin_content %}

            {% trans %}Welcome to GNU MediaGoblin!{% endtrans %}

            @@ -41,7 +43,5 @@ {% endif %} {% endif %} - {# temporarily, an "image gallery" that isn't one really ;) #} - - {% include "mediagoblin/utils/object_gallery.html" %} + {{ object_gallery(request, media_entries, pagination) }} {% endblock %} diff --git a/mediagoblin/templates/mediagoblin/user_pages/gallery.html b/mediagoblin/templates/mediagoblin/user_pages/gallery.html index a66a547e..ff935ac4 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/gallery.html +++ b/mediagoblin/templates/mediagoblin/user_pages/gallery.html @@ -17,6 +17,8 @@ #} {% extends "mediagoblin/base.html" %} +{% from "mediagoblin/utils/object_gallery.html" import object_gallery %} + {% block mediagoblin_head %} - {% include "mediagoblin/utils/object_gallery.html" %} + {{ object_gallery(request, media_entries, pagination) }}
            {%- endmacro %} -{% block object_gallery_content -%} + +{# + Render a media gallery with pagination. + + Args: + - request: Request + - media_entries: pymongo cursor of media entries + - pagination: Paginator object + - pagination_base_url: If you want the pagination to point to a + different URL, point it here + - col_number: How many columns per row (default 5) +#} +{% macro object_gallery(request, media_entries, pagination, + pagination_base_url=None, col_number=5) %} {% if media_entries and media_entries.count() %} - {{ media_grid(media_entries) }} + {{ media_grid(request, media_entries, col_number=col_number) }}
            {% if pagination_base_url %} {# different url, so set that and don't keep the get params #} @@ -70,4 +83,4 @@ There doesn't seem to be any media here yet...

            {% endif %} -{% endblock %} +{% endmacro %} From 8f12c9b24cb6fef5d7cc332e5e5e8d5587ba38e0 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Fri, 12 Aug 2011 17:04:34 +0200 Subject: [PATCH 0852/2731] Feature #298 - Create environment tarball * Reviewed the code and fixed some bugs --- mediagoblin/gmg_commands/import_export.py | 130 +++++++++++++--------- 1 file changed, 78 insertions(+), 52 deletions(-) diff --git a/mediagoblin/gmg_commands/import_export.py b/mediagoblin/gmg_commands/import_export.py index 56b3913d..f6651327 100644 --- a/mediagoblin/gmg_commands/import_export.py +++ b/mediagoblin/gmg_commands/import_export.py @@ -51,44 +51,6 @@ def import_export_parse_setup(subparser): help='') -def _export_database(db, args): - print "\n== Exporting database ==\n" - - command = '{mongodump_path} -d {database} -o {mongodump_cache}'.format( - mongodump_path=args.mongodump_path, - database=db.name, - mongodump_cache=args._cache_path['database']) - - p = subprocess.Popen( - shlex.split(command)) - - p.wait() - - print "\n== Database exported ==\n" - - -def _export_media(db, args): - print "\n== Exporting media ==\n" - - media_cache = BasicFileStorage( - args._cache_path['media']) - - # TODO: Add export of queue files - queue_cache = BasicFileStorage( - args._cache_path['queue']) - - for entry in db.media_entries.find(): - for name, path in entry['media_files'].items(): - mc_file = media_cache.get_file(path, mode='wb') - mc_file.write( - mg_globals.public_store.get_file(path, mode='rb').read()) - - print(mc_file) - print(entry) - - print "\n== Media exported ==\n" - - def _import_media(db, args): """ Import media files @@ -117,26 +79,31 @@ def _import_media(db, args): def _import_database(db, args): + """ + Restore mongo database from ___.bson files + """ print "\n== Importing database ==\n" - command = '{mongorestore_path} -d {database}' - '{backup_dir}/{database}'.format( - mongorestore_path=args.mongorestore_path, - database=db.name, - backup_dir=args._cache_path['database']) - print command - - p = subprocess.Popen( - shlex.split(command)) + p = subprocess.Popen([ + args.mongorestore_path, + '-d', db.name, + os.path.join(args._cache_path['database'], db.name)]) + + print p p.wait() + print "\n== Database imported ==\n" + def env_import(args): - args.cache_path += 'mediagoblin-data' - args = _setup_paths(args) - + """ + Restore mongo database and media files from a tar archive + """ + # args.cache_path += 'mediagoblin-data' setup_global_and_app_config(args.conf_file) + + # Creates mg_globals.public_store and mg_globals.queue_store setup_storage() config, validation_result = read_mediagoblin_config(args.conf_file) @@ -149,13 +116,20 @@ def env_import(args): tf.extractall(args.cache_path) + args.cache_path += 'mediagoblin-data' + args = _setup_paths(args) + # Import database from extracted data _import_database(db, args) _import_media(db, args) + # _clean(args) def _setup_paths(args): + """ + Populate ``args`` variable with cache subpaths + """ args._cache_path = dict() PATH_MAP = { 'media': 'media', @@ -169,6 +143,9 @@ def _setup_paths(args): def _create_archive(args): + """ + Create the tar archive + """ print "\n== Compressing to archive ==\n" tf = tarfile.open( @@ -182,10 +159,16 @@ def _create_archive(args): def _clean(args): + """ + Remove cache directory + """ shutil.rmtree(args.cache_path) -def _check(args): +def _export_check(args): + """ + Run security checks for export command + """ if os.path.exists(args.tar_file): overwrite = raw_input( 'The output file already exists. ' @@ -205,10 +188,53 @@ def _check(args): return True +def _export_database(db, args): + print "\n== Exporting database ==\n" + + command = '{mongodump_path} -d {database} -o {mongodump_cache}'.format( + mongodump_path=args.mongodump_path, + database=db.name, + mongodump_cache=args._cache_path['database']) + + p = subprocess.Popen([ + args.mongodump_path, + '-d', db.name, + '-o', args._cache_path['database']]) + + p.wait() + + print "\n== Database exported ==\n" + + +def _export_media(db, args): + print "\n== Exporting media ==\n" + + media_cache = BasicFileStorage( + args._cache_path['media']) + + # TODO: Add export of queue files + queue_cache = BasicFileStorage( + args._cache_path['queue']) + + for entry in db.media_entries.find(): + for name, path in entry['media_files'].items(): + mc_file = media_cache.get_file(path, mode='wb') + mc_file.write( + mg_globals.public_store.get_file(path, mode='rb').read()) + + print(mc_file) + print(entry) + + print "\n== Media exported ==\n" + + def env_export(args): + """ + Export database and media files to a tar archive + """ args = _setup_paths(args) - if not _check(args): + if not _export_check(args): print "\n== Checks did not pass, exiting ==\n" sys.exit(0) From fabdccd0114cc75f2191419dcd708d7858718a45 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 12 Aug 2011 13:14:35 -0500 Subject: [PATCH 0853/2731] Missing multi=True closing this migration, oops :) --- mediagoblin/db/migrations.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py index 36bca5b3..171b5c83 100644 --- a/mediagoblin/db/migrations.py +++ b/mediagoblin/db/migrations.py @@ -62,6 +62,7 @@ def mediaentry_remove_thumbnail_file(database): database['media_entries'].update( {'thumbnail_file': {'$exists': True}}, {'$unset': {'thumbnail_file': 1}}, + multi=True) @RegisterMigration(4) From 4b860cb823fd160742ab050f481eb65e389f9a7b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 12 Aug 2011 19:59:19 -0500 Subject: [PATCH 0854/2731] Create processing errors and raise BadMediaFail on failure to load the image --- mediagoblin/process_media/__init__.py | 8 +++- mediagoblin/process_media/errors.py | 54 +++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 mediagoblin/process_media/errors.py diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py index 8e12ca4d..00402d7e 100644 --- a/mediagoblin/process_media/__init__.py +++ b/mediagoblin/process_media/__init__.py @@ -21,6 +21,8 @@ from celery.task import task from mediagoblin import mg_globals as mgg from contextlib import contextmanager +from mediagoblin.process_media.errors import BadMediaFail + THUMB_SIZE = 180, 180 MEDIUM_SIZE = 640, 640 @@ -51,7 +53,11 @@ def process_media_initial(media_id): mgg.queue_store, queued_filepath, 'source') - thumb = Image.open(queued_filename) + try: + thumb = Image.open(queued_filename) + except IOError: + raise BadMediaFail() + thumb.thumbnail(THUMB_SIZE, Image.ANTIALIAS) # ensure color mode is compatible with jpg if thumb.mode != "RGB": diff --git a/mediagoblin/process_media/errors.py b/mediagoblin/process_media/errors.py new file mode 100644 index 00000000..f2ae87ff --- /dev/null +++ b/mediagoblin/process_media/errors.py @@ -0,0 +1,54 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from mediagoblin.util import lazy_pass_to_ugettext as _ + +class BaseProcessingFail(Exception): + """ + Base exception that all other processing failure messages should + subclass from. + + You shouldn't call this itself; instead you should subclass it + and provid the exception_path and general_message applicable to + this error. + """ + general_message = u'' + + @property + def exception_path(self): + return u"%s.%s" % ( + self.__class__.__module__, self.__class__.__name__) + + def __init__(self, **metadata): + self.metadata = metadata or {} + + def generate_error_message(self): + """ + Generate an error to display to users in the panel. + + Uses this class's general_message, possibly interpolated + with any metadata in self.metadata['error_message_vars'], + if appropriate. + """ + return self.general_message % self.metadata.get('error_message_vars', {}) + + +class BadMediaFail(BaseProcessingFail): + """ + Error that should be raised when an inappropriate file was given + for the media type specified. + """ + general_message = _(u'Invalid file given for media type.') From 6c50c2106816c920ef404dea641a8eac8c5914eb Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 13 Aug 2011 07:48:34 -0500 Subject: [PATCH 0855/2731] Add fail_error and fail_metadata fields to MediaEntry and relevant migration --- mediagoblin/db/migrations.py | 17 +++++++++++++++++ mediagoblin/db/models.py | 10 +++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py index 171b5c83..5456b248 100644 --- a/mediagoblin/db/migrations.py +++ b/mediagoblin/db/migrations.py @@ -75,3 +75,20 @@ def mediaentry_add_queued_task_id(database): {'queued_task_id': {'$exists': False}}, {'$set': {'queued_task_id': None}}, multi=True) + + +@RegisterMigration(5) +def mediaentry_add_fail_error_and_metadata(database): + """ + Add 'fail_error' and 'fail_metadata' fields to media entries + """ + collection = database['media_entries'] + collection.update( + {'fail_error': {'$exists': False}}, + {'$set': {'fail_error': None}}, + multi=True) + + collection.update( + {'fail_metadata': {'$exists': False}}, + {'$set': {'fail_metadata': {}}}, + multi=True) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 0dcb6ce8..982883d7 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -171,6 +171,9 @@ class MediaEntry(Document): - attachment_files: A list of "attachment" files, ones that aren't critical to this piece of media but may be usefully relevant to people viewing the work. (currently unused.) + + - fail_error: path to the exception raised + - fail_metadata: """ __collection__ = 'media_entries' @@ -197,7 +200,12 @@ class MediaEntry(Document): # The following should be lists of lists, in appropriate file # record form - 'attachment_files': list} + 'attachment_files': list, + + # If things go badly in processing things, we'll store that + # data here + 'fail_error': unicode, + 'fail_metadata': dict} required_fields = [ 'uploader', 'created', 'media_type', 'slug'] From 4a477e246d07a4c26f084db2596caf3310b78609 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 13 Aug 2011 10:59:34 -0500 Subject: [PATCH 0856/2731] Proper handling of processor failures, working as hoped! BaseProcessingFail based exceptions recorded and marked appropriately in the database. Other exceptions also caught and marked (or rather not marked) appropriately in the database as well. --- mediagoblin/process_media/__init__.py | 76 +++++++++++++++++++++++---- mediagoblin/submit/views.py | 26 ++++++--- 2 files changed, 83 insertions(+), 19 deletions(-) diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py index 00402d7e..d6cdd747 100644 --- a/mediagoblin/process_media/__init__.py +++ b/mediagoblin/process_media/__init__.py @@ -15,13 +15,14 @@ # along with this program. If not, see . import Image -from mediagoblin.db.util import ObjectId -from celery.task import task -from mediagoblin import mg_globals as mgg from contextlib import contextmanager +from celery.task import task, Task +from celery import registry -from mediagoblin.process_media.errors import BadMediaFail +from mediagoblin.db.util import ObjectId +from mediagoblin import mg_globals as mgg +from mediagoblin.process_media.errors import BaseProcessingFail, BadMediaFail THUMB_SIZE = 180, 180 @@ -34,6 +35,7 @@ def create_pub_filepath(entry, filename): unicode(entry['_id']), filename]) + @contextmanager def closing(callback): try: @@ -41,12 +43,66 @@ def closing(callback): finally: pass -@task -def process_media_initial(media_id): - workbench = mgg.workbench_manager.create_workbench() - entry = mgg.database.MediaEntry.one( - {'_id': ObjectId(media_id)}) +################################ +# Media processing initial steps +################################ + +class ProcessMedia(Task): + """ + Pass this entry off for processing. + """ + def run(self, media_id): + """ + Pass the media entry off to the appropriate processing function + (for now just process_image...) + """ + entry = mgg.database.MediaEntry.one( + {'_id': ObjectId(media_id)}) + process_image(entry) + entry['state'] = u'processed' + entry.save() + + def on_failure(self, exc, task_id, args, kwargs, einfo): + """ + If the processing failed we should mark that in the database. + + Assuming that the exception raised is a subclass of BaseProcessingFail, + we can use that to get more information about the failure and store that + for conveying information to users about the failure, etc. + """ + media_id = args[0] + entry = mgg.database.MediaEntry.one( + {'_id': ObjectId(media_id)}) + + entry[u'state'] = u'failed' + + # Was this a BaseProcessingFail? In other words, was this a + # type of error that we know how to handle? + if isinstance(exc, BaseProcessingFail): + # Looks like yes, so record information about that failure and any + # metadata the user might have supplied. + entry[u'fail_error'] = exc.exception_path + entry[u'fail_metadata'] = exc.metadata + else: + # Looks like no, so just mark it as failed and don't record a + # failure_error (we'll assume it wasn't handled) and don't record + # metadata (in fact overwrite it if somehow it had previous info + # here) + entry[u'fail_error'] = None + entry[u'fail_metadata'] = {} + + entry.save() + + +process_media = registry.tasks[ProcessMedia.name] + + +def process_image(entry): + """ + Code to process an image + """ + workbench = mgg.workbench_manager.create_workbench() queued_filepath = entry['queued_media_file'] queued_filename = workbench.localized_file( @@ -107,8 +163,6 @@ def process_media_initial(media_id): media_files_dict['original'] = original_filepath if medium_processed: media_files_dict['medium'] = medium_filepath - entry['state'] = u'processed' - entry.save() # clean up workbench workbench.destroy_self() diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 1e8c6a68..25b3664b 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -14,9 +14,10 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +import uuid + from os.path import splitext from cgi import FieldStorage -from string import split from werkzeug.utils import secure_filename @@ -27,7 +28,7 @@ from mediagoblin.util import ( from mediagoblin.util import pass_to_ugettext as _ from mediagoblin.decorators import require_active_login from mediagoblin.submit import forms as submit_forms, security -from mediagoblin.process_media import process_media_initial +from mediagoblin.process_media import process_media from mediagoblin.messages import add_message, SUCCESS @@ -87,15 +88,24 @@ def submit_start(request): # Add queued filename to the entry entry['queued_media_file'] = queue_filepath + # We generate this ourselves so we know what the taks id is for + # retrieval later. + # (If we got it off the task's auto-generation, there'd be a risk of + # a race condition when we'd save after sending off the task) + task_id = unicode(uuid.uuid4()) + entry['queued_task_id'] = task_id + # Save now so we have this data before kicking off processing - entry.save(validate=False) - - result = process_media_initial.delay(unicode(entry['_id'])) - - # Save the task id - entry['queued_task_id'] = unicode(result.task_id) entry.save(validate=True) + # Pass off to processing + # + # (... don't change entry after this point to avoid race + # conditions with changes to the document via processing code) + process_media.apply_async( + [unicode(entry['_id'])], {}, + task_id=task_id) + add_message(request, SUCCESS, _('Woohoo! Submitted!')) return redirect(request, "mediagoblin.user_pages.user_home", From 6788b4123ef00241d6b6c80ca93d655e4307d6e3 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 13 Aug 2011 12:21:06 -0500 Subject: [PATCH 0857/2731] Capture and properly handle errors. Handled in several places: - In the run() of the ProcessMedia itself for handled (BaseProcessingFail derived) errors (best to do these not in on_failure because the errors are highlighted in celeryd in a way that looks inappropriate for when the errors are well handled) - In ProcessMedia.on_failure() for all other errors - In the submit view where all exceptions are caught, media is marked at having failed, then the error is re-raised. (The reason for this is that users running in "lazy" mode will get errors propagated by celery and so on_failure won't run for them.) --- mediagoblin/process_media/__init__.py | 56 ++++++++++++++++----------- mediagoblin/submit/views.py | 21 ++++++++-- 2 files changed, 50 insertions(+), 27 deletions(-) diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py index d6cdd747..69e4fc45 100644 --- a/mediagoblin/process_media/__init__.py +++ b/mediagoblin/process_media/__init__.py @@ -59,7 +59,14 @@ class ProcessMedia(Task): """ entry = mgg.database.MediaEntry.one( {'_id': ObjectId(media_id)}) - process_image(entry) + + # Try to process, and handle expected errors. + try: + process_image(entry) + except BaseProcessingFail, exc: + mark_entry_failed(entry[u'_id'], exc) + return + entry['state'] = u'processed' entry.save() @@ -71,33 +78,36 @@ class ProcessMedia(Task): we can use that to get more information about the failure and store that for conveying information to users about the failure, etc. """ - media_id = args[0] - entry = mgg.database.MediaEntry.one( - {'_id': ObjectId(media_id)}) - - entry[u'state'] = u'failed' - - # Was this a BaseProcessingFail? In other words, was this a - # type of error that we know how to handle? - if isinstance(exc, BaseProcessingFail): - # Looks like yes, so record information about that failure and any - # metadata the user might have supplied. - entry[u'fail_error'] = exc.exception_path - entry[u'fail_metadata'] = exc.metadata - else: - # Looks like no, so just mark it as failed and don't record a - # failure_error (we'll assume it wasn't handled) and don't record - # metadata (in fact overwrite it if somehow it had previous info - # here) - entry[u'fail_error'] = None - entry[u'fail_metadata'] = {} - - entry.save() + entry_id = args[0] + mark_entry_failed(entry_id, exc) process_media = registry.tasks[ProcessMedia.name] +def mark_entry_failed(entry_id, exc): + # Was this a BaseProcessingFail? In other words, was this a + # type of error that we know how to handle? + if isinstance(exc, BaseProcessingFail): + # Looks like yes, so record information about that failure and any + # metadata the user might have supplied. + mgg.database['media_entries'].update( + {'_id': entry_id}, + {'$set': {u'state': u'failed', + u'fail_error': exc.exception_path, + u'fail_metadata': exc.metadata}}) + else: + # Looks like no, so just mark it as failed and don't record a + # failure_error (we'll assume it wasn't handled) and don't record + # metadata (in fact overwrite it if somehow it had previous info + # here) + mgg.database['media_entries'].update( + {'_id': entry_id}, + {'$set': {u'state': u'failed', + u'fail_error': None, + u'fail_metadata': {}}}) + + def process_image(entry): """ Code to process an image diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 25b3664b..1ba17954 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -28,7 +28,7 @@ from mediagoblin.util import ( from mediagoblin.util import pass_to_ugettext as _ from mediagoblin.decorators import require_active_login from mediagoblin.submit import forms as submit_forms, security -from mediagoblin.process_media import process_media +from mediagoblin.process_media import process_media, mark_entry_failed from mediagoblin.messages import add_message, SUCCESS @@ -102,9 +102,22 @@ def submit_start(request): # # (... don't change entry after this point to avoid race # conditions with changes to the document via processing code) - process_media.apply_async( - [unicode(entry['_id'])], {}, - task_id=task_id) + try: + process_media.apply_async( + [unicode(entry['_id'])], {}, + task_id=task_id) + except BaseException as exc: + # The purpose of this section is because when running in "lazy" + # or always-eager-with-exceptions-propagated celery mode that + # the failure handling won't happen on Celery end. Since we + # expect a lot of users to run things in this way we have to + # capture stuff here. + # + # ... not completely the diaper pattern because the exception is + # re-raised :) + mark_entry_failed(entry[u'_id'], exc) + # re-raise the exception + raise add_message(request, SUCCESS, _('Woohoo! Submitted!')) From 2e5ea6b9b79244a0436264c5f1b606ec5328b70e Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 13 Aug 2011 12:52:22 -0500 Subject: [PATCH 0858/2731] @task decorator no longer used! Removing that import. --- mediagoblin/process_media/__init__.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py index 69e4fc45..18836919 100644 --- a/mediagoblin/process_media/__init__.py +++ b/mediagoblin/process_media/__init__.py @@ -17,7 +17,7 @@ import Image from contextlib import contextmanager -from celery.task import task, Task +from celery.task import Task from celery import registry from mediagoblin.db.util import ObjectId @@ -86,6 +86,18 @@ process_media = registry.tasks[ProcessMedia.name] def mark_entry_failed(entry_id, exc): + """ + Mark a media entry as having failed in its conversion. + + Uses the exception that was raised to mark more information. If the + exception is a derivative of BaseProcessingFail then we can store extra + information that can be useful for users telling them why their media failed + to process. + + Args: + - entry_id: The id of the media entry + + """ # Was this a BaseProcessingFail? In other words, was this a # type of error that we know how to handle? if isinstance(exc, BaseProcessingFail): From ff520ff53b7a17204c64beea28c9dbde13c5cf26 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 13 Aug 2011 12:52:56 -0500 Subject: [PATCH 0859/2731] Converting multi-line-string-comment to a real comment. --- mediagoblin/process_media/__init__.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py index 18836919..e1289a4c 100644 --- a/mediagoblin/process_media/__init__.py +++ b/mediagoblin/process_media/__init__.py @@ -147,11 +147,9 @@ def process_image(entry): with closing(thumb_file): thumb.save(thumb_file, "JPEG", quality=90) - """ - If the size of the original file exceeds the specified size of a `medium` - file, a `medium.jpg` files is created and later associated with the media - entry. - """ + # If the size of the original file exceeds the specified size of a `medium` + # file, a `medium.jpg` files is created and later associated with the media + # entry. medium = Image.open(queued_filename) medium_processed = False From 58d717064455c5e0de61f2b09519568bc4a3594a Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 13 Aug 2011 19:48:31 -0500 Subject: [PATCH 0860/2731] Updated extracted translations --- .../i18n/en/LC_MESSAGES/mediagoblin.po | 74 ++++++++++--------- 1 file changed, 41 insertions(+), 33 deletions(-) diff --git a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po index 0de5ca62..9c46ebe8 100644 --- a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-08-08 22:53-0500\n" +"POT-Creation-Date: 2011-08-13 19:47-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -41,26 +41,30 @@ msgstr "" msgid "Sorry, registration is disabled on this instance." msgstr "" -#: mediagoblin/auth/views.py:55 +#: mediagoblin/auth/views.py:57 msgid "Sorry, a user with that name already exists." msgstr "" -#: mediagoblin/auth/views.py:152 +#: mediagoblin/auth/views.py:61 +msgid "Sorry, that email address has already been taken." +msgstr "" + +#: mediagoblin/auth/views.py:159 msgid "" "Your email address has been verified. You may now login, edit your " "profile, and submit images!" msgstr "" -#: mediagoblin/auth/views.py:158 +#: mediagoblin/auth/views.py:165 msgid "The verification key or user id is incorrect" msgstr "" -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:186 #: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 msgid "Resent your verification email." msgstr "" -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26 +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "" @@ -100,19 +104,19 @@ msgstr "" msgid "You are editing a user's profile. Proceed with caution." msgstr "" -#: mediagoblin/submit/forms.py:29 +#: mediagoblin/submit/forms.py:25 msgid "File" msgstr "" -#: mediagoblin/submit/views.py:45 +#: mediagoblin/submit/views.py:46 msgid "You must provide a file." msgstr "" -#: mediagoblin/submit/views.py:48 +#: mediagoblin/submit/views.py:49 msgid "The file doesn't seem to be an image!" msgstr "" -#: mediagoblin/submit/views.py:96 +#: mediagoblin/submit/views.py:94 msgid "Woohoo! Submitted!" msgstr "" @@ -142,20 +146,20 @@ msgid "" "href=\"http://gnu.org/\">GNU project
            " msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:21 +#: mediagoblin/templates/mediagoblin/root.html:23 msgid "Welcome to GNU MediaGoblin!" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:26 +#: mediagoblin/templates/mediagoblin/root.html:28 msgid "Submit an item" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:31 +#: mediagoblin/templates/mediagoblin/root.html:33 #, python-format msgid "If you have an account, you can Login." msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:37 +#: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" "If you don't have an account, please %(username)s's media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:30 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 msgid "Sorry, no such user found." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:37 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:57 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 msgid "Verification needed" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:40 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 msgid "Almost done! Your account still needs to be verified." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:45 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "An email should arrive in a few moments with instructions on how to do so." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:49 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 msgid "In case it doesn't:" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 msgid "Resend verification email" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:60 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "" "Someone has registered an account with this username, but it still has to" " be verified." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:66 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format msgid "" "If you are that person but you've lost your verification email, you can " "log in and resend it." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:76 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 #, python-format msgid "%(username)s's profile" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:84 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:86 msgid "Edit profile" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:95 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:98 #, python-format msgid "View all of %(username)s's media" msgstr "" +#: mediagoblin/user_pages/forms.py:24 +msgid "Comment" +msgstr "" + From e3e9b8fcc962621e39a56748a7d34793a39e6bc6 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 14 Aug 2011 07:53:24 -0500 Subject: [PATCH 0861/2731] Switch BaseProcessingFail.exception_path's separator from period to colon Also removing .generator_error_message() which doesn't make sense really... we need to get the message when we don't have an instance of the exception, and this method requires an instance. --- mediagoblin/process_media/errors.py | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/mediagoblin/process_media/errors.py b/mediagoblin/process_media/errors.py index f2ae87ff..f8ae9ab2 100644 --- a/mediagoblin/process_media/errors.py +++ b/mediagoblin/process_media/errors.py @@ -29,22 +29,12 @@ class BaseProcessingFail(Exception): @property def exception_path(self): - return u"%s.%s" % ( + return u"%s:%s" % ( self.__class__.__module__, self.__class__.__name__) def __init__(self, **metadata): self.metadata = metadata or {} - def generate_error_message(self): - """ - Generate an error to display to users in the panel. - - Uses this class's general_message, possibly interpolated - with any metadata in self.metadata['error_message_vars'], - if appropriate. - """ - return self.general_message % self.metadata.get('error_message_vars', {}) - class BadMediaFail(BaseProcessingFail): """ From 6ee9c719025f954bfc996f11b4a89219f635a17f Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 14 Aug 2011 07:55:08 -0500 Subject: [PATCH 0862/2731] Method to get the failure exception object for a MediaEntry, if appropriate. --- mediagoblin/db/models.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 982883d7..b6e52441 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -297,6 +297,13 @@ class MediaEntry(Document): def uploader(self): return self.db.User.find_one({'_id': self['uploader']}) + def get_fail_exception(self): + """ + Get the exception that's appropriate for this error + """ + if self['fail_error']: + return util.import_component(self['fail_error']) + class MediaComment(Document): """ From 01c75c7ebaeee707271773c37f111ff9075d3656 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 14 Aug 2011 07:56:10 -0500 Subject: [PATCH 0863/2731] Processing panel view Now you can view your failed and in-process media items! --- mediagoblin/static/css/base.css | 12 ++++ .../user_pages/processing_panel.html | 67 +++++++++++++++++++ mediagoblin/user_pages/routing.py | 6 +- mediagoblin/user_pages/views.py | 52 +++++++++++++- 4 files changed, 135 insertions(+), 2 deletions(-) create mode 100644 mediagoblin/templates/mediagoblin/user_pages/processing_panel.html diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 59c2f49d..a421bb4d 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -291,3 +291,15 @@ ul.mediaentry_tags li { margin: 0px 5px 0px 0px; padding: 0px; } + + +/* media processing panel */ + +table.media_panel { + width: 100%; +} + +table.media_panel th { + font-weight: bold; + padding-bottom: 4px; +} \ No newline at end of file diff --git a/mediagoblin/templates/mediagoblin/user_pages/processing_panel.html b/mediagoblin/templates/mediagoblin/user_pages/processing_panel.html new file mode 100644 index 00000000..abc7efd3 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/user_pages/processing_panel.html @@ -0,0 +1,67 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% extends "mediagoblin/base.html" %} + +{% block mediagoblin_content %} + +

            {% trans %}Media processing panel{% endtrans %}

            + +

            + {% trans %}You can track the state of media being processed for your gallery here.{% endtrans %} +

            + +

            {% trans %}Media in-processing{% endtrans %}

            + +{% if processing_entries.count() %} + + + + + + + {% for media_entry in processing_entries %} + + + + + + {% endfor %} +
            TitleWhen submittedStatus
            {{ media_entry['title'] }}{{ media_entry['created'].strftime("%m-%d-%Y %I:%M %p") }}
            +{% else %} +

            {% trans %}No media in-processing{% endtrans %}

            +{% endif %} + +{% if failed_entries.count() %} +

            {% trans %}These uploads failed to process:{% endtrans %}

            + + + + + + + + {% for media_entry in failed_entries %} + + + + + + {% endfor %} +
            TitleWhen submittedReason for failure
            {{ media_entry['title'] }}{{ media_entry['created'].strftime("%m-%d-%Y %I:%M %p") }}{{ media_entry.get_fail_exception().general_message }}
            +{% endif %} +{% endblock %} diff --git a/mediagoblin/user_pages/routing.py b/mediagoblin/user_pages/routing.py index 3be0617d..bf9f12ab 100644 --- a/mediagoblin/user_pages/routing.py +++ b/mediagoblin/user_pages/routing.py @@ -33,4 +33,8 @@ user_routes = [ controller="mediagoblin.user_pages.views:atom_feed"), Route('mediagoblin.user_pages.media_post_comment', '/{user}/m/{media}/comment/add/', - controller="mediagoblin.user_pages.views:media_post_comment")] + controller="mediagoblin.user_pages.views:media_post_comment"), + Route('mediagoblin.user_pages.processing_panel', + '/{user}/panel/', + controller="mediagoblin.user_pages.views:processing_panel"), + ] diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index fb72a421..d4ff1fce 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -1,4 +1,4 @@ -# GNU MediaGoblin -- federated, autonomous media hosting +# MediaGoblin -- federated, autonomous media hosting # Copyright (C) 2011 Free Software Foundation, Inc # # This program is free software: you can redistribute it and/or modify @@ -175,3 +175,53 @@ def atom_feed(request): url=entry.url_for_self(request.urlgen)) return feed.get_response() + + +@require_active_login +def processing_panel(request): + """ + Show to the user what media is still in conversion/processing... + and what failed, and why! + """ + # Get the user + user = request.db.User.find_one( + {'username': request.matchdict['user'], + 'status': 'active'}) + + # Make sure the user exists and is active + if not user: + return exc.HTTPNotFound() + elif user['status'] != u'active': + return render_to_response( + request, + 'mediagoblin/user_pages/user.html', + {'user': user}) + + # XXX: Should this be a decorator? + # + # Make sure we have permission to access this user's panel. Only + # admins and this user herself should be able to do so. + if not (user[u'_id'] == request.user[u'_id'] + or request.user.is_admin): + # No? Let's simply redirect to this user's homepage then. + return redirect( + request, 'mediagoblin.user_pages.user_home', + user=request.matchdict['user']) + + # Get media entries which are in-processing + processing_entries = request.db.MediaEntry.find( + {'uploader': user['_id'], + 'state': 'processing'}).sort('created', DESCENDING) + + # Get media entries which have failed to process + failed_entries = request.db.MediaEntry.find( + {'uploader': user['_id'], + 'state': 'failed'}).sort('created', DESCENDING) + + # Render to response + return render_to_response( + request, + 'mediagoblin/user_pages/processing_panel.html', + {'user': user, + 'processing_entries': processing_entries, + 'failed_entries': failed_entries}) From 68f3ffbe8272c58b0421ad57f49374723838f0e4 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 14 Aug 2011 09:12:43 -0500 Subject: [PATCH 0864/2731] Malicious uploads test with fake but not really image files working! :) --- mediagoblin/tests/test_submission.py | 59 +++++++++++++++++----------- 1 file changed, 36 insertions(+), 23 deletions(-) diff --git a/mediagoblin/tests/test_submission.py b/mediagoblin/tests/test_submission.py index a7248255..9ae129cd 100644 --- a/mediagoblin/tests/test_submission.py +++ b/mediagoblin/tests/test_submission.py @@ -156,7 +156,7 @@ class TestSubmission: util.clear_test_template_context() response = self.test_app.post( '/submit/', { - 'title': 'Malicious Upload 2' + 'title': 'Malicious Upload 1' }, upload_files=[( 'file', EVIL_FILE)]) @@ -164,33 +164,46 @@ class TestSubmission: form = context['submit_form'] assert form.file.errors == ['The file doesn\'t seem to be an image!'] - # NOTE: The following 2 tests will fail. These can be uncommented - # after http://bugs.foocorp.net/issues/324 is resolved and - # bad files are handled properly. + # NOTE: The following 2 tests will ultimately fail, but they + # *will* pass the initial form submission step. Instead, + # they'll be caught as failures during the processing step. # Test non-supported file with .jpg extension # ------------------------------------------- - #util.clear_test_template_context() - #response = self.test_app.post( - # '/submit/', { - # 'title': 'Malicious Upload 2' - # }, upload_files=[( - # 'file', EVIL_JPG)]) + util.clear_test_template_context() + response = self.test_app.post( + '/submit/', { + 'title': 'Malicious Upload 2' + }, upload_files=[( + 'file', EVIL_JPG)]) + response.follow() + assert_equal( + urlparse.urlsplit(response.location)[2], + '/u/chris/') - #context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] - #form = context['submit_form'] - #assert form.file.errors == ['The file doesn\'t seem to be an image!'] + entry = mg_globals.database.MediaEntry.find_one( + {'title': 'Malicious Upload 2'}) + assert_equal(entry['state'], 'failed') + assert_equal( + entry['fail_error'], + u'mediagoblin.process_media.errors:BadMediaFail') # Test non-supported file with .png extension # ------------------------------------------- - #util.clear_test_template_context() - #response = self.test_app.post( - # '/submit/', { - # 'title': 'Malicious Upload 3' - # }, upload_files=[( - # 'file', EVIL_PNG)]) - - #context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] - #form = context['submit_form'] - #assert form.file.errors == ['The file doesn\'t seem to be an image!'] + util.clear_test_template_context() + response = self.test_app.post( + '/submit/', { + 'title': 'Malicious Upload 3' + }, upload_files=[( + 'file', EVIL_PNG)]) + response.follow() + assert_equal( + urlparse.urlsplit(response.location)[2], + '/u/chris/') + entry = mg_globals.database.MediaEntry.find_one( + {'title': 'Malicious Upload 3'}) + assert_equal(entry['state'], 'failed') + assert_equal( + entry['fail_error'], + u'mediagoblin.process_media.errors:BadMediaFail') From 0445100b30a2236539a5695b172b5256c0460ca2 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Tue, 16 Aug 2011 08:18:38 -0500 Subject: [PATCH 0865/2731] Pulled down latest translations --- .../i18n/eo/LC_MESSAGES/mediagoblin.mo | Bin 0 -> 5561 bytes .../i18n/eo/LC_MESSAGES/mediagoblin.po | 319 ++++++++++++++++++ .../i18n/ja/LC_MESSAGES/mediagoblin.mo | Bin 0 -> 6281 bytes .../i18n/ja/LC_MESSAGES/mediagoblin.po | 310 +++++++++++++++++ .../i18n/zh_TW/LC_MESSAGES/mediagoblin.mo | Bin 0 -> 5387 bytes .../i18n/zh_TW/LC_MESSAGES/mediagoblin.po | 310 +++++++++++++++++ 6 files changed, 939 insertions(+) create mode 100644 mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo create mode 100644 mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po create mode 100644 mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo create mode 100644 mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po create mode 100644 mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo create mode 100644 mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo new file mode 100644 index 0000000000000000000000000000000000000000..114ab7c0ebf4c33f53390840b0190e714907e557 GIT binary patch literal 5561 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 Ql`d#7^j9uXSaVwa7Y|C6mH+?% literal 0 HcmV?d00001 diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po new file mode 100644 index 00000000..ea19af01 --- /dev/null +++ b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po @@ -0,0 +1,319 @@ +# Translations template for PROJECT. +# Copyright (C) 2011 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# +# , 2011. +# Fernando Inocencio , 2011. +msgid "" +msgstr "" +"Project-Id-Version: GNU MediaGoblin\n" +"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" +"POT-Creation-Date: 2011-08-13 19:47-0500\n" +"PO-Revision-Date: 2011-08-15 20:33+0000\n" +"Last-Translator: fajro \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 0.9.6\n" +"Language: eo\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46 +msgid "Username" +msgstr "Uzantnomo" + +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50 +msgid "Password" +msgstr "Pasvorton" + +#: mediagoblin/auth/forms.py:34 +msgid "Passwords must match." +msgstr "Pasvortoj devas koincidi. " + +#: mediagoblin/auth/forms.py:36 +msgid "Confirm password" +msgstr "Retajpu pasvorton" + +#: mediagoblin/auth/forms.py:39 +msgid "Email address" +msgstr "Retadreso" + +#: mediagoblin/auth/views.py:40 +msgid "Sorry, registration is disabled on this instance." +msgstr "Bedaŭrinde, registrado estas malaktivita en tiu ĉi instanco." + +#: mediagoblin/auth/views.py:57 +msgid "Sorry, a user with that name already exists." +msgstr "Bedaŭrinde, uzanto kun tiu nomo jam ekzistas." + +#: mediagoblin/auth/views.py:61 +msgid "Sorry, that email address has already been taken." +msgstr "" + +#: mediagoblin/auth/views.py:159 +msgid "" +"Your email address has been verified. You may now login, edit your profile, " +"and submit images!" +msgstr "" +"Vian retadreson estas kontrolita. Vi povas nun ensaluti, redakti vian " +"profilon, kaj alŝuti bildojn!" + +#: mediagoblin/auth/views.py:165 +msgid "The verification key or user id is incorrect" +msgstr "La kontrol-kodo aŭ la uzantonomo ne estas korekta" + +#: mediagoblin/auth/views.py:186 +#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +msgid "Resent your verification email." +msgstr "Resendi vian kontrol-mesaĝon." + +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 +msgid "Title" +msgstr "Titolo" + +#: mediagoblin/edit/forms.py:29 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:30 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +msgid "Tags" +msgstr "Etikedoj" + +#: mediagoblin/edit/forms.py:38 +msgid "Bio" +msgstr "Bio" + +#: mediagoblin/edit/forms.py:41 +msgid "Website" +msgstr "Retejo" + +#: mediagoblin/edit/forms.py:43 +msgid "Improperly formed URL" +msgstr "" + +#: mediagoblin/edit/views.py:54 +msgid "An entry with that slug already exists for this user." +msgstr "" + +#: mediagoblin/edit/views.py:75 +msgid "You are editing another user's media. Proceed with caution." +msgstr "" + +#: mediagoblin/edit/views.py:96 +msgid "You are editing a user's profile. Proceed with caution." +msgstr "" + +#: mediagoblin/submit/forms.py:25 +msgid "File" +msgstr "Dosiero" + +#: mediagoblin/submit/views.py:46 +msgid "You must provide a file." +msgstr "Vi devas provizi dosieron." + +#: mediagoblin/submit/views.py:49 +msgid "The file doesn't seem to be an image!" +msgstr "" + +#: mediagoblin/submit/views.py:94 +msgid "Woohoo! Submitted!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:22 +msgid "GNU MediaGoblin" +msgstr "GNU MediaGoblin" + +#: mediagoblin/templates/mediagoblin/base.html:45 +msgid "Mediagoblin logo" +msgstr " Logogramo de Mediagoblin" + +#: mediagoblin/templates/mediagoblin/base.html:51 +msgid "Submit media" +msgstr "Alŝuti aŭd-vid-dosieron" + +#: mediagoblin/templates/mediagoblin/base.html:62 +msgid "verify your email!" +msgstr "kontrolu vian retpoŝton! " + +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "Login" +msgstr "Ensaluti" + +#: mediagoblin/templates/mediagoblin/base.html:88 +msgid "" +"Powered by MediaGoblin, a GNU project" +msgstr "" +"Provizita de MediaGoblin, unu el la " +"GNU projectoj" + +#: mediagoblin/templates/mediagoblin/root.html:23 +msgid "Welcome to GNU MediaGoblin!" +msgstr "Bonvenon al GNU MediaGoblin!" + +#: mediagoblin/templates/mediagoblin/root.html:28 +msgid "Submit an item" +msgstr "Alŝuti dosieron" + +#: mediagoblin/templates/mediagoblin/root.html:33 +#, python-format +msgid "If you have an account, you can Login." +msgstr "Se vi havas konton, vi povas Ensaluti." + +#: mediagoblin/templates/mediagoblin/root.html:39 +#, python-format +msgid "" +"If you don't have an account, please Register." +msgstr "" +"Se vi ne havas konton, bonvolu Registriĝi." + +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +msgid "Log in" +msgstr "Ensaluti" + +#: mediagoblin/templates/mediagoblin/auth/login.html:29 +msgid "Login failed!" +msgstr "Ensalutado malsukcesis!" + +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 +#: mediagoblin/templates/mediagoblin/submit/start.html:29 +msgid "Submit" +msgstr "Alŝuti" + +#: mediagoblin/templates/mediagoblin/auth/login.html:42 +msgid "Don't have an account yet?" +msgstr "Ĉu ankoraŭ sen konto?" + +#: mediagoblin/templates/mediagoblin/auth/login.html:45 +msgid "Create one here!" +msgstr "Kreu unu ĉi tie!" + +#: mediagoblin/templates/mediagoblin/auth/register.html:27 +msgid "Create an account!" +msgstr "Kreu konton!" + +#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to activate your GNU MediaGoblin account, open the following URL in\n" +"your web browser:\n" +"\n" +"%(verification_url)s" +msgstr "" +"Sal %(username)s,\n" +"\n" +"por aktivigi vian GNU MediaGoblin konton, malfermu la sekvantan URLon en via retumilo:\n" +"\n" +"%(verification_url)s" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:29 +#, python-format +msgid "Editing %(media_title)s" +msgstr "Editing %(media_title)s" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:36 +msgid "Cancel" +msgstr "Nuligi" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:37 +msgid "Save changes" +msgstr "Konservi ŝanĝojn" + +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 +#, python-format +msgid "Editing %(username)s's profile" +msgstr "Redaktanta profilon de %(username)s'" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:31 +msgid "Media tagged with:" +msgstr "Dosiero markita kiel:" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:42 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:48 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:104 +msgid "atom feed" +msgstr "Atom-a informfluado" + +#: mediagoblin/templates/mediagoblin/submit/start.html:26 +msgid "Submit yer media" +msgstr "Alŝutu vian aŭd-vid-dosieron" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#, python-format +msgid "%(username)s's media" +msgstr "%(username)s-a aŭd-vid-dosiero" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 +msgid "Sorry, no such user found." +msgstr "Uzanto ne trovita." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +msgid "Verification needed" +msgstr "Kontrolon bezonata" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +msgid "Almost done! Your account still needs to be verified." +msgstr "Preskaŭ farite! Via konto ankoraŭ devas esti kontrolita." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +msgid "" +"An email should arrive in a few moments with instructions on how to do so." +msgstr "" +"Retmesaĝo alvenos post kelkaj momentoj kun instrukcioj pri kiel tion fari." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +msgid "In case it doesn't:" +msgstr "Se tio ne okazas:" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +msgid "Resend verification email" +msgstr "Resendu kontrolmesaĝon" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +msgid "" +"Someone has registered an account with this username, but it still has to be" +" verified." +msgstr "" +"Iu registris konton kun tiu ĉi uzantonomo, sed ĝi devas ankoraŭ esti " +"kontrolita." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#, python-format +msgid "" +"If you are that person but you've lost your verification email, you can log in and resend it." +msgstr "" +"Se vi estas tiu sed vi perdis vian kontrolmesaĝon, vi povas ensaluti kaj resendi ĝin." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 +#, python-format +msgid "%(username)s's profile" +msgstr "%(username)s'-a profilo" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:86 +msgid "Edit profile" +msgstr "Redakti profilo" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:98 +#, python-format +msgid "View all of %(username)s's media" +msgstr "Rigardu ĉiuj aŭd-vid-dosierojn de %(username)s'" + +#: mediagoblin/user_pages/forms.py:24 +msgid "Comment" +msgstr "Komento" + + diff --git a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo new file mode 100644 index 0000000000000000000000000000000000000000..78455ad2709820cd5393594c99bde44e5980926d GIT binary patch literal 6281 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, 2011. +msgid "" +msgstr "" +"Project-Id-Version: GNU MediaGoblin\n" +"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" +"POT-Creation-Date: 2011-08-13 19:47-0500\n" +"PO-Revision-Date: 2011-08-14 00:47+0000\n" +"Last-Translator: cwebber \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 0.9.6\n" +"Language: ja\n" +"Plural-Forms: nplurals=1; plural=0\n" + +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46 +msgid "Username" +msgstr "ユーザネーム" + +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50 +msgid "Password" +msgstr "パスワード" + +#: mediagoblin/auth/forms.py:34 +msgid "Passwords must match." +msgstr "パスワードが一致している必要があります。" + +#: mediagoblin/auth/forms.py:36 +msgid "Confirm password" +msgstr "パスワードを確認" + +#: mediagoblin/auth/forms.py:39 +msgid "Email address" +msgstr "メールアドレス" + +#: mediagoblin/auth/views.py:40 +msgid "Sorry, registration is disabled on this instance." +msgstr "申し訳ありませんが、このインスタンスで登録は無効になっています。" + +#: mediagoblin/auth/views.py:57 +msgid "Sorry, a user with that name already exists." +msgstr "申し訳ありませんが、その名前を持つユーザーがすでに存在しています。" + +#: mediagoblin/auth/views.py:61 +msgid "Sorry, that email address has already been taken." +msgstr "" + +#: mediagoblin/auth/views.py:159 +msgid "" +"Your email address has been verified. You may now login, edit your profile, " +"and submit images!" +msgstr "メアドが確認されています。これで、ログインしてプロファイルを編集し、画像を提出することができます!" + +#: mediagoblin/auth/views.py:165 +msgid "The verification key or user id is incorrect" +msgstr "検証キーまたはユーザーIDが間違っています" + +#: mediagoblin/auth/views.py:186 +#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +msgid "Resent your verification email." +msgstr "検証メールを再送しました。" + +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 +msgid "Title" +msgstr "タイトル" + +#: mediagoblin/edit/forms.py:29 +msgid "Slug" +msgstr "スラグ" + +#: mediagoblin/edit/forms.py:30 +msgid "The slug can't be empty" +msgstr "スラグは必要です。" + +#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +msgid "Tags" +msgstr "タグ" + +#: mediagoblin/edit/forms.py:38 +msgid "Bio" +msgstr "自己紹介" + +#: mediagoblin/edit/forms.py:41 +msgid "Website" +msgstr "URL" + +#: mediagoblin/edit/forms.py:43 +msgid "Improperly formed URL" +msgstr "不適切な形式のURL" + +#: mediagoblin/edit/views.py:54 +msgid "An entry with that slug already exists for this user." +msgstr "そのスラグを持つエントリは、このユーザーは既に存在します。" + +#: mediagoblin/edit/views.py:75 +msgid "You are editing another user's media. Proceed with caution." +msgstr "あなたは、他のユーザーのメディアを編集しています。ご注意ください。" + +#: mediagoblin/edit/views.py:96 +msgid "You are editing a user's profile. Proceed with caution." +msgstr "あなたは、他のユーザーのプロファイルを編集しています。ご注意ください。" + +#: mediagoblin/submit/forms.py:25 +msgid "File" +msgstr "ファイル" + +#: mediagoblin/submit/views.py:46 +msgid "You must provide a file." +msgstr "ファイルを提供する必要があります。" + +#: mediagoblin/submit/views.py:49 +msgid "The file doesn't seem to be an image!" +msgstr "ファイルが画像ではないようです!" + +#: mediagoblin/submit/views.py:94 +msgid "Woohoo! Submitted!" +msgstr "投稿終了!" + +#: mediagoblin/templates/mediagoblin/base.html:22 +msgid "GNU MediaGoblin" +msgstr "GNU MediaGoblin" + +#: mediagoblin/templates/mediagoblin/base.html:45 +msgid "Mediagoblin logo" +msgstr "MediaGoblinロゴ" + +#: mediagoblin/templates/mediagoblin/base.html:51 +msgid "Submit media" +msgstr "コンテンツを投稿" + +#: mediagoblin/templates/mediagoblin/base.html:62 +msgid "verify your email!" +msgstr "メアドを確認してください!" + +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "Login" +msgstr "ログイン" + +#: mediagoblin/templates/mediagoblin/base.html:88 +msgid "" +"Powered by MediaGoblin, a GNU project" +msgstr "" +"Powered by MediaGoblin, a GNU project" + +#: mediagoblin/templates/mediagoblin/root.html:23 +msgid "Welcome to GNU MediaGoblin!" +msgstr "GNU MediaGoblinへようこそ!" + +#: mediagoblin/templates/mediagoblin/root.html:28 +msgid "Submit an item" +msgstr "アイテムを投稿" + +#: mediagoblin/templates/mediagoblin/root.html:33 +#, python-format +msgid "If you have an account, you can Login." +msgstr "もしアカウントが持ったら、ログインできます。" + +#: mediagoblin/templates/mediagoblin/root.html:39 +#, python-format +msgid "" +"If you don't have an account, please Register." +msgstr "アカウントが持っていなければ、登録してお願いします。" + +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +msgid "Log in" +msgstr "ログイン" + +#: mediagoblin/templates/mediagoblin/auth/login.html:29 +msgid "Login failed!" +msgstr "ログイン失敗!" + +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 +#: mediagoblin/templates/mediagoblin/submit/start.html:29 +msgid "Submit" +msgstr "送信" + +#: mediagoblin/templates/mediagoblin/auth/login.html:42 +msgid "Don't have an account yet?" +msgstr "まだアカウントを持っていませんか?" + +#: mediagoblin/templates/mediagoblin/auth/login.html:45 +msgid "Create one here!" +msgstr "ここで作成!" + +#: mediagoblin/templates/mediagoblin/auth/register.html:27 +msgid "Create an account!" +msgstr "アカウントを作成!" + +#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to activate your GNU MediaGoblin account, open the following URL in\n" +"your web browser:\n" +"\n" +"%(verification_url)s" +msgstr "" +"%(username)s様へ\n" +"\n" +"GNU MediaGoblinアカウントを検証にするには、このURLを開いてください。\n" +"\n" +"%(verification_url)s" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:29 +#, python-format +msgid "Editing %(media_title)s" +msgstr "%(media_title)sを編集中" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:36 +msgid "Cancel" +msgstr "キャンセル" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:37 +msgid "Save changes" +msgstr "投稿する" + +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 +#, python-format +msgid "Editing %(username)s's profile" +msgstr "%(username)sさんのプロフィールを編集中" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:31 +msgid "Media tagged with:" +msgstr "タグ付けされたコンテンツ:" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:42 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:48 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:104 +msgid "atom feed" +msgstr "Atomフィード" + +#: mediagoblin/templates/mediagoblin/submit/start.html:26 +msgid "Submit yer media" +msgstr "コンテンツを投稿" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#, python-format +msgid "%(username)s's media" +msgstr "%(username)sさんのコンテンツ" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 +msgid "Sorry, no such user found." +msgstr "申し訳ありませんが、そのユーザーは見つかりませんでした。" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +msgid "Verification needed" +msgstr "確認必要" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +msgid "Almost done! Your account still needs to be verified." +msgstr "ほぼ完了!アカウントを検証する必要があります。" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +msgid "" +"An email should arrive in a few moments with instructions on how to do so." +msgstr "メールは、その方法の指示でいくつかの瞬間に到着します。" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +msgid "In case it doesn't:" +msgstr "到着しない場合は、" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +msgid "Resend verification email" +msgstr "確認メールを再送信" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +msgid "" +"Someone has registered an account with this username, but it still has to be" +" verified." +msgstr "誰かがこのユーザ名でアカウントを登録しているが、まだ検証する必要があります。" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#, python-format +msgid "" +"If you are that person but you've lost your verification email, you can log in and resend it." +msgstr "あなたの確認メールを紛失した場合、ログインして再送できます。" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 +#, python-format +msgid "%(username)s's profile" +msgstr "%(username)sさんのプロフィール" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:86 +msgid "Edit profile" +msgstr "プロフィールを編集" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:98 +#, python-format +msgid "View all of %(username)s's media" +msgstr "%(username)sさんのコンテンツをすべて見る" + +#: mediagoblin/user_pages/forms.py:24 +msgid "Comment" +msgstr "" + + diff --git a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo new file mode 100644 index 0000000000000000000000000000000000000000..9615e44c791e27e0764e8a265c872b0db189af94 GIT binary patch literal 5387 zcmbW4Yiu0V6~}K|=)*v11Enn>dN(3Upx(7jd2Sv+LP$ds8pVbPJ~W!$y}LWGJLAsG z#w@6kA94JOV?!JpCx*PkV&f!Ef@5s#v{mUtYO7WiYNbj=m3AI0@ujNN_EXjWnLE2) zJA_uX68~~%?mhS1^Z4J%Ushaqh~ei^{Jj%@Z~ZKd7JqKMjhTZehYj7B!7EB@@oWq790a>!M}raF8(FP8o;#yvmp6#6#O!H1|&Q0 zg0%lnL9+J;a25C`kmB)gknG-8BmLh5Vhgqvr1R|rIhX|DD(eF800%%i-vsy&xB#vN z{{emjyzd6aegJ+C#1?EEr1_V?w?D(!FF>;MLj<7c(0(d|8F?cT+!eQuK+X6O% zT69#xJt-5lDIX7^L^tW3x5jjUYXL0K6M~8l?9o zNO5=>r1ibvYH%cYe+8sC{v4$G{VP}x{u6umJZ*^N`jzti?wpai$6UFgdiJ_HWdl}ZMM72B#t%xS7^-nFLo1L){~| zs&R!UMGMdBS)o}bZ&9r@o|=}Ci(9I$nOxU+T5lnP37wm|G^JTaUe2}B3UCLeW{Ykl*d`dT1Xtjc zJW{Cq2#4iqVTcfWLf2MXJgva_#d$n0tVh}Aglbj7N&{6(@l|X5u=%E+=M<>SNS8NG!Zd1mJ}1iZ#y*CJv(X6P-5ShS{Q)f$<kNUFQj^BgcLqBun zK^|w351N#e$(pExQ9k7Y-!siFAuS6Wko^SzpnmBKT4-66{$O0qB=S!)~>EhKD;X4dHj_XFIIj-bLry^Ic({xCl zJYU(TPh0D^7Rr8)nn20;f%c6W!4+1WRzICGn7HQXK15UIxrQ4HovUiKoV=HE2$PgF z6ekqT^m8v$Wrmny=~-Nah^B8WFIV_w6k<3gwP1K_B8>Q(IAnBr0Bd%NX5FyD+s%}k z2ye`#%y5$)64qW3=(u79Au9uvbm#U7RXSw8Q6USE%S->%0`%{Ilf!cB&vnHe0@ zi1Ik@nHUnXF8Ie|35Z!fp3!p&5}plMp`~)D;c$~svQhqWdUw+`xXSw&_){X>hEjlWi!7-II73GYmseRjXoJy@LG7vjbFWAt|B zqBnZ9IM-hqYsLH0+aum&PlVYE-B^J4&RB;t)>E8mwa>Sej?CGUgQbpli*wWVtG!;~ z5^UIK+Kcmt?6$)ZR%#uEk6zcfS7^54V;h3A=N;I5!OU-Jt?@XP9KS zUu5>curu9V`G#^&%zESf_PKrTiT9a3H|tLH(ax=X(#sID#|qfQJ9&J`%fYuotkk~O zx$qiXl~e7J1CKKIa>0B5+>)@#N6WvXcyVSjn7veUC;)!EX+rh!i}U^N{8<(xW10Ri zd!(?$4!)}FLr3ktL(3bDOK)pA4kq*Awhnk_=Izk}c653UmWC05zS0{f;E6kZ!G5Fl zTAxzLgY)JXCFJ~+^ZL0``$>85S|oZOJ!qS?Pfa2Ah%i!IymFl09J2?`73WS@Rg*6? z<&PY9bk6QPO}907_fFdj`%7K@rPeki#d+sAs>I*ZX)oC44?APy$fmt8Qa+M5(YN?9 zuxd^DRxX?N3Ul_pUis-$u~W$({H$`%J#xu8aJt&sHM~R(b`+e+lPIK0z?j|EYDU7;Pr`-10r5{ju?2YedHj1p*YiTcb{LjW^smmQ99P?9ywbP66f%Q-8LqR=l}UiLiO5Rvydu+ zjI`V#coe8*@Lo!!FQ7rI%en{}-yQ4o-o0F0*heSn7^vjV9vgOhy6oYh(2_7?me(=w zzCG)X&NG=V2%XbCObaV9^94C5M?}wir=2an^aIMOwVF9cPs5Mu|HPs6?al%^K^`XX z9P;5#jIw1~#huCH-jxIBVW{iykk>jLLKZ1F_JKJRK?s{4Lq{QZQab|~FAHOYqtCr} z-g7z+c%z5h!F`cyE~xhAlb6X(as~#A3rA#b0^g-JE)!sgA<6>1Dnl6|IdcaV;3*_f q>YD8IS{}GA(^++mdae75Geh#cZs%J_TJ^`1yp9kW1hjhZ5c?12Y!R3M literal 0 HcmV?d00001 diff --git a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po new file mode 100644 index 00000000..d8f8c98d --- /dev/null +++ b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po @@ -0,0 +1,310 @@ +# Translations template for PROJECT. +# Copyright (C) 2011 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# +# , 2011. +msgid "" +msgstr "" +"Project-Id-Version: GNU MediaGoblin\n" +"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" +"POT-Creation-Date: 2011-08-13 19:47-0500\n" +"PO-Revision-Date: 2011-08-14 00:47+0000\n" +"Last-Translator: cwebber \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 0.9.6\n" +"Language: zh_TW\n" +"Plural-Forms: nplurals=1; plural=0\n" + +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46 +msgid "Username" +msgstr "使用者名稱" + +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50 +msgid "Password" +msgstr "密碼" + +#: mediagoblin/auth/forms.py:34 +msgid "Passwords must match." +msgstr "密碼必須一至" + +#: mediagoblin/auth/forms.py:36 +msgid "Confirm password" +msgstr "確認密碼" + +#: mediagoblin/auth/forms.py:39 +msgid "Email address" +msgstr "電子郵件位置" + +#: mediagoblin/auth/views.py:40 +msgid "Sorry, registration is disabled on this instance." +msgstr "抱歉, 這個項目已經被暫停註冊." + +#: mediagoblin/auth/views.py:57 +msgid "Sorry, a user with that name already exists." +msgstr "抱歉, 這個使用者名稱已經存在." + +#: mediagoblin/auth/views.py:61 +msgid "Sorry, that email address has already been taken." +msgstr "" + +#: mediagoblin/auth/views.py:159 +msgid "" +"Your email address has been verified. You may now login, edit your profile, " +"and submit images!" +msgstr "你的電子郵件位址已被認證. 你現在就可以登入, 編輯你的個人檔案而且送出照片!" + +#: mediagoblin/auth/views.py:165 +msgid "The verification key or user id is incorrect" +msgstr "認證碼或是使用者帳號錯誤" + +#: mediagoblin/auth/views.py:186 +#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +msgid "Resent your verification email." +msgstr "重送認證郵件." + +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 +msgid "Title" +msgstr "稱謂" + +#: mediagoblin/edit/forms.py:29 +msgid "Slug" +msgstr "自訂字串" + +#: mediagoblin/edit/forms.py:30 +msgid "The slug can't be empty" +msgstr "自訂字串不能空白" + +#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +msgid "Tags" +msgstr "標籤" + +#: mediagoblin/edit/forms.py:38 +msgid "Bio" +msgstr "自傳" + +#: mediagoblin/edit/forms.py:41 +msgid "Website" +msgstr "網站" + +#: mediagoblin/edit/forms.py:43 +msgid "Improperly formed URL" +msgstr "部正確的網址" + +#: mediagoblin/edit/views.py:54 +msgid "An entry with that slug already exists for this user." +msgstr "這個自訂字串已經被其他人用了" + +#: mediagoblin/edit/views.py:75 +msgid "You are editing another user's media. Proceed with caution." +msgstr "你正在編輯他人的媒體檔案. 請謹慎處理." + +#: mediagoblin/edit/views.py:96 +msgid "You are editing a user's profile. Proceed with caution." +msgstr "你正在編輯他人的檔案. 請謹慎處理." + +#: mediagoblin/submit/forms.py:25 +msgid "File" +msgstr "檔案" + +#: mediagoblin/submit/views.py:46 +msgid "You must provide a file." +msgstr "你必須提供一個檔案" + +#: mediagoblin/submit/views.py:49 +msgid "The file doesn't seem to be an image!" +msgstr "檔案看起來不像是一個圖片喔!" + +#: mediagoblin/submit/views.py:94 +msgid "Woohoo! Submitted!" +msgstr "喔耶! 送出去了!" + +#: mediagoblin/templates/mediagoblin/base.html:22 +msgid "GNU MediaGoblin" +msgstr "GNU MediaGoblin" + +#: mediagoblin/templates/mediagoblin/base.html:45 +msgid "Mediagoblin logo" +msgstr "Mediagoblin 標誌" + +#: mediagoblin/templates/mediagoblin/base.html:51 +msgid "Submit media" +msgstr "送出媒體" + +#: mediagoblin/templates/mediagoblin/base.html:62 +msgid "verify your email!" +msgstr "確認您的電子郵件!" + +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "Login" +msgstr "登入" + +#: mediagoblin/templates/mediagoblin/base.html:88 +msgid "" +"Powered by MediaGoblin, a GNU project" +msgstr "" +"由 MediaGoblin 製作, 她是一個 GNU project" + +#: mediagoblin/templates/mediagoblin/root.html:23 +msgid "Welcome to GNU MediaGoblin!" +msgstr "GNU MediaGoblin 歡迎您!" + +#: mediagoblin/templates/mediagoblin/root.html:28 +msgid "Submit an item" +msgstr "送出一個項目" + +#: mediagoblin/templates/mediagoblin/root.html:33 +#, python-format +msgid "If you have an account, you can Login." +msgstr "如果您有帳號了, 你可以直接 登入." + +#: mediagoblin/templates/mediagoblin/root.html:39 +#, python-format +msgid "" +"If you don't have an account, please Register." +msgstr "如果您尚未取得帳號, 請 註冊." + +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +msgid "Log in" +msgstr "登入" + +#: mediagoblin/templates/mediagoblin/auth/login.html:29 +msgid "Login failed!" +msgstr "登入錯誤" + +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 +#: mediagoblin/templates/mediagoblin/submit/start.html:29 +msgid "Submit" +msgstr "送出" + +#: mediagoblin/templates/mediagoblin/auth/login.html:42 +msgid "Don't have an account yet?" +msgstr "還沒有帳號嗎?" + +#: mediagoblin/templates/mediagoblin/auth/login.html:45 +msgid "Create one here!" +msgstr "在這裡建立一個吧!" + +#: mediagoblin/templates/mediagoblin/auth/register.html:27 +msgid "Create an account!" +msgstr "建立一個帳號!" + +#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to activate your GNU MediaGoblin account, open the following URL in\n" +"your web browser:\n" +"\n" +"%(verification_url)s" +msgstr "" +"嗨 %(username)s,\n" +"\n" +"啟動 GNU MediaGoblin 帳號, 在你的瀏覽器中打開下面的網址:\n" +"\n" +"%(verification_url)s" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:29 +#, python-format +msgid "Editing %(media_title)s" +msgstr "編輯 %(media_title)s 中" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:36 +msgid "Cancel" +msgstr "取消" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:37 +msgid "Save changes" +msgstr "儲存變更" + +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 +#, python-format +msgid "Editing %(username)s's profile" +msgstr "編輯 %(username)s'的檔案中" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:31 +msgid "Media tagged with:" +msgstr "媒體被標籤為:" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:42 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:48 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:104 +msgid "atom feed" +msgstr "atom feed" + +#: mediagoblin/templates/mediagoblin/submit/start.html:26 +msgid "Submit yer media" +msgstr "送出你的媒體檔案" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#, python-format +msgid "%(username)s's media" +msgstr "%(username)s的媒體" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 +msgid "Sorry, no such user found." +msgstr "抱歉, 找不到這個使用者." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +msgid "Verification needed" +msgstr "需要驗證" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +msgid "Almost done! Your account still needs to be verified." +msgstr "快要完成了! 你的帳號仍需要驗證." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +msgid "" +"An email should arrive in a few moments with instructions on how to do so." +msgstr "很快的會有一封電子郵件告訴你如何做." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +msgid "In case it doesn't:" +msgstr "假設它無法:" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +msgid "Resend verification email" +msgstr "重送認證郵件 " + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +msgid "" +"Someone has registered an account with this username, but it still has to be" +" verified." +msgstr "有人已經註冊了這個帳號, 但此帳號仍需要驗證." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#, python-format +msgid "" +"If you are that person but you've lost your verification email, you can log in and resend it." +msgstr "如果你就是那個人, 但是遺失了認證信, 你可以登入 然後重送一次." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 +#, python-format +msgid "%(username)s's profile" +msgstr "%(username)s的個人檔案" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:86 +msgid "Edit profile" +msgstr "編輯個人檔案" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:98 +#, python-format +msgid "View all of %(username)s's media" +msgstr "查看%(username)s的全部媒體檔案" + +#: mediagoblin/user_pages/forms.py:24 +msgid "Comment" +msgstr "" + + From 908b20f51c63add1a01f349d45e119ae767a855b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Tue, 16 Aug 2011 08:38:36 -0500 Subject: [PATCH 0866/2731] Pulled down latest translations --- .../i18n/fr/LC_MESSAGES/mediagoblin.mo | Bin 5406 -> 5983 bytes .../i18n/fr/LC_MESSAGES/mediagoblin.po | 200 ++++++++++-------- .../i18n/sv/LC_MESSAGES/mediagoblin.mo | Bin 5461 -> 5597 bytes .../i18n/sv/LC_MESSAGES/mediagoblin.po | 76 ++++--- 4 files changed, 154 insertions(+), 122 deletions(-) diff --git a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo index a7daf2c91cd50bd2dea5da7b64a63ece9b1ac78f..f88547344412fe8a48365c3c9005d92d53b4ac43 100644 GIT binary patch literal 5983 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 H52pSDX2CHIO00{zKu*O=`=9C@SQ+Ch6bD=^| ze6;$|*ds}8)DWwQJcy>mw?@-!q7Nq42aU!DiAEERn#P2h#s~HPu|(>IsWz* zVgiec^79(3VZIOJN-d}X230JK;U1jA?f4S1S6#qzd;_1u_iz^Xamy&agMGM;cjEqH zrFP;7N+1@pMWs>Bbx;DD#|rLO=NOc*u!M5JGN$okyc?T&SciQ`#Of4EU@ks^0k-02 zD4E^FPTX0V51=1+Fds(Qe;lPUX^e5dnq|<4&!bf0ZIlDAphW%)a;CbDlG#nv7%!u& z*oL*(jgr};xF1t^KfaFD_zj-GKaeBTBezq3+3*yD_Y0KDqV#$ z{u4^CYe`E2s6)x92`llyrb8%|dm1J4d6YoTqO|(09n_z*)KwOwq}Nb-{Ux5oA5nVk zuqcuLj1tHow@Itcqg3Qwl#H%y`Uy%PU!WxT1Il|hP%2rhN?`w>^g70A(wgHay?zlp@e)b^U*R3NhH}9=a;GZeb~&dOrPUgx)dLF*S5QiQ4JELzk+anelwOx`tMvL1N{Q!DDz=Cc*g8rp{zlc<9Qwv{ ztgP94sXA7$s*6Trt4pOH6qa-x(8**^_kGcm@%rKpo$TyMc1175s~ScuZ|ZT+8aJV* zd$UY}{N&JN*0MA0<8C&(9RFx_d#tcv;jrU`88fGjxXy&_W%ab>`)6D)rH**HWizKk zNAv!4VCq#r!~YiTal2lPHd!-fu5HE*eI2;rX*cxztsM`l{*)c)Y0sUoGe$k^=-jd_ zG&W~V%C=4hc94nA6%Ca1xsGgYjiU0Fds0RZjvmz`^2(rlDq}mX+6`wsV#zceeQa3! zp&k8I-W82)n>#jU>y68ujX)&$t?OI0-(+X<&!;n1ZY5~dy_QaUX5wH&W3y)_Z9g#H z$#UoyC+u-6AjW91KOFxhI*<5Fw(CFOK>T6}Y3hHvp9w*a<{QXuc, 2011. +# Valentin Villenave , 2011. +# , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-08 22:53-0500\n" -"PO-Revision-Date: 2011-08-10 21:24+0000\n" -"Last-Translator: MarkTraceur \n" +"POT-Creation-Date: 2011-08-13 19:47-0500\n" +"PO-Revision-Date: 2011-08-16 13:22+0000\n" +"Last-Translator: joar \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,102 +22,112 @@ msgstr "" #: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46 msgid "Username" -msgstr "" +msgstr "Nom d'utilisateur" #: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50 msgid "Password" -msgstr "" +msgstr "Mot de passe" #: mediagoblin/auth/forms.py:34 msgid "Passwords must match." -msgstr "" +msgstr "Les mots de passe doivent correspondre." #: mediagoblin/auth/forms.py:36 msgid "Confirm password" -msgstr "" +msgstr "Confirmer le mot de passe" #: mediagoblin/auth/forms.py:39 msgid "Email address" -msgstr "" +msgstr "Adresse e-mail" #: mediagoblin/auth/views.py:40 msgid "Sorry, registration is disabled on this instance." -msgstr "" +msgstr "L'inscription n'est pas activée sur ce serveur, désolé." -#: mediagoblin/auth/views.py:55 +#: mediagoblin/auth/views.py:57 msgid "Sorry, a user with that name already exists." +msgstr "Un utilisateur existe déjà avec ce nom, désolé." + +#: mediagoblin/auth/views.py:61 +msgid "Sorry, that email address has already been taken." msgstr "" -#: mediagoblin/auth/views.py:152 +#: mediagoblin/auth/views.py:159 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "" +"Votre adresse e-mail a bien été vérifiée. Vous pouvez maintenant vous " +"identifier, modifier votre profil, et soumettre des images !" -#: mediagoblin/auth/views.py:158 +#: mediagoblin/auth/views.py:165 msgid "The verification key or user id is incorrect" -msgstr "" +msgstr "La clé de vérification ou le nom d'utilisateur est incorrect." -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:186 #: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 msgid "Resent your verification email." -msgstr "Nous avons renvoyé votre e-mail de vérification." +msgstr "E-mail de vérification renvoyé." -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26 +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" -msgstr "" +msgstr "Titre" #: mediagoblin/edit/forms.py:29 msgid "Slug" -msgstr "" +msgstr "Légende" #: mediagoblin/edit/forms.py:30 msgid "The slug can't be empty" -msgstr "" +msgstr "La légende ne peut pas être laissée vide." #: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 msgid "Tags" -msgstr "" +msgstr "Tags" #: mediagoblin/edit/forms.py:38 msgid "Bio" -msgstr "" +msgstr "Bio" #: mediagoblin/edit/forms.py:41 msgid "Website" -msgstr "" +msgstr "Site web" #: mediagoblin/edit/forms.py:43 msgid "Improperly formed URL" -msgstr "" +msgstr "Adresse web mal formée" #: mediagoblin/edit/views.py:54 msgid "An entry with that slug already exists for this user." -msgstr "" +msgstr "Une entrée existe déjà pour cet utilisateur avec la même légende." #: mediagoblin/edit/views.py:75 msgid "You are editing another user's media. Proceed with caution." msgstr "" +"Vous vous apprêtez à modifier le média d'un autre utilisateur. Veuillez " +"prendre garde." #: mediagoblin/edit/views.py:96 msgid "You are editing a user's profile. Proceed with caution." msgstr "" +"Vous vous apprêtez à modifier le profil d'un utilisateur. Veuillez prendre " +"garde." -#: mediagoblin/submit/forms.py:29 +#: mediagoblin/submit/forms.py:25 msgid "File" -msgstr "" +msgstr "Fichier" -#: mediagoblin/submit/views.py:45 +#: mediagoblin/submit/views.py:46 msgid "You must provide a file." -msgstr "" +msgstr "Il vous faut fournir un fichier." -#: mediagoblin/submit/views.py:48 +#: mediagoblin/submit/views.py:49 msgid "The file doesn't seem to be an image!" -msgstr "" +msgstr "Ce fichier ne semble pas être une image !" -#: mediagoblin/submit/views.py:96 +#: mediagoblin/submit/views.py:94 msgid "Woohoo! Submitted!" -msgstr "" +msgstr "Youhou, c'est envoyé !" #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" @@ -127,73 +139,74 @@ msgstr "logo de MediaGoblin" #: mediagoblin/templates/mediagoblin/base.html:51 msgid "Submit media" -msgstr "Soumettez des médias" +msgstr "Soumettre un média" #: mediagoblin/templates/mediagoblin/base.html:62 msgid "verify your email!" -msgstr "vérifiez votre addresse e-mail" +msgstr "vérifier son adresse e-mail" #: mediagoblin/templates/mediagoblin/base.html:72 msgid "Login" -msgstr "Connexion" +msgstr "Identification" #: mediagoblin/templates/mediagoblin/base.html:88 msgid "" "Powered by MediaGoblin, a GNU project" msgstr "" -"Alimenté par MediaGoblin, un projet GNU" +"Propulsé par MediaGoblin, un projet " +"de GNU" -#: mediagoblin/templates/mediagoblin/root.html:21 +#: mediagoblin/templates/mediagoblin/root.html:23 msgid "Welcome to GNU MediaGoblin!" -msgstr "Bienvenue à GNU MediaGoblin!" +msgstr "Bienvenue sur GNU MediaGoblin !" -#: mediagoblin/templates/mediagoblin/root.html:26 +#: mediagoblin/templates/mediagoblin/root.html:28 msgid "Submit an item" -msgstr "Soumettez un fichier" +msgstr "Soumettre un fichier" -#: mediagoblin/templates/mediagoblin/root.html:31 +#: mediagoblin/templates/mediagoblin/root.html:33 #, python-format msgid "If you have an account, you can Login." msgstr "" -"Si vous avez un compte, vous pouvez Connecter." +"Si vous avez un compte, vous pouvez vous identifier." -#: mediagoblin/templates/mediagoblin/root.html:37 +#: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" "If you don't have an account, please Register." msgstr "" -"Si vous n'avez pas un compte, s'il vous plaît, vous inscrivez." +"Si vous n'avez pas de compte, veuillez vous inscrire." #: mediagoblin/templates/mediagoblin/auth/login.html:26 msgid "Log in" -msgstr "Connexion" +msgstr "S'identifier" #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Login failed!" -msgstr "Connexion manqué" +msgstr "L'identification a échoué !" #: mediagoblin/templates/mediagoblin/auth/login.html:34 #: mediagoblin/templates/mediagoblin/auth/register.html:30 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/submit/start.html:32 +#: mediagoblin/templates/mediagoblin/submit/start.html:29 msgid "Submit" -msgstr "Soumettez" +msgstr "Soumettre" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" -msgstr "N'avez-vous toujours un compte?" +msgstr "Pas encore de compte ?" #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Create one here!" -msgstr "En créez un ici!" +msgstr "Créez-en un ici !" #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" -msgstr "Créez un compte!" +msgstr "Créer un compte !" #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format @@ -205,101 +218,112 @@ msgid "" "\n" "%(verification_url)s" msgstr "" -"Bonjour, %(username)s,\n" +"Bonjour %(username)s,\n" "\n" -"pour activer votre compte de GNU MediaGoblin, ouvrez l'URL suite avec votre navigateur web:\n" +"pour activer votre compte sur GNU MediaGoblin, veuillez vous rendre à l'adresse suivante avec votre navigateur web:\n" "\n" "%(verification_url)s" #: mediagoblin/templates/mediagoblin/edit/edit.html:29 #, python-format msgid "Editing %(media_title)s" -msgstr "On édit %(media_title)s" +msgstr "Modification de %(media_title)s" #: mediagoblin/templates/mediagoblin/edit/edit.html:36 msgid "Cancel" -msgstr "Annulez" +msgstr "Annuler" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 msgid "Save changes" -msgstr "Enregistrez les modifications" +msgstr "Enregistrer les modifications" #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" -msgstr "" +msgstr "Modification du profil de %(username)s" -#: mediagoblin/templates/mediagoblin/listings/tag.html:29 +#: mediagoblin/templates/mediagoblin/listings/tag.html:31 msgid "Media tagged with:" -msgstr "" +msgstr "Média comportant les tags suivants :" -#: mediagoblin/templates/mediagoblin/listings/tag.html:40 -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +#: mediagoblin/templates/mediagoblin/listings/tag.html:42 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:48 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:104 msgid "atom feed" -msgstr "" +msgstr "flux Atom" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" -msgstr "" +msgstr "Soumettez ce média" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 #, python-format msgid "%(username)s's media" -msgstr "" +msgstr "Médias de %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:30 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 msgid "Sorry, no such user found." -msgstr "" +msgstr "Impossible de trouver cet utilisateur, désolé." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:37 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:57 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 msgid "Verification needed" -msgstr "" +msgstr "Vérification requise" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:40 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 msgid "Almost done! Your account still needs to be verified." -msgstr "" +msgstr "C'est presque fini ! Il vous faut encore vérifier votre compte." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:45 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "" +"Un e-mail devrait vous parvenir dans quelques instants ; il vous indiquera " +"comment procéder." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:49 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 msgid "In case it doesn't:" -msgstr "" +msgstr "Si la vérification n'est pas arrivée à bon port :" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 msgid "Resend verification email" -msgstr "" +msgstr "Renvoyer l'e-mail de vérification" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:60 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "" "Someone has registered an account with this username, but it still has to be" " verified." msgstr "" +"Quelqu'un a créé un compte à ce nom, mais le compte n'a pas encore été " +"vérifié." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:66 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format msgid "" "If you are that person but you've lost your verification email, you can log in and resend it." msgstr "" +"Si c'est de vous qu'il s'agit, mais que vous avez perdu l'e-mail de " +"vérification, vous pouvez vous identifier et " +"le renvoyer." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:76 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 #, python-format msgid "%(username)s's profile" -msgstr "" +msgstr "profil de %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:84 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:86 msgid "Edit profile" -msgstr "" +msgstr "Modifier le profil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:95 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:98 #, python-format msgid "View all of %(username)s's media" +msgstr "Voir tous les médias de %(username)s" + +#: mediagoblin/user_pages/forms.py:24 +msgid "Comment" msgstr "" diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo index 04fe0b6ffde34b7eabe97b8ea9784f123e96795b..0d4b463c06c1faaaa3a5aa4b0870e2983abf2847 100644 GIT binary patch delta 1195 zcmYMyOGs2<6u|N0IF{yP@{zrKe3%85X)~J7AW;{k6qOQKXxx~aQ#qr|Obd%}5f!>A z5ECK@#Dr>*bSpt9EPHJV!Uo#dE<$J#gssB*AG^>nbAR7==iYP9cfK#NV`1mummKe? z@Y%<&fM1?RXa7GLUXgsJnOK3PxCcA16^Gq<0+X4ir--aVAFjrHT#H4RgB9+)2{(xh zN;`uL{)pguyog0Of|>XTi7m6}!`FBT6F7kFWIKfKu?Y*vx(-ibE}lm%Xb5>lZlK1! zi8G^XM^)Bqnbgx_!@9_G(tJd0ZJFlu3Acnoi28U938CMHe9j}5M2)I#oH z7EWRY`Q-@%E#M_;zI#pd!P7{sat$}*b<~zWz#4px z4fqQ;U?83TcQa^XKn}T&`od#eND_IAdCc$9uX3EhT3p0dEMXZ{7)I^LIO+-?qQ-lQ zTHq||0zV|&v&u|I%qeFCE;cuj7 zsmc~9#75Lkb-VVUuDl=hxuIv)I3wJGlTBnmHWU4+|C0D)I$E?ZY*IRG;up>;!Y%&^q?Nf z3#fa43k{AVwaXmVVFD}B$H~^i-OQy6vpX4RMboH<=7qDE>`O`shwVt*S@It7R`f-q z17#*2vf{=LTW5NW6%0o0Sj>d1n6Y}JwiO&Or))c7;?_Ak;xwl@o>YIO@z>Q?)r>5s zn^b?b@mJOd0?xLKYEN2Q-%4;R>YT`W<25b3Xz%Lpi^Z*#uuSJBq9$qwEsfaY6z0}? F{sOyfl7IjJ delta 1079 zcmYMyOGs2v9LMp$<24^mlR7<*%1BsYpMGvAE83{w7Mh`-$rZyE3 zNJJn}FiqpV)|wW0t}scH%j&KZg8b-*E}fVl~cTEtZ!p_Cpw=A4R`e z-r8xbX5b)h!1K5a?;&$-7?mzxDKiwdL%nPNHAy8Wnt zu3$i; zDT6kMc*Z?YS3ITh{Fq3zeh3idc&qkGG~050CoY bidfohO0~vf#hd;ezT(@!JEu4jO#1!-Hau!s diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po index 311c5656..23605892 100644 --- a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-08 22:53-0500\n" -"PO-Revision-Date: 2011-08-09 15:00+0000\n" +"POT-Creation-Date: 2011-08-13 19:47-0500\n" +"PO-Revision-Date: 2011-08-16 13:22+0000\n" "Last-Translator: joar \n" "Language-Team: Swedish (http://www.transifex.net/projects/p/mediagoblin/team/sv/)\n" "MIME-Version: 1.0\n" @@ -42,11 +42,15 @@ msgstr "E-postadress" msgid "Sorry, registration is disabled on this instance." msgstr "Vi beklagar, registreringen är avtängd på den här instansen." -#: mediagoblin/auth/views.py:55 +#: mediagoblin/auth/views.py:57 msgid "Sorry, a user with that name already exists." msgstr "En användare med det användarnamnet finns redan." -#: mediagoblin/auth/views.py:152 +#: mediagoblin/auth/views.py:61 +msgid "Sorry, that email address has already been taken." +msgstr "Den e-postadressen är redan tagen." + +#: mediagoblin/auth/views.py:159 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -54,16 +58,16 @@ msgstr "" "Din e-postadress är verifierad. Du kan nu logga in, redigera din profil och " "ladda upp filer!" -#: mediagoblin/auth/views.py:158 +#: mediagoblin/auth/views.py:165 msgid "The verification key or user id is incorrect" msgstr "Verifieringsnyckeln eller användar-IDt är fel." -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:186 #: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 msgid "Resent your verification email." msgstr "Skickade ett nytt verifierings-email." -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26 +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Titel" @@ -103,19 +107,19 @@ msgstr "Var försiktig, du redigerar någon annans inlägg." msgid "You are editing a user's profile. Proceed with caution." msgstr "Var försiktig, du redigerar en annan användares profil." -#: mediagoblin/submit/forms.py:29 +#: mediagoblin/submit/forms.py:25 msgid "File" msgstr "Fil" -#: mediagoblin/submit/views.py:45 +#: mediagoblin/submit/views.py:46 msgid "You must provide a file." msgstr "Du måste ange en fil" -#: mediagoblin/submit/views.py:48 +#: mediagoblin/submit/views.py:49 msgid "The file doesn't seem to be an image!" msgstr "Filen verkar inte vara en giltig bildfil!" -#: mediagoblin/submit/views.py:96 +#: mediagoblin/submit/views.py:94 msgid "Woohoo! Submitted!" msgstr "Tjohoo! Upladdat!" @@ -147,20 +151,20 @@ msgstr "" "Drivs av MediaGoblin, ett GNU-projekt" -#: mediagoblin/templates/mediagoblin/root.html:21 +#: mediagoblin/templates/mediagoblin/root.html:23 msgid "Welcome to GNU MediaGoblin!" msgstr "Välkommen till GNU MediaGoblin!" -#: mediagoblin/templates/mediagoblin/root.html:26 +#: mediagoblin/templates/mediagoblin/root.html:28 msgid "Submit an item" msgstr "Ladda upp" -#: mediagoblin/templates/mediagoblin/root.html:31 +#: mediagoblin/templates/mediagoblin/root.html:33 #, python-format msgid "If you have an account, you can Login." msgstr "Har du ett konto? Logga in." -#: mediagoblin/templates/mediagoblin/root.html:37 +#: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" "If you don't have an account, please %(username)s's media" msgstr "%(username)ss media" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:30 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 msgid "Sorry, no such user found." msgstr "Finns ingen sådan användare ännu." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:37 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:57 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 msgid "Verification needed" msgstr "Verifiering krävs" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:40 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 msgid "Almost done! Your account still needs to be verified." msgstr "Nästan klart! Nu behöver du bara verifiera ditt konto." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:45 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "" "Ett e-postmeddelande med instruktioner kommer att hamna hos dig inom kort." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:49 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 msgid "In case it doesn't:" msgstr "Om det inte skulle göra det:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 msgid "Resend verification email" msgstr "Skicka ett nytt e-postmeddelande" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:60 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "" "Someone has registered an account with this username, but it still has to be" " verified." @@ -284,7 +288,7 @@ msgstr "" "Det finns redan ett konto med det här användarnamnet, men det behöver " "verifieras." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:66 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format msgid "" "If you are that person but you've lost your verification email, you can logga in och begära ett nytt." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:76 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 #, python-format msgid "%(username)s's profile" msgstr "%(username)ss profil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:84 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:86 msgid "Edit profile" msgstr "Redigera profil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:95 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:98 #, python-format msgid "View all of %(username)s's media" msgstr "Se all media från %(username)s" +#: mediagoblin/user_pages/forms.py:24 +msgid "Comment" +msgstr "Kommentar" + From 745961104aabb962fb7dada2ec11f6903cc19abe Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Tue, 16 Aug 2011 23:24:07 +0200 Subject: [PATCH 0867/2731] Small changes to media.html: changed order of uploader/date and description, added css classes --- .../templates/mediagoblin/user_pages/media.html | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 9c0a1cca..e1175fc4 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -28,16 +28,10 @@ src="{{ request.app.public_store.file_url( media.get_display_media(media.media_files)) }}" />
            - -

            +

            {{media.title}}

            - - {% autoescape False %} -

            {{ media.description_html }}

            - {% endautoescape %} - -

            +

            {% trans date="%4d-%02d-%02d"|format( media.created.year, media.created.month, media.created.day), @@ -45,11 +39,13 @@ 'mediagoblin.user_pages.user_home', user=media.uploader().username), username=media.uploader().username -%} - — uploaded on {{ date }} by {{ username }} + Uploaded on {{ date }} by {{ username }} {%- endtrans %}

            + {% autoescape False %} +

            {{ media.description_html }}

            + {% endautoescape %}
            -

            {% trans %}Comments{% endtrans %}

            {% if request.user %}
            {% block mediagoblin_logo %} - {% endblock %} {% if request.user and request.user['status'] == 'active' %} From 9ecf7cd17c339d5f293cf9868c66e54c9e9b5010 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Thu, 18 Aug 2011 15:18:54 +0200 Subject: [PATCH 0869/2731] Whole bunch of changes to base.css --- mediagoblin/static/css/base.css | 42 ++++++++++++++--------------- mediagoblin/static/images/logo.png | Bin 839 -> 0 bytes 2 files changed, 21 insertions(+), 21 deletions(-) delete mode 100644 mediagoblin/static/images/logo.png diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 59c2f49d..b15a08d7 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -14,19 +14,9 @@ form { padding: 0px; } -/* Carter One font */ - -@font-face { - font-family: 'Carter One'; - font-style: normal; - font-weight: normal; - src: local('CarterOne'), url('http://themes.googleusercontent.com/font?kit=VjW2qt1pkqVtO22ObxgEBRsxEYwM7FgeyaSgU71cLG0') format('woff'); -} - /* text styles */ h1{ - font-family: 'Carter One',arial,serif; margin-bottom: 15px; margin-top: 15px; color: #fff; @@ -39,12 +29,12 @@ h2{ } h3{ - border-bottom: 1px solid #222; + border-bottom: 1px solid #333; font-size: 18px; } a { - color: #999; + color: #86D4B1; } a.highlight { @@ -66,7 +56,12 @@ label { height: 36px; padding-top: 14px; margin-bottom: 20px; - border-bottom: 1px solid #222222; + border-bottom: 1px solid #333; +} + +a.mediagoblin_logo{ + color:#fff; + font-weight:bold; } .header_submit{ @@ -79,17 +74,16 @@ label { background-image: -o-linear-gradient(top, #D2D2D2, #aaa); background-image: linear-gradient(top, #D2D2D2, #aaa); box-shadow: 0px 0px 4px #000; - border-radius: 5px 5px 5px 5px; + border-radius: 3px; margin: 8px; padding: 3px 8px; text-decoration: none; border: medium none; - font-family: 'Carter One',arial,serif; } .mediagoblin_footer { height: 30px; - border-top: 1px solid #222222; + border-top: 1px solid #333; bottom: 0px; padding-top: 8px; text-align: center; @@ -108,7 +102,6 @@ label { /* common website elements */ .button { - font-family: 'Carter One', arial, serif; height: 32px; min-width: 99px; background-color: #86d4b1; @@ -119,7 +112,7 @@ label { background-image: -o-linear-gradient(top, #86d4b1, #62caa2); background-image: linear-gradient(top, #86d4b1, #62caa2); box-shadow: 0px 0px 4px #000; - border-radius: 5px; + border-radius: 3px; border: none; color: #272727; margin: 10px 0px 10px 15px; @@ -214,10 +207,18 @@ text-align: center; /* media detail */ -.media_image_container { +.media_image_container{ text-align: center; } +h2.media_title{ + margin-bottom:0px; +} + +p.media_uploader{ + font-size:0.9em; +} + /* icons */ img.media_icon{ @@ -232,10 +233,9 @@ img.media_icon{ display: block; float: left; text-align: center; - background-color: #222; + background-color: #333; text-decoration: none; padding: 12px 0pt; - font-family: 'Carter One', arial, serif; font-size: 2em; margin: 0 0 20px } diff --git a/mediagoblin/static/images/logo.png b/mediagoblin/static/images/logo.png deleted file mode 100644 index cf28a6d4118a823c937235335ac6e03cee5f1df3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 839 zcmV-N1GxN&P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01egv01egwkZ*aM00007bV*G`2ipe- z4L30gxPk5f00PHJL_t(Y$HiB{Zqq;zeKWReJ5ETOmKIcT=Ti`0z?mb0FG1>sKj=^N zAGmVkhCnDuNkd5-+i`Xu2kah!e7>0kFg@a8-YwevJF-ejPABYM* zfQ};~eXVp?Y6ew)|5>Kf=|RJGziu+FhovS(&Oj)G!Q>8%nqD*m|}lHO4FYsWZP(G*oNtNmJ{6 zC?F(VesTbrlI%4^#8tW{TLKxa0CD-b0ss{eXIWWmFC754`jcFJ5fM3T1VZwlfkc~t z>^1#njnqF@ZjYLP_^NvBs_!riZvn}&?ATR?m6QNx045|q-__nlcly2iRN3@`0Q)zJ0SRlduJ0O&d#wz4eyP|c(PfS6<=B5eQ(fOfTNJ*s%M?5^9)I3&k4 zkVlSZdLr_64gG^pXLUrhAtL`pthGxZ`#T<-ztpL@@3=LuR@8U%p>P?9W3me$&ZF=pQBbZRH%edp9| Date: Thu, 18 Aug 2011 15:22:40 +0200 Subject: [PATCH 0870/2731] Remove space at end of MediaGoblin logo link --- mediagoblin/templates/mediagoblin/base.html | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 39428897..f46871c6 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -41,8 +41,7 @@ {% block mediagoblin_logo %} + alt="{% trans %}MediaGoblin logo{% endtrans %}" /> {% endblock %} {% if request.user and request.user['status'] == 'active' %} Date: Thu, 18 Aug 2011 15:26:00 +0200 Subject: [PATCH 0871/2731] No longer center small images --- mediagoblin/static/css/base.css | 4 ---- 1 file changed, 4 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index b15a08d7..1f64eadf 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -207,10 +207,6 @@ text-align: center; /* media detail */ -.media_image_container{ - text-align: center; -} - h2.media_title{ margin-bottom:0px; } From 1f5a55f667bdb497d7baa9a13806f043799d66aa Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Thu, 18 Aug 2011 15:53:52 +0200 Subject: [PATCH 0872/2731] Replace the Feed icon with a transparent one, put it next to the [atom feed] links --- mediagoblin/static/images/icon_feed.png | Bin 522 -> 378 bytes .../templates/mediagoblin/listings/tag.html | 5 +++-- .../templates/mediagoblin/user_pages/user.html | 5 +++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/mediagoblin/static/images/icon_feed.png b/mediagoblin/static/images/icon_feed.png index 11e5b1e76b8e0e6c357a58e8ff018b170b5cec68..81889473b4950247497dca8fe000058c63cffa3c 100644 GIT binary patch delta 305 zcmV-10nYx41o{GyHwgd$0002_L%V;GKp%ey5)CXehjTmR0002`NklDdTs=!kqZIpChM<=xbw6Sk3BM}|Uc#QJW3?-Y_9FhC zu!BtST&Zo6k{<#)PS{oL1)X}CNN&@C)4(2!hE{vfC6dp;`ky*42?oGM@waQhDEw&} z8h~**2!rG|$=?ZkUF6?{oh(Lav56h5sNc)#mnScNJcLxzsp6973ivARy=P40UhUa;zTCHN+Hh)>Z?=zdtFrp|@wrzjo zx-Nx6K_`S^i0irx27_No%y{#)7$BR?((QH`4u`)g(F$s{8u@%4%d)U6i%ce?lWw;g zrBVsQFi=W8DbNJ3tKDwX>2ydW5*mBW^L-zpC{iM#-Mw5cYC4@N5m6$dmdm9+3&T+3 zagF(UvuT=CDi!AQIrVy-X0u5U1OR`eQmHpnHNkj1CI|u^j|TwhbedkThvPUj8V&CE zI{?LEkyfkq$q={jHFmq5mVG*%l!&N)zpt^w;hR07*qoM6N<$f@^KZTmS$7 diff --git a/mediagoblin/templates/mediagoblin/listings/tag.html b/mediagoblin/templates/mediagoblin/listings/tag.html index a43355a7..d047096b 100644 --- a/mediagoblin/templates/mediagoblin/listings/tag.html +++ b/mediagoblin/templates/mediagoblin/listings/tag.html @@ -38,8 +38,9 @@ {% endblock %} diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 4649c8c7..ce6415d7 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -100,8 +100,9 @@

            - {%- trans %}atom feed{% endtrans -%} + user=user.username) }}" + >{%- trans %}atom feed{% endtrans -%}
            From a97e5bb22c81bf90ab8f49ea1a7edb9a037914fb Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Thu, 18 Aug 2011 17:29:38 +0200 Subject: [PATCH 0873/2731] Fix text sizes (use relative values), remove some unnecessary text sizes, add some spaces here and there --- mediagoblin/static/css/base.css | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 1f64eadf..272a6aee 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -20,7 +20,7 @@ h1{ margin-bottom: 15px; margin-top: 15px; color: #fff; - font-size: 30px; + font-size: 1.875em; } h2{ @@ -30,7 +30,7 @@ h2{ h3{ border-bottom: 1px solid #333; - font-size: 18px; + font-size: 1.125em; } a { @@ -60,8 +60,8 @@ label { } a.mediagoblin_logo{ - color:#fff; - font-weight:bold; + color: #fff; + font-weight: bold; } .header_submit{ @@ -87,7 +87,7 @@ a.mediagoblin_logo{ bottom: 0px; padding-top: 8px; text-align: center; - font-size: 14px; + font-size: 0.8125em; color: #999; } @@ -116,7 +116,6 @@ a.mediagoblin_logo{ border: none; color: #272727; margin: 10px 0px 10px 15px; - font-size: 1em; text-align: center; padding-left: 11px; padding-right: 11px; @@ -137,7 +136,6 @@ text-align: center; background-color: #222; background-image: url("../images/background_lines.png"); background-repeat: repeat-x; - font-size: 18px; padding-bottom: 30px; padding-top: 30px; margin-left: auto; @@ -150,13 +148,8 @@ text-align: center; background-image: url("../images/background_edit.png"); } -.form_box h1 { - font-size: 28px; -} - .form_field_input input, .form_field_input textarea { width: 100%; - font-size: 18px; } .form_field_box { @@ -171,7 +164,6 @@ text-align: center; background-color: #87453b; color: #fff; border: none; - font-size: 16px; padding: 9px; margin-top: 8px; margin-bottom: 8px; @@ -186,7 +178,7 @@ text-align: center; .comment_author { margin-bottom: 40px; padding-top: 4px; - font-size: 14px; + font-size: 0.9em; } .comment_content p { @@ -208,11 +200,11 @@ text-align: center; /* media detail */ h2.media_title{ - margin-bottom:0px; + margin-bottom: 0px; } p.media_uploader{ - font-size:0.9em; + font-size: 0.9em; } /* icons */ From 1d03221d0448903aad17180b0fac0ee73c32204b Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Thu, 18 Aug 2011 18:17:53 +0200 Subject: [PATCH 0874/2731] Added empty_space class for user profile placeholders --- mediagoblin/static/css/base.css | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 272a6aee..2293ea50 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -79,6 +79,7 @@ a.mediagoblin_logo{ padding: 3px 8px; text-decoration: none; border: medium none; + font-style: normal; } .mediagoblin_footer { @@ -130,6 +131,14 @@ text-align: center; margin: 5px; } +.empty_space{ + background-color: #222; + font-style: italic; + text-align: center; + height: 160px; + padding-top: 70px; +} + /* forms */ .form_box { From 3617ff4acf108bc1d90c6181e51c67dcb4fc44f0 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 18 Aug 2011 19:17:14 -0500 Subject: [PATCH 0875/2731] From Jef van Schendel: "here's a spot to tell others about yourself" This should display if the user is logged in and they don't have anything in their profile yet. --- .../mediagoblin/user_pages/user.html | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index ce6415d7..f189ed94 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -78,15 +78,29 @@ {%- trans username=user.username %}{{ username }}'s profile{% endtrans -%} -
            - {% include "mediagoblin/utils/profile.html" %} - {% if request.user['_id'] == user['_id'] or request.user['is_admin'] %} + {% if request.user['_id'] == user['_id'] + and not user['url'] and not user['profile'] %} +
            +

            + {% trans %}Here's a spot to tell others about yourself.{% endtrans %} +

            + user.username }}" + class="header_submit"> {%- trans %}Edit profile{% endtrans -%} - {% endif %} -
            +
            + {% else %} +
            + {% include "mediagoblin/utils/profile.html" %} + {% if request.user['_id'] == user['_id'] or request.user['is_admin'] %} + + {%- trans %}Edit profile{% endtrans -%} + + {% endif %} +
            + {% endif %}
            {{ object_gallery(request, media_entries, pagination, From 66a65c9c4c8ef08a7a8ab7935259c749fa7b9d51 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 18 Aug 2011 19:57:24 -0500 Subject: [PATCH 0876/2731] Switch "atom feed" to "Atom feed" and made the icons and text separate links Before doing the latter there was an ugly underline spanning the icon and the text. --- mediagoblin/templates/mediagoblin/listings/tag.html | 12 +++++++----- .../templates/mediagoblin/user_pages/gallery.html | 13 ++++++++----- .../templates/mediagoblin/user_pages/user.html | 11 +++++++---- 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/listings/tag.html b/mediagoblin/templates/mediagoblin/listings/tag.html index d047096b..f36f3df4 100644 --- a/mediagoblin/templates/mediagoblin/listings/tag.html +++ b/mediagoblin/templates/mediagoblin/listings/tag.html @@ -36,11 +36,13 @@
            {% endblock %} diff --git a/mediagoblin/templates/mediagoblin/user_pages/gallery.html b/mediagoblin/templates/mediagoblin/user_pages/gallery.html index ff935ac4..6acee9ef 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/gallery.html +++ b/mediagoblin/templates/mediagoblin/user_pages/gallery.html @@ -37,16 +37,19 @@ {%- endtrans %} -
            + {% else %} {# This *should* not occur as the view makes sure we pass in a user. #} diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index f189ed94..56f6503c 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -113,11 +113,14 @@ View all of {{ username }}'s media{% endtrans -%}

            - {%- trans %}atom feed{% endtrans -%} + {% set feed_url = request.urlgen( + 'mediagoblin.user_pages.atom_feed', + user=user.username) %} + + + {%- trans %}Atom feed{% endtrans -%}
            From 6890822cce835b132fb9e7bd2f7747de5bcb7716 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 18 Aug 2011 19:57:49 -0500 Subject: [PATCH 0877/2731] Added an alt tag to the feed icons. Accessibility! Woo! --- mediagoblin/templates/mediagoblin/listings/tag.html | 2 +- mediagoblin/templates/mediagoblin/user_pages/gallery.html | 2 +- mediagoblin/templates/mediagoblin/user_pages/user.html | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/listings/tag.html b/mediagoblin/templates/mediagoblin/listings/tag.html index f36f3df4..bf2b4c01 100644 --- a/mediagoblin/templates/mediagoblin/listings/tag.html +++ b/mediagoblin/templates/mediagoblin/listings/tag.html @@ -41,7 +41,7 @@ tag=tag_slug) %} + class="media_icon" alt="{% trans %}feed icon{% endtrans %} /> {%- trans %}Atom feed{% endtrans -%}
            diff --git a/mediagoblin/templates/mediagoblin/user_pages/gallery.html b/mediagoblin/templates/mediagoblin/user_pages/gallery.html index 6acee9ef..e54422da 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/gallery.html +++ b/mediagoblin/templates/mediagoblin/user_pages/gallery.html @@ -47,7 +47,7 @@ user=user.username) %} + class="media_icon" alt="{% trans %}feed icon{% endtrans %}" /> {%- trans %}Atom feed{% endtrans -%}
            diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 56f6503c..1a9a0f83 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -118,7 +118,7 @@ user=user.username) %} + class="media_icon" alt="{% trans %}feed icon{% endtrans %}" /> {%- trans %}Atom feed{% endtrans -%}
            From 293a7fe4118151ff27153a324d27a554c6c0fc8b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 18 Aug 2011 21:16:50 -0500 Subject: [PATCH 0878/2731] Give a message if the user hasn't filled in their profile yet. --- .../mediagoblin/user_pages/user.html | 33 ++++++++++++------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 1a9a0f83..00d25464 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -78,18 +78,27 @@ {%- trans username=user.username %}{{ username }}'s profile{% endtrans -%} - {% if request.user['_id'] == user['_id'] - and not user['url'] and not user['profile'] %} -
            -

            - {% trans %}Here's a spot to tell others about yourself.{% endtrans %} -

            - - {%- trans %}Edit profile{% endtrans -%} - -
            + {% if not user['url'] and not user['profile'] %} + {% if request.user['_id'] == user['_id'] %} +
            +

            + {% trans %}Here's a spot to tell others about yourself.{% endtrans %} +

            + + {%- trans %}Edit profile{% endtrans -%} + +
            + {% else %} +
            +

            + {% trans -%} + This user hasn't filled in their profile (yet). + {%- endtrans %} +

            +
            + {% endif %} {% else %}
            {% include "mediagoblin/utils/profile.html" %} From 0ddea95ea60c2ef61f771c64afb94357d3e005ec Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 18 Aug 2011 21:23:06 -0500 Subject: [PATCH 0879/2731] More useful messages about when stuff isn't there on a user's homepage. --- .../mediagoblin/user_pages/user.html | 63 +++++++++++++------ 1 file changed, 43 insertions(+), 20 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 00d25464..02e6fdc2 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -111,27 +111,50 @@
            {% endif %} -
            - {{ object_gallery(request, media_entries, pagination, - pagination_base_url=user_gallery_url, col_number=3) }} - {% include "mediagoblin/utils/object_gallery.html" %} -
            -

            - - {% trans username=user.username -%} - View all of {{ username }}'s media{% endtrans -%} + {% if media_entries.count() %} +

            - + {%- trans %}Atom feed{% endtrans -%} +
            + {% else %} + {% if request.user['_id'] == user['_id'] %} +
            +

            + {% trans -%} + This is where your media will appear, but you don't seem to have added anything yet. + {%- endtrans %} +

            + + {%- trans %}Add media{% endtrans -%} + +
            + {% else %} +
            +

            + {% trans -%} + There doesn't seem to be any media here yet... + {%- endtrans %} +

            +
            + {% endif %} + {% endif %}
            {% endif %} {% endblock %} From 5b21ecf9db4c1618066142b77aaa750d1333a1d7 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 18 Aug 2011 21:28:00 -0500 Subject: [PATCH 0880/2731] Feed link, as an includable template! --- .../templates/mediagoblin/listings/tag.html | 6 +---- .../mediagoblin/user_pages/gallery.html | 6 +---- .../mediagoblin/user_pages/user.html | 6 +---- .../mediagoblin/utils/feed_link.html | 23 +++++++++++++++++++ 4 files changed, 26 insertions(+), 15 deletions(-) create mode 100644 mediagoblin/templates/mediagoblin/utils/feed_link.html diff --git a/mediagoblin/templates/mediagoblin/listings/tag.html b/mediagoblin/templates/mediagoblin/listings/tag.html index bf2b4c01..289f44b8 100644 --- a/mediagoblin/templates/mediagoblin/listings/tag.html +++ b/mediagoblin/templates/mediagoblin/listings/tag.html @@ -39,10 +39,6 @@ {% set feed_url = request.urlgen( 'mediagoblin.listings.tag_atom_feed', tag=tag_slug) %} - - {% trans %}feed icon{% endtrans %} />
-    </a>
-    <a href={%- trans %}Atom feed{% endtrans -%} + {% include "mediagoblin/utils/feed_link.html" %}
            {% endblock %} diff --git a/mediagoblin/templates/mediagoblin/user_pages/gallery.html b/mediagoblin/templates/mediagoblin/user_pages/gallery.html index e54422da..3a3d2373 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/gallery.html +++ b/mediagoblin/templates/mediagoblin/user_pages/gallery.html @@ -45,11 +45,7 @@ {% set feed_url = request.urlgen( 'mediagoblin.user_pages.atom_feed', user=user.username) %} - - {% trans %}feed icon{% endtrans %} - - {%- trans %}Atom feed{% endtrans -%} + {% include "mediagoblin/utils/feed_link.html" %}
            {% else %} {# This *should* not occur as the view makes sure we pass in a user. #} diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 02e6fdc2..0214082c 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -126,11 +126,7 @@ {% set feed_url = request.urlgen( 'mediagoblin.user_pages.atom_feed', user=user.username) %} - - {% trans %}feed icon{% endtrans %} - - {%- trans %}Atom feed{% endtrans -%} + {% include "mediagoblin/utils/feed_link.html" %}
            {% else %} {% if request.user['_id'] == user['_id'] %} diff --git a/mediagoblin/templates/mediagoblin/utils/feed_link.html b/mediagoblin/templates/mediagoblin/utils/feed_link.html new file mode 100644 index 00000000..c4036bf3 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/utils/feed_link.html @@ -0,0 +1,23 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} + + + {% trans %}feed icon{% endtrans %} + +{%- trans %}Atom feed{% endtrans -%} From b5017dbac8ad9e8afd70d2d2281571e0155c3739 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 18 Aug 2011 22:00:55 -0500 Subject: [PATCH 0881/2731] Switch the grid over to using a... erk... table! :) Also changes the gridification routine a bit. --- mediagoblin/static/css/base.css | 1 - .../mediagoblin/utils/object_gallery.html | 51 +++++++------------ mediagoblin/util.py | 32 ++++++++++++ 3 files changed, 49 insertions(+), 35 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 2293ea50..83f5357c 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -199,7 +199,6 @@ text-align: center; .media_thumbnail { padding: 0px; width: 180px; - height: 180px; overflow: hidden; float: left; margin: 0px 4px 10px 4px; diff --git a/mediagoblin/templates/mediagoblin/utils/object_gallery.html b/mediagoblin/templates/mediagoblin/utils/object_gallery.html index c7286678..b451946d 100644 --- a/mediagoblin/templates/mediagoblin/utils/object_gallery.html +++ b/mediagoblin/templates/mediagoblin/utils/object_gallery.html @@ -18,44 +18,27 @@ {% from "mediagoblin/utils/pagination.html" import render_pagination %} -{% macro media_grid(request, media_list, col_number=5) %} - {% set num_items = media_list.count() %} - {% set col_counter = 0 %} - {% set row_counter = 0 %} - {% set item_counter = 0 %} - - {% set num_rows = num_items // col_number %} - {% if num_items % col_number != 0 %} - {% set num_rows = num_rows + 1 %} - {% endif %} - - diff --git a/mediagoblin/templates/mediagoblin/edit/edit_profile.html b/mediagoblin/templates/mediagoblin/edit/edit_profile.html index 534e5f20..bed5e0ca 100644 --- a/mediagoblin/templates/mediagoblin/edit/edit_profile.html +++ b/mediagoblin/templates/mediagoblin/edit/edit_profile.html @@ -32,7 +32,7 @@ {{ wtforms_util.render_divs(form) }}
            - +
            From 3d0557bf25683c26ec2b6de041d53fe5a0c6255c Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 20 Aug 2011 15:00:25 -0500 Subject: [PATCH 0892/2731] Change the ordering of the app's __call__ method (attach things to request first) This will make it easier for us to call something like a 404 page rendering method before the matching check is done. --- mediagoblin/app.py | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index c1ee3d77..96a7ad61 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -101,6 +101,23 @@ class MediaGoblinApp(object): ## Routing / controller loading stuff route_match = self.routing.match(path_info) + ## Attach utilities to the request object + request.matchdict = route_match + request.urlgen = routes.URLGenerator(self.routing, environ) + # Do we really want to load this via middleware? Maybe? + request.session = request.environ['beaker.session'] + # Attach self as request.app + # Also attach a few utilities from request.app for convenience? + request.app = self + request.locale = util.get_locale_from_request(request) + + request.template_env = util.get_jinja_env( + self.template_loader, request.locale) + request.db = self.db + request.staticdirect = self.staticdirector + + util.setup_user_in_request(request) + # No matching page? if route_match is None: # Try to do see if we have a match with a trailing slash @@ -121,23 +138,6 @@ class MediaGoblinApp(object): controller = util.import_component(route_match['controller']) request.start_response = start_response - ## Attach utilities to the request object - request.matchdict = route_match - request.urlgen = routes.URLGenerator(self.routing, environ) - # Do we really want to load this via middleware? Maybe? - request.session = request.environ['beaker.session'] - # Attach self as request.app - # Also attach a few utilities from request.app for convenience? - request.app = self - request.locale = util.get_locale_from_request(request) - - request.template_env = util.get_jinja_env( - self.template_loader, request.locale) - request.db = self.db - request.staticdirect = self.staticdirector - - util.setup_user_in_request(request) - return controller(request)(environ, start_response) From 924e112b8c9ff922b92efe7e63e48968361399fb Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sat, 20 Aug 2011 22:12:44 +0200 Subject: [PATCH 0893/2731] Feature #494: login vs. log in -- lots of incorrect usage --- mediagoblin/templates/mediagoblin/auth/login.html | 2 +- mediagoblin/templates/mediagoblin/base.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/auth/login.html b/mediagoblin/templates/mediagoblin/auth/login.html index 8fe45f2d..afbecf20 100644 --- a/mediagoblin/templates/mediagoblin/auth/login.html +++ b/mediagoblin/templates/mediagoblin/auth/login.html @@ -26,7 +26,7 @@

            {% trans %}Log in{% endtrans %}

            {% if login_failed %}
            - {% trans %}Login failed!{% endtrans %} + {% trans %}Logging in failed!{% endtrans %}
            {% endif %} {{ wtforms_util.render_divs(login_form) }} diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index f46871c6..e147a34b 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -67,7 +67,7 @@ (
            logout) {% else %} - {% trans %}Login{% endtrans %} + {% trans %}Log in{% endtrans %} {% endif %}
      From 03b058b78e1c27bac3dc61d8bd60801025ec0e7c Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sat, 20 Aug 2011 22:16:48 +0200 Subject: [PATCH 0894/2731] Missed one thing for Bug #464 --- mediagoblin/static/css/base.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 243b299c..51a855be 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -74,7 +74,7 @@ label { font-weight: normal; } -input { +input, textarea { font-size:1em; font-family:'Lato', sans-serif; } From 2ff37624ff0d19b5b0dd779e2ec1214d928554b7 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sat, 20 Aug 2011 22:24:30 +0200 Subject: [PATCH 0895/2731] Logout -> log out --- mediagoblin/templates/mediagoblin/base.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index e147a34b..6e54c31d 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -64,7 +64,7 @@ user= request.user['username']) }}"> {{ request.user['username'] }} - (logout) + (log out) {% else %} {% trans %}Log in{% endtrans %} From a7c641d11ed9d161648dbd4472991d5a5d06afd3 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 20 Aug 2011 15:43:58 -0500 Subject: [PATCH 0896/2731] Allow a user to pass in a status to render_to_response --- mediagoblin/util.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index cc426228..b588fa72 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -138,9 +138,11 @@ def clear_test_template_context(): TEMPLATE_TEST_CONTEXT = {} -def render_to_response(request, template, context): +def render_to_response(request, template, context, status=200): """Much like Django's shortcut.render()""" - return Response(render_template(request, template, context)) + return Response( + render_template(request, template, context), + status=status) def redirect(request, *args, **kwargs): From bae8f3d8c20b5724abf5ac99776ae582d0a94689 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 20 Aug 2011 15:55:08 -0500 Subject: [PATCH 0897/2731] Adding and making use of the new 404 error page :) --- mediagoblin/app.py | 2 +- mediagoblin/util.py | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 96a7ad61..1a115a22 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -133,7 +133,7 @@ class MediaGoblinApp(object): return request.get_response(redirect)(environ, start_response) # Okay, no matches. 404 time! - return exc.HTTPNotFound()(environ, start_response) + return util.render_404(request)(environ, start_response) controller = util.import_component(route_match['controller']) request.start_response = start_response diff --git a/mediagoblin/util.py b/mediagoblin/util.py index b588fa72..0b6428da 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -348,8 +348,10 @@ def get_locale_from_request(request): accept_lang_matches = request.accept_language.best_matches() # Your routing can explicitly specify a target language - if request.matchdict.has_key('locale'): - target_lang = request.matchdict['locale'] + matchdict = request.matchdict or {} + + if matchdict.has_key('locale'): + target_lang = matchdict['locale'] elif request.session.has_key('target_lang'): target_lang = request.session['target_lang'] # Pull the first acceptable language @@ -662,3 +664,11 @@ def gridify_cursor(this_cursor, num_cols=5): the number of columns in the list """ return gridify_list(list(this_cursor), num_cols) + + +def render_404(request): + """ + Render a 404. + """ + return render_to_response( + request, 'mediagoblin/404.html', {}, status=400) From 3807e8e29c68a44140044ae7711f229dfef5af51 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 20 Aug 2011 15:55:34 -0500 Subject: [PATCH 0898/2731] Tacking on an empty matchdict when 404'ing just in case a template expects it --- mediagoblin/app.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 1a115a22..3030929d 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -133,6 +133,7 @@ class MediaGoblinApp(object): return request.get_response(redirect)(environ, start_response) # Okay, no matches. 404 time! + request.matchdict = {} # in case our template expects it return util.render_404(request)(environ, start_response) controller = util.import_component(route_match['controller']) From de12b4e77358a496bced68cbdc23bf50f95c7ee0 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 20 Aug 2011 15:57:24 -0500 Subject: [PATCH 0899/2731] Use render_404 EVERYWHERE! --- mediagoblin/auth/views.py | 4 ++-- mediagoblin/decorators.py | 16 ++++++++-------- mediagoblin/user_pages/views.py | 15 ++++++++------- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 9120196f..4c4a34fd 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -20,7 +20,7 @@ from webob import exc from mediagoblin import messages from mediagoblin import mg_globals -from mediagoblin.util import render_to_response, redirect +from mediagoblin.util import render_to_response, redirect, render_404 from mediagoblin.util import pass_to_ugettext as _ from mediagoblin.db.util import ObjectId from mediagoblin.auth import lib as auth_lib @@ -144,7 +144,7 @@ def verify_email(request): """ # If we don't have userid and token parameters, we can't do anything; 404 if not request.GET.has_key('userid') or not request.GET.has_key('token'): - return exc.HTTPNotFound() + return render_404(request) user = request.db.User.find_one( {'_id': ObjectId(unicode(request.GET['userid']))}) diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index 2e90274e..c66049ca 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -17,7 +17,7 @@ from webob import exc -from mediagoblin.util import redirect +from mediagoblin.util import redirect, render_404 from mediagoblin.db.util import ObjectId, InvalidId @@ -60,9 +60,9 @@ def uses_pagination(controller): try: page = int(request.GET.get('page', 1)) if page < 0: - return exc.HTTPNotFound() + return render_404(request) except ValueError: - return exc.HTTPNotFound() + return render_404(request) return controller(request, page=page, *args, **kwargs) @@ -78,7 +78,7 @@ def get_user_media_entry(controller): {'username': request.matchdict['user']}) if not user: - return exc.HTTPNotFound() + return render_404(request) media = request.db.MediaEntry.find_one( {'slug': request.matchdict['media'], @@ -93,11 +93,11 @@ def get_user_media_entry(controller): 'state': 'processed', 'uploader': user['_id']}) except InvalidId: - return exc.HTTPNotFound() + return render_404(request) # Still no media? Okay, 404. if not media: - return exc.HTTPNotFound() + return render_404(request) return controller(request, media=media, *args, **kwargs) @@ -113,11 +113,11 @@ def get_media_entry_by_id(controller): {'_id': ObjectId(request.matchdict['media']), 'state': 'processed'}) except InvalidId: - return exc.HTTPNotFound() + return render_404(request) # Still no media? Okay, 404. if not media: - return exc.HTTPNotFound() + return render_404(request) return controller(request, media=media, *args, **kwargs) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index d4ff1fce..3677c134 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -19,7 +19,8 @@ from webob import exc from mediagoblin import messages from mediagoblin.db.util import DESCENDING, ObjectId from mediagoblin.util import ( - Pagination, render_to_response, redirect, cleaned_markdown_conversion) + Pagination, render_to_response, redirect, cleaned_markdown_conversion, + render_404) from mediagoblin.user_pages import forms as user_forms from mediagoblin.decorators import (uses_pagination, get_user_media_entry, @@ -34,7 +35,7 @@ def user_home(request, page): user = request.db.User.find_one({ 'username': request.matchdict['user']}) if not user: - return exc.HTTPNotFound() + return render_404(request) elif user['status'] != u'active': return render_to_response( request, @@ -50,7 +51,7 @@ def user_home(request, page): #if no data is available, return NotFound if media_entries == None: - return exc.HTTPNotFound() + return render_404(request) user_gallery_url = request.urlgen( 'mediagoblin.user_pages.user_gallery', @@ -71,7 +72,7 @@ def user_gallery(request, page): 'username': request.matchdict['user'], 'status': 'active'}) if not user: - return exc.HTTPNotFound() + return render_404(request) cursor = request.db.MediaEntry.find( {'uploader': user['_id'], @@ -82,7 +83,7 @@ def user_gallery(request, page): #if no data is available, return NotFound if media_entries == None: - return exc.HTTPNotFound() + return render_404(request) return render_to_response( request, @@ -154,7 +155,7 @@ def atom_feed(request): 'username': request.matchdict['user'], 'status': 'active'}) if not user: - return exc.HTTPNotFound() + return render_404(request) cursor = request.db.MediaEntry.find({ 'uploader': user['_id'], @@ -190,7 +191,7 @@ def processing_panel(request): # Make sure the user exists and is active if not user: - return exc.HTTPNotFound() + return render_404(request) elif user['status'] != u'active': return render_to_response( request, From 9a91a1e7b42e1decb788ca71f5046bb835babe48 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sat, 20 Aug 2011 23:15:00 +0200 Subject: [PATCH 0900/2731] Add 500.html page --- mediagoblin/templates/mediagoblin/500.html | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 mediagoblin/templates/mediagoblin/500.html diff --git a/mediagoblin/templates/mediagoblin/500.html b/mediagoblin/templates/mediagoblin/500.html new file mode 100644 index 00000000..464630a7 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/500.html @@ -0,0 +1,49 @@ + + + + + + 500 error! GNU MediaGoblin is sorry... + + +

      YEOWCH... that's an error!

      +

      + .-------------------------.
      + |     __            _     |
      + |    -, \_,------,_//     |
      + |     <\  ,--   --.\      |
      + |      / (  X) (X  )      |
      + |      '  '--, ,--'\      |
      + |     / \ -v-v-u-v /      |
      + |     .  '.__.--__'.\     |
      + |    / ',___/ / \__/'     |
      + |    | |   ,'\_'/, ||     |
      + |    \_|   | | | | ||     |
      + |     W',_ ||| |||_''     |
      + |      |  '------'|       |
      + |      |__|     |_|_      |
      + |     ,,,-'     '-,,,     |
      + '-------------------------'
      +

      +

      Something bad happened, and things broke.

      +

      If this is not your website, you may want to alert the owner.

      +

      +

      Powered... er broken... by MediaGoblin, a GNU Project.

      + + From a01afc9a7c050d891209931c934385b68eb533d1 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 20 Aug 2011 16:34:06 -0500 Subject: [PATCH 0901/2731] Changing the welcome text based on IRC conversations and marking for translation. --- mediagoblin/templates/mediagoblin/root.html | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index 764609b6..08155c17 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -26,21 +26,25 @@

      {% trans %}Hi there, media lover! MediaGoblin is...{% endtrans %}

        -
      • The perfect place for your media! No, seriously.
      • -
      • This is just placeholder text though. In the future this will all make sense, trust me.
      • -
      • It might talk about all the awesome features we've got. Or about how great federation is.
      • -
      • Or that it's free software and a GNU project, so anyone can help improve and share it.
      • -
      • No matter what, it's probably good to have a link here. You never know.
      • +
      • {% trans %}The perfect place for your media!{% endtrans %}
      • +
      • {% trans %}A place for people to collaborate and show off original and derived creations!{% endtrans %}
      • +
      • {% trans %}Free, as in freedom. (We’re a GNU project in the making, after all.){% endtrans %}
      • +
      • {% trans %}Aiming to make the world a better place through decentralization and (eventually, coming soon!) federation!{% endtrans %}
      • +
      • {% trans %}Built for extensibility. (Multiple media types coming soon to the software, including video support!){% endtrans %}
      • +
      • {% trans %}Powered by people like you. (You can help us improve this software!){% endtrans %}
      + {% if allow_registration %}

      Excited to join us? To add your own media, make collections and save favorites...

      Create a free account or Set up MediaGoblin on your own server {% endif %}

      +
      +
      {% endif %}

      Most recent media

      From 8955ed0c599900aed144f52a1f1a9f6b5cbc018a Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 20 Aug 2011 16:34:18 -0500 Subject: [PATCH 0902/2731] Marking the 404 page for translation --- mediagoblin/templates/mediagoblin/404.html | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/404.html b/mediagoblin/templates/mediagoblin/404.html index 7a86a386..5af46a87 100644 --- a/mediagoblin/templates/mediagoblin/404.html +++ b/mediagoblin/templates/mediagoblin/404.html @@ -19,11 +19,16 @@ {% block mediagoblin_content %}

      {% trans %}Oops!{% endtrans %}

      -
      -

      There doesn't seem to be a page at this address. Sorry!

      -

      If you're sure the address is correct, maybe the page you're looking for has been moved or deleted.

      -
      -
      - -
      + +
      +

      {% trans %}There doesn't seem to be a page at this address. Sorry!{% endtrans %}

      +

      + {%- trans %}If you're sure the address is correct, maybe the page you're looking for has been moved or deleted.{% endtrans -%} +

      +
      + +
      + {% trans %}Image of 404 goblin stressing out{% endtrans %} +
      {% endblock %} From cd8c65133e493730d9eb4c67f691d100c845a634 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 20 Aug 2011 16:48:29 -0500 Subject: [PATCH 0903/2731] Removing unused imports --- mediagoblin/gmg_commands/import_export.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/mediagoblin/gmg_commands/import_export.py b/mediagoblin/gmg_commands/import_export.py index f6651327..83d64313 100644 --- a/mediagoblin/gmg_commands/import_export.py +++ b/mediagoblin/gmg_commands/import_export.py @@ -14,22 +14,17 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from mediagoblin.gmg_commands import util as commands_util from mediagoblin import mg_globals -from mediagoblin.db import util as db_util from mediagoblin.db.open import setup_connection_and_db_from_config from mediagoblin.init.config import read_mediagoblin_config -from mediagoblin import util as mg_util from mediagoblin.storage import BasicFileStorage from mediagoblin.init import setup_storage, setup_global_and_app_config -import shlex import shutil import tarfile import subprocess import os.path import os -import re import sys From c02bea6fb9a87e4cbcb8d77912a92b2226b4eceb Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 20 Aug 2011 21:36:08 -0500 Subject: [PATCH 0904/2731] Use "with closing(tf)" since TarFile doesn't have .__exit__() --- mediagoblin/gmg_commands/import_export.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mediagoblin/gmg_commands/import_export.py b/mediagoblin/gmg_commands/import_export.py index 83d64313..fd32136c 100644 --- a/mediagoblin/gmg_commands/import_export.py +++ b/mediagoblin/gmg_commands/import_export.py @@ -26,6 +26,7 @@ import subprocess import os.path import os import sys +from contextlib import closing def import_export_parse_setup(subparser): @@ -147,7 +148,7 @@ def _create_archive(args): args.tar_file, mode='w|gz') - with tf: + with closing(tf): tf.add(args.cache_path, 'mediagoblin-data/') print "\n== Archiving done ==\n" From cc601bbd58b76ce6ee1f7b0b1e065fcd3d6ff217 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 20 Aug 2011 21:59:30 -0500 Subject: [PATCH 0905/2731] Removing some print debugging from import_export --- mediagoblin/gmg_commands/import_export.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/mediagoblin/gmg_commands/import_export.py b/mediagoblin/gmg_commands/import_export.py index fd32136c..b00fb1cb 100644 --- a/mediagoblin/gmg_commands/import_export.py +++ b/mediagoblin/gmg_commands/import_export.py @@ -68,9 +68,6 @@ def _import_media(db, args): media_file.write( media_cache.get_file(path, mode='rb').read()) - print(media_file) - print(entry) - print "\n== Media imported ==\n" @@ -85,8 +82,6 @@ def _import_database(db, args): '-d', db.name, os.path.join(args._cache_path['database'], db.name)]) - print p - p.wait() print "\n== Database imported ==\n" @@ -218,9 +213,6 @@ def _export_media(db, args): mc_file.write( mg_globals.public_store.get_file(path, mode='rb').read()) - print(mc_file) - print(entry) - print "\n== Media exported ==\n" From 00e381f79499b9dc5a456a24f4f012830a4c75c2 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 20 Aug 2011 22:00:21 -0500 Subject: [PATCH 0906/2731] Apparently we *should* _clean(args), that was commented out for debugging :) --- mediagoblin/gmg_commands/import_export.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mediagoblin/gmg_commands/import_export.py b/mediagoblin/gmg_commands/import_export.py index b00fb1cb..46a8269b 100644 --- a/mediagoblin/gmg_commands/import_export.py +++ b/mediagoblin/gmg_commands/import_export.py @@ -115,7 +115,8 @@ def env_import(args): _import_media(db, args) - # _clean(args) + _clean(args) + def _setup_paths(args): """ From 6c6009ba65b2df22b27cb6b3d83ee8c220767316 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 20 Aug 2011 22:22:54 -0500 Subject: [PATCH 0907/2731] Import / export to a temporary directory if cache_path not provided. --- mediagoblin/gmg_commands/import_export.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/mediagoblin/gmg_commands/import_export.py b/mediagoblin/gmg_commands/import_export.py index 46a8269b..812d1486 100644 --- a/mediagoblin/gmg_commands/import_export.py +++ b/mediagoblin/gmg_commands/import_export.py @@ -22,6 +22,7 @@ from mediagoblin.init import setup_storage, setup_global_and_app_config import shutil import tarfile +import tempfile import subprocess import os.path import os @@ -43,8 +44,8 @@ def import_export_parse_setup(subparser): '--mongorestore_path', default='mongorestore', help='mongorestore binary') subparser.add_argument( - '--cache_path', default='/tmp/mediagoblin/', - help='') + '--cache_path', + help='Temporary directory where files will be temporarily dumped') def _import_media(db, args): @@ -91,6 +92,9 @@ def env_import(args): """ Restore mongo database and media files from a tar archive """ + if not args.cache_path: + args.cache_path = tempfile.mkdtemp() + # args.cache_path += 'mediagoblin-data' setup_global_and_app_config(args.conf_file) @@ -171,12 +175,6 @@ def _export_check(args): return False - if os.path.exists(args.cache_path): - print 'The cache directory must not exist before you run this script' - print 'Cache directory: ', args.cache_path - - return False - return True @@ -221,6 +219,15 @@ def env_export(args): """ Export database and media files to a tar archive """ + if args.cache_path: + if os.path.exists(args.cache_path): + print 'The cache directory must not exist before you run this script' + print 'Cache directory: ', args.cache_path + + return False + else: + args.cache_path = tempfile.mkdtemp() + args = _setup_paths(args) if not _export_check(args): From 2db2211d96ec200471af675c55ae95c1b5f4ac0d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 20 Aug 2011 22:26:45 -0500 Subject: [PATCH 0908/2731] We should use os.path.join to concatenate directories. --- mediagoblin/gmg_commands/import_export.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/gmg_commands/import_export.py b/mediagoblin/gmg_commands/import_export.py index 812d1486..367924a5 100644 --- a/mediagoblin/gmg_commands/import_export.py +++ b/mediagoblin/gmg_commands/import_export.py @@ -95,7 +95,6 @@ def env_import(args): if not args.cache_path: args.cache_path = tempfile.mkdtemp() - # args.cache_path += 'mediagoblin-data' setup_global_and_app_config(args.conf_file) # Creates mg_globals.public_store and mg_globals.queue_store @@ -111,7 +110,8 @@ def env_import(args): tf.extractall(args.cache_path) - args.cache_path += 'mediagoblin-data' + args.cache_path = os.path.join( + args.cache_path, 'mediagoblin-data') args = _setup_paths(args) # Import database from extracted data From e3df834a8a22a45ba77940efbd083c7d5a23764e Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Sun, 21 Aug 2011 00:09:28 -0500 Subject: [PATCH 0909/2731] Bug #503 - removes inert navigation buttons - the grey X navigation buttons indicating the first and last media entries should not appear since they do not do anything --- .../mediagoblin/utils/prev_next.html | 38 +++++++------------ 1 file changed, 14 insertions(+), 24 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/utils/prev_next.html b/mediagoblin/templates/mediagoblin/utils/prev_next.html index 7cf8d2a4..f8a746d9 100644 --- a/mediagoblin/templates/mediagoblin/utils/prev_next.html +++ b/mediagoblin/templates/mediagoblin/utils/prev_next.html @@ -20,27 +20,17 @@ {% set prev_entry_url = media.url_to_prev(request.urlgen) %} {% set next_entry_url = media.url_to_next(request.urlgen) %} -
      - {# There are no previous entries for the very first media entry #} - {% if prev_entry_url %} - - Previous image - - {% else %} - {# This is the first entry. display greyed-out 'previous' image #} - - {% endif %} - {# Likewise, this could be the very last media entry #} - {% if next_entry_url %} - - Next image - - {% else %} - {# This is the last entry. display greyed-out 'next' image #} - - {% endif %} -
      +{% if prev_entry_url or next_entry_url %} +
      + {% if prev_entry_url %} + + Previous image + + {% endif %} + {% if next_entry_url %} + + Next image + + {% endif %} +
      +{% endif %} From 72ae87af4a0d5a9e30db220b3ec832721b027769 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 21 Aug 2011 00:09:29 -0500 Subject: [PATCH 0910/2731] Slightly wrapping paste error middleware and turning it on Now we can show a nice "borked goblin" error :) --- mediagoblin/errormiddleware.py | 53 ++++++++++++++++++++++ mediagoblin/templates/mediagoblin/500.html | 49 -------------------- paste.ini | 12 ++++- setup.py | 3 ++ 4 files changed, 66 insertions(+), 51 deletions(-) create mode 100644 mediagoblin/errormiddleware.py delete mode 100644 mediagoblin/templates/mediagoblin/500.html diff --git a/mediagoblin/errormiddleware.py b/mediagoblin/errormiddleware.py new file mode 100644 index 00000000..084b3684 --- /dev/null +++ b/mediagoblin/errormiddleware.py @@ -0,0 +1,53 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from paste.exceptions.errormiddleware import make_error_middleware + +MGOBLIN_ERROR_MESSAGE = """\ +
      +

      YEOWCH... that's an error!

      +
      +.-------------------------.
      +|     __            _     |
      +|    -, \_,------,_//     |
      +|     <\  ,--   --.\      |
      +|      / (  X) (X  )      |
      +|      '  '--, ,--'\      |
      +|     / \ -v-v-u-v /      |
      +|     .  '.__.--__'.\     |
      +|    / ',___/ / \__/'     |
      +|    | |   ,'\_'/, ||     |
      +|    \_|   | | | | ||     |
      +|     W',_ ||| |||_''     |
      +|      |  '------'|       |
      +|      |__|     |_|_      |
      +|     ,,,-'     '-,,,     |
      +'-------------------------'
      +  
      +

      Something bad happened, and things broke.

      +

      If this is not your website, you may want to alert the owner.

      +

      +

      + Powered... er broken... by + MediaGoblin, + a GNU Project. +

      +
      """ + + +def mgoblin_error_middleware(app, global_conf, **kw): + kw['error_message'] = MGOBLIN_ERROR_MESSAGE + return make_error_middleware(app, global_conf, **kw) diff --git a/mediagoblin/templates/mediagoblin/500.html b/mediagoblin/templates/mediagoblin/500.html deleted file mode 100644 index 464630a7..00000000 --- a/mediagoblin/templates/mediagoblin/500.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - 500 error! GNU MediaGoblin is sorry... - - -

      YEOWCH... that's an error!

      -

      - .-------------------------.
      - |     __            _     |
      - |    -, \_,------,_//     |
      - |     <\  ,--   --.\      |
      - |      / (  X) (X  )      |
      - |      '  '--, ,--'\      |
      - |     / \ -v-v-u-v /      |
      - |     .  '.__.--__'.\     |
      - |    / ',___/ / \__/'     |
      - |    | |   ,'\_'/, ||     |
      - |    \_|   | | | | ||     |
      - |     W',_ ||| |||_''     |
      - |      |  '------'|       |
      - |      |__|     |_|_      |
      - |     ,,,-'     '-,,,     |
      - '-------------------------'
      -

      -

      Something bad happened, and things broke.

      -

      If this is not your website, you may want to alert the owner.

      -

      -

      Powered... er broken... by MediaGoblin, a GNU Project.

      - - diff --git a/paste.ini b/paste.ini index 73fbe8e8..fc459989 100644 --- a/paste.ini +++ b/paste.ini @@ -1,7 +1,11 @@ [DEFAULT] -debug = true +# Set to true to enable web-based debugging messages and etc. +debug = false -[composite:main] +[pipeline:main] +pipeline = errors routing + +[composite:routing] use = egg:Paste#urlmap / = mediagoblin /mgoblin_media/ = publicstore_serve @@ -28,6 +32,10 @@ beaker.session.key = mediagoblin beaker.session.data_dir = %(here)s/user_dev/beaker/sessions/data beaker.session.lock_dir = %(here)s/user_dev/beaker/sessions/lock +[filter:errors] +use = egg:mediagoblin#errors +debug = false + [server:main] use = egg:Paste#http host = 127.0.0.1 diff --git a/setup.py b/setup.py index 40715dd0..d6ef584b 100644 --- a/setup.py +++ b/setup.py @@ -58,6 +58,9 @@ setup( [paste.app_factory] app = mediagoblin.app:paste_app_factory + [paste.filter_app_factory] + errors = mediagoblin.errormiddleware:mgoblin_error_middleware + [zc.buildout] make_user_dev_dirs = mediagoblin.buildout_recipes:MakeUserDevDirs From 9ac7371712c73c7b2e5d0abd2b495959745e8e2f Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 21 Aug 2011 00:11:54 -0500 Subject: [PATCH 0911/2731] Better derp eyes for a 500 error in the ascii art :) --- mediagoblin/errormiddleware.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/errormiddleware.py b/mediagoblin/errormiddleware.py index 084b3684..2f14fdd5 100644 --- a/mediagoblin/errormiddleware.py +++ b/mediagoblin/errormiddleware.py @@ -24,7 +24,7 @@ MGOBLIN_ERROR_MESSAGE = """\ | __ _ | | -, \_,------,_// | | <\ ,-- --.\ | -| / ( X) (X ) | +| / (x ) ( X ) | | ' '--, ,--'\ | | / \ -v-v-u-v / | | . '.__.--__'.\ | From ae72c6381475408d83bfcf702c8eed7d4d80c1f5 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 21 Aug 2011 00:24:47 -0500 Subject: [PATCH 0912/2731] Added a docstring to mgoblin_error_middleware --- mediagoblin/errormiddleware.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mediagoblin/errormiddleware.py b/mediagoblin/errormiddleware.py index 2f14fdd5..352dc891 100644 --- a/mediagoblin/errormiddleware.py +++ b/mediagoblin/errormiddleware.py @@ -49,5 +49,12 @@ MGOBLIN_ERROR_MESSAGE = """\ def mgoblin_error_middleware(app, global_conf, **kw): + """ + MediaGoblin wrapped error middleware. + + This is really just wrapping the error middleware from Paste. + It should take all of Paste's default options, so see: + http://pythonpaste.org/modules/exceptions.html + """ kw['error_message'] = MGOBLIN_ERROR_MESSAGE return make_error_middleware(app, global_conf, **kw) From 0a100476b24d81355342cae5320e1a5a6c83014d Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Sun, 21 Aug 2011 01:03:02 -0500 Subject: [PATCH 0913/2731] only remove the inert Xs when the user has one item --- .../templates/mediagoblin/utils/prev_next.html | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/mediagoblin/templates/mediagoblin/utils/prev_next.html b/mediagoblin/templates/mediagoblin/utils/prev_next.html index f8a746d9..8c0cee02 100644 --- a/mediagoblin/templates/mediagoblin/utils/prev_next.html +++ b/mediagoblin/templates/mediagoblin/utils/prev_next.html @@ -22,15 +22,27 @@ {% if prev_entry_url or next_entry_url %}
      + {# There are no previous entries for the very first media entry #} {% if prev_entry_url %} Previous image + {% else %} + {# This is the first entry. display greyed-out 'previous' image #} + {% endif %} + {# Likewise, this could be the very last media entry #} {% if next_entry_url %} Next image + {% else %} + {# This is the last entry. display greyed-out 'next' image #} + {% endif %}
      {% endif %} From 63c9a0c766559ddd9bea79a03499040a0f3f9853 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 21 Aug 2011 15:14:45 -0500 Subject: [PATCH 0914/2731] Updating tests for new storage config code --- mediagoblin/tests/test_mgoblin_app.ini | 10 +++++++--- mediagoblin/tests/test_storage.py | 21 +++++++++------------ 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/mediagoblin/tests/test_mgoblin_app.ini b/mediagoblin/tests/test_mgoblin_app.ini index 7716e9ca..0109d751 100644 --- a/mediagoblin/tests/test_mgoblin_app.ini +++ b/mediagoblin/tests/test_mgoblin_app.ini @@ -1,7 +1,4 @@ [mediagoblin] -queuestore_base_dir = %(here)s/test_user_dev/media/queue -publicstore_base_dir = %(here)s/test_user_dev/media/public -publicstore_base_url = /mgoblin_media/ direct_remote_path = /mgoblin_static/ email_sender_address = "notice@mediagoblin.example.org" email_debug_mode = true @@ -15,5 +12,12 @@ tags_max_length = 50 # mediagoblin.init.celery.from_celery celery_setup_elsewhere = true +[storage:publicstore] +base_dir = %(here)s/test_user_dev/media/public +base_url = /mgoblin_media/ + +[storage:queuestore] +queuestore_base_dir = %(here)s/test_user_dev/media/queue + [celery] celery_always_eager = true diff --git a/mediagoblin/tests/test_storage.py b/mediagoblin/tests/test_storage.py index 1800c29d..45cb35c1 100644 --- a/mediagoblin/tests/test_storage.py +++ b/mediagoblin/tests/test_storage.py @@ -60,23 +60,20 @@ class FakeRemoteStorage(storage.BasicFileStorage): def test_storage_system_from_config(): this_storage = storage.storage_system_from_config( - {'somestorage_base_url': 'http://example.org/moodia/', - 'somestorage_base_dir': '/tmp/', - 'somestorage_garbage_arg': 'garbage_arg', - 'garbage_arg': 'trash'}, - 'somestorage') + {'base_url': 'http://example.org/moodia/', + 'base_dir': '/tmp/', + 'garbage_arg': 'garbage_arg', + 'garbage_arg': 'trash'}) assert this_storage.base_url == 'http://example.org/moodia/' assert this_storage.base_dir == '/tmp/' assert this_storage.__class__ is storage.BasicFileStorage this_storage = storage.storage_system_from_config( - {'somestorage_foobie': 'eiboof', - 'somestorage_blech': 'hcelb', - 'somestorage_garbage_arg': 'garbage_arg', - 'garbage_arg': 'trash', - 'somestorage_storage_class': - 'mediagoblin.tests.test_storage:FakeStorageSystem'}, - 'somestorage') + {'foobie': 'eiboof', + 'blech': 'hcelb', + 'garbage_arg': 'garbage_arg', + 'storage_class': + 'mediagoblin.tests.test_storage:FakeStorageSystem'}) assert this_storage.foobie == 'eiboof' assert this_storage.blech == 'hcelb' assert this_storage.__class__ is FakeStorageSystem From abbc6c1a550d3aa8bab11fc67561e134d65ac5e6 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 21 Aug 2011 21:54:54 -0500 Subject: [PATCH 0915/2731] Updating the mediagoblin manual's foreward: - Removing contributors section of the foreward... we should have a contributors list, but it doesn't belong here. - Specifying that this manual is not contributor-oriented... it's for local users/administrators - Updating issue tracker link - Adjusting the "living document" line to mention http://docs.mediagoblin.org --- docs/source/foreword.rst | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/docs/source/foreword.rst b/docs/source/foreword.rst index 1d423f08..4fd96842 100644 --- a/docs/source/foreword.rst +++ b/docs/source/foreword.rst @@ -8,34 +8,27 @@ About this manual This is the GNU MediaGoblin manual. This documentation targets the following groups of individuals: -* people who want to use the software -* people who want to deploy the software -* contributors +* people who want to try the software locally +* people who want to deploy and administrate the software -This manual is a living document and is in the ``mediagoblin`` +This manual doesn't cover contributors to the codebase. But we want +and love contributors! To join as a contributor please visit the +following pages instead: + +* http://mediagoblin.org/pages/join.html for general "join us" information +* http://wiki.mediagoblin.org/ for our contributor-focused wiki + +If you are viewing this from http://docs.mediagoblin.org be aware that +this manual is a living document and is in the ``mediagoblin`` repository in the ``docs/`` directory. -Who wrote this documentation? -============================= - -In no particular order: - -* Chris -* Will -* Deb -* Greg -* Karen -* Matt -* Asheesh - - I found an error in the docs---who do I tell? ============================================= There are a few ways---please pick the one most convenient to you! -1. Write up a bug report in the bug tracker at http://bugs.foocorp.net/ . +1. Write up a bug report in the bug tracker at http://bugs.foocorp.net/projects/mediagoblin/issues 2. Tell someone on IRC ``#mediagoblin`` on Freenode. 3. Send an email to Will ``willg at bluesock dot org``. From 26924b717efe7942593c992999a792de36dc82f4 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 21 Aug 2011 22:23:03 -0500 Subject: [PATCH 0916/2731] Changing the MediaGoblin Sphinx docs a bit... - Removing the git guide, and moved it to the wiki - moving mediagoblin.rst to about_mediagoblin.rst --- ...{mediagoblin.rst => about_mediagoblin.rst} | 0 docs/source/git.rst | 224 ------------------ docs/source/index.rst | 5 +- 3 files changed, 2 insertions(+), 227 deletions(-) rename docs/source/{mediagoblin.rst => about_mediagoblin.rst} (100%) delete mode 100644 docs/source/git.rst diff --git a/docs/source/mediagoblin.rst b/docs/source/about_mediagoblin.rst similarity index 100% rename from docs/source/mediagoblin.rst rename to docs/source/about_mediagoblin.rst diff --git a/docs/source/git.rst b/docs/source/git.rst deleted file mode 100644 index ab3206b6..00000000 --- a/docs/source/git.rst +++ /dev/null @@ -1,224 +0,0 @@ -========================== - Git, Cloning and Patches -========================== - -.. contents:: Sections - :local: - - -GNU MediaGoblin uses git for all our version control and we have the -repositories hosted on `Gitorious `_. We have -two repositories: - -* MediaGoblin software: http://gitorious.org/mediagoblin/mediagoblin -* MediaGoblin website: http://gitorious.org/mediagoblin/mediagoblin-website - -It's most likely you want to look at the software repository--not the -website one. - -The rest of this chapter talks about using the software repository. - - -How to clone the project -======================== - -Do:: - - git clone git://gitorious.org/mediagoblin/mediagoblin.git - - -How to contribute changes -========================= - -Tie your changes to issues in the issue tracker ------------------------------------------------ - -All patches should be tied to issues in the `issue tracker -`_. That makes -it a lot easier for everyone to track proposed changes and make sure -your hard work doesn't get dropped on the floor! If there isn't an -issue for what you're working on, please create one. The better the -description of what it is you're trying to fix/implement, the better -everyone else is able to understand why you're doing what you're -doing. - - -Use bugfix branches to make changes ------------------------------------ - -The best way to isolate your changes is to create a branch based off -of the MediaGoblin repository master branch, do the changes related to -that one issue there, and then let us know how to get it. - -It's much easier on us if you isolate your changes to a branch focused -on the issue. Then we don't have to sift through things. - -It's much easier on you if you isolate your changes to a branch -focused on the issue. Then when we merge your changes in, you just -have to do a ``git fetch`` and that's it. This is especially true if -we reject some of your changes, but accept others or otherwise tweak -your changes. - -Further, if you isolate your changes to a branch, then you can work on -multiple issues at the same time and they don't conflict with one -another. - -Name your branches using the isue number and something that makes it clear -what it's about. For example, if you were working on tagging, you -might name your branch ``360_tagging``. - - -Properly document your changes ------------------------------- - -Include comments in the code. - -Write comprehensive commit messages. The better your commit message -is at describing what you did and why, the easier it is for us to -quickly accept your patch. - -Write comprehensive comments in the issue tracker about what you're -doing and why. - - -How to send us your changes ---------------------------- - -There are two ways to let us know how to get it: - -1. *(preferred)* **push changes to publicly available git clone and - let us know where to find it** - - Push your feature/bugfix/issue branch to your publicly available - git clone and add a comment to the issue with the url for your - clone and the branch to look at. - -2. **attaching the patch files to the issue** - - Run:: - - git format-patch --stdout /master > issue_.patch - - ``format-patch`` creates a patch of all the commits that are in - your branch that aren't in ``/master``. The ``--stdout`` - flag causes all this output to go to stdout where it's redirected - to a file named ``issue_.patch``. That file should be - based on the issue you're working with. For example, - ``issue_42.patch`` is a good filename and ``issue_42_rev2.patch`` - is good if you did a revision of it. - - Having said all that, the filename isn't wildly important. - - -Example workflow -================ - -Here's an example workflow. - - -Contributing changes --------------------- - -Slartibartfast from the planet Magrathea far off in the universe has -decided that he is bored with fjords and wants to fix issue 42 (the -meaning of life bug) and send us the changes. - -Slartibartfast has cloned the MediaGoblin repository and his clone -lives on gitorious. - -Slartibartfast works locally. The remote named ``origin`` points to -his clone on gitorious. The remote named ``gmg`` points to the -MediaGoblin repository. - -Slartibartfast does the following: - -1. Fetches the latest from the MediaGoblin repository:: - - git fetch --all -p - - This tells ``git fetch`` to fetch all the recent data from all of - the remotes (``--all``) and prune any branches that have been - deleted in the remotes (``-p``). - -2. Creates a branch from the tip of the MediaGoblin repository (the - remote is named ``gmg``) master branch called ``bug42_meaning_of_life``:: - - git checkout -b bug42_meaning_of_life gmg/master - - This creates a new branch (``-b``) named ``bug42_meaning_of_life`` based - on the tip of the ``master`` branch of the remote named ``gmg`` and checks - it out. - -3. Slartibartfast works hard on his changes in the ``bug42_meaning_of_life`` - branch. When done, he wants to notify us that he has made changes - he wants us to see. - -4. Slartibartfast pushes his changes to his clone:: - - git push origin bug42_meaning_of_life --set-upstream - - This pushes the changes in the ``bug42_meaning_of_life`` branch to the - remote named ``origin``. - -5. Slartibartfast adds a comment to issue 42 with the url for his - repository and the name of the branch he put the code in. He also - explains what he did and why it addresses the issue. - - -Updating a contribution ------------------------ - -Slartibartfast brushes his hands off with the sense of accomplishment -that comes with the knowledge of a job well done. He stands, wanders -over to get a cup of water, then realizes that he forgot to run the -unit tests! - -He runs the unit tests and discovers there's a bug in the code! - -Then he does this: - -1. He checks out the ``bug42_meaning_of_life`` branch:: - - git checkout bug42_meaning_of_life - -2. He fixes the bug and checks it into the ``bug42_meaning_of_life`` branch. - -3. He pushes his changes to his clone (the remote is named ``origin``):: - - git push origin bug42_meaning_of_life - -4. He adds another comment to issue 42 explaining about the mistake - and how he fixed it and that he's pushed the new change to the - ``bug42_meaning_of_life`` branch of his publicly available clone. - - -What happens next ------------------ - -Slartibartfast is once again happy with his work. He finds issue 42 -in the issue tracker and adds a comment saying he submitted a merge -request with his changes and explains what they are. - -Later, someone checks out his code and finds a problem with it. He -adds a comment to the issue tracker specifying the problem and asks -Slartibartfast to fix it. Slartibartfst goes through the above steps -again, fixes the issue, pushes it to his ``bug42_meaning_of_life`` branch and adds -another comment to the issue tracker about how he fixed it. - -Later, someone checks out his code and is happy with it. Someone -pulls it into the master branch of the MediaGoblin repository and adds -another comment to the issue and probably closes the issue out. - -Slartibartfast is notified of this. Slartibartfast does a:: - - git fetch --all - -The changes show up in the ``master`` branch of the ``gmg`` remote. -Slartibartfast now deletes his ``bug42_meaning_of_life`` branch -because he doesn't need it anymore. - - -How to learn git -================ - -Check out `the wiki `_. diff --git a/docs/source/index.rst b/docs/source/index.rst index 8c00869a..79f2653e 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -12,11 +12,10 @@ Table of Contents: :maxdepth: 2 foreword - mediagoblin - contributinghowto + about_mediagoblin deploymenthowto theminghowto - git + contributinghowto codebase vision From 7a8ad8187c22f96604fda3a9a63f2b0e70d3aca0 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 21 Aug 2011 23:02:21 -0500 Subject: [PATCH 0917/2731] MediaGoblin favicon by Alex Camelio!!! OMG. --- mediagoblin/static/images/goblin.ico | Bin 0 -> 318 bytes mediagoblin/static/images/goblin.png | Bin 0 -> 413 bytes mediagoblin/templates/mediagoblin/base.html | 2 ++ 3 files changed, 2 insertions(+) create mode 100644 mediagoblin/static/images/goblin.ico create mode 100644 mediagoblin/static/images/goblin.png diff --git a/mediagoblin/static/images/goblin.ico b/mediagoblin/static/images/goblin.ico new file mode 100644 index 0000000000000000000000000000000000000000..f2e7152f9e6a932d5fe79c91bb419b955c86ed5b GIT binary patch literal 318 zcmaKnu?oU45QhJ#=x8Fr!9i=rgy7={4!(w)tD{@JpoLET z!k4>TavT8|EzUXZBg71t1BgjZ2Bfd|u@MVwmpdHyHLmuA`}u;VY5H0^cT5OBh)H8K zB{H|R&|s#loHLvmK~U6|keuaJ>8gT59!fXX^xmI+G=%TVl!^?OS(v6tq{S>H)&fvU jCI7Ku@Jj{(J}clk0d7N}roVUfwN_tmc~61nLB4=50(vM= literal 0 HcmV?d00001 diff --git a/mediagoblin/static/images/goblin.png b/mediagoblin/static/images/goblin.png new file mode 100644 index 0000000000000000000000000000000000000000..0a3ad22ee0e01e814802e064de8955ad97d1c39e GIT binary patch literal 413 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgg)4lzbv?U(;wd;yvw>*?YcVsW~6 z@>)M;N0HY3nHxH8wM_^K(fN8o;K?ex1A7=JDBM^ekipU=;^pr zNF)ot0mqKRe{we;fAi#x?ellGr&cju#7hb2iaWouXK6}Z*fA?0} zPXEj~KYr_`&n;@N6_OfyKRhk1%sIdPIX}ak7}$KkMoIkeu z&APx%93Ovu6Iy$*JFF>l7yr{5ri7y>=btp?ddS6UAAGzZeAcYXDZsE}@O1TaS?83{ F1OUjFs-*w` literal 0 HcmV?d00001 diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 6e54c31d..91b434c1 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -28,6 +28,8 @@ href="{{ request.staticdirect('/css/extlib/960_16_col.css') }}"/> + {% block mediagoblin_head %} {% endblock mediagoblin_head %} From ec451724ccd436f758fabb67e1e872f002acf4d5 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 21 Aug 2011 23:10:12 -0500 Subject: [PATCH 0918/2731] Add titles to media entries in galleries --- mediagoblin/static/css/base.css | 5 +++++ .../templates/mediagoblin/utils/object_gallery.html | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 51a855be..af8f7763 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -244,6 +244,11 @@ text-align: center; text-align: center; } +.media_thumbnail a { + color: #eee; + text-decoration: none; +} + /* media detail */ h2.media_title{ diff --git a/mediagoblin/templates/mediagoblin/utils/object_gallery.html b/mediagoblin/templates/mediagoblin/utils/object_gallery.html index b451946d..34eb7dbc 100644 --- a/mediagoblin/templates/mediagoblin/utils/object_gallery.html +++ b/mediagoblin/templates/mediagoblin/utils/object_gallery.html @@ -25,13 +25,18 @@ {%- if loop.first %} thumb_row_first {%- elif loop.last %} thumb_row_last{% endif %}"> {% for entry in row %} + {% set entry_url = entry.url_for_self(request.urlgen) %} - + + {% if entry['title'] %} +
      + {{ entry['title'] }} + {% endif %} {% endfor %} From 970cea18dcdbfd68ad5506843504decd6826122b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 21 Aug 2011 23:39:35 -0500 Subject: [PATCH 0919/2731] I think the media entries' titles look nicer if they're a bit smaller. --- mediagoblin/static/css/base.css | 1 + 1 file changed, 1 insertion(+) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index af8f7763..1852b70c 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -242,6 +242,7 @@ text-align: center; float: left; margin: 0px 4px 10px 4px; text-align: center; + font-size: 0.875em; } .media_thumbnail a { From 9b424b17ccb6b6c034755925b14f9cfda23ad29a Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 21 Aug 2011 23:39:59 -0500 Subject: [PATCH 0920/2731] Feature #506: link to original sized image if we scaled the image down. --- .../mediagoblin/user_pages/media.html | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 2086d3d6..6747fddc 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -24,9 +24,24 @@ {% if media %}
      - + {% set display_media = request.app.public_store.file_url( + media.get_display_media(media.media_files)) %} + + {# if there's a medium file size, that means the medium size + # isn't the original... so link to the original! + #} + {% if media['media_files'].has_key('medium') %} + + Image for {{ media.title }} + + {% else %} + Image for {{ media.title }} + {% endif %}

      From a8327519ebcb9ea7b3b8362cda989a130a5813d1 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 22 Aug 2011 00:33:33 -0500 Subject: [PATCH 0921/2731] Experimentally putting logo in place Combining MediaGoblin eared-M logo with Thorsten's handwritten text. Well... looking nice to me :) --- mediagoblin/static/images/logo.png | Bin 0 -> 3340 bytes mediagoblin/templates/mediagoblin/base.html | 5 +++-- 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 mediagoblin/static/images/logo.png diff --git a/mediagoblin/static/images/logo.png b/mediagoblin/static/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..019ec5ec877b08fa7789f82f1cef57460bfc8807 GIT binary patch literal 3340 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 WOoTEok7gJE0000 {% block mediagoblin_logo %} + {% trans %}MediaGoblin logo{% endtrans %} + {% endblock %} {% if request.user and request.user['status'] == 'active' %} Date: Mon, 22 Aug 2011 02:57:40 -0700 Subject: [PATCH 0922/2731] + 'confirm' section for confirmation dialogues + implemented delete functionality * fixed several instances of 'must be an instance of unicode, not str' --- mediagoblin/auth/views.py | 11 ++++++----- mediagoblin/edit/views.py | 13 ++++++++----- mediagoblin/routing.py | 2 ++ mediagoblin/submit/views.py | 4 ++-- .../templates/mediagoblin/user_pages/media.html | 7 +++++-- mediagoblin/user_pages/routing.py | 2 ++ mediagoblin/user_pages/views.py | 2 +- 7 files changed, 26 insertions(+), 15 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 4c4a34fd..48c5937c 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -44,11 +44,12 @@ def register(request): if request.method == 'POST' and register_form.validate(): # TODO: Make sure the user doesn't exist already - + username = unicode(request.POST['username'].lower()) + email = unicode(request.POST['email'].lower()) users_with_username = request.db.User.find( - {'username': request.POST['username'].lower()}).count() + {'username': username}).count() users_with_email = request.db.User.find( - {'email': request.POST['email'].lower()}).count() + {'email': email}).count() extra_validation_passes = True @@ -64,8 +65,8 @@ def register(request): if extra_validation_passes: # Create the user user = request.db.User() - user['username'] = request.POST['username'].lower() - user['email'] = request.POST['email'].lower() + user['username'] = username + user['email'] = email user['pw_hash'] = auth_lib.bcrypt_gen_password_hash( request.POST['password']) user.save(validate=True) diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 0b1a98f1..2a835816 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -14,6 +14,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +import uuid from webob import exc from string import split @@ -53,15 +54,17 @@ def edit_media(request, media): form.slug.errors.append( _(u'An entry with that slug already exists for this user.')) else: - media['title'] = request.POST['title'] - media['description'] = request.POST.get('description') + media['title'] = unicode(request.POST['title']) + media['description'] = unicode(request.POST.get('description')) media['tags'] = convert_to_tag_list_of_dicts( request.POST.get('tags')) media['description_html'] = cleaned_markdown_conversion( media['description']) - media['slug'] = request.POST['slug'] + media['slug'] = unicode(request.POST['slug']) + task_id = unicode(uuid.uuid4()) + media['queued_task_id'] = task_id media.save() return redirect(request, "mediagoblin.user_pages.media_home", @@ -102,8 +105,8 @@ def edit_profile(request): bio = user.get('bio')) if request.method == 'POST' and form.validate(): - user['url'] = request.POST['url'] - user['bio'] = request.POST['bio'] + user['url'] = unicode(request.POST['url']) + user['bio'] = unicode(request.POST['bio']) user['bio_html'] = cleaned_markdown_conversion(user['bio']) diff --git a/mediagoblin/routing.py b/mediagoblin/routing.py index 1340da60..125f7270 100644 --- a/mediagoblin/routing.py +++ b/mediagoblin/routing.py @@ -21,6 +21,7 @@ from mediagoblin.submit.routing import submit_routes from mediagoblin.user_pages.routing import user_routes from mediagoblin.edit.routing import edit_routes from mediagoblin.listings.routing import tag_routes +from mediagoblin.confirm.routing import confirm_routes def get_mapper(): @@ -36,5 +37,6 @@ def get_mapper(): mapping.extend(user_routes, '/u') mapping.extend(edit_routes, '/edit') mapping.extend(tag_routes, '/tag') + mapping.extend(confirm_routes, '/confirm') return mapping diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 1ba17954..5bcc5393 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -55,10 +55,10 @@ def submit_start(request): entry = request.db.MediaEntry() entry['_id'] = ObjectId() entry['title'] = ( - request.POST['title'] + unicode(request.POST['title']) or unicode(splitext(filename)[0])) - entry['description'] = request.POST.get('description') + entry['description'] = unicode(request.POST.get('description')) entry['description_html'] = cleaned_markdown_conversion( entry['description']) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 6747fddc..c80144aa 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -127,8 +127,11 @@ class="media_icon" />edit

      - {% trans %}delete{% endtrans %} + {% trans %}delete{% endtrans %}

      {% endif %} diff --git a/mediagoblin/user_pages/routing.py b/mediagoblin/user_pages/routing.py index bf9f12ab..1283355a 100644 --- a/mediagoblin/user_pages/routing.py +++ b/mediagoblin/user_pages/routing.py @@ -29,6 +29,8 @@ user_routes = [ controller="mediagoblin.user_pages.views:media_home"), Route('mediagoblin.edit.edit_media', "/{user}/m/{media}/edit/", controller="mediagoblin.edit.views:edit_media"), + Route('mediagoblin.confirm.confirm_delete', "/{user}/m/{media}/confirm/", + controller="mediagoblin.confirm.views:confirm_delete"), Route('mediagoblin.user_pages.atom_feed', '/{user}/atom/', controller="mediagoblin.user_pages.views:atom_feed"), Route('mediagoblin.user_pages.media_post_comment', diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 3677c134..bb789f42 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -129,7 +129,7 @@ def media_post_comment(request): comment = request.db.MediaComment() comment['media_entry'] = ObjectId(request.matchdict['media']) comment['author'] = request.user['_id'] - comment['content'] = request.POST['comment_content'] + comment['content'] = unicode(request.POST['comment_content']) comment['content_html'] = cleaned_markdown_conversion(comment['content']) From ae4feecfc20b6c7daf54e7822dc85dba6ac0f2eb Mon Sep 17 00:00:00 2001 From: Mark Holmquist Date: Mon, 22 Aug 2011 03:35:44 -0700 Subject: [PATCH 0923/2731] * Fix bad commit (oops!) * Delete works now --- mediagoblin/confirm/__init__.py | 17 ++++++ mediagoblin/confirm/forms.py | 26 +++++++++ mediagoblin/confirm/lib.py | 24 ++++++++ mediagoblin/confirm/routing.py | 21 +++++++ mediagoblin/confirm/views.py | 56 +++++++++++++++++++ .../mediagoblin/confirm/confirm_delete.html | 40 +++++++++++++ 6 files changed, 184 insertions(+) create mode 100644 mediagoblin/confirm/__init__.py create mode 100644 mediagoblin/confirm/forms.py create mode 100644 mediagoblin/confirm/lib.py create mode 100644 mediagoblin/confirm/routing.py create mode 100644 mediagoblin/confirm/views.py create mode 100644 mediagoblin/templates/mediagoblin/confirm/confirm_delete.html diff --git a/mediagoblin/confirm/__init__.py b/mediagoblin/confirm/__init__.py new file mode 100644 index 00000000..a8eeb5ed --- /dev/null +++ b/mediagoblin/confirm/__init__.py @@ -0,0 +1,17 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + diff --git a/mediagoblin/confirm/forms.py b/mediagoblin/confirm/forms.py new file mode 100644 index 00000000..4529528b --- /dev/null +++ b/mediagoblin/confirm/forms.py @@ -0,0 +1,26 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +import wtforms + +from mediagoblin.util import fake_ugettext_passthrough as _ + +class ConfirmDeleteForm(wtforms.Form): + confirm = wtforms.RadioField('Confirm', + default='False', + choices=[('False', 'No, I made a mistake!'), + ('True', 'Yes, delete it!')]) diff --git a/mediagoblin/confirm/lib.py b/mediagoblin/confirm/lib.py new file mode 100644 index 00000000..2efc3735 --- /dev/null +++ b/mediagoblin/confirm/lib.py @@ -0,0 +1,24 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +def may_delete_media(request, media): + """Check, if the request's user may edit the media details""" + if media['uploader'] == request.user['_id']: + return True + if request.user['is_admin']: + return True + return False diff --git a/mediagoblin/confirm/routing.py b/mediagoblin/confirm/routing.py new file mode 100644 index 00000000..d8c1ef22 --- /dev/null +++ b/mediagoblin/confirm/routing.py @@ -0,0 +1,21 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +from routes.route import Route + +confirm_routes = [ +] diff --git a/mediagoblin/confirm/views.py b/mediagoblin/confirm/views.py new file mode 100644 index 00000000..a4a63582 --- /dev/null +++ b/mediagoblin/confirm/views.py @@ -0,0 +1,56 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import uuid + +from webob import exc +from string import split + +from mediagoblin import messages +from mediagoblin import mg_globals +from mediagoblin.util import ( + render_to_response, redirect, clean_html, convert_to_tag_list_of_dicts, + media_tags_as_string, cleaned_markdown_conversion) +from mediagoblin.util import pass_to_ugettext as _ +from mediagoblin.confirm import forms +from mediagoblin.confirm.lib import may_delete_media +from mediagoblin.decorators import require_active_login, get_user_media_entry + + +@get_user_media_entry +@require_active_login +def confirm_delete(request, media): + if not may_delete_media(request, media): + return exc.HTTPForbidden() + + form = forms.ConfirmDeleteForm(request.POST) + + if request.method == 'POST' and form.validate(): + if request.POST.get('confirm') == 'True': + username = media.uploader()['username'] + media.delete() + return redirect(request, "mediagoblin.user_pages.user_home", + user=username) + else: + return redirect(request, "mediagoblin.user_pages.media_home", + user=media.uploader()['username'], + media=media['slug']) + + return render_to_response( + request, + 'mediagoblin/confirm/confirm_delete.html', + {'media': media, + 'form': form}) diff --git a/mediagoblin/templates/mediagoblin/confirm/confirm_delete.html b/mediagoblin/templates/mediagoblin/confirm/confirm_delete.html new file mode 100644 index 00000000..ada89d5d --- /dev/null +++ b/mediagoblin/templates/mediagoblin/confirm/confirm_delete.html @@ -0,0 +1,40 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% extends "mediagoblin/base.html" %} + +{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} + +{% block mediagoblin_content %} + +
      +
      +

      + {%- trans title=media['title'] -%} + Really delete {{ title }}? + {%- endtrans %} +

      + {{ wtforms_util.render_divs(form) }} +
      + +
      +
      +
      +{% endblock %} From 132aa9d97a32abfe86bc5de3ea4e2fa62ddc3793 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 22 Aug 2011 08:01:20 -0500 Subject: [PATCH 0924/2731] Removing any chance of spaces in the logo link --- mediagoblin/templates/mediagoblin/base.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 370ec6ef..32d5a5d2 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -41,10 +41,10 @@
      {% block mediagoblin_logo %} - + {% endblock %} {% if request.user and request.user['status'] == 'active' %} Date: Mon, 22 Aug 2011 18:06:28 +0200 Subject: [PATCH 0925/2731] Feature #482 - Media attachments - * Moved attachment uploading to separate view * Support for multiple attachments! --- mediagoblin/edit/forms.py | 10 +- mediagoblin/edit/views.py | 92 +++++++++++++++---- mediagoblin/submit/forms.py | 3 - mediagoblin/submit/views.py | 25 ----- .../mediagoblin/edit/attachments.html | 55 +++++++++++ .../templates/mediagoblin/edit/edit.html | 9 +- .../templates/mediagoblin/submit/start.html | 3 - .../mediagoblin/user_pages/media.html | 36 +++++--- mediagoblin/user_pages/routing.py | 5 +- mediagoblin/user_pages/views.py | 5 +- 10 files changed, 164 insertions(+), 79 deletions(-) create mode 100644 mediagoblin/templates/mediagoblin/edit/attachments.html diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index 37e2349c..3969e509 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -30,10 +30,6 @@ class EditForm(wtforms.Form): tags = wtforms.TextField( 'Tags', [tag_length_validator]) - attachment_name = wtforms.TextField( - 'Attachment title') - attachment_delete = wtforms.BooleanField( - 'Delete attachment') class EditProfileForm(wtforms.Form): bio = wtforms.TextAreaField('Bio', @@ -42,3 +38,9 @@ class EditProfileForm(wtforms.Form): 'Website', [wtforms.validators.Optional(), wtforms.validators.URL(message='Improperly formed URL')]) + +class EditAttachmentsForm(wtforms.Form): + attachment_name = wtforms.TextField( + 'Title') + attachment_file = wtforms.FileField( + 'File') diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 09aee48b..c4d503b7 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -17,6 +17,10 @@ from webob import exc from string import split +from cgi import FieldStorage +from datetime import datetime + +from werkzeug.utils import secure_filename from mediagoblin import messages from mediagoblin import mg_globals @@ -34,17 +38,15 @@ def edit_media(request, media): if not may_edit_media(request, media): return exc.HTTPForbidden() - defaults = dict( - title = media['title'], - slug = media['slug'], - description = media['description'], - tags = media_tags_as_string(media['tags'])) + title=media['title'], + slug=media['slug'], + description=media['description'], + tags=media_tags_as_string(media['tags'])) if len(media['attachment_files']): defaults['attachment_name'] = media['attachment_files'][0]['name'] - form = forms.EditForm( request.POST, **defaults) @@ -56,7 +58,7 @@ def edit_media(request, media): {'slug': request.POST['slug'], 'uploader': media['uploader'], '_id': {'$ne': media['_id']}}).count() - + if existing_user_slug_entries: form.slug.errors.append( u'An entry with that slug already exists for this user.') @@ -65,14 +67,16 @@ def edit_media(request, media): media['description'] = request.POST.get('description') media['tags'] = convert_to_tag_list_of_dicts( request.POST.get('tags')) - + media['description_html'] = cleaned_markdown_conversion( media['description']) if 'attachment_name' in request.POST: - media['attachment_files'][0]['name'] = request.POST['attachment_name'] + media['attachment_files'][0]['name'] = \ + request.POST['attachment_name'] - if 'attachment_delete' in request.POST and 'y' == request.POST['attachment_delete']: + if 'attachment_delete' in request.POST \ + and 'y' == request.POST['attachment_delete']: del media['attachment_files'][0] media['slug'] = request.POST['slug'] @@ -87,18 +91,68 @@ def edit_media(request, media): messages.add_message( request, messages.WARNING, "You are editing another user's media. Proceed with caution.") - return render_to_response( request, 'mediagoblin/edit/edit.html', {'media': media, 'form': form}) - + + +@get_user_media_entry +@require_active_login +def edit_attachments(request, media): + if mg_globals.app_config['allow_attachments']: + form = forms.EditAttachmentsForm() + + # Add any attachements + if ('attachment_file' in request.POST + and isinstance(request.POST['attachment_file'], FieldStorage) + and request.POST['attachment_file'].file): + + attachment_public_filepath \ + = mg_globals.public_store.get_unique_filepath( + ['media_entries', unicode(media['_id']), 'attachment', + secure_filename(request.POST['attachment_file'].filename)]) + + attachment_public_file = mg_globals.public_store.get_file( + attachment_public_filepath, 'wb') + + try: + attachment_public_file.write( + request.POST['attachment_file'].file.read()) + finally: + request.POST['attachment_file'].file.close() + + media['attachment_files'].append(dict( + name=request.POST['attachment_name'] \ + or request.POST['attachment_file'].filename, + filepath=attachment_public_filepath, + created=datetime.utcnow() + )) + + media.save() + + messages.add_message( + request, messages.SUCCESS, + "You added the attachment %s!" \ + % (request.POST['attachment_name'] + or request.POST['attachment_file'].filename)) + + return redirect(request, 'mediagoblin.user_pages.media_home', + user=media.uploader()['username'], + media=media['slug']) + return render_to_response( + request, + 'mediagoblin/edit/attachments.html', + {'media': media, + 'form': form}) + else: + return exc.HTTPForbidden() + @require_active_login def edit_profile(request): - # admins may edit any user profile given a username in the querystring edit_username = request.GET.get('username') if request.user['is_admin'] and request.user['username'] != edit_username: @@ -112,8 +166,8 @@ def edit_profile(request): user = request.user form = forms.EditProfileForm(request.POST, - url = user.get('url'), - bio = user.get('bio')) + url=user.get('url'), + bio=user.get('bio')) if request.method == 'POST' and form.validate(): user['url'] = request.POST['url'] @@ -123,12 +177,12 @@ def edit_profile(request): user.save() - messages.add_message(request, - messages.SUCCESS, - 'Profile edited!') + messages.add_message(request, + messages.SUCCESS, + 'Profile edited!') return redirect(request, 'mediagoblin.user_pages.user_home', - user=edit_username) + user=edit_username) return render_to_response( request, diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py index 9b35a8c3..f02c95a6 100644 --- a/mediagoblin/submit/forms.py +++ b/mediagoblin/submit/forms.py @@ -28,6 +28,3 @@ class SubmitStartForm(wtforms.Form): tags = wtforms.TextField( 'Tags', [tag_length_validator]) - attachment = wtforms.FileField( - 'Attachment', - [wtforms.validators.Optional()]) diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 213b2494..126cf3a8 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -76,31 +76,6 @@ def submit_start(request): # Generate a slug from the title entry.generate_slug() - # Add any attachements - if (mg_globals.app_config['allow_attachments'] - and request.POST.has_key('attachment') - and isinstance(request.POST['attachment'], FieldStorage) - and request.POST['attachment'].file): - - attachment_public_filepath = mg_globals.public_store.get_unique_filepath( - ['media_entries', - unicode('attachment-%s' % entry['_id']), - secure_filename(request.POST['attachment'].filename)]) - - attachment_public_file = mg_globals.public_store.get_file( - attachment_public_filepath, 'wb') - - try: - attachment_public_file.write(request.POST['attachment'].file.read()) - finally: - request.POST['attachment'].file.close() - - entry['attachment_files'] = [dict( - name=request.POST['attachment'].filename, - filepath=attachment_public_filepath, - created=datetime.utcnow() - )] - # Now store generate the queueing related filename queue_filepath = request.app.queue_store.get_unique_filepath( ['media_entries', diff --git a/mediagoblin/templates/mediagoblin/edit/attachments.html b/mediagoblin/templates/mediagoblin/edit/attachments.html new file mode 100644 index 00000000..2f319dbb --- /dev/null +++ b/mediagoblin/templates/mediagoblin/edit/attachments.html @@ -0,0 +1,55 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% extends "mediagoblin/base.html" %} + +{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} +{% block mediagoblin_content %} +
      + +
      +{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/edit/edit.html b/mediagoblin/templates/mediagoblin/edit/edit.html index c834918e..d19034cb 100644 --- a/mediagoblin/templates/mediagoblin/edit/edit.html +++ b/mediagoblin/templates/mediagoblin/edit/edit.html @@ -31,14 +31,7 @@
      - {{ wtforms_util.render_field_div(form.title) }} - {{ wtforms_util.render_field_div(form.slug) }} - {{ wtforms_util.render_field_div(form.description) }} - {{ wtforms_util.render_field_div(form.tags) }} - {% if media.attachment_files %} - {{ wtforms_util.render_field_div(form.attachment_name) }} - {{ wtforms_util.render_field_div(form.attachment_delete) }} - {% endif %} + {{ wtforms_util.render_divs(form) }}
      Cancel diff --git a/mediagoblin/templates/mediagoblin/submit/start.html b/mediagoblin/templates/mediagoblin/submit/start.html index 42bbf724..6d00510c 100644 --- a/mediagoblin/templates/mediagoblin/submit/start.html +++ b/mediagoblin/templates/mediagoblin/submit/start.html @@ -28,9 +28,6 @@ {{ wtforms_util.render_field_div(submit_form.title) }} {{ wtforms_util.render_textarea_div(submit_form.description) }} {{ wtforms_util.render_field_div(submit_form.tags) }} - {% if app_config.allow_attachments %} - {{ wtforms_util.render_field_div(submit_form.attachment) }} - {% endif %}
      diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index cc4c3350..1a5eed1f 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -104,20 +104,8 @@
      {% include "mediagoblin/utils/prev_next.html" %}

      Sidebar content here!

      - - {% if media.attachment_files %} -
      -
      Attachments
      - {% for attachment in media.attachment_files %} -
      - - {{ attachment.name }} - -
      - {% endfor %} -
      - {% endif %} + {% if media.attachment_files or media['uploader'] == request.user['_id'] or + request.user['is_admin'] %}

      {% if media['uploader'] == request.user['_id'] or @@ -136,6 +124,26 @@ {% endif %}

      + {% if media.attachment_files|count %} +

      Attachments

      + + {% endif %} + {% if app_config['allow_attachments'] %} + Add attachment + {% endif %} + {% if media.tags %} {% include "mediagoblin/utils/tags.html" %} {% endif %} diff --git a/mediagoblin/user_pages/routing.py b/mediagoblin/user_pages/routing.py index 3be0617d..81bb80c2 100644 --- a/mediagoblin/user_pages/routing.py +++ b/mediagoblin/user_pages/routing.py @@ -28,7 +28,10 @@ user_routes = [ '/{user}/m/{media}/c/{comment}/', controller="mediagoblin.user_pages.views:media_home"), Route('mediagoblin.edit.edit_media', "/{user}/m/{media}/edit/", - controller="mediagoblin.edit.views:edit_media"), + controller="mediagoblin.edit.views:edit_media"), + Route('mediagoblin.edit.attachments', + '/{user}/m/{media}/attachments/', + controller="mediagoblin.edit.views:edit_attachments"), Route('mediagoblin.user_pages.atom_feed', '/{user}/atom/', controller="mediagoblin.user_pages.views:atom_feed"), Route('mediagoblin.user_pages.media_post_comment', diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 85a84db6..8b9d94e5 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -16,7 +16,7 @@ from webob import exc -from mediagoblin import messages +from mediagoblin import messages, mg_globals from mediagoblin.db.util import DESCENDING, ObjectId from mediagoblin.util import ( Pagination, render_to_response, redirect, cleaned_markdown_conversion) @@ -117,7 +117,8 @@ def media_home(request, media, page, **kwargs): {'media': media, 'comments': comments, 'pagination': pagination, - 'comment_form': comment_form}) + 'comment_form': comment_form, + 'app_config': mg_globals.app_config}) @require_active_login From a28f072615ce420172d709823f5839a461e84655 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 22 Aug 2011 21:55:06 -0500 Subject: [PATCH 0926/2731] Wrap "add attachment" in a paragraph for proper spacing. --- mediagoblin/templates/mediagoblin/user_pages/media.html | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 08d5dbe9..0425500e 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -149,9 +149,11 @@ {% if app_config['allow_attachments'] and (media['uploader'] == request.user['_id'] or request.user['is_admin']) %} - Add attachment +

      + Add attachment +

      {% endif %} {% if media.tags %} From f955a2bccc0fce01b2156aa2883d9b9b99a23443 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 22 Aug 2011 22:00:30 -0500 Subject: [PATCH 0927/2731] We're no longer a GNU project in the making... we're a straight up GNU project! --- mediagoblin/templates/mediagoblin/root.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index 08155c17..4ea3fe2a 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -28,7 +28,7 @@
      • {% trans %}The perfect place for your media!{% endtrans %}
      • {% trans %}A place for people to collaborate and show off original and derived creations!{% endtrans %}
      • -
      • {% trans %}Free, as in freedom. (We’re a GNU project in the making, after all.){% endtrans %}
      • +
      • {% trans %}Free, as in freedom. (We’re a GNU project, after all.){% endtrans %}
      • {% trans %}Aiming to make the world a better place through decentralization and (eventually, coming soon!) federation!{% endtrans %}
      • {% trans %}Built for extensibility. (Multiple media types coming soon to the software, including video support!){% endtrans %}
      • {% trans %}Powered by people like you. (You can help us improve this software!){% endtrans %}
      • From ba880861c3cc95c76d240d4233b8381f2daaf56d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Tue, 23 Aug 2011 22:56:22 -0500 Subject: [PATCH 0928/2731] Must switch queuestore_base_dir -> base_dir in test_mgoblin_app.ini --- mediagoblin/tests/test_mgoblin_app.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/tests/test_mgoblin_app.ini b/mediagoblin/tests/test_mgoblin_app.ini index 0109d751..9d938b4f 100644 --- a/mediagoblin/tests/test_mgoblin_app.ini +++ b/mediagoblin/tests/test_mgoblin_app.ini @@ -17,7 +17,7 @@ base_dir = %(here)s/test_user_dev/media/public base_url = /mgoblin_media/ [storage:queuestore] -queuestore_base_dir = %(here)s/test_user_dev/media/queue +base_dir = %(here)s/test_user_dev/media/queue [celery] celery_always_eager = true From 12c340fc07bdf576ffb6da6b5e3b525119131b3b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Tue, 23 Aug 2011 23:20:20 -0500 Subject: [PATCH 0929/2731] Static serving in test_paste.ini wasn't pointing at test_user_dev either Not that it matters too much, but... should point it to the right place :) --- mediagoblin/tests/test_paste.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/tests/test_paste.ini b/mediagoblin/tests/test_paste.ini index 929a1ccf..e7574b7a 100644 --- a/mediagoblin/tests/test_paste.ini +++ b/mediagoblin/tests/test_paste.ini @@ -14,7 +14,7 @@ config = %(here)s/test_mgoblin_app.ini [app:publicstore_serve] use = egg:Paste#static -document_root = %(here)s/user_dev/media/public +document_root = %(here)s/test_user_dev/media/public [app:mediagoblin_static] use = egg:Paste#static From 0533f117a9ecadbe640281e9721a6e85c9ae1fec Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Tue, 23 Aug 2011 23:22:17 -0500 Subject: [PATCH 0930/2731] Basic beaker caching functionality added to the application. --- mediagoblin/app.py | 5 ++++- mediagoblin/config_spec.ini | 6 ++++++ mediagoblin/init/__init__.py | 16 ++++++++++++++++ mediagoblin/mg_globals.py | 3 +++ mediagoblin/tests/test_mgoblin_app.ini | 3 +++ 5 files changed, 32 insertions(+), 1 deletion(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 3030929d..113bcb8d 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -25,7 +25,7 @@ from mediagoblin.mg_globals import setup_globals from mediagoblin.init.celery import setup_celery_from_config from mediagoblin.init import (get_jinja_loader, get_staticdirector, setup_global_and_app_config, setup_workbench, setup_database, - setup_storage) + setup_storage, setup_beaker_cache) class MediaGoblinApp(object): @@ -71,6 +71,9 @@ class MediaGoblinApp(object): # set up staticdirector tool self.staticdirector = get_staticdirector(app_config) + # set up caching + self.cache = setup_beaker_cache() + # Setup celery, if appropriate if setup_celery and not app_config.get('celery_setup_elsewhere'): if os.environ.get('CELERY_ALWAYS_EAGER'): diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini index 11badc1f..3f99b497 100644 --- a/mediagoblin/config_spec.ini +++ b/mediagoblin/config_spec.ini @@ -46,6 +46,12 @@ base_url = string(default="/mgoblin_media/") base_dir = string(default="%(here)s/user_dev/media/queue") +[beaker.cache] +type = string(default="file") +data_dir = string(default="%(here)s/user_dev/beaker/cache/data") +lock_dir = string(default="%(here)s/user_dev/beaker/cache/lock") + + [celery] # known booleans celery_result_persistent = boolean() diff --git a/mediagoblin/init/__init__.py b/mediagoblin/init/__init__.py index 44f604b1..4fe5df35 100644 --- a/mediagoblin/init/__init__.py +++ b/mediagoblin/init/__init__.py @@ -14,7 +14,10 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +from beaker.cache import CacheManager +from beaker.util import parse_cache_config_options import jinja2 + from mediagoblin import staticdirect from mediagoblin.init.config import ( read_mediagoblin_config, generate_validation_report) @@ -135,3 +138,16 @@ def setup_workbench(): workbench_manager = WorkbenchManager(app_config['workbench_path']) setup_globals(workbench_manager = workbench_manager) + + +def setup_beaker_cache(): + """ + Setup the Beaker Cache manager. + """ + cache_config = mg_globals.global_config['beaker.cache'] + cache_config = dict( + [(u'cache.%s' % key, value) + for key, value in cache_config.iteritems()]) + cache = CacheManager(**parse_cache_config_options(cache_config)) + setup_globals(cache=cache) + return cache diff --git a/mediagoblin/mg_globals.py b/mediagoblin/mg_globals.py index 80ff5ead..8df5606e 100644 --- a/mediagoblin/mg_globals.py +++ b/mediagoblin/mg_globals.py @@ -31,6 +31,9 @@ db_connection = None # mongokit.Connection database = None +# beaker's cache manager +cache = None + # should be the same as the public_store = None queue_store = None diff --git a/mediagoblin/tests/test_mgoblin_app.ini b/mediagoblin/tests/test_mgoblin_app.ini index 9d938b4f..986f793b 100644 --- a/mediagoblin/tests/test_mgoblin_app.ini +++ b/mediagoblin/tests/test_mgoblin_app.ini @@ -19,5 +19,8 @@ base_url = /mgoblin_media/ [storage:queuestore] base_dir = %(here)s/test_user_dev/media/queue +[beaker.cache] +enabled = false + [celery] celery_always_eager = true From 026074af1e85217fbcd0b5b58c931b106d0b15bd Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Thu, 25 Aug 2011 01:05:49 +0200 Subject: [PATCH 0931/2731] Feature/Bug #519 - CloudFilesStorage.get_file() performance issue - Fix * `CloudFilesStorage.get_file()` now guesses the filepath without connecting to cloudfiles. Huge profits for xDSL-hosted or slow net machines. --- mediagoblin/storage.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index d484be1f..7ada95e1 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -254,6 +254,8 @@ class CloudFilesStorage(StorageInterface): self.container = self.connection.get_container( self.param_container) + self.container_uri = self.container.public_uri() + def _resolve_filepath(self, filepath): return '/'.join( clean_listy_filepath(filepath)) @@ -282,7 +284,9 @@ class CloudFilesStorage(StorageInterface): self.container.delete_object(filepath) def file_url(self, filepath): - return self.get_file(filepath).public_uri() + return '/'.join([ + self.container_uri, + self._resolve_filepath(filepath)]) class MountStorage(StorageInterface): From fb91ef0f69a354dddf11a6983d5d41789dc09fec Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 24 Aug 2011 20:17:06 -0500 Subject: [PATCH 0932/2731] Changing account "verified" to account "activated" in some points for clarity. --- mediagoblin/templates/mediagoblin/user_pages/user.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 0214082c..88f6803d 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -40,7 +40,7 @@

        {% trans -%} - Almost done! Your account still needs to be verified. + Almost done! Your account still needs to be activated. {%- endtrans %}

        @@ -60,7 +60,7 @@

        {% trans -%} - Someone has registered an account with this username, but it still has to be verified. + Someone has registered an account with this username, but it still has to be activated. {%- endtrans %}

        From 9cecbe4e35bd75d9a6d56fc6cf44e5281fbce8f3 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 24 Aug 2011 20:20:38 -0500 Subject: [PATCH 0933/2731] Also changing "Verification needed!" to "Email verification needed!" --- mediagoblin/templates/mediagoblin/user_pages/user.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 88f6803d..e7fd9692 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -36,7 +36,7 @@ {% if user == request.user %} {# this should only be visible when you are this user #}
        -

        {% trans %}Verification needed{% endtrans %}

        +

        {% trans %}Email verification needed{% endtrans %}

        {% trans -%} @@ -56,7 +56,7 @@ {% else %} {# if the user is not you, but still needs to verify their email #}

        -

        {% trans %}Verification needed{% endtrans %}

        +

        {% trans %}Email verification needed{% endtrans %}

        {% trans -%} From e39039dcbf8ab0141d2f88c861c51346101583ca Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 24 Aug 2011 20:21:23 -0500 Subject: [PATCH 0934/2731] Updating extracted translation template --- .../i18n/en/LC_MESSAGES/mediagoblin.po | 186 +++++++++++++----- 1 file changed, 134 insertions(+), 52 deletions(-) diff --git a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po index 9c46ebe8..cbc82003 100644 --- a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-08-13 19:47-0500\n" +"POT-Creation-Date: 2011-08-24 20:20-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -88,97 +88,125 @@ msgstr "" msgid "Website" msgstr "" -#: mediagoblin/edit/forms.py:43 -msgid "Improperly formed URL" -msgstr "" - -#: mediagoblin/edit/views.py:54 +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "" -#: mediagoblin/edit/views.py:75 +#: mediagoblin/edit/views.py:94 msgid "You are editing another user's media. Proceed with caution." msgstr "" -#: mediagoblin/edit/views.py:96 +#: mediagoblin/edit/views.py:165 msgid "You are editing a user's profile. Proceed with caution." msgstr "" +#: mediagoblin/process_media/errors.py:44 +msgid "Invalid file given for media type." +msgstr "" + #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "" -#: mediagoblin/submit/views.py:49 +#: mediagoblin/submit/views.py:50 msgid "The file doesn't seem to be an image!" msgstr "" -#: mediagoblin/submit/views.py:94 +#: mediagoblin/submit/views.py:122 msgid "Woohoo! Submitted!" msgstr "" +#: mediagoblin/templates/mediagoblin/404.html:21 +msgid "Oops!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:24 +msgid "There doesn't seem to be a page at this address. Sorry!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:26 +msgid "" +"If you're sure the address is correct, maybe the page you're looking for " +"has been moved or deleted." +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:32 +msgid "Image of 404 goblin stressing out" +msgstr "" + #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:45 -msgid "Mediagoblin logo" +#: mediagoblin/templates/mediagoblin/base.html:47 +msgid "MediaGoblin logo" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:51 +#: mediagoblin/templates/mediagoblin/base.html:52 msgid "Submit media" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:62 +#: mediagoblin/templates/mediagoblin/base.html:63 msgid "verify your email!" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:72 -msgid "Login" +#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +msgid "Log in" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:88 +#: mediagoblin/templates/mediagoblin/base.html:89 msgid "" "Powered by MediaGoblin, a GNU project" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:23 -msgid "Welcome to GNU MediaGoblin!" +#: mediagoblin/templates/mediagoblin/root.html:27 +msgid "Hi there, media lover! MediaGoblin is..." msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Submit an item" +#: mediagoblin/templates/mediagoblin/root.html:29 +msgid "The perfect place for your media!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:30 +msgid "" +"A place for people to collaborate and show off original and derived " +"creations!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:31 +msgid "" +"Free, as in freedom. (We’re a GNU project," +" after all.)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:32 +msgid "" +"Aiming to make the world a better place through decentralization and " +"(eventually, coming soon!) federation!" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:33 -#, python-format -msgid "If you have an account, you can Login." -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:39 -#, python-format msgid "" -"If you don't have an account, please Register." +"Built for extensibility. (Multiple media types coming soon to the " +"software, including video support!)" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -msgid "Log in" +#: mediagoblin/templates/mediagoblin/root.html:34 +msgid "" +"Powered by people like you. (You can help us improve " +"this software!)" msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:29 -msgid "Login failed!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/auth/login.html:34 -#: mediagoblin/templates/mediagoblin/auth/register.html:30 -#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/submit/start.html:29 -msgid "Submit" +msgid "Logging in failed!" msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:42 @@ -193,6 +221,10 @@ msgstr "" msgid "Create an account!" msgstr "" +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +msgid "Create" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format msgid "" @@ -214,6 +246,7 @@ msgid "Cancel" msgstr "" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "" @@ -226,33 +259,51 @@ msgstr "" msgid "Media tagged with:" msgstr "" -#: mediagoblin/templates/mediagoblin/listings/tag.html:42 -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:48 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:104 -msgid "atom feed" -msgstr "" - #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" msgstr "" +#: mediagoblin/templates/mediagoblin/submit/start.html:29 +msgid "Submit" +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 #, python-format msgid "%(username)s's media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 #: mediagoblin/templates/mediagoblin/user_pages/user.html:32 msgid "Sorry, no such user found." msgstr "" +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 +msgid "Media processing panel" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 +msgid "You can track the state of media being processed for your gallery here." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 +msgid "Media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 +msgid "No media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 +msgid "These uploads failed to process:" +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/user.html:39 #: mediagoblin/templates/mediagoblin/user_pages/user.html:59 -msgid "Verification needed" +msgid "Email verification needed" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:42 -msgid "Almost done! Your account still needs to be verified." +msgid "Almost done! Your account still needs to be activated." msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:47 @@ -270,7 +321,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "" "Someone has registered an account with this username, but it still has to" -" be verified." +" be activated." msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:68 @@ -285,15 +336,46 @@ msgstr "" msgid "%(username)s's profile" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:86 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +msgid "Here's a spot to tell others about yourself." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 msgid "Edit profile" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:98 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +msgid "This user hasn't filled in their profile (yet)." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format msgid "View all of %(username)s's media" msgstr "" +#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +msgid "" +"This is where your media will appear, but you don't seem to have added " +"anything yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +msgid "Add media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +msgid "There doesn't seem to be any media here yet..." +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 +msgid "feed icon" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 +msgid "Atom feed" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "" From 39f115edabf0830e852ae5d9ea65d43d06f837b6 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 24 Aug 2011 20:24:44 -0500 Subject: [PATCH 0935/2731] Pulling down new translations --- .../i18n/ar/LC_MESSAGES/mediagoblin.po | 386 +++++++++++++++++ .../i18n/de/LC_MESSAGES/mediagoblin.po | 278 +++++++----- .../i18n/eo/LC_MESSAGES/mediagoblin.po | 253 +++++++---- .../i18n/es/LC_MESSAGES/mediagoblin.po | 295 ++++++++----- .../i18n/fr/LC_MESSAGES/mediagoblin.po | 222 ++++++---- .../i18n/ja/LC_MESSAGES/mediagoblin.po | 207 ++++++--- .../i18n/nl/LC_MESSAGES/mediagoblin.po | 399 ++++++++++++++++++ .../i18n/nn_NO/LC_MESSAGES/mediagoblin.po | 253 +++++++---- .../i18n/pt_BR/LC_MESSAGES/mediagoblin.po | 277 +++++++----- .../i18n/ro/LC_MESSAGES/mediagoblin.po | 255 +++++++---- .../i18n/ru/LC_MESSAGES/mediagoblin.po | 387 +++++++++++++++++ .../i18n/sl/LC_MESSAGES/mediagoblin.po | 253 +++++++---- .../i18n/sr/LC_MESSAGES/mediagoblin.po | 233 ++++++---- .../i18n/sv/LC_MESSAGES/mediagoblin.po | 208 ++++++--- .../i18n/zh_TW/LC_MESSAGES/mediagoblin.po | 207 ++++++--- 15 files changed, 3153 insertions(+), 960 deletions(-) create mode 100644 mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po create mode 100644 mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po create mode 100644 mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po diff --git a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po new file mode 100644 index 00000000..4aff740e --- /dev/null +++ b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po @@ -0,0 +1,386 @@ +# Translations template for PROJECT. +# Copyright (C) 2011 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# +# , 2011. +msgid "" +msgstr "" +"Project-Id-Version: GNU MediaGoblin\n" +"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" +"POT-Creation-Date: 2011-08-24 20:20-0500\n" +"PO-Revision-Date: 2011-08-25 01:22+0000\n" +"Last-Translator: cwebber \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 0.9.6\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" + +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46 +msgid "Username" +msgstr "" + +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50 +msgid "Password" +msgstr "" + +#: mediagoblin/auth/forms.py:34 +msgid "Passwords must match." +msgstr "" + +#: mediagoblin/auth/forms.py:36 +msgid "Confirm password" +msgstr "" + +#: mediagoblin/auth/forms.py:39 +msgid "Email address" +msgstr "" + +#: mediagoblin/auth/views.py:40 +msgid "Sorry, registration is disabled on this instance." +msgstr "" + +#: mediagoblin/auth/views.py:57 +msgid "Sorry, a user with that name already exists." +msgstr "" + +#: mediagoblin/auth/views.py:61 +msgid "Sorry, that email address has already been taken." +msgstr "" + +#: mediagoblin/auth/views.py:159 +msgid "" +"Your email address has been verified. You may now login, edit your profile, " +"and submit images!" +msgstr "" + +#: mediagoblin/auth/views.py:165 +msgid "The verification key or user id is incorrect" +msgstr "" + +#: mediagoblin/auth/views.py:186 +#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +msgid "Resent your verification email." +msgstr "" + +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 +msgid "Title" +msgstr "" + +#: mediagoblin/edit/forms.py:29 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:30 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +msgid "Tags" +msgstr "الوسوم" + +#: mediagoblin/edit/forms.py:38 +msgid "Bio" +msgstr "" + +#: mediagoblin/edit/forms.py:41 +msgid "Website" +msgstr "" + +#: mediagoblin/edit/views.py:65 +msgid "An entry with that slug already exists for this user." +msgstr "" + +#: mediagoblin/edit/views.py:94 +msgid "You are editing another user's media. Proceed with caution." +msgstr "" + +#: mediagoblin/edit/views.py:165 +msgid "You are editing a user's profile. Proceed with caution." +msgstr "" + +#: mediagoblin/process_media/errors.py:44 +msgid "Invalid file given for media type." +msgstr "" + +#: mediagoblin/submit/forms.py:25 +msgid "File" +msgstr "" + +#: mediagoblin/submit/views.py:47 +msgid "You must provide a file." +msgstr "" + +#: mediagoblin/submit/views.py:50 +msgid "The file doesn't seem to be an image!" +msgstr "" + +#: mediagoblin/submit/views.py:122 +msgid "Woohoo! Submitted!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:21 +msgid "Oops!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:24 +msgid "There doesn't seem to be a page at this address. Sorry!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:26 +msgid "" +"If you're sure the address is correct, maybe the page you're looking for has" +" been moved or deleted." +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:32 +msgid "Image of 404 goblin stressing out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:22 +msgid "GNU MediaGoblin" +msgstr "غنو ميدياغوبلن" + +#: mediagoblin/templates/mediagoblin/base.html:47 +msgid "MediaGoblin logo" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:52 +msgid "Submit media" +msgstr "أرسل وسائط" + +#: mediagoblin/templates/mediagoblin/base.html:63 +msgid "verify your email!" +msgstr "أكد بريدك" + +#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +msgid "Log in" +msgstr "لُج" + +#: mediagoblin/templates/mediagoblin/base.html:89 +msgid "" +"Powered by MediaGoblin, a GNU project" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:27 +msgid "Hi there, media lover! MediaGoblin is..." +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:29 +msgid "The perfect place for your media!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:30 +msgid "" +"A place for people to collaborate and show off original and derived " +"creations!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:31 +msgid "" +"Free, as in freedom. (We’re a GNU project, " +"after all.)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:32 +msgid "" +"Aiming to make the world a better place through decentralization and " +"(eventually, coming soon!) federation!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:33 +msgid "" +"Built for extensibility. (Multiple media types coming soon to the software," +" including video support!)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:34 +msgid "" +"Powered by people like you. (You can help us improve this" +" software!)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:29 +msgid "Logging in failed!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:42 +msgid "Don't have an account yet?" +msgstr "ألا تملك حسابا؟" + +#: mediagoblin/templates/mediagoblin/auth/login.html:45 +msgid "Create one here!" +msgstr "أنشئ حسابا هنا!" + +#: mediagoblin/templates/mediagoblin/auth/register.html:27 +msgid "Create an account!" +msgstr "أنشئ حسابا!" + +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +msgid "Create" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to activate your GNU MediaGoblin account, open the following URL in\n" +"your web browser:\n" +"\n" +"%(verification_url)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:29 +#, python-format +msgid "Editing %(media_title)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:36 +msgid "Cancel" +msgstr "ألغِ" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 +msgid "Save changes" +msgstr "احفظ التغييرات" + +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 +#, python-format +msgid "Editing %(username)s's profile" +msgstr "تعديل ملف %(username)s" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:31 +msgid "Media tagged with:" +msgstr "الوسائط الموسومة بـ:" + +#: mediagoblin/templates/mediagoblin/submit/start.html:26 +msgid "Submit yer media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:29 +msgid "Submit" +msgstr "أرسل" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 +msgid "Sorry, no such user found." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 +msgid "Media processing panel" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 +msgid "" +"You can track the state of media being processed for your gallery here." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 +msgid "Media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 +msgid "No media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 +msgid "These uploads failed to process:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +msgid "Email verification needed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +msgid "Almost done! Your account still needs to be activated." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +msgid "" +"An email should arrive in a few moments with instructions on how to do so." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +msgid "In case it doesn't:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +msgid "Resend verification email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +msgid "" +"Someone has registered an account with this username, but it still has to be" +" activated." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#, python-format +msgid "" +"If you are that person but you've lost your verification email, you can log in and resend it." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 +#, python-format +msgid "%(username)s's profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +msgid "Here's a spot to tell others about yourself." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +msgid "Edit profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +msgid "This user hasn't filled in their profile (yet)." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#, python-format +msgid "View all of %(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +msgid "" +"This is where your media will appear, but you don't seem to have added " +"anything yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +msgid "Add media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +msgid "There doesn't seem to be any media here yet..." +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 +msgid "feed icon" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 +msgid "Atom feed" +msgstr "" + +#: mediagoblin/user_pages/forms.py:24 +msgid "Comment" +msgstr "" + + diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po index 30c55e21..1b6c2684 100644 --- a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po @@ -3,16 +3,18 @@ # This file is distributed under the same license as the PROJECT project. # # Rafael Maguiña , 2011. +# , 2011. # , 2011. +# Elrond , 2011. # , 2011. # Jan-Christoph Borchardt , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-08 22:53-0500\n" -"PO-Revision-Date: 2011-08-10 23:20+0000\n" -"Last-Translator: JanCBorchardt \n" +"POT-Creation-Date: 2011-08-24 20:20-0500\n" +"PO-Revision-Date: 2011-08-25 01:22+0000\n" +"Last-Translator: cwebber \n" "Language-Team: German (http://www.transifex.net/projects/p/mediagoblin/team/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -45,28 +47,32 @@ msgstr "Email-Adresse" msgid "Sorry, registration is disabled on this instance." msgstr "Registrierung ist auf dieser Instanz leider deaktiviert." -#: mediagoblin/auth/views.py:55 +#: mediagoblin/auth/views.py:57 msgid "Sorry, a user with that name already exists." msgstr "Leider gibt es bereits einen Benutzer mit diesem Namen." -#: mediagoblin/auth/views.py:152 +#: mediagoblin/auth/views.py:61 +msgid "Sorry, that email address has already been taken." +msgstr "Tut und Leid, aber diese E-Mail Adresse wird bereits verwendet." + +#: mediagoblin/auth/views.py:159 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "" -"Deine Email-Adresse wurde bestätigt. Du kannst dich nun anmelden, dein " +"Deine Email-Adresse wurde bestätigt. Du kannst dich nun anmelden, Dein " "Profil bearbeiten und Bilder hochladen!" -#: mediagoblin/auth/views.py:158 +#: mediagoblin/auth/views.py:165 msgid "The verification key or user id is incorrect" msgstr "Der Bestätigungssschlüssel oder die Nutzernummer ist falsch." -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:186 #: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 msgid "Resent your verification email." -msgstr "Bestätigungs-Email noch Mal senden." +msgstr "Bestätigungs-Email wurde erneut versand." -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26 +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Titel" @@ -90,104 +96,128 @@ msgstr "Biographie" msgid "Website" msgstr "Webseite" -#: mediagoblin/edit/forms.py:43 -msgid "Improperly formed URL" -msgstr "Adresse fehlerhaft" - -#: mediagoblin/edit/views.py:54 +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "Diesen Kurztitel hast du bereits vergeben." -#: mediagoblin/edit/views.py:75 +#: mediagoblin/edit/views.py:94 msgid "You are editing another user's media. Proceed with caution." msgstr "Du bearbeitest die Medien eines Anderen. Bitte sei vorsichtig." -#: mediagoblin/edit/views.py:96 +#: mediagoblin/edit/views.py:165 msgid "You are editing a user's profile. Proceed with caution." msgstr "Du bearbeitest das Profil eines Anderen. Bitte sei vorsichtig." -#: mediagoblin/submit/forms.py:29 +#: mediagoblin/process_media/errors.py:44 +msgid "Invalid file given for media type." +msgstr "" + +#: mediagoblin/submit/forms.py:25 msgid "File" msgstr "Datei" -#: mediagoblin/submit/views.py:45 +#: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "Du musst eine Datei angeben." -#: mediagoblin/submit/views.py:48 +#: mediagoblin/submit/views.py:50 msgid "The file doesn't seem to be an image!" msgstr "Diese Datei scheint kein Bild zu sein!" -#: mediagoblin/submit/views.py:96 +#: mediagoblin/submit/views.py:122 msgid "Woohoo! Submitted!" msgstr "Yeeeaaah! Geschafft!" +#: mediagoblin/templates/mediagoblin/404.html:21 +msgid "Oops!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:24 +msgid "There doesn't seem to be a page at this address. Sorry!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:26 +msgid "" +"If you're sure the address is correct, maybe the page you're looking for has" +" been moved or deleted." +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:32 +msgid "Image of 404 goblin stressing out" +msgstr "" + #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" msgstr "GNU MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:45 -msgid "Mediagoblin logo" -msgstr "Mediagoblin-Logo" +#: mediagoblin/templates/mediagoblin/base.html:47 +msgid "MediaGoblin logo" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:51 +#: mediagoblin/templates/mediagoblin/base.html:52 msgid "Submit media" msgstr "Medien hochladen" -#: mediagoblin/templates/mediagoblin/base.html:62 +#: mediagoblin/templates/mediagoblin/base.html:63 msgid "verify your email!" msgstr "Bitte bestätige deine Email-Adresse!" -#: mediagoblin/templates/mediagoblin/base.html:72 -msgid "Login" +#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +msgid "Log in" msgstr "Anmelden" -#: mediagoblin/templates/mediagoblin/base.html:88 +#: mediagoblin/templates/mediagoblin/base.html:89 msgid "" "Powered by MediaGoblin, a GNU project" msgstr "" -"Läüft mit MediaGoblin, einem MediaGoblin, einem GNU-Projekt" -#: mediagoblin/templates/mediagoblin/root.html:21 -msgid "Welcome to GNU MediaGoblin!" -msgstr "Willkommen bei GNU MediaGoblin!" +#: mediagoblin/templates/mediagoblin/root.html:27 +msgid "Hi there, media lover! MediaGoblin is..." +msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:26 -msgid "Submit an item" -msgstr "Eintrag hochladen" +#: mediagoblin/templates/mediagoblin/root.html:29 +msgid "The perfect place for your media!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:30 +msgid "" +"A place for people to collaborate and show off original and derived " +"creations!" +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 -#, python-format -msgid "If you have an account, you can Login." -msgstr "" -"Falls du ein Konto hast, kannst du dich anmelden." - -#: mediagoblin/templates/mediagoblin/root.html:37 -#, python-format msgid "" -"If you don't have an account, please Register." +"Free, as in freedom. (We’re a GNU project, " +"after all.)" msgstr "" -"Wenn du noch kein Konto hast, registriere " -"dich." -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -msgid "Log in" -msgstr "Anmelden" +#: mediagoblin/templates/mediagoblin/root.html:32 +msgid "" +"Aiming to make the world a better place through decentralization and " +"(eventually, coming soon!) federation!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:33 +msgid "" +"Built for extensibility. (Multiple media types coming soon to the software," +" including video support!)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:34 +msgid "" +"Powered by people like you. (You can help us improve this" +" software!)" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:29 -msgid "Login failed!" -msgstr "Anmeldung fehlgeschlagen!" - -#: mediagoblin/templates/mediagoblin/auth/login.html:34 -#: mediagoblin/templates/mediagoblin/auth/register.html:30 -#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/submit/start.html:32 -msgid "Submit" -msgstr "Bestätigen" +msgid "Logging in failed!" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" @@ -201,6 +231,10 @@ msgstr "Registriere dich!" msgid "Create an account!" msgstr "Neues Konto registrieren!" +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +msgid "Create" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format msgid "" @@ -227,91 +261,145 @@ msgid "Cancel" msgstr "Abbrechen" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "Änderungen speichern" #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" -msgstr "%(username)s’s Profil barbeiten" +msgstr "%(username)ss Profil barbeiten" -#: mediagoblin/templates/mediagoblin/listings/tag.html:29 +#: mediagoblin/templates/mediagoblin/listings/tag.html:31 msgid "Media tagged with:" msgstr "Medien markiert mit:" -#: mediagoblin/templates/mediagoblin/listings/tag.html:40 -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 -msgid "atom feed" -msgstr "Atom-Feed" - #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" msgstr "Medien hochladen" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#: mediagoblin/templates/mediagoblin/submit/start.html:29 +msgid "Submit" +msgstr "Bestätigen" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 #, python-format msgid "%(username)s's media" -msgstr "%(username)s’s Medien" +msgstr "%(username)ss Medien" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:30 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 msgid "Sorry, no such user found." msgstr "Dieser Benutzer wurde leider nicht gefunden." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:37 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:57 -msgid "Verification needed" -msgstr "Überprüfung notwendig" +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 +msgid "Media processing panel" +msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:40 -msgid "Almost done! Your account still needs to be verified." -msgstr "Fast geschafft! Dein Konto muss nur noch bestätigt werden." +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 +msgid "" +"You can track the state of media being processed for your gallery here." +msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:45 +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 +msgid "Media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 +msgid "No media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 +msgid "These uploads failed to process:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +msgid "Email verification needed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +msgid "Almost done! Your account still needs to be activated." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "" -"Gleich solltest du eine Email bekommen, die dir sagt was du noch machen " +"Gleich solltest du eine Email bekommen, die dir sagt, was du noch machen " "musst." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:49 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 msgid "In case it doesn't:" msgstr "Wenn sie nicht ankommt:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 msgid "Resend verification email" -msgstr "Bestätigung noch Mal senden" +msgstr "Bestätigung erneut senden" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:60 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "" "Someone has registered an account with this username, but it still has to be" -" verified." +" activated." msgstr "" -"Jemand hat schon ein Konto mit diesem Nutzernamen registriert, aber es muss " -"noch bestätigt werden." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:66 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format msgid "" "If you are that person but you've lost your verification email, you can log in and resend it." msgstr "" -"Wenn dir dieses Konto gehört und die Bestätigungsmail weg ist, kannst du " -"dich anmelden und sie erneut senden." +"Wenn dir dieses Konto gehört und die Bestätigungsmail verloren gegangen ist," +" kannst du dich anmelden und sie erneut " +"senden." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:76 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 #, python-format msgid "%(username)s's profile" -msgstr "%(username)s’s Profil" +msgstr "%(username)ss Profil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:84 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +msgid "Here's a spot to tell others about yourself." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 msgid "Edit profile" msgstr "Profil bearbeiten" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:95 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +msgid "This user hasn't filled in their profile (yet)." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format msgid "View all of %(username)s's media" msgstr "Alle Medien von %(username)s anschauen" +#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +msgid "" +"This is where your media will appear, but you don't seem to have added " +"anything yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +msgid "Add media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +msgid "There doesn't seem to be any media here yet..." +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 +msgid "feed icon" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 +msgid "Atom feed" +msgstr "" + +#: mediagoblin/user_pages/forms.py:24 +msgid "Comment" +msgstr "Kommentar" + diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po index ea19af01..6ee8b85f 100644 --- a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po @@ -2,15 +2,16 @@ # Copyright (C) 2011 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # +# , 2011. # , 2011. # Fernando Inocencio , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-13 19:47-0500\n" -"PO-Revision-Date: 2011-08-15 20:33+0000\n" -"Last-Translator: fajro \n" +"POT-Creation-Date: 2011-08-24 20:20-0500\n" +"PO-Revision-Date: 2011-08-25 01:22+0000\n" +"Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -25,7 +26,7 @@ msgstr "Uzantnomo" #: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50 msgid "Password" -msgstr "Pasvorton" +msgstr "Pasvorto" #: mediagoblin/auth/forms.py:34 msgid "Passwords must match." @@ -37,11 +38,11 @@ msgstr "Retajpu pasvorton" #: mediagoblin/auth/forms.py:39 msgid "Email address" -msgstr "Retadreso" +msgstr "Retpoŝtadreso" #: mediagoblin/auth/views.py:40 msgid "Sorry, registration is disabled on this instance." -msgstr "Bedaŭrinde, registrado estas malaktivita en tiu ĉi instanco." +msgstr "Bedaŭrinde, registrado estas malaktivigita en tiu ĉi instalaĵo." #: mediagoblin/auth/views.py:57 msgid "Sorry, a user with that name already exists." @@ -49,14 +50,14 @@ msgstr "Bedaŭrinde, uzanto kun tiu nomo jam ekzistas." #: mediagoblin/auth/views.py:61 msgid "Sorry, that email address has already been taken." -msgstr "" +msgstr "Tiu retpoŝtadreso jam estas uzata." #: mediagoblin/auth/views.py:159 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "" -"Vian retadreson estas kontrolita. Vi povas nun ensaluti, redakti vian " +"Via retpoŝtadreso estas konfirmita. Vi povas nun ensaluti, redakti vian " "profilon, kaj alŝuti bildojn!" #: mediagoblin/auth/views.py:165 @@ -74,11 +75,11 @@ msgstr "Titolo" #: mediagoblin/edit/forms.py:29 msgid "Slug" -msgstr "" +msgstr "La distingiga adresparto" #: mediagoblin/edit/forms.py:30 msgid "The slug can't be empty" -msgstr "" +msgstr "La distingiga adresparto ne povas esti malplena" #: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 msgid "Tags" @@ -92,101 +93,128 @@ msgstr "Bio" msgid "Website" msgstr "Retejo" -#: mediagoblin/edit/forms.py:43 -msgid "Improperly formed URL" -msgstr "" - -#: mediagoblin/edit/views.py:54 +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." -msgstr "" +msgstr "Ĉi tiu uzanto jam havas dosieron kun tiu distingiga adresparto." -#: mediagoblin/edit/views.py:75 +#: mediagoblin/edit/views.py:94 msgid "You are editing another user's media. Proceed with caution." -msgstr "" +msgstr "Vi priredaktas dosieron de alia uzanto. Agu singardeme." -#: mediagoblin/edit/views.py:96 +#: mediagoblin/edit/views.py:165 msgid "You are editing a user's profile. Proceed with caution." +msgstr "Vi redaktas profilon de uzanto. Agu singardeme." + +#: mediagoblin/process_media/errors.py:44 +msgid "Invalid file given for media type." msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "Dosiero" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "Vi devas provizi dosieron." -#: mediagoblin/submit/views.py:49 +#: mediagoblin/submit/views.py:50 msgid "The file doesn't seem to be an image!" +msgstr "La dosiero ŝajnas ne esti bildo!" + +#: mediagoblin/submit/views.py:122 +msgid "Woohoo! Submitted!" +msgstr "Hura! Alŝutitas!" + +#: mediagoblin/templates/mediagoblin/404.html:21 +msgid "Oops!" msgstr "" -#: mediagoblin/submit/views.py:94 -msgid "Woohoo! Submitted!" +#: mediagoblin/templates/mediagoblin/404.html:24 +msgid "There doesn't seem to be a page at this address. Sorry!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:26 +msgid "" +"If you're sure the address is correct, maybe the page you're looking for has" +" been moved or deleted." +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:32 +msgid "Image of 404 goblin stressing out" msgstr "" #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" msgstr "GNU MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:45 -msgid "Mediagoblin logo" -msgstr " Logogramo de Mediagoblin" +#: mediagoblin/templates/mediagoblin/base.html:47 +msgid "MediaGoblin logo" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:51 +#: mediagoblin/templates/mediagoblin/base.html:52 msgid "Submit media" msgstr "Alŝuti aŭd-vid-dosieron" -#: mediagoblin/templates/mediagoblin/base.html:62 +#: mediagoblin/templates/mediagoblin/base.html:63 msgid "verify your email!" -msgstr "kontrolu vian retpoŝton! " +msgstr "konfirmu vian retpoŝtadreson! " -#: mediagoblin/templates/mediagoblin/base.html:72 -msgid "Login" +#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +msgid "Log in" msgstr "Ensaluti" -#: mediagoblin/templates/mediagoblin/base.html:88 +#: mediagoblin/templates/mediagoblin/base.html:89 msgid "" "Powered by MediaGoblin, a GNU project" msgstr "" -"Provizita de MediaGoblin, unu el la " -"GNU projectoj" +"Funkciigata per MediaGoblin, unu el " +"la projektoj de GNU" -#: mediagoblin/templates/mediagoblin/root.html:23 -msgid "Welcome to GNU MediaGoblin!" -msgstr "Bonvenon al GNU MediaGoblin!" +#: mediagoblin/templates/mediagoblin/root.html:27 +msgid "Hi there, media lover! MediaGoblin is..." +msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Submit an item" -msgstr "Alŝuti dosieron" +#: mediagoblin/templates/mediagoblin/root.html:29 +msgid "The perfect place for your media!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:30 +msgid "" +"A place for people to collaborate and show off original and derived " +"creations!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:31 +msgid "" +"Free, as in freedom. (We’re a GNU project, " +"after all.)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:32 +msgid "" +"Aiming to make the world a better place through decentralization and " +"(eventually, coming soon!) federation!" +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:33 -#, python-format -msgid "If you have an account, you can Login." -msgstr "Se vi havas konton, vi povas Ensaluti." - -#: mediagoblin/templates/mediagoblin/root.html:39 -#, python-format msgid "" -"If you don't have an account, please Register." +"Built for extensibility. (Multiple media types coming soon to the software," +" including video support!)" msgstr "" -"Se vi ne havas konton, bonvolu Registriĝi." -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -msgid "Log in" -msgstr "Ensaluti" +#: mediagoblin/templates/mediagoblin/root.html:34 +msgid "" +"Powered by people like you. (You can help us improve this" +" software!)" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:29 -msgid "Login failed!" -msgstr "Ensalutado malsukcesis!" - -#: mediagoblin/templates/mediagoblin/auth/login.html:34 -#: mediagoblin/templates/mediagoblin/auth/register.html:30 -#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/submit/start.html:29 -msgid "Submit" -msgstr "Alŝuti" +msgid "Logging in failed!" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" @@ -194,12 +222,16 @@ msgstr "Ĉu ankoraŭ sen konto?" #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Create one here!" -msgstr "Kreu unu ĉi tie!" +msgstr "Kreu ĝin ĉi tie!" #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Kreu konton!" +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +msgid "Create" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format msgid "" @@ -226,52 +258,72 @@ msgid "Cancel" msgstr "Nuligi" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "Konservi ŝanĝojn" #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" -msgstr "Redaktanta profilon de %(username)s'" +msgstr "Redaktado de l’profilo de %(username)s'" #: mediagoblin/templates/mediagoblin/listings/tag.html:31 msgid "Media tagged with:" -msgstr "Dosiero markita kiel:" - -#: mediagoblin/templates/mediagoblin/listings/tag.html:42 -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:48 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:104 -msgid "atom feed" -msgstr "Atom-a informfluado" +msgstr "Dosieroj markitaj per:" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" msgstr "Alŝutu vian aŭd-vid-dosieron" +#: mediagoblin/templates/mediagoblin/submit/start.html:29 +msgid "Submit" +msgstr "Alŝuti" + #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 #, python-format msgid "%(username)s's media" -msgstr "%(username)s-a aŭd-vid-dosiero" +msgstr "Dosieroj de %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 #: mediagoblin/templates/mediagoblin/user_pages/user.html:32 msgid "Sorry, no such user found." msgstr "Uzanto ne trovita." +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 +msgid "Media processing panel" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 +msgid "" +"You can track the state of media being processed for your gallery here." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 +msgid "Media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 +msgid "No media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 +msgid "These uploads failed to process:" +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/user.html:39 #: mediagoblin/templates/mediagoblin/user_pages/user.html:59 -msgid "Verification needed" -msgstr "Kontrolon bezonata" +msgid "Email verification needed" +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:42 -msgid "Almost done! Your account still needs to be verified." -msgstr "Preskaŭ farite! Via konto ankoraŭ devas esti kontrolita." +msgid "Almost done! Your account still needs to be activated." +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "" -"Retmesaĝo alvenos post kelkaj momentoj kun instrukcioj pri kiel tion fari." +"Post kelkaj momentoj devas veni retletero kun instrukcio pri kiel tion fari." #: mediagoblin/templates/mediagoblin/user_pages/user.html:51 msgid "In case it doesn't:" @@ -279,15 +331,13 @@ msgstr "Se tio ne okazas:" #: mediagoblin/templates/mediagoblin/user_pages/user.html:54 msgid "Resend verification email" -msgstr "Resendu kontrolmesaĝon" +msgstr "Resendi kontrolmesaĝon" #: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "" "Someone has registered an account with this username, but it still has to be" -" verified." +" activated." msgstr "" -"Iu registris konton kun tiu ĉi uzantonomo, sed ĝi devas ankoraŭ esti " -"kontrolita." #: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format @@ -301,16 +351,47 @@ msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:78 #, python-format msgid "%(username)s's profile" -msgstr "%(username)s'-a profilo" +msgstr "Profilo de %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:86 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +msgid "Here's a spot to tell others about yourself." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 msgid "Edit profile" -msgstr "Redakti profilo" +msgstr "Redakti profilon" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:98 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +msgid "This user hasn't filled in their profile (yet)." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format msgid "View all of %(username)s's media" -msgstr "Rigardu ĉiuj aŭd-vid-dosierojn de %(username)s'" +msgstr "Rigardi ĉiujn dosierojn de %(username)s'" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +msgid "" +"This is where your media will appear, but you don't seem to have added " +"anything yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +msgid "Add media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +msgid "There doesn't seem to be any media here yet..." +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 +msgid "feed icon" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 +msgid "Atom feed" +msgstr "" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" diff --git a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po index 0a12586c..d35e3b47 100644 --- a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po @@ -2,14 +2,15 @@ # Copyright (C) 2011 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # +# , 2011. # , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-08 22:53-0500\n" -"PO-Revision-Date: 2011-08-10 20:30+0000\n" -"Last-Translator: nvjacobo \n" +"POT-Creation-Date: 2011-08-24 20:20-0500\n" +"PO-Revision-Date: 2011-08-25 01:22+0000\n" +"Last-Translator: cwebber \n" "Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mediagoblin/team/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -40,31 +41,35 @@ msgstr "Dirección de correo electrónico" #: mediagoblin/auth/views.py:40 msgid "Sorry, registration is disabled on this instance." -msgstr "Lo sentimos, el registro está deshabilitado en este momento." +msgstr "Lo sentimos, la registración está deshabilitado en este momento." -#: mediagoblin/auth/views.py:55 +#: mediagoblin/auth/views.py:57 msgid "Sorry, a user with that name already exists." -msgstr "Lo sentimos, un usuario con ese nombre ya existe." +msgstr "Lo sentimos, ya existe un usuario con ese nombre." -#: mediagoblin/auth/views.py:152 +#: mediagoblin/auth/views.py:61 +msgid "Sorry, that email address has already been taken." +msgstr "Lo sentimos, su dirección de correo electrónico ya ha sido tomada." + +#: mediagoblin/auth/views.py:159 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "" -"Su dirección de correo electrónico ha sido verificada. Ahora puede ingresar," -" editar su perfil, y enviar las imágenes!" +"Su dirección de correo electrónico ha sido verificada. ¡Ahora puede " +"ingresar, editar su perfil, y enviar imágenes!" -#: mediagoblin/auth/views.py:158 +#: mediagoblin/auth/views.py:165 msgid "The verification key or user id is incorrect" msgstr "" -"La clave de la verificación o la identificación del usuario es incorrecta" +"La clave de verificación o la identificación de usuario son incorrectas" -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:186 #: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 msgid "Resent your verification email." -msgstr "Reenvíe su correo electrónico de verificación" +msgstr "Reenvíe su correo electrónico de verificación." -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26 +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Título" @@ -74,7 +79,7 @@ msgstr "Ficha" #: mediagoblin/edit/forms.py:30 msgid "The slug can't be empty" -msgstr "La ficha no puede estar vacia" +msgstr "La ficha no puede estar vacía" #: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 msgid "Tags" @@ -88,60 +93,80 @@ msgstr "Bio" msgid "Website" msgstr "Sitio web" -#: mediagoblin/edit/forms.py:43 -msgid "Improperly formed URL" -msgstr "URL de forma incorrecta" - -#: mediagoblin/edit/views.py:54 +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "Una entrada con esa ficha ya existe para este usuario." -#: mediagoblin/edit/views.py:75 +#: mediagoblin/edit/views.py:94 msgid "You are editing another user's media. Proceed with caution." msgstr "" "Usted está editando el contenido de otro usuario. Proceder con precaución." -#: mediagoblin/edit/views.py:96 +#: mediagoblin/edit/views.py:165 msgid "You are editing a user's profile. Proceed with caution." -msgstr "Usted está editando un perfil de usuario. Proceder con precaucións." +msgstr "Usted está editando un perfil de usuario. Proceder con precaución." -#: mediagoblin/submit/forms.py:29 +#: mediagoblin/process_media/errors.py:44 +msgid "Invalid file given for media type." +msgstr "" + +#: mediagoblin/submit/forms.py:25 msgid "File" msgstr "Archivo" -#: mediagoblin/submit/views.py:45 +#: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "Usted debe proporcionar un archivo." -#: mediagoblin/submit/views.py:48 +#: mediagoblin/submit/views.py:50 msgid "The file doesn't seem to be an image!" -msgstr "El archivo no parece ser una imagen!" +msgstr "¡El archivo no parece ser una imagen!" -#: mediagoblin/submit/views.py:96 +#: mediagoblin/submit/views.py:122 msgid "Woohoo! Submitted!" -msgstr "Woohoo! Enviado!" +msgstr "¡Woohoo! ¡Enviado!" + +#: mediagoblin/templates/mediagoblin/404.html:21 +msgid "Oops!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:24 +msgid "There doesn't seem to be a page at this address. Sorry!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:26 +msgid "" +"If you're sure the address is correct, maybe the page you're looking for has" +" been moved or deleted." +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:32 +msgid "Image of 404 goblin stressing out" +msgstr "" #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" msgstr "GNU MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:45 -msgid "Mediagoblin logo" -msgstr "Mediagoblin logo" +#: mediagoblin/templates/mediagoblin/base.html:47 +msgid "MediaGoblin logo" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:51 +#: mediagoblin/templates/mediagoblin/base.html:52 msgid "Submit media" msgstr "Enviar contenido" -#: mediagoblin/templates/mediagoblin/base.html:62 +#: mediagoblin/templates/mediagoblin/base.html:63 msgid "verify your email!" msgstr "Verifique su correo electrónico" -#: mediagoblin/templates/mediagoblin/base.html:72 -msgid "Login" +#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +msgid "Log in" msgstr "Conectarse" -#: mediagoblin/templates/mediagoblin/base.html:88 +#: mediagoblin/templates/mediagoblin/base.html:89 msgid "" "Powered by MediaGoblin, a GNU project" @@ -149,44 +174,48 @@ msgstr "" "Potenciado por MediaGoblin, a GNU project" -#: mediagoblin/templates/mediagoblin/root.html:21 -msgid "Welcome to GNU MediaGoblin!" -msgstr "¡Bienvenido a GNU MediaGoblin!" +#: mediagoblin/templates/mediagoblin/root.html:27 +msgid "Hi there, media lover! MediaGoblin is..." +msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:26 -msgid "Submit an item" -msgstr "Enviar un item" +#: mediagoblin/templates/mediagoblin/root.html:29 +msgid "The perfect place for your media!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:30 +msgid "" +"A place for people to collaborate and show off original and derived " +"creations!" +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 -#, python-format -msgid "If you have an account, you can Login." -msgstr "" -"Si tiene una cuenta, puede iniciar sesión Login." - -#: mediagoblin/templates/mediagoblin/root.html:37 -#, python-format msgid "" -"If you don't have an account, please Register." +"Free, as in freedom. (We’re a GNU project, " +"after all.)" msgstr "" -"Si no tienes una cuenta, por favor, Regístrese ." -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -msgid "Log in" -msgstr "Conectarse" +#: mediagoblin/templates/mediagoblin/root.html:32 +msgid "" +"Aiming to make the world a better place through decentralization and " +"(eventually, coming soon!) federation!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:33 +msgid "" +"Built for extensibility. (Multiple media types coming soon to the software," +" including video support!)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:34 +msgid "" +"Powered by people like you. (You can help us improve this" +" software!)" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:29 -msgid "Login failed!" -msgstr "El inicio de sesión fallo" - -#: mediagoblin/templates/mediagoblin/auth/login.html:34 -#: mediagoblin/templates/mediagoblin/auth/register.html:30 -#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/submit/start.html:32 -msgid "Submit" -msgstr "Enviar" +msgid "Logging in failed!" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" @@ -194,11 +223,15 @@ msgstr "¿No tienes una cuenta?" #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Create one here!" -msgstr "Crea una aquí" +msgstr "¡Crea una aquí!" #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" -msgstr "Crea una cuenta!" +msgstr "¡Crea una cuenta!" + +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +msgid "Create" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format @@ -210,7 +243,7 @@ msgid "" "\n" "%(verification_url)s" msgstr "" -"Hola %(username)s , para activar su cuenta MediaGoblin GNU, abra ls " +"Hola %(username)s , para activar su cuenta GNU MediaGoblin, abra la " "siguiente URL en su navegador: %(verification_url)s " #: mediagoblin/templates/mediagoblin/edit/edit.html:29 @@ -223,90 +256,144 @@ msgid "Cancel" msgstr "Cancelar" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "Salvar cambios" #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" -msgstr "Edición %(username)s de perfil" +msgstr "Editando el perfil de %(username)s" -#: mediagoblin/templates/mediagoblin/listings/tag.html:29 +#: mediagoblin/templates/mediagoblin/listings/tag.html:31 msgid "Media tagged with:" -msgstr "El contenido con la etiqueta:" - -#: mediagoblin/templates/mediagoblin/listings/tag.html:40 -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 -msgid "atom feed" -msgstr "feed Atom" +msgstr "Contenido etiquetado con:" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" msgstr "Envíe su contenido" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#: mediagoblin/templates/mediagoblin/submit/start.html:29 +msgid "Submit" +msgstr "Enviar" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 #, python-format msgid "%(username)s's media" msgstr "Contenido de %(username)s's" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:30 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 msgid "Sorry, no such user found." -msgstr "Lo sentimos, no se ha encontrado el usuario." +msgstr "Lo sentimos, no se ha encontrado ese usuario." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:37 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:57 -msgid "Verification needed" -msgstr "Verificación necesaria" +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 +msgid "Media processing panel" +msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:40 -msgid "Almost done! Your account still needs to be verified." -msgstr "Ya está casi hecho! Su cuenta tiene que ser verificada." +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 +msgid "" +"You can track the state of media being processed for your gallery here." +msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:45 +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 +msgid "Media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 +msgid "No media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 +msgid "These uploads failed to process:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +msgid "Email verification needed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +msgid "Almost done! Your account still needs to be activated." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "" -"Un e-mail debe llegar en unos momentos con las instrucciones para hacerlo." +"Un e-mail debería llegar en unos momentos con las instrucciones para " +"hacerlo." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:49 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 msgid "In case it doesn't:" msgstr "En caso de que no:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 msgid "Resend verification email" msgstr "Reenviar correo electrónico de verificación" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:60 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "" "Someone has registered an account with this username, but it still has to be" -" verified." +" activated." msgstr "" -"Alguien ha registrado una cuenta con este nombre de usuario, pero todavía " -"tiene que ser verificado." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:66 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format msgid "" "If you are that person but you've lost your verification email, you can log in and resend it." msgstr "" -"Si usted es esa persona, pero usted ha perdido su correo electrónico de " -"verificación, usted puede reenviarlo acceder." +"Si usted es esa persona, pero ha perdido su correo electrónico de " +"verificación, puede acceder y reenviarlo." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:76 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 #, python-format msgid "%(username)s's profile" msgstr "Perfil de %(username)s's" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:84 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +msgid "Here's a spot to tell others about yourself." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 msgid "Edit profile" msgstr "Editar perfil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:95 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +msgid "This user hasn't filled in their profile (yet)." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format msgid "View all of %(username)s's media" msgstr "Ver todo el contenido de %(username)s's " +#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +msgid "" +"This is where your media will appear, but you don't seem to have added " +"anything yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +msgid "Add media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +msgid "There doesn't seem to be any media here yet..." +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 +msgid "feed icon" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 +msgid "Atom feed" +msgstr "" + +#: mediagoblin/user_pages/forms.py:24 +msgid "Comment" +msgstr "Comentario" + diff --git a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po index 5afe7091..81151d94 100644 --- a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po @@ -2,6 +2,7 @@ # Copyright (C) 2011 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # +# , 2011. # , 2011. # Valentin Villenave , 2011. # , 2011. @@ -9,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-13 19:47-0500\n" -"PO-Revision-Date: 2011-08-16 13:22+0000\n" -"Last-Translator: joar \n" +"POT-Creation-Date: 2011-08-24 20:20-0500\n" +"PO-Revision-Date: 2011-08-25 01:22+0000\n" +"Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -50,7 +51,7 @@ msgstr "Un utilisateur existe déjà avec ce nom, désolé." #: mediagoblin/auth/views.py:61 msgid "Sorry, that email address has already been taken." -msgstr "" +msgstr "Désolé, cette adresse courriel a déjà été prise." #: mediagoblin/auth/views.py:159 msgid "" @@ -93,63 +94,83 @@ msgstr "Bio" msgid "Website" msgstr "Site web" -#: mediagoblin/edit/forms.py:43 -msgid "Improperly formed URL" -msgstr "Adresse web mal formée" - -#: mediagoblin/edit/views.py:54 +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "Une entrée existe déjà pour cet utilisateur avec la même légende." -#: mediagoblin/edit/views.py:75 +#: mediagoblin/edit/views.py:94 msgid "You are editing another user's media. Proceed with caution." msgstr "" "Vous vous apprêtez à modifier le média d'un autre utilisateur. Veuillez " "prendre garde." -#: mediagoblin/edit/views.py:96 +#: mediagoblin/edit/views.py:165 msgid "You are editing a user's profile. Proceed with caution." msgstr "" "Vous vous apprêtez à modifier le profil d'un utilisateur. Veuillez prendre " "garde." +#: mediagoblin/process_media/errors.py:44 +msgid "Invalid file given for media type." +msgstr "" + #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "Fichier" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "Il vous faut fournir un fichier." -#: mediagoblin/submit/views.py:49 +#: mediagoblin/submit/views.py:50 msgid "The file doesn't seem to be an image!" msgstr "Ce fichier ne semble pas être une image !" -#: mediagoblin/submit/views.py:94 +#: mediagoblin/submit/views.py:122 msgid "Woohoo! Submitted!" msgstr "Youhou, c'est envoyé !" +#: mediagoblin/templates/mediagoblin/404.html:21 +msgid "Oops!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:24 +msgid "There doesn't seem to be a page at this address. Sorry!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:26 +msgid "" +"If you're sure the address is correct, maybe the page you're looking for has" +" been moved or deleted." +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:32 +msgid "Image of 404 goblin stressing out" +msgstr "" + #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" msgstr "GNU MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:45 -msgid "Mediagoblin logo" -msgstr "logo de MediaGoblin" +#: mediagoblin/templates/mediagoblin/base.html:47 +msgid "MediaGoblin logo" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:51 +#: mediagoblin/templates/mediagoblin/base.html:52 msgid "Submit media" msgstr "Soumettre un média" -#: mediagoblin/templates/mediagoblin/base.html:62 +#: mediagoblin/templates/mediagoblin/base.html:63 msgid "verify your email!" -msgstr "vérifier son adresse e-mail" +msgstr "vérifiez votre adresse e-mail !" -#: mediagoblin/templates/mediagoblin/base.html:72 -msgid "Login" -msgstr "Identification" +#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +msgid "Log in" +msgstr "S'identifier" -#: mediagoblin/templates/mediagoblin/base.html:88 +#: mediagoblin/templates/mediagoblin/base.html:89 msgid "" "Powered by MediaGoblin, a GNU project" @@ -157,44 +178,48 @@ msgstr "" "Propulsé par MediaGoblin, un projet " "de GNU" -#: mediagoblin/templates/mediagoblin/root.html:23 -msgid "Welcome to GNU MediaGoblin!" -msgstr "Bienvenue sur GNU MediaGoblin !" +#: mediagoblin/templates/mediagoblin/root.html:27 +msgid "Hi there, media lover! MediaGoblin is..." +msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Submit an item" -msgstr "Soumettre un fichier" +#: mediagoblin/templates/mediagoblin/root.html:29 +msgid "The perfect place for your media!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:30 +msgid "" +"A place for people to collaborate and show off original and derived " +"creations!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:31 +msgid "" +"Free, as in freedom. (We’re a GNU project, " +"after all.)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:32 +msgid "" +"Aiming to make the world a better place through decentralization and " +"(eventually, coming soon!) federation!" +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:33 -#, python-format -msgid "If you have an account, you can Login." -msgstr "" -"Si vous avez un compte, vous pouvez vous identifier." - -#: mediagoblin/templates/mediagoblin/root.html:39 -#, python-format msgid "" -"If you don't have an account, please Register." +"Built for extensibility. (Multiple media types coming soon to the software," +" including video support!)" msgstr "" -"Si vous n'avez pas de compte, veuillez vous inscrire." -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -msgid "Log in" -msgstr "S'identifier" +#: mediagoblin/templates/mediagoblin/root.html:34 +msgid "" +"Powered by people like you. (You can help us improve this" +" software!)" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:29 -msgid "Login failed!" -msgstr "L'identification a échoué !" - -#: mediagoblin/templates/mediagoblin/auth/login.html:34 -#: mediagoblin/templates/mediagoblin/auth/register.html:30 -#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/submit/start.html:29 -msgid "Submit" -msgstr "Soumettre" +msgid "Logging in failed!" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" @@ -208,6 +233,10 @@ msgstr "Créez-en un ici !" msgid "Create an account!" msgstr "Créer un compte !" +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +msgid "Create" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format msgid "" @@ -234,6 +263,7 @@ msgid "Cancel" msgstr "Annuler" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "Enregistrer les modifications" @@ -246,34 +276,53 @@ msgstr "Modification du profil de %(username)s" msgid "Media tagged with:" msgstr "Média comportant les tags suivants :" -#: mediagoblin/templates/mediagoblin/listings/tag.html:42 -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:48 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:104 -msgid "atom feed" -msgstr "flux Atom" - #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" msgstr "Soumettez ce média" +#: mediagoblin/templates/mediagoblin/submit/start.html:29 +msgid "Submit" +msgstr "Soumettre" + #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 #, python-format msgid "%(username)s's media" msgstr "Médias de %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 #: mediagoblin/templates/mediagoblin/user_pages/user.html:32 msgid "Sorry, no such user found." msgstr "Impossible de trouver cet utilisateur, désolé." +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 +msgid "Media processing panel" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 +msgid "" +"You can track the state of media being processed for your gallery here." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 +msgid "Media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 +msgid "No media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 +msgid "These uploads failed to process:" +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/user.html:39 #: mediagoblin/templates/mediagoblin/user_pages/user.html:59 -msgid "Verification needed" -msgstr "Vérification requise" +msgid "Email verification needed" +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:42 -msgid "Almost done! Your account still needs to be verified." -msgstr "C'est presque fini ! Il vous faut encore vérifier votre compte." +msgid "Almost done! Your account still needs to be activated." +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" @@ -293,10 +342,8 @@ msgstr "Renvoyer l'e-mail de vérification" #: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "" "Someone has registered an account with this username, but it still has to be" -" verified." +" activated." msgstr "" -"Quelqu'un a créé un compte à ce nom, mais le compte n'a pas encore été " -"vérifié." #: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format @@ -313,17 +360,48 @@ msgstr "" msgid "%(username)s's profile" msgstr "profil de %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:86 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +msgid "Here's a spot to tell others about yourself." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 msgid "Edit profile" msgstr "Modifier le profil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:98 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +msgid "This user hasn't filled in their profile (yet)." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format msgid "View all of %(username)s's media" msgstr "Voir tous les médias de %(username)s" -#: mediagoblin/user_pages/forms.py:24 -msgid "Comment" +#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +msgid "" +"This is where your media will appear, but you don't seem to have added " +"anything yet." msgstr "" +#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +msgid "Add media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +msgid "There doesn't seem to be any media here yet..." +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 +msgid "feed icon" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 +msgid "Atom feed" +msgstr "" + +#: mediagoblin/user_pages/forms.py:24 +msgid "Comment" +msgstr "Commentaire" + diff --git a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po index 0aba5755..6472b6fa 100644 --- a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-13 19:47-0500\n" -"PO-Revision-Date: 2011-08-14 00:47+0000\n" +"POT-Creation-Date: 2011-08-24 20:20-0500\n" +"PO-Revision-Date: 2011-08-25 01:22+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -89,59 +89,79 @@ msgstr "自己紹介" msgid "Website" msgstr "URL" -#: mediagoblin/edit/forms.py:43 -msgid "Improperly formed URL" -msgstr "不適切な形式のURL" - -#: mediagoblin/edit/views.py:54 +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "そのスラグを持つエントリは、このユーザーは既に存在します。" -#: mediagoblin/edit/views.py:75 +#: mediagoblin/edit/views.py:94 msgid "You are editing another user's media. Proceed with caution." msgstr "あなたは、他のユーザーのメディアを編集しています。ご注意ください。" -#: mediagoblin/edit/views.py:96 +#: mediagoblin/edit/views.py:165 msgid "You are editing a user's profile. Proceed with caution." msgstr "あなたは、他のユーザーのプロファイルを編集しています。ご注意ください。" +#: mediagoblin/process_media/errors.py:44 +msgid "Invalid file given for media type." +msgstr "" + #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "ファイル" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "ファイルを提供する必要があります。" -#: mediagoblin/submit/views.py:49 +#: mediagoblin/submit/views.py:50 msgid "The file doesn't seem to be an image!" msgstr "ファイルが画像ではないようです!" -#: mediagoblin/submit/views.py:94 +#: mediagoblin/submit/views.py:122 msgid "Woohoo! Submitted!" msgstr "投稿終了!" +#: mediagoblin/templates/mediagoblin/404.html:21 +msgid "Oops!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:24 +msgid "There doesn't seem to be a page at this address. Sorry!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:26 +msgid "" +"If you're sure the address is correct, maybe the page you're looking for has" +" been moved or deleted." +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:32 +msgid "Image of 404 goblin stressing out" +msgstr "" + #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" msgstr "GNU MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:45 -msgid "Mediagoblin logo" -msgstr "MediaGoblinロゴ" +#: mediagoblin/templates/mediagoblin/base.html:47 +msgid "MediaGoblin logo" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:51 +#: mediagoblin/templates/mediagoblin/base.html:52 msgid "Submit media" msgstr "コンテンツを投稿" -#: mediagoblin/templates/mediagoblin/base.html:62 +#: mediagoblin/templates/mediagoblin/base.html:63 msgid "verify your email!" msgstr "メアドを確認してください!" -#: mediagoblin/templates/mediagoblin/base.html:72 -msgid "Login" +#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +msgid "Log in" msgstr "ログイン" -#: mediagoblin/templates/mediagoblin/base.html:88 +#: mediagoblin/templates/mediagoblin/base.html:89 msgid "" "Powered by MediaGoblin, a GNU project" @@ -149,40 +169,48 @@ msgstr "" "Powered by MediaGoblin, a GNU project" -#: mediagoblin/templates/mediagoblin/root.html:23 -msgid "Welcome to GNU MediaGoblin!" -msgstr "GNU MediaGoblinへようこそ!" +#: mediagoblin/templates/mediagoblin/root.html:27 +msgid "Hi there, media lover! MediaGoblin is..." +msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Submit an item" -msgstr "アイテムを投稿" +#: mediagoblin/templates/mediagoblin/root.html:29 +msgid "The perfect place for your media!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:30 +msgid "" +"A place for people to collaborate and show off original and derived " +"creations!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:31 +msgid "" +"Free, as in freedom. (We’re a GNU project, " +"after all.)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:32 +msgid "" +"Aiming to make the world a better place through decentralization and " +"(eventually, coming soon!) federation!" +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:33 -#, python-format -msgid "If you have an account, you can Login." -msgstr "もしアカウントが持ったら、ログインできます。" - -#: mediagoblin/templates/mediagoblin/root.html:39 -#, python-format msgid "" -"If you don't have an account, please Register." -msgstr "アカウントが持っていなければ、登録してお願いします。" +"Built for extensibility. (Multiple media types coming soon to the software," +" including video support!)" +msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -msgid "Log in" -msgstr "ログイン" +#: mediagoblin/templates/mediagoblin/root.html:34 +msgid "" +"Powered by people like you. (You can help us improve this" +" software!)" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:29 -msgid "Login failed!" -msgstr "ログイン失敗!" - -#: mediagoblin/templates/mediagoblin/auth/login.html:34 -#: mediagoblin/templates/mediagoblin/auth/register.html:30 -#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/submit/start.html:29 -msgid "Submit" -msgstr "送信" +msgid "Logging in failed!" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" @@ -196,6 +224,10 @@ msgstr "ここで作成!" msgid "Create an account!" msgstr "アカウントを作成!" +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +msgid "Create" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format msgid "" @@ -222,6 +254,7 @@ msgid "Cancel" msgstr "キャンセル" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "投稿する" @@ -234,34 +267,53 @@ msgstr "%(username)sさんのプロフィールを編集中" msgid "Media tagged with:" msgstr "タグ付けされたコンテンツ:" -#: mediagoblin/templates/mediagoblin/listings/tag.html:42 -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:48 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:104 -msgid "atom feed" -msgstr "Atomフィード" - #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" msgstr "コンテンツを投稿" +#: mediagoblin/templates/mediagoblin/submit/start.html:29 +msgid "Submit" +msgstr "送信" + #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 #, python-format msgid "%(username)s's media" msgstr "%(username)sさんのコンテンツ" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 #: mediagoblin/templates/mediagoblin/user_pages/user.html:32 msgid "Sorry, no such user found." msgstr "申し訳ありませんが、そのユーザーは見つかりませんでした。" +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 +msgid "Media processing panel" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 +msgid "" +"You can track the state of media being processed for your gallery here." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 +msgid "Media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 +msgid "No media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 +msgid "These uploads failed to process:" +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/user.html:39 #: mediagoblin/templates/mediagoblin/user_pages/user.html:59 -msgid "Verification needed" -msgstr "確認必要" +msgid "Email verification needed" +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:42 -msgid "Almost done! Your account still needs to be verified." -msgstr "ほぼ完了!アカウントを検証する必要があります。" +msgid "Almost done! Your account still needs to be activated." +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" @@ -279,8 +331,8 @@ msgstr "確認メールを再送信" #: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "" "Someone has registered an account with this username, but it still has to be" -" verified." -msgstr "誰かがこのユーザ名でアカウントを登録しているが、まだ検証する必要があります。" +" activated." +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format @@ -294,15 +346,46 @@ msgstr "あなたの確認メールを紛失した場合、, 2011. +msgid "" +msgstr "" +"Project-Id-Version: GNU MediaGoblin\n" +"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" +"POT-Creation-Date: 2011-08-24 20:20-0500\n" +"PO-Revision-Date: 2011-08-25 01:22+0000\n" +"Last-Translator: cwebber \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 0.9.6\n" +"Language: nl\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46 +msgid "Username" +msgstr "Gebruikersnaam" + +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50 +msgid "Password" +msgstr "Wachtwoord" + +#: mediagoblin/auth/forms.py:34 +msgid "Passwords must match." +msgstr "Wachtwoorden moeten overeenkomen." + +#: mediagoblin/auth/forms.py:36 +msgid "Confirm password" +msgstr "Bevestig wachtwoord" + +#: mediagoblin/auth/forms.py:39 +msgid "Email address" +msgstr "E-mail adres" + +#: mediagoblin/auth/views.py:40 +msgid "Sorry, registration is disabled on this instance." +msgstr "Sorry, registratie is uitgeschakeld op deze instantie." + +#: mediagoblin/auth/views.py:57 +msgid "Sorry, a user with that name already exists." +msgstr "Sorry, er bestaat al een gebruiker met die naam." + +#: mediagoblin/auth/views.py:61 +msgid "Sorry, that email address has already been taken." +msgstr "Sorry, dat e-mailadres is al ingenomen." + +#: mediagoblin/auth/views.py:159 +msgid "" +"Your email address has been verified. You may now login, edit your profile, " +"and submit images!" +msgstr "" +"Uw e-mailadres is geverifieerd. U kunt nu inloggen, uw profiel bewerken, en " +"afbeeldingen toevoegen!" + +#: mediagoblin/auth/views.py:165 +msgid "The verification key or user id is incorrect" +msgstr "De verificatie sleutel of gebruikers-ID is onjuist" + +#: mediagoblin/auth/views.py:186 +#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +msgid "Resent your verification email." +msgstr "Verificatie e-mail opnieuw opgestuurd." + +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 +msgid "Title" +msgstr "Titel" + +#: mediagoblin/edit/forms.py:29 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:30 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +msgid "Tags" +msgstr "Etiket" + +#: mediagoblin/edit/forms.py:38 +msgid "Bio" +msgstr "Bio" + +#: mediagoblin/edit/forms.py:41 +msgid "Website" +msgstr "Website" + +#: mediagoblin/edit/views.py:65 +msgid "An entry with that slug already exists for this user." +msgstr "" + +#: mediagoblin/edit/views.py:94 +msgid "You are editing another user's media. Proceed with caution." +msgstr "" +"U bent de media van een andere gebruiker aan het aanpassen. Ga voorzichtig " +"te werk." + +#: mediagoblin/edit/views.py:165 +msgid "You are editing a user's profile. Proceed with caution." +msgstr "" +"U bent een gebruikersprofiel aan het aanpassen. Ga voorzichtig te werk." + +#: mediagoblin/process_media/errors.py:44 +msgid "Invalid file given for media type." +msgstr "" + +#: mediagoblin/submit/forms.py:25 +msgid "File" +msgstr "Bestand" + +#: mediagoblin/submit/views.py:47 +msgid "You must provide a file." +msgstr "U moet een bestand aangeven." + +#: mediagoblin/submit/views.py:50 +msgid "The file doesn't seem to be an image!" +msgstr "Het lijkt erop dat dit bestand geen afbeelding is!" + +#: mediagoblin/submit/views.py:122 +msgid "Woohoo! Submitted!" +msgstr "Mooizo! Toegevoegd!" + +#: mediagoblin/templates/mediagoblin/404.html:21 +msgid "Oops!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:24 +msgid "There doesn't seem to be a page at this address. Sorry!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:26 +msgid "" +"If you're sure the address is correct, maybe the page you're looking for has" +" been moved or deleted." +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:32 +msgid "Image of 404 goblin stressing out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:22 +msgid "GNU MediaGoblin" +msgstr "GNU MediaGoblin" + +#: mediagoblin/templates/mediagoblin/base.html:47 +msgid "MediaGoblin logo" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:52 +msgid "Submit media" +msgstr "Voeg media toe" + +#: mediagoblin/templates/mediagoblin/base.html:63 +msgid "verify your email!" +msgstr "Controleer uw e-mail!" + +#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +msgid "Log in" +msgstr "Inloggen" + +#: mediagoblin/templates/mediagoblin/base.html:89 +msgid "" +"Powered by MediaGoblin, a GNU project" +msgstr "" +"Aangedreven door MediaGoblin , een GNU-project" + +#: mediagoblin/templates/mediagoblin/root.html:27 +msgid "Hi there, media lover! MediaGoblin is..." +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:29 +msgid "The perfect place for your media!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:30 +msgid "" +"A place for people to collaborate and show off original and derived " +"creations!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:31 +msgid "" +"Free, as in freedom. (We’re a GNU project, " +"after all.)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:32 +msgid "" +"Aiming to make the world a better place through decentralization and " +"(eventually, coming soon!) federation!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:33 +msgid "" +"Built for extensibility. (Multiple media types coming soon to the software," +" including video support!)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:34 +msgid "" +"Powered by people like you. (You can help us improve this" +" software!)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:29 +msgid "Logging in failed!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:42 +msgid "Don't have an account yet?" +msgstr "Heeft u nog geen account?" + +#: mediagoblin/templates/mediagoblin/auth/login.html:45 +msgid "Create one here!" +msgstr "Maak er hier een!" + +#: mediagoblin/templates/mediagoblin/auth/register.html:27 +msgid "Create an account!" +msgstr "Maak een account aan!" + +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +msgid "Create" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to activate your GNU MediaGoblin account, open the following URL in\n" +"your web browser:\n" +"\n" +"%(verification_url)s" +msgstr "" +"Hallo %(username)s , open de volgende URL in uw webbrowser om uw GNU " +"MediaGoblin account te activeren: %(verification_url)s " + +#: mediagoblin/templates/mediagoblin/edit/edit.html:29 +#, python-format +msgid "Editing %(media_title)s" +msgstr "%(media_title)s aanpassen" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:36 +msgid "Cancel" +msgstr "Annuleren" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 +msgid "Save changes" +msgstr "Wijzigingen opslaan" + +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 +#, python-format +msgid "Editing %(username)s's profile" +msgstr "Het profiel aanpassen van %(username)s" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:31 +msgid "Media tagged with:" +msgstr "Media met het etiket:" + +#: mediagoblin/templates/mediagoblin/submit/start.html:26 +msgid "Submit yer media" +msgstr "Voeg media toe" + +#: mediagoblin/templates/mediagoblin/submit/start.html:29 +msgid "Submit" +msgstr "Voeg toe" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#, python-format +msgid "%(username)s's media" +msgstr "Media van %(username)s " + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 +msgid "Sorry, no such user found." +msgstr "Sorry, die gebruiker kon niet worden gevonden." + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 +msgid "Media processing panel" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 +msgid "" +"You can track the state of media being processed for your gallery here." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 +msgid "Media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 +msgid "No media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 +msgid "These uploads failed to process:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +msgid "Email verification needed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +msgid "Almost done! Your account still needs to be activated." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +msgid "" +"An email should arrive in a few moments with instructions on how to do so." +msgstr "" +"Een e-mail zou in een paar ogenblikken aan moeten komen met instructies " +"hiertoe." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +msgid "In case it doesn't:" +msgstr "Zoniet:" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +msgid "Resend verification email" +msgstr "Stuur de verificatie e-mail opnieuw op." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +msgid "" +"Someone has registered an account with this username, but it still has to be" +" activated." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#, python-format +msgid "" +"If you are that person but you've lost your verification email, you can log in and resend it." +msgstr "" +"Als u die persoon bent, maar de verificatie e-mail verloren hebt, kunt u inloggen en hem nogmaals verzenden." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 +#, python-format +msgid "%(username)s's profile" +msgstr "Profiel van %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +msgid "Here's a spot to tell others about yourself." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +msgid "Edit profile" +msgstr "Profiel aanpassen." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +msgid "This user hasn't filled in their profile (yet)." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#, python-format +msgid "View all of %(username)s's media" +msgstr "Bekijk alle media van %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +msgid "" +"This is where your media will appear, but you don't seem to have added " +"anything yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +msgid "Add media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +msgid "There doesn't seem to be any media here yet..." +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 +msgid "feed icon" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 +msgid "Atom feed" +msgstr "" + +#: mediagoblin/user_pages/forms.py:24 +msgid "Comment" +msgstr "Commentaar" + + diff --git a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po index bd00fd1f..2e9ad8a2 100644 --- a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-08 22:53-0500\n" -"PO-Revision-Date: 2011-08-10 21:23+0000\n" -"Last-Translator: velmont \n" +"POT-Creation-Date: 2011-08-24 20:20-0500\n" +"PO-Revision-Date: 2011-08-25 01:22+0000\n" +"Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -42,11 +42,15 @@ msgstr "E-postadresse" msgid "Sorry, registration is disabled on this instance." msgstr "Registrering er slege av. Orsak." -#: mediagoblin/auth/views.py:55 +#: mediagoblin/auth/views.py:57 msgid "Sorry, a user with that name already exists." msgstr "Ein konto med dette brukarnamnet finst allereide." -#: mediagoblin/auth/views.py:152 +#: mediagoblin/auth/views.py:61 +msgid "Sorry, that email address has already been taken." +msgstr "" + +#: mediagoblin/auth/views.py:159 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -54,16 +58,16 @@ msgstr "" "E-postadressa di, og dimed kontoen din er stadfesta. Du kan no logga inn, " "endra profilen din og lasta opp filer." -#: mediagoblin/auth/views.py:158 +#: mediagoblin/auth/views.py:165 msgid "The verification key or user id is incorrect" msgstr "Stadfestingsnykelen eller brukar-ID-en din er feil." -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:186 #: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 msgid "Resent your verification email." msgstr "Send ein ny stadfestingsepost." -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26 +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Tittel" @@ -87,59 +91,79 @@ msgstr "Presentasjon" msgid "Website" msgstr "Heimeside" -#: mediagoblin/edit/forms.py:43 -msgid "Improperly formed URL" -msgstr "Ugyldeg URL" - -#: mediagoblin/edit/views.py:54 +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "Eit innlegg med denne adressetittelen finst allereie." -#: mediagoblin/edit/views.py:75 +#: mediagoblin/edit/views.py:94 msgid "You are editing another user's media. Proceed with caution." msgstr "Ver forsiktig, du redigerer ein annan konto sitt innlegg." -#: mediagoblin/edit/views.py:96 +#: mediagoblin/edit/views.py:165 msgid "You are editing a user's profile. Proceed with caution." msgstr "Ver forsiktig, du redigerer ein annan konto sin profil." -#: mediagoblin/submit/forms.py:29 +#: mediagoblin/process_media/errors.py:44 +msgid "Invalid file given for media type." +msgstr "" + +#: mediagoblin/submit/forms.py:25 msgid "File" msgstr "Fil" -#: mediagoblin/submit/views.py:45 +#: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "Du må velja ei fil." -#: mediagoblin/submit/views.py:48 +#: mediagoblin/submit/views.py:50 msgid "The file doesn't seem to be an image!" msgstr "Fila verkar ikkje å vera ei gyldig biletefil." -#: mediagoblin/submit/views.py:96 +#: mediagoblin/submit/views.py:122 msgid "Woohoo! Submitted!" msgstr "Johoo! Opplasta!" +#: mediagoblin/templates/mediagoblin/404.html:21 +msgid "Oops!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:24 +msgid "There doesn't seem to be a page at this address. Sorry!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:26 +msgid "" +"If you're sure the address is correct, maybe the page you're looking for has" +" been moved or deleted." +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:32 +msgid "Image of 404 goblin stressing out" +msgstr "" + #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" msgstr "GNU MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:45 -msgid "Mediagoblin logo" -msgstr "MediaGoblin-logo" +#: mediagoblin/templates/mediagoblin/base.html:47 +msgid "MediaGoblin logo" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:51 +#: mediagoblin/templates/mediagoblin/base.html:52 msgid "Submit media" msgstr "Last opp" -#: mediagoblin/templates/mediagoblin/base.html:62 +#: mediagoblin/templates/mediagoblin/base.html:63 msgid "verify your email!" msgstr "Stadfest epostadressa di" -#: mediagoblin/templates/mediagoblin/base.html:72 -msgid "Login" +#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +msgid "Log in" msgstr "Logg inn" -#: mediagoblin/templates/mediagoblin/base.html:88 +#: mediagoblin/templates/mediagoblin/base.html:89 msgid "" "Powered by MediaGoblin, a GNU project" @@ -147,40 +171,48 @@ msgstr "" "Driven av MediaGoblin, eit GNU-prosjekt" -#: mediagoblin/templates/mediagoblin/root.html:21 -msgid "Welcome to GNU MediaGoblin!" -msgstr "Velkomen til GNU MediaGoblin!" +#: mediagoblin/templates/mediagoblin/root.html:27 +msgid "Hi there, media lover! MediaGoblin is..." +msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:26 -msgid "Submit an item" -msgstr "Last opp" +#: mediagoblin/templates/mediagoblin/root.html:29 +msgid "The perfect place for your media!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:30 +msgid "" +"A place for people to collaborate and show off original and derived " +"creations!" +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 -#, python-format -msgid "If you have an account, you can Login." -msgstr "Har du ein konto? Logg inn." - -#: mediagoblin/templates/mediagoblin/root.html:37 -#, python-format msgid "" -"If you don't have an account, please Register." -msgstr "Har du ingen konto? Registrer deg." +"Free, as in freedom. (We’re a GNU project, " +"after all.)" +msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -msgid "Log in" -msgstr "Logg inn" +#: mediagoblin/templates/mediagoblin/root.html:32 +msgid "" +"Aiming to make the world a better place through decentralization and " +"(eventually, coming soon!) federation!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:33 +msgid "" +"Built for extensibility. (Multiple media types coming soon to the software," +" including video support!)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:34 +msgid "" +"Powered by people like you. (You can help us improve this" +" software!)" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:29 -msgid "Login failed!" -msgstr "Innlogging feila!" - -#: mediagoblin/templates/mediagoblin/auth/login.html:34 -#: mediagoblin/templates/mediagoblin/auth/register.html:30 -#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/submit/start.html:32 -msgid "Submit" -msgstr "Send" +msgid "Logging in failed!" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" @@ -194,6 +226,10 @@ msgstr "Lag ein!" msgid "Create an account!" msgstr "Lag ein konto." +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +msgid "Create" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format msgid "" @@ -220,6 +256,7 @@ msgid "Cancel" msgstr "Avbryt" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "Lagra" @@ -228,61 +265,78 @@ msgstr "Lagra" msgid "Editing %(username)s's profile" msgstr "Redigerar profilen til %(username)s" -#: mediagoblin/templates/mediagoblin/listings/tag.html:29 +#: mediagoblin/templates/mediagoblin/listings/tag.html:31 msgid "Media tagged with:" msgstr "Merkelappar:" -#: mediagoblin/templates/mediagoblin/listings/tag.html:40 -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 -msgid "atom feed" -msgstr "atom-feed" - #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" msgstr "Last opp" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#: mediagoblin/templates/mediagoblin/submit/start.html:29 +msgid "Submit" +msgstr "Send" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 #, python-format msgid "%(username)s's media" msgstr "%(username)s sin mediafiler" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:30 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 msgid "Sorry, no such user found." msgstr "Fann ingen slik brukar" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:37 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:57 -msgid "Verification needed" -msgstr "Treng stadfesting" +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 +msgid "Media processing panel" +msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:40 -msgid "Almost done! Your account still needs to be verified." -msgstr "Nesten klart. Du treng berre stadfesta kontoen din." +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 +msgid "" +"You can track the state of media being processed for your gallery here." +msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:45 +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 +msgid "Media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 +msgid "No media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 +msgid "These uploads failed to process:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +msgid "Email verification needed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +msgid "Almost done! Your account still needs to be activated." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "Ein epost med instruksjonar kjem straks." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:49 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 msgid "In case it doesn't:" msgstr "I tilfelle det ikkje skjer:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 msgid "Resend verification email" msgstr "Send ein ny epost" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:60 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "" "Someone has registered an account with this username, but it still has to be" -" verified." +" activated." msgstr "" -"Det finst allereie ein konto med det brukarnamnet, men den kontoen treng " -"stadfesting." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:66 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format msgid "" "If you are that person but you've lost your verification email, you can logga inn for å få " "tilsendt ny epost med stadfestingslenkje." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:76 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 #, python-format msgid "%(username)s's profile" msgstr "%(username)s sin profil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:84 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +msgid "Here's a spot to tell others about yourself." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 msgid "Edit profile" msgstr "Endra profil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:95 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +msgid "This user hasn't filled in their profile (yet)." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format msgid "View all of %(username)s's media" msgstr "Sjå all media frå %(username)s" +#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +msgid "" +"This is where your media will appear, but you don't seem to have added " +"anything yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +msgid "Add media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +msgid "There doesn't seem to be any media here yet..." +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 +msgid "feed icon" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 +msgid "Atom feed" +msgstr "" + +#: mediagoblin/user_pages/forms.py:24 +msgid "Comment" +msgstr "" + diff --git a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po index 43f65af6..7ea81f3b 100644 --- a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-08 22:53-0500\n" -"PO-Revision-Date: 2011-08-10 23:16+0000\n" -"Last-Translator: osc \n" +"POT-Creation-Date: 2011-08-24 20:20-0500\n" +"PO-Revision-Date: 2011-08-25 01:22+0000\n" +"Last-Translator: cwebber \n" "Language-Team: Portuguese (Brazilian) (http://www.transifex.net/projects/p/mediagoblin/team/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -42,11 +42,15 @@ msgstr "Endereço de email" msgid "Sorry, registration is disabled on this instance." msgstr "Desculpa, o registro está desativado neste momento." -#: mediagoblin/auth/views.py:55 +#: mediagoblin/auth/views.py:57 msgid "Sorry, a user with that name already exists." msgstr "Desculpe, um usuário com este nome já existe." -#: mediagoblin/auth/views.py:152 +#: mediagoblin/auth/views.py:61 +msgid "Sorry, that email address has already been taken." +msgstr "" + +#: mediagoblin/auth/views.py:159 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -54,16 +58,16 @@ msgstr "" "O seu endereço de e-mail foi verificado. Você pode agora fazer login, editar" " seu perfil, e enviar imagens!" -#: mediagoblin/auth/views.py:158 +#: mediagoblin/auth/views.py:165 msgid "The verification key or user id is incorrect" msgstr "A chave de verificação ou nome usuário estão incorretos." -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:186 #: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 msgid "Resent your verification email." msgstr "O email de verificação foi reenviado." -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26 +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Título" @@ -87,102 +91,128 @@ msgstr "Biográfia" msgid "Website" msgstr "Website" -#: mediagoblin/edit/forms.py:43 -msgid "Improperly formed URL" -msgstr "" - -#: mediagoblin/edit/views.py:54 +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "" -#: mediagoblin/edit/views.py:75 +#: mediagoblin/edit/views.py:94 msgid "You are editing another user's media. Proceed with caution." msgstr "" -#: mediagoblin/edit/views.py:96 +#: mediagoblin/edit/views.py:165 msgid "You are editing a user's profile. Proceed with caution." msgstr "" -#: mediagoblin/submit/forms.py:29 +#: mediagoblin/process_media/errors.py:44 +msgid "Invalid file given for media type." +msgstr "" + +#: mediagoblin/submit/forms.py:25 msgid "File" msgstr "Arquivo" -#: mediagoblin/submit/views.py:45 +#: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "Você deve fornecer um arquivo." -#: mediagoblin/submit/views.py:48 +#: mediagoblin/submit/views.py:50 msgid "The file doesn't seem to be an image!" msgstr "O arquivo não parece ser uma imagem!" -#: mediagoblin/submit/views.py:96 +#: mediagoblin/submit/views.py:122 msgid "Woohoo! Submitted!" msgstr "Eba! Enviado!" +#: mediagoblin/templates/mediagoblin/404.html:21 +msgid "Oops!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:24 +msgid "There doesn't seem to be a page at this address. Sorry!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:26 +msgid "" +"If you're sure the address is correct, maybe the page you're looking for has" +" been moved or deleted." +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:32 +msgid "Image of 404 goblin stressing out" +msgstr "" + #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" msgstr "GNU MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:45 -msgid "Mediagoblin logo" -msgstr "Logo de Mediagoblin" +#: mediagoblin/templates/mediagoblin/base.html:47 +msgid "MediaGoblin logo" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:51 +#: mediagoblin/templates/mediagoblin/base.html:52 msgid "Submit media" msgstr "Enviar mídia" -#: mediagoblin/templates/mediagoblin/base.html:62 +#: mediagoblin/templates/mediagoblin/base.html:63 msgid "verify your email!" msgstr "Verifique seu email!" -#: mediagoblin/templates/mediagoblin/base.html:72 -msgid "Login" -msgstr "Login" - -#: mediagoblin/templates/mediagoblin/base.html:88 -msgid "" -"Powered by MediaGoblin, a GNU project" -msgstr "" -"Powered by MediaGoblin, a GNU project" - -#: mediagoblin/templates/mediagoblin/root.html:21 -msgid "Welcome to GNU MediaGoblin!" -msgstr "Bemvindo a GNU Mediagoblin!" - -#: mediagoblin/templates/mediagoblin/root.html:26 -msgid "Submit an item" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:31 -#, python-format -msgid "If you have an account, you can Login." -msgstr "Se você tem conta, você pode Entrar ." - -#: mediagoblin/templates/mediagoblin/root.html:37 -#, python-format -msgid "" -"If you don't have an account, please Register." -msgstr "" -"Se você não tem conta, por favor Registrar " -"." - +#: mediagoblin/templates/mediagoblin/base.html:73 #: mediagoblin/templates/mediagoblin/auth/login.html:26 +#: mediagoblin/templates/mediagoblin/auth/login.html:34 msgid "Log in" msgstr "Entrar" -#: mediagoblin/templates/mediagoblin/auth/login.html:29 -msgid "Login failed!" -msgstr "Login falhou!" +#: mediagoblin/templates/mediagoblin/base.html:89 +msgid "" +"Powered by MediaGoblin, a GNU project" +msgstr "" +"Powered by MediaGoblin, a GNU project" -#: mediagoblin/templates/mediagoblin/auth/login.html:34 -#: mediagoblin/templates/mediagoblin/auth/register.html:30 -#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/submit/start.html:32 -msgid "Submit" -msgstr "Enviar" +#: mediagoblin/templates/mediagoblin/root.html:27 +msgid "Hi there, media lover! MediaGoblin is..." +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:29 +msgid "The perfect place for your media!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:30 +msgid "" +"A place for people to collaborate and show off original and derived " +"creations!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:31 +msgid "" +"Free, as in freedom. (We’re a GNU project, " +"after all.)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:32 +msgid "" +"Aiming to make the world a better place through decentralization and " +"(eventually, coming soon!) federation!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:33 +msgid "" +"Built for extensibility. (Multiple media types coming soon to the software," +" including video support!)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:34 +msgid "" +"Powered by people like you. (You can help us improve this" +" software!)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:29 +msgid "Logging in failed!" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" @@ -196,6 +226,10 @@ msgstr "Crie uma aqui!" msgid "Create an account!" msgstr "Criar uma conta!" +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +msgid "Create" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format msgid "" @@ -222,6 +256,7 @@ msgid "Cancel" msgstr "Cancelar" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "Salvar mudanças" @@ -230,61 +265,78 @@ msgstr "Salvar mudanças" msgid "Editing %(username)s's profile" msgstr "Editando perfil de %(username)s" -#: mediagoblin/templates/mediagoblin/listings/tag.html:29 +#: mediagoblin/templates/mediagoblin/listings/tag.html:31 msgid "Media tagged with:" msgstr "" -#: mediagoblin/templates/mediagoblin/listings/tag.html:40 -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 -msgid "atom feed" -msgstr "atom feed" - #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" msgstr "Envie sua mídia" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#: mediagoblin/templates/mediagoblin/submit/start.html:29 +msgid "Submit" +msgstr "Enviar" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 #, python-format msgid "%(username)s's media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:30 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 msgid "Sorry, no such user found." msgstr "Desculpe, tal usuário não encontrado." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:37 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:57 -msgid "Verification needed" -msgstr "Verificação necessária" +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 +msgid "Media processing panel" +msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:40 -msgid "Almost done! Your account still needs to be verified." -msgstr "Quase pronto! Sua conta precisa de verificação." +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 +msgid "" +"You can track the state of media being processed for your gallery here." +msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:45 +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 +msgid "Media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 +msgid "No media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 +msgid "These uploads failed to process:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +msgid "Email verification needed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +msgid "Almost done! Your account still needs to be activated." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "Receberá um email com instruções de como fazer." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:49 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 msgid "In case it doesn't:" msgstr "Caso contrário:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 msgid "Resend verification email" msgstr "Reenviar email de verificação" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:60 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "" "Someone has registered an account with this username, but it still has to be" -" verified." +" activated." msgstr "" -"Alguém já registrou uma conta com este nome, mas ainda tem que ser " -"verificada." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:66 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format msgid "" "If you are that person but you've lost your verification email, you can efetuar login e reenviá-la." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:76 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 #, python-format msgid "%(username)s's profile" msgstr "Perfil de %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:84 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +msgid "Here's a spot to tell others about yourself." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 msgid "Edit profile" msgstr "Editar perfil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:95 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +msgid "This user hasn't filled in their profile (yet)." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format msgid "View all of %(username)s's media" msgstr "" +#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +msgid "" +"This is where your media will appear, but you don't seem to have added " +"anything yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +msgid "Add media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +msgid "There doesn't seem to be any media here yet..." +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 +msgid "feed icon" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 +msgid "Atom feed" +msgstr "" + +#: mediagoblin/user_pages/forms.py:24 +msgid "Comment" +msgstr "" + diff --git a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po index feb261c8..6a671468 100644 --- a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-08 22:53-0500\n" -"PO-Revision-Date: 2011-08-10 21:52+0000\n" -"Last-Translator: gap \n" +"POT-Creation-Date: 2011-08-24 20:20-0500\n" +"PO-Revision-Date: 2011-08-25 01:22+0000\n" +"Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -42,11 +42,15 @@ msgstr "Adresa de e-mail" msgid "Sorry, registration is disabled on this instance." msgstr "Ne pare rău, dar înscrierile sunt dezactivate pe această instanță." -#: mediagoblin/auth/views.py:55 +#: mediagoblin/auth/views.py:57 msgid "Sorry, a user with that name already exists." msgstr "Ne pare rău, există deja un utilizator cu același nume." -#: mediagoblin/auth/views.py:152 +#: mediagoblin/auth/views.py:61 +msgid "Sorry, that email address has already been taken." +msgstr "Ne pare rău, această adresă de e-mail este deja rezervată." + +#: mediagoblin/auth/views.py:159 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -54,16 +58,16 @@ msgstr "" "Adresa dvs. de e-mail a fost confirmată. Puteți să vă autentificați, să vă " "modificați profilul și să trimiteți imagini!" -#: mediagoblin/auth/views.py:158 +#: mediagoblin/auth/views.py:165 msgid "The verification key or user id is incorrect" msgstr "Cheie de verificare sau user ID incorect." -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:186 #: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 msgid "Resent your verification email." msgstr "E-mail-ul de verificare a fost retrimis." -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26 +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Titlu" @@ -87,60 +91,80 @@ msgstr "Biografie" msgid "Website" msgstr "Sit Web" -#: mediagoblin/edit/forms.py:43 -msgid "Improperly formed URL" -msgstr "Adresă URL incorectă" - -#: mediagoblin/edit/views.py:54 +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "" "Există deja un entry cu același identificator pentru acest utilizator." -#: mediagoblin/edit/views.py:75 +#: mediagoblin/edit/views.py:94 msgid "You are editing another user's media. Proceed with caution." msgstr "Editați fișierul unui alt utilizator. Se recomandă prudență." -#: mediagoblin/edit/views.py:96 +#: mediagoblin/edit/views.py:165 msgid "You are editing a user's profile. Proceed with caution." msgstr "Editați profilul unui utilizator. Se recomandă prudență." -#: mediagoblin/submit/forms.py:29 +#: mediagoblin/process_media/errors.py:44 +msgid "Invalid file given for media type." +msgstr "" + +#: mediagoblin/submit/forms.py:25 msgid "File" msgstr "Fișier" -#: mediagoblin/submit/views.py:45 +#: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "Trebuie să selectați un fișier." -#: mediagoblin/submit/views.py:48 +#: mediagoblin/submit/views.py:50 msgid "The file doesn't seem to be an image!" msgstr "Fișierul nu pare a fi o imagine!" -#: mediagoblin/submit/views.py:96 +#: mediagoblin/submit/views.py:122 msgid "Woohoo! Submitted!" msgstr "Gata, trimis!" +#: mediagoblin/templates/mediagoblin/404.html:21 +msgid "Oops!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:24 +msgid "There doesn't seem to be a page at this address. Sorry!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:26 +msgid "" +"If you're sure the address is correct, maybe the page you're looking for has" +" been moved or deleted." +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:32 +msgid "Image of 404 goblin stressing out" +msgstr "" + #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" msgstr "GNU MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:45 -msgid "Mediagoblin logo" -msgstr "Logo MediaGoblin" +#: mediagoblin/templates/mediagoblin/base.html:47 +msgid "MediaGoblin logo" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:51 +#: mediagoblin/templates/mediagoblin/base.html:52 msgid "Submit media" msgstr "Transmiteți fișier" -#: mediagoblin/templates/mediagoblin/base.html:62 +#: mediagoblin/templates/mediagoblin/base.html:63 msgid "verify your email!" msgstr "verificați e-mail-ul!" -#: mediagoblin/templates/mediagoblin/base.html:72 -msgid "Login" +#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +msgid "Log in" msgstr "Autentificare" -#: mediagoblin/templates/mediagoblin/base.html:88 +#: mediagoblin/templates/mediagoblin/base.html:89 msgid "" "Powered by MediaGoblin, a GNU project" @@ -148,44 +172,48 @@ msgstr "" "Construit cu MediaGoblin, un proiect GNU" -#: mediagoblin/templates/mediagoblin/root.html:21 -msgid "Welcome to GNU MediaGoblin!" -msgstr "Bun venit la GNU MediaGoblin!" +#: mediagoblin/templates/mediagoblin/root.html:27 +msgid "Hi there, media lover! MediaGoblin is..." +msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:26 -msgid "Submit an item" -msgstr "Trimite un fișier" +#: mediagoblin/templates/mediagoblin/root.html:29 +msgid "The perfect place for your media!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:30 +msgid "" +"A place for people to collaborate and show off original and derived " +"creations!" +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 -#, python-format -msgid "If you have an account, you can Login." -msgstr "" -"Dacă aveți deja un cont, vă puteți autentifica." - -#: mediagoblin/templates/mediagoblin/root.html:37 -#, python-format msgid "" -"If you don't have an account, please Register." +"Free, as in freedom. (We’re a GNU project, " +"after all.)" msgstr "" -"Dacă nu aveți cont, vă rugăm să vă înregistrați." -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -msgid "Log in" -msgstr "Autentificare" +#: mediagoblin/templates/mediagoblin/root.html:32 +msgid "" +"Aiming to make the world a better place through decentralization and " +"(eventually, coming soon!) federation!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:33 +msgid "" +"Built for extensibility. (Multiple media types coming soon to the software," +" including video support!)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:34 +msgid "" +"Powered by people like you. (You can help us improve this" +" software!)" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:29 -msgid "Login failed!" -msgstr "Autentificare nereușită!" - -#: mediagoblin/templates/mediagoblin/auth/login.html:34 -#: mediagoblin/templates/mediagoblin/auth/register.html:30 -#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/submit/start.html:32 -msgid "Submit" -msgstr "Trimite" +msgid "Logging in failed!" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" @@ -199,6 +227,10 @@ msgstr "Creați-l aici!" msgid "Create an account!" msgstr "Creați un cont!" +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +msgid "Create" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format msgid "" @@ -225,6 +257,7 @@ msgid "Cancel" msgstr "Anulare" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "Salvează modificările" @@ -233,61 +266,78 @@ msgstr "Salvează modificările" msgid "Editing %(username)s's profile" msgstr "Editare profil %(username)s" -#: mediagoblin/templates/mediagoblin/listings/tag.html:29 +#: mediagoblin/templates/mediagoblin/listings/tag.html:31 msgid "Media tagged with:" msgstr "Etichete:" -#: mediagoblin/templates/mediagoblin/listings/tag.html:40 -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 -msgid "atom feed" -msgstr "flux atom" - #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" msgstr "Trimite fișierele tale" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#: mediagoblin/templates/mediagoblin/submit/start.html:29 +msgid "Submit" +msgstr "Trimite" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 #, python-format msgid "%(username)s's media" msgstr "Fișierele lui %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:30 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 msgid "Sorry, no such user found." msgstr "Ne pare rău, nu am găsit utilizatorul căutat." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:37 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:57 -msgid "Verification needed" -msgstr "Confirmare necesară" +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 +msgid "Media processing panel" +msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:40 -msgid "Almost done! Your account still needs to be verified." -msgstr "Aproape gata! Este necesară confirmarea contului dvs." +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 +msgid "" +"You can track the state of media being processed for your gallery here." +msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:45 +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 +msgid "Media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 +msgid "No media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 +msgid "These uploads failed to process:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +msgid "Email verification needed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +msgid "Almost done! Your account still needs to be activated." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "Veți primi în scurt timp un mesaj prin e-mail cu instrucțiuni." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:49 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 msgid "In case it doesn't:" msgstr "Dacă nu primiți mesajul:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 msgid "Resend verification email" msgstr "Retrimite mesajul de verificare" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:60 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "" "Someone has registered an account with this username, but it still has to be" -" verified." +" activated." msgstr "" -"Cineva s-a înscris pe site cu acest nume de utilizator, dar nu a fost " -"confirmat încă." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:66 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format msgid "" "If you are that person but you've lost your verification email, you can autentificați pentru " "a-l retrimite." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:76 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 #, python-format msgid "%(username)s's profile" msgstr "Profil %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:84 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +msgid "Here's a spot to tell others about yourself." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 msgid "Edit profile" msgstr "Editare profil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:95 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +msgid "This user hasn't filled in their profile (yet)." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format msgid "View all of %(username)s's media" msgstr "Toate fișierele lui %(username)s" +#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +msgid "" +"This is where your media will appear, but you don't seem to have added " +"anything yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +msgid "Add media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +msgid "There doesn't seem to be any media here yet..." +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 +msgid "feed icon" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 +msgid "Atom feed" +msgstr "" + +#: mediagoblin/user_pages/forms.py:24 +msgid "Comment" +msgstr "Scrie un comentariu" + diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po new file mode 100644 index 00000000..cedd5a2e --- /dev/null +++ b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po @@ -0,0 +1,387 @@ +# Translations template for PROJECT. +# Copyright (C) 2011 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# +# , 2011. +msgid "" +msgstr "" +"Project-Id-Version: GNU MediaGoblin\n" +"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" +"POT-Creation-Date: 2011-08-24 20:20-0500\n" +"PO-Revision-Date: 2011-08-25 01:22+0000\n" +"Last-Translator: cwebber \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 0.9.6\n" +"Language: ru\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" + +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46 +msgid "Username" +msgstr "Логин" + +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50 +msgid "Password" +msgstr "Пароль" + +#: mediagoblin/auth/forms.py:34 +msgid "Passwords must match." +msgstr "Пароли должны совпадать." + +#: mediagoblin/auth/forms.py:36 +msgid "Confirm password" +msgstr "Подтвердите пароль" + +#: mediagoblin/auth/forms.py:39 +msgid "Email address" +msgstr "Адрес электронной почты" + +#: mediagoblin/auth/views.py:40 +msgid "Sorry, registration is disabled on this instance." +msgstr "" + +#: mediagoblin/auth/views.py:57 +msgid "Sorry, a user with that name already exists." +msgstr "" + +#: mediagoblin/auth/views.py:61 +msgid "Sorry, that email address has already been taken." +msgstr "" + +#: mediagoblin/auth/views.py:159 +msgid "" +"Your email address has been verified. You may now login, edit your profile, " +"and submit images!" +msgstr "" + +#: mediagoblin/auth/views.py:165 +msgid "The verification key or user id is incorrect" +msgstr "" + +#: mediagoblin/auth/views.py:186 +#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +msgid "Resent your verification email." +msgstr "" + +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 +msgid "Title" +msgstr "Название" + +#: mediagoblin/edit/forms.py:29 +msgid "Slug" +msgstr "Отличительная часть адреса" + +#: mediagoblin/edit/forms.py:30 +msgid "The slug can't be empty" +msgstr "Отличительная часть адреса необходима" + +#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +msgid "Tags" +msgstr "Метки" + +#: mediagoblin/edit/forms.py:38 +msgid "Bio" +msgstr "" + +#: mediagoblin/edit/forms.py:41 +msgid "Website" +msgstr "Сайт" + +#: mediagoblin/edit/views.py:65 +msgid "An entry with that slug already exists for this user." +msgstr "" +"У этого пользователя уже есть файл с такой отличительной частью адреса." + +#: mediagoblin/edit/views.py:94 +msgid "You are editing another user's media. Proceed with caution." +msgstr "" + +#: mediagoblin/edit/views.py:165 +msgid "You are editing a user's profile. Proceed with caution." +msgstr "" + +#: mediagoblin/process_media/errors.py:44 +msgid "Invalid file given for media type." +msgstr "" + +#: mediagoblin/submit/forms.py:25 +msgid "File" +msgstr "Файл" + +#: mediagoblin/submit/views.py:47 +msgid "You must provide a file." +msgstr "" + +#: mediagoblin/submit/views.py:50 +msgid "The file doesn't seem to be an image!" +msgstr "" + +#: mediagoblin/submit/views.py:122 +msgid "Woohoo! Submitted!" +msgstr "Ура! Файл загружен!" + +#: mediagoblin/templates/mediagoblin/404.html:21 +msgid "Oops!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:24 +msgid "There doesn't seem to be a page at this address. Sorry!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:26 +msgid "" +"If you're sure the address is correct, maybe the page you're looking for has" +" been moved or deleted." +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:32 +msgid "Image of 404 goblin stressing out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:22 +msgid "GNU MediaGoblin" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:47 +msgid "MediaGoblin logo" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:52 +msgid "Submit media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:63 +msgid "verify your email!" +msgstr "подтвердите ваш адрес электронной почты!" + +#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +msgid "Log in" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:89 +msgid "" +"Powered by MediaGoblin, a GNU project" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:27 +msgid "Hi there, media lover! MediaGoblin is..." +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:29 +msgid "The perfect place for your media!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:30 +msgid "" +"A place for people to collaborate and show off original and derived " +"creations!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:31 +msgid "" +"Free, as in freedom. (We’re a GNU project, " +"after all.)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:32 +msgid "" +"Aiming to make the world a better place through decentralization and " +"(eventually, coming soon!) federation!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:33 +msgid "" +"Built for extensibility. (Multiple media types coming soon to the software," +" including video support!)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:34 +msgid "" +"Powered by people like you. (You can help us improve this" +" software!)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:29 +msgid "Logging in failed!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:42 +msgid "Don't have an account yet?" +msgstr "Ещё нет учётной записи?" + +#: mediagoblin/templates/mediagoblin/auth/login.html:45 +msgid "Create one here!" +msgstr "Создайте её здесь!" + +#: mediagoblin/templates/mediagoblin/auth/register.html:27 +msgid "Create an account!" +msgstr "Создаём учётную запись!" + +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +msgid "Create" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to activate your GNU MediaGoblin account, open the following URL in\n" +"your web browser:\n" +"\n" +"%(verification_url)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:29 +#, python-format +msgid "Editing %(media_title)s" +msgstr "Редактирование %(media_title)s" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:36 +msgid "Cancel" +msgstr "Отменить" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 +msgid "Save changes" +msgstr "Сохранить изменения" + +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 +#, python-format +msgid "Editing %(username)s's profile" +msgstr "Редактирование профиля %(username)s" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:31 +msgid "Media tagged with:" +msgstr "Файлы с меткой:" + +#: mediagoblin/templates/mediagoblin/submit/start.html:26 +msgid "Submit yer media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:29 +msgid "Submit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 +msgid "Sorry, no such user found." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 +msgid "Media processing panel" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 +msgid "" +"You can track the state of media being processed for your gallery here." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 +msgid "Media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 +msgid "No media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 +msgid "These uploads failed to process:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +msgid "Email verification needed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +msgid "Almost done! Your account still needs to be activated." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +msgid "" +"An email should arrive in a few moments with instructions on how to do so." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +msgid "In case it doesn't:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +msgid "Resend verification email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +msgid "" +"Someone has registered an account with this username, but it still has to be" +" activated." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#, python-format +msgid "" +"If you are that person but you've lost your verification email, you can log in and resend it." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 +#, python-format +msgid "%(username)s's profile" +msgstr "Профиль пользователя %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +msgid "Here's a spot to tell others about yourself." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +msgid "Edit profile" +msgstr "Изменить профиль" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +msgid "This user hasn't filled in their profile (yet)." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#, python-format +msgid "View all of %(username)s's media" +msgstr "Смотреть все файлы %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +msgid "" +"This is where your media will appear, but you don't seem to have added " +"anything yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +msgid "Add media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +msgid "There doesn't seem to be any media here yet..." +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 +msgid "feed icon" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 +msgid "Atom feed" +msgstr "" + +#: mediagoblin/user_pages/forms.py:24 +msgid "Comment" +msgstr "" + + diff --git a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po index bf2dd4fa..7302ce6e 100644 --- a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-08 22:53-0500\n" -"PO-Revision-Date: 2011-08-10 21:28+0000\n" -"Last-Translator: JLP \n" +"POT-Creation-Date: 2011-08-24 20:20-0500\n" +"PO-Revision-Date: 2011-08-25 01:22+0000\n" +"Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -42,11 +42,15 @@ msgstr "E-poštni naslov" msgid "Sorry, registration is disabled on this instance." msgstr "Oprostite, prijava za ta izvod ni omogočena." -#: mediagoblin/auth/views.py:55 +#: mediagoblin/auth/views.py:57 msgid "Sorry, a user with that name already exists." msgstr "Oprostite, uporabnik s tem imenom že obstaja." -#: mediagoblin/auth/views.py:152 +#: mediagoblin/auth/views.py:61 +msgid "Sorry, that email address has already been taken." +msgstr "" + +#: mediagoblin/auth/views.py:159 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -54,16 +58,16 @@ msgstr "" "Vaš e-poštni naslov je bil potrjen. Sedaj se lahko prijavite, uredite svoj " "profil in pošljete slike." -#: mediagoblin/auth/views.py:158 +#: mediagoblin/auth/views.py:165 msgid "The verification key or user id is incorrect" msgstr "Potrditveni ključ ali uporabniška identifikacija je napačna" -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:186 #: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 msgid "Resent your verification email." msgstr "Ponovno pošiljanje potrditvene e-pošte." -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26 +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Naslov" @@ -87,59 +91,79 @@ msgstr "Biografija" msgid "Website" msgstr "Spletna stran" -#: mediagoblin/edit/forms.py:43 -msgid "Improperly formed URL" -msgstr "Napačno oblikovan URL" - -#: mediagoblin/edit/views.py:54 +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "Vnos s to oznako za tega uporabnika že obstaja." -#: mediagoblin/edit/views.py:75 +#: mediagoblin/edit/views.py:94 msgid "You are editing another user's media. Proceed with caution." msgstr "Urejate vsebino drugega uporabnika. Nadaljujte pazljivo." -#: mediagoblin/edit/views.py:96 +#: mediagoblin/edit/views.py:165 msgid "You are editing a user's profile. Proceed with caution." msgstr "Urejate uporabniški profil. Nadaljujte pazljivo." -#: mediagoblin/submit/forms.py:29 +#: mediagoblin/process_media/errors.py:44 +msgid "Invalid file given for media type." +msgstr "" + +#: mediagoblin/submit/forms.py:25 msgid "File" msgstr "Datoteka" -#: mediagoblin/submit/views.py:45 +#: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "Podati morate datoteko." -#: mediagoblin/submit/views.py:48 +#: mediagoblin/submit/views.py:50 msgid "The file doesn't seem to be an image!" msgstr "Kot kaže datoteka ni slika." -#: mediagoblin/submit/views.py:96 +#: mediagoblin/submit/views.py:122 msgid "Woohoo! Submitted!" msgstr "Juhej! Poslano." +#: mediagoblin/templates/mediagoblin/404.html:21 +msgid "Oops!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:24 +msgid "There doesn't seem to be a page at this address. Sorry!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:26 +msgid "" +"If you're sure the address is correct, maybe the page you're looking for has" +" been moved or deleted." +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:32 +msgid "Image of 404 goblin stressing out" +msgstr "" + #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" msgstr "GNU MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:45 -msgid "Mediagoblin logo" -msgstr "Logotip MediaGoblin" +#: mediagoblin/templates/mediagoblin/base.html:47 +msgid "MediaGoblin logo" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:51 +#: mediagoblin/templates/mediagoblin/base.html:52 msgid "Submit media" msgstr "Pošlji vsebino" -#: mediagoblin/templates/mediagoblin/base.html:62 +#: mediagoblin/templates/mediagoblin/base.html:63 msgid "verify your email!" msgstr "Preverite svojo e-pošto." -#: mediagoblin/templates/mediagoblin/base.html:72 -msgid "Login" +#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +msgid "Log in" msgstr "Prijava" -#: mediagoblin/templates/mediagoblin/base.html:88 +#: mediagoblin/templates/mediagoblin/base.html:89 msgid "" "Powered by MediaGoblin, a GNU project" @@ -147,40 +171,48 @@ msgstr "" "Stran poganja MediaGoblin, del projekta GNU" -#: mediagoblin/templates/mediagoblin/root.html:21 -msgid "Welcome to GNU MediaGoblin!" -msgstr "Dobrodošli v GNU MediaGoblin!" +#: mediagoblin/templates/mediagoblin/root.html:27 +msgid "Hi there, media lover! MediaGoblin is..." +msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:26 -msgid "Submit an item" -msgstr "Pošljite datoteko" +#: mediagoblin/templates/mediagoblin/root.html:29 +msgid "The perfect place for your media!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:30 +msgid "" +"A place for people to collaborate and show off original and derived " +"creations!" +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 -#, python-format -msgid "If you have an account, you can Login." -msgstr "Če imate račun, se lahko Prijavite." - -#: mediagoblin/templates/mediagoblin/root.html:37 -#, python-format msgid "" -"If you don't have an account, please Register." -msgstr "Če računa še nimate, se Registrirajte." +"Free, as in freedom. (We’re a GNU project, " +"after all.)" +msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -msgid "Log in" -msgstr "Prijava" +#: mediagoblin/templates/mediagoblin/root.html:32 +msgid "" +"Aiming to make the world a better place through decentralization and " +"(eventually, coming soon!) federation!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:33 +msgid "" +"Built for extensibility. (Multiple media types coming soon to the software," +" including video support!)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:34 +msgid "" +"Powered by people like you. (You can help us improve this" +" software!)" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:29 -msgid "Login failed!" -msgstr "Neuspešna prijava." - -#: mediagoblin/templates/mediagoblin/auth/login.html:34 -#: mediagoblin/templates/mediagoblin/auth/register.html:30 -#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/submit/start.html:32 -msgid "Submit" -msgstr "Pošlji" +msgid "Logging in failed!" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" @@ -194,6 +226,10 @@ msgstr "Ustvarite si ga." msgid "Create an account!" msgstr "Ustvarite račun." +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +msgid "Create" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format msgid "" @@ -221,6 +257,7 @@ msgid "Cancel" msgstr "Prekliči" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "Shrani spremembe" @@ -229,61 +266,78 @@ msgstr "Shrani spremembe" msgid "Editing %(username)s's profile" msgstr "Urejanje profila – %(username)s" -#: mediagoblin/templates/mediagoblin/listings/tag.html:29 +#: mediagoblin/templates/mediagoblin/listings/tag.html:31 msgid "Media tagged with:" msgstr "Vsebina označena z:" -#: mediagoblin/templates/mediagoblin/listings/tag.html:40 -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 -msgid "atom feed" -msgstr "Vir Atom" - #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" msgstr "Pošljite svojo vsebino" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#: mediagoblin/templates/mediagoblin/submit/start.html:29 +msgid "Submit" +msgstr "Pošlji" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 #, python-format msgid "%(username)s's media" msgstr "Vsebina uporabnika %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:30 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 msgid "Sorry, no such user found." msgstr "Oprostite, tega uporabnika ni bilo moč najti." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:37 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:57 -msgid "Verification needed" -msgstr "Potrebna je potrditev" +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 +msgid "Media processing panel" +msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:40 -msgid "Almost done! Your account still needs to be verified." -msgstr "Skoraj ste zaključili. Račun je potrebno le še potrditi." +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 +msgid "" +"You can track the state of media being processed for your gallery here." +msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:45 +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 +msgid "Media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 +msgid "No media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 +msgid "These uploads failed to process:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +msgid "Email verification needed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +msgid "Almost done! Your account still needs to be activated." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "V kratkem bi morali prejeti e-pošto z navodili, kako to storiti." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:49 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 msgid "In case it doesn't:" msgstr "Če je ne prejmete:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 msgid "Resend verification email" msgstr "Ponovno pošlji potrditveno e-pošto" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:60 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "" "Someone has registered an account with this username, but it still has to be" -" verified." +" activated." msgstr "" -"Nekdo je s tem uporabniškim imenom že registriral račun, vendar mora biti še" -" potrjen." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:66 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format msgid "" "If you are that person but you've lost your verification email, you can prijavite in jo ponovno pošljete." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:76 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 #, python-format msgid "%(username)s's profile" msgstr "Profil – %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:84 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +msgid "Here's a spot to tell others about yourself." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 msgid "Edit profile" msgstr "Uredi profil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:95 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +msgid "This user hasn't filled in their profile (yet)." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format msgid "View all of %(username)s's media" msgstr "Prikaži vso vsebino uporabnika %(username)s" +#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +msgid "" +"This is where your media will appear, but you don't seem to have added " +"anything yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +msgid "Add media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +msgid "There doesn't seem to be any media here yet..." +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 +msgid "feed icon" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 +msgid "Atom feed" +msgstr "" + +#: mediagoblin/user_pages/forms.py:24 +msgid "Comment" +msgstr "" + diff --git a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po index ec8611ee..ddb5d44b 100644 --- a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-08 22:53-0500\n" -"PO-Revision-Date: 2011-08-09 03:57+0000\n" +"POT-Creation-Date: 2011-08-24 20:20-0500\n" +"PO-Revision-Date: 2011-08-25 01:22+0000\n" "Last-Translator: cwebber \n" "Language-Team: Serbian (http://www.transifex.net/projects/p/mediagoblin/team/sr/)\n" "MIME-Version: 1.0\n" @@ -41,26 +41,30 @@ msgstr "" msgid "Sorry, registration is disabled on this instance." msgstr "" -#: mediagoblin/auth/views.py:55 +#: mediagoblin/auth/views.py:57 msgid "Sorry, a user with that name already exists." msgstr "" -#: mediagoblin/auth/views.py:152 +#: mediagoblin/auth/views.py:61 +msgid "Sorry, that email address has already been taken." +msgstr "" + +#: mediagoblin/auth/views.py:159 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "" -#: mediagoblin/auth/views.py:158 +#: mediagoblin/auth/views.py:165 msgid "The verification key or user id is incorrect" msgstr "" -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:186 #: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 msgid "Resent your verification email." msgstr "" -#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:26 +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "" @@ -84,97 +88,125 @@ msgstr "" msgid "Website" msgstr "" -#: mediagoblin/edit/forms.py:43 -msgid "Improperly formed URL" -msgstr "" - -#: mediagoblin/edit/views.py:54 +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "" -#: mediagoblin/edit/views.py:75 +#: mediagoblin/edit/views.py:94 msgid "You are editing another user's media. Proceed with caution." msgstr "" -#: mediagoblin/edit/views.py:96 +#: mediagoblin/edit/views.py:165 msgid "You are editing a user's profile. Proceed with caution." msgstr "" -#: mediagoblin/submit/forms.py:29 +#: mediagoblin/process_media/errors.py:44 +msgid "Invalid file given for media type." +msgstr "" + +#: mediagoblin/submit/forms.py:25 msgid "File" msgstr "" -#: mediagoblin/submit/views.py:45 +#: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "" -#: mediagoblin/submit/views.py:48 +#: mediagoblin/submit/views.py:50 msgid "The file doesn't seem to be an image!" msgstr "" -#: mediagoblin/submit/views.py:96 +#: mediagoblin/submit/views.py:122 msgid "Woohoo! Submitted!" msgstr "" +#: mediagoblin/templates/mediagoblin/404.html:21 +msgid "Oops!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:24 +msgid "There doesn't seem to be a page at this address. Sorry!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:26 +msgid "" +"If you're sure the address is correct, maybe the page you're looking for has" +" been moved or deleted." +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:32 +msgid "Image of 404 goblin stressing out" +msgstr "" + #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:45 -msgid "Mediagoblin logo" +#: mediagoblin/templates/mediagoblin/base.html:47 +msgid "MediaGoblin logo" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:51 +#: mediagoblin/templates/mediagoblin/base.html:52 msgid "Submit media" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:62 +#: mediagoblin/templates/mediagoblin/base.html:63 msgid "verify your email!" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:72 -msgid "Login" +#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +msgid "Log in" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:88 +#: mediagoblin/templates/mediagoblin/base.html:89 msgid "" "Powered by MediaGoblin, a GNU project" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:21 -msgid "Welcome to GNU MediaGoblin!" +#: mediagoblin/templates/mediagoblin/root.html:27 +msgid "Hi there, media lover! MediaGoblin is..." msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:26 -msgid "Submit an item" +#: mediagoblin/templates/mediagoblin/root.html:29 +msgid "The perfect place for your media!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:30 +msgid "" +"A place for people to collaborate and show off original and derived " +"creations!" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 -#, python-format -msgid "If you have an account, you can Login." -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:37 -#, python-format msgid "" -"If you don't have an account, please Register." +"Free, as in freedom. (We’re a GNU project, " +"after all.)" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -msgid "Log in" +#: mediagoblin/templates/mediagoblin/root.html:32 +msgid "" +"Aiming to make the world a better place through decentralization and " +"(eventually, coming soon!) federation!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:33 +msgid "" +"Built for extensibility. (Multiple media types coming soon to the software," +" including video support!)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:34 +msgid "" +"Powered by people like you. (You can help us improve this" +" software!)" msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:29 -msgid "Login failed!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/auth/login.html:34 -#: mediagoblin/templates/mediagoblin/auth/register.html:30 -#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/submit/start.html:32 -msgid "Submit" +msgid "Logging in failed!" msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:42 @@ -189,6 +221,10 @@ msgstr "" msgid "Create an account!" msgstr "" +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +msgid "Create" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format msgid "" @@ -210,6 +246,7 @@ msgid "Cancel" msgstr "" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "" @@ -218,77 +255,131 @@ msgstr "" msgid "Editing %(username)s's profile" msgstr "" -#: mediagoblin/templates/mediagoblin/listings/tag.html:29 +#: mediagoblin/templates/mediagoblin/listings/tag.html:31 msgid "Media tagged with:" msgstr "" -#: mediagoblin/templates/mediagoblin/listings/tag.html:40 -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:46 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 -msgid "atom feed" -msgstr "" - #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#: mediagoblin/templates/mediagoblin/submit/start.html:29 +msgid "Submit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 #, python-format msgid "%(username)s's media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:51 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:30 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 msgid "Sorry, no such user found." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:37 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:57 -msgid "Verification needed" +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 +msgid "Media processing panel" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:40 -msgid "Almost done! Your account still needs to be verified." +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 +msgid "" +"You can track the state of media being processed for your gallery here." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:45 +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 +msgid "Media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 +msgid "No media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 +msgid "These uploads failed to process:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +msgid "Email verification needed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +msgid "Almost done! Your account still needs to be activated." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:49 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 msgid "In case it doesn't:" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 msgid "Resend verification email" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:60 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "" "Someone has registered an account with this username, but it still has to be" -" verified." +" activated." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:66 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format msgid "" "If you are that person but you've lost your verification email, you can log in and resend it." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:76 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 #, python-format msgid "%(username)s's profile" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:84 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +msgid "Here's a spot to tell others about yourself." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 msgid "Edit profile" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:95 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +msgid "This user hasn't filled in their profile (yet)." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format msgid "View all of %(username)s's media" msgstr "" +#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +msgid "" +"This is where your media will appear, but you don't seem to have added " +"anything yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +msgid "Add media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +msgid "There doesn't seem to be any media here yet..." +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 +msgid "feed icon" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 +msgid "Atom feed" +msgstr "" + +#: mediagoblin/user_pages/forms.py:24 +msgid "Comment" +msgstr "" + diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po index 23605892..ede78f0d 100644 --- a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-13 19:47-0500\n" -"PO-Revision-Date: 2011-08-16 13:22+0000\n" -"Last-Translator: joar \n" +"POT-Creation-Date: 2011-08-24 20:20-0500\n" +"PO-Revision-Date: 2011-08-25 01:22+0000\n" +"Last-Translator: cwebber \n" "Language-Team: Swedish (http://www.transifex.net/projects/p/mediagoblin/team/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -91,59 +91,79 @@ msgstr "Presentation" msgid "Website" msgstr "Hemsida" -#: mediagoblin/edit/forms.py:43 -msgid "Improperly formed URL" -msgstr "Ogiltig URL" - -#: mediagoblin/edit/views.py:54 +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "Ett inlägg med det sökvägsnamnet existerar redan." -#: mediagoblin/edit/views.py:75 +#: mediagoblin/edit/views.py:94 msgid "You are editing another user's media. Proceed with caution." msgstr "Var försiktig, du redigerar någon annans inlägg." -#: mediagoblin/edit/views.py:96 +#: mediagoblin/edit/views.py:165 msgid "You are editing a user's profile. Proceed with caution." msgstr "Var försiktig, du redigerar en annan användares profil." +#: mediagoblin/process_media/errors.py:44 +msgid "Invalid file given for media type." +msgstr "" + #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "Fil" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "Du måste ange en fil" -#: mediagoblin/submit/views.py:49 +#: mediagoblin/submit/views.py:50 msgid "The file doesn't seem to be an image!" msgstr "Filen verkar inte vara en giltig bildfil!" -#: mediagoblin/submit/views.py:94 +#: mediagoblin/submit/views.py:122 msgid "Woohoo! Submitted!" msgstr "Tjohoo! Upladdat!" +#: mediagoblin/templates/mediagoblin/404.html:21 +msgid "Oops!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:24 +msgid "There doesn't seem to be a page at this address. Sorry!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:26 +msgid "" +"If you're sure the address is correct, maybe the page you're looking for has" +" been moved or deleted." +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:32 +msgid "Image of 404 goblin stressing out" +msgstr "" + #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" msgstr "GNU MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:45 -msgid "Mediagoblin logo" -msgstr "MediaGoblin logo" +#: mediagoblin/templates/mediagoblin/base.html:47 +msgid "MediaGoblin logo" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:51 +#: mediagoblin/templates/mediagoblin/base.html:52 msgid "Submit media" msgstr "Ladda upp" -#: mediagoblin/templates/mediagoblin/base.html:62 +#: mediagoblin/templates/mediagoblin/base.html:63 msgid "verify your email!" msgstr "Verifiera din e-postadress!" -#: mediagoblin/templates/mediagoblin/base.html:72 -msgid "Login" +#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +msgid "Log in" msgstr "Logga in" -#: mediagoblin/templates/mediagoblin/base.html:88 +#: mediagoblin/templates/mediagoblin/base.html:89 msgid "" "Powered by MediaGoblin, a GNU project" @@ -151,41 +171,48 @@ msgstr "" "Drivs av MediaGoblin, ett GNU-projekt" -#: mediagoblin/templates/mediagoblin/root.html:23 -msgid "Welcome to GNU MediaGoblin!" -msgstr "Välkommen till GNU MediaGoblin!" +#: mediagoblin/templates/mediagoblin/root.html:27 +msgid "Hi there, media lover! MediaGoblin is..." +msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Submit an item" -msgstr "Ladda upp" +#: mediagoblin/templates/mediagoblin/root.html:29 +msgid "The perfect place for your media!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:30 +msgid "" +"A place for people to collaborate and show off original and derived " +"creations!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:31 +msgid "" +"Free, as in freedom. (We’re a GNU project, " +"after all.)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:32 +msgid "" +"Aiming to make the world a better place through decentralization and " +"(eventually, coming soon!) federation!" +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:33 -#, python-format -msgid "If you have an account, you can Login." -msgstr "Har du ett konto? Logga in." - -#: mediagoblin/templates/mediagoblin/root.html:39 -#, python-format msgid "" -"If you don't have an account, please Register." +"Built for extensibility. (Multiple media types coming soon to the software," +" including video support!)" msgstr "" -"Har du inget konto? Registrera ett konto." -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -msgid "Log in" -msgstr "Logga in" +#: mediagoblin/templates/mediagoblin/root.html:34 +msgid "" +"Powered by people like you. (You can help us improve this" +" software!)" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:29 -msgid "Login failed!" -msgstr "Inloggning misslyckades!" - -#: mediagoblin/templates/mediagoblin/auth/login.html:34 -#: mediagoblin/templates/mediagoblin/auth/register.html:30 -#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/submit/start.html:29 -msgid "Submit" -msgstr "Skicka" +msgid "Logging in failed!" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" @@ -199,6 +226,10 @@ msgstr "Skapa ett!" msgid "Create an account!" msgstr "Skapa ett konto!" +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +msgid "Create" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format msgid "" @@ -225,6 +256,7 @@ msgid "Cancel" msgstr "Avbryt" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "Spara" @@ -237,34 +269,53 @@ msgstr "Redigerar %(username)ss profil" msgid "Media tagged with:" msgstr "Taggat med:" -#: mediagoblin/templates/mediagoblin/listings/tag.html:42 -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:48 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:104 -msgid "atom feed" -msgstr "atom-feed" - #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" msgstr "Ladda upp" +#: mediagoblin/templates/mediagoblin/submit/start.html:29 +msgid "Submit" +msgstr "Skicka" + #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 #, python-format msgid "%(username)s's media" msgstr "%(username)ss media" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 #: mediagoblin/templates/mediagoblin/user_pages/user.html:32 msgid "Sorry, no such user found." msgstr "Finns ingen sådan användare ännu." +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 +msgid "Media processing panel" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 +msgid "" +"You can track the state of media being processed for your gallery here." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 +msgid "Media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 +msgid "No media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 +msgid "These uploads failed to process:" +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/user.html:39 #: mediagoblin/templates/mediagoblin/user_pages/user.html:59 -msgid "Verification needed" -msgstr "Verifiering krävs" +msgid "Email verification needed" +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:42 -msgid "Almost done! Your account still needs to be verified." -msgstr "Nästan klart! Nu behöver du bara verifiera ditt konto." +msgid "Almost done! Your account still needs to be activated." +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" @@ -283,10 +334,8 @@ msgstr "Skicka ett nytt e-postmeddelande" #: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "" "Someone has registered an account with this username, but it still has to be" -" verified." +" activated." msgstr "" -"Det finns redan ett konto med det här användarnamnet, men det behöver " -"verifieras." #: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format @@ -303,15 +352,46 @@ msgstr "" msgid "%(username)s's profile" msgstr "%(username)ss profil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:86 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +msgid "Here's a spot to tell others about yourself." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 msgid "Edit profile" msgstr "Redigera profil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:98 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +msgid "This user hasn't filled in their profile (yet)." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format msgid "View all of %(username)s's media" msgstr "Se all media från %(username)s" +#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +msgid "" +"This is where your media will appear, but you don't seem to have added " +"anything yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +msgid "Add media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +msgid "There doesn't seem to be any media here yet..." +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 +msgid "feed icon" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 +msgid "Atom feed" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Kommentar" diff --git a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po index d8f8c98d..500b1946 100644 --- a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-13 19:47-0500\n" -"PO-Revision-Date: 2011-08-14 00:47+0000\n" +"POT-Creation-Date: 2011-08-24 20:20-0500\n" +"PO-Revision-Date: 2011-08-25 01:22+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -89,59 +89,79 @@ msgstr "自傳" msgid "Website" msgstr "網站" -#: mediagoblin/edit/forms.py:43 -msgid "Improperly formed URL" -msgstr "部正確的網址" - -#: mediagoblin/edit/views.py:54 +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "這個自訂字串已經被其他人用了" -#: mediagoblin/edit/views.py:75 +#: mediagoblin/edit/views.py:94 msgid "You are editing another user's media. Proceed with caution." msgstr "你正在編輯他人的媒體檔案. 請謹慎處理." -#: mediagoblin/edit/views.py:96 +#: mediagoblin/edit/views.py:165 msgid "You are editing a user's profile. Proceed with caution." msgstr "你正在編輯他人的檔案. 請謹慎處理." +#: mediagoblin/process_media/errors.py:44 +msgid "Invalid file given for media type." +msgstr "" + #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "檔案" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "你必須提供一個檔案" -#: mediagoblin/submit/views.py:49 +#: mediagoblin/submit/views.py:50 msgid "The file doesn't seem to be an image!" msgstr "檔案看起來不像是一個圖片喔!" -#: mediagoblin/submit/views.py:94 +#: mediagoblin/submit/views.py:122 msgid "Woohoo! Submitted!" msgstr "喔耶! 送出去了!" +#: mediagoblin/templates/mediagoblin/404.html:21 +msgid "Oops!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:24 +msgid "There doesn't seem to be a page at this address. Sorry!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:26 +msgid "" +"If you're sure the address is correct, maybe the page you're looking for has" +" been moved or deleted." +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:32 +msgid "Image of 404 goblin stressing out" +msgstr "" + #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" msgstr "GNU MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:45 -msgid "Mediagoblin logo" -msgstr "Mediagoblin 標誌" +#: mediagoblin/templates/mediagoblin/base.html:47 +msgid "MediaGoblin logo" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:51 +#: mediagoblin/templates/mediagoblin/base.html:52 msgid "Submit media" msgstr "送出媒體" -#: mediagoblin/templates/mediagoblin/base.html:62 +#: mediagoblin/templates/mediagoblin/base.html:63 msgid "verify your email!" msgstr "確認您的電子郵件!" -#: mediagoblin/templates/mediagoblin/base.html:72 -msgid "Login" +#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +msgid "Log in" msgstr "登入" -#: mediagoblin/templates/mediagoblin/base.html:88 +#: mediagoblin/templates/mediagoblin/base.html:89 msgid "" "Powered by MediaGoblin, a GNU project" @@ -149,40 +169,48 @@ msgstr "" "由 MediaGoblin 製作, 她是一個 GNU project" -#: mediagoblin/templates/mediagoblin/root.html:23 -msgid "Welcome to GNU MediaGoblin!" -msgstr "GNU MediaGoblin 歡迎您!" +#: mediagoblin/templates/mediagoblin/root.html:27 +msgid "Hi there, media lover! MediaGoblin is..." +msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Submit an item" -msgstr "送出一個項目" +#: mediagoblin/templates/mediagoblin/root.html:29 +msgid "The perfect place for your media!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:30 +msgid "" +"A place for people to collaborate and show off original and derived " +"creations!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:31 +msgid "" +"Free, as in freedom. (We’re a GNU project, " +"after all.)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:32 +msgid "" +"Aiming to make the world a better place through decentralization and " +"(eventually, coming soon!) federation!" +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:33 -#, python-format -msgid "If you have an account, you can Login." -msgstr "如果您有帳號了, 你可以直接 登入." - -#: mediagoblin/templates/mediagoblin/root.html:39 -#, python-format msgid "" -"If you don't have an account, please Register." -msgstr "如果您尚未取得帳號, 請 註冊." +"Built for extensibility. (Multiple media types coming soon to the software," +" including video support!)" +msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:26 -msgid "Log in" -msgstr "登入" +#: mediagoblin/templates/mediagoblin/root.html:34 +msgid "" +"Powered by people like you. (You can help us improve this" +" software!)" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:29 -msgid "Login failed!" -msgstr "登入錯誤" - -#: mediagoblin/templates/mediagoblin/auth/login.html:34 -#: mediagoblin/templates/mediagoblin/auth/register.html:30 -#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/submit/start.html:29 -msgid "Submit" -msgstr "送出" +msgid "Logging in failed!" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" @@ -196,6 +224,10 @@ msgstr "在這裡建立一個吧!" msgid "Create an account!" msgstr "建立一個帳號!" +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +msgid "Create" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format msgid "" @@ -222,6 +254,7 @@ msgid "Cancel" msgstr "取消" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "儲存變更" @@ -234,34 +267,53 @@ msgstr "編輯 %(username)s'的檔案中" msgid "Media tagged with:" msgstr "媒體被標籤為:" -#: mediagoblin/templates/mediagoblin/listings/tag.html:42 -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:48 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:104 -msgid "atom feed" -msgstr "atom feed" - #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" msgstr "送出你的媒體檔案" +#: mediagoblin/templates/mediagoblin/submit/start.html:29 +msgid "Submit" +msgstr "送出" + #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 #, python-format msgid "%(username)s's media" msgstr "%(username)s的媒體" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 #: mediagoblin/templates/mediagoblin/user_pages/user.html:32 msgid "Sorry, no such user found." msgstr "抱歉, 找不到這個使用者." +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 +msgid "Media processing panel" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 +msgid "" +"You can track the state of media being processed for your gallery here." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 +msgid "Media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 +msgid "No media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 +msgid "These uploads failed to process:" +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/user.html:39 #: mediagoblin/templates/mediagoblin/user_pages/user.html:59 -msgid "Verification needed" -msgstr "需要驗證" +msgid "Email verification needed" +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:42 -msgid "Almost done! Your account still needs to be verified." -msgstr "快要完成了! 你的帳號仍需要驗證." +msgid "Almost done! Your account still needs to be activated." +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" @@ -279,8 +331,8 @@ msgstr "重送認證郵件 " #: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "" "Someone has registered an account with this username, but it still has to be" -" verified." -msgstr "有人已經註冊了這個帳號, 但此帳號仍需要驗證." +" activated." +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format @@ -294,15 +346,46 @@ msgstr "如果你就是那個人, 但是遺失了認證信, 你可以 Date: Thu, 25 Aug 2011 07:41:07 -0500 Subject: [PATCH 0936/2731] 'GNU project' to 'GNU project' --- mediagoblin/templates/mediagoblin/root.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index 4ea3fe2a..086c99c4 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -28,7 +28,7 @@

        • {% trans %}The perfect place for your media!{% endtrans %}
        • {% trans %}A place for people to collaborate and show off original and derived creations!{% endtrans %}
        • -
        • {% trans %}Free, as in freedom. (We’re a GNU project, after all.){% endtrans %}
        • +
        • {% trans %}Free, as in freedom. (We’re a GNU project, after all.){% endtrans %}
        • {% trans %}Aiming to make the world a better place through decentralization and (eventually, coming soon!) federation!{% endtrans %}
        • {% trans %}Built for extensibility. (Multiple media types coming soon to the software, including video support!){% endtrans %}
        • {% trans %}Powered by people like you. (You can help us improve this software!){% endtrans %}
        • From 2bbee946bce7a198499f6a5bd3bfe9bad627b861 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 25 Aug 2011 07:41:42 -0500 Subject: [PATCH 0937/2731] Updating extracted translations --- mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po index cbc82003..3f5539c6 100644 --- a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-08-24 20:20-0500\n" +"POT-Creation-Date: 2011-08-25 07:41-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -182,7 +182,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 msgid "" -"Free, as in freedom. (We’re a GNU project," +"Free, as in freedom. (We’re a GNU project," " after all.)" msgstr "" From 7d6a9058ddb36798f59c7506703c53ba780f0b62 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 25 Aug 2011 07:43:31 -0500 Subject: [PATCH 0938/2731] Pulling down new translations --- .../i18n/ar/LC_MESSAGES/mediagoblin.mo | Bin 0 -> 8634 bytes .../i18n/ar/LC_MESSAGES/mediagoblin.po | 95 ++++++++++-------- .../i18n/de/LC_MESSAGES/mediagoblin.mo | Bin 5641 -> 8090 bytes .../i18n/de/LC_MESSAGES/mediagoblin.po | 6 +- .../i18n/eo/LC_MESSAGES/mediagoblin.mo | Bin 5561 -> 7946 bytes .../i18n/eo/LC_MESSAGES/mediagoblin.po | 24 +++-- .../i18n/es/LC_MESSAGES/mediagoblin.mo | Bin 5708 -> 8315 bytes .../i18n/es/LC_MESSAGES/mediagoblin.po | 65 +++++++----- .../i18n/fr/LC_MESSAGES/mediagoblin.mo | Bin 5983 -> 8263 bytes .../i18n/fr/LC_MESSAGES/mediagoblin.po | 6 +- .../i18n/ja/LC_MESSAGES/mediagoblin.mo | Bin 6281 -> 8482 bytes .../i18n/ja/LC_MESSAGES/mediagoblin.po | 6 +- .../i18n/nl/LC_MESSAGES/mediagoblin.mo | Bin 0 -> 7962 bytes .../i18n/nl/LC_MESSAGES/mediagoblin.po | 6 +- .../i18n/nn_NO/LC_MESSAGES/mediagoblin.mo | Bin 5217 -> 7739 bytes .../i18n/nn_NO/LC_MESSAGES/mediagoblin.po | 6 +- .../i18n/pt_BR/LC_MESSAGES/mediagoblin.mo | Bin 5414 -> 7906 bytes .../i18n/pt_BR/LC_MESSAGES/mediagoblin.po | 6 +- .../i18n/ro/LC_MESSAGES/mediagoblin.mo | Bin 5629 -> 8238 bytes .../i18n/ro/LC_MESSAGES/mediagoblin.po | 69 ++++++++----- .../i18n/ru/LC_MESSAGES/mediagoblin.mo | Bin 0 -> 8393 bytes .../i18n/ru/LC_MESSAGES/mediagoblin.po | 6 +- .../i18n/sl/LC_MESSAGES/mediagoblin.mo | Bin 5487 -> 8028 bytes .../i18n/sl/LC_MESSAGES/mediagoblin.po | 69 +++++++------ .../i18n/sr/LC_MESSAGES/mediagoblin.mo | Bin 5401 -> 7885 bytes .../i18n/sr/LC_MESSAGES/mediagoblin.po | 6 +- .../i18n/sv/LC_MESSAGES/mediagoblin.mo | Bin 5597 -> 8114 bytes .../i18n/sv/LC_MESSAGES/mediagoblin.po | 29 ++++-- .../i18n/zh_TW/LC_MESSAGES/mediagoblin.mo | Bin 5387 -> 7758 bytes .../i18n/zh_TW/LC_MESSAGES/mediagoblin.po | 6 +- 30 files changed, 237 insertions(+), 168 deletions(-) create mode 100644 mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mo create mode 100644 mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.mo create mode 100644 mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo diff --git a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mo new file mode 100644 index 0000000000000000000000000000000000000000..aa0cd03b0f71ea2023c1429abd64c40b84ce6033 GIT binary patch literal 8634 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 literal 0 HcmV?d00001 diff --git a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po index 4aff740e..201f2611 100644 --- a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po @@ -2,13 +2,15 @@ # Copyright (C) 2011 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # +# Majid Al-Dharrab , 2011. # , 2011. +# , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-24 20:20-0500\n" -"PO-Revision-Date: 2011-08-25 01:22+0000\n" +"POT-Creation-Date: 2011-08-25 07:41-0500\n" +"PO-Revision-Date: 2011-08-25 12:41+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -20,54 +22,55 @@ msgstr "" #: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:46 msgid "Username" -msgstr "" +msgstr "اسم المستخدم" #: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:50 msgid "Password" -msgstr "" +msgstr "كلمة المرور" #: mediagoblin/auth/forms.py:34 msgid "Passwords must match." -msgstr "" +msgstr "يجب أن تتطابق كلمتا المرور." #: mediagoblin/auth/forms.py:36 msgid "Confirm password" -msgstr "" +msgstr "تأكيد كلمة المرور" #: mediagoblin/auth/forms.py:39 msgid "Email address" -msgstr "" +msgstr "عنوان البريد الإلكتروني" #: mediagoblin/auth/views.py:40 msgid "Sorry, registration is disabled on this instance." -msgstr "" +msgstr "عفوًا، التسجيل غير متاح هنا." #: mediagoblin/auth/views.py:57 msgid "Sorry, a user with that name already exists." -msgstr "" +msgstr "عذرا، مستخدم بهذا الاسم موجود فعلا." #: mediagoblin/auth/views.py:61 msgid "Sorry, that email address has already been taken." -msgstr "" +msgstr "عفوًا، هذا العنوان البريدي مستخدم." #: mediagoblin/auth/views.py:159 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "" +"تم التحقق من بريدك الإلكتروني. يمكنك الآن الولوج، تحرير ملفك، وإرسال الصور!" #: mediagoblin/auth/views.py:165 msgid "The verification key or user id is incorrect" -msgstr "" +msgstr "مفتاح التحقق أو معرف المستخدم خاطئ" #: mediagoblin/auth/views.py:186 #: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 msgid "Resent your verification email." -msgstr "" +msgstr "أعيد إرسال رسالة التحقق." #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" -msgstr "" +msgstr "العنوان" #: mediagoblin/edit/forms.py:29 msgid "Slug" @@ -83,11 +86,11 @@ msgstr "الوسوم" #: mediagoblin/edit/forms.py:38 msgid "Bio" -msgstr "" +msgstr "السيرة" #: mediagoblin/edit/forms.py:41 msgid "Website" -msgstr "" +msgstr "الموقع الإلكتروني" #: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." @@ -115,7 +118,7 @@ msgstr "" #: mediagoblin/submit/views.py:50 msgid "The file doesn't seem to be an image!" -msgstr "" +msgstr "لا يبدو أن هذا الملف صورة!" #: mediagoblin/submit/views.py:122 msgid "Woohoo! Submitted!" @@ -145,7 +148,7 @@ msgstr "غنو ميدياغوبلن" #: mediagoblin/templates/mediagoblin/base.html:47 msgid "MediaGoblin logo" -msgstr "" +msgstr "شعار ميدياغوبلن" #: mediagoblin/templates/mediagoblin/base.html:52 msgid "Submit media" @@ -166,24 +169,26 @@ msgid "" "Powered by MediaGoblin, a GNU project" msgstr "" +"مدعوم بواسطة ميدياغوبلن، مشروع غنو" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." -msgstr "" +msgstr "مرحبا بكم يا محبوا الوسائط! ميدياغوبلن هو..." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "The perfect place for your media!" -msgstr "" +msgstr "المكان الأنسب لوسائطك!" #: mediagoblin/templates/mediagoblin/root.html:30 msgid "" "A place for people to collaborate and show off original and derived " "creations!" -msgstr "" +msgstr "مكان يجتمع فيه الناس ليتعاونوا ويعرضوا إبداعاتهم الأصلية والمقتبسة!" #: mediagoblin/templates/mediagoblin/root.html:31 msgid "" -"Free, as in freedom. (We’re a GNU project, " +"Free, as in freedom. (We’re a GNU project, " "after all.)" msgstr "" @@ -208,7 +213,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" -msgstr "" +msgstr "فشل الولوج!" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" @@ -224,7 +229,7 @@ msgstr "أنشئ حسابا!" #: mediagoblin/templates/mediagoblin/auth/register.html:30 msgid "Create" -msgstr "" +msgstr "أنشئ" #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format @@ -236,11 +241,17 @@ msgid "" "\n" "%(verification_url)s" msgstr "" +"أهلا %(username)s،\n" +"\n" +"لتفعيل حسابك في غنو ميدياغوبلن، افتح الرابط التالي\n" +"في متصفحك:\n" +"\n" +"%(verification_url)s" #: mediagoblin/templates/mediagoblin/edit/edit.html:29 #, python-format msgid "Editing %(media_title)s" -msgstr "" +msgstr "تعديل %(media_title)s" #: mediagoblin/templates/mediagoblin/edit/edit.html:36 msgid "Cancel" @@ -262,7 +273,7 @@ msgstr "الوسائط الموسومة بـ:" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" -msgstr "" +msgstr "انشر وسائطك" #: mediagoblin/templates/mediagoblin/submit/start.html:29 msgid "Submit" @@ -271,16 +282,16 @@ msgstr "أرسل" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 #, python-format msgid "%(username)s's media" -msgstr "" +msgstr "وسائط %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 #: mediagoblin/templates/mediagoblin/user_pages/user.html:32 msgid "Sorry, no such user found." -msgstr "" +msgstr "عذرا، لا يوجد مستخدم مماثل" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 msgid "Media processing panel" -msgstr "" +msgstr "لوحة معالجة الوسائط" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 msgid "" @@ -302,30 +313,30 @@ msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:39 #: mediagoblin/templates/mediagoblin/user_pages/user.html:59 msgid "Email verification needed" -msgstr "" +msgstr "يجب التحقق من البريد الإلكتروني" #: mediagoblin/templates/mediagoblin/user_pages/user.html:42 msgid "Almost done! Your account still needs to be activated." -msgstr "" +msgstr "انتهينا تقريبا! لا زال حسابك يحتاج إلى التفعيل." #: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" "An email should arrive in a few moments with instructions on how to do so." -msgstr "" +msgstr "ستصلك رسالة إلكترونية خلال لحظات بها التعليمات." #: mediagoblin/templates/mediagoblin/user_pages/user.html:51 msgid "In case it doesn't:" -msgstr "" +msgstr "إن لم تصل." #: mediagoblin/templates/mediagoblin/user_pages/user.html:54 msgid "Resend verification email" -msgstr "" +msgstr "أعد إرسال رسالة التحقق" #: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "" "Someone has registered an account with this username, but it still has to be" " activated." -msgstr "" +msgstr "سجّل أحدهم حسابًا بهذا الاسم، ولكننا بانتظار التفعيل حتى الآن." #: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format @@ -333,20 +344,22 @@ msgid "" "If you are that person but you've lost your verification email, you can log in and resend it." msgstr "" +"إن كنت أنت ذلك الشخص لكنك فقدت رسالة التحقق، يمكنك الولوج وإعادة إرسالها." #: mediagoblin/templates/mediagoblin/user_pages/user.html:78 #, python-format msgid "%(username)s's profile" -msgstr "" +msgstr "ملف %(username)s's" #: mediagoblin/templates/mediagoblin/user_pages/user.html:85 msgid "Here's a spot to tell others about yourself." -msgstr "" +msgstr "هذه زاوية لتخبر الآخرين فيها عن نفسك." #: mediagoblin/templates/mediagoblin/user_pages/user.html:90 #: mediagoblin/templates/mediagoblin/user_pages/user.html:108 msgid "Edit profile" -msgstr "" +msgstr "عدل الملف" #: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "This user hasn't filled in their profile (yet)." @@ -355,21 +368,21 @@ msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format msgid "View all of %(username)s's media" -msgstr "" +msgstr "اعرض كل وسائط %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/user.html:135 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." -msgstr "" +msgstr "هنا ستظهر وسائطك، ولكن يبدو أنك لم تضف شيئًا بعد." #: mediagoblin/templates/mediagoblin/user_pages/user.html:141 msgid "Add media" -msgstr "" +msgstr "أضف وسائط" #: mediagoblin/templates/mediagoblin/user_pages/user.html:147 msgid "There doesn't seem to be any media here yet..." -msgstr "" +msgstr "لا يبدو أنه يوجد أي وسائط هنا حتى الآن..." #: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 msgid "feed icon" diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo index 6bb69ce9bd9b38a4afc601b10d53fa76ef313738..47b243670d235777803a0726da947a7ac7e47569 100644 GIT binary patch literal 8090 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\n" "Language-Team: German (http://www.transifex.net/projects/p/mediagoblin/team/de/)\n" "MIME-Version: 1.0\n" @@ -192,7 +192,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 msgid "" -"Free, as in freedom. (We’re a GNU project, " +"Free, as in freedom. (We’re a GNU project, " "after all.)" msgstr "" diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo index 114ab7c0ebf4c33f53390840b0190e714907e557..72347f29bfe9092e5c5cbd32fc2b8a40690c4f9e 100644 GIT binary patch literal 7946 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\n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -30,7 +30,7 @@ msgstr "Pasvorto" #: mediagoblin/auth/forms.py:34 msgid "Passwords must match." -msgstr "Pasvortoj devas koincidi. " +msgstr "Pasvortoj devas esti egalaj." #: mediagoblin/auth/forms.py:36 msgid "Confirm password" @@ -103,7 +103,7 @@ msgstr "Vi priredaktas dosieron de alia uzanto. Agu singardeme." #: mediagoblin/edit/views.py:165 msgid "You are editing a user's profile. Proceed with caution." -msgstr "Vi redaktas profilon de uzanto. Agu singardeme." +msgstr "Vi redaktas profilon de alia uzanto. Agu singardeme." #: mediagoblin/process_media/errors.py:44 msgid "Invalid file given for media type." @@ -138,6 +138,8 @@ msgid "" "If you're sure the address is correct, maybe the page you're looking for has" " been moved or deleted." msgstr "" +"Se vi estas certa, ke la adreso estas ĝusta, eble la serĉata de vi paĝo " +"estis movita aŭ forigita." #: mediagoblin/templates/mediagoblin/404.html:32 msgid "Image of 404 goblin stressing out" @@ -149,7 +151,7 @@ msgstr "GNU MediaGoblin" #: mediagoblin/templates/mediagoblin/base.html:47 msgid "MediaGoblin logo" -msgstr "" +msgstr "Emblemo de MediaGoblin" #: mediagoblin/templates/mediagoblin/base.html:52 msgid "Submit media" @@ -170,8 +172,8 @@ msgid "" "Powered by MediaGoblin, a GNU project" msgstr "" -"Funkciigata per MediaGoblin, unu el " -"la projektoj de GNU" +"Funkcias per MediaGoblin, unu el la " +"projektoj de GNU" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." @@ -179,7 +181,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 msgid "The perfect place for your media!" -msgstr "" +msgstr "La perfekta loko por viaj aŭd-vid-dosieroj!" #: mediagoblin/templates/mediagoblin/root.html:30 msgid "" @@ -189,7 +191,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 msgid "" -"Free, as in freedom. (We’re a GNU project, " +"Free, as in freedom. (We’re a GNU project, " "after all.)" msgstr "" @@ -214,7 +216,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" -msgstr "" +msgstr "Ensaluto malsukcesis!" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" @@ -251,7 +253,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/edit/edit.html:29 #, python-format msgid "Editing %(media_title)s" -msgstr "Editing %(media_title)s" +msgstr "Priredaktado de %(media_title)s" #: mediagoblin/templates/mediagoblin/edit/edit.html:36 msgid "Cancel" diff --git a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo index dfd3a1bcc4775ce5f49a4adbf1ba9c481103fe50..f107ac622d0da9dd8b5412a3c1864bc42223ab22 100644 GIT binary patch literal 8315 zcmchcUyNMWUB@p_N?9nhDG*BA^sFn_yRb8BTS=O3Vh8_OI|kd`*xsb=1Le%zGcz~7 zbI;`d+4UHxP=lxnB|<`=B3`g453TA-A>x4ms??Pbswk=us6bI45E4&-A|4Pz2tMC) z?##}vH{=b=-tW$x^XK>H`}=qO?T6m-n+boO<==bx_xbPCr~N-`-<>2s!p9D{4qgPW zgEjcQ;2wAz{5tqJ_~ExE$xne3@Gr5B>%CF!*=iBjD@c+rf9dElJ)DJ_5c4d;;7C&wxJ&{sy=P z{vP-X;5Wb(@H#?H!CkNqz78&f+e=CEE-WXy4}+K}>4IFDJPQ6Wcm^DSH^IB$pMaA8Ln!%v@L5p$zQ_;h^GWb|@Fj2!{1zy? zyba|~fgfmb8xoz~kU6p!EDED0}`VsB_=>1IPfL1-sx5Xu#hG zZ-IXXiVyF>sM71FLFx4@XuywyxFq>GPGyfIkD?2E~`J zf!g=i;Jep8;P2#lyFwwBqtbP;$Hs>fC#v+K2f&9AN^(8U4@{A4fs!u;<^NBEP%Zf^D0x2z=HP4Kr@#{&)&ai=idTON;__sP z%Vd{#gC7Uq59<57pw@p0JP-aocoBRb!i$GJ5EmvHD0%LJ^2f{I2f@#QisP@e_-*hC zpZ^)} zt&W{tT>aF#JQHm9haJZ>1>_(qFPSQrRnV8Y@8KC9X7VNIdtUAt}pY{SkrTL?YJ&nT#riM z3`Zt)eOJ__&9l4VuyDhQ+u>nj^L)C7P~pVN`(k<33>?>omE4+-eN~&(7jD^n%r~X6 z{l0IC+EjIx=caHjtt3hhb^3L-gI;MjIae4rwplLq8c9}4ACncxIB>gW?8n?*ncb`& z@wBSThRx_{d|_k}PE5V2d^`&2r*UmPvRs`vLt}GnlTMAhlU1A~E7zl}GV&d}YCq;C zmnP>kpPX;9ybep;o!S*u*30s&o_38{xz^-$Cf@|7nR+^L)uKHli7Z_CLA`5Bw}!a= zyh-JOoh)?-*-R$Bte01l3%2OHJh|Y<(he*JSvfWnTU9tHO)kirt_8d>v*q&a5mq)M zSGwioqAyO=W@Iti{yH;t_0!2_n$>es>Vrf%z7pjBM4i<+v<-{m^CP*u8JuI&v~(4V z!>1iMH^};tBJwN7yCmXYDjjOuO70u*d+Ntsv+}(A$6x&I67kGDFh+Gf*;rp67ERZe z!((SJU*A?lNZ1!#zvhgA*a_#ls|jD4YYLRhzL#f3@(g+tJJwVaUk9r@_~o&E$wC(ZAsbR|?a&6>+Z&;wmV;!LuDQQEHS^&5*1BsW^2%{JP22pq2n#rJ)&+OI*5~1j6v3 z1Eu=$qW0PT15_!9!nm}y!y#fT&uqj;k#6WX^vQKns3>^o#E(RZ)QuhsesJ}bJTdYm6S`!NV9PK{hXAz7MijOk!vNS?DSx2&62lN*sx4^lIJ z^M=grCO4J2`XgI#dvcR}o!lhlhx`ViN;f2F2lFjtw@?h`Ib8L3Erbf}iN!`-e4y0a zgv*pL8xsFQkUR>IX9juU*I&{ zx*S%KQwGHHLbDOlNjNL62;~x&Q&0$YH=fkfu=9XhZ@a02TRGJbooG&-i)liO$qGkF z64M5mEtsZNziWam!{u+Vub8%h7fz`Qa-vXFZ6F1OA|5%s z-*R@%meL%;gwW{QMmGr?@ut?| z1hpFE5HpeSWM%bqChPkm35QMNju3vN?AT~@uB4skD76@C<8U9abi=7z>s+gbS=u?@ z46Dv9zhTKiF_Y)`ivvk!~b>~)Tiz>IZFE>n| zW~4_zKGpv6lPLvg+RuHHs<518M=@+j1)W>YjyKFrN?%ru%*q8$qQ$kvs#$4O+uhym z;&htdfxB~1x5)wRYK~f`W~?r4`qk4c3~(~mWa2d)u0yUG}zCKF=Aw3z@T1gB8s-*sc_JoiGEW4!Z5# zw}w!cC1}o?!qfPKd5vFCik&JBVPayP5KZ#x=E@ znAqvJrfO`NY0x_`vTZS@Su7M5BCG1sYl`YkuVke7Xt3Z2F|08NQv>_Abd;Rc<)|? zgL~A;dhdSn3}Jb|9A+(YBu;;2a9!Z_;ml7t=|MViDH}F;2*POagX6fnpkWt%xu&V2oixxz-ObGms*}fHeTWF0%PeS--jzxW z!c;jcaPQ6i$Hs;keKEg>^I*4`E9<#&3!xW5xTtKqAu~4Gb9Anr*{6^dvzgu%SFg4 zrjC_|U`<=K+UTu)O4+7tGFT3py)U#yR)KI;)Gg|a*QmVDnb$v3Uwg!%!w>Dyq{=%% z6;u(6;DYO#l4e!&!1=`EY<`V79s}>)L*8m+!z<6QUAmCN+M0goLbA_7B0$rl{D2;a z6hfb(9Rhwcq!&V4Sw=dwF~ozpf9B8HXsW26n>iy;C_geD)t;(^%1ol9m@wuN$1IA4 zfWtT|1z^s6->mtXDS9o3jyZ&tRjVmx=QM1@I}*l@3n=4gF*K0wR~;O zJQwAzu|tT{rnl(1xfGINPB^pD3b!g*AOY!tx91@&LFeLBYubW&i*k%E<9SNH- zm+9n?vG?^x-o+M&A(kq|u&cMRkYqMHLl^NY^~((4v6hP8nx8|@L{voy7DBWggeiqG z2NrY8(ZSQ?ayv2$9$iue8yb7DB#YYlVSN^A_Eh~9o2YSmjvAc{T z%HhfsIWUt=^*~-G_lM#aPHqE6?~@kjrjw5f)>)*^s83dcnCC|PA5?sMjO zp6BWyTZj^sR&)?594IWvz#zov4|}2gWeL6gQU4_U5kXmq5G6#=_jm6d8%i|p?&mx& z=jHc1zjOcIdNV$8YiZGWhQCetug8DUe7c(b`)vVZHMsm8u7yQKjCI3D;BI)daD5Hp z6?PjI!#l77{t1`DMGN!Sb+8WC?XZ-w3APiBTHF|h4e%LQ248~c%ie(Ha1x$`SKv5o z$1Ho{+pr)00jpupBF2`%J&+b6AiA(Lq;Wk+3wjn-V1D*08YQ@K5z+vcVH$n{SHLzr zY=r#~D`umR7N+3=7{ECE0#ao6U>95#$uD34F2VH>r2dB>WhM=aFh3hdqXj+(DHBtW z2D}bw<-b6T$?iak>>lK>^dY1bu7Oe54Joq6VGm5eN8tsy9DWZE!@Ceeuzib>f9miQ z8b8ltECcDqCy=KNFavwx6x{a!byk^dke)iZFz2@EoK8K7dq= zpF*18M>qiQ!Xem$3T}p{A!YC#Nd00s!yLBLS#D_yeQ7+Ak*jU*!cDfXxV<&0r#ttl_O`c38VyupKlOFx*tMEOxXEuFNE@!^m=q4Wa510_AlkA;$BwLD)Fj!1|O zHsW!)CWD0WgdCN&vntpzTPMQIR0=v`Fzp2f`JaAYuTcA;m(Qs}%3Pd_Q6sqP+p^jX&BKa^ zsIdg1#z)YYzV-y_Q5v0pWG~is*W_Os3$YvANakZ?1I-e$g zPFNUE8`M))oB02f`1BP&Fw&Pa9`9fnFrW0<9AU8BI+UjzB}xqT!bgVeN0GX@rH?|V zEK%7DRJNmykxn4kK(6>TJ)@2EbRTUFJu<$W+Z=Gw4O8S^&ClT>2G`XLk7yI6rxKc4 z+(q34>R3%E1M%SLurIH;VBf7fY$MSIoLFR#PPP%~JR4SS92B1&h&H$WN1^Es98kpT z1uCQcxP2{J7vbZW`vk_bm!mE7T>DkDcCmD4=Fs-9XlwOAZo?2d?HlIIpTBf{r+urw z#onrqRw}`UP=qf1E+I3nuq7*7Yh9E;C=617`k2k3)eQ|*_&Ib$zBG|N6pvBDzSyv# zwI7Ehn@^2+;H, 2011. # , 2011. # , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-24 20:20-0500\n" -"PO-Revision-Date: 2011-08-25 01:22+0000\n" +"POT-Creation-Date: 2011-08-25 07:41-0500\n" +"PO-Revision-Date: 2011-08-25 12:41+0000\n" "Last-Translator: cwebber \n" "Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mediagoblin/team/es/)\n" "MIME-Version: 1.0\n" @@ -108,7 +109,7 @@ msgstr "Usted está editando un perfil de usuario. Proceder con precaución." #: mediagoblin/process_media/errors.py:44 msgid "Invalid file given for media type." -msgstr "" +msgstr "Archivo inálido para el formato seleccionado." #: mediagoblin/submit/forms.py:25 msgid "File" @@ -128,21 +129,23 @@ msgstr "¡Woohoo! ¡Enviado!" #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" -msgstr "" +msgstr "Ups!" #: mediagoblin/templates/mediagoblin/404.html:24 msgid "There doesn't seem to be a page at this address. Sorry!" -msgstr "" +msgstr "Parece no haber una página en esta dirección. ¡Lo siento!" #: mediagoblin/templates/mediagoblin/404.html:26 msgid "" "If you're sure the address is correct, maybe the page you're looking for has" " been moved or deleted." msgstr "" +"Si estas seguro que la dirección es correcta, puede ser que la pagina halla " +"sido movida o borrada." #: mediagoblin/templates/mediagoblin/404.html:32 msgid "Image of 404 goblin stressing out" -msgstr "" +msgstr "404 el goblin esta estresado" #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" @@ -150,7 +153,7 @@ msgstr "GNU MediaGoblin" #: mediagoblin/templates/mediagoblin/base.html:47 msgid "MediaGoblin logo" -msgstr "" +msgstr "Logo de MediaGoblin" #: mediagoblin/templates/mediagoblin/base.html:52 msgid "Submit media" @@ -176,21 +179,22 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." -msgstr "" +msgstr "Hola, amante de los medios de comunicación! MediaGoblin es ..." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "The perfect place for your media!" -msgstr "" +msgstr "El lugar ideal para tus cosas!" #: mediagoblin/templates/mediagoblin/root.html:30 msgid "" "A place for people to collaborate and show off original and derived " "creations!" msgstr "" +"Un lugar para colaborar y exhibir tus creaciones orignales y derivadas" #: mediagoblin/templates/mediagoblin/root.html:31 msgid "" -"Free, as in freedom. (We’re a GNU project, " +"Free, as in freedom. (We’re a GNU project, " "after all.)" msgstr "" @@ -199,12 +203,16 @@ msgid "" "Aiming to make the world a better place through decentralization and " "(eventually, coming soon!) federation!" msgstr "" +"Queriendo hacer del mundo un mejor lugar a través de la descentralización y " +"(eventualmente!) la federalización!" #: mediagoblin/templates/mediagoblin/root.html:33 msgid "" "Built for extensibility. (Multiple media types coming soon to the software," " including video support!)" msgstr "" +"Pensado para la ser extensible. (Prontamente soporte para multiples " +"formatos, incluyendo video!)" #: mediagoblin/templates/mediagoblin/root.html:34 msgid "" @@ -212,10 +220,13 @@ msgid "" "href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this" " software!)" msgstr "" +"Impulsado por gente como vos. ( Vos podés ayudarnos a " +"mejorar este programa)" #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" -msgstr "" +msgstr "Fallo el inicio de sesión!" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" @@ -231,7 +242,7 @@ msgstr "¡Crea una cuenta!" #: mediagoblin/templates/mediagoblin/auth/register.html:30 msgid "Create" -msgstr "" +msgstr "Crear" #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format @@ -289,33 +300,35 @@ msgstr "Lo sentimos, no se ha encontrado ese usuario." #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 msgid "Media processing panel" -msgstr "" +msgstr "Panel de procesamiento de contenido" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 msgid "" "You can track the state of media being processed for your gallery here." msgstr "" +"Puedes hacer un seguimiento del estado de tu contenido siendo procesado " +"aquí." #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 msgid "Media in-processing" -msgstr "" +msgstr "Contenido siendo procesado" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 msgid "No media in-processing" -msgstr "" +msgstr "No hay contenido siendo procesado." #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 msgid "These uploads failed to process:" -msgstr "" +msgstr "Estos archivos no pudieron ser procesados:" #: mediagoblin/templates/mediagoblin/user_pages/user.html:39 #: mediagoblin/templates/mediagoblin/user_pages/user.html:59 msgid "Email verification needed" -msgstr "" +msgstr "Correo electrónico de verificación necesario" #: mediagoblin/templates/mediagoblin/user_pages/user.html:42 msgid "Almost done! Your account still needs to be activated." -msgstr "" +msgstr "Casi terminas! Solo falta activar la cuenta." #: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" @@ -337,6 +350,8 @@ msgid "" "Someone has registered an account with this username, but it still has to be" " activated." msgstr "" +"Alguien ya registró una cuenta con ese nombre de usuario, pero todavía no " +"fué activada." #: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format @@ -354,7 +369,7 @@ msgstr "Perfil de %(username)s's" #: mediagoblin/templates/mediagoblin/user_pages/user.html:85 msgid "Here's a spot to tell others about yourself." -msgstr "" +msgstr "Aquí hay un lugar para que le cuentes a los demás sobre tí" #: mediagoblin/templates/mediagoblin/user_pages/user.html:90 #: mediagoblin/templates/mediagoblin/user_pages/user.html:108 @@ -363,7 +378,7 @@ msgstr "Editar perfil" #: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "This user hasn't filled in their profile (yet)." -msgstr "" +msgstr "Este usuario (todavia) no ha completado su perfil." #: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format @@ -375,22 +390,24 @@ msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" +"Aquí es donde tú contenido estará, pero parece que no haz agregado contenido" +" todavia." #: mediagoblin/templates/mediagoblin/user_pages/user.html:141 msgid "Add media" -msgstr "" +msgstr "Añadir contenido" #: mediagoblin/templates/mediagoblin/user_pages/user.html:147 msgid "There doesn't seem to be any media here yet..." -msgstr "" +msgstr "Parece que no hay ningún contenido aquí todavia..." #: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 msgid "feed icon" -msgstr "" +msgstr "ícono feed" #: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 msgid "Atom feed" -msgstr "" +msgstr "Atom feed" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" diff --git a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo index f88547344412fe8a48365c3c9005d92d53b4ac43..871d2a426668e6d04befbf2decbe4a3257451aa0 100644 GIT binary patch literal 8263 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 GQU3unRvtwF delta 2098 zcmaLW+iz4w9Ki8GpcmUxdZDFImT4obLM^n#R?4NNBw*ztQcBVXC5PSF_Tbrb%DJ>4 zk{XSmfRSXPM8#MX)I}e>KunAw#*INVY7C-0d3*5>(BOlY_?_J?7);#kp3lrVXJ&r$ z`^{eL{h@W@`|26b3O+sj8u``UVtO||D)9IJZ6ru<# zu^8)cHpZ|TmlgVbI8TTPF+ii72QJp*0gR!>3VautTYQ9-_z51wE4UvASZynQfqmG> zs&jA`)?kDtpr?=_;y9XlpTla_7pG~M2;avN{1nXuU*ib=f(^KhhYN8Jnt+d>3G4*! z#FN;9zal#mvQ&sRTvafQCXknL7QTk%tS`>fFadmwX2Q$32(O~a$lqutuDdnAgZ0Q7 zq94r;x1+=q6010j^YIxpDSs2Y@B*&FYd9C%%gFzOG&a#-4RIFDfOGi9G$Agcsr@MV zYRALaiyz`KZz!Q(*@r`leu$f=KZqZPiW@-Z5H`A56UR4No@=l<67h$ zq0meiB46O(a1UBU%;6-|b(Rgr&_!bYMn zFD}P8u0ahuBF*XDf&?!H&>T|5#q8t&nt)EB$>doyXXi5ZQN|9@Y-UNUo&?k-wdG^TtzWoxJCiRpc|r&V!W>*Axe8*E33javuh z7L~NEjoxm@cJ)^!6MDS#(Ooj>x$#hrSYt|BuCx*fFLJ{cIqE1YP*Se8m`(?`W z(<&(kw{I5xu1uKK?2vF&KtSDsLDF^&Q&*X?*h#WUqjs^qeyH;9>ow-CN ztkCvc=_-{}Nj+4#be?h&URue}lQ*TaNk3M3Oz)f>mRg~gmMMnl%d=l9Y3q<}E4x>8 z>3vnQq^(o7b#%A4>&dG6`FlLem#ahHasxZ1_VtciZgRKh54Q&Dy>F{ZruD3kt00u4 zz6$n6N~UbrmQAwXkz-yIkclXi%1wB_l4IG7DZBD{6w)We(NO8DHLurj3dB0sjU45R z^xmm^)Eg&VCR=|;~b5L<){_NB%9?FjH}%;Z8^CElFcaX&Fx${ z5Vw;=pWCPCFEsN75}U6-D^$#q*-T=@i?SKnq^ld^HReQ^=>Po(NHv_%hvqqh_eaXv z8^sC6k_kVXVbJx!WOh;}lytpx3lZ6Ybfz*ONlPv#g(74#Ap;Ag$Y%6C^Iy?}6&<>{ zv936k&$M3BIHb=sx?0BO*5+$gh}TzpBRf#KGq!wTpRL?6@^3z7Y)8c|>TqFZ Zu@mi+>o{xTM)?B{t5wLMx|4Vv@eeL&*Z2Sc diff --git a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po index 81151d94..91da5fc7 100644 --- a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-24 20:20-0500\n" -"PO-Revision-Date: 2011-08-25 01:22+0000\n" +"POT-Creation-Date: 2011-08-25 07:41-0500\n" +"PO-Revision-Date: 2011-08-25 12:41+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -194,7 +194,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 msgid "" -"Free, as in freedom. (We’re a GNU project, " +"Free, as in freedom. (We’re a GNU project, " "after all.)" msgstr "" diff --git a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo index 78455ad2709820cd5393594c99bde44e5980926d..0e0e240def4337105d270359dc1b2966e5803938 100644 GIT binary patch literal 8482 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 V>-PSapeJ3YgYT%dXC-;#KLPLDos$3n delta 2071 zcmaLWe@xV690%}+RDS3YaQxO2A4o#e!V`-n{zzOIsbr{_Ym>fl-#fl_cVD|ZMAi(x z-&1}lr1eb6O;eF!;bJHl1{bzAlYd$>X7x|?$HNKCwc1*4{ZZ@vInL2&b%T37&pr1% zpC8ZnI!jya4L@4vo@97!#J>&yX%EqC=4F}7SO%tvun;bVPr_aB1$Z<%zXRuBzF;0> zu`mh7!3>xTbD$L#M(3q)A!7|}Ck7TQcwr`d3+6xp6X8{ev)Sh`3EqT<;2l^GcOqIj z{0f#r8=|JeDwqmuAtlrbv4x$0bnYo=MSRwU0cAJ{F*_`Y>VcHVIruQ_h8DzU*D#<2zJPS#7|e&?L+Z$1kPgn6 zKV89Qh#0I4QiT=rD*+>3tE^KlA33%`XgK^w~0L+g+_@+G7z8iSOGgcRr=q=e>TkF&k9=;t&hbmOE#AEZeicso`*aNChb85mJdt^?jrVBN$ zK!~_wY0qhHm2D~C&9|!#P1&Nq=GMI8>-Yvym(W+|xL`BazY52(JXTAzElKW{@tbiS@o+3*A_bMkt~z(8zVa7YwePCw|+cb1Vjl&S?(k7!RU z7k?&}=4t`-Xt!VWc@>Y!DkF`oRsx#tg_^~wmBIWk8|D1%ouG~G@fu4$G*=u4W zUmFl_XAg?Lg|F7ap@mvM{i-e=m!NKmS$vcBl?Ge z&rjbGDi?j(HgRjw(*EW}_L%v&O58}344xM^ZTaH1?L|?#_+@b^hg&8(hbDX4!#9ph zb{nGInkjzB$\n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -185,7 +185,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 msgid "" -"Free, as in freedom. (We’re a GNU project, " +"Free, as in freedom. (We’re a GNU project, " "after all.)" msgstr "" diff --git a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.mo new file mode 100644 index 0000000000000000000000000000000000000000..931d51b903a4dc8597314597d0606e5ab1b4cd42 GIT binary patch literal 7962 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\n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -190,7 +190,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 msgid "" -"Free, as in freedom. (We’re a GNU project, " +"Free, as in freedom. (We’re a GNU project, " "after all.)" msgstr "" diff --git a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mo index 8911785ff9b8003d2146b82adccd80693b97cafc..8bdb4a923480f00546edc89b0cc6c27b88966321 100644 GIT binary patch literal 7739 zcmd^@Ym8h~9l(zYh$|?d0*d09CAGV8XLef)l%=h-bo;>VgYLEs#MqpfduHbD+_`7G z_s%W@!H{6oNF*xJX!L`L5)(rVkPu9KgoH%YDEdL8M#Bdm;hRaLU)1>c{m;3xGwqfJ z#RmzSc7Ho}&h!8N-{-El;4_M!+xh=?{(t4w@@e!lbD>gK^05kM;a+$c7VvfOY1n~3 zf;YgME>h|?*n`)@Z$cS&8ombp6*l2NApcbJwMy|%b@_D}>_d6}5qJgsMEU$n@NIm4 z3|<0%2(N;_gxA8;@KSi$#Y(*uUJEaP+u?Dz6TT5X1ZUuv;l1!Da0(vgkOQ~|8}Kx& zz~d82y-A+KN%#Pi^L-u4`JO1h{~i=M{knYqM=1BX==I_GRS*%W8e~hg4Za2Lgl)J4 z?}p!ka{e2+cCr|eE$d(z5W)89bWS0Fm4YNc`U*vyaS4yo`Q1TXCPNoKQ5m?SAPCIl>7Y&vZVSO zlyxpgiQeAeb$s3q5utj2`FsV6-G3M!haZDnT|Eay&VPUzyawZu^F9a*_#_lNoZ-@< zpHIST;Nwv2@L4G5ISmnk`U{kEU5YT7swz;hXXDr{`CNqd0&HazenLo_#G&AcO^zB`yPNAo`UlHJ}CC~IF$1~S@J1}sjKh9 z8vGfQdtSgL<$mvi?|}#5jqqM5G--aTG zXP~V23wRT}>>a@lZ-b~*eH!-QSE0aG}X^-mYS}e&Nt_}m$_z~Shd6G zc4nJ9C&Txr`dKoaPwpBYy<^twVn)|Su~EBqFEI_Pn=aEm>w1aRh0_g}B&O~%Q&?@% zNat<0rd_kCT^6_E)Fl3CWV3kHM!Jz%Q^YRKD{6NX4Hu5PaoUo_x~9XTZL8N@mPFd< zx-AOJc7Efcow`;kKhvhsaQ(EUkYdqp+1JJq&p;zX|3my>03A04Nh zv1!+I*LB%F*K2Xn=4oDJeI|2H?NTigVa3Sl+=Zn${UD4j+J>!@eoLDK*+c_v?}~F) z5-At$IM<>(W)-f>PBv0|VyE`>|KRT^SB--aWSZAJ$0y`6tU>WD@_-Jp3TSQ zAtwnO3)&v|$rMSV^Fj$F5O{P43!%__%n49CpPv3f5?fbz*b1X~mcNkT}YIS5M+p9pK*h zj?sC~6<+EV`*O%W<7wUX3q8R8a+@@3>OjnmM>m_9m_SWK`}5=US?dpFJ)>REre38@ zT+ywGl#U-;k#1SQiv4;6X_bQ9&$9CZjNQFx3r{r9K^K6w!6lsa6x8NQke09e=JGJ{Iik-#|nc}iQ0{Jn9?Mjk+RCK z!qGzd6IY4i+|;o>NlgB1lC31pug~zF9kSif#pIyF{N$adAW^5x=-0b(Q6iY$@WX(> z=+V1f3DM~}F6+eoY(!`g?iVYu5{90jzPnW2igo3l%Zm$^l znP;fAV+Z2g5>qwa$<4`gAxy|%qQbdO62b`psWpUOFfp&#z2clW55{ z#EO0|afX^AxV&7sbnSTt$g!vz!Yql_{+ei=RAG8OYqDT6h(KxW#CC$ z&ttOwN$1+mRdlcc0%%2vD@tx41omf-9ys>LlWb(jc0oWX}fMoJxo1B$)+FS4@u z8+Qlq2EpPe5T%qPkPdW8tw$)1(-|*?uu~~A2xi)-MlWNXPwWrrgK<+ua??kmZM1N zlFxeKgqS`X=Xu}e6Gx9MSA9vxKGnSlab9no+p?uPx4pXcdOdgJ{5Jl+er}F|)nj%w zmh)^Jw`D8i-aW_9#G=WI>T+h%JTZmK=5>Q&q>e-GDF3)6A^{B=iR(v_SavZZZS@HS z)n#kC^EypW9X_IWEH2)X#9_eEq)*{r-RH7y&i6h4G2glMX5xi>vvVrdm7RLa^u(cq zhZaUs+ftjGpnj!T=0w!Q^SYpPo~5yf)0-u*Q-~Ei`$e<5eKbx^-n3bDfyf~R^1R+& zkBf=@HkE$DBJRPw-ec-E(Q~z%YBx-r(Q0YRhSJ&8dR9AsujQwB&4}$~ujrO*0qJ4d zQlR+gB|TLqUva6)bZ3R+!2{FDYifaf8mDPuTP;5{vMFtc@vVTRe<-N$sJJB0Nnpd< zW88YwP#yJUW?^LQ|5azTd$pboq@xO*)&3Ri()h+|tgl)$Elu#!9qg9IvHVz32arJ2 z=guwe<-eqfN~4Sgd}ybbiQ*Rb%r>-9WW56pHt!AJ(Qr^N*Vc0f+Bia{qLKNXtPm zNsV$M+nUiGau>=R3lKhijCDjUDd$5|B)N;THTjR)q&X@yrN_ukL~l(?b(ywutR6pk z*|bh_;wCLHg_p%)JDg4D{K{Tz3nh(H`jVTdtYZ@@E5o*jM&0_0Y@ftArF()#chQ2k z5NTg(YOlNz;uXm1NSEhsVJ3HtZ5-MsO9)%HfO6Iu4V3hU`HJln|L+cJNg8qqN<*_# z<4?xT&l{zWS{d&S$D{Fot#y)=;p1VM2gJ|nWDO%PKXLOjlR$*h_L-FC!w1qFHI}0Z zpwiC~K>12M6<^}bfLX2SBUx@b|5mGn;0WR5AlK`S{y1dU4N_iC8L=qNTl&Y)!U$=t zK|)a1yy)X)1=WFXFXRQxd77m&q>gP$tO<_i?Uq-HYH2KBqyv0|VdA7&DT?aBz10x> zL=H_`Zu|mm&?~cjqQFpl*3C>Ut)MpPpnM_68%92!kzfzlxNCEI40T&*p^o&ZL-C!8 zIw3-KRQhBek^_l>S2ATT7q7!y(P6OhQF&SW7v~l01yksI{uBMvUiu$zuE~laKuGgM zX*O0$kbz@fR@e6Pl9@=-T6 OH0+QZLp38uQ2zw(OhI@6 delta 2033 zcmajeZ)lZO9Ki8oO`W;9&CSi-ZFM%YX1eL7^Us=^*ZD8pFm)pgif6m$-uvu6f3DAc z?(9Oki1I~Pfv3PINuq=zgODgHs8=CG7z7o)5Cq>uh6EM9Df<5I?kw^}mwWH$Ip>}~ zzw5{&`)$Q>kW}zu;P|s#0nIH{ioKRcU{S3{gMh z0=$9s_y;b)t~Q zf5TI@xHJm*pF z`dy6h6O6Hk&K>wB%E_)Fv8s0RC@1em*>Jex2sY3jN7*=wyj77e$=FGhgT7c#{-=02 zPlrrs;7f{d1xo6ZC;{%pF&xJ}d=KScaRoL0j#3lNq*DTEt9Wn49+ZGLVlO7K3y(_v zCB-kJr1BDSJ?b*Druq>zUPrmJTJqU}Ehr}%K*`8%+=3^t2|va>evLA38=X=Ed*#QK z-Nk~50>?M2?B@Af?S;nG3#Luvrd{hTc&;t!hH9r1Od3z^41=^A`8w|u3dh1IWlt?U z-L%{FjM_6grbkT5b@qf4o*UT9)id_kqNlSu6$bamI_pdu?F8DHoD7RWyhi6e;}ne6 zLypcyCcU+5Wp`vUZXq_&6UE3|Rp{Dwu+kn{>ul>)`_j4;7H?ljIwzgLe$(7Kvp>wZ zL1nm~kHWl(ypm3bk#ACZ?BIU2FJLU&x-oH?0+9_WCTTYi=Du~>;Yg`YRX&i8olJ)L z$J{tOINOyepHX{ZCR7J1so=qGUwqtds(E!TdEeK}G!-X&H&%zrNCMp0`1Xa`QTu0Y zvd)dk+*l>|YTO=O)@YB^J&-WoWat|mhx$Kh?X=I-owDQg@ggSU5K4jngNc^u}sJ~*0EO`ovs6sDVQL33R7XAc1%x1 zrC9BmlAdyTNOfFmI@w5d+*TZk=GcDJTs*YbiFB$+_A|1-tiS#L3nDU1GMU+HuB>3( zx%pBDt=y&DX{8j#G9`}*QULaYmW~~Bzsi-Dhfx**cgg){NU7^Na`REncuqd=M3p~6?2aKy8=Vq`;x)A)8cHd z=dw%$wkhG;i-~6YMPk_A*Y;?a8^`?flDAe-hs)RV?!UXG$+Mc2E%Y`$!N S)}HP-SuUHNa@lm=o%kExDY(P{ diff --git a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po index 2e9ad8a2..f4c97b12 100644 --- a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-24 20:20-0500\n" -"PO-Revision-Date: 2011-08-25 01:22+0000\n" +"POT-Creation-Date: 2011-08-25 07:41-0500\n" +"PO-Revision-Date: 2011-08-25 12:41+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -187,7 +187,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 msgid "" -"Free, as in freedom. (We’re a GNU project, " +"Free, as in freedom. (We’re a GNU project, " "after all.)" msgstr "" diff --git a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo index 4dc4ab5f772ebae42247eb44feec1c54b2d3d495..b2e1161ef69ee59bdbdcd91fe6b4c197a7d2d028 100644 GIT binary patch literal 7906 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\n" "Language-Team: Portuguese (Brazilian) (http://www.transifex.net/projects/p/mediagoblin/team/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -187,7 +187,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 msgid "" -"Free, as in freedom. (We’re a GNU project, " +"Free, as in freedom. (We’re a GNU project, " "after all.)" msgstr "" diff --git a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo index 361846d4d930e4d83983757e96d7170cdb4863fc..23d205cf7e508d92aaca24c8ee2a5e56a11419c9 100644 GIT binary patch literal 8238 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 delta 2091 zcmaLXTWnNC7zgk{OWT!}UMTcRnQc;A(w3HDDQ*kWBDba#Yy|`o$@HAr-GQ^`Y|fdp zrBPg=5d(s^i3vn8JX8~6w`X9qh@E=G4HsM&bfl)}A+YRYtX-HRg2vYplAb!|19(2I- zkT!f}KJrf!u3>-z-Gnre9(2d$a2g(iJ7FhY-U?rYRFqdCrTjODJ+Vkd&T2^G&5$;_ z7UC5)1ZkZ;unAff$p3ycj$nZ9_z&0$E3s|bX&>qi^ftkB6yqbdIh8ak3tGCj0a5+kQSJNi{VRF z!w(=`(G5r^TZ#KP40l1wz;}=`_9NX>b88q#-xVpj)U2Aj+QbUm3NzAIab=vs7wQL< z$JPngk`7zvxpC#Ecv=L(gy-Alc+u-s8f*`S1xh; z$>Rbiv7>DE99)Y;0`n)7PR4RWiP@uZ$4hu@TRsD5n8)TFG`%IKZs+W3Nwz8+PbtmD zW}$N{EmP)1>4>>iIv7bDS%S%bFJ$_Gaqvmkg zakHabM}+oLJdP>mtMb#uU8{I^cdTcHIZ(limv`~*<*}Y_bEcwtQ9`77KOSCsZPL>z z9CI0BpZ}(!XpXs7+1@jNq=~fT386)lug4`|BbE$=KQqOx+?@+w3To@n2^F_9f%$vE zi5ApG!WVHR*?=25c!!NjtopsI z8*)?$O`>Jmc?OI7VPa+~#RD{{`#;t4={Yx7K)yhTTs1r{EKJG=wdFp+LsY_@;OS7$ zE|-gHK8sYg2n@Lzm2Zh$hymM|v^vTN$S3yQp?!_^ZxUduxn46Lv@*|phIx%Hn4mZaAZ9|ahTHjraDRh$~Mq\n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -106,7 +106,7 @@ msgstr "Editați profilul unui utilizator. Se recomandă prudență." #: mediagoblin/process_media/errors.py:44 msgid "Invalid file given for media type." -msgstr "" +msgstr "Formatul fișierului nu corespunde cu tipul selectat." #: mediagoblin/submit/forms.py:25 msgid "File" @@ -126,21 +126,23 @@ msgstr "Gata, trimis!" #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" -msgstr "" +msgstr "Oops!" #: mediagoblin/templates/mediagoblin/404.html:24 msgid "There doesn't seem to be a page at this address. Sorry!" -msgstr "" +msgstr "Ne pare rău, nu există nicio pagină la această adresă." #: mediagoblin/templates/mediagoblin/404.html:26 msgid "" "If you're sure the address is correct, maybe the page you're looking for has" " been moved or deleted." msgstr "" +"Dacă sunteți sigur că adresa este coresctă, poate că pagina pe care o " +"căutați a fost mutată sau ștearsă." #: mediagoblin/templates/mediagoblin/404.html:32 msgid "Image of 404 goblin stressing out" -msgstr "" +msgstr "Imagine cu elful 404 stresat." #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" @@ -148,7 +150,7 @@ msgstr "GNU MediaGoblin" #: mediagoblin/templates/mediagoblin/base.html:47 msgid "MediaGoblin logo" -msgstr "" +msgstr "logo MediaGoblin" #: mediagoblin/templates/mediagoblin/base.html:52 msgid "Submit media" @@ -174,21 +176,23 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." -msgstr "" +msgstr "Bună! MediaGoblin este..." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "The perfect place for your media!" -msgstr "" +msgstr "Locul perfect pentru fișierele tale media!" #: mediagoblin/templates/mediagoblin/root.html:30 msgid "" "A place for people to collaborate and show off original and derived " "creations!" msgstr "" +"Un loc unde oamenii colaborează și își expun creațiile originale și " +"derivate!" #: mediagoblin/templates/mediagoblin/root.html:31 msgid "" -"Free, as in freedom. (We’re a GNU project, " +"Free, as in freedom. (We’re a GNU project, " "after all.)" msgstr "" @@ -197,12 +201,16 @@ msgid "" "Aiming to make the world a better place through decentralization and " "(eventually, coming soon!) federation!" msgstr "" +"Un pas spre o lume mai bună prin descentralizare și (în curând) " +"federalizare!" #: mediagoblin/templates/mediagoblin/root.html:33 msgid "" "Built for extensibility. (Multiple media types coming soon to the software," " including video support!)" msgstr "" +"Proiectat să fie extensibil. (Software-ul va avea în curând suport pentru " +"multiple formate de media, inclusiv pentru video!)" #: mediagoblin/templates/mediagoblin/root.html:34 msgid "" @@ -210,10 +218,13 @@ msgid "" "href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this" " software!)" msgstr "" +"Animat de oameni ca tine. (Ne poți ajuta să îmbunătățim" +" acest software!)" #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" -msgstr "" +msgstr "Autentificare eșuată!" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" @@ -229,7 +240,7 @@ msgstr "Creați un cont!" #: mediagoblin/templates/mediagoblin/auth/register.html:30 msgid "Create" -msgstr "" +msgstr "Creează" #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format @@ -272,7 +283,7 @@ msgstr "Etichete:" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" -msgstr "Trimite fișierele tale" +msgstr "Trimite fișierele tale media" #: mediagoblin/templates/mediagoblin/submit/start.html:29 msgid "Submit" @@ -281,7 +292,7 @@ msgstr "Trimite" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 #, python-format msgid "%(username)s's media" -msgstr "Fișierele lui %(username)s" +msgstr "Fișierele media ale lui %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 #: mediagoblin/templates/mediagoblin/user_pages/user.html:32 @@ -290,33 +301,33 @@ msgstr "Ne pare rău, nu am găsit utilizatorul căutat." #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 msgid "Media processing panel" -msgstr "" +msgstr "Panou de procesare media" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 msgid "" "You can track the state of media being processed for your gallery here." -msgstr "" +msgstr "Aici poți urmări stadiul procesării fișierelor media din galeria ta." #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 msgid "Media in-processing" -msgstr "" +msgstr "Fișiere în curs de procesare" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 msgid "No media in-processing" -msgstr "" +msgstr "Niciun fișier în curs de procesare" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 msgid "These uploads failed to process:" -msgstr "" +msgstr "Aceste fișiere nu au putut fi procesate:" #: mediagoblin/templates/mediagoblin/user_pages/user.html:39 #: mediagoblin/templates/mediagoblin/user_pages/user.html:59 msgid "Email verification needed" -msgstr "" +msgstr "Este necesară verificarea adresei de e-mail" #: mediagoblin/templates/mediagoblin/user_pages/user.html:42 msgid "Almost done! Your account still needs to be activated." -msgstr "" +msgstr "Aproape gata! Mai trebuie doar să activezi contul." #: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" @@ -336,6 +347,8 @@ msgid "" "Someone has registered an account with this username, but it still has to be" " activated." msgstr "" +"Cineva a înregistrat un cont cu acest nume de utilizator, dar contul nu a " +"fost încă activat." #: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format @@ -354,7 +367,7 @@ msgstr "Profil %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/user.html:85 msgid "Here's a spot to tell others about yourself." -msgstr "" +msgstr "Aici poți spune altora ceva despre tine." #: mediagoblin/templates/mediagoblin/user_pages/user.html:90 #: mediagoblin/templates/mediagoblin/user_pages/user.html:108 @@ -363,7 +376,7 @@ msgstr "Editare profil" #: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "This user hasn't filled in their profile (yet)." -msgstr "" +msgstr "Acest utilizator nu și-a completat (încă) profilul." #: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format @@ -375,22 +388,24 @@ msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" +"Aici vor apărea fișierele tale media, dar se pare că încă nu ai trimis " +"nimic." #: mediagoblin/templates/mediagoblin/user_pages/user.html:141 msgid "Add media" -msgstr "" +msgstr "Trimite fișier" #: mediagoblin/templates/mediagoblin/user_pages/user.html:147 msgid "There doesn't seem to be any media here yet..." -msgstr "" +msgstr "Nu pare să existe niciun fișier media deocamdată..." #: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 msgid "feed icon" -msgstr "" +msgstr "icon feed" #: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 msgid "Atom feed" -msgstr "" +msgstr "feed Atom" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo new file mode 100644 index 0000000000000000000000000000000000000000..55f611d57ebacb739f32e4586199edb161431dc6 GIT binary patch literal 8393 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 s\n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -184,7 +184,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 msgid "" -"Free, as in freedom. (We’re a GNU project, " +"Free, as in freedom. (We’re a GNU project, " "after all.)" msgstr "" diff --git a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mo index a70b1fef8130a4406cfc4e637d76b718986663e6..aaeec466763b4014d5dcc125f922781b23b28f06 100644 GIT binary patch literal 8028 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 delta 1966 zcmajeTS#0-7zgl4>$TCSQKPP!j8UmZW7I|>Tea1s=E5o)MT;$sjC*ExXZP%x*e-N`hX-I@9%Fs*AUpwMx&Bp% zDeN{ZfOlXy{1fhkh56aO5BkvWfF+DAvr#l^Ffa*s!#FI3=OEUyw_zE)1ef4Pa1nOk zlyUe09D(;>H9SQ!$0@H z5r~M{9HhWBoQ59kgkM3*>^|&)mBrZro`XBk4?tS~BBaVhVIIzBi)ggMGmt9rKBNt= zL5lnq#GdR9q|EL^4ojXuS>b+I5Bnfxb`l3Jdv`+xiuWS<1+e$8@F@(ms+=T0p4*m|(W88xD7XE^$K5Icb^egFwbihg2 z0|o4d2GW6F!wCEpQe^|!j1HWlOQA=^!V{-E&}bQH`>SA~_a3tq1uQJNhV zPDtA9uy(@AP4J{hr53bnnU%t~sz#M9+0pSSJ|-dNro-qto(MpVj^?rhq%+f#doCUX6O17fI)9S`$G zoql*DbG3NyazICvlbe-Dx;iOcdy$8=n~)Ztnh3Dt4iC|3%0oCZg@F7Fi@0)#2j4s_ zkcrjAGI?-ML?T$fpuDI*I~2*J#%&$ZESReR8s?epOXg6?#RoO}v1GX_J(o}(o6JCY zD^DiOYU#N7r*x!Ac_`RauHvK2F3 z?iCA9CwLf3%#HF(Mcw_px7XkIlzF*=7xi@W-X4E%zqwpdv+G14$OmF}^4X}iwIxIG zo-XYD$qyBy+xjQt+7&U5!t+-|+>WI;R+X)~_=MP4O*=d$c~X0>oO3j{CEr}n_AO;9 zs}`E^G$O7DtC(OxSH^9H#Vm;V782$WnXO*7EFjX04{VHRvL`d4!XlGcJ-i3dzu2#`Qez z1~0_S)>b!XXHq7#La=d}P9^2$x+8cpJJefST~-{%EXmzXpq^=rPM-dwk1 zlzK))U}ZDb=0^RPnQWLb?>5#|WeX`D6qSlJZ@y?8*nLFLx!R(|iqAiK-}f3%o6mNi QEt*y?AI6=V;XU>L0?x3lfB*mh diff --git a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po index 7302ce6e..3db6ed4a 100644 --- a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-24 20:20-0500\n" -"PO-Revision-Date: 2011-08-25 01:22+0000\n" +"POT-Creation-Date: 2011-08-25 07:41-0500\n" +"PO-Revision-Date: 2011-08-25 12:41+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -48,7 +48,7 @@ msgstr "Oprostite, uporabnik s tem imenom že obstaja." #: mediagoblin/auth/views.py:61 msgid "Sorry, that email address has already been taken." -msgstr "" +msgstr "Oprostite, ta e-poštni naslov je že v uporabi." #: mediagoblin/auth/views.py:159 msgid "" @@ -105,7 +105,7 @@ msgstr "Urejate uporabniški profil. Nadaljujte pazljivo." #: mediagoblin/process_media/errors.py:44 msgid "Invalid file given for media type." -msgstr "" +msgstr "Za vrsto vsebine je bila podana napačna datoteka." #: mediagoblin/submit/forms.py:25 msgid "File" @@ -125,21 +125,23 @@ msgstr "Juhej! Poslano." #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" -msgstr "" +msgstr "Opa!" #: mediagoblin/templates/mediagoblin/404.html:24 msgid "There doesn't seem to be a page at this address. Sorry!" -msgstr "" +msgstr "Oprostite. Videti je, da na tem naslovu ni nobene strani." #: mediagoblin/templates/mediagoblin/404.html:26 msgid "" "If you're sure the address is correct, maybe the page you're looking for has" " been moved or deleted." msgstr "" +"Če ste v točnost naslova prepričani, je bila iskana stran morda premaknjena " +"ali pa izbrisana." #: mediagoblin/templates/mediagoblin/404.html:32 msgid "Image of 404 goblin stressing out" -msgstr "" +msgstr "Slika napake 404 s paničnim škratom" #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" @@ -147,7 +149,7 @@ msgstr "GNU MediaGoblin" #: mediagoblin/templates/mediagoblin/base.html:47 msgid "MediaGoblin logo" -msgstr "" +msgstr "Logotip MediaGoblin" #: mediagoblin/templates/mediagoblin/base.html:52 msgid "Submit media" @@ -173,21 +175,23 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." -msgstr "" +msgstr "Pozdravljen, ljubitelj večpredstavnostnih vsebin! MediaGoblin je ..." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "The perfect place for your media!" -msgstr "" +msgstr "Popolno mesto za vaše večpredstavnostne vsebine." #: mediagoblin/templates/mediagoblin/root.html:30 msgid "" "A place for people to collaborate and show off original and derived " "creations!" msgstr "" +"Mesto, kjer ljudje lahko sodelujejo in razkazujejo originalne in predelane " +"stvaritve." #: mediagoblin/templates/mediagoblin/root.html:31 msgid "" -"Free, as in freedom. (We’re a GNU project, " +"Free, as in freedom. (We’re a GNU project, " "after all.)" msgstr "" @@ -196,12 +200,16 @@ msgid "" "Aiming to make the world a better place through decentralization and " "(eventually, coming soon!) federation!" msgstr "" +"Ustvarjen z namenom izboljšati svet, s pomočjo decentralizacije in (kmalu) " +"federacije." #: mediagoblin/templates/mediagoblin/root.html:33 msgid "" "Built for extensibility. (Multiple media types coming soon to the software," " including video support!)" msgstr "" +"Zgrajen za razširjanje. (Kmalu bodo na voljo dodatne vrste vsebin, vključno " +"podpora za video)" #: mediagoblin/templates/mediagoblin/root.html:34 msgid "" @@ -209,10 +217,13 @@ msgid "" "href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this" " software!)" msgstr "" +"Sad dela ljudi, kot ste vi. (Pri izboljševanju nam lahko " +"pomagate tudi vi.)" #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" -msgstr "" +msgstr "Prijava ni uspela." #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" @@ -228,7 +239,7 @@ msgstr "Ustvarite račun." #: mediagoblin/templates/mediagoblin/auth/register.html:30 msgid "Create" -msgstr "" +msgstr "Ustvari" #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format @@ -290,33 +301,33 @@ msgstr "Oprostite, tega uporabnika ni bilo moč najti." #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 msgid "Media processing panel" -msgstr "" +msgstr "Podokno obdelovanja vsebine" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 msgid "" "You can track the state of media being processed for your gallery here." -msgstr "" +msgstr "Tu lahko spremljate stanje vsebin, ki so v obdelavi za vašo galerijo." #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 msgid "Media in-processing" -msgstr "" +msgstr "Vsebina v obdelavi" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 msgid "No media in-processing" -msgstr "" +msgstr "V obdelavi ni nobene vsebine" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 msgid "These uploads failed to process:" -msgstr "" +msgstr "Teh vsebin ni bilo moč obdelati:" #: mediagoblin/templates/mediagoblin/user_pages/user.html:39 #: mediagoblin/templates/mediagoblin/user_pages/user.html:59 msgid "Email verification needed" -msgstr "" +msgstr "Potrebna je potrditev prek e-pošte" #: mediagoblin/templates/mediagoblin/user_pages/user.html:42 msgid "Almost done! Your account still needs to be activated." -msgstr "" +msgstr "Skoraj ste zaključili. Svoj račun morate le še aktivirati." #: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" @@ -336,6 +347,8 @@ msgid "" "Someone has registered an account with this username, but it still has to be" " activated." msgstr "" +"Nekdo je s tem uporabniškim imenom že registriral račun, vendar mora biti še" +" aktiviran." #: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format @@ -353,7 +366,7 @@ msgstr "Profil – %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/user.html:85 msgid "Here's a spot to tell others about yourself." -msgstr "" +msgstr "Na tem mestu lahko drugim poveste nekaj o sebi." #: mediagoblin/templates/mediagoblin/user_pages/user.html:90 #: mediagoblin/templates/mediagoblin/user_pages/user.html:108 @@ -362,7 +375,7 @@ msgstr "Uredi profil" #: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "This user hasn't filled in their profile (yet)." -msgstr "" +msgstr "Ta uporabnik še ni izpolnil svojega profila." #: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format @@ -373,26 +386,26 @@ msgstr "Prikaži vso vsebino uporabnika %(username)s" msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." -msgstr "" +msgstr "Tu bo prikazana vaša vsebina, a trenutno še niste dodali nič." #: mediagoblin/templates/mediagoblin/user_pages/user.html:141 msgid "Add media" -msgstr "" +msgstr "Dodaj vsebino" #: mediagoblin/templates/mediagoblin/user_pages/user.html:147 msgid "There doesn't seem to be any media here yet..." -msgstr "" +msgstr "Videti je, da tu še ni nobene vsebine ..." #: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 msgid "feed icon" -msgstr "" +msgstr "Ikona vira" #: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 msgid "Atom feed" -msgstr "" +msgstr "Ikona Atom" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" -msgstr "" +msgstr "Komentar" diff --git a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo index 153584d321493fb7874b7cf6df07c5e3fd1ce0ec..2f9de271f3f6b665c35c2e10a70525e2cd33d694 100644 GIT binary patch literal 7885 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 Z|4`Vv<;neW>z225%iFr;{a@Vj{tHp0UFZM+ literal 5401 zcmeH}Pi!1l9mk&_G_bU#w4sF*!LubdHu0`^ow`XkUY90uQdf3xZ6{GcqMF@#yEDz~ zyw$un-mDZjapJS4uvuisJe{P&? zt@pEU=KX&2`~AM}{oefQ@nf$m{#yKhn*U=TkkS6%A3mtmlMMd|7vQmDN-e=>;mh!~ z@%TrODeCv|A^0AA4E_~94v&AR9G`?I8J~s^!^`j~xD7u8Z^1|4*CD3rTkvD>P52e~ zeK>-rdB|1xHoO4;0zU!I9#`rKxB(@O0AivdD1K8Y@!WwD-#6fg;agDbzXv1u4*V3H z<>qJM1t{^hp~Pk3b?D(d{27$I?!g9p;v?nrSK*_K*P+;d3CeRLD1Jt827VPv9qvN$ z_Y){_{|@3(y$2<)dr-rNE7TNL;nQ#lN?xzPvoM6`;dkIC;VGh) zMdzmwRrGicN*yjiK5C6G(fKA6o!^C5;VV2ubbbqpPQQgxkH0~QI~^P5m~{yUWU4@uH9v$-=_8uZPaJLU8sv)wo`YB|tRX1cBE^8TxNmdv^7 zm4maF7lIWm`X-D6^z13}_cTE;|V-wcY zi>WsKAWpQ4Y@UQV$g+6X=s4AZ?wXB$S9g4%yYG+GV zsn15`TptBIImvrENHPF50vkXMH^goEzFK zR2MPyMh65_rZP3TM3Oo(nVC|TY;G1T)uK2-7-q&fbyja`exggY9R~~_G20xU1 zU^0g^?cB@tQNqy6+F?+49=g<|oQu4*>xO|KkSNs`1o`)*H)u}v?{W$wcCimW42e9d&c zOjcW^8V~AP-uaKR*VMLbm`)U=J>%3i+f;3{(~E5tI8-i`B8LN;s^|fGTUQ#^e6h|b zY}sNWOb<7hZJT8y$x3#}fz}}Ahgt(sm6KB%O5TY|lP*1sMm4@wMwS&jK+{CR*adBL zlXg^uCOt~p2^M*~ANw&RkJy|3WLW4h8H|Xmys#7WoZ6B7$YPi*7wwGcj}sF&{h&wV zky%B5WB0HD=&Gha@T21TeS+LFBTdgM@{id%j+NITQAAWb(uLHuasOA>i@sd$@1kLw zP+gB{!vPK4cJJ#mdyW5wX**I=H%!t&LkaXyznM}utc|Rl(q&D&tn-`Wu0ba&8e^%@ z{sC0eo0;u!Xq2LLf?T>z?LoWL(!k36CNcdt+hU`zhq)oX%^BzHDx|6wz2}^e0znUrObsRN!r&SURO{#X=*7k6(wS;~sa|Jdb<6C=63^jz&+Gb` z=F-{Ib^a>rf%Da!EJ$5KnpsnKI5pY`vONCr`HLfM~rH!m$k@j-daCOH7{ifbF zSvzK3&yLd>4u>@_{^G8=eSbcK`!e#FFSu-BuCkfrS&&pO({x=^r-NeXT4&C449K0< zY&z4Zw^|MT%rjbk)~8yHhJHcUHPacdv=%3~mRrxt&%&a<+^Fk2cS;lH)aS5iV6!+^ z*;w0H-50D;t5dkGGNP;*$FO4p9#\n" "Language-Team: Serbian (http://www.transifex.net/projects/p/mediagoblin/team/sr/)\n" "MIME-Version: 1.0\n" @@ -182,7 +182,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 msgid "" -"Free, as in freedom. (We’re a GNU project, " +"Free, as in freedom. (We’re a GNU project, " "after all.)" msgstr "" diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo index 0d4b463c06c1faaaa3a5aa4b0870e2983abf2847..e209556fa45cdb01535318dcb02e44fef07bf2a0 100644 GIT binary patch literal 8114 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 HSW$liCUEo) delta 2049 zcmajdTWl3Y7{KvCE^Vcyw6v5$ZKsus2ozh;N~snLk$WMuGywx->CV}+bkAM12rJAR(ba4+dY<7_7Gh-i$Hv!Nlm3xBr}OtAPhk+WpO5X6Bpk z`_8uBSTc08bjk_Aua*BQ{>$z#cmMthrwB2d+ag?!^YMP{#7%fSxgW*J+)tk>#563% zJe-X)u^LNpd2-)|bA=cZ9SjP2;bR3pfz_z72+tyGiz`@+pWq=J#X;;~w|4vt+pvmV z%W)sh!ag(s9Ydywm(i^I3YN0J7-nE1yomYuDVhbo#5DehmAIXkHFy9`z{k-9b`rbr zbzF+SA}15FK!^rhotQxr$eTC=Ph%nbi}MUj03V}S@H#HQZ_#ArFEk6!zH{sZYmq&~ zMl>hfff7?ltm0XmhcBT?`Fq%eBe)uW$2r(Io&4`*u$cjShe(CApV4#u#RJ_#0;8@oI-QL_tC6(0Zo8c&>Zk9WN-09^8A+>iD%bZ;-K?K1TQaR*g>K5#-n1i=+uT5_yhU2)Jzw^y>nX9m zeW%>2Y}Z;J?Dt$>e~~|=2MV6rC+)yr6w9>LucYNmtGhes^W&wm*Hc!cq-?QdI#j8L z>K5D+D#wjt74GW`y~R=8!#k4umgUyN^ z=><+8wp&p&5QH`Z-8%h{ZYq3rJU`zQj^uGvH&z+_Vo|&Pv#71sjmgo@NQJ(YQKBoC z$Zjik17G?|*~-?tikHk)UU!gDG7jV|>8#a8~F_@WW%cF zl}-9!iOg?!KsKysZfw+Vl~l|-5LlsXi9^ee+>|=FX2A08{Xyu|N9x?yB~6o>+Oxw^ zOqe~M6~?u)y-)5}>Ffn+EN#YCXvwj9D@L{($Fe8z<3OJ+J6yOuRFU%IT>Scj@`d_l z`O#Ul!EIeoR`Hy^S~0SF1HrJW>pLo0r}h6UADW%j_{L-PO%|GX+NwtiDk~|XW3l?! zH`^T7i(SW5UguZVtRH`CYMuLxexQbqPdGB;Mv*tz-DBA*sui8o+=?ZAlazd{n{y@C z*D6oy@8&+%v5qsOT;GpmsBAJg5saB9ZQiD{!y(\n" "Language-Team: Swedish (http://www.transifex.net/projects/p/mediagoblin/team/sv/)\n" "MIME-Version: 1.0\n" @@ -105,7 +105,7 @@ msgstr "Var försiktig, du redigerar en annan användares profil." #: mediagoblin/process_media/errors.py:44 msgid "Invalid file given for media type." -msgstr "" +msgstr "Ogiltig fil för mediatypen." #: mediagoblin/submit/forms.py:25 msgid "File" @@ -125,21 +125,23 @@ msgstr "Tjohoo! Upladdat!" #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" -msgstr "" +msgstr "Ojoj!" #: mediagoblin/templates/mediagoblin/404.html:24 msgid "There doesn't seem to be a page at this address. Sorry!" -msgstr "" +msgstr "Ledsen, det verkar inte vara någonting här." #: mediagoblin/templates/mediagoblin/404.html:26 msgid "" "If you're sure the address is correct, maybe the page you're looking for has" " been moved or deleted." msgstr "" +"Om du är säker på att adressen stämmer så kanske sidan du letar efter har " +"flyttats eller tagits bort." #: mediagoblin/templates/mediagoblin/404.html:32 msgid "Image of 404 goblin stressing out" -msgstr "" +msgstr "Bild av stressat 404-troll." #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" @@ -147,7 +149,7 @@ msgstr "GNU MediaGoblin" #: mediagoblin/templates/mediagoblin/base.html:47 msgid "MediaGoblin logo" -msgstr "" +msgstr "MediaGoblin-logotyp" #: mediagoblin/templates/mediagoblin/base.html:52 msgid "Submit media" @@ -173,21 +175,23 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." -msgstr "" +msgstr "Hej där mediaentusiast, MediaGoblin..." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "The perfect place for your media!" -msgstr "" +msgstr "Är ett perfekt ställe för din media!" #: mediagoblin/templates/mediagoblin/root.html:30 msgid "" "A place for people to collaborate and show off original and derived " "creations!" msgstr "" +"Är ett ställe för människor att samarbeta och visa upp originella och " +"härrörande verk." #: mediagoblin/templates/mediagoblin/root.html:31 msgid "" -"Free, as in freedom. (We’re a GNU project, " +"Free, as in freedom. (We’re a GNU project, " "after all.)" msgstr "" @@ -196,6 +200,11 @@ msgid "" "Aiming to make the world a better place through decentralization and " "(eventually, coming soon!) federation!" msgstr "" +"Arbetar för att göra världen till ett bättre ställe genom decentralisering " +"och (så småningom, kommer snart!) -- Google Translate säger " +"\"sammanslutning\", en: federation" +" " #: mediagoblin/templates/mediagoblin/root.html:33 msgid "" diff --git a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo index 9615e44c791e27e0764e8a265c872b0db189af94..ce7240fc3b795e826c8a0316ec3ecff7b7df31b7 100644 GIT binary patch literal 7758 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\n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -185,7 +185,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 msgid "" -"Free, as in freedom. (We’re a GNU project, " +"Free, as in freedom. (We’re a GNU project, " "after all.)" msgstr "" From d71170ad0abea7768c425a6011816cd8cdadf9df Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Thu, 25 Aug 2011 19:38:13 +0200 Subject: [PATCH 0939/2731] Feature #489 - SMTP configuration options - Acts on feedback from cwebber. http://bugs.foocorp.net/issues/489#note-2 --- mediagoblin/config_spec.ini | 2 +- mediagoblin/util.py | 21 ++++++++++----------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini index bc6f00d9..0bc7d6ad 100644 --- a/mediagoblin/config_spec.ini +++ b/mediagoblin/config_spec.ini @@ -20,7 +20,7 @@ direct_remote_path = string(default="/mgoblin_static/") # set to false to enable sending notices email_debug_mode = boolean(default=True) email_sender_address = string(default="notice@mediagoblin.example.org") -email_smtp_host = string(default=None) +email_smtp_host = string(default='') email_smtp_port = integer(default=25) email_smtp_user = string(default=None) email_smtp_pass = string(default=None) diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 6dced54e..60ba8800 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -237,10 +237,7 @@ class FakeMhost(object): Just a fake mail host so we can capture and test messages from send_email """ - def connect(self): - pass - - def login(self): + def login(self, *args, **kwargs): pass def sendmail(self, from_addr, to_addrs, message): @@ -273,14 +270,16 @@ def send_email(from_addr, to_addrs, subject, message_body): if TESTS_ENABLED or mg_globals.app_config['email_debug_mode']: mhost = FakeMhost() elif not mg_globals.app_config['email_debug_mode']: - if not mg_globals.app_config['email_smtp_host']: - mhost = smtplib.SMTP() - else: - mhost = smtplib.SMTP( - mg_globals.app_config['email_smtp_host'], - mg_globals.app_config['email_smtp_port']) + mhost = smtplib.SMTP( + mg_globals.app_config['email_smtp_host'], + mg_globals.app_config['email_smtp_port']) - if mg_globals.app_config['email_smtp_user']: + # SMTP.__init__ Issues SMTP.connect implicitly if host + if not mg_globals.app_config['email_smtp_host']: # e.g. host = '' + mhost.connect() # We SMTP.connect explicitly + + if mg_globals.app_config['email_smtp_user'] \ + or mg_globals.app_config['email_smtp_pass']: mhost.login( mg_globals.app_config['email_smtp_user'], mg_globals.app_config['email_smtp_pass']) From 6503d66c98765802836b09fb9f6a5f2ad47ad47a Mon Sep 17 00:00:00 2001 From: tycho garen Date: Sat, 27 Aug 2011 17:43:14 -0400 Subject: [PATCH 0940/2731] Documentation Revision, clarification, and editing. - a line in the .gitignore file to ignore the built documentation tree. - a complete revision/editorial pass of all non-technical documents that outline process, project fundamentals, and background. These edits clarified the text, unified the style, and elaborated on stubs. --- .gitignore | 1 + docs/source/about_mediagoblin.rst | 79 +++++---- docs/source/contributinghowto.rst | 264 +++++++++++++++++------------- docs/source/foreword.rst | 51 +++--- docs/source/index.rst | 5 +- 5 files changed, 224 insertions(+), 176 deletions(-) diff --git a/.gitignore b/.gitignore index 9da56bab..5f16bd74 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ mediagoblin.egg-info *.pyc *.pyo docs/_build/ +docs/build user_dev/ paste_local.ini mediagoblin_local.ini diff --git a/docs/source/about_mediagoblin.rst b/docs/source/about_mediagoblin.rst index af6658f3..71d8b89c 100644 --- a/docs/source/about_mediagoblin.rst +++ b/docs/source/about_mediagoblin.rst @@ -9,43 +9,52 @@ What is GNU MediaGoblin ======================= -Three years ago (2008), a number of free software luminaries got -together at the FSF office to answer the question, "What should -software freedom look like on the participatory web?" Those thinkers -included Richard Stallman---founder of the free software movement and -instigator of the GNU project, Evan Prodromou---the driving force -behind Status.net, a highly sucessful federated micro-blogging -service, and FIXME. +In 2008 a number of free software developers and activists gathered at +the FSF to attempt to answer the question "What should software +freedom look like on the participatory web?" Their answer, the +`Franklin Street Statement `_, +has lead to the development of `autonomo.us `_ +community, and free software projects including `Identi.ca `_ +and `Libre.fm `_. -Since that time Identi.ca and Libre.fm have answered the -freedom-loving web-user's need for micro-blogging and music sharing. -Now, GNU MediaGoblin is building a format for users to share photos. -Later versions of MediaGoblin will include support for video and other -media as well as tools to encourage collaboration on media projects. +Identi.ca and Libre.fm address the need for micro-blogging and music +sharing services and software that respect users' freedom and +autonomy. GNU MediaGoblin emerges from this milieu to create a +platform for us to share photos in an environment that respects our +freedom and independence. In the future MediaGoblin will include +support other media, like video, and provide tools to facilitate +collaboration on media projects. +Why Build GNU MediaGoblin +========================= -Why are we doing this? -====================== +The Internet is designed--and works best--as a complex and endlessly +resilient network. When key services and media outlets are +concentrated in centralized platforms, the network becomes less useful +and increasingly fragile. As always, the proprietary nature of these +systems, hinders users ability to develop, extend, and understand +their software; however, in the case of network services it also means +that users must forfeit control of their data to the service +providers. -Centralization and proprietization of media on the internet is a -serious problem and makes the web go from a system of extreme -resilience to a system of frightening fragility. We believe people -should be able to free their data from proprietary control and that -means someone has to build the tools to make it possible. We decided -that in this case, that someone would be us! - +Therefore, we believe that network services must be federated to avoid +centralization and that everyone ought to have control over their +data. In support of this, we've decided to help build the tools to +make these kinds of services possible. We hope you'll join us, both as +users and as contributors. -Who are you? -============ +Who Contributes to the Project +============================== -Free software activists and folks who have worked on a variety of -other projects like Libre.fm, GNU Social, Status.net, Miro, Miro -Community, OpenHatch and other projects as well. We're admirers and -contributors. We're writers and painters. We're friendly and -dedicated to computer user freedom. +You do! +We are free software activists and folks who have worked on a variety +of other projects including: Libre.fm, GNU Social, Status.net, Miro, +Miro Community, and OpenHatch among others. We're programmers, +musicians, writers, and painters. We're friendly and dedicated to +software and network freedom. -How can I participate? +How Can I Participate? ====================== See `Get Involved `_ on the website.. @@ -56,15 +65,15 @@ How is GNU MediaGoblin licensed? GNU MediaGoblin software is released under an AGPLv3 license. -See the ``COPYING`` file in the source for details. +See the ``COPYING`` file in the source repository for details. -Is this an official GNU Project? What does that mean? -====================================================== +Is MedaGobilin an official GNU project? What does that mean? +============================================================= -We are! It means that we meet the GNU Project's rigourous standards -for free software. To find out more about what that means, check out -`the GNU site `_. +MediaGoblin is an official GNU project! This status means that we the +meet the GNU Project's rigorous standards for free software. To find +out more about what that means, check out `the GNU site `_. Please feel free to contact us with further questions! diff --git a/docs/source/contributinghowto.rst b/docs/source/contributinghowto.rst index a4f5771a..8eaff5e4 100644 --- a/docs/source/contributinghowto.rst +++ b/docs/source/contributinghowto.rst @@ -1,185 +1,215 @@ .. _contributing-howto-chapter: -==================== - Contributing HOWTO -==================== +=================================== +HOWTO Contribute to GNU MediaGoblin +=================================== .. contents:: Sections :local: - .. _join-the-community-section: Join the community! =================== -We're super glad you want to join our community! +We're **really** glad that you want to join the MediaGoblin community! -See `the join page on the website `_ for -where we hang out. +There are a variety of ways to help and support MediaGoblin and to +join the team. If you want to code, great, if not, even better! +MediaGoblin interested contributors in many different roles: users, +system administrators, technical writers, testers, evangelists, +UI/UX and graphics designers, cheerleaders, and dreamers. -There are a variety of ways you can help us and become part of the -team. We're not just looking for coders! We're also looking for -documentation writers, users, testers, evangelists, user-interface -designers, graphics designers, user-experience designers, system -administrators, friends, painters, bakers, candle-stick makers... +This document provides an overview of different ways you can get +involved with MediaGoblin along with instructions for getting +started. There is some obvious overlap with `the "join" page on +mediagoblin.org `_ at present. -Here are some things you can do today: +Hang out with the MediaGoblin folk +---------------------------------- +MediaGoblin has a `discussion listserv `_, +and an IRC (``#mediagoblin``) channel on `freenode.net `_. - **Hang out with us** +Don't be afraid to drop by and say "Hi!" And, if you're looking for +something to do, just ask: there's always work to be done. - You should hang out with us! We like people like you! +File Bugs / Triage Bugs +----------------------- - At a bare minimum, join the `mailing list - `_ and say, "Hi!" +Issue reports are critical for all projects. Identified bugs give +developers a basis for beginning work, and providing an idea of what +features and issues are most important to users and the overall +usability of the software. If you identify errors, flaws, unexpected +behaviors, or deficits that impede use, file a bug. - We also hang out on IRC in ``#mediagoblin`` on Freenode.net. +See the section on `filing bugs <#filing-bugs>`_ for more information on how to file the best +and most useful bug reports. +If you want to contribute to MediaGoblin and don't know where to +start, look at the `bug database `_ +as a starting point. - **File bugs** +See the section on `bug triage <#triage-bugs>`_ for suggestions on how +to most effectively triage and approach the issue queue. - Filing bugs is a critical part of any project. For more - information on filing bugs, see :ref:`filing-bugs`. +Write/Fix Code +-------------- +If you are a coder and you would like to write code, the `repository `_ +is hosted on `gitorious `_. Clone or fork the +repository and start poking around. Become familiar with this `manual `_ +for an overview of how the software works and is used. Consider the +`contributor wiki `_ for more +information about the project, our preferred methods, and guides for +developing MediaGoblin. We even have tips on *becoming* a coder and +we're willing to help! - **Write/Fix some code** +Send Encouragement, Spread the Word +----------------------------------- - If you are a coder and you're looking to code, check out the - `wiki `_ +behind the movement, be able to articulate the benefits of free +network services and the problems with psudo-free applications that +don't respect the users' freedom. - **Send encouragement** - - A nice word from you could send someone into a tizzy of - productive work. Ten nice words could complete a feature. - One hundred nice words could get us to the next milestone. - - Send it to the `mailing list `_ - or hop into ``#mediagoblin`` on Freenode.net and let us know. - - - **Spread the word** - - The seductive call of Free Software services is a powerful - one, but many cannot hear it because it's drowned out by the - rush hour traffic honking of proprietary walled gardens and - faux free services. Yuck! Be the sweet chirrup of the bird - amidst the din! Tell others that there is a better way to - live! - - FIXME - do we want to talk about ways to spread the word? - - FIXME - how can people notify us that they're spreading the - word? +Write a blog post, post a status update, drop by the `listserv `_ +or join ``#mediagoblin`` on freenode.net and let us know. +Participate in MediaGoblin +========================== We're still working on project infrastructure. We hope to have the bits in place for these additional things to do in the coming months: - **Become a user** +Become a User +------------- - We're building GNU MediaGoblin for us and for you but really - you're one of us and I am you and we are we and GNU - MediaGoblin is the walrus. - - Sign up for an account. Use the service. Relish in the - thought that this service comes with a heaping side of Freedom - and you can salt and pepper it to your liking. +We're building GNU MediaGoblin for us and for you but really +you're one of us and I am you and we are we and GNU +MediaGoblin is the walrus. + +Sign up for an account. Use the service. Relish in the +thought that this service comes with a heaping side of Freedom +and you can salt and pepper it to your liking. - **Help other users** +Help Others +----------- - Have you spent time with GNU MediaGoblin? If so, your - experience and wisdom are invaluable and you're the best - person we can think of to help other users with their - questions. +Have you spent time with GNU MediaGoblin? If so, your +experience and wisdom are invaluable and you're the best +person we can think of to help other users with their +questions. - **Run your own instance** +Run your own MediaGoblin Instance +--------------------------------- - Are there things about our instance you want to change? Are - there things about other instances you wish were different? - Want to test upcoming changes? Want to create patches to - implement things you need? That's great---you can run your - own instance! - - For more information on deploying your own instance, see - :ref:`deployment-howto`. +Are there things about our instance you want to change? Are +there things about other instances you wish were different? +Want to test upcoming changes? Want to create patches to +implement things you need? That's great---you can run your +own instance! +For more information on deploying your own instance, see +the `Deployment HOWTO `_ - **Translate GNU MediaGoblin** +.. _translating: - Knowing more than one language is an important skill. If you - are multi-lingual and are interested in translating GNU - MediaGoblin, see :ref:`translating`. +Translate MediaGoblin +--------------------- +If you know English and another language and feel comfortable +translating elements of the interface or even the documentation, +we'd love to have help translating the software and resources. - **Create a theme** - - As people deploy their own GNU MediaGoblin instances, good - themes are a must have! For more information on theming, see - :ref:`theming-howto`. - - -Contributing thank you drawings / copyright assignment -====================================================== - -Copyright assignment with GNU MediaGoblin to the `FSF -`_ is highly encouraged but not mandatory. To -incentivize both this and people to make cool contributions to our -project, if you make useful contributions to GNU MediaGoblin *and* do -a copyright assignment to the Free Software Foundation, the founder of -the project, Chris Webber, will make a custom drawing of a goblin -dedicated specifically to you. - -For why we're doing copyright assignment, see the -`wiki `_. +Create a Theme +-------------- +MedaGoblin development is premised on the idea that the entire +interface for the platform be completely theme-able. If you have a +design or theming background, consider developing themes for +MediaGoblin. New themes help test the theming system, provide +attractive and appealing interfaces for prospective users. If you want +to start a new theme but don't know where to start, touch base with +the development community on the list or in the IRC channel for more +information. .. _filing-bugs: -File bugs +File Bugs ========= -GNU MediaGoblin uses a bug tracker called `Redmine -`_. +MediaGoblin uses a bug tracker called `Redmine `_. -The bug tracker is at ``_. +Our instance is located at ``_. -A good bug report has the following things in it: +The most useful bug reports have the following components: 1. A short summary that's 60 characters or less. 2. A description that describes the issue (bug, feature request, ...) - as well as the context. + as well as the context. Consider: - * If it's a bug, can you reproduce it? Is the issue specific to a - browser, computer, image, ...? + * If you think you've found a bug, can you reproduce it in a + controlled environment? Is the issue specific to a browser, + computer, image, media type, or other dimension? All data helps. - * If it's a feature request, are there related links on the Internet - for more information? Would you be willing to help implement or - test the feature? + * If you're submitting a feature request, are there related links + on the Internet for more information? Would you be willing to + help implement or test the feature? -That's it! When someone looks into the issue and has questions, -they'll contact you! +That's it! -If you don't hear from anyone in a couple of weeks, find someone on -IRC. +The better the issue report, the easier it is to address the bug, and +the more likely that the developers will be able to resolve the +issue. If someone has questions about the bug report, they may reach +out to the reporter directly. +If you get a response after a couple of weeks, find someone on IRC. -.. _translating: +.. _triage-bugs: -Translate GNU MediaGoblin -========================= +Triage Bugs +=========== -Coming soon when we set up translation infrastructure. +The triage process involves reviewing bugs, removing duplicates, +validating that the issues described are reproducible, ensuring that +the exact behavior is properly documented, diagnosing the cause of +each issue, and working with developers to ensure that critical bugs +get addressed. In many cases, developers do this kind of work as a +matter of course, but one need not be able to code in order to help +working with bugs. +To triage bugs, go to the `bug tracker `_ +and begin reviewing the open issues. If you are able, attempt to: -Where to go when you get stuck -============================== +- ensure that one or two people in addition to the initial reporter + have been able to reproduce the issue. -Go to `our Web site `_ where we list the -various places we hang out and how to get a hold of us. +- document the issue more clearly. If you had any trouble reproducing + the issue, provide any elucidating information that you can to help + others solve the problem more effectively. + +- find a way to resolve the problem or provide a workaround. + +For help, instructions, and suggestions be in touch with the +development community on the list or in the IRC channel for more +information. With many eyes, all bugs are shallow. + +How to Get Help with MediaGoblin +================================ + +The usual channels, the IRC channel, the listserv, the bug tracker, +are all great ways to be in touch with us. Check the `web site `_ +for more specific contact information. diff --git a/docs/source/foreword.rst b/docs/source/foreword.rst index 4fd96842..c525d002 100644 --- a/docs/source/foreword.rst +++ b/docs/source/foreword.rst @@ -1,39 +1,46 @@ -========== - Foreword -========== +======== +Foreword +======== -About this manual -================= +About the MediaGoblin Manual +============================ -This is the GNU MediaGoblin manual. This documentation targets the -following groups of individuals: +Welcome to the GNU MediaGoblin manual. This document targets several +classes of users, including: -* people who want to try the software locally -* people who want to deploy and administrate the software +* users who would like to try the software locally, +* systems administrators who want to deploy and administer the + software in "production environments," and +* anyone who wants to learn how MediaGoblin works. -This manual doesn't cover contributors to the codebase. But we want -and love contributors! To join as a contributor please visit the -following pages instead: +Some information relevant to the MediaGoblin community members, +including how to get involved (We want and love contributors!) To join +as a contributor please see the following pages: * http://mediagoblin.org/pages/join.html for general "join us" information * http://wiki.mediagoblin.org/ for our contributor-focused wiki -If you are viewing this from http://docs.mediagoblin.org be aware that -this manual is a living document and is in the ``mediagoblin`` -repository in the ``docs/`` directory. +If you suspect that documentation on http://docs.mediagoblin.org is +out of date, it might be. The documentation is updated regularly and +the "living" version of this resource resides in the ``mediagoblin`` +repository with the project's source code the ``docs/`` directory. +Improving the MediaGobiin Manual +================================ -I found an error in the docs---who do I tell? -============================================= - -There are a few ways---please pick the one most convenient to you! +There are a few ways---please pick whichever method is convenient for +you! 1. Write up a bug report in the bug tracker at http://bugs.foocorp.net/projects/mediagoblin/issues 2. Tell someone on IRC ``#mediagoblin`` on Freenode. -3. Send an email to Will ``willg at bluesock dot org``. +3. Send an email to Will ``willg at bluesock dot org``, or Sam at + ``sam@cyborginstitute.com`` When you tell us about your issue, please let us know: * where you are looking (in git? url of the web-page?) -* what the issue is -* your thoughts on how to resolve it +* what the issue is, and +* your thoughts on how to resolve it. + +We hope these materials are useful and we look forward to any and all +feedback. diff --git a/docs/source/index.rst b/docs/source/index.rst index 79f2653e..93b2a942 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -23,7 +23,8 @@ Table of Contents: Indices and tables ================== -* :ref:`genindex` -* :ref:`modindex` * :ref:`search` +* :ref:`genindex` + +.. * :ref:`modindex` From c35b8426f922cf49e4f495c6a8e7ce87eff71c69 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 28 Aug 2011 09:42:46 -0500 Subject: [PATCH 0941/2731] Pulling down latest translations --- .../i18n/de/LC_MESSAGES/mediagoblin.mo | Bin 8090 -> 8220 bytes .../i18n/de/LC_MESSAGES/mediagoblin.po | 71 +++++++++++------- .../i18n/eo/LC_MESSAGES/mediagoblin.mo | Bin 7946 -> 7968 bytes .../i18n/eo/LC_MESSAGES/mediagoblin.po | 18 +++-- .../i18n/es/LC_MESSAGES/mediagoblin.mo | Bin 8315 -> 8328 bytes .../i18n/es/LC_MESSAGES/mediagoblin.po | 6 +- .../i18n/ro/LC_MESSAGES/mediagoblin.mo | Bin 8238 -> 8249 bytes .../i18n/ro/LC_MESSAGES/mediagoblin.po | 11 +-- .../i18n/ru/LC_MESSAGES/mediagoblin.mo | Bin 8393 -> 8585 bytes .../i18n/ru/LC_MESSAGES/mediagoblin.po | 21 ++++-- .../i18n/sv/LC_MESSAGES/mediagoblin.mo | Bin 8114 -> 8142 bytes .../i18n/sv/LC_MESSAGES/mediagoblin.po | 45 ++++++----- 12 files changed, 105 insertions(+), 67 deletions(-) diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo index 47b243670d235777803a0726da947a7ac7e47569..898d5f0f89df2e23942f1f23c0ee0f92fb3e1745 100644 GIT binary patch delta 2322 zcmY+EOKenC7{?DruuxQrltOu(LDUv#8$v{=SZLD+fhxoXYCsI<_I@+>F!!E2IrrQ) z9TSHbcf^2PUEq^Nb>l(}2@8U&NmvjU#*O&cXh=+4>B1K-^#9$Nma>`Oo%8r!|L;5R z9(e!Y=W`F#?ko}FmsLWn5kh>mT8KXIC-4N=_Lva(6ajb&d==aaehVH2SK-oj@C>*d zJP)n_-vJ4{(p+EG-q>FSVo7v1|M#_vnpls8eOPD%C%|D?lo_tXX)p$>AOc?@e#Hkz_UF~^rOC<%_x11Eon2|`*iz9}IWiSxd?ojLWX`Hc zn}Z>Fi84iZ^_#Y5m()hIk;g*isvQr*c`3Vw5RHsboZ|+|iL2jmRSr8pjRfIB6Ks=g6v53_Pzi0yVVdY^k|(rJ zaZ>0OgPvz;Dxj>Ty|8=)mM9F#WPR-)AMF_;7@k8mY#Gwkui@K?VF;?lC{o!eXEed8 zsdYF*d1bztm;nF+0s6^Ipc&rmk0ENj`>vI7j>=lPp7{=KfYcFi)k7k}d+g84Hc7^?p9D5x+QZ&X=__c2c9Da=<>ruy(@}(tnG_o3I}9eT?T^kjGvtBW1A_}4U{Ks@`OYo1L48pwaLRF$2 z_a*~{8KTCNL1NJ`iL@4$vLDwKx_ZXrQY?;eI!&)E`QnR*;z}h{+2-{hVA)wnfB>gs zBgZM_Sh-7lZMku?S6a7Z|Fo{&Gn~##o*Gmhl4%)GhJXvUJ#byJ%ZN2OY@8&{D^Wt~$ z%huhDoO>73_9&X0O-B-AUesas<)+&&-cy_nPB`UK2oG~5bR1^v{-%PcMLZ+?df;@U hHSv_=xQ7-~m>N7&KWx6x%I{{+#BAinVU}!p>VKNTtFQn7 delta 899 zcmXZaT}YE*6u|MLwdLl_&75m<>Dx+k_WgmGN?IC4kP>7XX)w3fT+S`FNt72aSX4J9 z@>q}sMO4?}Zi0g7BIzzN`nVZ%7j;oobWue0e{eVZopbg+=RN1yZgtGIKfG6LeJB$7 z=oYCIkrx#rn=y~wShhmMfde>-!`Ori*nfgC%$!xeU3DEG=_LFPTTZNgla8`Ch0mVJbaP0QGqT*J2nG z*p27#G3v#dEIz{ohmqlB0`*l+V;|nco%jRwM(e9Znz0|-aT-hU73x9q1;3z+{2$h% zE4aAmc3ef?i@VXv5a<`o;U@fy2KssG2)3a9PfVfS>?!KT&rvsCK)vZN)HhPh@1z_1 z3LeG%}@l5t? zG?5yQ<=%Q)i&WP3N4YC4w=ry*G1(hWolHkgkHk&&*FK``-mtwhZAP-DYWCh&Yf8Mf zE|R!vD|w)DRhH^;G^jz}tor7-=\n" +"PO-Revision-Date: 2011-08-25 19:13+0000\n" +"Last-Translator: piratenpanda \n" "Language-Team: German (http://www.transifex.net/projects/p/mediagoblin/team/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -53,7 +53,7 @@ msgstr "Leider gibt es bereits einen Benutzer mit diesem Namen." #: mediagoblin/auth/views.py:61 msgid "Sorry, that email address has already been taken." -msgstr "Tut und Leid, aber diese E-Mail Adresse wird bereits verwendet." +msgstr "Tut und Leid, aber diese Email-Adresse wird bereits verwendet." #: mediagoblin/auth/views.py:159 msgid "" @@ -70,7 +70,7 @@ msgstr "Der Bestätigungssschlüssel oder die Nutzernummer ist falsch." #: mediagoblin/auth/views.py:186 #: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 msgid "Resent your verification email." -msgstr "Bestätigungs-Email wurde erneut versand." +msgstr "Bestätigungs-Email wurde erneut versandt." #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" @@ -110,7 +110,7 @@ msgstr "Du bearbeitest das Profil eines Anderen. Bitte sei vorsichtig." #: mediagoblin/process_media/errors.py:44 msgid "Invalid file given for media type." -msgstr "" +msgstr "Die Datei stimmt nicht mit dem gewählten Medientyp überein." #: mediagoblin/submit/forms.py:25 msgid "File" @@ -130,21 +130,23 @@ msgstr "Yeeeaaah! Geschafft!" #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" -msgstr "" +msgstr "Hoppla!" #: mediagoblin/templates/mediagoblin/404.html:24 msgid "There doesn't seem to be a page at this address. Sorry!" -msgstr "" +msgstr "Tut uns Leid, aber unter der angegebenen Adresse gibt es keine Seite!" #: mediagoblin/templates/mediagoblin/404.html:26 msgid "" "If you're sure the address is correct, maybe the page you're looking for has" " been moved or deleted." msgstr "" +"Wenn du sicher bist, dass die Adresse stimmt, wurde die Seite eventuell " +"verschoben oder gelöscht." #: mediagoblin/templates/mediagoblin/404.html:32 msgid "Image of 404 goblin stressing out" -msgstr "" +msgstr "Bild eines angespannten Goblins" #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" @@ -152,7 +154,7 @@ msgstr "GNU MediaGoblin" #: mediagoblin/templates/mediagoblin/base.html:47 msgid "MediaGoblin logo" -msgstr "" +msgstr "MediaGoblin-Logo" #: mediagoblin/templates/mediagoblin/base.html:52 msgid "Submit media" @@ -178,35 +180,43 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." -msgstr "" +msgstr "Hallo Medien-Liebhaber! MediaGoblin ist …" #: mediagoblin/templates/mediagoblin/root.html:29 msgid "The perfect place for your media!" -msgstr "" +msgstr "Der perfekte Platz für deine Medien!" #: mediagoblin/templates/mediagoblin/root.html:30 msgid "" "A place for people to collaborate and show off original and derived " "creations!" msgstr "" +"Ein Platz für Zusammenarbeit und um Originale und abgeleitete Werke zu " +"präsentieren!" #: mediagoblin/templates/mediagoblin/root.html:31 msgid "" "Free, as in freedom. (We’re a GNU project, " "after all.)" msgstr "" +"Frei, wie in Freiheit. (Wir sind schließlich ein GNU-Projekt.)" #: mediagoblin/templates/mediagoblin/root.html:32 msgid "" "Aiming to make the world a better place through decentralization and " "(eventually, coming soon!) federation!" msgstr "" +"Weltverbesserer durch Dezentralisierung und (hoffentlich bald!) unabhängige " +"Kommunikation!" #: mediagoblin/templates/mediagoblin/root.html:33 msgid "" "Built for extensibility. (Multiple media types coming soon to the software," " including video support!)" msgstr "" +"Gebaut für Erweiterungen. (Bald mit Unterstützung für verschiedene " +"Medientypen inklusive Videos!)" #: mediagoblin/templates/mediagoblin/root.html:34 msgid "" @@ -214,10 +224,13 @@ msgid "" "href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this" " software!)" msgstr "" +"Betrieben von Leuten wie dir. (Du kannst uns dabei helfen, " +"die Software zu verbessern!)" #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" -msgstr "" +msgstr "Anmeldevorgang fehlgeschlagen!" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" @@ -233,7 +246,7 @@ msgstr "Neues Konto registrieren!" #: mediagoblin/templates/mediagoblin/auth/register.html:30 msgid "Create" -msgstr "" +msgstr "Erstellen" #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format @@ -245,7 +258,7 @@ msgid "" "\n" "%(verification_url)s" msgstr "" -"Hi %(username)s,\n" +"Hallo %(username)s,\n" "\n" "um dein Konto bei GNU MediaGoblin zu aktivieren, musst du folgende Adresse in einem Webbrowser öffnen:\n" "\n" @@ -294,33 +307,35 @@ msgstr "Dieser Benutzer wurde leider nicht gefunden." #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 msgid "Media processing panel" -msgstr "" +msgstr "Medienverarbeitung" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 msgid "" "You can track the state of media being processed for your gallery here." msgstr "" +"Du kannst den Status der gerade in Bearbeitung befindlichen Medien hier " +"betrachten." #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 msgid "Media in-processing" -msgstr "" +msgstr "Medien in Bearbeitung" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 msgid "No media in-processing" -msgstr "" +msgstr "Keine Medien in Bearbeitung" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 msgid "These uploads failed to process:" -msgstr "" +msgstr "Die folgenden Uploads sind fehlgeschlagen" #: mediagoblin/templates/mediagoblin/user_pages/user.html:39 #: mediagoblin/templates/mediagoblin/user_pages/user.html:59 msgid "Email verification needed" -msgstr "" +msgstr "Email-Bestätigung benötigt" #: mediagoblin/templates/mediagoblin/user_pages/user.html:42 msgid "Almost done! Your account still needs to be activated." -msgstr "" +msgstr "Fast fertig! Dein Konto muss noch freigeschaltet werden." #: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" @@ -342,6 +357,8 @@ msgid "" "Someone has registered an account with this username, but it still has to be" " activated." msgstr "" +"Jemand hat bereits ein Konto mit diesem Benutzernamen registriert, aber es " +"muss noch aktiviert werden." #: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format @@ -360,7 +377,7 @@ msgstr "%(username)ss Profil" #: mediagoblin/templates/mediagoblin/user_pages/user.html:85 msgid "Here's a spot to tell others about yourself." -msgstr "" +msgstr "Hier kannst du Anderen etwas über dich zu erzählen." #: mediagoblin/templates/mediagoblin/user_pages/user.html:90 #: mediagoblin/templates/mediagoblin/user_pages/user.html:108 @@ -369,7 +386,7 @@ msgstr "Profil bearbeiten" #: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "This user hasn't filled in their profile (yet)." -msgstr "" +msgstr "Dieser Benutzer hat (noch) keine Daten in seinem Profil." #: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format @@ -380,23 +397,23 @@ msgstr "Alle Medien von %(username)s anschauen" msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." -msgstr "" +msgstr "Hier erscheinen deine Medien. Sobald du etwas hochgeladen hast." #: mediagoblin/templates/mediagoblin/user_pages/user.html:141 msgid "Add media" -msgstr "" +msgstr "Medien hinzufügen" #: mediagoblin/templates/mediagoblin/user_pages/user.html:147 msgid "There doesn't seem to be any media here yet..." -msgstr "" +msgstr "Scheinbar gibt es hier noch nichts …" #: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 msgid "feed icon" -msgstr "" +msgstr "Feed-Symbol" #: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 msgid "Atom feed" -msgstr "" +msgstr "Atom-Feed" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo index 72347f29bfe9092e5c5cbd32fc2b8a40690c4f9e..63a3294fd678c54717961f2fd38bf5a844e49384 100644 GIT binary patch delta 993 zcmXxiO-NKx6u|MLX=aI~W>aZ(&8U=6tDz4Ki4u%5A;_Xa;ptrE&W!I3_dPS+OwcBR z2pR}lNP-eU2-(oGRl13`wTTu*A+<{gsa5~mOfc{}=iNEyoqO-Q*FD?)V!kxHSR%5r zMI zrh3Ur6~UHz5#A-c&<)ao%p~V<4_?C-oWg3H!@c+tUE}vSfS=F}d~};g8=l21T0DrW z7-9o2(fA<7Y7@aP9=OS3+Y60ba07WC(o+VI%}NUCA=#pjiY^pg!gAI>qO1Rmjrap6 zv0{hFG-lCl^p6X66V&c3oWNn^ztV$OaS+{3UKQ8B;u-QaY{t%p!U+r^tz;BkzuV{r zc!F+&&+rhw#dci7BbYtFc*hB@V+TG&g>UdOennSsa#!Il4Z6F|pu3Xk;`4cQC-@xW z_!?c`RqVx9rebEXIEMFeBcFi$B5-#sd-AR2wyG@NdE`WHwkFo>rFAOQNgJwD37yuF z4ujEX(zE*Xl;e?UHN1kqaUY&;5t+e39KhFj88 zG59dUY$w4V2DGxegKWk$+ISAhDI>^bh+@4fWRf#MeTswCc+x&!y9-Jd+`P8{5KrIZ9Im@57#)k4z84PJPa;2^O@{Xxe?+DBWy?0E Nn4K\n" +"PO-Revision-Date: 2011-08-25 14:28+0000\n" +"Last-Translator: aleksejrs \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -194,6 +194,8 @@ msgid "" "Free, as in freedom. (We’re a GNU project, " "after all.)" msgstr "" +"Libera verko. (Ni ja estas projekto de <a " +"href=\"http://gnu.org\">GNU</a>.)" #: mediagoblin/templates/mediagoblin/root.html:32 msgid "" @@ -232,7 +234,7 @@ msgstr "Kreu konton!" #: mediagoblin/templates/mediagoblin/auth/register.html:30 msgid "Create" -msgstr "" +msgstr "Krei" #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format @@ -315,7 +317,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:39 #: mediagoblin/templates/mediagoblin/user_pages/user.html:59 msgid "Email verification needed" -msgstr "" +msgstr "Necesas konfirmo de retpoŝtadreso" #: mediagoblin/templates/mediagoblin/user_pages/user.html:42 msgid "Almost done! Your account still needs to be activated." @@ -357,7 +359,7 @@ msgstr "Profilo de %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/user.html:85 msgid "Here's a spot to tell others about yourself." -msgstr "" +msgstr "Jen estas spaceto por rakonti pri vi al aliaj." #: mediagoblin/templates/mediagoblin/user_pages/user.html:90 #: mediagoblin/templates/mediagoblin/user_pages/user.html:108 @@ -381,15 +383,15 @@ msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:141 msgid "Add media" -msgstr "" +msgstr "Aldoni dosieron" #: mediagoblin/templates/mediagoblin/user_pages/user.html:147 msgid "There doesn't seem to be any media here yet..." -msgstr "" +msgstr "Ĉi tie ŝajne estas ankoraŭ neniuj dosieroj…" #: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 msgid "feed icon" -msgstr "" +msgstr "flusimbolo" #: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 msgid "Atom feed" diff --git a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo index f107ac622d0da9dd8b5412a3c1864bc42223ab22..6adf552604366305cbffb9a2e6e21b7122b04bf4 100644 GIT binary patch delta 783 zcmXZaPe>GD7{~D^+wIS2>6W{*S-GzzVzNms779-^BN7({gF;widRD|YJKrSHpnna}&aGw(dVdEWUq@bu!lr3U}^ zHj!G3NK{0=?h`qUHN1lD`$amSQthd z6$bH4SbU+DoM*ul8rgcl!9C0$-~lY-5qyOmxQ4yBfjiNTh-5H^%~-~BxPbR@9WUT@ zs+aK@I@lKVMGi4|#OIqJi)dc_7ER*scn~+R4FjY(iZL|7E^(n5GL9zT6bA4)HsS)B zz{{A$Pxu)7c-e7$?=v{b;1}*in`)*tU3e4YXztIV+3*1ev4)qihx9v8Bc~`OG=XN( z9LXYf;WD=4mo5L`Rp!2RSfro981~^D_TU=cz`vNlA$FTqKSXm>Pp}*3(G*%mj$1yX z3HAeru`^cxSEkT(ZWT-T6X}p8w-i4F3zOAjL9Z#8IB_t+~>jq@z<>_17Jk z%uQFng~kG>hBGP8jVnjr)ymDOY*J-2Dc36|)4i&Dl+}XDC%vMp(r#AeJw4+(MO~R| bj8?`YR!iC~Bby`&AsbuTAA}fPB#2kBoe9OFnk|<|2c}Sp zNU)oAr{I-DMCYm?x=(}8R`4sPah&eU zxQKal`%O|&JmKeSkTuj7Z=fdrhCw{SbNB}@Vi&12Sb`6RA$L#%8fe3p*oLd9f$Lbr zPgunvUUn6?Oo}MQ0iHz{-E=eooW?Nf{dv>}-r^V@;&tpJ{b|f0rzrPP1I?oz$r?tm zjv@Tg@;gqjHvds1DQ@+N#Bm8P<42srV~k;nr*+hiQID#Emv9BOk%b($d`1nni?`7i zZvIyc)X7=+4EK=^L+79 T*|4@fcWt$lW5#;Z+i?B|i)C2F diff --git a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po index d8627710..d2e8f662 100644 --- a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po @@ -10,8 +10,8 @@ msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" "POT-Creation-Date: 2011-08-25 07:41-0500\n" -"PO-Revision-Date: 2011-08-25 12:41+0000\n" -"Last-Translator: cwebber \n" +"PO-Revision-Date: 2011-08-25 20:22+0000\n" +"Last-Translator: nvjacobo \n" "Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mediagoblin/team/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -197,6 +197,8 @@ msgid "" "Free, as in freedom. (We’re a GNU project, " "after all.)" msgstr "" +"Libre, como en la libertad. (Somos parte del proyecto GNU después de todo.)" #: mediagoblin/templates/mediagoblin/root.html:32 msgid "" diff --git a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo index 23d205cf7e508d92aaca24c8ee2a5e56a11419c9..a3f48cd7763cf9ef4ed2f61c36b5efb859717629 100644 GIT binary patch delta 806 zcmXZa%WD%+6u{xrn9_%}HrnQ)u}+I%f~6D-RobE{f_6~}T0{^uj?HLBJIOF6i@F&x zF6vTK7eyCRy2?U?Q6W3g`dZXw1vf71AJC-~f5!xd``vqUbI)Vub*7PdvmWv{+eEhe zL=K9`y8|K_{EqY3&E|f*ftRp|@MJ{3w>OI#mjdyVgSMU(_a@jhj z(Ze4xU*rgrnRxR+4$rWDfcvn4n!r~a#NWsxy9`=!EYVD82#>KoiS2k5HL>eBj27O* zWqgb~codg>(n>K|MGf>3HSjOY;UApDS;`;7Dqg_1sEPhX4K$T(7ILnoiP~Zxhj1BB zU>%R+7HWt5T_#gZQnXGu0Q;Zu|2r)#ewvFIJsHKrL#Zl+KwJEpxjx=?b0 zt;pGMV$Qy0d80;ZzEUh(j!`KZu2-_Hg>vob-gs>;+7%fw+)r!8jjFL|8Wqpks0M{- qHq@E749CjbX7E0~wx^H(-L}82+LqVa%_S3|j{gS?GpGzU+WrB1n|84P delta 741 zcmXZa-%C?r7{KwzxiyVet~JlBwW%0746&ckS~~HfASj&*-c6imV_HnML`Kl*7xZIY zq`Rtw6!fB-3JwH81VI-S$Uvy8!0=|b{Q(MoA2v9g&vV}Mp7(j4_q?Cu@8ciW9oC-) zk!p*GPei^R6^Y{(j-ijiBbdQaT*Pzu6NhjQui@Y^k!E~acNy>Vyn=2#>94JS3c2JG zw*|? ztz#7PxNTTeN012ACd}gno=fP#Z>R-SFoad)k^^nEj>D)0MX(E_=)xpwVJ3FsZJfiG z_!xIFj1Mfz>LFM|P4o*j@eU^OKSptc_WQAfSMduDpfgxYG>q)FTt{ta3U!O`VFy0J zUVMk$_#1VHtUZFu1l@df5mTryUSk5k*T)Uo*UoOB{-SZzg)^v~K0_^h31j#c^^E*Q zJtHC7)t$)TLwt^$nS\n" +"PO-Revision-Date: 2011-08-25 17:38+0000\n" +"Last-Translator: gap \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -106,7 +106,7 @@ msgstr "Editați profilul unui utilizator. Se recomandă prudență." #: mediagoblin/process_media/errors.py:44 msgid "Invalid file given for media type." -msgstr "Formatul fișierului nu corespunde cu tipul selectat." +msgstr "Formatul fișierului nu corespunde cu tipul de media selectat." #: mediagoblin/submit/forms.py:25 msgid "File" @@ -154,7 +154,7 @@ msgstr "logo MediaGoblin" #: mediagoblin/templates/mediagoblin/base.html:52 msgid "Submit media" -msgstr "Transmiteți fișier" +msgstr "Transmiteți un fișier media" #: mediagoblin/templates/mediagoblin/base.html:63 msgid "verify your email!" @@ -195,6 +195,7 @@ msgid "" "Free, as in freedom. (We’re a GNU project, " "after all.)" msgstr "" +"Liber. (Suntem un proiect GNU, până la urmă.)" #: mediagoblin/templates/mediagoblin/root.html:32 msgid "" @@ -381,7 +382,7 @@ msgstr "Acest utilizator nu și-a completat (încă) profilul." #: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format msgid "View all of %(username)s's media" -msgstr "Toate fișierele lui %(username)s" +msgstr "Toate fișierele media ale lui %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/user.html:135 msgid "" diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo index 55f611d57ebacb739f32e4586199edb161431dc6..49aa9ccbe40da5023ae8512efb64a3c5be370c55 100644 GIT binary patch delta 1133 zcmYk)OGs2v7{KvQO)E2+O7qd{PGXpkqSQ=#DFsH6i%eWZ#iZAobY^PC$buN3h!mO# zJvNpU6s<<5NoU5#s;J$$6oFBTGN=}9B3jg<{%6KToBKQG+;hIix%X9d|AD~6ME{=z zkuNrpQW2S7C9(~(R*Tf)AzX^Lu?0tQCoWGHIgAIf8wb&jt20EBune2A0tqemaWRfz zE`~7$KV*ns3K@K6K?ks{5h=hOxDiic5njVx_+()|kJ-#^nIcQD0PC>?S71Ntb9eC@ zzQBA8WQknCIc&tbY=1oQ1kq?t=5P~!#~ifr;8LUz_4|EDZaIc)(TT*8-i7rMOlBU! zG>l>~zQl9*3$Nm74wFLO`5EX=e_|e{ucLdc#0GSs?&LXgR({}iT)sZ;e$-ca5p}|L z)K}h%sdx*kaTN6p&tnZHZ-~eBA7xO^!d2Xg<7nVVJdTM}r~iot)Peg@2fnkg{s8qS zc#Znz-lLB97k6X15l`qteN$09g>R65YnhZ#))5x=+Jgnj-n2!fl_h1v_g7}-I$F&Z zpLyQvGxju@t!A6)^E9_zc6iOID-L&)*}m0#Dfo6}MUq`bRY*-+T`FLxal`6SGggP1 zQUO*%Ms=IVHT*lJHQ1A}Inl4~@oG|ytB}=IWaQ;v@|j+@!)0#q*;7;1BTmeyG3&aa z0xH5p@0{es3=+<|VOX6EXRHCk>bCllr_>ET)p@M`ST?eBTGv^Q zSlvNeR(nEDtTDZ*lh}b+*_6v{aCjj5M5!93mnmJkivC}h)Ork;F4J(ji!XRRji%4% zbe|P9qQb$9oUe&h>LKC6DoO{l^w3L$XDY;OT9-CR$S6;)Q|B^Ngwi`GVUqU|_J)J@ I^^cSO0g?(+rvLx| delta 746 zcmXZaPe@cz6vy#jGtH!F+2o9))2K6zg{X}vqV@;U{!kQ%M$sn8T(vR@p+$>u6CxBX6(J~uzNg;mbMAfjo^#KA_tDvv{ygx ~8GdPc7 z{1B6)R)UXAq;VTtu%$n%U(DLq} z-EgK}x`5}=@;XlldI;WQ7Pl~k=?3X4o diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po index 53222a97..9adc9b83 100644 --- a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" "POT-Creation-Date: 2011-08-25 07:41-0500\n" -"PO-Revision-Date: 2011-08-25 12:41+0000\n" -"Last-Translator: cwebber \n" +"PO-Revision-Date: 2011-08-25 14:35+0000\n" +"Last-Translator: aleksejrs \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -116,7 +116,7 @@ msgstr "" #: mediagoblin/submit/views.py:50 msgid "The file doesn't seem to be an image!" -msgstr "" +msgstr "Файл, похоже, не является картинкой!" #: mediagoblin/submit/views.py:122 msgid "Woohoo! Submitted!" @@ -124,7 +124,7 @@ msgstr "Ура! Файл загружен!" #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" -msgstr "" +msgstr "Ой!" #: mediagoblin/templates/mediagoblin/404.html:24 msgid "There doesn't seem to be a page at this address. Sorry!" @@ -142,11 +142,11 @@ msgstr "" #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" -msgstr "" +msgstr "GNU MediaGoblin" #: mediagoblin/templates/mediagoblin/base.html:47 msgid "MediaGoblin logo" -msgstr "" +msgstr "Символ MediaGoblin" #: mediagoblin/templates/mediagoblin/base.html:52 msgid "Submit media" @@ -160,7 +160,7 @@ msgstr "подтвердите ваш адрес электронной почт #: mediagoblin/templates/mediagoblin/auth/login.html:26 #: mediagoblin/templates/mediagoblin/auth/login.html:34 msgid "Log in" -msgstr "" +msgstr "Представиться" #: mediagoblin/templates/mediagoblin/base.html:89 msgid "" @@ -237,6 +237,11 @@ msgid "" "\n" "%(verification_url)s" msgstr "" +"Привет, %(username)s!\n" +"\n" +"Чтобы активировать свою учётную запись в GNU MediaGoblin, откройте в своём веб‐браузере следующую ссылку:\n" +"\n" +"%(verification_url)s" #: mediagoblin/templates/mediagoblin/edit/edit.html:29 #, python-format @@ -378,7 +383,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 msgid "Atom feed" -msgstr "" +msgstr "лента в формате Atom" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo index e209556fa45cdb01535318dcb02e44fef07bf2a0..2136e0a3fa1708e1a3e36f61c42b599fb80ab2ae 100644 GIT binary patch delta 1712 zcmY+@UuYaf90%}UqR}*MvH90DN!v`~zXWoZ*c7EPw5eVj(`u+xi-@hxxpRAy-J3mT zX0N>xxC&ZCUxY3AAVP(!3W7+2Meq;8A^0Fc`XC}y5E0)LAH)X{{LXFuzT9VKcV~Wo zW^Vb|>akDit+m@NM8EGL>LH?Ux`?vyC-?%~(M^O`RDkXH?jn2$^DFrH6kLXf;eT)k zJk(3H3(mmva303SA*T!>e$2AJK#G8vGJ|0T+I~0$ z+u;nvD>?zO7hQnJjbgYHz6o7LZ$r24Bj_so7P^X8;RyT@7U92e33>xW4E|EX;C>8R zk%e103U|XSdm#mfnDm!hfJka0=((5u zb?z`0ork9&67HZ6F+ef2yfW5icHKEOJ^4s-y|Zs{G2)udSk0A@1#xNiB3E8M(tg&6 zl^;54+6Bvi_sKpYAsI-MV_b(8+y`bX0cHZD=Xc7)2*}f zDvW$zxhzW3n6UbCz&&AxsaYtCmFM~@ir4@p`|0D&xk+B@f1rO}`9h_A+rA?Cs{i_d zoR$^Cc!iZ3b)}>UB6QTH5~JnGg`GpmI|E&#xwx5m(dAY~s)iLJop&W5@hx3XZVlvL zTxi_zBgKliL0WhySPNeot8sjmiH(balVqN-tmyi}RR!@qt`#pSJjC&&FR_VKR%~1x zYgXPE{IsQ(!$&x!VEuhT;-C#vX>9B*dAhSJE6!3*q|?prxLDiTI!#YBk0`xXo?LGl zN6KC`;4Che$KB~6ZfzrQk+YEdYZovLZ{2}y#6>5zRfx)5YnoLRs$pnxj|_t0suW~s zq{r9SJ|nFN>G;;x&{?!13|TU9@V&>=bkiGU1jFUEF;2$)cbW~@tkoTGUWV?vNZc|M fP~T*A{>9T2I&VRTbhz)sdTC_aQQFpB?B*F}RORT#rTJd7@!Mg4sa z`Gvf*^Iw8e6ne`N2@n3Z3s!L*YwvoI25iP=+>N@yfSotd$@(T9$1&9VzT!6giFYtq zC(?pbIFAcBjAQjhkw$`F^&%Uvf^JRNf^OW8T!tJ$J^4B0pHjd|9Jlk2?EDOtlYfi) z#P4w;74=4gX{vDx4qy~JZ~`~u8|=ju+=LOP)mMBFb;Ew! zlXl+3R`M56-@qj5f#z`s7QYj;5%@X2e)~8Yn89Os54YnA>H%wc2R&d2!?+dKVjudk zAGaS}^ zJq<=&`*K#IV5!f+yDIE%Qa$d;lDDp_Ouh8P)OdptIGQysS!Oz6q%&6CgF4*v%_K8V5q diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po index e4183c18..dd30371a 100644 --- a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" "POT-Creation-Date: 2011-08-25 07:41-0500\n" -"PO-Revision-Date: 2011-08-25 12:41+0000\n" -"Last-Translator: cwebber \n" +"PO-Revision-Date: 2011-08-25 13:07+0000\n" +"Last-Translator: joar \n" "Language-Team: Swedish (http://www.transifex.net/projects/p/mediagoblin/team/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -194,6 +194,8 @@ msgid "" "Free, as in freedom. (We’re a GNU project, " "after all.)" msgstr "" +"Är fritt som i frihet. (Vi är ju ett GNU-projekt.)" #: mediagoblin/templates/mediagoblin/root.html:32 msgid "" @@ -211,6 +213,8 @@ msgid "" "Built for extensibility. (Multiple media types coming soon to the software," " including video support!)" msgstr "" +"Byggd för utbyggbarhet. (Flera mediatyper kommer snart till MediaGoblin, " +"bland annat video!)" #: mediagoblin/templates/mediagoblin/root.html:34 msgid "" @@ -218,10 +222,13 @@ msgid "" "href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this" " software!)" msgstr "" +"Drivs av människor som du. (Du kan hjälpa os forbättra " +"MediaGoblin!)" #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" -msgstr "" +msgstr "Inloggning misslyckades!" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" @@ -237,7 +244,7 @@ msgstr "Skapa ett konto!" #: mediagoblin/templates/mediagoblin/auth/register.html:30 msgid "Create" -msgstr "" +msgstr "Skapa" #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format @@ -298,33 +305,33 @@ msgstr "Finns ingen sådan användare ännu." #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 msgid "Media processing panel" -msgstr "" +msgstr "Mediabehandlingspanel" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 msgid "" "You can track the state of media being processed for your gallery here." -msgstr "" +msgstr "Här kan du se status för mediabehandling av bilder i ditt galleri." #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 msgid "Media in-processing" -msgstr "" +msgstr "Media under behandling" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 msgid "No media in-processing" -msgstr "" +msgstr "Ingen media under behandling" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 msgid "These uploads failed to process:" -msgstr "" +msgstr "De här behandlingarna misslyckades:" #: mediagoblin/templates/mediagoblin/user_pages/user.html:39 #: mediagoblin/templates/mediagoblin/user_pages/user.html:59 msgid "Email verification needed" -msgstr "" +msgstr "E-postadressverifiering krävs." #: mediagoblin/templates/mediagoblin/user_pages/user.html:42 msgid "Almost done! Your account still needs to be activated." -msgstr "" +msgstr "Nästan klar! Ditt konto behöver bara aktiveras." #: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" @@ -345,6 +352,8 @@ msgid "" "Someone has registered an account with this username, but it still has to be" " activated." msgstr "" +"Någon har redan registrerat ett konto med det här användarnamnet men det har" +" inte aktiverats." #: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format @@ -363,7 +372,7 @@ msgstr "%(username)ss profil" #: mediagoblin/templates/mediagoblin/user_pages/user.html:85 msgid "Here's a spot to tell others about yourself." -msgstr "" +msgstr "Här kan du berätta för andra om dig själv." #: mediagoblin/templates/mediagoblin/user_pages/user.html:90 #: mediagoblin/templates/mediagoblin/user_pages/user.html:108 @@ -372,7 +381,7 @@ msgstr "Redigera profil" #: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "This user hasn't filled in their profile (yet)." -msgstr "" +msgstr "Den här användaren har inte fyllt i sin profilsida ännu." #: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format @@ -384,22 +393,24 @@ msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" +"Här kommer din media att dyka upp, du verkar inte ha lagt till någonting " +"ännu." #: mediagoblin/templates/mediagoblin/user_pages/user.html:141 msgid "Add media" -msgstr "" +msgstr "Lägg till media" #: mediagoblin/templates/mediagoblin/user_pages/user.html:147 msgid "There doesn't seem to be any media here yet..." -msgstr "" +msgstr "Det verkar inte finnas någon media här ännu." #: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 msgid "feed icon" -msgstr "" +msgstr "feed-ikon" #: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 msgid "Atom feed" -msgstr "" +msgstr "Atom-feed" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" From ad56a4826b987a0fa8f65849d3611f61cc1f50d6 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 28 Aug 2011 17:30:45 -0500 Subject: [PATCH 0942/2731] Testing logo without logo --- mediagoblin/static/images/logo.png | Bin 3340 -> 2479 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/mediagoblin/static/images/logo.png b/mediagoblin/static/images/logo.png index 019ec5ec877b08fa7789f82f1cef57460bfc8807..1c08a2fb6dd61af7a298afe7e6bfdf8936a64487 100644 GIT binary patch delta 2443 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 From 46df0297e029c075a2c28b0c31490c560c99158c Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Mon, 29 Aug 2011 00:42:55 +0200 Subject: [PATCH 0943/2731] Added notice that deletion of a media entry is *permanent* --- .../templates/mediagoblin/confirm/confirm_delete.html | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/mediagoblin/templates/mediagoblin/confirm/confirm_delete.html b/mediagoblin/templates/mediagoblin/confirm/confirm_delete.html index ada89d5d..67d45811 100644 --- a/mediagoblin/templates/mediagoblin/confirm/confirm_delete.html +++ b/mediagoblin/templates/mediagoblin/confirm/confirm_delete.html @@ -31,6 +31,14 @@ Really delete {{ title }}? {%- endtrans %}

          +

          + + {%- trans -%} + If you choose yes, the media entry will be deleted permanently. + {%- endtrans %} + +

          + {{ wtforms_util.render_divs(form) }}
          From 25ba955e20e9262f2599a21d234511b724569717 Mon Sep 17 00:00:00 2001 From: Alejandro Villanueva Date: Thu, 21 Jul 2011 11:55:41 -0500 Subject: [PATCH 0944/2731] Adding fotgot password functionality --- mediagoblin/auth/forms.py | 32 +++++++ mediagoblin/auth/lib.py | 40 +++++++- mediagoblin/auth/routing.py | 12 +++ mediagoblin/auth/views.py | 96 ++++++++++++++++++- mediagoblin/db/migrations.py | 15 +++ mediagoblin/db/models.py | 2 + .../templates/mediagoblin/auth/change_fp.html | 37 +++++++ .../mediagoblin/auth/forgot_password.html | 37 +++++++ .../mediagoblin/auth/fp_changed_success.html | 25 +++++ .../mediagoblin/auth/fp_email_sent.html | 26 +++++ .../auth/fp_verification_email.txt | 25 +++++ .../templates/mediagoblin/auth/login.html | 6 ++ 12 files changed, 346 insertions(+), 7 deletions(-) create mode 100644 mediagoblin/templates/mediagoblin/auth/change_fp.html create mode 100644 mediagoblin/templates/mediagoblin/auth/forgot_password.html create mode 100644 mediagoblin/templates/mediagoblin/auth/fp_changed_success.html create mode 100644 mediagoblin/templates/mediagoblin/auth/fp_email_sent.html create mode 100644 mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt diff --git a/mediagoblin/auth/forms.py b/mediagoblin/auth/forms.py index 917909c5..1be74aa6 100644 --- a/mediagoblin/auth/forms.py +++ b/mediagoblin/auth/forms.py @@ -15,6 +15,7 @@ # along with this program. If not, see . import wtforms +import re from mediagoblin.util import fake_ugettext_passthrough as _ @@ -49,3 +50,34 @@ class LoginForm(wtforms.Form): password = wtforms.PasswordField( _('Password'), [wtforms.validators.Required()]) + + +class ForgotPassForm(wtforms.Form): + username = wtforms.TextField( + 'Username or email', + [wtforms.validators.Required()]) + + def validate_username(form,field): + if not (re.match(r'^\w+$',field.data) or + re.match(r'^.+@[^.].*\.[a-z]{2,10}$',field.data, re.IGNORECASE)): + raise wtforms.ValidationError(u'Incorrect input') + + +class ChangePassForm(wtforms.Form): + password = wtforms.PasswordField( + 'Password', + [wtforms.validators.Required(), + wtforms.validators.Length(min=6, max=30), + wtforms.validators.EqualTo( + 'confirm_password', + 'Passwords must match.')]) + confirm_password = wtforms.PasswordField( + 'Confirm password', + [wtforms.validators.Required()]) + userid = wtforms.HiddenField( + '', + [wtforms.validators.Required()]) + token = wtforms.HiddenField( + '', + [wtforms.validators.Required()]) + diff --git a/mediagoblin/auth/lib.py b/mediagoblin/auth/lib.py index 6d1aec49..df93b666 100644 --- a/mediagoblin/auth/lib.py +++ b/mediagoblin/auth/lib.py @@ -47,7 +47,7 @@ def bcrypt_check_password(raw_pass, stored_hash, extra_salt=None): # number (thx to zooko on this advice, which I hopefully # incorporated right.) # - # See also: + # See also: rand_salt = bcrypt.gensalt(5) randplus_stored_hash = bcrypt.hashpw(stored_hash, rand_salt) randplus_hashed_pass = bcrypt.hashpw(hashed_pass, rand_salt) @@ -99,7 +99,7 @@ def send_verification_email(user, request): Args: - user: a user object - - request: the request + - request: the request """ rendered_email = render_template( request, 'mediagoblin/auth/verification_email.txt', @@ -116,8 +116,38 @@ def send_verification_email(user, request): [user['email']], # TODO # Due to the distributed nature of GNU MediaGoblin, we should - # find a way to send some additional information about the - # specific GNU MediaGoblin instance in the subject line. For - # example "GNU MediaGoblin @ Wandborg - [...]". + # find a way to send some additional information about the + # specific GNU MediaGoblin instance in the subject line. For + # example "GNU MediaGoblin @ Wandborg - [...]". 'GNU MediaGoblin - Verify your email!', rendered_email) + + +EMAIL_FP_VERIFICATION_TEMPLATE = ( + u"http://{host}{uri}?" + u"userid={userid}&token={fp_verification_key}") + +def send_fp_verification_email(user,request): + """ + Send the verification email to users to change their password. + + Args: + - user: a user object + - request: the request + """ + rendered_email = render_template( + request, 'mediagoblin/auth/fp_verification_email.txt', + {'username': user['username'], + 'verification_url': EMAIL_FP_VERIFICATION_TEMPLATE.format( + host=request.host, + uri=request.urlgen('mediagoblin.auth.verify_forgot_password'), + userid=unicode(user['_id']), + fp_verification_key=user['fp_verification_key'])}) + + # TODO: There is no error handling in place + send_email( + mg_globals.email_sender_address, + [user['email']], + 'GNU MediaGoblin - Change forgotten password!', + rendered_email) + diff --git a/mediagoblin/auth/routing.py b/mediagoblin/auth/routing.py index 9547b3ea..14e87133 100644 --- a/mediagoblin/auth/routing.py +++ b/mediagoblin/auth/routing.py @@ -30,4 +30,16 @@ auth_routes = [ Route('mediagoblin.auth.resend_verification_success', '/resend_verification_success/', template='mediagoblin/auth/resent_verification_email.html', + controller='mediagoblin.views:simple_template_render'), + Route('mediagoblin.auth.forgot_password', '/forgotpass/', + controller='mediagoblin.auth.views:forgot_password'), + Route('mediagoblin.auth.verify_forgot_password', '/verifyforgotpass/', + controller='mediagoblin.auth.views:verify_forgot_password'), + Route('mediagoblin.auth.fp_changed_success', + '/fp_changed_success/', + template='mediagoblin/auth/fp_changed_success.html', + controller='mediagoblin.views:simple_template_render'), + Route('mediagoblin.auth.fp_email_sent', + '/fp_email_sent/', + template='mediagoblin/auth/fp_email_sent.html', controller='mediagoblin.views:simple_template_render')] diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 4c4a34fd..50276442 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -15,6 +15,7 @@ # along with this program. If not, see . import uuid +import datetime from webob import exc @@ -22,10 +23,11 @@ from mediagoblin import messages from mediagoblin import mg_globals from mediagoblin.util import render_to_response, redirect, render_404 from mediagoblin.util import pass_to_ugettext as _ -from mediagoblin.db.util import ObjectId +from mediagoblin.db.util import ObjectId, InvalidId from mediagoblin.auth import lib as auth_lib from mediagoblin.auth import forms as auth_forms -from mediagoblin.auth.lib import send_verification_email +from mediagoblin.auth.lib import send_verification_email, \ + send_fp_verification_email def register(request): @@ -187,3 +189,93 @@ def resend_activation(request): return redirect( request, 'mediagoblin.user_pages.user_home', user=request.user['username']) + + +def forgot_password(request): + """ + Forgot password view + + Sends an email whit an url to renew forgoten password + """ + fp_form = auth_forms.ForgotPassForm(request.POST) + + if request.method == 'POST' and fp_form.validate(): + user = request.db.User.one( + {'$or': [{'username': request.POST['username']}, + {'email': request.POST['username']}]}) + + if not user: + fp_form.username.errors.append( + u"Sorry, the username doesn't exists") + else: + user['fp_verification_key'] = unicode(uuid.uuid4()) + user['fp_token_expire'] = datetime.datetime.now() + \ + datetime.timedelta(days=10) + user.save() + + send_fp_verification_email(user, request) + + return redirect(request, 'mediagoblin.auth.fp_email_sent') + + return render_to_response( + request, + 'mediagoblin/auth/forgot_password.html', + {'fp_form': fp_form}) + + +def verify_forgot_password(request): + if request.method == 'GET': + # If we don't have userid and token parameters, we can't do anything;404 + if (not request.GET.has_key('userid') or + not request.GET.has_key('token')): + return exc.HTTPNotFound('You must provide userid and token') + + # check if it's a valid Id + try: + user = request.db.User.find_one( + {'_id': ObjectId(unicode(request.GET['userid']))}) + except InvalidId: + return exc.HTTPNotFound('Invalid id') + + # check if we have a real user and correct token + if (user and + user['fp_verification_key'] == unicode(request.GET['token'])): + cp_form = auth_forms.ChangePassForm(request.GET) + + return render_to_response( + request, + 'mediagoblin/auth/change_fp.html', + {'cp_form': cp_form}) + # in case there is a valid id but no user whit that id in the db + else: + return exc.HTTPNotFound('User not found') + if request.method == 'POST': + # verification doing here to prevent POST values modification + try: + user = request.db.User.find_one( + {'_id': ObjectId(unicode(request.POST['userid']))}) + except InvalidId: + return exc.HTTPNotFound('Invalid id') + + cp_form = auth_forms.ChangePassForm(request.POST) + + # verification doing here to prevent POST values modification + # if token and id are correct they are able to change their password + if (user and + user['fp_verification_key'] == unicode(request.POST['token'])): + + if cp_form.validate(): + user['pw_hash'] = auth_lib.bcrypt_gen_password_hash( + request.POST['password']) + user['fp_verification_key'] = None + user.save() + + return redirect(request, + 'mediagoblin.auth.fp_changed_success') + else: + return render_to_response( + request, + 'mediagoblin/auth/change_fp.html', + {'cp_form': cp_form}) + else: + return exc.HTTPNotFound('User not found') diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py index 5456b248..b0cb6965 100644 --- a/mediagoblin/db/migrations.py +++ b/mediagoblin/db/migrations.py @@ -92,3 +92,18 @@ def mediaentry_add_fail_error_and_metadata(database): {'fail_metadata': {'$exists': False}}, {'$set': {'fail_metadata': {}}}, multi=True) + + +@RegisterMigration(6) +def user_add_forgot_password_token_and_expires(database): + """ + Add token and expiration fields to help recover forgotten passwords + """ + database['users'].update( + {'fp_token': {'$exists': False}}, + {'$set': {'fp_token': ''}}, + multi=True) + database['users'].update( + {'fp_token_expire': {'$exists': False}}, + {'$set': {'fp_token_expire': ''}}, + multi=True) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index b6e52441..a626937d 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -78,6 +78,8 @@ class User(Document): 'url' : unicode, 'bio' : unicode, # May contain markdown 'bio_html': unicode, # May contain plaintext, or HTML + 'fp_token': unicode, # forgotten password verification key + 'fp_token_expire': datetime.datetime } required_fields = ['username', 'created', 'pw_hash', 'email'] diff --git a/mediagoblin/templates/mediagoblin/auth/change_fp.html b/mediagoblin/templates/mediagoblin/auth/change_fp.html new file mode 100644 index 00000000..0a3c76f6 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/auth/change_fp.html @@ -0,0 +1,37 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% extends "mediagoblin/base.html" %} + +{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} + +{% block mediagoblin_content %} + +
          + +
          +{% endblock %} + diff --git a/mediagoblin/templates/mediagoblin/auth/forgot_password.html b/mediagoblin/templates/mediagoblin/auth/forgot_password.html new file mode 100644 index 00000000..1708874f --- /dev/null +++ b/mediagoblin/templates/mediagoblin/auth/forgot_password.html @@ -0,0 +1,37 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% extends "mediagoblin/base.html" %} + +{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} + +{% block mediagoblin_content %} + +
          + +
          +{% endblock %} + diff --git a/mediagoblin/templates/mediagoblin/auth/fp_changed_success.html b/mediagoblin/templates/mediagoblin/auth/fp_changed_success.html new file mode 100644 index 00000000..dfce1423 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/auth/fp_changed_success.html @@ -0,0 +1,25 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% extends "mediagoblin/base.html" %} + +{% block mediagoblin_content %} +

          + Your password have been changed. Now you can Login +

          +{% endblock %} + diff --git a/mediagoblin/templates/mediagoblin/auth/fp_email_sent.html b/mediagoblin/templates/mediagoblin/auth/fp_email_sent.html new file mode 100644 index 00000000..d7fad722 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/auth/fp_email_sent.html @@ -0,0 +1,26 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% extends "mediagoblin/base.html" %} + +{% block mediagoblin_content %} +

          + Please check your email. We send an email whit an url to change your password. +

          + +{% endblock %} + diff --git a/mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt b/mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt new file mode 100644 index 00000000..1b2dbe2f --- /dev/null +++ b/mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt @@ -0,0 +1,25 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +Hi {{ username }}, + +to change your GNU MediaGoblin password, open the following URL in your web browser + +{{ verification_url|safe }} + +If you think this is an error, just ignore this email and continue being a happy goblin! + diff --git a/mediagoblin/templates/mediagoblin/auth/login.html b/mediagoblin/templates/mediagoblin/auth/login.html index afbecf20..75e6eed1 100644 --- a/mediagoblin/templates/mediagoblin/auth/login.html +++ b/mediagoblin/templates/mediagoblin/auth/login.html @@ -44,6 +44,12 @@ {%- trans %}Create one here!{% endtrans %}

          +

          + {% trans %}Forgot your password?{% endtrans %} +
          + + {%- trans %}Send a reminder!{% endtrans %} +

          {% endif %}
          From 65030735085782be067c8c97e288e9baf3dbdbf4 Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Sun, 28 Aug 2011 21:13:07 -0500 Subject: [PATCH 0945/2731] oops, uses Alejandro's fp_verification_key. my bad. --- mediagoblin/db/migrations.py | 4 ++-- mediagoblin/db/models.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py index b0cb6965..cf09e817 100644 --- a/mediagoblin/db/migrations.py +++ b/mediagoblin/db/migrations.py @@ -100,8 +100,8 @@ def user_add_forgot_password_token_and_expires(database): Add token and expiration fields to help recover forgotten passwords """ database['users'].update( - {'fp_token': {'$exists': False}}, - {'$set': {'fp_token': ''}}, + {'fp_verification_key': {'$exists': False}}, + {'$set': {'fp_verification_key': ''}}, multi=True) database['users'].update( {'fp_token_expire': {'$exists': False}}, diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index a626937d..ad989f81 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -78,7 +78,7 @@ class User(Document): 'url' : unicode, 'bio' : unicode, # May contain markdown 'bio_html': unicode, # May contain plaintext, or HTML - 'fp_token': unicode, # forgotten password verification key + 'fp_verification_key': unicode, # forgotten password verification key 'fp_token_expire': datetime.datetime } From f85909c061a6cff211cf27f46879ad096ae7852f Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Sun, 28 Aug 2011 21:41:42 -0500 Subject: [PATCH 0946/2731] needed to access email_sender_address through mg_globals.app_config instead of mg_globals.email_sender_address. --- mediagoblin/auth/lib.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/auth/lib.py b/mediagoblin/auth/lib.py index df93b666..31dc4b7f 100644 --- a/mediagoblin/auth/lib.py +++ b/mediagoblin/auth/lib.py @@ -146,7 +146,7 @@ def send_fp_verification_email(user,request): # TODO: There is no error handling in place send_email( - mg_globals.email_sender_address, + mg_globals.app_config['email_sender_address'], [user['email']], 'GNU MediaGoblin - Change forgotten password!', rendered_email) From fac7b8c9b160db7c6c85f9677acfb7bc7650c23f Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Sun, 28 Aug 2011 22:46:21 -0500 Subject: [PATCH 0947/2731] Changed phrasing, spelling, and added translations --- mediagoblin/templates/mediagoblin/auth/change_fp.html | 4 ++-- .../templates/mediagoblin/auth/forgot_password.html | 4 ++-- .../mediagoblin/auth/fp_changed_success.html | 4 +++- .../templates/mediagoblin/auth/fp_email_sent.html | 4 +++- .../mediagoblin/auth/fp_verification_email.txt | 11 ++++++++--- mediagoblin/templates/mediagoblin/auth/login.html | 2 +- 6 files changed, 19 insertions(+), 10 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/auth/change_fp.html b/mediagoblin/templates/mediagoblin/auth/change_fp.html index 0a3c76f6..4be7e065 100644 --- a/mediagoblin/templates/mediagoblin/auth/change_fp.html +++ b/mediagoblin/templates/mediagoblin/auth/change_fp.html @@ -23,8 +23,8 @@
          -
        {% if allow_registration %} -

        Excited to join us? To add your own media, make collections and save favorites...

        +

        Excited to join us?

        Create a free account or Set up MediaGoblin on your own server {% endif %} From 8775f68d33279347f7bc72258d9133f20b192149 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 4 Sep 2011 16:37:38 -0500 Subject: [PATCH 0975/2731] Make "newer" and "older" arrows not have underlined gap between image / text --- .../templates/mediagoblin/utils/pagination.html | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/utils/pagination.html b/mediagoblin/templates/mediagoblin/utils/pagination.html index cdac01c8..7a99880a 100644 --- a/mediagoblin/templates/mediagoblin/utils/pagination.html +++ b/mediagoblin/templates/mediagoblin/utils/pagination.html @@ -33,15 +33,18 @@

        diff --git a/mediagoblin/templates/mediagoblin/test_submit.html b/mediagoblin/templates/mediagoblin/test_submit.html index 78b88ae8..190b9ac3 100644 --- a/mediagoblin/templates/mediagoblin/test_submit.html +++ b/mediagoblin/templates/mediagoblin/test_submit.html @@ -26,6 +26,7 @@ + {{ csrf_token }} diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 442bef6d..433f74dc 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -72,6 +72,7 @@ {{ wtforms_util.render_divs(comment_form) }}
        + {{ csrf_token }}
        {% endif %} diff --git a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html index 48fbc3b0..3acf802b 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html @@ -42,6 +42,7 @@ {{ wtforms_util.render_divs(form) }}
        + {{ csrf_token }}
        From 6be33a778098e38b4951dd358c5016e9fcd280e6 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 4 Sep 2011 22:26:57 -0500 Subject: [PATCH 0983/2731] Removing description field cruft that mostly existed for testing purposes. :) --- mediagoblin/auth/forms.py | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/mediagoblin/auth/forms.py b/mediagoblin/auth/forms.py index daf7b993..1dfaf095 100644 --- a/mediagoblin/auth/forms.py +++ b/mediagoblin/auth/forms.py @@ -24,18 +24,14 @@ class RegistrationForm(wtforms.Form): _('Username'), [wtforms.validators.Required(), wtforms.validators.Length(min=3, max=30), - wtforms.validators.Regexp(r'^\w+$')], - description=_( - u"This is the name other users will identify you with.")) + wtforms.validators.Regexp(r'^\w+$')]) password = wtforms.PasswordField( _('Password'), [wtforms.validators.Required(), wtforms.validators.Length(min=6, max=30), wtforms.validators.EqualTo( 'confirm_password', - _('Passwords must match.'))], - description=_( - u"Try to use a strong password!")) + _('Passwords must match.'))]) confirm_password = wtforms.PasswordField( _('Confirm password'), [wtforms.validators.Required()], @@ -44,9 +40,7 @@ class RegistrationForm(wtforms.Form): email = wtforms.TextField( _('Email address'), [wtforms.validators.Required(), - wtforms.validators.Email()], - description=_( - u"Your email will never be published.")) + wtforms.validators.Email()]) class LoginForm(wtforms.Form): From 7b80685ac544886cb6cfa00424c785e1d5fb5c9c Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 4 Sep 2011 23:05:06 -0500 Subject: [PATCH 0984/2731] Added a description to the slug field on the media entry form. --- mediagoblin/edit/forms.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index 7bf3c6a8..f81d58b2 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -25,13 +25,17 @@ class EditForm(wtforms.Form): title = wtforms.TextField( _('Title'), [wtforms.validators.Length(min=0, max=500)]) - slug = wtforms.TextField( - _('Slug'), - [wtforms.validators.Required(message=_("The slug can't be empty"))]) description = wtforms.TextAreaField('Description of this work') tags = wtforms.TextField( _('Tags'), [tag_length_validator]) + slug = wtforms.TextField( + _('Slug'), + [wtforms.validators.Required(message=_("The slug can't be empty"))], + description=_( + "The title part of this media's URL. " + "You usually don't need to change this.")) + class EditProfileForm(wtforms.Form): bio = wtforms.TextAreaField( @@ -42,6 +46,7 @@ class EditProfileForm(wtforms.Form): [wtforms.validators.Optional(), wtforms.validators.URL(message='Improperly formed URL')]) + class EditAttachmentsForm(wtforms.Form): attachment_name = wtforms.TextField( 'Title') From 8d1c9863b6541e811b0168cca29c3dc33f8b6cf1 Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Mon, 5 Sep 2011 14:02:23 -0500 Subject: [PATCH 0985/2731] refactors verify_forgot_password --- mediagoblin/auth/views.py | 111 +++++++++++++++++++------------------- 1 file changed, 54 insertions(+), 57 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 589d87cf..7ffa7416 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -222,62 +222,59 @@ def forgot_password(request): def verify_forgot_password(request): + # get session variables, and specifically check for presence of token + mysession = _process_for_token(request) + if not mysession['token_complete']: + return render_404(request) + + session_token = mysession['vars']['token'] + session_userid = mysession['vars']['userid'] + session_vars = mysession['vars'] + + # check if it's a valid Id + try: + user = request.db.User.find_one( + {'_id': ObjectId(unicode(session_userid))}) + except InvalidId: + return render_404(request) + + # check if we have a real user and correct token + if (user and user['fp_verification_key'] == unicode(session_token) and + datetime.datetime.now() < user['fp_token_expire']): + cp_form = auth_forms.ChangePassForm(session_vars) + + if request.method == 'POST' and cp_form.validate(): + user['pw_hash'] = auth_lib.bcrypt_gen_password_hash( + request.POST['password']) + user['fp_verification_key'] = None + user['fp_token_expire'] = None + user.save() + + return redirect(request, 'mediagoblin.auth.fp_changed_success') + else: + return render_to_response(request, + 'mediagoblin/auth/change_fp.html', + {'cp_form': cp_form}) + # in case there is a valid id but no user whit that id in the db + # or the token expired + else: + return render_404(request) + + +def _process_for_token(request): + """ + Checks for tokens in session without prior knowledge of request method + + For now, returns whether the userid and token session variables exist, and + the session variables in a hash. Perhaps an object is warranted? + """ + # retrieve the session variables if request.method == 'GET': - # If we don't have userid and token parameters, we can't do anything;404 - if (not request.GET.has_key('userid') or - not request.GET.has_key('token')): - return render_404(request) + session_vars = request.GET + else: + session_vars = request.POST - # check if it's a valid Id - try: - user = request.db.User.find_one( - {'_id': ObjectId(unicode(request.GET['userid']))}) - except InvalidId: - return render_404(request) - - # check if we have a real user and correct token - if (user and - user['fp_verification_key'] == unicode(request.GET['token']) and - datetime.datetime.now() < user['fp_token_expire']): - cp_form = auth_forms.ChangePassForm(request.GET) - - return render_to_response( - request, - 'mediagoblin/auth/change_fp.html', - {'cp_form': cp_form}) - # in case there is a valid id but no user whit that id in the db - # or the token expired - else: - return render_404(request) - if request.method == 'POST': - # verification doing here to prevent POST values modification - try: - user = request.db.User.find_one( - {'_id': ObjectId(unicode(request.POST['userid']))}) - except InvalidId: - return render_404(request) - - cp_form = auth_forms.ChangePassForm(request.POST) - - # verification doing here to prevent POST values modification - # if token and id are correct they are able to change their password - if (user and - user['fp_verification_key'] == unicode(request.POST['token']) and - datetime.datetime.now() < user['fp_token_expire']): - - if cp_form.validate(): - user['pw_hash'] = auth_lib.bcrypt_gen_password_hash( - request.POST['password']) - user['fp_verification_key'] = None - user['fp_token_expire'] = None - user.save() - - return redirect(request, - 'mediagoblin.auth.fp_changed_success') - else: - return render_to_response( - request, - 'mediagoblin/auth/change_fp.html', - {'cp_form': cp_form}) - else: - return render_404(request) + mysession = {'vars': session_vars, + 'token_complete': session_vars.has_key('userid') and + session_vars.has_key('token')} + return mysession From c2b862d1349b5ecc6d787000edb209525b719751 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Mon, 5 Sep 2011 22:06:47 +0200 Subject: [PATCH 0986/2731] Feature #571 - Closing storage objects - Removed closing(), renamed StorageObjectWrapper, added with-support to CloudFilesStorageWrapper * Removed custom `closing()` method * Removed usage of `closing()` in process_media/__init__.py * Renamed StorageObjectWrapper -> CloudFilesStorageObject wrapper In my first version of the StorageOjbectWrapper it was located inside the CloudFilesStorage object, things have changed since then but there has been no renaming, thank you Elrond for the good point. * CloudFilesStorageObjectWrapper now supports context manager methods such as `__enter__()` and `__exit__()` (and `close()`) --- mediagoblin/process_media/__init__.py | 19 +++++----------- mediagoblin/storage.py | 31 +++++++++++++++++++++++++-- 2 files changed, 34 insertions(+), 16 deletions(-) diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py index db913f5f..2b9eed6e 100644 --- a/mediagoblin/process_media/__init__.py +++ b/mediagoblin/process_media/__init__.py @@ -16,7 +16,6 @@ import Image -from contextlib import contextmanager from celery.task import Task from celery import registry @@ -36,14 +35,6 @@ def create_pub_filepath(entry, filename): filename]) -@contextmanager -def closing(callback): - try: - yield callback - finally: - pass - - ################################ # Media processing initial steps ################################ @@ -66,7 +57,7 @@ class ProcessMedia(Task): except BaseProcessingFail, exc: mark_entry_failed(entry[u'_id'], exc) return - + entry['state'] = u'processed' entry.save() @@ -144,7 +135,7 @@ def process_image(entry): thumb_filepath = create_pub_filepath(entry, 'thumbnail.jpg') thumb_file = mgg.public_store.get_file(thumb_filepath, 'w') - with closing(thumb_file): + with thumb_file: thumb.save(thumb_file, "JPEG", quality=90) # If the size of the original file exceeds the specified size of a `medium` @@ -162,7 +153,7 @@ def process_image(entry): medium_filepath = create_pub_filepath(entry, 'medium.jpg') medium_file = mgg.public_store.get_file(medium_filepath, 'w') - with closing(medium_file): + with medium_file: medium.save(medium_file, "JPEG", quality=90) medium_processed = True @@ -172,8 +163,8 @@ def process_image(entry): with queued_file: original_filepath = create_pub_filepath(entry, queued_filepath[-1]) - - with closing(mgg.public_store.get_file(original_filepath, 'wb')) as original_file: + + with mgg.public_store.get_file(original_filepath, 'wb') as original_file: original_file.write(queued_file.read()) mgg.queue_store.delete_file(queued_filepath) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index e3df72be..b376ead0 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -291,7 +291,7 @@ class CloudFilesStorage(StorageInterface): if mimetype: obj.content_type = mimetype[0] - return StorageObjectWrapper(obj, *args, **kwargs) + return CloudFilesStorageObjectWrapper(obj, *args, **kwargs) def delete_file(self, filepath): # TODO: Also delete unused directories if empty (safely, with @@ -305,7 +305,7 @@ class CloudFilesStorage(StorageInterface): self._resolve_filepath(filepath)]) -class StorageObjectWrapper(): +class CloudFilesStorageObjectWrapper(): """ Wrapper for python-cloudfiles's cloudfiles.storage_object.Object used to circumvent the mystic `medium.jpg` corruption issue, where @@ -322,11 +322,38 @@ class StorageObjectWrapper(): return self.storage_object.read(*args, **kwargs) def write(self, data, *args, **kwargs): + """ + write data to the cloudfiles storage object + + The original motivation for this wrapper is to ensure + that buffered writing to a cloudfiles storage object does not overwrite + any preexisting data. + + Currently this method does not support any write modes except "append". + However if we should need it it would be easy implement. + """ if self.storage_object.size and type(data) == str: data = self.read() + data self.storage_object.write(data, *args, **kwargs) + def close(self): + pass + + def __enter__(self): + """ + Context Manager API implementation + http://docs.python.org/library/stdtypes.html#context-manager-types + """ + return self + + def __exit__(self, *args): + """ + Context Manger API implementation + see self.__enter__() + """ + self.close() + # ------------ # MountStorage From 213285cd856359ad4429af8b2b93614eb6709558 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Mon, 5 Sep 2011 22:33:27 +0200 Subject: [PATCH 0987/2731] Changed `*args` => `*exc_info` in CloudFilesStorageObjectWrapper --- mediagoblin/storage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py index b376ead0..f9563031 100644 --- a/mediagoblin/storage.py +++ b/mediagoblin/storage.py @@ -347,7 +347,7 @@ class CloudFilesStorageObjectWrapper(): """ return self - def __exit__(self, *args): + def __exit__(self, *exc_info): """ Context Manger API implementation see self.__enter__() From 65a8304794f5ad694799454c0337675708b10906 Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Mon, 5 Sep 2011 17:33:01 -0500 Subject: [PATCH 0988/2731] added unit tests for lost password code --- mediagoblin/tests/test_auth.py | 76 ++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py index 4781dd9b..a8e2d123 100644 --- a/mediagoblin/tests/test_auth.py +++ b/mediagoblin/tests/test_auth.py @@ -15,6 +15,7 @@ # along with this program. If not, see . import urlparse +import datetime from nose.tools import assert_equal @@ -237,6 +238,81 @@ def test_register_views(test_app): ## TODO: Also check for double instances of an email address? + ### Oops, forgot the password + # ------------------- + util.clear_test_template_context() + response = test_app.post('/auth/forgotpass/', {'username': 'happygirl'}) + response.follow() + + ## Did we redirect to the proper page? Use the right template? + assert_equal( + urlparse.urlsplit(response.location)[2], + '/auth/fp_email_sent/') + assert util.TEMPLATE_TEST_CONTEXT.has_key( + 'mediagoblin/auth/fp_email_sent.html') + + ## Make sure link to change password is sent by email + assert len(util.EMAIL_TEST_INBOX) == 1 + message = util.EMAIL_TEST_INBOX.pop() + assert message['To'] == 'happygrrl@example.org' + email_context = util.TEMPLATE_TEST_CONTEXT[ + 'mediagoblin/auth/fp_verification_email.txt'] + #TODO - change the name of verification_url to something forgot-password-ish + assert email_context['verification_url'] in message.get_payload(decode=True) + + path = urlparse.urlsplit(email_context['verification_url'])[2] + get_params = urlparse.urlsplit(email_context['verification_url'])[3] + assert path == u'/auth/verifyforgotpass/' + parsed_get_params = urlparse.parse_qs(get_params) + + # user should have matching parameters + new_user = mg_globals.database.User.find_one({'username': 'happygirl'}) + assert parsed_get_params['userid'] == [unicode(new_user['_id'])] + assert parsed_get_params['token'] == [new_user['fp_verification_key']] + + ### The forgotten password token should be set to expire in ~ 10 days + # A few ticks have expired so there are only 9 full days left... + assert (new_user['fp_token_expire'] - datetime.datetime.now()).days == 9 + + ## Try using a bs password-changing verification key, shouldn't work + util.clear_test_template_context() + response = test_app.get( + "/auth/verifyforgotpass/?userid=%s&token=total_bs" % unicode( + new_user['_id']), status=400) + assert response.status == '400 Bad Request' + + ## Verify step 1 of password-change works -- can see form to change password + util.clear_test_template_context() + response = test_app.get("%s?%s" % (path, get_params)) + assert util.TEMPLATE_TEST_CONTEXT.has_key('mediagoblin/auth/change_fp.html') + + ## Verify step 2.1 of password-change works -- report success to user + util.clear_test_template_context() + response = test_app.post( + '/auth/verifyforgotpass/', { + 'userid': parsed_get_params['userid'], + 'password': 'iamveryveryhappy', + 'confirm_password': 'iamveryveryhappy', + 'token': parsed_get_params['token']}) + response.follow() + assert util.TEMPLATE_TEST_CONTEXT.has_key( + 'mediagoblin/auth/fp_changed_success.html') + + ## Verify step 2.2 of password-change works -- login w/ new password success + util.clear_test_template_context() + response = test_app.post( + '/auth/login/', { + 'username': u'happygirl', + 'password': 'iamveryveryhappy'}) + + # User should be redirected + response.follow() + assert_equal( + urlparse.urlsplit(response.location)[2], + '/') + assert util.TEMPLATE_TEST_CONTEXT.has_key( + 'mediagoblin/root.html') + @setup_fresh_app def test_authentication_views(test_app): From a237735a70fb7d4a4ffabbf09fdb8f104a24698d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 5 Sep 2011 18:19:24 -0500 Subject: [PATCH 0989/2731] Mark description field's label for translation --- mediagoblin/submit/forms.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py index 17df6be6..a999c714 100644 --- a/mediagoblin/submit/forms.py +++ b/mediagoblin/submit/forms.py @@ -26,7 +26,8 @@ class SubmitStartForm(wtforms.Form): title = wtforms.TextField( _('Title'), [wtforms.validators.Length(min=0, max=500)]) - description = wtforms.TextAreaField('Description of this work') + description = wtforms.TextAreaField( + _('Description of this work')) tags = wtforms.TextField( _('Tags'), [tag_length_validator]) From 4bcaf9f32ab7e125a8db8deece4f292fed71e291 Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Mon, 5 Sep 2011 18:57:06 -0500 Subject: [PATCH 0990/2731] for readability, and adds unit test for expired token --- mediagoblin/auth/views.py | 4 ++-- mediagoblin/tests/test_auth.py | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 7ffa7416..c18bfa34 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -224,7 +224,7 @@ def forgot_password(request): def verify_forgot_password(request): # get session variables, and specifically check for presence of token mysession = _process_for_token(request) - if not mysession['token_complete']: + if not mysession['has_userid_and_token']: return render_404(request) session_token = mysession['vars']['token'] @@ -275,6 +275,6 @@ def _process_for_token(request): session_vars = request.POST mysession = {'vars': session_vars, - 'token_complete': session_vars.has_key('userid') and + 'has_userid_and_token': session_vars.has_key('userid') and session_vars.has_key('token')} return mysession diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py index a8e2d123..bfa66bd2 100644 --- a/mediagoblin/tests/test_auth.py +++ b/mediagoblin/tests/test_auth.py @@ -281,6 +281,16 @@ def test_register_views(test_app): new_user['_id']), status=400) assert response.status == '400 Bad Request' + ## Try using an expired token to change password, shouldn't work + util.clear_test_template_context() + real_token_expiration = new_user['fp_token_expire'] + new_user['fp_token_expire'] = datetime.datetime.now() + new_user.save() + response = test_app.get("%s?%s" % (path, get_params), status=400) + assert response.status == '400 Bad Request' + new_user['fp_token_expire'] = real_token_expiration + new_user.save() + ## Verify step 1 of password-change works -- can see form to change password util.clear_test_template_context() response = test_app.get("%s?%s" % (path, get_params)) From 8daef28dc75b30917d42497a5419d54ea5ab5eae Mon Sep 17 00:00:00 2001 From: Shawn Khan Date: Mon, 5 Sep 2011 19:12:53 -0400 Subject: [PATCH 0991/2731] Page Redesign to Delete confirmation page --- .../user_pages/media_confirm_delete.html | 21 +++++++++++-------- mediagoblin/user_pages/forms.py | 6 ++---- mediagoblin/user_pages/views.py | 2 +- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html index 48fbc3b0..1e7752cb 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html @@ -31,17 +31,20 @@ Really delete {{ title }}? {%- endtrans %}

      -

      - - {%- trans -%} - If you choose yes, the media entry will be deleted permanently. - {%- endtrans %} - -

      - {{ wtforms_util.render_divs(form) }} +
      + +
      + +
      + +

      + {{ form.confirm }} + {{ _(form.confirm.label.text) }} +

      - +
      diff --git a/mediagoblin/user_pages/forms.py b/mediagoblin/user_pages/forms.py index 22dedfd9..bf456630 100644 --- a/mediagoblin/user_pages/forms.py +++ b/mediagoblin/user_pages/forms.py @@ -26,7 +26,5 @@ class MediaCommentForm(wtforms.Form): class ConfirmDeleteForm(wtforms.Form): - confirm = wtforms.RadioField('Confirm', - default='False', - choices=[('False', 'No, I made a mistake!'), - ('True', 'Yes, delete it!')]) + confirm = wtforms.BooleanField('I am sure I want to delete this', + [wtforms.validators.Required()]) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 2c376283..f60bd186 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -154,7 +154,7 @@ def media_confirm_delete(request, media): form = user_forms.ConfirmDeleteForm(request.POST) if request.method == 'POST' and form.validate(): - if request.POST.get('confirm') == 'True': + if form.confirm.data is True: username = media.uploader()['username'] # Delete all files on the public storage From b7f7c13b6d70113857bac89c426d17dffc55bc6d Mon Sep 17 00:00:00 2001 From: Shawn Khan Date: Mon, 5 Sep 2011 19:35:25 -0400 Subject: [PATCH 0992/2731] Created a Cancel Button, if you don't want to delete Media. --- .../templates/mediagoblin/user_pages/media_confirm_delete.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html index 1e7752cb..3fbc2862 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html @@ -44,7 +44,10 @@ {{ _(form.confirm.label.text) }}

      + + +
      From 677f55cc51c82c80005b0ff6658e9937133ef78b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 5 Sep 2011 21:01:22 -0500 Subject: [PATCH 0993/2731] A couple more delete UI tweaks - Adjusting HTML indentation - Making the cancel button a link rather than a button (a bit missized though it seems... maybe a feature ;)) --- mediagoblin/static/css/base.css | 12 +++++++++++- .../user_pages/media_confirm_delete.html | 16 ++++++++-------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 307e2970..ea54f77f 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -141,7 +141,7 @@ background-image: -moz-linear-gradient(center top , rgb(134, 212, 177), rgb(109, /* common website elements */ -.button { +.button, .cancel_link { height: 32px; min-width: 99px; background-color: #86d4b1; @@ -165,6 +165,16 @@ background-image: -moz-linear-gradient(center top , rgb(134, 212, 177), rgb(109, font-weight: bold; } +.cancel_link { + background-color: #aaa; + background-image: -webkit-gradient(linear, left top, left bottom, from(##D2D2D2), to(#aaa)); + background-image: -webkit-linear-gradient(top, #D2D2D2, #aaa); + background-image: -moz-linear-gradient(top, #D2D2D2, #aaa); + background-image: -ms-linear-gradient(top, #D2D2D2, #aaa); + background-image: -o-linear-gradient(top, #D2D2D2, #aaa); + background-image: linear-gradient(top, #D2D2D2, #aaa); +} + .pagination{ text-align: center; } diff --git a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html index 3fbc2862..9192289e 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html @@ -32,22 +32,22 @@ {%- endtrans %} -
      +
      -
      +

      - {{ form.confirm }} - {{ _(form.confirm.label.text) }} -

      + {{ form.confirm }} + {{ _(form.confirm.label.text) }} +

      +
      - - + {# TODO: This isn't a button really... might do unexpected things :) #} + {% trans %}Cancel{% endtrans %} -
      From e8b517924ea5586c3249e4fbcf8b96c4dbeba49a Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 5 Sep 2011 21:03:54 -0500 Subject: [PATCH 0994/2731] A couple of tweaks to the checkbox styling... pretty minor. --- mediagoblin/static/css/base.css | 8 ++++++++ .../mediagoblin/user_pages/media_confirm_delete.html | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index ea54f77f..d1b891ac 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -365,3 +365,11 @@ table.media_panel th { font-weight: bold; padding-bottom: 4px; } + + +/* Delete panel */ + +.delete_checkbox_box { + margin-top: 10px; + margin-left: 10px; +} \ No newline at end of file diff --git a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html index 9192289e..01323a6e 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html @@ -39,7 +39,7 @@
      -

      +

      {{ form.confirm }} {{ _(form.confirm.label.text) }}

      From 284ebca0b217b6cca1f9484ec4871a9a72ee627e Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 5 Sep 2011 22:57:52 -0500 Subject: [PATCH 0995/2731] Caching test... pretty basic. --- mediagoblin/tests/test_cache.py | 52 +++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 mediagoblin/tests/test_cache.py diff --git a/mediagoblin/tests/test_cache.py b/mediagoblin/tests/test_cache.py new file mode 100644 index 00000000..cbffeb84 --- /dev/null +++ b/mediagoblin/tests/test_cache.py @@ -0,0 +1,52 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +from mediagoblin.tests.tools import setup_fresh_app +from mediagoblin import mg_globals + + +DATA_TO_CACHE = { + 'herp': 'derp', + 'lol': 'cats'} + + +def _get_some_data(key): + """ + Stuid function that makes use of some caching. + """ + some_data_cache = mg_globals.cache.get_cache('sum_data') + if some_data_cache.has_key(key): + return some_data_cache.get(key) + + value = DATA_TO_CACHE.get(key) + some_data_cache.put(key, value) + return value + + +@setup_fresh_app +def test_cache_working(test_app): + some_data_cache = mg_globals.cache.get_cache('sum_data') + assert not some_data_cache.has_key('herp') + assert _get_some_data('herp') == 'derp' + assert some_data_cache.get('herp') == 'derp' + # should get the same value again + assert _get_some_data('herp') == 'derp' + + # now we force-change it, but the function should use the cached + # version + some_data_cache.put('herp', 'pred') + assert _get_some_data('herp') == 'pred' From 7624c641cd0f5a6d438d88dcfb48d724b09e7763 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 5 Sep 2011 23:20:08 -0500 Subject: [PATCH 0996/2731] Updating the confirm delete form: checkboxes shouldn't be required, make translatable --- mediagoblin/user_pages/forms.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/user_pages/forms.py b/mediagoblin/user_pages/forms.py index bf456630..57061d34 100644 --- a/mediagoblin/user_pages/forms.py +++ b/mediagoblin/user_pages/forms.py @@ -26,5 +26,5 @@ class MediaCommentForm(wtforms.Form): class ConfirmDeleteForm(wtforms.Form): - confirm = wtforms.BooleanField('I am sure I want to delete this', - [wtforms.validators.Required()]) + confirm = wtforms.BooleanField( + _('I am sure I want to delete this')) From 9a64272e483ef1e3a5ee8b10555822a3ea158053 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 5 Sep 2011 23:20:50 -0500 Subject: [PATCH 0997/2731] Fixing the confirm delete unit test Now it's updated for the new checkbox-for-confirm code. --- mediagoblin/tests/test_submission.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mediagoblin/tests/test_submission.py b/mediagoblin/tests/test_submission.py index b7013839..007c0348 100644 --- a/mediagoblin/tests/test_submission.py +++ b/mediagoblin/tests/test_submission.py @@ -178,7 +178,8 @@ class TestSubmission: # No work: user=media.uploader().username, user=self.test_user['username'], media=media['_id']), - {'confirm': 'False'}) + # no value means no confirm + {}) response.follow() @@ -197,7 +198,7 @@ class TestSubmission: # No work: user=media.uploader().username, user=self.test_user['username'], media=media['_id']), - {'confirm': 'True'}) + {'confirm': 'y'}) response.follow() From fc21a55c76e9786f8ea8fdf504861c48e179a841 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 5 Sep 2011 23:28:11 -0500 Subject: [PATCH 0998/2731] Turning on caching for mediagoblin testing after all? Maybe we'll add a way to toggle this. --- mediagoblin/tests/test_mgoblin_app.ini | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mediagoblin/tests/test_mgoblin_app.ini b/mediagoblin/tests/test_mgoblin_app.ini index 986f793b..ab32cccc 100644 --- a/mediagoblin/tests/test_mgoblin_app.ini +++ b/mediagoblin/tests/test_mgoblin_app.ini @@ -20,7 +20,8 @@ base_url = /mgoblin_media/ base_dir = %(here)s/test_user_dev/media/queue [beaker.cache] -enabled = false +data_dir = %(here)s/test_user_dev/beaker/cache/data +lock_dir = %(here)s/test_user_dev/beaker/cache/lock [celery] celery_always_eager = true From b0391ad94bcae4dabfc2749612038c34a47bee75 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 5 Sep 2011 23:34:20 -0500 Subject: [PATCH 0999/2731] Updating translations --- .../i18n/ar/LC_MESSAGES/mediagoblin.mo | Bin 9432 -> 9631 bytes .../i18n/ar/LC_MESSAGES/mediagoblin.po | 150 +++++++++-------- .../i18n/de/LC_MESSAGES/mediagoblin.mo | Bin 9038 -> 9020 bytes .../i18n/de/LC_MESSAGES/mediagoblin.po | 102 ++++++----- .../i18n/en/LC_MESSAGES/mediagoblin.po | 82 ++++----- .../i18n/eo/LC_MESSAGES/mediagoblin.mo | Bin 8775 -> 8804 bytes .../i18n/eo/LC_MESSAGES/mediagoblin.po | 123 ++++++++------ .../i18n/es/LC_MESSAGES/mediagoblin.mo | Bin 9157 -> 9151 bytes .../i18n/es/LC_MESSAGES/mediagoblin.po | 91 +++++----- .../i18n/fr/LC_MESSAGES/mediagoblin.mo | Bin 9083 -> 9314 bytes .../i18n/fr/LC_MESSAGES/mediagoblin.po | 159 +++++++++++------- .../i18n/ja/LC_MESSAGES/mediagoblin.mo | Bin 9308 -> 9266 bytes .../i18n/ja/LC_MESSAGES/mediagoblin.po | 85 +++++----- .../i18n/nl/LC_MESSAGES/mediagoblin.mo | Bin 8779 -> 8737 bytes .../i18n/nl/LC_MESSAGES/mediagoblin.po | 85 +++++----- .../i18n/nn_NO/LC_MESSAGES/mediagoblin.mo | Bin 8385 -> 8343 bytes .../i18n/nn_NO/LC_MESSAGES/mediagoblin.po | 85 +++++----- .../i18n/pt_BR/LC_MESSAGES/mediagoblin.mo | Bin 8732 -> 8690 bytes .../i18n/pt_BR/LC_MESSAGES/mediagoblin.po | 85 +++++----- .../i18n/ro/LC_MESSAGES/mediagoblin.mo | Bin 9081 -> 9008 bytes .../i18n/ro/LC_MESSAGES/mediagoblin.po | 130 +++++++------- .../i18n/ru/LC_MESSAGES/mediagoblin.mo | Bin 11171 -> 11125 bytes .../i18n/ru/LC_MESSAGES/mediagoblin.po | 109 ++++++------ .../i18n/sl/LC_MESSAGES/mediagoblin.mo | Bin 8848 -> 8806 bytes .../i18n/sl/LC_MESSAGES/mediagoblin.po | 85 +++++----- .../i18n/sr/LC_MESSAGES/mediagoblin.mo | Bin 8711 -> 8669 bytes .../i18n/sr/LC_MESSAGES/mediagoblin.po | 85 +++++----- .../i18n/sv/LC_MESSAGES/mediagoblin.mo | Bin 8972 -> 8930 bytes .../i18n/sv/LC_MESSAGES/mediagoblin.po | 85 +++++----- .../i18n/zh_TW/LC_MESSAGES/mediagoblin.mo | Bin 8541 -> 8545 bytes .../i18n/zh_TW/LC_MESSAGES/mediagoblin.po | 126 +++++++------- 31 files changed, 915 insertions(+), 752 deletions(-) diff --git a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mo index dafcdb66cc63ee0011b0166f0211f3b29e661850..d02639a910c07269cf549e23ee58d7dafedaf26f 100644 GIT binary patch delta 3334 zcmb`IYiv}<8HQ)U4%iTE3>bXFvkoqHLl%M|AyAbd+D0}JP%dp+L8*h+*owWTyX#US zMT;+MHVX;Rlk}3(Qi97aTZnBoTo#p7iuxl}LnBp@IukW%8&&*>=p_oO6e`p{-#Le1 zKQ>!TIn-xDcL$_rf<}6?_L4!JBY9{1}$8zuH84OBmP%pMi&A z6D%!Nsvfq${ctPX4X?oT)q z2_MS<{c_3?Rzi|gwQwG6gk5kAd>W2IQKFtQrNUKE65ay&q@qwNPQb6iVYmeT0g7@Z zv-tKPjYTwsUx89V3QB+@P%=FZCD1w82+u=Nz(A4w7HoqRW!?rm;luRPFa%$R8h!}3 z!3u&dg?q};Un>1R18d=rp;Y`X)bKhKZ%mu*Nm>Ti({F&XK_^@Te*zza??6$c0sX%L z*FZ7fOHhtvRQ_P_OHk9iJQw|!)39^Bv!991#87D{EW}{tGF80+>);;~G$g6pP%;d4;V zumD%X>rgfdVt}o139Nw!peS`5j>12|jW9_t@yOfoBuw0-A(?-VRY6$KBOnT_gOb2j zD4zH>L?rbL6xV+jE`q0_B>WpF6@3WhNXzI*rSqWlm-t)`CH^Y-fZYE!8eI&02R;q| z3@J+O;1V~(ekdk70j09vLNVh9Fbe+;zX+eCtPL;=Ti{K&7B*?`NV=dT{w>Ib}4Sx?g4HZBRadj1xKpjv_HtO>R)bv*%(-Uwz6j#3jXTkU2H{oBQ#M^kE zQj1|HWT|={)=K8%G}gmw@L@O`UB%U{P&Q0Lid5I&3-AUkfdh?RMTZ*mFBPYzd^X$@ zj)(Q;aJ08Q5{|@s_Ny<1W4oi>d*j`G5#86R<6Ye`y{|9&R9;ViBd}1n_v%=GG^|_o zzV=95$NO}L7egjG*GmTSmrH|zqVT?O)HzmLRn*fFj^_V1BQW(#@$Ps}Snq9*#y^SM z8}8_CUmVlhw>%!wU+e4F{jvV`o}T@>qc5^Jt|Q@ahwQMst39$O?4}ZOKA82I^KRL& zv%X<%{x#*7C5p6E9Ds2bdh{Vhg zXu=Me^F%qLo9v)`Hd%YfWP;5h#p0BC)ed=)h;5&BSC+GI#N_NjlQAcQ+9sV~<-Agp zl}t$DjPq#a)dY`kqH<>&c95EO9I-nUV*ra4RV)Bd(YO?t`IZTj` zl;CBWl8@%JxuhqjXbv-*xKx>Ey&pA0=*A}3aJyV5HpeD^LMvI>*wh~jMD7!`sffa|%*QM_R;PSxais?C&d=F2pWQmg z@GjYn*dumO{EHMeg%hUZ-Er3BoS)Y02pn~8*TfdTf8aTVK-@bH2~pGHJvvtqJd4aD zYU7>vq*~q+wW)7!ET~9hvh|$TYww?8^7)Tymj>=30`_ul)!pZ`E{bXJ0{oYWg28~(2Pr+V(1K4BgsuJFf<_|5rz3~*PBt`zNN%}-u*_RNddE7 zEa%?~X9Pm|&GnxNv~BC+CHwz8h5dTnE`-XGJkoOQ>_JMD)N`bCRw})7JaVP|d|e-N zrXhLh{HhRB)_pn{r&Ju=;v5eCU>9l(QMeT3nob@V+>KuLSriks{g;YFFqE7l{^y#C zQ^|&3@{tvnQ1PV3huk@ur`h$4bD*K7JuF3{y#7=GY{!Bvx|o+4Cls z56qqtsAIxelXVN1Gr1_QxqFS}oSd19c0R$LcW=M{ZOD_se;&jXcv%8_;}=*n5mcS> VUr+b$zKD`?+?UQ|ePa)){{SCXnWg{$ delta 2588 zcmb`{du&rx9Ki9jmB*Oq25e*0ZJhB?kg@UDcnd=k7r-oFMnHK;+3r|F*Uq+s41)!> z!I&t96N#9a2?zsZ!ss9Yff&Q%A7U^>a<wh?*!$A}A&Tet&I){9%kHE^R;Oo_p?j z{C>Z?_PO@#$d~v0gihCOgUF2GJqLl?U)zyY|9^;Id25p#R5Er5~-^=7Vji1dL+JK56bg37?GXT(~yZa;c$Ef<-}bmA-;?< z@eeo=vx#FN&O?n6EXH@R0zbtfe1gg4q|ak6F2@=8GLj8-CY|_e8W-pw&FXuUP~N~< z=;{|=unebi9lF_Chz}GH2A0q#HSb+;v(FNQpMMh!dIEZOCm4~Wum80 zCfO+*eyNZ&cTPO=orb4IUizr3hiP`etEgD}pW%;bIRi&qe z!oh%l<@7o$SnKgK#@A3dttinMy_h;8DKn6m!0R7f7YtNdp^(?VGMd>p$z?ogCkkW* zzo*vH0a`&_AF_g>_%hxq=JQrJ=!QT&J>i-{(=Ywi9Ci^7$T;oM@r87qClp!}2v+4s z+tTkQ4Sg<9AJkT@$LotvOn^I!R1`L*~ zv3kt-DJ9XsfF()EkB5w%an>yD<(qDIIGgN)&Ss|-J2cIWc9+v?@3%YhwbLYBM;X(k z?M^#tci8)#M$PR``ydyG%$%&#W?S!-MfM)Xo^)PUvjVlX98Gb5kJHG=!y1~LX8VAa zd1!PwE#}m~+z2Zu25qvt?S1#BXF)c@R$}*J>mPKQd9Lw+A$Gg6PuPcLSFtI%y+Kx# zzE*mNkBH^sOFuejK(qz@|H6CEX?4rc#_nIb4gqm$8&|qKfQebamycfANB; YYKwml-pYVq>bH^La9DY14m*wNPe!+(h5!Hn diff --git a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po index df47bac4..112c6973 100644 --- a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-30 22:51-0500\n" -"PO-Revision-Date: 2011-08-31 03:51+0000\n" +"POT-Creation-Date: 2011-09-05 23:31-0500\n" +"PO-Revision-Date: 2011-09-06 04:31+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -20,49 +20,37 @@ msgstr "" "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" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54 +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 msgid "Username" msgstr "اسم المستخدم" -#: mediagoblin/auth/forms.py:28 -msgid "This is the name other users will identify you with." -msgstr "" - -#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58 +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 msgid "Password" -msgstr "كلمة المرور" +msgstr "كلمة السر" + +#: mediagoblin/auth/forms.py:34 +msgid "Passwords must match." +msgstr "يجب أن تتطابق كلمتا السر." #: mediagoblin/auth/forms.py:36 -msgid "Passwords must match." -msgstr "يجب أن تتطابق كلمتا المرور." - -#: mediagoblin/auth/forms.py:37 -msgid "Try to use a strong password!" -msgstr "" - -#: mediagoblin/auth/forms.py:40 msgid "Confirm password" -msgstr "تأكيد كلمة المرور" +msgstr "أكّد كلمة السر" -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:38 msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "" +msgstr "اكتبها مرة أخرى هنا للتأكد من عدم وجود أخطاء إملائية." -#: mediagoblin/auth/forms.py:45 +#: mediagoblin/auth/forms.py:41 msgid "Email address" msgstr "عنوان البريد الإلكتروني" -#: mediagoblin/auth/forms.py:48 -msgid "Your email will never be published." -msgstr "" - #: mediagoblin/auth/views.py:40 msgid "Sorry, registration is disabled on this instance." msgstr "عفوًا، التسجيل غير متاح هنا." #: mediagoblin/auth/views.py:58 msgid "Sorry, a user with that name already exists." -msgstr "عذرا، مستخدم بهذا الاسم موجود فعلا." +msgstr "عذرًا، لقد اختار مستخدم آخر هذا الاسم." #: mediagoblin/auth/views.py:62 msgid "Sorry, that email address has already been taken." @@ -73,7 +61,8 @@ msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "" -"تم التحقق من بريدك الإلكتروني. يمكنك الآن الولوج، تحرير ملفك، وإرسال الصور!" +"تم التحقق من بريدك الإلكتروني. يمكنك الآن الولوج، وتحرير ملفك الشخصي، ونشر " +"الصور!" #: mediagoblin/auth/views.py:166 msgid "The verification key or user id is incorrect" @@ -82,41 +71,46 @@ msgstr "مفتاح التحقق أو معرف المستخدم خاطئ" #: mediagoblin/auth/views.py:187 #: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 msgid "Resent your verification email." -msgstr "أعيد إرسال رسالة التحقق." +msgstr "أعدنا إرسال رسالة التحقق." #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "العنوان" -#: mediagoblin/edit/forms.py:29 -msgid "Slug" -msgstr "" - -#: mediagoblin/edit/forms.py:30 -msgid "The slug can't be empty" -msgstr "" - -#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "الوسوم" -#: mediagoblin/edit/forms.py:38 +#: mediagoblin/edit/forms.py:33 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:34 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:35 +msgid "" +"The title part of this media's URL. You usually don't need to change this." +msgstr "" + +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "السيرة" -#: mediagoblin/edit/forms.py:41 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "الموقع الإلكتروني" -#: mediagoblin/edit/views.py:66 +#: mediagoblin/edit/views.py:63 msgid "An entry with that slug already exists for this user." msgstr "" -#: mediagoblin/edit/views.py:95 +#: mediagoblin/edit/views.py:84 msgid "You are editing another user's media. Proceed with caution." msgstr "" -#: mediagoblin/edit/views.py:166 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "" @@ -126,11 +120,15 @@ msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" +msgstr "الملف" + +#: mediagoblin/submit/forms.py:30 +msgid "Description of this work" msgstr "" #: mediagoblin/submit/views.py:47 msgid "You must provide a file." -msgstr "" +msgstr "يجب أن تضع ملفًا." #: mediagoblin/submit/views.py:50 msgid "The file doesn't seem to be an image!" @@ -138,7 +136,7 @@ msgstr "لا يبدو أن هذا الملف صورة!" #: mediagoblin/submit/views.py:122 msgid "Woohoo! Submitted!" -msgstr "" +msgstr "يا سلام! نُشرَت!" #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" @@ -146,13 +144,14 @@ msgstr "" #: mediagoblin/templates/mediagoblin/404.html:24 msgid "There doesn't seem to be a page at this address. Sorry!" -msgstr "" +msgstr "يبدو أنه لا توجد صفحة في العنوان. عذرًا!" #: mediagoblin/templates/mediagoblin/404.html:26 msgid "" "If you're sure the address is correct, maybe the page you're looking for has" " been moved or deleted." msgstr "" +"إن كنت متأكدًا من صحة العنوان فربما تكون الصفحة التي تريدها نُقلت أو حُذفت." #: mediagoblin/templates/mediagoblin/404.html:32 msgid "Image of 404 goblin stressing out" @@ -172,13 +171,13 @@ msgstr "أرسل وسائط" #: mediagoblin/templates/mediagoblin/base.html:63 msgid "verify your email!" -msgstr "أكد بريدك" +msgstr "أكّد بريدك" #: mediagoblin/templates/mediagoblin/base.html:73 #: mediagoblin/templates/mediagoblin/auth/login.html:26 #: mediagoblin/templates/mediagoblin/auth/login.html:34 msgid "Log in" -msgstr "لُج" +msgstr "لِج" #: mediagoblin/templates/mediagoblin/base.html:89 msgid "" @@ -188,7 +187,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." -msgstr "مرحبا بكم يا محبوا الوسائط! ميدياغوبلن هو..." +msgstr "مرحبًا بكم يا محبي الوسائط! ميدياغوبلن هو..." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "The perfect place for your media!" @@ -204,19 +203,20 @@ msgstr "مكان يجتمع فيه الناس ليتعاونوا ويعرضوا msgid "" "Free, as in freedom. (We’re a GNU project, " "after all.)" -msgstr "" +msgstr "مشروع حر، فنحن أحد مشاريع غنو." #: mediagoblin/templates/mediagoblin/root.html:32 msgid "" "Aiming to make the world a better place through decentralization and " "(eventually, coming soon!) federation!" -msgstr "" +msgstr "مشروع يحاول جعل عالمنا أفضل عن طريق اللامركزية (قريبًا!)." #: mediagoblin/templates/mediagoblin/root.html:33 msgid "" "Built for extensibility. (Multiple media types coming soon to the software," " including video support!)" msgstr "" +"جاهز للتمدد. (سيُضاف دعم أنساق كثيرة من الوسائط قريبًا، كما سندعم الفيديو!)." #: mediagoblin/templates/mediagoblin/root.html:34 msgid "" @@ -231,15 +231,15 @@ msgstr "فشل الولوج!" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" -msgstr "ألا تملك حسابا؟" +msgstr "ألا تملك حسابًا بعد؟" #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Create one here!" -msgstr "أنشئ حسابا هنا!" +msgstr "أنشئ حسابًا هنا!" #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" -msgstr "أنشئ حسابا!" +msgstr "أنشئ حسابًا!" #: mediagoblin/templates/mediagoblin/auth/register.html:30 msgid "Create" @@ -255,36 +255,36 @@ msgid "" "\n" "%(verification_url)s" msgstr "" -"أهلا %(username)s،\n" +"أهلًا يا %(username)s،\n" "\n" -"لتفعيل حسابك في غنو ميدياغوبلن، افتح الرابط التالي\n" -"في متصفحك:\n" +"افتح الرابط التالي\n" +"في متصفحك لتفعيل حسابك في غنو ميدياغوبلن:\n" "\n" "%(verification_url)s" #: mediagoblin/templates/mediagoblin/edit/edit.html:29 #, python-format msgid "Editing %(media_title)s" -msgstr "تعديل %(media_title)s" +msgstr "تحرير %(media_title)s" #: mediagoblin/templates/mediagoblin/edit/edit.html:36 +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49 msgid "Cancel" msgstr "ألغِ" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44 msgid "Save changes" msgstr "احفظ التغييرات" #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" -msgstr "تعديل ملف %(username)s" +msgstr "تحرير ملف %(username)s الشخصي" #: mediagoblin/templates/mediagoblin/listings/tag.html:31 msgid "Media tagged with:" -msgstr "الوسائط الموسومة بـ:" +msgstr "الوسائط الموسومة ب‍" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" @@ -302,17 +302,15 @@ msgstr "وسائط %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 #: mediagoblin/templates/mediagoblin/user_pages/user.html:32 msgid "Sorry, no such user found." -msgstr "عذرا، لا يوجد مستخدم مماثل" +msgstr "عذرًا، تعذر العثور على مستخدم بهذا الاسم." #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36 -msgid "" -"If you choose yes, the media entry will be deleted " -"permanently." +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 +msgid "Delete Permanently" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 @@ -343,7 +341,7 @@ msgstr "يجب التحقق من البريد الإلكتروني" #: mediagoblin/templates/mediagoblin/user_pages/user.html:42 msgid "Almost done! Your account still needs to be activated." -msgstr "انتهينا تقريبا! لا زال حسابك يحتاج إلى التفعيل." +msgstr "أوشكنا على الانتهاء! ما زال حسابك بحاجة إلى التفعيل." #: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" @@ -376,7 +374,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:78 #, python-format msgid "%(username)s's profile" -msgstr "ملف %(username)s's" +msgstr "ملف %(username)s الشخصي" #: mediagoblin/templates/mediagoblin/user_pages/user.html:85 msgid "Here's a spot to tell others about yourself." @@ -385,7 +383,7 @@ msgstr "هذه زاوية لتخبر الآخرين فيها عن نفسك." #: mediagoblin/templates/mediagoblin/user_pages/user.html:90 #: mediagoblin/templates/mediagoblin/user_pages/user.html:108 msgid "Edit profile" -msgstr "عدل الملف" +msgstr "حرِّر الملف الشخصي" #: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "This user hasn't filled in their profile (yet)." @@ -394,7 +392,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format msgid "View all of %(username)s's media" -msgstr "اعرض كل وسائط %(username)s" +msgstr "أظهِر كل وسائط %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/user.html:135 msgid "" @@ -408,7 +406,7 @@ msgstr "أضف وسائط" #: mediagoblin/templates/mediagoblin/user_pages/user.html:147 msgid "There doesn't seem to be any media here yet..." -msgstr "لا يبدو أنه يوجد أي وسائط هنا حتى الآن..." +msgstr "لا يبدو أنه توجد أي وسائط هنا حتى الآن..." #: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 msgid "feed icon" @@ -418,8 +416,20 @@ msgstr "" msgid "Atom feed" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 +msgid "Newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 +msgid "Older" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" +msgstr "علِّق" + +#: mediagoblin/user_pages/forms.py:30 +msgid "I am sure I want to delete this" msgstr "" #: mediagoblin/user_pages/views.py:176 diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo index 848ea148ad29fdc19807548ba10f47d10b4dbead..d53cff8b2b27b26579e9881bcaab4004a0631e26 100644 GIT binary patch delta 2195 zcmb`{du&rx9Ki8YV6u(J=D-cupl5@P*B-zI3>F~j+yrqWdw?&%(w?=~wYST?w~~>N zhGdDzBa7T14;BAlF;T-m)+jOH9}=P%UqKTLVaE6eF+`21A;CxV`)jNGX-sU|e$F}f z^qk-Cckb;c9p^gIUzJTds(3xdr;5*a6Qprd=;w1b9`|&oGu)pdiym|(9;$A$2i?Fy@sUSAvF!o{?KgMcY zK1Hb+GLAJEMKV$cPy&B0e|-$4f@kyNpQ0r64HmG!`Z+)0whYiOB^|LG2~t(zJy?q| zY{NY`hEjSb2-f2@l*$!N=h|`_3uuU2Q8L(%vcM=xq%Wc@ zbOvkj4U`IeiBj@kaTAu6szmQsJo^cVvh@FkRt$5G>T zlzU_H-MNyM;QjP#P&OFAHavx$con50HPn9xwxQg7CsB@MjIXZ)O1+IU=^vj-{Uwq! z^tR$S%ET7x{Wx}FE1t$~yoO7#o&%MIw;{KK3ZcPxe*ALYYbYCCN2%yy6}U* zJRM4CH{}?;QST1fp7xSDl3PP2`qzv0WzH5?2dd3(a`23dvx-HkNG?xtV`flvg&@$Z%&@ zf5R3h`IH&-?#%V)SB+NIF3MJQF~?>(gK;Yy)A0*$x#5_xGncA*CT!}9QMdo6@N-X7z)^4q_&Xw<#_rRrej)#~nmUp0TlUsPv?oB#j- delta 2020 zcmb`{TWnNC7{Kw_E`_!h*xql8ozhwhExphyP%etlaEVkcS`n1f_LM#8c2C{23t0pg zA5>7w11B1*C6E{r8e^i}`amGOm{1dlF);!UYJhl4i1CtWNKA?Uk3ETRMiVz@&u?aS z&U`c9%-IW@Kii!ACV$?Wicde^Am6Vtr1tk`GE=Eyswc4tXYf({7PGN+zEUH&7CUeX zx8eP3Ad3Y9g;s>}G{mi-n3-B=U)dmW6G+e|4{(!w`!9nJP!2qnc|pbUH) zJF%2JHexSoOkx|J#y5UcS8WcSo5RpkE} z+>Tv%7I)xHT#hYls0_RtISy(VO?=*Kzvg)pCD3iJF6oo4%R%O>YEUNL;njB}Dac+K zD5v-kvR&$3l-F?zC54x8H(o)qtClfJJFdbLXk$HQ5N!e*u@^tZ0W2ekoSj3+5NZ=6ZjKZv?{MiXQmltMH`V_QT@oJEN-%8FQYs^jy3oe${{|F<5ZHS1 zLyTt)Cv?J&(-I3cx_N=|AhU?s(oY*Y9Y~KEj&s0{4ppTl19yGZPuuaRHb)IBoE|7* z?q_6XJr*AbTTaLvYIG;^&t!M4Xl>RjSFUb%dkQM0)}otRSGT9^f;apNHbtG784kOd zB~7WlCH20HgK_t@(#vkV?48~%!}sR&|0QZs`D4EM+e|BBYBx|(?7mvj;jYQG+=qk5 z-O7b!sh@(q8Sc@_t8IND%h6o_DQkQ5ktKcqls0!V@Q|Bd^|-q, 2011. # , 2011. -# , 2011. # Elrond , 2011. +# , 2011. +# Vinzenz Vietzke , 2011. # , 2011. # Jan-Christoph Borchardt , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-30 22:51-0500\n" -"PO-Revision-Date: 2011-08-31 03:51+0000\n" +"POT-Creation-Date: 2011-09-05 23:31-0500\n" +"PO-Revision-Date: 2011-09-06 04:31+0000\n" "Last-Translator: cwebber \n" "Language-Team: German (http://www.transifex.net/projects/p/mediagoblin/team/de/)\n" "MIME-Version: 1.0\n" @@ -23,42 +24,30 @@ msgstr "" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54 +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 msgid "Username" msgstr "Benutzername" -#: mediagoblin/auth/forms.py:28 -msgid "This is the name other users will identify you with." -msgstr "" - -#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58 +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 msgid "Password" msgstr "Passwort" -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:34 msgid "Passwords must match." msgstr "Passwörter müssen übereinstimmen." -#: mediagoblin/auth/forms.py:37 -msgid "Try to use a strong password!" -msgstr "" - -#: mediagoblin/auth/forms.py:40 +#: mediagoblin/auth/forms.py:36 msgid "Confirm password" msgstr "Passwort wiederholen" -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:38 msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "" +msgstr "Hier nochmal eintragen, um Tippfehler zu verhindern." -#: mediagoblin/auth/forms.py:45 +#: mediagoblin/auth/forms.py:41 msgid "Email address" msgstr "Email-Adresse" -#: mediagoblin/auth/forms.py:48 -msgid "Your email will never be published." -msgstr "" - #: mediagoblin/auth/views.py:40 msgid "Sorry, registration is disabled on this instance." msgstr "Registrierung ist auf dieser Instanz leider deaktiviert." @@ -92,35 +81,40 @@ msgstr "Bestätigungs-Email wurde erneut versandt." msgid "Title" msgstr "Titel" -#: mediagoblin/edit/forms.py:29 -msgid "Slug" -msgstr "Kurztitel" - -#: mediagoblin/edit/forms.py:30 -msgid "The slug can't be empty" -msgstr "Bitte gib einen Kurztitel ein" - -#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "Markierungen" -#: mediagoblin/edit/forms.py:38 +#: mediagoblin/edit/forms.py:33 +msgid "Slug" +msgstr "Kurztitel" + +#: mediagoblin/edit/forms.py:34 +msgid "The slug can't be empty" +msgstr "Bitte gib einen Kurztitel ein" + +#: mediagoblin/edit/forms.py:35 +msgid "" +"The title part of this media's URL. You usually don't need to change this." +msgstr "" + +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "Biographie" -#: mediagoblin/edit/forms.py:41 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Webseite" -#: mediagoblin/edit/views.py:66 +#: mediagoblin/edit/views.py:63 msgid "An entry with that slug already exists for this user." msgstr "Diesen Kurztitel hast du bereits vergeben." -#: mediagoblin/edit/views.py:95 +#: mediagoblin/edit/views.py:84 msgid "You are editing another user's media. Proceed with caution." msgstr "Du bearbeitest die Medien eines Anderen. Bitte sei vorsichtig." -#: mediagoblin/edit/views.py:166 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "Du bearbeitest das Profil eines Anderen. Bitte sei vorsichtig." @@ -132,6 +126,10 @@ msgstr "Die Datei stimmt nicht mit dem gewählten Medientyp überein." msgid "File" msgstr "Datei" +#: mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + #: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "Du musst eine Datei angeben." @@ -191,6 +189,8 @@ msgid "" "Powered by MediaGoblin, a GNU project" msgstr "" +"Läuft mit <a href=\"http://mediagoblin.org\">MediaGoblin</a>, " +"einem <a href=\"http://gnu.org/\">GNU-Projekt</a>" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." @@ -260,7 +260,7 @@ msgstr "Neues Konto registrieren!" #: mediagoblin/templates/mediagoblin/auth/register.html:30 msgid "Create" -msgstr "Erstellen" +msgstr "Registrieren" #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format @@ -284,12 +284,12 @@ msgid "Editing %(media_title)s" msgstr "%(media_title)s bearbeiten" #: mediagoblin/templates/mediagoblin/edit/edit.html:36 +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49 msgid "Cancel" msgstr "Abbrechen" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44 msgid "Save changes" msgstr "Änderungen speichern" @@ -323,12 +323,10 @@ msgstr "Dieser Benutzer wurde leider nicht gefunden." #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" -msgstr "" +msgstr "%(title)s wirklich löschen?" -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36 -msgid "" -"If you choose yes, the media entry will be deleted " -"permanently." +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 +msgid "Delete Permanently" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 @@ -403,7 +401,7 @@ msgstr "%(username)ss Profil" #: mediagoblin/templates/mediagoblin/user_pages/user.html:85 msgid "Here's a spot to tell others about yourself." -msgstr "Hier kannst du Anderen etwas über dich zu erzählen." +msgstr "Hier kannst du Anderen etwas über dich erzählen." #: mediagoblin/templates/mediagoblin/user_pages/user.html:90 #: mediagoblin/templates/mediagoblin/user_pages/user.html:108 @@ -441,12 +439,24 @@ msgstr "Feed-Symbol" msgid "Atom feed" msgstr "Atom-Feed" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 +msgid "Newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 +msgid "Older" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Kommentar" -#: mediagoblin/user_pages/views.py:176 -msgid "You are about to delete another user's media. Proceed with caution." +#: mediagoblin/user_pages/forms.py:30 +msgid "I am sure I want to delete this" msgstr "" +#: mediagoblin/user_pages/views.py:176 +msgid "You are about to delete another user's media. Proceed with caution." +msgstr "Du versuchst Medien eines anderen Nutzers zu löschen. Sei vorsichtig." + diff --git a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po index f9022543..5818cd77 100644 --- a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-08-30 22:51-0500\n" +"POT-Creation-Date: 2011-09-05 23:31-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,42 +17,30 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 0.9.6\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54 +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 msgid "Username" msgstr "" -#: mediagoblin/auth/forms.py:28 -msgid "This is the name other users will identify you with." -msgstr "" - -#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58 +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 msgid "Password" msgstr "" -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:34 msgid "Passwords must match." msgstr "" -#: mediagoblin/auth/forms.py:37 -msgid "Try to use a strong password!" -msgstr "" - -#: mediagoblin/auth/forms.py:40 +#: mediagoblin/auth/forms.py:36 msgid "Confirm password" msgstr "" -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:38 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "" -#: mediagoblin/auth/forms.py:45 +#: mediagoblin/auth/forms.py:41 msgid "Email address" msgstr "" -#: mediagoblin/auth/forms.py:48 -msgid "Your email will never be published." -msgstr "" - #: mediagoblin/auth/views.py:40 msgid "Sorry, registration is disabled on this instance." msgstr "" @@ -84,35 +72,39 @@ msgstr "" msgid "Title" msgstr "" -#: mediagoblin/edit/forms.py:29 -msgid "Slug" -msgstr "" - -#: mediagoblin/edit/forms.py:30 -msgid "The slug can't be empty" -msgstr "" - -#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "" -#: mediagoblin/edit/forms.py:38 +#: mediagoblin/edit/forms.py:33 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:34 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:35 +msgid "The title part of this media's URL. You usually don't need to change this." +msgstr "" + +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "" -#: mediagoblin/edit/forms.py:41 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "" -#: mediagoblin/edit/views.py:66 +#: mediagoblin/edit/views.py:63 msgid "An entry with that slug already exists for this user." msgstr "" -#: mediagoblin/edit/views.py:95 +#: mediagoblin/edit/views.py:84 msgid "You are editing another user's media. Proceed with caution." msgstr "" -#: mediagoblin/edit/views.py:166 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "" @@ -124,6 +116,10 @@ msgstr "" msgid "File" msgstr "" +#: mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + #: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "" @@ -258,12 +254,12 @@ msgid "Editing %(media_title)s" msgstr "" #: mediagoblin/templates/mediagoblin/edit/edit.html:36 +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49 msgid "Cancel" msgstr "" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44 msgid "Save changes" msgstr "" @@ -299,10 +295,8 @@ msgstr "" msgid "Really delete %(title)s?" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36 -msgid "" -"If you choose yes, the media entry will be deleted " -"permanently." +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 +msgid "Delete Permanently" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 @@ -404,10 +398,22 @@ msgstr "" msgid "Atom feed" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 +msgid "Newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 +msgid "Older" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "" +#: mediagoblin/user_pages/forms.py:30 +msgid "I am sure I want to delete this" +msgstr "" + #: mediagoblin/user_pages/views.py:176 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo index 4fb13eef091b5b6ce1d0eeab3aae947b28bb9d41..2502703bf74b1ccb3fe6499d4e93a653deaabae9 100644 GIT binary patch delta 2956 zcmb`{eQaJ;9l-I^y+AjVb=_9BZnUQr7-MbMtp#jr!Yp;mw%W07D-na{w9jdKp65RI zJh?AjR>4Aov7pHUS7IPk{iDKPOB~gKW==yo(L^LhdM95PtAFv;fNSfk7gQ5AGQJVz ze0Od9N!-f#1U6$CKZ5gk13rl@cosj3KgVtOIx(EEe6e=^Rg{3<#I>xi-mcy7 zuAE@pKsaI(vPrcAx8Th#pb8 zUJh>JKpaDfU>;?HGblTK24$kNcr!kal7Zi$r2IWRjEx)e1@6Z?89#S^!UdFwFQdjQD7|s*#yq7P@NUNKC<{#D0Dc1x;_E0GX(#`m!vU1$ zdm5!Ai+r7}Q|bkjjoZ!SzlVbdHSq3jC=7R9LDEyKmHq8OYNty($%Br za114bKStU3%P9A~iju)UqGa|8%7)&as~ud!c4X(*Z*z%C|})b}AVs%hMbZ=uZBK*Pj1*Uf?DU=d})^>l{pxDzEaccGLd zMuJukpmhBcC=)%4#Grms^D;_F-$7~0_iE$K+w=3yDD!FLeKV(aad3tc2XGdDgYx_y z<0`?Z3d(pMC1uYcL8u?#z4$AXNO#|uU%w9r8JF>6_#KoCy@s-(H&EugiuID4EsUg_ zTTmX4{V3g8M(OGW+=p*rKW-=NZX82d_{%80aUSJ&t99N3Jt)1?kJ5wzN(pCBdgNQU zafpNGIQRs9AA9jC-if=})hJFNSybn73V(^bgH#{&Vof!)^wio%SKVdTqSWn)P7PY(=OJhd{kP}^*^m^(Wb29G_v}TK4rp0CterwIpoId%DRV_ zUR>W+*Je-INR4=1wgqRj3p*>3pRjT4!YOq$DA;J}Z`akWK9IO1u)1QRS&rTisq)_UG#_W|ucSlKs7P|I&{dF4Se; zY+PK|*V%o$-q+LLlMQcbmC+r#ySKk*DcLkwcWl^~e1|SMtEYY07j?zYm{^z6Ffijj za$GV+ZG*B+oMt@bLKB!`s7sMG%ir^I#0|vZX7X{iddnBP?}=<&GMCQkNf)}rw&_tD zC(IkBk)APuD=?9safV;}F!5n_e#_V9Iwe1oJ}OTJsaJ!}t0R$hiD6HXraEE46nvMy zbmdo z+oeX*AiLOf_wJ$py$_za;n&$K^*XED`qIJUCP)dRLsLLoP6OYjKP?46=*I&W>T2+B zKJ=_Q^k3TMFI&^>+_uT7K^GLNA@p|lc9#6Omtn<*mlkG7NSK%|b)1?zPa9}oGP5S` zSHsn0%(z*}S;5DSe8_cDELkP}CXkHf`AA&FXF+pY&rp6RrH?EPXcALYN2p5V16yR( z$kisRU8e@w3(eg(<(+Lqm#!@Kp(*0LxwC&ZcWyk8hNTI|@)Stl5+noJx$P~twcj$8 z416d_a$%2=lN~w@Q+iJJTD|=j^-X$D^?r(7w55bTrFaKNPJZyC?D6dnY+9b@caz*8 zSnWrX^edmq%>0rMGX)Mwb?N3anm!R6dT$Q*8=#eKq5GvscXW0{uGT z^thFVjZB{WIxyz)PR>(Hi@e`vq11!t+URta_9W_0#Yw8=EoY*FEt~A3 z_Q#gzB~ey3n!jf9PIPRd+Gf<7<*IMem1fM7v=V1^r$nx&Ou!q*XK~w?vK{Ta{{y6D BtLp#& delta 2114 zcmb`{e`wTY9KiACcAG!8*=|2|KiZycIh}61{m7ioRHnK7fgHG{1%_XD-|f!b-FMyh zrcAS|Bw>jWd+3kKsK_EA13eSP7_z{T1rb?9SY%iUMXNs)|C#jucnAFxQP9}#^*qm> zd%mB~=lR@SUq7`z`CU==ONyTz{8jOHHA`lH{T$0ts*LGt=*Kg-6|du5?3kt05I%?x z;0fG>-{Ue|Iy=43LND_n96$%zl2l(Y;8%Uiiw}QH|3lrvBIYxhb>AGNDwx+|KCZ&~ zxDl(-!g=^Kmg5VUjqhR~p2Pz55_J<6<3XOU)-qVk!UT@u&lo@}SE+tHjkQ>o$D6Pd z>u?K_fpSm+-JALU7~ZW|X8jCGVpEy*uaV-ZX`I9J)lCMacn3pRLVEl0ATGe$C>a%! zUJWiqmegjH40qsm+=)&20ZOHQz&4!8=)Wf&u!Zve5GEzE5e9P5VO)quP%=J+QsOUA z4*ms~;{xi~f&tW+#QX6L?8Pt9k4rdQGJOp1#a*}tpF(a!P57w4W-!G9*Q{=!l=636 zhu*^U1ADNGc@lf@0!n4PYpTRA74%cE17b*vDK4UPUSOHI#sULkYyg z3puLtBm=qACD@3YkSePLN|PNzIrtsy!}n1F&L(}if)XSLwGO3;KSCFO#Q^T2acn$= za;5WW3<+=r%K6F74CF3iNU~}lN|zr+f>m#3JeTpaj6b2=?F`EMy_MMwo@#RA7ssZKWx*DlSQtf0Q8-{T^j-h0BExkec=$vlm^(c2dfKrj?Q9c#pCBK8`s!Ao?CVD<@g9^WeiG%}izpAiiPFT)L|JhkgAoRU_##S%w~_B0RmBDI47DhA zK4&Z|6`OO(V|sIwn{!E+HR9hglrwPgJDbCu|#}S?+ZsFdbh2EcEnEDLA}aN z#GTmS>R~$`wPNgvjJB-uXBJbR<}UV>I++8)vF72p({H(N5XE%4z`$=i{75w+1$~p+uK(zGd;yMGHcVV9V?fm zoZ@be$(|K3Ii&~8$Fr83)1~9)x!F&ci)9;3`}`~B)yj&Zx`x3-SI^eIhDf5zZ^^_o zESNO8xs9f^JQ3J9a5wD#t(NAk@qOYmF$y+h?YCTG=PfjDMU6S0x71v! z@c(_iO?hQ=sw>~?N$ss#lx1#IcbLh73Uj=m+B{OzX8tH>{I3@=R_jC@)%#DkVUGE_ dO;m3&b%pEAEgd!A6h3Uu)*kv-7t~qT^d~hNbesSH diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po index c4a286e2..0b01e7b5 100644 --- a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-30 22:51-0500\n" -"PO-Revision-Date: 2011-08-31 03:51+0000\n" +"POT-Creation-Date: 2011-09-05 23:31-0500\n" +"PO-Revision-Date: 2011-09-06 04:31+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -20,42 +20,30 @@ msgstr "" "Language: eo\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54 +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 msgid "Username" msgstr "Uzantnomo" -#: mediagoblin/auth/forms.py:28 -msgid "This is the name other users will identify you with." -msgstr "" - -#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58 +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 msgid "Password" msgstr "Pasvorto" -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:34 msgid "Passwords must match." msgstr "Pasvortoj devas esti egalaj." -#: mediagoblin/auth/forms.py:37 -msgid "Try to use a strong password!" -msgstr "" - -#: mediagoblin/auth/forms.py:40 +#: mediagoblin/auth/forms.py:36 msgid "Confirm password" msgstr "Retajpu pasvorton" -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:38 msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "" +msgstr "Retajpu ĝin por certigi, ke ne okazis mistajpoj." -#: mediagoblin/auth/forms.py:45 +#: mediagoblin/auth/forms.py:41 msgid "Email address" msgstr "Retpoŝtadreso" -#: mediagoblin/auth/forms.py:48 -msgid "Your email will never be published." -msgstr "" - #: mediagoblin/auth/views.py:40 msgid "Sorry, registration is disabled on this instance." msgstr "Bedaŭrinde, registrado estas malaktivigita en tiu ĉi instalaĵo." @@ -89,46 +77,55 @@ msgstr "Resendi vian kontrol-mesaĝon." msgid "Title" msgstr "Titolo" -#: mediagoblin/edit/forms.py:29 -msgid "Slug" -msgstr "La distingiga adresparto" - -#: mediagoblin/edit/forms.py:30 -msgid "The slug can't be empty" -msgstr "La distingiga adresparto ne povas esti malplena" - -#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "Etikedoj" -#: mediagoblin/edit/forms.py:38 +#: mediagoblin/edit/forms.py:33 +msgid "Slug" +msgstr "La distingiga adresparto" + +#: mediagoblin/edit/forms.py:34 +msgid "The slug can't be empty" +msgstr "La distingiga adresparto ne povas esti malplena" + +#: mediagoblin/edit/forms.py:35 +msgid "" +"The title part of this media's URL. You usually don't need to change this." +msgstr "" + +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "Bio" -#: mediagoblin/edit/forms.py:41 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Retejo" -#: mediagoblin/edit/views.py:66 +#: mediagoblin/edit/views.py:63 msgid "An entry with that slug already exists for this user." msgstr "Ĉi tiu uzanto jam havas dosieron kun tiu distingiga adresparto." -#: mediagoblin/edit/views.py:95 +#: mediagoblin/edit/views.py:84 msgid "You are editing another user's media. Proceed with caution." msgstr "Vi priredaktas dosieron de alia uzanto. Agu singardeme." -#: mediagoblin/edit/views.py:166 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "Vi redaktas profilon de alia uzanto. Agu singardeme." #: mediagoblin/process_media/errors.py:44 msgid "Invalid file given for media type." -msgstr "" +msgstr "La provizita dosiero ne konformas al la informtipo." #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "Dosiero" +#: mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + #: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "Vi devas provizi dosieron." @@ -147,7 +144,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/404.html:24 msgid "There doesn't seem to be a page at this address. Sorry!" -msgstr "" +msgstr "Verŝajne ĉe ĉi tiu adreso ne estas paĝo. Ni bedaŭras!" #: mediagoblin/templates/mediagoblin/404.html:26 msgid "" @@ -159,7 +156,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/404.html:32 msgid "Image of 404 goblin stressing out" -msgstr "" +msgstr "Bildo de 404-koboldo penŝvitanta." #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" @@ -188,10 +185,12 @@ msgid "" "Powered by MediaGoblin, a GNU project" msgstr "" +"Funkcias per <a href=\"http://mediagoblin.org\">MediaGoblin</a>," +" unu el la <a href=\"http://gnu.org/\">projektoj de GNU</a>" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." -msgstr "" +msgstr "Saluton, artemulo! MediaGoblin estas…" #: mediagoblin/templates/mediagoblin/root.html:29 msgid "The perfect place for your media!" @@ -202,14 +201,15 @@ msgid "" "A place for people to collaborate and show off original and derived " "creations!" msgstr "" +"Loko, kie homoj povas kunlabori, kaj elmeti originalajn kreaĵojn kaj " +"derivaĵojn!" #: mediagoblin/templates/mediagoblin/root.html:31 msgid "" "Free, as in freedom. (We’re a GNU project, " "after all.)" msgstr "" -"Libera verko. (Ni ja estas projekto de <a " -"href=\"http://gnu.org\">GNU</a>.)" +"Libera verko. (Ni ja estas projekto de GNU.)" #: mediagoblin/templates/mediagoblin/root.html:32 msgid "" @@ -222,6 +222,8 @@ msgid "" "Built for extensibility. (Multiple media types coming soon to the software," " including video support!)" msgstr "" +"Kreita por etendado. (Baldaŭ en la programo aperos subteno de pluraj " +"informspecoj, inkluzive de filmoj!)" #: mediagoblin/templates/mediagoblin/root.html:34 msgid "" @@ -272,12 +274,12 @@ msgid "Editing %(media_title)s" msgstr "Priredaktado de %(media_title)s" #: mediagoblin/templates/mediagoblin/edit/edit.html:36 +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49 msgid "Cancel" msgstr "Nuligi" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44 msgid "Save changes" msgstr "Konservi ŝanĝojn" @@ -311,34 +313,34 @@ msgstr "Uzanto ne trovita." #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" -msgstr "" +msgstr "Ĉu efektive forigi %(title)s?" -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36 -msgid "" -"If you choose yes, the media entry will be deleted " -"permanently." +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 +msgid "Delete Permanently" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 msgid "Media processing panel" -msgstr "" +msgstr "Kontrolejo pri dosierpreparado." #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 msgid "" "You can track the state of media being processed for your gallery here." msgstr "" +"Ĉi tie vi povas informiĝi pri la stato de preparado de dosieroj por via " +"galerio." #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 msgid "Media in-processing" -msgstr "" +msgstr "Dosieroj preparataj" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 msgid "No media in-processing" -msgstr "" +msgstr "Neniu dosieroj preparatas" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 msgid "These uploads failed to process:" -msgstr "" +msgstr "Preparado de ĉi tiuj alŝutaĵoj malsukcesis:" #: mediagoblin/templates/mediagoblin/user_pages/user.html:39 #: mediagoblin/templates/mediagoblin/user_pages/user.html:59 @@ -347,7 +349,7 @@ msgstr "Necesas konfirmo de retpoŝtadreso" #: mediagoblin/templates/mediagoblin/user_pages/user.html:42 msgid "Almost done! Your account still needs to be activated." -msgstr "" +msgstr "Preskaŭ finite! Restas nur validigi vian konton." #: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" @@ -406,6 +408,7 @@ msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" +"Ĝuste ĉi tie aperos viaj dosieroj, sed vi ŝajne ankoraŭ nenion alŝutis." #: mediagoblin/templates/mediagoblin/user_pages/user.html:141 msgid "Add media" @@ -421,14 +424,26 @@ msgstr "flusimbolo" #: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 msgid "Atom feed" +msgstr "Atom-a informfluo" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 +msgid "Newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 +msgid "Older" msgstr "" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Komento" -#: mediagoblin/user_pages/views.py:176 -msgid "You are about to delete another user's media. Proceed with caution." +#: mediagoblin/user_pages/forms.py:30 +msgid "I am sure I want to delete this" msgstr "" +#: mediagoblin/user_pages/views.py:176 +msgid "You are about to delete another user's media. Proceed with caution." +msgstr "Vi estas forigonta dosieron de alia uzanto. Estu singardema." + diff --git a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo index 58531d9669666f020d5ee2655430249f5d5adb52..a8fc04eaeeeb5ebd70637798ce974f1db7d2c54b 100644 GIT binary patch delta 2100 zcmb``Z%kEX9KiAC@+Sle2oM!e9uR^I5Jj{=Y8lD+6EuM$itGgEUhcS@i|3pR;fkBi z7ye;$b#;|fn;TYdcv1I7zDTTCPFJn9x!G9u!j@}kwpPMywe|g7?($`8>+an9InQ&R z`#jI@_x#Rh&F7lK-(@EqRebvR7V^E3Agw!}kCK(jqj?tB<0b6Cq`Q<##V#Die%y=~ zu@zN{QgzUVGHwqh;vw|nVPt4nEpWr7{^BPKlb6LFs65Q3y&9#zCfp~M zaX+rWqqqiV@E-gESK&M+;qTakw=t9TRVUl4q+=((f>T(5X=zFoVJ%Kz7Y^W;Sd1Ie zmCBKREI}U(dr%^I^Cf@%QNO&HnJ6MmiSR*`4evl6DH|o?Fg}g@uoAyT$y{m%&o*#V%8mFGN(B2+COC|;)8i-; z&0raRfRcf4P*VN}wqkbX(gOXsh4w+L#!pe>uh@;*Ou8O@S>#_LeS?li@B~W4S5V_M zl-fwScPXWr_!#XHlm)!lfG4pT=TS0JLjIq}29)AEhH@m+{QT@u>O+)qr*p}_RPAi8 zQrqzsGKbnqzHRJ4N!cgZfj3dcH*%mdv5QjGllTJeMG4@0q)gNelngDR1e!@hHnJRL zor-Y0qaI~PPav1_^20HyNtCmlLMgI$P*Q&pCAHU4GL+As{aAuzSxsRh9>R4?Kf7SNCs zzK$ACM&C+4kg(1Sn69axH0=??GA%bSp_)u*!1j;2{-C9UUhNL~9X%ejhogGg11ui zWMg_)h#^5eWK3wU5pWGhI)kTe{JY-Iod delta 1998 zcmb``ZD?Cn7{Kw9W}98zy7YbPi#=`JtXtBqZ#rgc_lBXfjDnT5g~{%k+vTz}x8x?B zQD;O!X@`PbIuxsuv4K%&l%{azYj;zMjpwkFKKY83)}+uW9|oa6-((a$Tuz-8ElRoIJn zpn=QrDO`mw;39kjAI7(F1^S6Pgk^Yu_0=XCO$?mE49;Ue8bwNt;5*oWmACUJ+<=YP zhwMPvD1lDof1ku#8Ox8)qHOGJe*7yWdFmG|WPSBJjS9SpF)U|$kKqAaiPuneRKoV^ zaUC+G9z@yUAnwFn7{Yf^GW9*S;zHh*;#|N6%Ku}SmB`XGWTIzrH6BFS@d=a^pGTSa zC%hL|lE-H3M~zwRz}ImAzrYq;%jB}tVXVX5*n>|Zr=d;-$iJp>mI01gT|!CauecTc zCAkG7cpv>NM(}-<%=mfu5v;`^K8~E8I*eTEIJcjDN_~Lx{F~*uB0Yl-(EqcX{45ps7#zesp4mFH$I25lS@dMsNYaBb^~SS<#Z&FYLs=tD8Kh` z<5bknEDbqZ6Q!u6FR4F*lH!k0GIJR%ypCj7nQW&U)A%TQD5(uG*(AoXAFtvFMkok* zz28C!=o6Irv)|B=$ct)};!+jd7*ee$DeXfEa2%!jr%(cY4W(vIBXz6hPy+uPrHHTK z)3}ROiA`O^F#dt9cozjx%=&7GhNLQn!yuHzQGo0ohW#!+6o6G)k;_fP^m zhjK(0a1G8Qmn!C!5yRMveb|MEutVPe^EB2nP^fcN+>V3vW7vkLQI6mW5{tTlJy^|l zG_F*^aliHfX;GHzSrZIsFGJq*=lG2w@<5BPA;>iLp zQ8?#w2a2-W^+?RN9aCpaC!|v`Q;(TZ%g|;bmCWe zj+u0F%UDt7vqm#IW2YHO#hTrc!1J|4k+S7EZRp%WdfafF{dO|i;LQYX`hr7tI;qVu z!;0r7N|+POOw{A)J#ov4nbBtV<$bLyoo=M8UV5#1ef!2v&o2Aa?~PW4 z3tVs2RDbX2tpNVNtaMcm`P^4(8oe_$L7y93UbVzbOjt(J-Bh>Q>!@2(;2x`=?-+<# nj^_GL`8lYk>jwTQLGDaovm0+1b{k8!d6kV%{JUhm7;OFvwb51) diff --git a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po index cfe19a1e..5b16f19d 100644 --- a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po @@ -5,12 +5,13 @@ # , 2011. # , 2011. # , 2011. +# Mario Rodriguez , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-30 22:51-0500\n" -"PO-Revision-Date: 2011-08-31 03:51+0000\n" +"POT-Creation-Date: 2011-09-05 23:31-0500\n" +"PO-Revision-Date: 2011-09-06 04:31+0000\n" "Last-Translator: cwebber \n" "Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mediagoblin/team/es/)\n" "MIME-Version: 1.0\n" @@ -20,42 +21,31 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54 +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 msgid "Username" msgstr "Nombre de Usuario" -#: mediagoblin/auth/forms.py:28 -msgid "This is the name other users will identify you with." -msgstr "" - -#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58 +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 msgid "Password" msgstr "Contraseña" -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:34 msgid "Passwords must match." msgstr "Las contraseñas deben coincidir." -#: mediagoblin/auth/forms.py:37 -msgid "Try to use a strong password!" -msgstr "" - -#: mediagoblin/auth/forms.py:40 +#: mediagoblin/auth/forms.py:36 msgid "Confirm password" msgstr "Confirme su contraseña" -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:38 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "" +"Escriba de nuevo aquí para asegurarse de que no hay faltas de ortografía." -#: mediagoblin/auth/forms.py:45 +#: mediagoblin/auth/forms.py:41 msgid "Email address" msgstr "Dirección de correo electrónico" -#: mediagoblin/auth/forms.py:48 -msgid "Your email will never be published." -msgstr "" - #: mediagoblin/auth/views.py:40 msgid "Sorry, registration is disabled on this instance." msgstr "Lo sentimos, la registración está deshabilitado en este momento." @@ -90,36 +80,41 @@ msgstr "Reenvíe su correo electrónico de verificación." msgid "Title" msgstr "Título" -#: mediagoblin/edit/forms.py:29 -msgid "Slug" -msgstr "Ficha" - -#: mediagoblin/edit/forms.py:30 -msgid "The slug can't be empty" -msgstr "La ficha no puede estar vacía" - -#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "Etiquetas" -#: mediagoblin/edit/forms.py:38 +#: mediagoblin/edit/forms.py:33 +msgid "Slug" +msgstr "Ficha" + +#: mediagoblin/edit/forms.py:34 +msgid "The slug can't be empty" +msgstr "La ficha no puede estar vacía" + +#: mediagoblin/edit/forms.py:35 +msgid "" +"The title part of this media's URL. You usually don't need to change this." +msgstr "" + +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "Bio" -#: mediagoblin/edit/forms.py:41 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Sitio web" -#: mediagoblin/edit/views.py:66 +#: mediagoblin/edit/views.py:63 msgid "An entry with that slug already exists for this user." msgstr "Una entrada con esa ficha ya existe para este usuario." -#: mediagoblin/edit/views.py:95 +#: mediagoblin/edit/views.py:84 msgid "You are editing another user's media. Proceed with caution." msgstr "" "Usted está editando el contenido de otro usuario. Proceder con precaución." -#: mediagoblin/edit/views.py:166 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "Usted está editando un perfil de usuario. Proceder con precaución." @@ -131,6 +126,10 @@ msgstr "Archivo inálido para el formato seleccionado." msgid "File" msgstr "Archivo" +#: mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + #: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "Usted debe proporcionar un archivo." @@ -279,12 +278,12 @@ msgid "Editing %(media_title)s" msgstr "Edición %(media_title)s " #: mediagoblin/templates/mediagoblin/edit/edit.html:36 +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49 msgid "Cancel" msgstr "Cancelar" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44 msgid "Save changes" msgstr "Salvar cambios" @@ -318,12 +317,10 @@ msgstr "Lo sentimos, no se ha encontrado ese usuario." #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" -msgstr "" +msgstr "Realmente desea eliminar %(title)s ?" -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36 -msgid "" -"If you choose yes, the media entry will be deleted " -"permanently." +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 +msgid "Delete Permanently" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 @@ -437,12 +434,26 @@ msgstr "ícono feed" msgid "Atom feed" msgstr "Atom feed" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 +msgid "Newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 +msgid "Older" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Comentario" +#: mediagoblin/user_pages/forms.py:30 +msgid "I am sure I want to delete this" +msgstr "" + #: mediagoblin/user_pages/views.py:176 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" +"Usted está a punto de eliminar un medio de otro usuario. Proceder con " +"cautela." diff --git a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo index fe006cdc0d5a6fe407a6b20bf593a7ddc08f0205..93e218e8e69223377f713dc0b1f4e4841548fbdc 100644 GIT binary patch delta 3857 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 delta 2184 zcmb`{X>3$g6u|L2v_R=PEiFqK;C2eKbfp!_Ql$pNYOo0<&?cadnOEl7_Pxo>v``2R z1_Bb6NUoTO7?*&7s4*}YqLPwegc$LIK@A~5Orw#+xP4HYR2u(>8RHjYG;uPW-+gD^ zyURIeI=FIpdGbz4_A$k4BYy$@ZjF+wzg{OsD>Z@3m$44d<68V0$6@0brMmDTT!3eA zHGYNjv1)AkJ`1zB?!r#=kXw@KO9s5vZ9e??P5KM z4J|Cd-8dPKU^bq{_4qaxVHUft#__m|^;HXl*#ri#AHT&`v~raS;W@0p33)t(3o(d~ zAtz8C%0~M#-ygvH8Oy}aqa5sNCVm4+p864USYQ3ZpbSSaf~6d92kyd2ID~SdVvaW* ztB{adgL1-+xB)j|HNK0IsX?5F_cGQMrZ;S%JRiZN?5vl8OtcSY;z5)XpG8UWb(D#} z!zP?W9&51`H74;vd==a93#`MrOfDzwz^V8oF2$#jYN!D}`PU4t5}?fLE=nqY!ey9M zoL+DRF5xYulVLM6_594v1!NaY138jhsG(-g^ zP)hXzN)snPVIa-$1ImtuQM$ZvN_wY3l%80GR7E|JiAPatyC3EG!#E3%qcrhl+<{g6 zQ(;f)4U`2hp=@Lj>4~Ju=2My>h#Rm98*vZT;{{xdcX0t$@?)1$bf9cBoN+r!6Cc94 zcob!!izu18gVKC?q`L{%V6FWA_b|`|&Y`5{I<{dBLFwX6C?`FP>_Hh^if55NR6nC+ zD2vtPAajr^sRooLUXAPU2)5%ON)tDe4lNJvWv~xVp>%OIA9BK0)Yws(dVln@qf&0p z6`yI#O|I6Vi08#^-EYUMbs}Qx9y{z<+IADMe!b1})T zV?CD3J>C7a&2^bz>RRq>UzwMgz;SD$F)w7tFn42UN4bEq}CMs4+q#q!jt>7rPB-Ps1=WI^J3wO)CvEHud?0ijcL2b za=OzKxpp5jv+HQ@mTo5=vBS0I#gbFw7S=S@>xPEK^UaF!)8%TOu5VmCKjn>I>NDA6 zem9?&oifji?KMLa>RW6pVXI}a56{RZT^;gzq6u49q(eJuY*(UA$RX5f#YtDli%FjT zywe<=*kx|!1V)Db!r<|1J0CTJC=HeR;ES^8)$n zW@U0ID?gXlVlGUXX$JF3%Kx@D>Txd`H&X%&O>_Q;**Wzov$tSls%hFHpSe*OG-i5@ z$, 2011. # , 2011. # , 2011. # Valentin Villenave , 2011. @@ -10,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-30 22:51-0500\n" -"PO-Revision-Date: 2011-08-31 03:51+0000\n" +"POT-Creation-Date: 2011-09-05 23:31-0500\n" +"PO-Revision-Date: 2011-09-06 04:31+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -21,42 +22,32 @@ msgstr "" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54 +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 msgid "Username" msgstr "Nom d'utilisateur" -#: mediagoblin/auth/forms.py:28 -msgid "This is the name other users will identify you with." -msgstr "" - -#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58 +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 msgid "Password" msgstr "Mot de passe" -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:34 msgid "Passwords must match." msgstr "Les mots de passe doivent correspondre." -#: mediagoblin/auth/forms.py:37 -msgid "Try to use a strong password!" -msgstr "" - -#: mediagoblin/auth/forms.py:40 +#: mediagoblin/auth/forms.py:36 msgid "Confirm password" msgstr "Confirmer le mot de passe" -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:38 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "" +"Tapez-le à nouveau ici pour vous assurer qu'il n'ya pas de fautes " +"d'orthographe." -#: mediagoblin/auth/forms.py:45 +#: mediagoblin/auth/forms.py:41 msgid "Email address" msgstr "Adresse e-mail" -#: mediagoblin/auth/forms.py:48 -msgid "Your email will never be published." -msgstr "" - #: mediagoblin/auth/views.py:40 msgid "Sorry, registration is disabled on this instance." msgstr "L'inscription n'est pas activée sur ce serveur, désolé." @@ -90,37 +81,42 @@ msgstr "E-mail de vérification renvoyé." msgid "Title" msgstr "Titre" -#: mediagoblin/edit/forms.py:29 -msgid "Slug" -msgstr "Légende" - -#: mediagoblin/edit/forms.py:30 -msgid "The slug can't be empty" -msgstr "La légende ne peut pas être laissée vide." - -#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "Tags" -#: mediagoblin/edit/forms.py:38 +#: mediagoblin/edit/forms.py:33 +msgid "Slug" +msgstr "Légende" + +#: mediagoblin/edit/forms.py:34 +msgid "The slug can't be empty" +msgstr "La légende ne peut pas être laissée vide." + +#: mediagoblin/edit/forms.py:35 +msgid "" +"The title part of this media's URL. You usually don't need to change this." +msgstr "" + +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "Bio" -#: mediagoblin/edit/forms.py:41 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Site web" -#: mediagoblin/edit/views.py:66 +#: mediagoblin/edit/views.py:63 msgid "An entry with that slug already exists for this user." msgstr "Une entrée existe déjà pour cet utilisateur avec la même légende." -#: mediagoblin/edit/views.py:95 +#: mediagoblin/edit/views.py:84 msgid "You are editing another user's media. Proceed with caution." msgstr "" "Vous vous apprêtez à modifier le média d'un autre utilisateur. Veuillez " "prendre garde." -#: mediagoblin/edit/views.py:166 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "" "Vous vous apprêtez à modifier le profil d'un utilisateur. Veuillez prendre " @@ -128,12 +124,16 @@ msgstr "" #: mediagoblin/process_media/errors.py:44 msgid "Invalid file given for media type." -msgstr "" +msgstr "Invalide fichier donné pour le type de média." #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "Fichier" +#: mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + #: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "Il vous faut fournir un fichier." @@ -148,21 +148,23 @@ msgstr "Youhou, c'est envoyé !" #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" -msgstr "" +msgstr "Zut!" #: mediagoblin/templates/mediagoblin/404.html:24 msgid "There doesn't seem to be a page at this address. Sorry!" -msgstr "" +msgstr "Il ne semble pas être une page à cette adresse. Désolé!" #: mediagoblin/templates/mediagoblin/404.html:26 msgid "" "If you're sure the address is correct, maybe the page you're looking for has" " been moved or deleted." msgstr "" +"Si vous êtes sûr que l'adresse est correcte, peut-être la page que vous " +"recherchez a été déplacé ou supprimé." #: mediagoblin/templates/mediagoblin/404.html:32 msgid "Image of 404 goblin stressing out" -msgstr "" +msgstr "Image de 404 gobelin stresser" #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" @@ -170,7 +172,7 @@ msgstr "GNU MediaGoblin" #: mediagoblin/templates/mediagoblin/base.html:47 msgid "MediaGoblin logo" -msgstr "" +msgstr "Logo MediaGoblin" #: mediagoblin/templates/mediagoblin/base.html:52 msgid "Submit media" @@ -191,38 +193,48 @@ msgid "" "Powered by MediaGoblin, a GNU project" msgstr "" +"Propulsé par MediaGoblin , un GNU de projet" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." -msgstr "" +msgstr "Salut à tous, amateur de médias! MediaGoblin est ..." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "The perfect place for your media!" -msgstr "" +msgstr "L'endroit idéal pour vos médias!" #: mediagoblin/templates/mediagoblin/root.html:30 msgid "" "A place for people to collaborate and show off original and derived " "creations!" msgstr "" +"Un lieu pour les personnes de collaborer et de montrer des créations " +"originales et dérivées!" #: mediagoblin/templates/mediagoblin/root.html:31 msgid "" "Free, as in freedom. (We’re a GNU project, " "after all.)" msgstr "" +"Logiciel libre. (Nous sommes une GNU projet, " +"après tout.)" #: mediagoblin/templates/mediagoblin/root.html:32 msgid "" "Aiming to make the world a better place through decentralization and " "(eventually, coming soon!) federation!" msgstr "" +"Visant à rendre le monde meilleur grâce à la décentralisation et " +"(éventuellement, venir bientôt!) fédération!" #: mediagoblin/templates/mediagoblin/root.html:33 msgid "" "Built for extensibility. (Multiple media types coming soon to the software," " including video support!)" msgstr "" +"Construit pour l'extensibilité. (Plusieurs types de médias à venir au " +"logiciel, y compris le support vidéo!)" #: mediagoblin/templates/mediagoblin/root.html:34 msgid "" @@ -230,26 +242,29 @@ msgid "" "href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this" " software!)" msgstr "" +"Propulsé par des gens comme vous. (Vous pouvez nous aider à " +"améliorer ce logiciel!)" #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" -msgstr "" +msgstr "Connexion a échoué!" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" -msgstr "Pas encore de compte ?" +msgstr "Pas encore de compte?" #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Create one here!" -msgstr "Créez-en un ici !" +msgstr "Créez-en un ici!" #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" -msgstr "Créer un compte !" +msgstr "Créer un compte!" #: mediagoblin/templates/mediagoblin/auth/register.html:30 msgid "Create" -msgstr "" +msgstr "Créer" #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format @@ -273,12 +288,12 @@ msgid "Editing %(media_title)s" msgstr "Modification de %(media_title)s" #: mediagoblin/templates/mediagoblin/edit/edit.html:36 +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49 msgid "Cancel" msgstr "Annuler" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44 msgid "Save changes" msgstr "Enregistrer les modifications" @@ -312,43 +327,43 @@ msgstr "Impossible de trouver cet utilisateur, désolé." #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" -msgstr "" +msgstr "Voulez-vous vraiment supprimer %(title)s ?" -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36 -msgid "" -"If you choose yes, the media entry will be deleted " -"permanently." +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 +msgid "Delete Permanently" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 msgid "Media processing panel" -msgstr "" +msgstr "Panneau pour le traitement des médias" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 msgid "" "You can track the state of media being processed for your gallery here." msgstr "" +"Vous pouvez suivre l'état des médias en cours de traitement pour votre " +"galerie ici." #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 msgid "Media in-processing" -msgstr "" +msgstr "Médias en transformation" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 msgid "No media in-processing" -msgstr "" +msgstr "Aucun média en transformation" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 msgid "These uploads failed to process:" -msgstr "" +msgstr "Ces ajouts n'etaient pas processé:" #: mediagoblin/templates/mediagoblin/user_pages/user.html:39 #: mediagoblin/templates/mediagoblin/user_pages/user.html:59 msgid "Email verification needed" -msgstr "" +msgstr "Vérification d'email nécessaire" #: mediagoblin/templates/mediagoblin/user_pages/user.html:42 msgid "Almost done! Your account still needs to be activated." -msgstr "" +msgstr "Presque fini! Votre compte a encore besoin d'être activé." #: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" @@ -370,6 +385,8 @@ msgid "" "Someone has registered an account with this username, but it still has to be" " activated." msgstr "" +"Quelqu'un a enregistré un compte avec ce nom, mais il doit encore être " +"activé." #: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format @@ -388,7 +405,7 @@ msgstr "profil de %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/user.html:85 msgid "Here's a spot to tell others about yourself." -msgstr "" +msgstr "Voici un endroit pour parler aux autres de vous-même." #: mediagoblin/templates/mediagoblin/user_pages/user.html:90 #: mediagoblin/templates/mediagoblin/user_pages/user.html:108 @@ -397,7 +414,7 @@ msgstr "Modifier le profil" #: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "This user hasn't filled in their profile (yet)." -msgstr "" +msgstr "Cet utilisateur n'a pas rempli leur profil (encore)." #: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format @@ -409,29 +426,45 @@ msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" +"C'est là où vos médias apparaît, mais vous ne semblez pas avoir quoi que ce " +"soit encore ajouté." #: mediagoblin/templates/mediagoblin/user_pages/user.html:141 msgid "Add media" -msgstr "" +msgstr "Ajouter des médias" #: mediagoblin/templates/mediagoblin/user_pages/user.html:147 msgid "There doesn't seem to be any media here yet..." -msgstr "" +msgstr "Il ne semble pas être un média encore là ..." #: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 msgid "feed icon" -msgstr "" +msgstr "icon de flux" #: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 msgid "Atom feed" +msgstr "flux Atom" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 +msgid "Newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 +msgid "Older" msgstr "" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Commentaire" +#: mediagoblin/user_pages/forms.py:30 +msgid "I am sure I want to delete this" +msgstr "" + #: mediagoblin/user_pages/views.py:176 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" +"Vous êtes sur le point de supprimer des médias d'un autre utilisateur. " +"Procédez avec prudence." diff --git a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo index 6308eaa6639eeee557ac903e24dde3889a354692..176bcb4d69825b154cc9751bd8e0539dd4957d47 100644 GIT binary patch delta 1964 zcmb`{Uu;uV9Ki9@c4b=;R=Y7|WAv;HrwCg|-9Tm>$`qIr1U88zn>Op+)~tV)_IAri zMn@os3`5KfF({6ZH1LE``oI!(F+`0Tr!OWFf;{j*;-Us3(Xhln-`{$pk7{Dm^>fa- zr}zARzx(U1Z@;uXd&5_BO7Ysy-%9>|aLVlO*9UH;Dw%$Wjra}j#G*w?mEv9;!X9kF z&#?nlu~N22>sWXR$MFO{gdUGlehlFl?!`Ww#ae7y ztW>$IV*m$`jMQ64y7(*J@eiQ>MsW$ttfQ$ zrzl@oM!kp7kJ8nXxErsal(K>cD*Iw6l^Q|m>cdEqY7Qmvd6a;hlu0UEjnx=H3FwKe zJ=l%1F@hl+N7?wE?X122JraYeVY58*5J~{gVK?qa3E*9nXZ;brfNP&(;CHYQ zUED+}7Q!~%f>OB&Y(WcM_yv}=Gx&OX(PTm=`?Wb3P3zHQYACNuK69+n;kZs` zQik54N5ctIn@Jrh+(R~6w@MG?r#-cfT4U5mshvq3HzLunjwaR*r;>d}Ivq_6s9mv$ zk;?zH*x`D{jG8e+4~J9cUuP|Rqdu*>_jESs7n2#CNoT^b*qDwa6ZNJ}7)C@+?Hddy z28@O98mzgcGuD(IcX!F{^5fp$9oAW2uJp0>!DhW7v^ivTmiuMaqJxia4&}}Ao32ON z|3m8C%L7jTj(^B~WW_;i+B0E&QuXn_NPnvO4_8OmAQ}8WB{<`sr38~!*4vgpT07yi I*4AzK6ZcFv=Kufz delta 1990 zcmb`{Uu;uV9Ki9@b&N44wEF|>kM7h>w~Wzkbb|#Zn_1#;nmLmpC{ekz7uu}ro&B?= zkXeOfY!Zp_Mw2BHhzgMyAEfX=z!{CQ2lrs25>3D;!)PR7#)QQeoZp|liBB3$Y}$U# z`Q3ZZ`JLZ6?b+>Dw`aaB$$w4p+Qp}u&(%EX{q=fdnNn-$9>-=phy8d1S74w(sUds- zH{luV!|$*i*DufAXP}$@5bi?@xh12n(BQ4E@#VoEau?Jhme9ZB#65*dRnqriF?Qlw zd>HRR1Mk8YumX=^KE8uH@I73OZnAE|QXFS~)lH*;zznAGM;t(-NU0#6MIWwN$wSzI z_u`|-3Y3MC=%{mj3jeH_6F-NtuvsVmHBvmafQ8JjZqq2o-!Y73Ebjo0<2w8eWkp_= zSA*-3ka`4Vg}ZPkK8;Oy9;H&(u@&z)Hm}MhY@j?J#*Ac^q9FrK;C*-$WySBKl=usj zfp6kwTt^-KIDi^6*oG%@5Wm7^Y-Dg*=~H+&?!hj69@z~wI`3}T}oZTdiue#Tmnb2pZ;fM)L$N` zr2a!#hjNNv!N+kHrL+}nsNDA)O6d-woZ?Ajv1$Qj0ZS-}EvIa9HZ)dYJxW477{Di- z_)8h5aoV}?F*2uGMA`FVMw1Ee#~m0znQ#haOQ!J%UPd{@{X8^^V>p1fP!4ey2ST>= zEtG^lMLEQo?`g;c`9vi{FUl#eLl&btP)he0vMXxLiBF>J?Fp2GPGKjWM>)j5;sM;v zp9;CDD@aH!pp3VY1Hrr*6`&!d?Z%zhhm!G|D2J(lANL;IjjebIrL?zD2EOgMil2tW z>#+s>C@X#zW#SicD;~$q_zn8y_wUuYQ{0VhTrf~3ejVi$-$bcU6{C@pYQQdh2&G~Z zxCy7xjh~}bK(*au@@IHP)B21tx`6|k+&)!C>3c$DOFqc!m_EnY^?CI z%N{Js^yy&OvJ$3Fn~5f!44Zn`3`GoW#**>09*abydatQNX4FiYA>Els#;w@?Z6juU z*objYH0|$fc7oZtq6SyFMW{4TXrnYFsbt+-T z6S-+3A;ydBOY5|iB9aXIZLjC$YO+XLa-TMIZX!KmBobp*Jmj;xd=F-?c|LH}K53=m z+8j0_(cEA$bCl7^d?d9u8cBrBkl&szIklo=L!d=(+_\n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -18,42 +18,30 @@ msgstr "" "Language: ja\n" "Plural-Forms: nplurals=1; plural=0\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54 +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 msgid "Username" msgstr "ユーザネーム" -#: mediagoblin/auth/forms.py:28 -msgid "This is the name other users will identify you with." -msgstr "" - -#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58 +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 msgid "Password" msgstr "パスワード" -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:34 msgid "Passwords must match." msgstr "パスワードが一致している必要があります。" -#: mediagoblin/auth/forms.py:37 -msgid "Try to use a strong password!" -msgstr "" - -#: mediagoblin/auth/forms.py:40 +#: mediagoblin/auth/forms.py:36 msgid "Confirm password" msgstr "パスワードを確認" -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:38 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "" -#: mediagoblin/auth/forms.py:45 +#: mediagoblin/auth/forms.py:41 msgid "Email address" msgstr "メールアドレス" -#: mediagoblin/auth/forms.py:48 -msgid "Your email will never be published." -msgstr "" - #: mediagoblin/auth/views.py:40 msgid "Sorry, registration is disabled on this instance." msgstr "申し訳ありませんが、このインスタンスで登録は無効になっています。" @@ -85,35 +73,40 @@ msgstr "検証メールを再送しました。" msgid "Title" msgstr "タイトル" -#: mediagoblin/edit/forms.py:29 -msgid "Slug" -msgstr "スラグ" - -#: mediagoblin/edit/forms.py:30 -msgid "The slug can't be empty" -msgstr "スラグは必要です。" - -#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "タグ" -#: mediagoblin/edit/forms.py:38 +#: mediagoblin/edit/forms.py:33 +msgid "Slug" +msgstr "スラグ" + +#: mediagoblin/edit/forms.py:34 +msgid "The slug can't be empty" +msgstr "スラグは必要です。" + +#: mediagoblin/edit/forms.py:35 +msgid "" +"The title part of this media's URL. You usually don't need to change this." +msgstr "" + +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "自己紹介" -#: mediagoblin/edit/forms.py:41 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "URL" -#: mediagoblin/edit/views.py:66 +#: mediagoblin/edit/views.py:63 msgid "An entry with that slug already exists for this user." msgstr "そのスラグを持つエントリは、このユーザーは既に存在します。" -#: mediagoblin/edit/views.py:95 +#: mediagoblin/edit/views.py:84 msgid "You are editing another user's media. Proceed with caution." msgstr "あなたは、他のユーザーのメディアを編集しています。ご注意ください。" -#: mediagoblin/edit/views.py:166 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "あなたは、他のユーザーのプロファイルを編集しています。ご注意ください。" @@ -125,6 +118,10 @@ msgstr "" msgid "File" msgstr "ファイル" +#: mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + #: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "ファイルを提供する必要があります。" @@ -264,12 +261,12 @@ msgid "Editing %(media_title)s" msgstr "%(media_title)sを編集中" #: mediagoblin/templates/mediagoblin/edit/edit.html:36 +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49 msgid "Cancel" msgstr "キャンセル" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44 msgid "Save changes" msgstr "投稿する" @@ -305,10 +302,8 @@ msgstr "申し訳ありませんが、そのユーザーは見つかりません msgid "Really delete %(title)s?" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36 -msgid "" -"If you choose yes, the media entry will be deleted " -"permanently." +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 +msgid "Delete Permanently" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 @@ -412,10 +407,22 @@ msgstr "" msgid "Atom feed" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 +msgid "Newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 +msgid "Older" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "" +#: mediagoblin/user_pages/forms.py:30 +msgid "I am sure I want to delete this" +msgstr "" + #: mediagoblin/user_pages/views.py:176 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.mo index 809cd90d4e912c5a00a156358167e48d900f99a6..e91b7235cf47ca69bbc9187c849330592c56fe73 100644 GIT binary patch delta 1961 zcmb`{e`u6-9KiAK-G1n9<<6TSBw2c;itrCMMI%DMwsf`_mV4NgtvsXzGgW7)#_2~~pu`m0dJo810ZTu#3WYjF^7 z!wFo5N3ag3@phcW6*z~b_zQO9O{`*nwVUIuW8g7-5}(7n(C1Ssh!GsYPVB{xF@(*P zN>$4^hB1jmqz|MQC>8S zYw#3G2EIf|`R~|)fvVyL`*9=vgV=!YqQ;-F3j@5g5tDxMFOj~?KopOmM0^D`UPGyk z1&fO*t-@{e!zdf{VH+ODcAP`WNSOThU>i#D9Ywj4DZZvXN}WYnXDlKA5gJb|DOU9< zlm|TIdjKm@s(Kjr;G5Wjw@}u#aIsR=QIx9QhBE#JQYPv&N{zgOlG)FYN7Wp1R`p|^ zhMdex9_2(!QSPzeSWyYV8DWfkIOa@WoH1oog5^;al0 zQpzS1m|smps(KpbP8U-d^1=v8RkxvBNe{|_k|+_4B4=06qeOHPxh?e;%9YN#^Pjr? z?_6)7Wad|7Kk|P^v8uy3%ETe$kgA+tqk0UYMBa|Fv58WQPvbs(2Al9}lw$L*DqdL> z<@v`^0yvJ;sd~-z43^9O@6*`8#4Jh%ZXsDzA$~=qsyCy|kK;x>i?Y!T)L2J8rK+PS zRs9l51}P(-u`%_sxoUsN9df^A2IvpR> z*_>tQ?Rq$F+S<P4_TRBBb!Z`Nwqtj zFs#B4m7bFO?UbE1^ibTg|JrN*iTbSW-n+9wKb*nAo+S?yD zlg9k<8l3MJop&08W8SpkTncV2ocEveIIjk#DmJfgYS9}aTO!WR>Y(&mb<;gtA_cqJ zDOnr)53!do`@$34{tv-lUjBkJ;~R7Ct3CQJ;=f+Iqokv&pAi0^9JJP5AP3`xPlByp IXKh&j33|ja=Kufz delta 1940 zcmb`{e`u6-9KiAK?WUWT>Fr0(&FQ}9EXA$c+&m|1)6&Uu$rv=z1f@ssS$FPs&$=JV z)$EZnX+#M<2nrXKKOjMod?qpq|FIIPKMHa9N2`dUC?YAW2)25EdLHP%DCoGm*Z2Fm z=f2PP^Z9=6-st(T$NsFc^tj@&lUF^jPfKL>_oFyRsYOg*#TJ~ve*6mOVf$RAhOryh z;W_NXFEEBpW!`lL2AL1z5L(D3wwhwVQ%&<0#;?5()Gt`ce8!K5%ay8Q9>Mw8g*CVp zm!W}o<6*4Dm$4Mz#O-(i7h;fIH)9nZ;{NJE2CE2M#R7hV189Vl+J~1gf{X6rOSm4F z<2ED%Wua{JfdBb8{#7wQK7o?hbw7R!DW3Wf%elY0!{8pA#ROK9-cxu87vpaz8C8&8 z12!Qc^$1FaJ8=i@#%8>XQmHR-4bJ$sEbumLpnN}pw(Km=Ko&ZR_u`8v8NY>6;u|On ze~%rwm^wyr05#gU7GK9fyooKin#Cp4UAPn<$Bp<5avJJtnEGo5*9maU>RXgj-p0)s ztnhBwiw`iju@~P)sZ5ZI_h3CX;?v0Ksn?LFI>+0EfKuOYKOlrA2_0dz5jr5vbS*NM`_Jt$rLuphsOw27KT>5+F)dgB(dg!&xWv$}(Flx37v zHW;xPNMJ4Ahy5sLllSA#qEx1c+wlxiUG+Q4k%UNV3_DPocmiL*X_N$pSX`R;3d)f# zp)q8=Zj>grw=j^iNTBTKNt6tZAe&VuP%^lPoQitSk58eT?GGrK|BP~jSxlf_;x+L& zvKLj#pUX;IijwFS8dD z;Rh%inn8-C8u*itcn5aievHcR{}cmF;1iTC{t2avSMpnvE*?Y4^gObbx`Z3?W0Vbq zwO7gpl+tcOsbC*&#y!}Jr|?ny&Yy2!cl9d>9AzM9bQ&A6jDwM8YeFe~%$=MwUgD<9 z-w!y0A-hlSOITLc)CDu!taAxdkC^eKq0MwIQ_u&Ksg&Mp>bRLQb7ow3Wpf!T{ltb* zGc#hOxh7SJcD49H_oL9NfODg+#;uwEM~P!BoNSi$(#D9XEk+rg&zhO6w`elXx06E! zU9j>*a*3!@5q_zjd*&>;P8-@=R*xFl>_ICNkGRF~Y@qQmE1%Kkh>=Wr3#H8itjr!q z^LtatY{HC3os*Sk=dHiLy;Zlhb;g|Dss@>@(XH*BG1sbcf^M{CD&VZBJ@$WQf4(;2 nWq-SFYtT8e?Am|Leq5U=HTX{zaEjrF+>rkDUsd6i<&i%DU|TyN diff --git a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po index 7eed6f4e..b8feb0d7 100644 --- a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-30 22:51-0500\n" -"PO-Revision-Date: 2011-08-31 03:51+0000\n" +"POT-Creation-Date: 2011-09-05 23:31-0500\n" +"PO-Revision-Date: 2011-09-06 04:31+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -18,42 +18,30 @@ msgstr "" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54 +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 msgid "Username" msgstr "Gebruikersnaam" -#: mediagoblin/auth/forms.py:28 -msgid "This is the name other users will identify you with." -msgstr "" - -#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58 +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 msgid "Password" msgstr "Wachtwoord" -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:34 msgid "Passwords must match." msgstr "Wachtwoorden moeten overeenkomen." -#: mediagoblin/auth/forms.py:37 -msgid "Try to use a strong password!" -msgstr "" - -#: mediagoblin/auth/forms.py:40 +#: mediagoblin/auth/forms.py:36 msgid "Confirm password" msgstr "Bevestig wachtwoord" -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:38 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "" -#: mediagoblin/auth/forms.py:45 +#: mediagoblin/auth/forms.py:41 msgid "Email address" msgstr "E-mail adres" -#: mediagoblin/auth/forms.py:48 -msgid "Your email will never be published." -msgstr "" - #: mediagoblin/auth/views.py:40 msgid "Sorry, registration is disabled on this instance." msgstr "Sorry, registratie is uitgeschakeld op deze instantie." @@ -87,37 +75,42 @@ msgstr "Verificatie e-mail opnieuw opgestuurd." msgid "Title" msgstr "Titel" -#: mediagoblin/edit/forms.py:29 -msgid "Slug" -msgstr "" - -#: mediagoblin/edit/forms.py:30 -msgid "The slug can't be empty" -msgstr "" - -#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "Etiket" -#: mediagoblin/edit/forms.py:38 +#: mediagoblin/edit/forms.py:33 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:34 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:35 +msgid "" +"The title part of this media's URL. You usually don't need to change this." +msgstr "" + +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "Bio" -#: mediagoblin/edit/forms.py:41 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Website" -#: mediagoblin/edit/views.py:66 +#: mediagoblin/edit/views.py:63 msgid "An entry with that slug already exists for this user." msgstr "" -#: mediagoblin/edit/views.py:95 +#: mediagoblin/edit/views.py:84 msgid "You are editing another user's media. Proceed with caution." msgstr "" "U bent de media van een andere gebruiker aan het aanpassen. Ga voorzichtig " "te werk." -#: mediagoblin/edit/views.py:166 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "" "U bent een gebruikersprofiel aan het aanpassen. Ga voorzichtig te werk." @@ -130,6 +123,10 @@ msgstr "" msgid "File" msgstr "Bestand" +#: mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + #: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "U moet een bestand aangeven." @@ -266,12 +263,12 @@ msgid "Editing %(media_title)s" msgstr "%(media_title)s aanpassen" #: mediagoblin/templates/mediagoblin/edit/edit.html:36 +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49 msgid "Cancel" msgstr "Annuleren" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44 msgid "Save changes" msgstr "Wijzigingen opslaan" @@ -307,10 +304,8 @@ msgstr "Sorry, die gebruiker kon niet worden gevonden." msgid "Really delete %(title)s?" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36 -msgid "" -"If you choose yes, the media entry will be deleted " -"permanently." +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 +msgid "Delete Permanently" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 @@ -418,10 +413,22 @@ msgstr "" msgid "Atom feed" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 +msgid "Newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 +msgid "Older" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Commentaar" +#: mediagoblin/user_pages/forms.py:30 +msgid "I am sure I want to delete this" +msgstr "" + #: mediagoblin/user_pages/views.py:176 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mo index 8c19629579eb27017d3d550183c02e254a27646c..1837c8da3d380f877149d7fb6f6fcf5b2714415b 100644 GIT binary patch delta 1969 zcmb`{YiOHg6u|M5Ubd#$mYB|LU2jk8>WX%~tai6DX0a%(wHs@uQ=Af-H%(|R_03yr zWiuUC*-gd>W6Uc^KDZBqu?Vf8V%--9I`=`C7B@j;A4JsQ7*w42KWWg9A{d(dp67kv zKF>MlImvwQ>E6tBf7vPF^%U<~-anP-?4Q?%1bIvK2IpgxY8!C}+|PM}8mCh9`xuo*9) zR^V&YlK+ka==UyduphTDKZG)Qqp8!5gT(vHY&3 zl6vtW=1r&@M6d_n#z$}gwIWT_{~7E-ZNAr0k0i&(d6&p6YT(h;)L*-HdbP-IoJEq6 z3hJ$;UV|FxG`8S*?8a}9(-JQStCgz39oT|e!3b*L3Dor_iu0M`{5Wc&Z)6x0B14UQ z7PYCapf3Ca>e=4Jd(cDJ9G|qKp5YGEuhl-(3OtQeS#qdN`99is74O9XHqjn=4js&# zWbhb+W$dEg{~*@r14Um$jr1&X8gc=NMJ^&mkOkC0e?_gx9n>Rr6P>Q-MV+@6-Go}1 ztw>B6d60pYdLK^VJZdF+h=SvkAnNxyg1XQvs1-PdTJkg4iC0krbF-^KgX^&uwRt0` ziHsF>(4*h~gABAwk6<&-p_cACYFE4J_zl28Y{6;N9yp7w_#JBVt{_V7l|j@VIDmTn zW#lJAE~3H9s7?6``uZ3wGSIHB#HXasN{`sFaVM5anpDI%(OB9{rtGo2srbxQZ$b%^p0F*`Zze-Y z$2chyURpyR%-(Px%Fk6cx*DxX%a);(Nm$`n$i$Kx$L-XJl}^W!qp~X=w(R`R9#`qZ zPRxm0W;|p&fA3ZJj}2+Fch6v(c``L&Cejn3cznu)Q^^gENm^D|cO8j_lA~53yteF* zt3J+N^UmZmzCT>qcleSpuIyk{gU&Xajt91P<(;bT();`VL(=aB-gPzf z|4Y{WYoE{is!LrfhYD%;6IjwDvX`p^157%%V#&1w+8h7C~ zT*5K@78AIoy8N7hVdm2~g*Ng?NqxnDm->c35&XXVhWZT~m|qFjBQ;93GVjCS`4Dc$ z&A1QAK-nmP9uD50$Lkdf)=#4(c0O4D8Y!Oo8EZISU1rdPS22ZA(wo6KY{B1AGO8!N z4%~t)se4c|+>a08W7vadP%8Bu4&s%-{u|2y8z`SoVM!t@Fp!O&!CUb;l#Jg(De)I5 z8~=oNU<-BZ!*SGD!XZ3?6Lr@S6Uc3-vk~gA8JuTr<|Q1(cTp-6=HUa_hFv&|+@5+Bd8sA-oC+zmf|5ukT5i&#IL>?}O8rSn zZKVEE`ZkovkD~O%8BE|Md z;LSK2SXy8pk@-l~)d~`W`V>i8t)WEv2TBF1iApwVM7i4ml+3pwF{s@rm3$D3xQcRB zJ2;hFQ}?5MU6aV?OX_I`lJPuBNf&SsFQ5cc&1o8Acnj`9Y1Sl4;8vi665uRKb3TjG z%LSMR8g^rxj!ek+|4|0g-7n%0uA+45uPD7RM7VOtNn}Y)qr5+l{A*Ajp~f#! zn(s17C9k10aipW%#1puK`SU0}bq=GF(Vq-*Sg*@H@D$Rt>J60Ao%ENh<}3Vc&AE^_ zQCk|*lPTMFO`Bvgt?VJcX+tRN8FkA&azfU~nA&FK=z?oHZuuB1 z$$r*UQ5Wq3EBREPS06dnMihBlp3{adAEa}J>mIS4WT(Fvxf<$v*e*EQ%otX>yiwLX z%+5reD;!K)Zpuvdc`rA-zHWPOd_ZsAx-;R8Hg?EtP!Gg+CVaaw5%xcCel6r3Zz+uL zow^>t|5uf&O_d?9t~KVzTR*Gt_O-u1G?B7g&FeqaVtuUmkG1d?BP0HYvE|U_f3Jr( Hquc)i3fV#D diff --git a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po index c4b42d89..5bbe2180 100644 --- a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-30 22:51-0500\n" -"PO-Revision-Date: 2011-08-31 03:51+0000\n" +"POT-Creation-Date: 2011-09-05 23:31-0500\n" +"PO-Revision-Date: 2011-09-06 04:31+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -18,42 +18,30 @@ msgstr "" "Language: nn_NO\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54 +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 msgid "Username" msgstr "Brukarnamn" -#: mediagoblin/auth/forms.py:28 -msgid "This is the name other users will identify you with." -msgstr "" - -#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58 +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 msgid "Password" msgstr "Passord" -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:34 msgid "Passwords must match." msgstr "Passorda må vera like." -#: mediagoblin/auth/forms.py:37 -msgid "Try to use a strong password!" -msgstr "" - -#: mediagoblin/auth/forms.py:40 +#: mediagoblin/auth/forms.py:36 msgid "Confirm password" msgstr "Gjenta passord" -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:38 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "" -#: mediagoblin/auth/forms.py:45 +#: mediagoblin/auth/forms.py:41 msgid "Email address" msgstr "E-postadresse" -#: mediagoblin/auth/forms.py:48 -msgid "Your email will never be published." -msgstr "" - #: mediagoblin/auth/views.py:40 msgid "Sorry, registration is disabled on this instance." msgstr "Registrering er slege av. Orsak." @@ -87,35 +75,40 @@ msgstr "Send ein ny stadfestingsepost." msgid "Title" msgstr "Tittel" -#: mediagoblin/edit/forms.py:29 -msgid "Slug" -msgstr "Adressetittel" - -#: mediagoblin/edit/forms.py:30 -msgid "The slug can't be empty" -msgstr "Adressetittelen kan ikkje vera tom" - -#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "Merkelappar" -#: mediagoblin/edit/forms.py:38 +#: mediagoblin/edit/forms.py:33 +msgid "Slug" +msgstr "Adressetittel" + +#: mediagoblin/edit/forms.py:34 +msgid "The slug can't be empty" +msgstr "Adressetittelen kan ikkje vera tom" + +#: mediagoblin/edit/forms.py:35 +msgid "" +"The title part of this media's URL. You usually don't need to change this." +msgstr "" + +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "Presentasjon" -#: mediagoblin/edit/forms.py:41 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Heimeside" -#: mediagoblin/edit/views.py:66 +#: mediagoblin/edit/views.py:63 msgid "An entry with that slug already exists for this user." msgstr "Eit innlegg med denne adressetittelen finst allereie." -#: mediagoblin/edit/views.py:95 +#: mediagoblin/edit/views.py:84 msgid "You are editing another user's media. Proceed with caution." msgstr "Ver forsiktig, du redigerer ein annan konto sitt innlegg." -#: mediagoblin/edit/views.py:166 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "Ver forsiktig, du redigerer ein annan konto sin profil." @@ -127,6 +120,10 @@ msgstr "Ugyldig fil for mediatypen." msgid "File" msgstr "Fil" +#: mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + #: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "Du må velja ei fil." @@ -274,12 +271,12 @@ msgid "Editing %(media_title)s" msgstr "Redigerer %(media_title)s" #: mediagoblin/templates/mediagoblin/edit/edit.html:36 +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49 msgid "Cancel" msgstr "Avbryt" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44 msgid "Save changes" msgstr "Lagra" @@ -315,10 +312,8 @@ msgstr "Fann ingen slik brukar" msgid "Really delete %(title)s?" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36 -msgid "" -"If you choose yes, the media entry will be deleted " -"permanently." +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 +msgid "Delete Permanently" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 @@ -424,10 +419,22 @@ msgstr " " msgid "Atom feed" msgstr "Atom-kjelde" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 +msgid "Newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 +msgid "Older" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Innspel" +#: mediagoblin/user_pages/forms.py:30 +msgid "I am sure I want to delete this" +msgstr "" + #: mediagoblin/user_pages/views.py:176 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo index 28cf6af2aab430d46b06861ca70418ea57fc006f..6c08c67a23c2997a50b6e132ce28a0b017cf1c8d 100644 GIT binary patch delta 1964 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 QvBbWtsncfGEni6e1*kPgt^fc4 diff --git a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po index 8c5ab19e..190cab68 100644 --- a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-30 22:51-0500\n" -"PO-Revision-Date: 2011-08-31 03:51+0000\n" +"POT-Creation-Date: 2011-09-05 23:31-0500\n" +"PO-Revision-Date: 2011-09-06 04:31+0000\n" "Last-Translator: cwebber \n" "Language-Team: Portuguese (Brazilian) (http://www.transifex.net/projects/p/mediagoblin/team/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -18,42 +18,30 @@ msgstr "" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54 +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 msgid "Username" msgstr "Nome de Usuário" -#: mediagoblin/auth/forms.py:28 -msgid "This is the name other users will identify you with." -msgstr "" - -#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58 +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 msgid "Password" msgstr "Senha" -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:34 msgid "Passwords must match." msgstr "Senhas devem ser iguais." -#: mediagoblin/auth/forms.py:37 -msgid "Try to use a strong password!" -msgstr "" - -#: mediagoblin/auth/forms.py:40 +#: mediagoblin/auth/forms.py:36 msgid "Confirm password" msgstr "Confirmar senha" -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:38 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "" -#: mediagoblin/auth/forms.py:45 +#: mediagoblin/auth/forms.py:41 msgid "Email address" msgstr "Endereço de email" -#: mediagoblin/auth/forms.py:48 -msgid "Your email will never be published." -msgstr "" - #: mediagoblin/auth/views.py:40 msgid "Sorry, registration is disabled on this instance." msgstr "Desculpa, o registro está desativado neste momento." @@ -87,35 +75,40 @@ msgstr "O email de verificação foi reenviado." msgid "Title" msgstr "Título" -#: mediagoblin/edit/forms.py:29 -msgid "Slug" -msgstr "" - -#: mediagoblin/edit/forms.py:30 -msgid "The slug can't be empty" -msgstr "" - -#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "Tags" -#: mediagoblin/edit/forms.py:38 +#: mediagoblin/edit/forms.py:33 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:34 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:35 +msgid "" +"The title part of this media's URL. You usually don't need to change this." +msgstr "" + +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "Biográfia" -#: mediagoblin/edit/forms.py:41 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Website" -#: mediagoblin/edit/views.py:66 +#: mediagoblin/edit/views.py:63 msgid "An entry with that slug already exists for this user." msgstr "" -#: mediagoblin/edit/views.py:95 +#: mediagoblin/edit/views.py:84 msgid "You are editing another user's media. Proceed with caution." msgstr "" -#: mediagoblin/edit/views.py:166 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "" @@ -127,6 +120,10 @@ msgstr "" msgid "File" msgstr "Arquivo" +#: mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + #: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "Você deve fornecer um arquivo." @@ -266,12 +263,12 @@ msgid "Editing %(media_title)s" msgstr "Editando %(media_title)s" #: mediagoblin/templates/mediagoblin/edit/edit.html:36 +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49 msgid "Cancel" msgstr "Cancelar" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44 msgid "Save changes" msgstr "Salvar mudanças" @@ -307,10 +304,8 @@ msgstr "Desculpe, tal usuário não encontrado." msgid "Really delete %(title)s?" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36 -msgid "" -"If you choose yes, the media entry will be deleted " -"permanently." +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 +msgid "Delete Permanently" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 @@ -416,10 +411,22 @@ msgstr "" msgid "Atom feed" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 +msgid "Newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 +msgid "Older" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "" +#: mediagoblin/user_pages/forms.py:30 +msgid "I am sure I want to delete this" +msgstr "" + #: mediagoblin/user_pages/views.py:176 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo index 4c3e785cc33eeac101c46c20bbd38a1337e9530d..1fe03578fc76750c4401b659493494de243d753b 100644 GIT binary patch delta 2371 zcmb`{eP~r>9KiAC&P}&F=jNQ#yG{4pt2WJTPN%ar$eB7{(wT450@K62XLqOFmwE0v z$p$jtin14#liAD+Vh{vod7=D63sYi2B9T~#78Mwn2$2K}gTBAJi}qLaN0+<%d7kH- z^E|)j_j}HU+dgdT|GqT$h~o1!e^vb5&XL}O&)Gbs%ITiNId}!zF?Y051-JpbaVs|A zm$(Ym7^N1#6DarX!BO}!cH%+g)_(N|4Zi9xeo8PeKXXBqV=4V9DB}&;{$iX=eIVLM_u5~Qlai8uqh zum$^Y5G51UY*Tjl2ui@~kxR-(*>OK^#{F1}*HJQ8Fpg_;X-uafcA)IwMU)8+qC|Qe zWulWf15cx5;5(F*|B0)xw0LBJt+0j$T*QR8p85lfkL4n|AJzwGoV1B>u&lpWtd zjWL5Rr_#VoG7f@<>1!X}W53j)jlnrdgSr|n*yoXV0 zUdTa_Gx87~!TvTH-88P_6kNewvQQ^JhI^6oqRu00smmy@*DuJNYBV=XCaO^an}t%+ zW}J?#*}j>z8ztZ!$XnB|dTB@i$8kUA^Iu2~*{dj#rg0{IgA%|!lz_^Jb{mGU8TVoX zovQm0y((X>{ z{2|{|ZNzoTwN1TJ?=%vQc9J?WGKbvg-7MIXKI0Gig62-sR_#e0HzSsztwddqoeZ0) zl$D68wXuk4r|%T{MzuMX6Ek&>VLSKN$~;k%(wo+=uGdc`UG1h^BNpq`kz}IA(FxOx z$g1HkBM~(-;njP$#(nDDDBhp$FS+OQ-YFd{c(krzfu7gc+~}>IP%XVC-7vqoG3`v) zp5tAecx#Md>9`wnyf4bvMP&VC%uq{g(=_@n?z`X6ZbFBX2`6}eq%NinD{KYH(tl2z zYIn7f?wItEuWsePr%x?4!WZ{x$JOT0fa3)M)4bL|Rbg`IEla25g6Y-!1AfDGD3#S| zg}p<8D*wnsnJ4@eRbEX+D93QU_KG#RnXwZU7jvZ=-uB9xT*)I}ve6r!6!MCy{9bj{3l$rzsB4pNTP7G;nucjdt@P=tAAH{HQ%|kh*hTXHpXxnc zJ>)IYhi0x!ICe7PX3L=?RzfGJe-E3rUHzPC%a#q>^kxS)&)Q_iGsVgzCL5jZw1x&O z)224rgJ;A{Z(^un^s-mLvIAkK1<4*eWG41j@V|((2n7q4e8o{q+CBp zw^f^2?ZO9AkZ>~IBWIw`E1EXBRz|G25w#K=4vRyhJ2|K-8#J{u>*9tLt8-&P^*1#& B&Hw-a delta 2358 zcmb`{ZERCj7{KwgtkP%iD=dPCb=?`=n> z!7iW#qLAoS69On7KwY9yEW{8E;llzm(GWEfKPVwYBS8#mA`uga|7R^Rd@-8X+}+=~ zr{|vYoaZ^+2c5S%vzIDIy{7nV<}bkCw?*>w_vdi2Qj>T*g3Wjm*W>p%23tofwH+VE z1vrRn@G{QF*(LdL2Kss4jy-52L$c~34KDQ^w{rX;|Ao4Vl|0`r^p}?^Rm*b_$6`B9 z#??3t4IGC9Sc3;}6uyI-@I9P>exh!|iMW&X)lwR>=s1J@_#<|qQKnP`Kg1wTx{sG| zAvWMzWCzMd3AC^9{XQJYSfT$U%ErzY`oBSvr*2>=>#N^sRO20tVHMkZ26y5V`~zi2 z6>P5_XCqze5tJQn#>a3AHsL9hOkKe_c)MWp_q$mFuqCvYlm#U=P0QVn&cocwDV=jou#>MBYq zf5BzwugEXB5*P8D#g+ImN@n~Fei8%Nh|eO`Q*R=d8sv7-r_?7XrSqyNH@=M<@oE+M zCs@@^{x{%SY{fUQ1HZ&oSVci);w=Sxae(KiQ3C%BWr07DSJZgYCOe#t>_vr8)>(`a z*m@+H%E;2-QYmhAxEJMxV>nVvlm)KfI=qH5(L%QW0Iotgv<^zmuj4T+;lOm^yXfF; zloF&EB;yWnTa4L38k`Sx6`5PzMEN<5CmQBbA(WkWq6F53)6qbw?H-f>Uqbm+yoz#& zKf>ox^G`+QIgWC8&)_V)gshiUC4?mb)Z&+9JBuF;X0ZM&xKH{B+kj+r`PMlC~|$+Xk2cUbYb-e&5k88_2rRJXfn$4>Sx zPMJ=^NHQkgA8v0hbml%Qo8_yv3lmt$P|C3*rt4bC-dy!qpWibkoNkg8l19SRHZ4bI zT+?y$%UDt7vwHey*$m)Ev;?ybN0loMMcAh zybIOWMrYz_D;4+7PTEi$F^3OXUd809nFbA=N$QB5qzua(Q#wL%ZCDX2sMcq+(Z|?a zX7UMN<#Ho3v|C5}+^}{t$u#}m#+t^k46w8rk|;x&I0@ARY4unU!!etPR7P6b<=wua z-QJO!Mn8*qXKMo4)jcB_`QOT<@*x(YV@<1<{7KYC)G=L3@1{-mN;{G!meIA-iidV* z(uOy)cAeiMsvWgMUPs*wFJ9N;EgEZirGXc``f+u+Q-LphezxK5nfAUnP=9`2cg%7% z*MBN{r+#^A_diwLJ6zu3`GT9ghKl7SE236fGIc80Hj=SlgRckf)~m-FK4_UvSasw# zCROo{Ht0F`W?LIP%h974MBj9`3OZp&3!UEehAG|o5?KkO*Gf|Ne{t-T#gWlHrWsXt Lt9{Qg2&%sT+C$;o diff --git a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po index 1c366b06..38696aa4 100644 --- a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-30 22:51-0500\n" -"PO-Revision-Date: 2011-08-31 03:51+0000\n" +"POT-Creation-Date: 2011-09-05 23:31-0500\n" +"PO-Revision-Date: 2011-09-06 04:31+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -18,42 +18,30 @@ msgstr "" "Language: ro\n" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1))\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54 +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 msgid "Username" msgstr "Nume de utilizator" -#: mediagoblin/auth/forms.py:28 -msgid "This is the name other users will identify you with." -msgstr "" - -#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58 +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 msgid "Password" msgstr "Parolă" -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:34 msgid "Passwords must match." msgstr "Parolele trebuie să fie identice." -#: mediagoblin/auth/forms.py:37 -msgid "Try to use a strong password!" -msgstr "" - -#: mediagoblin/auth/forms.py:40 +#: mediagoblin/auth/forms.py:36 msgid "Confirm password" -msgstr "Reintroduceți parola" +msgstr "Reintrodu parola" -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:38 msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "" +msgstr "Introdu parola din nou pentru verificare." -#: mediagoblin/auth/forms.py:45 +#: mediagoblin/auth/forms.py:41 msgid "Email address" msgstr "Adresa de e-mail" -#: mediagoblin/auth/forms.py:48 -msgid "Your email will never be published." -msgstr "" - #: mediagoblin/auth/views.py:40 msgid "Sorry, registration is disabled on this instance." msgstr "Ne pare rău, dar înscrierile sunt dezactivate pe această instanță." @@ -71,8 +59,8 @@ msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "" -"Adresa dvs. de e-mail a fost confirmată. Puteți să vă autentificați, să vă " -"modificați profilul și să trimiteți imagini!" +"Adresa ta de e-mail a fost confirmată. Poți să te autentifici, să îți " +"completezi profilul și să trimiți imagini!" #: mediagoblin/auth/views.py:166 msgid "The verification key or user id is incorrect" @@ -87,38 +75,43 @@ msgstr "E-mail-ul de verificare a fost retrimis." msgid "Title" msgstr "Titlu" -#: mediagoblin/edit/forms.py:29 -msgid "Slug" -msgstr "Identificator" - -#: mediagoblin/edit/forms.py:30 -msgid "The slug can't be empty" -msgstr "Identificatorul nu poate să lipsească" - -#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "Etichete" -#: mediagoblin/edit/forms.py:38 +#: mediagoblin/edit/forms.py:33 +msgid "Slug" +msgstr "Identificator" + +#: mediagoblin/edit/forms.py:34 +msgid "The slug can't be empty" +msgstr "Identificatorul nu poate să lipsească" + +#: mediagoblin/edit/forms.py:35 +msgid "" +"The title part of this media's URL. You usually don't need to change this." +msgstr "" + +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "Biografie" -#: mediagoblin/edit/forms.py:41 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Sit Web" -#: mediagoblin/edit/views.py:66 +#: mediagoblin/edit/views.py:63 msgid "An entry with that slug already exists for this user." msgstr "" "Există deja un entry cu același identificator pentru acest utilizator." -#: mediagoblin/edit/views.py:95 +#: mediagoblin/edit/views.py:84 msgid "You are editing another user's media. Proceed with caution." -msgstr "Editați fișierul unui alt utilizator. Se recomandă prudență." +msgstr "Editezi fișierul unui alt utilizator. Se recomandă prudență." -#: mediagoblin/edit/views.py:166 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." -msgstr "Editați profilul unui utilizator. Se recomandă prudență." +msgstr "Editezi profilul unui utilizator. Se recomandă prudență." #: mediagoblin/process_media/errors.py:44 msgid "Invalid file given for media type." @@ -128,9 +121,13 @@ msgstr "Formatul fișierului nu corespunde cu tipul de media selectat." msgid "File" msgstr "Fișier" +#: mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + #: mediagoblin/submit/views.py:47 msgid "You must provide a file." -msgstr "Trebuie să selectați un fișier." +msgstr "Trebuie să selectezi un fișier." #: mediagoblin/submit/views.py:50 msgid "The file doesn't seem to be an image!" @@ -153,8 +150,8 @@ msgid "" "If you're sure the address is correct, maybe the page you're looking for has" " been moved or deleted." msgstr "" -"Dacă sunteți sigur că adresa este coresctă, poate că pagina pe care o " -"căutați a fost mutată sau ștearsă." +"Dacă ești sigur că adresa este corectă, poate că pagina pe care o cauți a " +"fost mutată sau ștearsă." #: mediagoblin/templates/mediagoblin/404.html:32 msgid "Image of 404 goblin stressing out" @@ -170,11 +167,11 @@ msgstr "logo MediaGoblin" #: mediagoblin/templates/mediagoblin/base.html:52 msgid "Submit media" -msgstr "Transmiteți un fișier media" +msgstr "Transmite un fișier media" #: mediagoblin/templates/mediagoblin/base.html:63 msgid "verify your email!" -msgstr "verificați e-mail-ul!" +msgstr "verifică e-mail-ul!" #: mediagoblin/templates/mediagoblin/base.html:73 #: mediagoblin/templates/mediagoblin/auth/login.html:26 @@ -187,6 +184,8 @@ msgid "" "Powered by MediaGoblin, a GNU project" msgstr "" +"Construit cu MediaGoblin, un proiect " +"GNU" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." @@ -225,7 +224,7 @@ msgid "" " including video support!)" msgstr "" "Proiectat să fie extensibil. (Software-ul va avea în curând suport pentru " -"multiple formate de media, inclusiv pentru video!)" +"mai multe formate de media, inclusiv pentru video!)" #: mediagoblin/templates/mediagoblin/root.html:34 msgid "" @@ -243,15 +242,15 @@ msgstr "Autentificare eșuată!" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" -msgstr "Nu aveți un cont?" +msgstr "Nu ai un cont?" #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Create one here!" -msgstr "Creați-l aici!" +msgstr "Creează-l aici!" #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" -msgstr "Creați un cont!" +msgstr "Creează un cont!" #: mediagoblin/templates/mediagoblin/auth/register.html:30 msgid "Create" @@ -279,12 +278,12 @@ msgid "Editing %(media_title)s" msgstr "Editare %(media_title)s" #: mediagoblin/templates/mediagoblin/edit/edit.html:36 +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49 msgid "Cancel" msgstr "Anulare" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44 msgid "Save changes" msgstr "Salvează modificările" @@ -318,12 +317,10 @@ msgstr "Ne pare rău, nu am găsit utilizatorul căutat." #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" -msgstr "" +msgstr "Sigur dorești să ștergi %(title)s?" -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36 -msgid "" -"If you choose yes, the media entry will be deleted " -"permanently." +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 +msgid "Delete Permanently" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 @@ -359,11 +356,11 @@ msgstr "Aproape gata! Mai trebuie doar să activezi contul." #: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" "An email should arrive in a few moments with instructions on how to do so." -msgstr "Veți primi în scurt timp un mesaj prin e-mail cu instrucțiuni." +msgstr "Vei primi în scurt timp un mesaj prin e-mail cu instrucțiuni." #: mediagoblin/templates/mediagoblin/user_pages/user.html:51 msgid "In case it doesn't:" -msgstr "Dacă nu primiți mesajul:" +msgstr "Dacă nu primești mesajul:" #: mediagoblin/templates/mediagoblin/user_pages/user.html:54 msgid "Resend verification email" @@ -383,9 +380,8 @@ msgid "" "If you are that person but you've lost your verification email, you can log in and resend it." msgstr "" -"Dacă dvs. sunteți persoana respectivă și nu mai aveți e-mail-ul de " -"verificare, puteți să vă autentificați pentru " -"a-l retrimite." +"Dacă tu ești persoana respectivă și nu mai ai e-mail-ul de verificare, poți " +"să te autentifici pentru a-l retrimite." #: mediagoblin/templates/mediagoblin/user_pages/user.html:78 #, python-format @@ -434,12 +430,26 @@ msgstr "icon feed" msgid "Atom feed" msgstr "feed Atom" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 +msgid "Newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 +msgid "Older" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Scrie un comentariu" +#: mediagoblin/user_pages/forms.py:30 +msgid "I am sure I want to delete this" +msgstr "" + #: mediagoblin/user_pages/views.py:176 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" +"Urmează să ștergi fișierele media ale unui alt utilizator. Se recomandă " +"prudență." diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo index babdb60e88122d3d00a0c633a55cb2c9a389da27..35c8ed2d52f1e31507de3fa7f8a4de1c6bf0c93e 100644 GIT binary patch delta 1985 zcmb`{e@xVM9LMp`aUg;U1VsJ-@53cOl;5IcvT{t!N%&(TGHhfQ_Z1G0J9l?PwA?9> zBTcb=bY4R{2Di4>JAtDsRw+dVBE~98!7`+X=kDImrl2NW|kt!1(#vE+L zN_+_iP?B&^rc}5BWx<<~TPlE3aTpu07Yp$^N^%KF+$-Z^5f|cClnVM#2Ixmw=?Rp9 zPGb(9K}q0Sl*lKs22+!x6ExvtwD)5%UOQhW7=LPsZzKwsN8&9x-7tuz!J$MNvff{C$fxRfFI*hDYjic=OU3?Ui*dIbtOHmGI z70R#exiA+pz;5JObr@yfcX2U(hO%c9xB{JQoV1_8HQ0xe*cVuj-ykWgBC2>2pTO(* zGS*@vv&tD6#0m6V;v&Sw`7EWXv5e(0mwExq@Gx@V)dgIFSFs%Lp)913(Il}(lma?X zw)7B6vPY)d7tONRx^NdgJNdD+;Z0nRn+T{8PvSPbhmu|0qUgwN$RKJT%1Q>Y3O~R~ zyp6K?B{|Vk*og-13)qDDxx|6{aye~lxEP|N0Vh!=-kcZRwD)io?O~LO9-x#kGe4T~ z3X~su6|P1%w%{oYUp$HU~VrLLR?Q`*-M2t0$;C{ehhkJ@c|{p?0vX5f7t$fWc1OpM z2hH(>y^(W?*|uz>(+H>ye%)@kJudC>73~W6n~h-5<7-hHy>25A`DK>P{#3{l@)~-V zD-im7uBmV21$F)A+G5@4@6a8=4wu*4rQLpCUP${4!!5Hmx4L{S#?Ds<_xmF1C8n$KLM4-O1b@W1TS@vUKEf)>pQ;4HBw(+))-6P4J52 zRE&LW&tWs*Y^JE$k(RnDx~*8l?=(VHB@mJ9<)->cP`kh*@{?C#=UJ z+=*nM43t0*Bz`}Rw=0$ypGHY+J~93UQap7HlUZLa(#XVH=*3l}cMuO_HvW#1Q5xwL zU^z0R+E6mwgI%}}EAR|TrM|-&yqU1-E<0ck%KyC>lgJ`8WTK;+q}fqo2Ia0aC^E*^dq^KdO5LUvERgj{Nh+iwn~W>Es1US$XNBc7w5lS%#Wrg542 zPoQj^Y{AR;KBkcV2!4uEk=?8+6Gu=^@i8P;bq!_DWuGLF)kv{a1IpoSMR~h?DDxb} z^*9-$A*KBc>+#P-zn%?zkiL#ms@G9Y@ibChl|t0bn2Q&&8+YO+R`~@-upNh~dl)~$ z2e64~SVA4a8oYO$1_xYyf@Sz6)?yMTO#-V&sgRB&sh&pJ+ZRnw((c$HS_8ZcPv8~Y zg%4AJZk)iq_yJJj#MgOYIcWQEGcX$_w3w+cALscp8J4%TA5p7|O9v zqfS?GTN$T<0U^_F98w-E_y`k=?>w7r{7vg%w##8o<=k*h$KSF} z=3aNC_8UwT&=$rPj>PBOZnybCUZ;7fFnz^zd?tP-{%-so?z3h?{$tLCQFA\n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -18,42 +18,30 @@ msgstr "" "Language: ru\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" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54 +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 msgid "Username" msgstr "Логин" -#: mediagoblin/auth/forms.py:28 -msgid "This is the name other users will identify you with." -msgstr "" - -#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58 +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 msgid "Password" msgstr "Пароль" -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:34 msgid "Passwords must match." msgstr "Пароли должны совпадать." -#: mediagoblin/auth/forms.py:37 -msgid "Try to use a strong password!" -msgstr "" - -#: mediagoblin/auth/forms.py:40 +#: mediagoblin/auth/forms.py:36 msgid "Confirm password" msgstr "Подтвердите пароль" -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:38 msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "" +msgstr "Type it again here to make sure there are no spelling mistakes." -#: mediagoblin/auth/forms.py:45 +#: mediagoblin/auth/forms.py:41 msgid "Email address" msgstr "Адрес электронной почты" -#: mediagoblin/auth/forms.py:48 -msgid "Your email will never be published." -msgstr "" - #: mediagoblin/auth/views.py:40 msgid "Sorry, registration is disabled on this instance." msgstr "Извините, на этом разделе регистрация запрещена." @@ -87,36 +75,41 @@ msgstr "Переслать сообщение с подтверждением а msgid "Title" msgstr "Название" -#: mediagoblin/edit/forms.py:29 -msgid "Slug" -msgstr "Отличительная часть адреса" - -#: mediagoblin/edit/forms.py:30 -msgid "The slug can't be empty" -msgstr "Отличительная часть адреса необходима" - -#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "Метки" -#: mediagoblin/edit/forms.py:38 -msgid "Bio" -msgstr "Биограаия" +#: mediagoblin/edit/forms.py:33 +msgid "Slug" +msgstr "Отличительная часть адреса" -#: mediagoblin/edit/forms.py:41 +#: mediagoblin/edit/forms.py:34 +msgid "The slug can't be empty" +msgstr "Отличительная часть адреса необходима" + +#: mediagoblin/edit/forms.py:35 +msgid "" +"The title part of this media's URL. You usually don't need to change this." +msgstr "" + +#: mediagoblin/edit/forms.py:42 +msgid "Bio" +msgstr "Биография" + +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Сайт" -#: mediagoblin/edit/views.py:66 +#: mediagoblin/edit/views.py:63 msgid "An entry with that slug already exists for this user." msgstr "" "У этого пользователя уже есть файл с такой отличительной частью адреса." -#: mediagoblin/edit/views.py:95 +#: mediagoblin/edit/views.py:84 msgid "You are editing another user's media. Proceed with caution." msgstr "Вы редактируете файлы другого пользователя. Будьте осторожны." -#: mediagoblin/edit/views.py:166 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "Вы редактируете профиль пользователя. Будьте осторожны." @@ -128,6 +121,10 @@ msgstr "Неправильный формат файла." msgid "File" msgstr "Файл" +#: mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + #: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "Вы должны загрузить файл." @@ -188,7 +185,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." -msgstr "Привет, любитель мультимедиа! Mediagoblin это..." +msgstr "Привет, любитель мультимедиа! MediaGoblin это…" #: mediagoblin/templates/mediagoblin/root.html:29 msgid "The perfect place for your media!" @@ -221,6 +218,8 @@ msgid "" "Built for extensibility. (Multiple media types coming soon to the software," " including video support!)" msgstr "" +"Built for extensibility. (Multiple media types coming soon to the software," +" including video support!)" #: mediagoblin/templates/mediagoblin/root.html:34 msgid "" @@ -274,12 +273,12 @@ msgid "Editing %(media_title)s" msgstr "Редактирование %(media_title)s" #: mediagoblin/templates/mediagoblin/edit/edit.html:36 +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49 msgid "Cancel" msgstr "Отменить" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44 msgid "Save changes" msgstr "Сохранить изменения" @@ -315,10 +314,8 @@ msgstr "Извините, но такой пользователь не найд msgid "Really delete %(title)s?" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36 -msgid "" -"If you choose yes, the media entry will be deleted " -"permanently." +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 +msgid "Delete Permanently" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 @@ -346,11 +343,11 @@ msgstr "Обработка этих файлов вызвала ошибку:" #: mediagoblin/templates/mediagoblin/user_pages/user.html:39 #: mediagoblin/templates/mediagoblin/user_pages/user.html:59 msgid "Email verification needed" -msgstr "Нужно подтверджение почтового адреса" +msgstr "Нужно подтверждение почтового адреса" #: mediagoblin/templates/mediagoblin/user_pages/user.html:42 msgid "Almost done! Your account still needs to be activated." -msgstr "Почти закончили! Теперь надо активизировать ваш аккаунт." +msgstr "Почти закончили! Теперь надо активировать ваш аккаунт." #: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" @@ -371,7 +368,7 @@ msgstr "Повторно отправить подверждение на адр msgid "" "Someone has registered an account with this username, but it still has to be" " activated." -msgstr "Кто-то создал аккаунт с этим именем, но его еще надо активизировать." +msgstr "Кто‐то создал аккаунт с этим именем, но его еще надо активировать." #: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format @@ -379,8 +376,8 @@ msgid "" "If you are that person but you've lost your verification email, you can log in and resend it." msgstr "" -"Если это были вы, и если вы потеряли сообщение с подтвердлением аккаунта, то" -" вы можете войти и отпраыить его повторно." +"Если это были вы, и если вы потеряли сообщение для подтверждения аккаунта, " +"то вы можете войти и отправить его повторно." #: mediagoblin/templates/mediagoblin/user_pages/user.html:78 #, python-format @@ -409,7 +406,7 @@ msgstr "Смотреть все файлы %(username)s" msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." -msgstr "Ваши файлы появятся здесь, кодга вы их добавите." +msgstr "Ваши файлы появятся здесь, когда вы их добавите." #: mediagoblin/templates/mediagoblin/user_pages/user.html:141 msgid "Add media" @@ -417,7 +414,7 @@ msgstr "Добавить файлы" #: mediagoblin/templates/mediagoblin/user_pages/user.html:147 msgid "There doesn't seem to be any media here yet..." -msgstr "Пока что тут файлов нет..." +msgstr "Пока что тут файлов нет…" #: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 msgid "feed icon" @@ -427,10 +424,22 @@ msgstr "" msgid "Atom feed" msgstr "лента в формате Atom" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 +msgid "Newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 +msgid "Older" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Комментарий" +#: mediagoblin/user_pages/forms.py:30 +msgid "I am sure I want to delete this" +msgstr "" + #: mediagoblin/user_pages/views.py:176 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mo index 9772331910975387059da00d41fdcb0d3a73f48d..663a7e55515ec66d66820000217c08a5f2e6fd7a 100644 GIT binary patch delta 1936 zcmb`{ZD?C%6u|K(ec9G_U1B;rYuDyUT-j^ev~}Iu>b7V%X)N7X+vzrI4b5$uHN7dx z?Mj9cO9#$P+~hLG#21hbCRjlOI`IY6FOw-M$k5^jI_N;kU`~Y;8#p?k7tNC9jkm#S+2gOQN5`Kt{_zm`8(GsOfuop*h09)}h z45C`9)Mj`X<+>>>#1lA-Cy`6j>NghrsXusgVezu;2~~-1;u@6W{(Kz3yNLVnZXCnq zcnnwJX{^OrEXU8W3g@s0f5CpdjZXGgyGd^o2L|yed=A%PX{k~kY{3-v;t+m;UTi8; zszQ#V4NrZ`FXYe9pmgv;{`i+D1^tM{?5}R+FSsoSh+UK;Rw7BN)p#e?;Rtr% z5u8EkgoiSv!mTI???q0j1WLted<2i;Cj1_yb0sS{*TiBC3vnMx1;_gdL7(4J4d*&YzJW$3!9ms3oAn`cLhF_r+GKVxrT|+74XCz0ph}5Q* zr%6LHt3k=!k1|wUD34$ufBX=7iKkIMcn+ubg$}gh~>2*AaH&BKwSd%k_^~C2< z9@S;c&JaHe(itbxB;~;+^8Me!f_tcKC>0+>nxURYndvUs0`O!XyfLMM0KiUHh(M^G~U7$f){%J2pF z)saNIGiQsRE!beh49n1ajKo;TG)ya&Qk_O}C=ngEqH$BlhqW~lP3p;bVl<7?jaZ2^CeT63#DF%*O)XCswb|;jBqrhqh|ehB0gj!lTkCG zcE`d-B6Fk6QMk*BS}{Y9hZ5G`du2bdHmUpfb~ot#@d-VVoCw8YDIJcRYb|XWMp$+o z8VQ*ZBb#1>{nLt%>?_WrnY8P7hyAL1rlhUjzgai8w71yZ6&{INwg2AsmW);LX5q%p z|4_7dRat?j>tCwgST&vbvnt>y?vb+X?bV*5Y>AIm2MdFJBV_silzFc9qWzlZu$^}8 N$Q;&RJM2+k-CsI4EO-C_ delta 1967 zcmb`{Uu;uV9Ki9@mFbuu-9O6QSkH<^gs%I?aL&Reh-K55#jpq}vb*(et?PQ1-gdJZ zD44i}_&2%nLF3;CiI})VFB*vpi7)O&AB@cSprFLzq9khkn;69JkKV*LjfqX$&pD^} zp7Z(jf6XR22`qj>G*)5z!ZGU@&OdcIt#wRB&=Ry=`s;@7wmJFie`0=MB- zJdOkSC3fNFD@)fI=%+t{V`w3l6xF9Rc&jh?3gA-d2lXpf)4%AA2P%}hhJG`y!Wagz zADhs?)p!`|@kv~Pui+5BfosrD)Df(~gRHOmXl!KQ6c+Fs97Lm1sZo3jn{n+`+=Sg2 z#ygM4xDJ0u$*79- zLbw?jQn#aIxEJrn{TRWwQ7Ux~+wr1j>(!-z4V3$nSd_@}G-RS#ybd2j$@oo_5`Tg+ z@ppJ5uA`1o97K&p+=4IT9$ds$+{EOP={>j}hp`tAA-kbY1*pHKvA_V^td>zq`2+4m ze^qJ0INnUZh;e)mr80glz8@QL13rxGo_Yy+tK)oq{NVQauj@%eQ`Jd=RIWzlF_ILzYTP0Br@e!0j zzV*h_+;lDdNAU)H9Z9sPPScRbXbJDd3n+(cHz!7%!4^D*ZFm|b;Bp>%sl;leC~7^* zJYC2XDu$BbK9r~Daomo_@FrZsP4fJQLZ#9V;1+&JV;{bPvhX>Si37THii6lozYArn z@+eQoEXrAOQ387(gntIYqqzr9la@m5ONu|?z#MB8hZRX5`j@h}al^NeY zWo9Rh4A-O!(O9cD=zdta(N|}A6QnXNQ(0@&wCz-8+^t*X^E<|xlMz`VV@#UbqLtNo z+sxXfWl{;|ON|wD!OAm|OGcflz!Qx`k+bAFZRpZMddjfv87rG;cA|QRdnPdN+py2d zXSF$Lq|&9yGUhb16ZuqrB%QL8W+Li5Tm9bjqqq?Rn M{O_f3dc)WM1(e}M;Q#;t diff --git a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po index c2a28308..22c80076 100644 --- a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-30 22:51-0500\n" -"PO-Revision-Date: 2011-08-31 03:51+0000\n" +"POT-Creation-Date: 2011-09-05 23:31-0500\n" +"PO-Revision-Date: 2011-09-06 04:31+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -18,42 +18,30 @@ msgstr "" "Language: sl\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3)\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54 +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 msgid "Username" msgstr "Uporabniško ime" -#: mediagoblin/auth/forms.py:28 -msgid "This is the name other users will identify you with." -msgstr "" - -#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58 +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 msgid "Password" msgstr "Geslo" -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:34 msgid "Passwords must match." msgstr "Gesli morata biti enaki." -#: mediagoblin/auth/forms.py:37 -msgid "Try to use a strong password!" -msgstr "" - -#: mediagoblin/auth/forms.py:40 +#: mediagoblin/auth/forms.py:36 msgid "Confirm password" msgstr "Potrdite geslo" -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:38 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "" -#: mediagoblin/auth/forms.py:45 +#: mediagoblin/auth/forms.py:41 msgid "Email address" msgstr "E-poštni naslov" -#: mediagoblin/auth/forms.py:48 -msgid "Your email will never be published." -msgstr "" - #: mediagoblin/auth/views.py:40 msgid "Sorry, registration is disabled on this instance." msgstr "Oprostite, prijava za ta izvod ni omogočena." @@ -87,35 +75,40 @@ msgstr "Ponovno pošiljanje potrditvene e-pošte." msgid "Title" msgstr "Naslov" -#: mediagoblin/edit/forms.py:29 -msgid "Slug" -msgstr "Oznaka" - -#: mediagoblin/edit/forms.py:30 -msgid "The slug can't be empty" -msgstr "Oznaka ne sme biti prazna" - -#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "Oznake" -#: mediagoblin/edit/forms.py:38 +#: mediagoblin/edit/forms.py:33 +msgid "Slug" +msgstr "Oznaka" + +#: mediagoblin/edit/forms.py:34 +msgid "The slug can't be empty" +msgstr "Oznaka ne sme biti prazna" + +#: mediagoblin/edit/forms.py:35 +msgid "" +"The title part of this media's URL. You usually don't need to change this." +msgstr "" + +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "Biografija" -#: mediagoblin/edit/forms.py:41 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Spletna stran" -#: mediagoblin/edit/views.py:66 +#: mediagoblin/edit/views.py:63 msgid "An entry with that slug already exists for this user." msgstr "Vnos s to oznako za tega uporabnika že obstaja." -#: mediagoblin/edit/views.py:95 +#: mediagoblin/edit/views.py:84 msgid "You are editing another user's media. Proceed with caution." msgstr "Urejate vsebino drugega uporabnika. Nadaljujte pazljivo." -#: mediagoblin/edit/views.py:166 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "Urejate uporabniški profil. Nadaljujte pazljivo." @@ -127,6 +120,10 @@ msgstr "Za vrsto vsebine je bila podana napačna datoteka." msgid "File" msgstr "Datoteka" +#: mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + #: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "Podati morate datoteko." @@ -278,12 +275,12 @@ msgid "Editing %(media_title)s" msgstr "Urejanje %(media_title)s" #: mediagoblin/templates/mediagoblin/edit/edit.html:36 +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49 msgid "Cancel" msgstr "Prekliči" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44 msgid "Save changes" msgstr "Shrani spremembe" @@ -319,10 +316,8 @@ msgstr "Oprostite, tega uporabnika ni bilo moč najti." msgid "Really delete %(title)s?" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36 -msgid "" -"If you choose yes, the media entry will be deleted " -"permanently." +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 +msgid "Delete Permanently" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 @@ -430,10 +425,22 @@ msgstr "Ikona vira" msgid "Atom feed" msgstr "Ikona Atom" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 +msgid "Newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 +msgid "Older" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Komentar" +#: mediagoblin/user_pages/forms.py:30 +msgid "I am sure I want to delete this" +msgstr "" + #: mediagoblin/user_pages/views.py:176 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo index d3336ad03b65791b7c3c7f8c4dd06e5bb926653f..80608e3ab8acd4dd3cc96059a415e7ff5d18b130 100644 GIT binary patch delta 1945 zcmdti|7%rs9LMp`zU4N}tvj2|Ht%OEQ`CKHZ7wHBZIw;YQ0Fjkao9b(yX@}Vb?&*W zJBo{FWTr@5#1gAt7D1qx7g10ntRHF={a`up6L~A$FFcZmfvMe74E_b+=o5* z84jXZWK1_~Mcua_%kVWE!(+&;Ir9et-sUg9YO$hn;ex5h2=gY?dPg{a4DVyU8&}{Y zF2O^%9FOBlJdJnb=h%QZupEEGA)Ln=_BT5SZ#@go;Y)Y~*I;$EF;VQoEbhWl`~sV? zbFndXTE`ZQBN>^)sK8$jug{_?crjf65|z+5Si%10c6h_Q7MRzPj;u$5G>v#KuEKHb z!x@}KRU%57%CHv|@J{5C@lhG)a2OBbdi)wyxvHgH>tygC1Gxv4!6DQS979EV3iU&$ zaTT6JRp2_RqQzfuH%9o;c8u3je`R`th0XXDD&w1I@jFy+ zEV`#y(i-e%-h$d-4EykHds7>``$x!^#`b~K98zkBV|$G4gsFA@tI#yXRe2IG%Iijqezua26fgiqni30s;N78NIkL_ zvzW^=P*>kZo#`;UtE;o9u0D#2{46T+3*q%SBw2GST>l-FY32RJ=50V-kB0M}&`qc# zejF)k&TM6%u6A$+=a68{6Z|(KCNqMH_ytr&-auviE)L`Ss7yr9@*Gc2!5JbR9p2o8#1JvbfRihXb+=!OUcUrr84s_-k@mFSJ?LyY$CM zXGTp-oP_8D>yHOwG%+R+#se)%K!f@O6n$b;q6rvdG%oT$6VYJenD3AGCjJjLZC~e{ z-h1x%`#s<7%Fyfs*Q{J@#S8P5yNbhM14ze)Nz_%H|RS-sTElVf@Me!TgC4<_p1kxXzf{nMd&!9KP zcj7}x2F61LIu-nW82_zUuzm`a*o9#I8>D#VSFGdt<_`v|@CK%ECFxD$3^w6)R7MS? zw+=gyCG#LE!#%hgAIDC77gebrup1Ww_8GJYFX;xADf zU&W2sL>*%|f)>koFTR00@oS9ZJ#4N_AHh3tFK)p@$Z42!Vd`%gTwsA?HuI=b{)R&s zYVaR8j04QeIE?S3Dih-3QEb6Bd=fc5^E&c2$NB1@p+7(!$^1$`utiKTkFTQsy5SJ@ zAIE1=U3?AI#U0$$hf}EQ=1^Vy9;%DaqIw`onUp{~61(X_t>2FdWLvQQDC%f3s3Vvy zGvIArY4=U>qtg%29KbcxSpHT#638IbEqa>Kpm;W z)78XJqnfz<3Ij!Y78U8o!3AF-$(i|JeG!#eq}g9@L!E6u>MXY+MKjw`P5cB-<0q)2 z8seV|F__0tO+1BEpln`dpbX!{-FOU@nL37Nn)TR?+XAOi0nedISVaZ)5o(_=P)&RZ zmGR$5(M&7l)xH~WBaUHAfB&yCuq<3eb@5eH7hA$q7Z*{PzJ=^%PT&^&6qR|s_3w|M zdY~6o$pKUoCr}T30SE9Rs)?5oUDI6*5)4N10IG}6qnhm()JE5;XO2kx76a}!RM zYci$SU_4l?e!jfDred4dR5v#-)>fPqXF9cC)|qgv$0%ouc{i8$H%%wGJH5YTOJ0$c zLMm2i2tU`tGYg)svySz*wUbUhf6&V%qt&C~8#QeYd&Qh}C!BP~-ze)&u`@AF7WZY+ u`IMWCRX&WiR!&D|>o=|M?Xo>R{e6|;#&w!?+pgaJzN**wSLlCVfqww?n>=^` diff --git a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po index e37ae3c1..7a843fdc 100644 --- a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-30 22:51-0500\n" -"PO-Revision-Date: 2011-08-31 03:51+0000\n" +"POT-Creation-Date: 2011-09-05 23:31-0500\n" +"PO-Revision-Date: 2011-09-06 04:31+0000\n" "Last-Translator: cwebber \n" "Language-Team: Serbian (http://www.transifex.net/projects/p/mediagoblin/team/sr/)\n" "MIME-Version: 1.0\n" @@ -17,42 +17,30 @@ msgstr "" "Language: sr\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" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54 +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 msgid "Username" msgstr "" -#: mediagoblin/auth/forms.py:28 -msgid "This is the name other users will identify you with." -msgstr "" - -#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58 +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 msgid "Password" msgstr "" -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:34 msgid "Passwords must match." msgstr "" -#: mediagoblin/auth/forms.py:37 -msgid "Try to use a strong password!" -msgstr "" - -#: mediagoblin/auth/forms.py:40 +#: mediagoblin/auth/forms.py:36 msgid "Confirm password" msgstr "" -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:38 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "" -#: mediagoblin/auth/forms.py:45 +#: mediagoblin/auth/forms.py:41 msgid "Email address" msgstr "" -#: mediagoblin/auth/forms.py:48 -msgid "Your email will never be published." -msgstr "" - #: mediagoblin/auth/views.py:40 msgid "Sorry, registration is disabled on this instance." msgstr "" @@ -84,35 +72,40 @@ msgstr "" msgid "Title" msgstr "" -#: mediagoblin/edit/forms.py:29 -msgid "Slug" -msgstr "" - -#: mediagoblin/edit/forms.py:30 -msgid "The slug can't be empty" -msgstr "" - -#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "" -#: mediagoblin/edit/forms.py:38 +#: mediagoblin/edit/forms.py:33 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:34 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:35 +msgid "" +"The title part of this media's URL. You usually don't need to change this." +msgstr "" + +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "" -#: mediagoblin/edit/forms.py:41 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "" -#: mediagoblin/edit/views.py:66 +#: mediagoblin/edit/views.py:63 msgid "An entry with that slug already exists for this user." msgstr "" -#: mediagoblin/edit/views.py:95 +#: mediagoblin/edit/views.py:84 msgid "You are editing another user's media. Proceed with caution." msgstr "" -#: mediagoblin/edit/views.py:166 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "" @@ -124,6 +117,10 @@ msgstr "" msgid "File" msgstr "" +#: mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + #: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "" @@ -258,12 +255,12 @@ msgid "Editing %(media_title)s" msgstr "" #: mediagoblin/templates/mediagoblin/edit/edit.html:36 +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49 msgid "Cancel" msgstr "" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44 msgid "Save changes" msgstr "" @@ -299,10 +296,8 @@ msgstr "" msgid "Really delete %(title)s?" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36 -msgid "" -"If you choose yes, the media entry will be deleted " -"permanently." +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 +msgid "Delete Permanently" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 @@ -406,10 +401,22 @@ msgstr "" msgid "Atom feed" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 +msgid "Newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 +msgid "Older" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "" +#: mediagoblin/user_pages/forms.py:30 +msgid "I am sure I want to delete this" +msgstr "" + #: mediagoblin/user_pages/views.py:176 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo index f84cb70ae8ce8c3f4244b6a0fb04b55faee7dfea..9086472adbdc635757ffd435edac7e51fd1cb8d5 100644 GIT binary patch delta 1962 zcmb`{ZERCj7{KwLG4cPjjeImFHfw+9 zoO|y%&-0vfH@Evy$afXr--@L7;4|q^s*>&$Zou!c8|@2}a$*l2z&>oj zYuJfup;FDzg>v5*7UR1(fX9(rlj=_z{HeeAaiOCmcR^L6n|?LQcw?de6h2J97gt~e zAHt(pg=t)k=dldG!R2@p?RXdW;yo;9eYKPD>KJ$l-@tKPkENwbdC-TW*n|D}EqbwO zkx~^hjx{)lWTcLv1pa>EdIqI}mkQ(4C<)D?gZ0%Pg&Xe40DTwfh?Pi?Y85WSwK#-r z_&R1#D&Zkb$?yr3fcGGmR178KBtD0Su?}ycRL;4WYfUuP&=8+R$>1o;1jkV#{SalM z^SBl-pj6;Tl#<`aPIQ;&7wE&y^p9Z!UO|m_uovA-x&a4W)L%0FfB`>#gp%DQnvFo11%8n@$3l#0|)|NYp8a`;Z6Y)OWnpKVG_;8OZ0mr{R;@DqCb za0XdZwNmdAZtTJ)`n_zRWOxKO;SH3D7m&VG%7uMcjZ(pbDA(UYIV0mJiJnE7{~U6R z)I^eoM0N!w@*hwhm`AFmiWro=b)%f>I+O*wQ1<$Hl-KGt+>M7&p8F0ZvD=)a8;=$GinYbXIbz4_8tp&aVXxTKwipN5?3-M9tQ=)-B0>%~MPrG5tca6d{W zlSmcS)$B>fJ4KHfVZ$=?E+ZBRn1*SEM^(EK?~jFstx(j|(E)7@h2nZ78at5HC12TA z>p(=u6EQ<~=#hYFX)CIO`8njq)SPoHd#TiG^BN;YOm#C_(T$s0eOarb z$NqTxe@Ogl)wIpi@h_R5SpIo7v!cnizB`wC2f>+z>=P#W>Q@XR4u&5T;Lgge#htxF Yt4#+Hg-BjK=;zUbUJZ32+n0_NC_i=afZu!N9(%Y+1o;@ zV(|+~P!e*332}%YAWDcPct@0gGiu_#7>zL_CZfSb5ksQH1j84I|A*ehZ$=ZFw!d@E zz4x5+JmD|Mbi8GGgYG0Lb}H=jMKOgf5I~CzDucbT!Rnb zDcpdUu?Ji3F5G9JpZ++Gp@rO%R~KpURp0X$z@G~j)Sp;Q|CTo%C{=1H{SYp|K3s%D zxC{-v2lwF;JcPyg4sOABu@e34x)p11FYBwdG*&S%gE{;KqiB>XHHzDz_O2hmI~nuFr%?i%^~S$NlBa&hQr1^DXaw;##<7<0p2NMk7;mCPR7H4= z*n$kH$5A5OhFft2Tk$MPrslB|Z+V9AEo|68c|MML*;$r`Otc?Y;6ap#&!D9E8v1_gkDQ)5j(pWA{(kf+bpdPXzsa9$+{LGGzLxy6mg*<} zrQ8_BPWsz9K&j$`7{QAu6IYN9NnH>}unDCG_Mu#V8Kp)JqeOlZW&YDh8L122^;slI z>bpD*IooR}Ra`jLld>TGnDO${FWSQhp3&;S-+kdE+1A zeT;vMl969gHdaMCJ1~N6Xku92e}{%F^cl)oUqwlEgDw=Eg%as$WKZf0_TyJ58?Ou% zj;aBrh}R(XsRnR8ZpDZ24eZ7_d=$&rRZte*NMi(JC=q^&64@0btLnOYuH- z=M0zUH|Wv0W!a|AnRctr#7#Y6#uA1$Q<-#5?@1(+dZ(#lX41@!& z!bovXGS}W0_6FTA%2)Y<6;j58sV!P*owd!h zU05a&W4^>#PUoyFBbj)+Qx$lvo?T=txlbFqu#lcKY+aB9U8{SX!J0!&hNa`I2{>|Cv464Kjk8#U;oEkI8%XjZdu6v KclkKqwDK>(Lq{M0 diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po index b3883533..78a6bd41 100644 --- a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-30 22:51-0500\n" -"PO-Revision-Date: 2011-08-31 03:51+0000\n" +"POT-Creation-Date: 2011-09-05 23:31-0500\n" +"PO-Revision-Date: 2011-09-06 04:31+0000\n" "Last-Translator: cwebber \n" "Language-Team: Swedish (http://www.transifex.net/projects/p/mediagoblin/team/sv/)\n" "MIME-Version: 1.0\n" @@ -18,42 +18,30 @@ msgstr "" "Language: sv\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54 +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 msgid "Username" msgstr "Användarnamn" -#: mediagoblin/auth/forms.py:28 -msgid "This is the name other users will identify you with." -msgstr "" - -#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58 +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 msgid "Password" msgstr "Lösenord" -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:34 msgid "Passwords must match." msgstr "Lösenorden måste vara identiska." -#: mediagoblin/auth/forms.py:37 -msgid "Try to use a strong password!" -msgstr "" - -#: mediagoblin/auth/forms.py:40 +#: mediagoblin/auth/forms.py:36 msgid "Confirm password" msgstr "Bekräfta lösenord" -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:38 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "" -#: mediagoblin/auth/forms.py:45 +#: mediagoblin/auth/forms.py:41 msgid "Email address" msgstr "E-postadress" -#: mediagoblin/auth/forms.py:48 -msgid "Your email will never be published." -msgstr "" - #: mediagoblin/auth/views.py:40 msgid "Sorry, registration is disabled on this instance." msgstr "Vi beklagar, registreringen är avtängd på den här instansen." @@ -87,35 +75,40 @@ msgstr "Skickade ett nytt verifierings-email." msgid "Title" msgstr "Titel" -#: mediagoblin/edit/forms.py:29 -msgid "Slug" -msgstr "Sökvägsnamn" - -#: mediagoblin/edit/forms.py:30 -msgid "The slug can't be empty" -msgstr "Sökvägsnamnet kan inte vara tomt" - -#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "Taggar" -#: mediagoblin/edit/forms.py:38 +#: mediagoblin/edit/forms.py:33 +msgid "Slug" +msgstr "Sökvägsnamn" + +#: mediagoblin/edit/forms.py:34 +msgid "The slug can't be empty" +msgstr "Sökvägsnamnet kan inte vara tomt" + +#: mediagoblin/edit/forms.py:35 +msgid "" +"The title part of this media's URL. You usually don't need to change this." +msgstr "" + +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "Presentation" -#: mediagoblin/edit/forms.py:41 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Hemsida" -#: mediagoblin/edit/views.py:66 +#: mediagoblin/edit/views.py:63 msgid "An entry with that slug already exists for this user." msgstr "Ett inlägg med det sökvägsnamnet existerar redan." -#: mediagoblin/edit/views.py:95 +#: mediagoblin/edit/views.py:84 msgid "You are editing another user's media. Proceed with caution." msgstr "Var försiktig, du redigerar någon annans inlägg." -#: mediagoblin/edit/views.py:166 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "Var försiktig, du redigerar en annan användares profil." @@ -127,6 +120,10 @@ msgstr "Ogiltig fil för mediatypen." msgid "File" msgstr "Fil" +#: mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + #: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "Du måste ange en fil" @@ -282,12 +279,12 @@ msgid "Editing %(media_title)s" msgstr "Redigerar %(media_title)s" #: mediagoblin/templates/mediagoblin/edit/edit.html:36 +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49 msgid "Cancel" msgstr "Avbryt" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:44 msgid "Save changes" msgstr "Spara" @@ -323,10 +320,8 @@ msgstr "Finns ingen sådan användare ännu." msgid "Really delete %(title)s?" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36 -msgid "" -"If you choose yes, the media entry will be deleted " -"permanently." +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 +msgid "Delete Permanently" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 @@ -438,10 +433,22 @@ msgstr "feed-ikon" msgid "Atom feed" msgstr "Atom-feed" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 +msgid "Newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 +msgid "Older" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Kommentar" +#: mediagoblin/user_pages/forms.py:30 +msgid "I am sure I want to delete this" +msgstr "" + #: mediagoblin/user_pages/views.py:176 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo index e2cdd52f4c9a04bd2df24cdd22f9d897a250b220..dc196210925111daede00d006da3754b10e0d91b 100644 GIT binary patch delta 2386 zcmb`{e@xV69KiACR8YWx5KvUO@0m=es3=PQO3Pg4kF@;J&zareR0iDH-7&M~xKpuH zFvKrlFw{^?#lRoO3I)`)Y}NYphigrdas;lA1WtF^`8UeEJwxuFm^mUg@_<18NjM&+|8uzn}X_@9&?^D5X;AcHtzvgiCQiv{Es+0t<09=Hkb= z2-QHProm#Ad4BAV<+v6rk*THX77c#YT|N>qYEa(;m5NF9(^1B=&Hf`ejQ&a-j>R|_ z12`0GFaulgKKvBZ@G=g--*6S)!36eK%Q#*Z18Z<&kHk=%% z)DRiRQMe9?NbN*9c$N9Q2_=K==J*#V0sV+k?5}<`C)|+%`iX=irXq(_BQXUtaXrq$ zSFs5t6IQ~M2&bbQcscS&xltl6#b1{X^2mwL=Zq(pc3Vz4JZq> zU?!eM$-vhrDgPZ8VNyb5gVp#T{hc@w-$xB^;z~?n(Mh;2k^D=fdl{IE`%ogjiW-Jd z?#96TBPmV5N9m73*52P`^{BHzHZ?dzcG}O!D9YoPr%FcjUS` zUK-Ca)(aAc!w9D^^QEVLCRgAF(hCBL#^ zE>6IQPy#7LdG9sz`5{c1&p2d~Fj`ak9^@D@3=4R*Kp-d=rgjPYozmM@v8J?ARXN<1a@qM}V&zRNkrt2rHx zeAzW`z1_La(RaLw`cLua^s5Qmf~ARnSo8x)O))bjWKYwkj;o37dI{hkKd(t?#-)P>`d%QZbs6I4h@zD0JaKjE+x9Ql8 z&I+S-t8p%1oIkF6QZg;u_1ct5YdBC9>L~ASJENGx+N>JZ+l;cZu50=b=@t}o0O8P!*4JwGESI@Hk->Z;NA zW;{GKe6+5&u|gT!clC6(8)b*7RQR1nD%E}PtkGH@>UztJeuv&$al&ZXD;1e#oxilI z)28+M{Ko5NjW;@s`Wl;JE(wanW0buc>Zs-Z+)Gm=tGwNFyxcfhX`J60Nu^O+&0z47 L^KcEN(2PD%cW@l>J*z({PN|8+4ot*ioPaAZ z3!OL`8!#RB;YjSpHFz4wVhpR!#qqd<`PC8{)9Dz%dK|(sbjB;S3D2Vg(-L?I7vN-E zh3r6iQ5L$zdftK$DrWUxK-t)3tN&}Hcm^?^))Li7wcQ^1cg$va&iFlBgM{;fp9c?nNo_=O~GP z#>dc39rLgZH4NfBd=<;_D(2%%lFLq?!%Wl z4r-W8z2!jx$_}4InQ%SIPIaWZ>I0mQU!Wfo7(4@mC~*&#VJ5T6CH9~LKSPSEZlQc@ zg0ajl6HG-(oMTypvXD}g9jv!vAIidZqg3Q5%KP2c^RpZ)a;rqt8KC72;A+)G0)UpLAvPT`>9aRG8nsw8wVwq-=f6ZfIbD31@W)Hb=i zUcau@>;7CV;L^1ky~6F(bWgxnuWfZ#S8E$}twOKX1A2v4><{?7p3RGDbzhCs!3+Z4vpJNSXp1qNV=v~)3?65Vu6b$sv^u};^GBy~ zSCG$LS+CW5>*xu%@{Hu9)=8`);FWQjQ;SZd)jIwDtzKV+Bh;C6-!|o0Z=FxmYn<-t zXd;ikh0LtFwr*p!+wamV@{GgdPL5hIYwm2VpkQI4v3z{CM02#+a~BqdyyF+yjIs8# zXUzR)2m4PBpD_l*VY8vlY;89W>>Yfk-R$icIuRc1KSbxykzHm>-{8BQkv)eZFP$Ck zY8`4nMraz1H!n4+$f0xQ@uTJ&2XCBeH|(jU$$d>jJ#XE-wAUQiW4?FFJlAV%OPyvM zPi;*%n?lMw(ZlQHj2IWp-Mb?Vujgr+u{y0SlrZ6KTWmDVr}ivkOnRVfMdgFi{BP%F zG^YPcyX+}|^+t`q?#mF9=9{Mfgip@yK z@)*Ia%z5Q5w_oG)pHB4UtW0AdtH8LEwPfm0ckl3K$KNY%{z4+f9f05&nzW_Jc&#M3c diff --git a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po index 3020df07..8a5fc21c 100644 --- a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po @@ -3,12 +3,13 @@ # This file is distributed under the same license as the PROJECT project. # # , 2011. +# Harry Chen , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-08-30 22:51-0500\n" -"PO-Revision-Date: 2011-08-31 03:51+0000\n" +"POT-Creation-Date: 2011-09-05 23:31-0500\n" +"PO-Revision-Date: 2011-09-06 04:31+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -18,42 +19,30 @@ msgstr "" "Language: zh_TW\n" "Plural-Forms: nplurals=1; plural=0\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:54 +#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 msgid "Username" msgstr "使用者名稱" -#: mediagoblin/auth/forms.py:28 -msgid "This is the name other users will identify you with." -msgstr "" - -#: mediagoblin/auth/forms.py:31 mediagoblin/auth/forms.py:58 +#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 msgid "Password" msgstr "密碼" -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:34 msgid "Passwords must match." msgstr "密碼必須一致" -#: mediagoblin/auth/forms.py:37 -msgid "Try to use a strong password!" -msgstr "" - -#: mediagoblin/auth/forms.py:40 +#: mediagoblin/auth/forms.py:36 msgid "Confirm password" msgstr "確認密碼" -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:38 msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "" +msgstr "再輸入一次,確定你沒有打錯字。" -#: mediagoblin/auth/forms.py:45 +#: mediagoblin/auth/forms.py:41 msgid "Email address" msgstr "電子郵件位置" -#: mediagoblin/auth/forms.py:48 -msgid "Your email will never be published." -msgstr "" - #: mediagoblin/auth/views.py:40 msgid "Sorry, registration is disabled on this instance." msgstr "抱歉, 這個項目已經被暫停註冊." @@ -83,37 +72,42 @@ msgstr "重送認證信." #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" -msgstr "稱謂" +msgstr "標題" -#: mediagoblin/edit/forms.py:29 -msgid "Slug" -msgstr "自訂字串" - -#: mediagoblin/edit/forms.py:30 -msgid "The slug can't be empty" -msgstr "自訂字串不能空白" - -#: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 msgid "Tags" msgstr "標籤" -#: mediagoblin/edit/forms.py:38 -msgid "Bio" -msgstr "自傳" +#: mediagoblin/edit/forms.py:33 +msgid "Slug" +msgstr "自訂字串" -#: mediagoblin/edit/forms.py:41 +#: mediagoblin/edit/forms.py:34 +msgid "The slug can't be empty" +msgstr "自訂字串不能空白" + +#: mediagoblin/edit/forms.py:35 +msgid "" +"The title part of this media's URL. You usually don't need to change this." +msgstr "" + +#: mediagoblin/edit/forms.py:42 +msgid "Bio" +msgstr "自我介紹" + +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "網站" -#: mediagoblin/edit/views.py:66 +#: mediagoblin/edit/views.py:63 msgid "An entry with that slug already exists for this user." msgstr "這個自訂字串已經被其他人用了" -#: mediagoblin/edit/views.py:95 +#: mediagoblin/edit/views.py:84 msgid "You are editing another user's media. Proceed with caution." msgstr "你正在編輯他人的媒體檔案. 請謹慎處理." -#: mediagoblin/edit/views.py:166 +#: mediagoblin/edit/views.py:155 msgid "You are editing a user's profile. Proceed with caution." msgstr "你正在編輯一位用戶的檔案. 請謹慎處理." @@ -125,6 +119,10 @@ msgstr "指定錯誤的媒體類別!" msgid "File" msgstr "檔案" +#: mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + #: mediagoblin/submit/views.py:47 msgid "You must provide a file." msgstr "你必須提供一個檔案" @@ -135,7 +133,7 @@ msgstr "檔案似乎不是一個圖片喔!" #: mediagoblin/submit/views.py:122 msgid "Woohoo! Submitted!" -msgstr "呼嚕! 送出去了!" +msgstr "呼呼! 送出去嚕!" #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" @@ -182,10 +180,12 @@ msgid "" "Powered by MediaGoblin, a GNU project" msgstr "" +"由 MediaGoblin製作, 它是一個 GNU 專案" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." -msgstr "嗨!媒體愛好者!MediaGoblin是..." +msgstr "嗨!多媒體檔案愛好者!MediaGoblin是..." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "The perfect place for your media!" @@ -195,7 +195,7 @@ msgstr "你的媒體檔案的最佳所在!" msgid "" "A place for people to collaborate and show off original and derived " "creations!" -msgstr "這是一個地方,可以讓人們協同且展示他們的創作或是衍生作品!" +msgstr "這是一個可以讓人們共同展示他們的創作、衍生作品的地方!" #: mediagoblin/templates/mediagoblin/root.html:31 msgid "" @@ -207,13 +207,13 @@ msgstr "免費但是我們更重視自由 (畢竟我們是個 %(username)s's media" -msgstr "%(username)s的媒體" +msgstr "%(username)s的媒體檔案" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 #: mediagoblin/templates/mediagoblin/user_pages/user.html:32 @@ -305,12 +305,10 @@ msgstr "抱歉,找不到這個使用者." #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" -msgstr "" +msgstr "真的要刪除 %(title)s?" -#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:36 -msgid "" -"If you choose yes, the media entry will be deleted " -"permanently." +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 +msgid "Delete Permanently" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 @@ -328,7 +326,7 @@ msgstr "媒體處理中" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 msgid "No media in-processing" -msgstr "沒有媒體正在處理" +msgstr "沒有正在處理中的媒體" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 msgid "These uploads failed to process:" @@ -341,7 +339,7 @@ msgstr "需要認證電子郵件" #: mediagoblin/templates/mediagoblin/user_pages/user.html:42 msgid "Almost done! Your account still needs to be activated." -msgstr "幾乎完成了!你的帳號仍然需要被啟用。" +msgstr "幾乎完成了!但你的帳號仍然需要被啟用。" #: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" @@ -396,15 +394,15 @@ msgstr "查看%(username)s的全部媒體檔案" msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." -msgstr "這個地方是你的媒體會出現的地方,但是你似乎還沒有加入東西。" +msgstr "這個地方是你的媒體檔案會出現的地方,但是你似乎還沒有加入任何東西。" #: mediagoblin/templates/mediagoblin/user_pages/user.html:141 msgid "Add media" -msgstr "新增媒體" +msgstr "新增媒體檔案" #: mediagoblin/templates/mediagoblin/user_pages/user.html:147 msgid "There doesn't seem to be any media here yet..." -msgstr "似乎還沒有任何的媒體..." +msgstr "似乎還沒有任何的媒體檔案..." #: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 msgid "feed icon" @@ -414,12 +412,24 @@ msgstr "feed圖示" msgid "Atom feed" msgstr "Atom feed" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 +msgid "Newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 +msgid "Older" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "評論" -#: mediagoblin/user_pages/views.py:176 -msgid "You are about to delete another user's media. Proceed with caution." +#: mediagoblin/user_pages/forms.py:30 +msgid "I am sure I want to delete this" msgstr "" +#: mediagoblin/user_pages/views.py:176 +msgid "You are about to delete another user's media. Proceed with caution." +msgstr "你在刪除其他人的媒體檔案。請小心處理喔。" + From 63bf10f9a635b012e07f65ca5ceccc6845551143 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 7 Sep 2011 19:37:25 -0500 Subject: [PATCH 1000/2731] Adjusting spacing between function arguments --- mediagoblin/auth/lib.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/auth/lib.py b/mediagoblin/auth/lib.py index 31dc4b7f..abe8ce33 100644 --- a/mediagoblin/auth/lib.py +++ b/mediagoblin/auth/lib.py @@ -127,7 +127,7 @@ EMAIL_FP_VERIFICATION_TEMPLATE = ( u"http://{host}{uri}?" u"userid={userid}&token={fp_verification_key}") -def send_fp_verification_email(user,request): +def send_fp_verification_email(user, request): """ Send the verification email to users to change their password. From daa26200c7e0ef9683af641385504e6b2de403ba Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 7 Sep 2011 19:40:00 -0500 Subject: [PATCH 1001/2731] Changing the forgot password urls so they all start under /auth/forgot_password/ --- mediagoblin/auth/routing.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mediagoblin/auth/routing.py b/mediagoblin/auth/routing.py index 14e87133..399ed8d2 100644 --- a/mediagoblin/auth/routing.py +++ b/mediagoblin/auth/routing.py @@ -31,15 +31,15 @@ auth_routes = [ '/resend_verification_success/', template='mediagoblin/auth/resent_verification_email.html', controller='mediagoblin.views:simple_template_render'), - Route('mediagoblin.auth.forgot_password', '/forgotpass/', + Route('mediagoblin.auth.forgot_password', '/forgot_password/', controller='mediagoblin.auth.views:forgot_password'), - Route('mediagoblin.auth.verify_forgot_password', '/verifyforgotpass/', + Route('mediagoblin.auth.verify_forgot_password', '/forgot_password/verify/', controller='mediagoblin.auth.views:verify_forgot_password'), Route('mediagoblin.auth.fp_changed_success', - '/fp_changed_success/', + '/forgot_password/changed_success/', template='mediagoblin/auth/fp_changed_success.html', controller='mediagoblin.views:simple_template_render'), Route('mediagoblin.auth.fp_email_sent', - '/fp_email_sent/', + '/forgot_password/email_sent/', template='mediagoblin/auth/fp_email_sent.html', controller='mediagoblin.views:simple_template_render')] From 34fddf47f0b4f7cfa9fbd865bd9eb8ae96913ce4 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 7 Sep 2011 19:42:56 -0500 Subject: [PATCH 1002/2731] Resent verification email template and view aren't used anymore. Removing! --- mediagoblin/auth/routing.py | 6 +---- .../auth/resent_verification_email.html | 24 ------------------- 2 files changed, 1 insertion(+), 29 deletions(-) delete mode 100644 mediagoblin/templates/mediagoblin/auth/resent_verification_email.html diff --git a/mediagoblin/auth/routing.py b/mediagoblin/auth/routing.py index 76c7ceed..edd21be7 100644 --- a/mediagoblin/auth/routing.py +++ b/mediagoblin/auth/routing.py @@ -26,8 +26,4 @@ auth_routes = [ Route('mediagoblin.auth.verify_email', '/verify_email/', controller='mediagoblin.auth.views:verify_email'), Route('mediagoblin.auth.resend_verification', '/resend_verification/', - controller='mediagoblin.auth.views:resend_activation'), - Route('mediagoblin.auth.resend_verification_success', - '/resend_verification_success/', - template='mediagoblin/auth/resent_verification_email.html', - controller='mediagoblin.views:simple_template_render')] + controller='mediagoblin.auth.views:resend_activation')] diff --git a/mediagoblin/templates/mediagoblin/auth/resent_verification_email.html b/mediagoblin/templates/mediagoblin/auth/resent_verification_email.html deleted file mode 100644 index 37cd6b03..00000000 --- a/mediagoblin/templates/mediagoblin/auth/resent_verification_email.html +++ /dev/null @@ -1,24 +0,0 @@ -{# -# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -#} -{% extends "mediagoblin/base.html" %} - -{% block mediagoblin_content %} -

      - {% trans %}Resent your verification email.{% endtrans %} -

      -{% endblock %} From 2db31581ed597cab1d148091c1fe8975ee9d70d2 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 7 Sep 2011 20:18:17 -0500 Subject: [PATCH 1003/2731] user_add_forgot_password_token_and_expires migration should set new fields to None/null --- mediagoblin/db/migrations.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py index cf09e817..3c3deee8 100644 --- a/mediagoblin/db/migrations.py +++ b/mediagoblin/db/migrations.py @@ -101,9 +101,9 @@ def user_add_forgot_password_token_and_expires(database): """ database['users'].update( {'fp_verification_key': {'$exists': False}}, - {'$set': {'fp_verification_key': ''}}, + {'$set': {'fp_verification_key': None}}, multi=True) database['users'].update( {'fp_token_expire': {'$exists': False}}, - {'$set': {'fp_token_expire': ''}}, + {'$set': {'fp_token_expire': None}}, multi=True) From f03fef4ea8ec106f698936e2ffce02d58105f802 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 7 Sep 2011 23:23:26 -0500 Subject: [PATCH 1004/2731] Updating calls to recall password URLs to respect changed routing --- mediagoblin/tests/test_auth.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py index bfa66bd2..ec60b259 100644 --- a/mediagoblin/tests/test_auth.py +++ b/mediagoblin/tests/test_auth.py @@ -241,13 +241,15 @@ def test_register_views(test_app): ### Oops, forgot the password # ------------------- util.clear_test_template_context() - response = test_app.post('/auth/forgotpass/', {'username': 'happygirl'}) + response = test_app.post( + '/auth/forgot_password/', + {'username': 'happygirl'}) response.follow() ## Did we redirect to the proper page? Use the right template? assert_equal( urlparse.urlsplit(response.location)[2], - '/auth/fp_email_sent/') + '/auth/forgot_password/email_sent/') assert util.TEMPLATE_TEST_CONTEXT.has_key( 'mediagoblin/auth/fp_email_sent.html') @@ -262,7 +264,7 @@ def test_register_views(test_app): path = urlparse.urlsplit(email_context['verification_url'])[2] get_params = urlparse.urlsplit(email_context['verification_url'])[3] - assert path == u'/auth/verifyforgotpass/' + assert path == u'/auth/forgot_password/verify/' parsed_get_params = urlparse.parse_qs(get_params) # user should have matching parameters @@ -277,7 +279,7 @@ def test_register_views(test_app): ## Try using a bs password-changing verification key, shouldn't work util.clear_test_template_context() response = test_app.get( - "/auth/verifyforgotpass/?userid=%s&token=total_bs" % unicode( + "/auth/forgot_password/verify/?userid=%s&token=total_bs" % unicode( new_user['_id']), status=400) assert response.status == '400 Bad Request' @@ -299,14 +301,14 @@ def test_register_views(test_app): ## Verify step 2.1 of password-change works -- report success to user util.clear_test_template_context() response = test_app.post( - '/auth/verifyforgotpass/', { + '/auth/forgot_password/verify/', { 'userid': parsed_get_params['userid'], 'password': 'iamveryveryhappy', 'confirm_password': 'iamveryveryhappy', 'token': parsed_get_params['token']}) response.follow() assert util.TEMPLATE_TEST_CONTEXT.has_key( - 'mediagoblin/auth/fp_changed_success.html') + 'mediagoblin/auth/fp_changed_success.html') ## Verify step 2.2 of password-change works -- login w/ new password success util.clear_test_template_context() From d1a64326456d67d43ac99f28c2c45c7e9996be07 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 7 Sep 2011 23:23:44 -0500 Subject: [PATCH 1005/2731] Avoiding using '$or' query modifier since that's newer-mongo only. --- mediagoblin/auth/views.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index c18bfa34..666426e6 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -200,9 +200,12 @@ def forgot_password(request): fp_form = auth_forms.ForgotPassForm(request.POST) if request.method == 'POST' and fp_form.validate(): - user = request.db.User.one( - {'$or': [{'username': request.POST['username']}, - {'email': request.POST['username']}]}) + # '$or' not available till mongodb 1.5.3 + user = request.db.User.find_one( + {'username': request.POST['username']}) + if not user: + user = request.db.User.find_one( + {'email': request.POST['username']}) if user: user['fp_verification_key'] = unicode(uuid.uuid4()) From 2c9e8184a44336689b8d3e0d01b17b15dfbcb791 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 7 Sep 2011 23:25:46 -0500 Subject: [PATCH 1006/2731] Adjusting indentation a bit --- mediagoblin/auth/views.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 666426e6..098443b8 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -219,9 +219,9 @@ def forgot_password(request): return redirect(request, 'mediagoblin.auth.fp_email_sent') return render_to_response( - request, - 'mediagoblin/auth/forgot_password.html', - {'fp_form': fp_form}) + request, + 'mediagoblin/auth/forgot_password.html', + {'fp_form': fp_form}) def verify_forgot_password(request): @@ -277,7 +277,9 @@ def _process_for_token(request): else: session_vars = request.POST - mysession = {'vars': session_vars, - 'has_userid_and_token': session_vars.has_key('userid') and - session_vars.has_key('token')} + mysession = { + 'vars': session_vars, + 'has_userid_and_token': + session_vars.has_key('userid') and session_vars.has_key('token')} + return mysession From 73fffbb8b0b37d642f7dc996bbec8fdf7d4e3e8b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 7 Sep 2011 23:32:15 -0500 Subject: [PATCH 1007/2731] Adding additional check that verification key exists, and updating indentation --- mediagoblin/auth/views.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 098443b8..dd693892 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -242,8 +242,10 @@ def verify_forgot_password(request): return render_404(request) # check if we have a real user and correct token - if (user and user['fp_verification_key'] == unicode(session_token) and - datetime.datetime.now() < user['fp_token_expire']): + if ((user and user['fp_verification_key'] and + user['fp_verification_key'] == unicode(session_token) and + datetime.datetime.now() < user['fp_token_expire'])): + cp_form = auth_forms.ChangePassForm(session_vars) if request.method == 'POST' and cp_form.validate(): @@ -255,9 +257,11 @@ def verify_forgot_password(request): return redirect(request, 'mediagoblin.auth.fp_changed_success') else: - return render_to_response(request, - 'mediagoblin/auth/change_fp.html', - {'cp_form': cp_form}) + return render_to_response( + request, + 'mediagoblin/auth/change_fp.html', + {'cp_form': cp_form}) + # in case there is a valid id but no user whit that id in the db # or the token expired else: From a85a21103bb5e3d4b5a6e454cce1d2011372c867 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 7 Sep 2011 23:45:14 -0500 Subject: [PATCH 1008/2731] If the user hasn't verified their email or account inactive give a special warning --- mediagoblin/auth/views.py | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index dd693892..1c010372 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -208,12 +208,27 @@ def forgot_password(request): {'email': request.POST['username']}) if user: - user['fp_verification_key'] = unicode(uuid.uuid4()) - user['fp_token_expire'] = datetime.datetime.now() + \ - datetime.timedelta(days=10) - user.save() + if user['email_verified'] and user['status'] == 'active': + user['fp_verification_key'] = unicode(uuid.uuid4()) + user['fp_token_expire'] = datetime.datetime.now() + \ + datetime.timedelta(days=10) + user.save() + + send_fp_verification_email(user, request) + else: + # special case... we can't send the email because the + # username is inactive / hasn't verified their email + messages.add_message( + request, + messages.WARNING, + _("Could not send password recovery email as " + "your username is inactive or your account's " + "email address has not been verified.")) + + return redirect( + request, 'mediagoblin.user_pages.user_home', + user=user['username']) - send_fp_verification_email(user, request) # do not reveal whether or not there is a matching user, just move along return redirect(request, 'mediagoblin.auth.fp_email_sent') @@ -244,7 +259,8 @@ def verify_forgot_password(request): # check if we have a real user and correct token if ((user and user['fp_verification_key'] and user['fp_verification_key'] == unicode(session_token) and - datetime.datetime.now() < user['fp_token_expire'])): + datetime.datetime.now() < user['fp_token_expire'] + and user['email_verified'] and user['status'] == 'active')): cp_form = auth_forms.ChangePassForm(session_vars) From daf029646e4f56798f65748b28f6f815602dc174 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 7 Sep 2011 23:46:41 -0500 Subject: [PATCH 1009/2731] Also nullify verification key after verifying in the email confirmation step --- mediagoblin/auth/views.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 1c010372..0cb3963c 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -154,7 +154,10 @@ def verify_email(request): if user and user['verification_key'] == unicode(request.GET['token']): user['status'] = u'active' user['email_verified'] = True + user[u'verification_key'] = None + user.save() + messages.add_message( request, messages.SUCCESS, From 4185e644f4209fbc21b3a066d17fefc9d68effef Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 7 Sep 2011 23:48:10 -0500 Subject: [PATCH 1010/2731] Keys in mongodb should be unicode, here... --- mediagoblin/auth/views.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 0cb3963c..5fabf40b 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -152,8 +152,8 @@ def verify_email(request): {'_id': ObjectId(unicode(request.GET['userid']))}) if user and user['verification_key'] == unicode(request.GET['token']): - user['status'] = u'active' - user['email_verified'] = True + user[u'status'] = u'active' + user[u'email_verified'] = True user[u'verification_key'] = None user.save() @@ -180,7 +180,7 @@ def resend_activation(request): Resend the activation email. """ - request.user['verification_key'] = unicode(uuid.uuid4()) + request.user[u'verification_key'] = unicode(uuid.uuid4()) request.user.save() send_verification_email(request.user, request) @@ -212,8 +212,8 @@ def forgot_password(request): if user: if user['email_verified'] and user['status'] == 'active': - user['fp_verification_key'] = unicode(uuid.uuid4()) - user['fp_token_expire'] = datetime.datetime.now() + \ + user[u'fp_verification_key'] = unicode(uuid.uuid4()) + user[u'fp_token_expire'] = datetime.datetime.now() + \ datetime.timedelta(days=10) user.save() @@ -268,10 +268,10 @@ def verify_forgot_password(request): cp_form = auth_forms.ChangePassForm(session_vars) if request.method == 'POST' and cp_form.validate(): - user['pw_hash'] = auth_lib.bcrypt_gen_password_hash( + user[u'pw_hash'] = auth_lib.bcrypt_gen_password_hash( request.POST['password']) - user['fp_verification_key'] = None - user['fp_token_expire'] = None + user[u'fp_verification_key'] = None + user[u'fp_token_expire'] = None user.save() return redirect(request, 'mediagoblin.auth.fp_changed_success') From 961fe381635d80595084428123bee2e6f29f7e62 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 7 Sep 2011 23:51:41 -0500 Subject: [PATCH 1011/2731] Adding a small docstring --- mediagoblin/auth/views.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 5fabf40b..ac3f621e 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -243,6 +243,10 @@ def forgot_password(request): def verify_forgot_password(request): + """ + Check the forgot-password verification and possibly let the user + change their password because of it. + """ # get session variables, and specifically check for presence of token mysession = _process_for_token(request) if not mysession['has_userid_and_token']: From f7ab66707c4d5ef5941e13131dbf9ce2a8c7a875 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 8 Sep 2011 08:10:27 -0500 Subject: [PATCH 1012/2731] Renaming request.[GET|POST] as formdata instead of session; that's more accurate. --- mediagoblin/auth/views.py | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index ac3f621e..000f7681 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -247,29 +247,29 @@ def verify_forgot_password(request): Check the forgot-password verification and possibly let the user change their password because of it. """ - # get session variables, and specifically check for presence of token - mysession = _process_for_token(request) - if not mysession['has_userid_and_token']: + # get form data variables, and specifically check for presence of token + formdata = _process_for_token(request) + if not formdata['has_userid_and_token']: return render_404(request) - session_token = mysession['vars']['token'] - session_userid = mysession['vars']['userid'] - session_vars = mysession['vars'] + formdata_token = formdata['vars']['token'] + formdata_userid = formdata['vars']['userid'] + formdata_vars = formdata['vars'] # check if it's a valid Id try: user = request.db.User.find_one( - {'_id': ObjectId(unicode(session_userid))}) + {'_id': ObjectId(unicode(formdata_userid))}) except InvalidId: return render_404(request) # check if we have a real user and correct token if ((user and user['fp_verification_key'] and - user['fp_verification_key'] == unicode(session_token) and + user['fp_verification_key'] == unicode(formdata_token) and datetime.datetime.now() < user['fp_token_expire'] and user['email_verified'] and user['status'] == 'active')): - cp_form = auth_forms.ChangePassForm(session_vars) + cp_form = auth_forms.ChangePassForm(formdata_vars) if request.method == 'POST' and cp_form.validate(): user[u'pw_hash'] = auth_lib.bcrypt_gen_password_hash( @@ -293,20 +293,20 @@ def verify_forgot_password(request): def _process_for_token(request): """ - Checks for tokens in session without prior knowledge of request method + Checks for tokens in formdata without prior knowledge of request method - For now, returns whether the userid and token session variables exist, and - the session variables in a hash. Perhaps an object is warranted? + For now, returns whether the userid and token formdata variables exist, and + the formdata variables in a hash. Perhaps an object is warranted? """ - # retrieve the session variables + # retrieve the formdata variables if request.method == 'GET': - session_vars = request.GET + formdata_vars = request.GET else: - session_vars = request.POST + formdata_vars = request.POST - mysession = { - 'vars': session_vars, + formdata = { + 'vars': formdata_vars, 'has_userid_and_token': - session_vars.has_key('userid') and session_vars.has_key('token')} + formdata_vars.has_key('userid') and formdata_vars.has_key('token')} - return mysession + return formdata From 8d7b549bb6d17c66ce1d3590da6e9bd0868b4403 Mon Sep 17 00:00:00 2001 From: Elrond Date: Fri, 9 Sep 2011 23:59:32 +0200 Subject: [PATCH 1013/2731] Use media.url_for_self() instead of generating it Some places used to generate the URL for a media entry on their own instead of calling media.url_for_self() to do that. The later handles missing slugs better. --- mediagoblin/edit/views.py | 9 ++++----- mediagoblin/user_pages/views.py | 5 ++--- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 11bee110..15edfdd6 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -73,8 +73,8 @@ def edit_media(request, media): media['slug'] = unicode(request.POST['slug']) media.save() - return redirect(request, "mediagoblin.user_pages.media_home", - user=media.uploader()['username'], media=media['slug']) + return exc.HTTPFound( + location=media.url_for_self(request.urlgen)) if request.user['is_admin'] \ and media['uploader'] != request.user['_id'] \ @@ -130,9 +130,8 @@ def edit_attachments(request, media): % (request.POST['attachment_name'] or request.POST['attachment_file'].filename)) - return redirect(request, 'mediagoblin.user_pages.media_home', - user=media.uploader()['username'], - media=media['slug']) + return exc.HTTPFound( + location=media.url_for_self(request.urlgen)) return render_to_response( request, 'mediagoblin/edit/attachments.html', diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index f60bd186..6a82d718 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -165,9 +165,8 @@ def media_confirm_delete(request, media): return redirect(request, "mediagoblin.user_pages.user_home", user=username) else: - return redirect(request, "mediagoblin.user_pages.media_home", - user=media.uploader()['username'], - media=media['slug']) + return exc.HTTPFound( + location=media.url_for_self(request.urlgen)) if ((request.user[u'is_admin'] and request.user[u'_id'] != media.uploader()[u'_id'])): From 33d3de8e2cafbdbc50dd3fc12ddf1b4b57da2d6c Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Sat, 10 Sep 2011 10:55:53 -0500 Subject: [PATCH 1014/2731] Refractored gmg_commands.import_export --- mediagoblin/gmg_commands/import_export.py | 90 ++++++++++++----------- 1 file changed, 49 insertions(+), 41 deletions(-) diff --git a/mediagoblin/gmg_commands/import_export.py b/mediagoblin/gmg_commands/import_export.py index 2e227e77..fc5c88a8 100644 --- a/mediagoblin/gmg_commands/import_export.py +++ b/mediagoblin/gmg_commands/import_export.py @@ -27,8 +27,13 @@ import subprocess import os.path import os import sys +import logging from contextlib import closing +_log = logging.getLogger('gmg.import_export') +logging.basicConfig() +_log.setLevel(logging.INFO) + def import_export_parse_setup(subparser): # TODO: Add default @@ -49,12 +54,12 @@ def import_export_parse_setup(subparser): def _import_media(db, args): - """ + ''' Import media files Must be called after _import_database() - """ - print "\n== Importing media ==\n" + ''' + _log.info('-> Importing media...') media_cache = BasicFileStorage( args._cache_path['media']) @@ -65,18 +70,22 @@ def _import_media(db, args): for entry in db.media_entries.find(): for name, path in entry['media_files'].items(): + _log.info('Importing: {0} - {1}'.format( + entry['title'], + name)) + media_file = mg_globals.public_store.get_file(path, mode='wb') media_file.write( media_cache.get_file(path, mode='rb').read()) - print "\n== Media imported ==\n" + _log.info('...Media imported') def _import_database(db, args): - """ + ''' Restore mongo database from ___.bson files - """ - print "\n== Importing database ==\n" + ''' + _log.info('-> Importing database...') p = subprocess.Popen([ args.mongorestore_path, @@ -85,13 +94,13 @@ def _import_database(db, args): p.wait() - print "\n== Database imported ==\n" + _log.info('...Database imported') def env_import(args): - """ + ''' Restore mongo database and media files from a tar archive - """ + ''' if not args.cache_path: args.cache_path = tempfile.mkdtemp() @@ -100,9 +109,9 @@ def env_import(args): # Creates mg_globals.public_store and mg_globals.queue_store setup_storage() - config, validation_result = read_mediagoblin_config(args.conf_file) + global_config, app_config = setup_global_and_app_config(args.conf_file) connection, db = setup_connection_and_db_from_config( - config['mediagoblin'], use_pymongo=True) + app_config, use_pymongo=True) tf = tarfile.open( args.tar_file, @@ -123,9 +132,9 @@ def env_import(args): def _setup_paths(args): - """ + ''' Populate ``args`` variable with cache subpaths - """ + ''' args._cache_path = dict() PATH_MAP = { 'media': 'media', @@ -139,10 +148,10 @@ def _setup_paths(args): def _create_archive(args): - """ + ''' Create the tar archive - """ - print "\n== Compressing to archive ==\n" + ''' + _log.info('-> Compressing to archive') tf = tarfile.open( args.tar_file, @@ -151,27 +160,27 @@ def _create_archive(args): with closing(tf): tf.add(args.cache_path, 'mediagoblin-data/') - print "\n== Archiving done ==\n" + _log.info('...Archiving done') def _clean(args): - """ + ''' Remove cache directory - """ + ''' shutil.rmtree(args.cache_path) def _export_check(args): - """ + ''' Run security checks for export command - """ + ''' if os.path.exists(args.tar_file): overwrite = raw_input( 'The output file already exists. ' 'Are you **SURE** you want to overwrite it? ' '(yes/no)> ') if not overwrite == 'yes': - print "Aborting." + print 'Aborting.' return False @@ -179,12 +188,7 @@ def _export_check(args): def _export_database(db, args): - print "\n== Exporting database ==\n" - - command = '{mongodump_path} -d {database} -o {mongodump_cache}'.format( - mongodump_path=args.mongodump_path, - database=db.name, - mongodump_cache=args._cache_path['database']) + _log.info('-> Exporting database...') p = subprocess.Popen([ args.mongodump_path, @@ -193,11 +197,11 @@ def _export_database(db, args): p.wait() - print "\n== Database exported ==\n" + _log.info('...Database exported') def _export_media(db, args): - print "\n== Exporting media ==\n" + _log.info('-> Exporting media...') media_cache = BasicFileStorage( args._cache_path['media']) @@ -208,21 +212,25 @@ def _export_media(db, args): for entry in db.media_entries.find(): for name, path in entry['media_files'].items(): + _log.info('Exporting {0} - {1}'.format( + entry['title'], + name)) + mc_file = media_cache.get_file(path, mode='wb') mc_file.write( mg_globals.public_store.get_file(path, mode='rb').read()) - print "\n== Media exported ==\n" + _log.info('...Media exported') def env_export(args): - """ + ''' Export database and media files to a tar archive - """ + ''' if args.cache_path: if os.path.exists(args.cache_path): - print 'The cache directory must not exist before you run this script' - print 'Cache directory: ', args.cache_path + _log.error('The cache directory must not exist before you run this script') + _log.error('Cache directory: {0}'.format(args.cache_path)) return False else: @@ -231,15 +239,15 @@ def env_export(args): args = _setup_paths(args) if not _export_check(args): - print "\n== Checks did not pass, exiting ==\n" + _log.error('Checks did not pass, exiting') sys.exit(0) - setup_global_and_app_config(args.conf_file) - setup_storage() + globa_config, app_config = setup_global_and_app_config(args.conf_file) - config, validation_result = read_mediagoblin_config(args.conf_file) + setup_storage() + connection, db = setup_connection_and_db_from_config( - config['mediagoblin'], use_pymongo=True) + app_config, use_pymongo=True) _export_database(db, args) From ab613cb3c8a2bc28750dbd2827d226fbbada22c6 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 10 Sep 2011 17:27:47 -0500 Subject: [PATCH 1015/2731] Using Local Fonts instead of Remote Fonts linked to Google. Thanks to Shawn Kahn for help on / original version of this patch! --- extlib/lato/Lato-Bold.ttf | Bin 0 -> 93224 bytes extlib/lato/Lato-BoldItalic.ttf | Bin 0 -> 81936 bytes extlib/lato/Lato-Italic.ttf | Bin 0 -> 83680 bytes extlib/lato/Lato-Regular.ttf | Bin 0 -> 96044 bytes extlib/lato/OFL_1.1.txt | 97 +++++++++++++++++++ mediagoblin/static/css/base.css | 10 +- mediagoblin/static/fonts/Lato-Bold.ttf | 1 + mediagoblin/static/fonts/Lato-BoldItalic.ttf | 1 + mediagoblin/static/fonts/Lato-Italic.ttf | 1 + mediagoblin/static/fonts/Lato-Regular.ttf | 1 + 10 files changed, 106 insertions(+), 5 deletions(-) create mode 100644 extlib/lato/Lato-Bold.ttf create mode 100644 extlib/lato/Lato-BoldItalic.ttf create mode 100644 extlib/lato/Lato-Italic.ttf create mode 100644 extlib/lato/Lato-Regular.ttf create mode 100644 extlib/lato/OFL_1.1.txt create mode 120000 mediagoblin/static/fonts/Lato-Bold.ttf create mode 120000 mediagoblin/static/fonts/Lato-BoldItalic.ttf create mode 120000 mediagoblin/static/fonts/Lato-Italic.ttf create mode 120000 mediagoblin/static/fonts/Lato-Regular.ttf diff --git a/extlib/lato/Lato-Bold.ttf b/extlib/lato/Lato-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..bc3529fce3ce3c38c29440908f8a7bdbae99af10 GIT binary patch literal 93224 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 literal 0 HcmV?d00001 diff --git a/extlib/lato/Lato-BoldItalic.ttf b/extlib/lato/Lato-BoldItalic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2cf5ae0dda701a339c5d77de841e5385413e02be GIT binary patch literal 81936 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 z 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 z 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 V*IjqL3j^*gz8${pJ^r}a{$CA9G{OJ? literal 0 HcmV?d00001 diff --git a/extlib/lato/Lato-Italic.ttf b/extlib/lato/Lato-Italic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..11ca3eb6fe4043aab186d52b9c9c1fb15b567e6e GIT binary patch literal 83680 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 KH=cURZ2B)?SC`ZP literal 0 HcmV?d00001 diff --git a/extlib/lato/Lato-Regular.ttf b/extlib/lato/Lato-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..26ce10025a9bb380c268aefa8117357c70fb35a1 GIT binary patch literal 96044 zcmeFacYGYx)jxb^w)dUwy=r%*)v7nEShi$YE|R+~OYYsc8|;8>0@&b&0n}^1V}U=XpP$_mAJ$_w3!-nOjc3 z=bjlcfiY$SP_jtx%o*d`g?pDUrY>PjFie?IRr{)c>tm?jkE<5-bxrEubn&)9#x&K8 zsoq?=Zt=$MpRU8Ti40?kmzJKtIU-)6Tf|uUU0m;5v2o=(^}y{-jFsW5uxaJuO&gh; z>6maq04J;~*KS>Lb<3rVjFl@H`<3#XW$U(l(6Rr&88cZK^90UWzIfR`cC12OK>Mum z9GtK`uDJ)_m*IQKIqNoW@m@Z69b=*v69}wXe%^ZLj}uWQs633#zh>=*rHl97_}uGE zP~dmbx^D57jf$}1R@}cA_ea(*Ubp=FD+7&8SaLsOQvb#cn>PRTz^iXDVKaVKcsHK6 ze53QS_aN@k6*2{XWcot?;p%m3vtu%4%@Lc-6&hy6_Wrv)IpeqfAsp z*dqM44BW9me4Kywi|^$=#<@0>AEBIsvKFN@|4H@rD0JTe;d8c~3e{0=M0sBkU@`St z)~A}v^eQuZST%>uQN6_;R_;Sti|DdkC9FkxI}4~DV|SuWt>#l^R;ig;`5x0M-(-E5$A0ns++XlH2mK#Z0Jms6 z34F{`E?_q+?qd`2IbP{u6UDokPmyJ{%6@hoNPDSpD)&R2zZv!W)T`NbbRK2AawlZHpIgBkpjkJrUnbtnrlZWn_1~wyRV^$n#@JW!eJ9Ru z5x>Cr4ze3n*RU15T*tbA`wYiB;r@)G>CC-LwBU3gTI7qkBKH%tc`H6YK>3?G&1wsD zAQ}uW7}v%0ozsHokuRJUpqcU+c8u`;WktOR=ZO}e!|)=q+&_T-oACJ(%I}oZSuf@* z(}8F)yZ|rwJ{o1)X$7?4G{Yy+QrQlCU&q4T>@Y$ywqFSBa&bvyXucF0K!${Z@>XUMG?u73>`+HPm-zkQMM~LGoSKa z=EHbEtK7>dAEMrcayROKkqZmp`w^7$QRv#qC@(RV%aUgD3i8n_e{>05sPy)>;(PuS z&hT1O{>sxo3K#LS_(Hc2KUxc4cq>WXR9BZ!CG^VeopyiW+Tovd@|WcBb7$3uk1c-# zp9Hl|Q=uuHbyNNX|A9nJVEha-vd^_Sre#`SNXK-5dZy0}G6ORJ8krH$#7ux@W(Kq{ zOYRi2GAp3OBtRRp0os{8cak}n1JKEwfG*|&bTc=ghk0^eFfa20`j`*U&-{P^761&g zVD29*#6o~!76y#42w;>&bDy&qivh-29I%9y047)hFv*g+&sd73083dZU>Pd|OtUm# zIV;b7$}%hiSivd)D_JFA6|2g9!m3#{U=6DQtYx);b*v7sp4I0*W(}+Xu#q(aHnAqa z5o`otGi%QMowcwQz*g1@*v8rbN3xNC?W{fbH#Ulm0vydo19q?uz)seg`-qKUV*tBY z7vNYn7Oy}f-MJJ$yNZK!&c`0#8$C$ z09UhBfNR)lz_n~m?p?Nytp!}q)&Xu{>j5{i4S?sejk!OG_o3*a`k74Sl~E%$r&RdylZMeM797qg21FJTww-eKF>C4f8F zcEC&74#3OUrGPuxWx2Q6F18bJH`@ichwTR3%k}_X&i3ZsV*A+TfLE}6fLF3B0Iyuj$NC3lU>iQ13bX42fTqD0KAdi0C*F-G51?`GrI}! z7Irh>tsLIQZpppDZfCaw-ob7IJjiYb{2IFh@J@Cx_ZxN>`x@Zg>`uUY*j<44vbzDl z&hE**&hBIP0v=*t2fUx%2lxOx1o$AkKld8@273VTA@(5PH`zA;A7&5be$Bqcz6p4k zJq-A5_AS6i*kQm&*|&4Avd7pXfZt({0zS?j1AKyg2k;1cJohVhlsy4>j2!_y&W-{; z$&Tgzn|+rZ2mBs;67VVZUBIW=_W)0@r*f~bXV}w#&$1JM-)GMNKF6K~e4c$j_e=Hz z_8j03+4F!eupa>ai2X44GW#)m0q`g6M}R+NKL-3S_7lLLv7hFC!Cqwl1^9FJGr*VF zi-7nB_%eGb_Y(Uh`vu@D>}A0JX1@gd6?-N3bM`9xZ@^!(Uje?xUIl!e{TlE$?6usB z><#uh;BVP)0N-S90RE2s7Vs_hX6|R~ZT36Bci3Bizh`d){(-#%_(#D1V(+rw1OAEq z0q{NcN5DU`cXK~we_?+D{40A8@O}1Yzz^7806%1Z&HaRZ#NG$|8~Xt8@9aaskJ(3n zpRm8>e#|~)e+T@GeGK?H`vmYG?9<$j*ca?Gz?1BAz*FoWfP?G{z$`nNdx7QHDL@9j z%LJp&poU>rC{-%0T2$auglnx*snseqAbf3=N~P4Q)oP7OrO_yqYL!-_QETv{Mykv|1XsTBFg^1xke)^Cr{*qDuu~NUc;7*5nS= zj2cnXPq>8X&^}P524aB~G_2%v*61*8j$4IRKGeYaFkI;P^l9{T-O#~1Rv0)gXaM;G zqs4Ua9~WwkbQ6XxH&>Wm;ZnMa-Kktjd5!z#BRp#;!K#^te{7(P@nsDfnH3c@ydY370?|MupQ{ zhA>|Z;|(e`N+V41o?@r8CnBoel&g)MBpupiB8d*Ap&GR^S5o!&tz)_ym^ngQEc| zh+$O*j7hK6=rI?a#;Dh8@ddOq;Wywyi-}U?G3gTr#~oFG3$sx}LO}RMt0>@F z-~xPsp7mBbfd;8LO&<507Id|IJ>kM)L%0QEjIkJ?;?y8LCd>zc8!=u~)h3M2pwk)* zDsY6^VAL7Wu0e0XV4;e1API1z1w@xha0`hhh6Z*b4$v_^TVTMX(rB3poj~-p;14Jr zgTbJd=WgaxC#7IC80o->a1a&vVIs2f$;#ig9C!SjR%JC|l8{}lQwV@-iThE}=?pgd zL{sPp&B@cl(1#y{3#(n1$At+5BV2&jIW9QJy4NzKhDC1-HqTL6q&(bHIeFv7=ZXg2O32eR#3`p zFqknHlU_1gj25HbU^dy&HW5;_5@ z^pF)OV9Z&|xxi#IQLngOZ82NuFjxp9eEc+aE7zzrfuYe+1;42DYNwtR*4Rb2nQcO4PDX`BwSDjLx;g=P#H9CyFq6H;rZMM z7bc?wHU}~%aD>Td1BXN1n;D<2 z#;9><4QA#*Ctw@16{ye|B*~_?^222%jF4Th+w63h?KT|fL!P&T$ci4&hkSq%I6ySD zN$Yc(fK~&)oot%M!UY4S25m|K>QAznB`f-{Vy^t4u7(c6g+FWtE_4Q~)oCZy57Mh? za25-I*{adt!{D+>cHqO|&>C%Kufrv|B(v3F3xIequU3QBY%y8PIZqotktg7=?x~Q(`lqBI~;yY8&~0Q zyWDh0Zv5!9*|?}!EN-qv2p7}=4p12fP@=KwB3_HhW;5~Ib);0mwcsEq6SV1!;)LXM zO6WzB9GELVs4ITZ^@NK^0^2QW1L)&*L&2Kt5NjhC)Fv~kR*SmH?{d04cALkeH@mDs zkI&(AN_Mv^>U22tM!nsnx7sW=$zZjC9$Fs}*psvAkZ=`wSKv^Pv+c z5}Q*CLv6vFO`Ho{As4?2H+VfhI_y5eh{M78#cK6gXa+=h>Hr59A)D1^)k^w!Kr%ZV z7CY{iZJ@*EgFgZpLZj{kPTJjWJ36x4Ty%;i$geE`!bLPG<#FM2!!xR7j;)@CRHE}YKOaN!@qg(rzd?H&)%fj-`uvPH`;NzT^DjX9Zm?1(;l$f$pvvTk_4y0ZU~wr7Ym{j*fysZY+;r#Ym1j3 zF)#54*@|EwM29ov$KiH!ezDub65)!N+Cj|~4iHS|FqTCfR!EhTZii(t7~IYfI0!lt z*ZIq##4&oO&+BzMy_hQt@PC66Z-f-@y~^cI~J09x4!6tfbQ=sVL!3BUvRU1(h|@(z#ly_h zl*ws|ne84HLnp9P?f`rit34D7OF@35g8VAn5RJs>@WjG6d_Ihyju_XdG;Znu2PlEV z<#rj|rpkoN2C4GkZu#)JW5618D;f>g;G8EM_Mjh+Cy2Sy;VoRs-CV*&Wg|j5I;+j^ zPekC3*!+5{ULtz1PRaVzrpPVWY)jb4H_48%;SJE|2i5 za6?HvL5Dv<7zqY~e9rEqlV(8nRTd#1D1pP{^%%XD+ER}r7 z5$47pi}@qru-_NPTygm1Yv~5^=?E9KEnWn4Bs5eS$KV`6gJiG=F#!3$$plS^ z84Q#pEv}faGFcifjrc=}SRLB7*sVc_#T#%3e3CCFm;c%)<@+1PaW#!TGcrcPmG@)&)!y0x<{*X5m zumwV9Q^1@dS$DY|p+K2G08?TOGds0r^-JY8Z~BR++|85|7Jttn$;`iICI* zju?lbNXQbgkFE`SOG^Cwc51>_5~;>&7s?oImXE=SSXp@t%odB5Vy-x%#cL(}Ot=^` zDTaWK+n-9+SHZFLrz~!ZHGFlE ztE>Hd=9TT0gb~t`4RsB4q#9~)q|3_q*keuMI1ZvCb$}zqVJs1oN?a3KN`mQhnBPuK zILi`E;2}drU4?-QHllp`kHU$B*theid$L zZEm9@)7FFo<4^KqWSpizcD0Q7C7sT2m@G@$%RJLNN~2X(@rN4eZm@AI*ilJ-C%_UsmptvWBxDC6&bOi7XH31AGVErbawRQCkjZGt(TUy&j zwvQU!(K)7TZ1=eF6DIcbPMSPr>a^)IX3pxH-9IpA?!5U67A{)McJI0TitBGac+cJU z-uLxG4}9anhrao(hYx@I(eFI=_>m``JpSG9{r0?N%UAtw%Uv7SynFuYzwf>E!%ZK5 zvhsrW{`!|!K3e5b>#c<_zu-?-+r%&+gz zH>y58oe72!|9?{bzj*!s2CvwjWtpBMOgFXv+k&uv;E0ghb%b>Vk0PT(v2a1f5u_eQ zB4bx|9TpbhiosL zW;6O%0nY4?9v(g5AF3`N7-&H|N@@qU;PQO~Xkm4}1$^>TRfD)lmFbBbRwSqPPwPLt zy~}@ibk~4C8jXxS{PfiR!%uhlqXPrDNg z`}R?rGy3Dv!`t`m^Y6nv^52iJr_VScurp7L&Yu7#&;~Fu_K2{3DjLH_JnE+t@n}4X zaSn8$Z(XKmM*mohG&)d0I4{RuxBv|)mJ7$ALV4vWRJxEal0ha5`6Sx%r;rI*#-hl3 z!FrsZ!6vzYgpDpFnj~>jzDPvkN*rl14kX>s8MLj!otkoVBx3@n%h)dDSKcj->9 zd>vi;K>mb4Cj_QyA2^OqQQ^aaihS&r&Fg z`A3n$BYa$4BS=w+ioIP?R~r(Y4ztoC#8VCR?aGGwN--WYqonNhjdisyr$Zf&B^A$} z+Nfw9^lWiAc1+B)EE!)Kt!=GOC`<#oXl+Yv)SGUJW=56!b$0!_`ed@9A(^aK?fzmL z$_vVOPkI!eIFmss+TP#TG_|cFmGW%Zq77H2%W6kw!gVEfm(OJ#G$$Jy;Im=m$W8c2 z_ywqI0{5&ujwC82lCU_nbf|by#QDd-E@tMDY|TfQv5JtS__%;ZMp%PGJcPy|od^;d zkAm;=sIdbzcA&-%)DTh}W>FKbR5VD6`gSpo7$Blj6dqO}cDWTrQErb``h1l!yFEsq zQM>Av!S7e}&7NCdKX-Oth1mARFY&9xfnWU$UAB)ng6W9rw`xj@kzgr%75>85wlfb zstxsxP4>9LER+j&`Rgd5&K_@S7g_~70Y#miGq6Tc2aJ^CJ7;H$kicaM*UV||h#-vn zY@D_tIAzv#Zl54%f70=;NmY_MI9^>InmY5dnNz$`VZzHMRU)~s<53T;&<)=HS;uF> zq3l4+kL_<^PWFyOSUBVksEq1np?hL5Agl<*vU7y{LLRLudq+>upFQRdstoGp%Y<(7 zK3C^#$`bWTXv#5cGCO&MO#y+YqD;XgZJ4ADbtOKPbROp_!4J*g2d=A{p{tq;x~dtX z&lvE@-AM(76kmsSBE^3!145nyIUxnYy5v zy0~~vfYen&yub&345bN$^P!uF>mEk_yl@qzEzhZtw)`!1bW0ua!!ZoAiTTlNb&aZ0 zNP$`;X>L2@4pKKtAi`-vf?ET%Qz@ntAqCWvXc35j0+drq(XJ32bcb0X{B7$G#y4nu zW_xw_;;uyZo;4lK>+U>9FZx`a=2bVhl{R323WHc=9nQkyAYbv#(-Ptf}$KnZBtR1Vo#vXd!G`*!WBth%(V2m2n#Yy3dxOPLvNjQB5bRiFxwe)I=wmWbM)cozlaR7e|e(;}K>7(|cj) zFt`^`c@+io^&;2T3sd5S>hePRyvRNEB0toN98NFtEWOBu^deu;i=09)c;3s5e99K) z#YDmXXmu8~>V;LE1p$}^(=iLA4T_%*zAF6YgQ}9AUjsCzDW|ucHo*sDs9$naoYl(ta|Fz5D<@VRS{Yr?d!r#2qahcgAs3^;!lNM< zqahcgAs3?yaxofmF&bSJtlnAHHt(7h*)U0Ln3R>8A5I%X&&R-6at%g`^ctzLWU3PO z$_zgXCqPhcq0E9tw%25~W%@T&3d9Da-Rf!^n?QB(z?4fDHYqo#lqR=I6RsIsSv$2k zEX5j=!tKclt?00=7rQ%!%tOHv*EI`1xqj-cTPIe{IInADOT)6Ovp=bxysUoXBVE~n z)oWA_)Xm(`<`T>{--yakqnGY>o8DNQebMZ?cJAuNl?Uc`U$lB= zXwr3)Cv0EXbn@+vrCssqUBWk-zXnYM8G|n))Tzjqi5Li; z7a8t>$ZhV6haAtD=gp&3%ny}OWB6~M_Li>pba%ROo4V3Xj2Wo z(4(y*%z-m%{7P;Iefsd}tHM0=xXgj*jo`4kLjv4iiy+&kCjM2U7KP~gbJR++VM@=c zj!>v$RnHWIS-)zX_?1_(>z*)JwPu^9ded9){BhgXci(<%bB)Gkw%8xft_89tW?vJY zCRc}FaUVa>aLSM@AW3cIrRdY_I^%vDZHq76J z`B&r9^WrhA#R}KZgK%^WMoSJWtCAbQMiN+^)^u`>nv!dDt6VD?s!=0!4l|``0img; zMlgGo(1d-WN@1i>=X7Y=g;B8j5Q~ry76=6?S5Od^s5Fk~Lz#z45{|g-o0)IMT{=y_ z+2EIOPKw%WQ3)q)*bP)He9j)TdL2u9mN^xo!MMCfA?kcbtI_|+y~IxJo2E(_aSsk%_b;)QdPK_jxX42kNNs4WUY0VkqS zoG#u2WSEfaj;CcXYh`(LjU5wQCcK}uiTB(@*Y#tKHVt#Jvx%q8h4%QdNyXM`!4Kz4o+rh+9^!IA>|ScDCq4$Y$f%;nblvsPCaOYY;`ed4F86HrAYS6U!T0l9K> zpOGBOyUb0&9&x}_9qn<(W2#ppF$@s%YRi43?1fFjDo~hogq7mPG86`lQHr7KUzF7W zgVvxG8TWP^ut|=BO>$tW4%j3IY?1>u$pM?>fK771CONpbqsP7Q`eg0(A9-lRcSP>9 zJR}v-UnM(4|9id;vHej5V)7nN9CV3;E^)Xjad(f|-z5Iz$?RVr>+gR|us`{v;P_5||97%~dGg-h?rm+|``df(eS<#VAX*A| zdV(p#s@oCdnQ7DEdlf&=RJ^9um~@kbbHDftJ*bRgZ$<={N_0P<~ZD&IQ-@~{N^}j z6^Gv(hu<8B-yDbE90!hx89;wIt|V&U@6<(Wp~|DA`-OHa^W+FqAxP1#5C`TS+|*e; zeN9_-PwDie@MbV}s>>n?KW<(yrlhocL1W{*aW#5v#D^@s`R1t?eogfN+>`}V_g?gs zk=ct4rkH>2NPDRy{Iq4w+6|*dEo=`*nkQEUv0Aq-xoJfM@V_?qp|TSApD1jV@!wFu ze*^H}P>|*Z;J*R*Zvg%qfd2;IzXAAf0R9`ehndEwiX$ss#kD~i_ooZ@r*VH8_os1x z8uzDhe;W6vaeo^36WfvR(K|%JP9jI=uz25CIx%+GiL)qZqbqDgK{D$Cp6esCuE(cr z%xTG=C`fSvQk;MkCm_WMNO1yEoPZQ3AjJttaRO4DfD|Vn#fgFxCm_WM%!zD~95U=6 zj%Wc#v=lg^1su@=j%Wc#w16X8z!5Frh!$`}3pk<$9MJ-fXaPsGoX!#CRLP4TxB&>s zz^!tJ5SwX-ssL*=d?|~poqOws_ISs<<}0u2x%8V$&%1l$cyBM#d%{{#DVj^WmiP3W z+mj4WyL#i?9n%x3uKC0?)kbZ^TV$I0MSEv-t(i7LN<4ho(t{gXo0nZaHKLPjND2;4 z7@et^yr`;WQFrMMA=x=^MEkrpxXDv0i);jYQ3^R;q@t*^i(Mecn32{GcR&McK^}t^ zpHlvlJWL0y3H|07qWD?bTtoEK$n+#@E3aY61<}D3bKoZnXE+KJJIT|4v!pH;$k(87 zpHQbDxr!?GylQtma>w8RR#$e9u+=TiRosz1?rVz-wsM^W znNVagmrC~jafDJ85Zrt`JPw}bqE9+04xWyKr{m!1ICwe^o{od3-n7jT6%UfnLAt0Gc=rMGKR&{$z#-Kr zD)<~#z+_>?<1hFOe(;(f>r6jZuYRmv{aC&Fv3m7m_38%!Ae*~TxdDYlw%|IFF;5hH zmINqD5{)pC4izs-8A>zC1e5`kRVZ6g$jZ21BzM1HFI_}Y*D#9e>4cs*_87DPJXcV! zsPX01EU9`pUI6lPHZR;*1&jOoZr$89e#hhM)_&`&V`k13)|hJ}2eX#CuV!B8NYd2xnh0uy05KR`ryUm$6oTCjSF7hCj80f9lRo*%Jz;uZ+b=L^o^a} z=T1r2%vdMe+4YdmHsIC?|+F<}2Re_DF zz(!SIqbjgb6;sXc&|vXX1v*!O*D!pUud2XTRbU)i?5S84ABzEtKu^B8qX=S?Me~Dm zCk*KTE1}prjAQad;2cBw&{i}=jmR}bf_Vgl)`W#P7?DFZ6sdw?$VX7@XM7jOta)U6 z_cgoE-PC^G*On~4^St)W8+Ttb?vh8=bZ?kcRx@L5YwOw>HD!}FbayXp4@5f_j~>0a zBN}L5YHeP9(}I1ECew#DPuaJkrDeswDVqA2_ zE+rl=A2+Y2w!br(?Ch_tnK!N+vW$0kC>!&1e+^p|kmClFdSF8Z8KRI#1L_t;@FN9T zj6fD61zC(h79)_w2q+zaEJh%U5y)Z$Ay2p(^Oi zqNJF4P`(h|A|oy)rd_+fqx<5A&sll@mJWAjWGZ`)sXBbG@R%zpHSH6;<-My$b*`I~ zPEAXxMo?%meiwe7)`?Hg9F8j;o7-C}F7-j}Hq?isVLx2(K(^{B2j z6O&bw5datQbo)obR>iMr-NqLE)72-fqzQer3JvjP{IKN|W_TQk5n;s09??4L|8Pwz z4O?=PvfF;<8uiTYXRcWly0aItm=j_HG^Y^W%P{|6&Z(f{X?|hMFAO%LIhLVbMv9N3 z1!qJGj$;Q;gvFti{P0EgX)%K{_dR$2(-?yK%sKvxpn`bn?CHV}IKbXh+^U=nUG2n> z1q@k&V$oscC2*dzbCrxG7wrbALIQ$82NY_nBRk4b;q_KHgcA;6zXva-SZKzRkp%jDL`3OQ$>_?E; zk07z9^n<($RtZ0=5)xL)Lo@#_SwP;uD7f~qaL>TXwkdm-jHnnpeO#T=w#`^EcFNd_ zSj&`(k+a(pMz8sXGkHkm4c3>sD`#%$>0Li#WMgCWmir9pj^^gE{cYvlHNH?u$bIt8 zFX1H-Z~Bnb0o4?|7i6)ZI}WX zUVg_yV1FUB^+IUth0xXup{*A}TQ7vRURco93!$wSf<)LA0R@-7j@VljxUYo|z8kd! zulZ4f(ZSTLsLer*ycqB@WM2)|AwxVJ_34OzC9v~Q++CoRmO@?FS1PQ+oeo8e25$Ssw%zYNyllyl z*Ib(w!=qYjq~26z&qZ_UI*;{Cp4MG9VOh(pZ(h;wbYySpsX^L-e#DBaXYYIQim@vm z`}Eoev$==+JL`0w&hgXN|4hhyZ{3f+b?wUL(#e}{cw)`kCwBL4an$y82r1pD6+6d{ zpA9UD@J*R&f{OA;oOruTUMU)h*NtE5o#d}5I=B=`l9y!1ps4W7JXcLo+S5@)dFp{s zhqV{sS)-b8qc5V}J$TV>P0V|vIP$sdb)x%sE~mk%_c@R#aGx!py5-b`;<(0XWn+D4 zOo2C(Fy);Xp92~y%|1I0Mv>$6as(>?@^UWyk95E>D7-*^(Wrr{qO2-;2}$`T5io}a ziZ5BvFG)y1vY=m*&@V~omn8H{68a?x{gQ-!NkYFQxqh*rjm(gzm(TntDw3k7C+B-O zF$EfelSP0!;#FEpkoF}#T*kF8qG^R_Q9d?+Xgc@ulJP{L5`9>BVdqm9wnoP+@4Dm8 zF*}ZL$^JlSoN>XVk~_YZ{jtENZ<&(3`OfS=RJYVGx?*<2l9`>(@V&d|-nh0^yeex- zj$PQiVaL9b(Q_LwrtNc*9qdQypnEF?$8k6TvYz1b8pjCZm~I^M8i%~bA+K@BYaH@Q zOJ0y<7b-WP6jkb3KChbCOf9c7teC4?R;yZ6JSe3ow6dk2_{x?-EFpwg_~twX-9or7 zgzG|3%prtWLI|;h5Ml`-#1cY?C4>-52qBgb7@L;4vOy~aN;_zanmQ?)xn z@%cUn!o{U^VD+o?yEtoojyyYt}h2S#aZk||i)IC077O;7EcG-=o4t46Pw z-IJ7rQqznT=dC#*nD4$@Fh8?q$;<&f^cIK&>{G6L>C)XVUE6Dk)WqFl*D3JI9MZxhwnmlPguXto&~F^SgGwcunugyLzw2t0)Do52Bc} zfz6VmOOz`jN07uJ2llKLt&TViuT&t9mfk%nN010Hh$lhPbf_Wn!dJQ6&Eb1h%IM%! zv10HS;^9+Qsct!#Ex9@CK8U`Dk3+|L&Wv*Xi*XE(WSu<@T4T$-$0go(@8Dz4Qpbja zgE!~I|+4LPlboK{0lt0AY= zkkjgdoK{0ltHBa4J*W8zB+r3qym3YnRe zC>NlRyLc1IA(SUj@_{D?kpe$s00FdBPHmB>mqXOCgp}j!sZ-BBt57~GUOBiKshT^)ONhT;0yu#2Di}6($q>_CQNceDsabItXB0c;t=9<$ zo_U5CR>1z@hvEyUx+xk=?U1=Ev~yP6tf);WI+EupD{i)er>x*9D|pHZp0a|ctl%jt zc*+W%vVy0q;3;c?r>x*9E0_l|#Y5>So>T%A&7kb5)1CrBLI`gtQiia_WXP{?WFozghcN}hr>?LDS3F_c&V|i5PgJwnQ zLI=-k_gG?u6e-F_q&ql?$WzPI-pgaoP**S zidde-_#wh%Xc(^Z9xMi!$8}zr;RJPO{Sz~AX2!jC)a3|yfiusthG(&=lhEfJhQ6YEpGRMDQ!(ha%oK`H|{(uy6l2-+&q=R{q&t%55gaQH<@M9DTnEpUY##A1xn$TGkiAwXyjCZ< z0<=5hL{m<9txks6KfG2ayjCZ?RwukxC!CrB-z$i#v1l360mUSIdC^Ky0?JdOaIXB& z2Ml9j&nv|ZMST)E)t8+R4()wmXGiy*AMW_WA7)(AmwDhDe-J%`@2YMYwfWxV%kJAU z=GM%V^_`dF#p^WZdD&m7DVHI@s)Z>>SPi7I7KN;RurQ+_W)v*UD2N#aF{2=66vT{z zm{AZj3Sve`e11(Nl=7m55 z6gnPpf>Mv4E($m7eSSxK_1w#5lmvvkA8PPsuartlumAC^9kVkJ9C}&o8+=f8OVc^m z&+Xm0YNFj)I{1S!k$Id~mGzu6YWt<=6cIb@tG@>M7%AK%M{`F(I@*De24JKCoXuCO z#Mvfrwh5eV0%x1R*(Pwd37l;LXVU_e#~DoEY+BOd0T{I5f)1e_r9#->h1q2a7|sC0 z#F<==WPptfFq{E~Gr({L7|sC08DKaw48tv?M_PvI5kH;q%W;bqG_NScEfin{1=v}^ z;}-Ojme^i_4^(KhFQD=&3WlJ=#adjf1@CLY`$&_R-(djbYr*(hFuoRyuLa{{W0G#| zN97z8ny8(etkO{j?EUx7pb^ZPSdgYkNvt7vZNxt*slszGlnw6O~8t0*10!ylq-l+msPy znWmZB1{QpMTlez5c?L^GV?}c8qSlTXBT{9JeLEKR?qA>8JDzl{03FMe7efX$tm8Q0 z9o|XNZ#~QN$(sb(Ed&nb)jut~)RZ>@7Zw80pu9L+^Gvo%b;~^`^~z80;r-l+XH}f& z$II?6S}`p&Ie!Kn@&ezgNl#Yowa7mJ5oipo6ofya-}=Gn9KiY87(h;$raG+xq)&d-lC#OZ2{piSLhg|#&WlLm}f1-wYMP_EZksr8+1;y za6KZzw+|lqmg*LtMYul@V6ob}jMamAHy zBSoT&)LL2=XrWhSzt%NWi|1=!G6V8>T|+AcAujL`w-7hq<%_9>Qmsj?G3$hB>bQ4= zFRBry*vxoSu280mdvD5iJe<7&Z|l{mve!S%XB_ai$6}*=ig%ZJ#`CH3jgwJMYNXs%vyu zdSZI{6crr|0et#G_Q%O=>V(sw70ySnbFt28Ihsufe}3BK)n>PA4B34;xAQUaP4TGN zH293uE8?|LgHs3HZnHSxv=9Ew?3U*N-cr7Uc{tci`56fcO;8vd8;=-FVQy!wJkOG! zqEknABTB*fjVzfwhhaP?zH(yl?+^My24TFzZ!loXVVo}PeMoE>d|qr(EcDq2e-UpF zh1+9dg%xXX*czs!7>EfejsJ}2iZSfMQ^pikG|1)@Ir{?E#Yj0vZm05q^VBaDwI^S+ zD>A3R%Hw09lUE(=4f&PlBkPH1yFdF|A*-UlseqV^7P?G!Q04e7Jxz_sBK=U<-vX+5 z3=YhRcqLDH1KEPYeqp2E^}quzfA+VUP`AtbkDq$o*dNRN1v%g!4CR2!8T-{W^voxj z`ee${8?82p13keJCe?{p>{bR%EGZTskOFieOo2Pmbc6 zMqF^5u)rg&$TP2RYz0Z=SX^|DJUU@x_L|om0d<|<(f#>bxb~pJuJ{e`Ey3c`(%?&< z?4?9bF|Spyvqa-oU|$)pSEgKcQMpN2u|x7`zi+Z@%gD;&AGKr-d<(-{hIA^19-Fn{!jz7BBkGQf2aZe5GCvu zcoy4)^mKAD2Rc9aqBCNR$`KS=($c#Du<-e~LxbBXe+DnmLZOWwdJrI8@LJOFTGCL> zX?QJZcr9soEopcyX?QJZcr9soEopcyX?QK^g4dFU*Fp(B6osVJPYV0ypB!tb=R36g zwERS^Q=kZOgBg#{hD61-DZYrxQQA9mVN2`E-ipra-+yTN(vE?SD!0wAjm&)J{8>Ba zRAy_dCXXEzy6~a3HNH%n)wiIeIpv6UE+5;rp|43f<@~MDvZ&qMJZ9xuI);fwj}6{4|vW!_cx^rGU#FnVF4cH2BlLdNl=@zV;Q_(N=GAE$1gZ*;PEj$ zsn01vt7LiohhKoMC~*eu(nsOhMu{r4LXN^siGtmttQlnj$^gnLl&vUyg-qEboRjkk z>|bz4e&3GUNCkqbvazt|Yx16&yTBc8a0mABWbP>LB%Ka!u zP>4H*_WH;R3gP7cAd9sQZcm=ld7l-J8VWJBM&kSVw7-AzqoeLw)xUpPW81m+tXOh+ zolct+rp>;rsroD9_um}vT%X&dW|*yz#_U(|Wt+B^4J;ose~PHvZ`N(*1MO zASuLUV(xE>OO!|;6QH+gCng5@;qv+)tzQcAn)gYH6e+%%fmq_7t~cl>zTP-(nL$#j zg_xbb)F><_w&47ks|}(9MP6wu4??a%#f_3eX+jx?LODq*Q7%B)gK`tfA(SUj@(TzX zM9~IDklV^{?P|~x{i7ubf1|`{YYYB3FC|&XXNQ&)W3_nOY`k&Oh>7P-N~L?(b#=@f zQDSo&YCE4_zwn+dV@GX$WYg+zS{f`}7qM zTP}a&L96HT@;9|8e@^IP+UG1rT1g@eFQPzD9H`UNk3$kix;P3MjzSklp^Kx?#Zl*6SMF^MH;ONs7W;_~uTr0-e!xad?+uv*O=T=s`#gXsG|+6O;|@T!$R zojy!@iPA;tG@(8YWj4x6lnYSypxlIV2;~WsJf+>BG>JTvZVW0HrchS7IC7v&IU-_RU~mDm$x54-bz@75TiH3$T{MaA6^McQT|2*dK51>BHM~H^yDVJ zQACG&DeCkT8--TOa797t@i=7(K5-v3W}4M@GN=2niRkA-m{?K8!*Wit)L( zZXAWw@daY_%+2G+Ebgw7T*lhyyj2^UR(*TN_>OId&)adpCZ=MY3ze#on;ux34lLTg zuqs>vDJyMF+Q(h~qsvww*)!>~8+Nv@>?tF?hzuU_fa+oJ>Mr@c4h4UP`q|ZT5P_8~DRE&G;)^^MxNAhm}>p^P+*kp~)wvL95_l4?2gpjDT0D zhUcsCjwjd%6A3r;hy!}W0X^b?9&tdAIGCFB$8uD@f&z1@!r#tn!QZ#yj~AK1+byv1 zEnv(Rbl(CS--6y-=r(He%im*?Z?g++()&wzn={bn4EjQC&On<`)x6>=;hOaL1?Q}-X&x6Jzi#6A^QNS;-*22TB5>~7HRlFL zOjoLdfzGJT+A($F*1k%~QRym4Sd}_gZGU&iwuQ}^iHjS0R)rm7M!2df)7JDA^Cxbd zReAE+WTn@rQfvK_8)L2IUSD;mI62hVQ!#)2`uP<-jUm~GK|(OrUMH|1d0y6)g|{yi zyi$3kLSCu-1}3sha<-owuLb4*1D~?EKP$IGKBa7nklZYR>}4X7PLd})J{K4zsD-6S4h{)v=icd}%6rTv~ zL+7gKH#}mJ`(gF~AD07&c!ZvtQ6f6U^B;An&~^ch%Z^X^kr>(}lG96QF_|7p?8#?C zK^F5KN#5V!!bwT+KD0{Kk|>)ubtd4#1W`0W6ipCC6GYJjQ8YmmO)zyPm^u?ooe8GS zR4{cWm^wK!PY($5*N4%1oxjlti5QIyUxJXx*mb?pM!!}xTeLRQqtC__-oXKW{v7;_2ZWEqBv6Jy!7Ru*8?X!98!IL?J2-Ohk<)#9u0%USY-?oq{Ie$~#?Q zbM{e7C{+8X>cpu#43aP#8T*?gpWYaDWRX29e9dXf1~7CS0{)U86Z-K5i;7~Lj2Nvj z{vxxH}Jvu+QbJZ?eJ1;gia%6gi)ka>&3SU=le8iJoPOu_$M5 z%7`syv*uF=ieA#ccV_cRKE-H5luSWX4nESK&CznS^4A~o9?8#zA(yp)A6kGO+v8fm z4=vya^ZTI%{Llh^XaPU8fFD}G4=vya+5ON0ejvyXCZt!TaZP|V1+4@Tu9aWsm)8hL z(j2B6RwwnQ5m(Gxc}c)Iwr_Fm)Qe_UK61{|%#^nHBTE)^o?E5(ByrBz{__?$O|AFT zExCFg>5L0547bf~quRDD<3=w4@L*?gVM1|# zl>GD(%(>w0kta?VfwA6)%B?8eSnE*nqLiUDqmVZ+fU*i@D+)b_NhY7~pVEpf4BZ@t zhZ2T|5{8EohD8r!MHa@2jJ8bC!7fy8K=~J*N--EF=dgnFH1NUPC@GXClyNAtQC6Z{ zfU*bWCX_=cPoU%%Mh>Vya^65O4AWO2iw|Uh3X#d;16h0^iw|V+fh<0d#RszZKo%d! z;saTHAd3%V@o}=q?!5eXIC-*m=utVgMR6=Kv*FQ;#*De>(G43Oy|}CE;zu{!c;LW| zy&HQHiJpy0)x^CgF4*$)-U$=-KE36F6MH9~+Va9<-}zDflB?&;*}s_HD|ub^0i{K$ z0VWedZ*hH0tKkCoA_IRI_fm|?1d5WLpfxh(pZ>p&N^y<+&v?IRuZlXm$ov0WPd^`n zUA5)c#w1PuJCQ94(bK}~^mvqXdNk@fXdp|+p>=$1yz!nD3wG5B5?>mRzlx$!*#}g; zi7itWjk%1L$5%~jZ_bWZ{@0oDD9By*0mXB98cr?JP=JmRIqis=h1dqYo~IB|r279j z&hh0jj=Y&F((v>chrl0r9Txxl|80zeEc@v(4m=nnoF3zN?vc^=tSUq}mR#Ow)F-ot zD6DwC9OF=Y^2KAqUnkBf#5uZ0Pf47*iozVDn+jnL*nZd%@e5AJYm3jl$dV@K_LCn# z+j)71u4t8u)`Fhu!`}wshLs#T9@Hb`+MtCfKF1BK4O++sEo6fhvOx>kpoMJELN;h2 z8?=xOTF3@1WJ8Y>;ggLjwmoF4%3t9oJJ>6NE~T;lmX+zQpj+cHx75$SD6RO!G7ldo`(^-$Ox@&gjP2~s~e%! zjnL{wXmw*js~e%!v3CenOL-&|%_}chlyX=Uo<>fQ@p4#{a#)mdSd?;DlyX>W%Uc*oZowBk5yH1H=qGxRpu>Pgiv~Yw@RJ5u z)c~t_g$3E57f^W>1-MrMryBIhzZigY4Unz@(ltQ321ut{Ad_enQADzkZd6kAg&ttn zpd#ddPg1XBs*<>da>3~R%1M~2BurHjrYZ?jm4vBE!c-+;s**5Oz$y*mc~o9Op%|Wk z*YV*UBXUyUzsvRzU%{VkNjCM?SB$UoS4>>6biu@m+9mtvuYRa4t##RKrOneu)=#eY zR!m&Dbm7DbdO_l{ueB&9yIlBFL8T4hRDCiSEp3}UvipMBwPPE*Oy)o=;IC|prJGX0 zNLl;bj+Qmksz)_}g~2l!_JH520L2UWaTKYwP);_b!gARtih}$= zpq=}=lqE~qv({nvl9A@xp0McV|5AWWDC1COqpU=^0A&x#O(=&@ocjf)g zCjO#b{yd3;C!fm!ZsEBtJGNO}_mzn*X%4++xV-i^hi#CZ=M3b}6q47fTJlftR!MRf_Y>2NH`XiqrZx`6{;SoB_2U;Lq~mPc;fkwcl|?cIjQv zZI;2!CFA4q@g?GwR_7^N$6zeTS5bYS_zX`5Z~vz_KWi-cH1^`)BBX{Qv{cFyA^+|e zz89y(FZ9&nG0>n;3lG&&`C2}6#V+STaAw3hX!uuz=J^&nmaqzBx|^?b1ys*y@pl;= zhF4Tx`y_`?^>c%SKNqWeUKRL%sCyImIID7heBPPNB$;HguWk0V+0)6SlS$GnZJMTg z)~+F~B`s}9u>@!dOpv7;h=N*HQDkq~L?}>NL@x>#6}?>avV(F3FN&Y5aJ^oIX7c}j zzwb;YT~N{c|NTBc%KM#@Gw;01d6x5>=RD^*$$JAwzA(f23+@i;jQV9v&fZ`P%r7XI zUu3-&+sVXF>?rKW&+p1L+oQnx&Gee|^xE`^-U7325VK`_5p+5=h9&&wK?hN|;_r-M zNk#^24$#dQ7H+t$ly{#C+;?AEO4OgC6JK+t#NUa9XJ_7r2$spnxZgU{Q*K3w>3_z# z0=u)ajJCMMK-R?XkSXsA+3A6MLh&ncu(5uRcVOPsAZ>ycP56<6VfEpPVE7q~Ai5DS zvjgfuBP^izqcJqE{vNf`TSy6VS@GNSL2?QfuCC~h!1JAJi@7xaNG(y zwih%HT84JwlG!r!;Y^=ghCaLueRvuA@Ul=JUS_!tf6#@+rN3n|S!M(+0gh@pLr?~t zmW!lMMH~#7XP~C~1=z6oWc(=OP?{MhrD4@@Qc8DC|M?3%XP&tcPy4IDA!7&HcFO-l{|zY{>feG(alliQ^u)qn zU3Hax;!pRJ7gmEVm7>ds=9-=i{1)B)Rj^BLrrB~vJ5o2JP=>>YV-b!uIJV*#!=WrW zjC?WVSIm&EMpK)qc9L-sxff_yCF4TLxKJ`Kl#B}{<3h=}P%0a@vmMcmFqE+c1g=X(2&OzjQvZ`kc&=8P)t{!pde9|DK0*;NCp20fm^RRdKMzl`{Ka8HPt!7LV>@4ad= zHNqP4EA*va%kAOJQPM2od`zcH+7$HpgmN@NZfF-)g=8maCBJ^0mgTjyPJWS5ffC-m-~ zQymo_7n@(zTJC8bXevp-UhK8aPnfy+|6|{nXX$y%OJkfXc0V@y*<)Ar*d9sA{&j5Y z>=ta_oRJYZ;fTmB$cm0^?OGi9O{Cy|_xA6mTmR(now=Vn!2|uV&VCSL@;%cFY{v5C zL(EE{S1X_*O}}phYM@7heMqpS!ePtxYzJg|+lJeSw2%ICKh_~viHt8 z=gxDMj}0xz=yIky<1%AX%IfA-wQgw3GoHvv3ta4TXZv!jcgCb-B^_@rXsONqp7k3u ziVXYET^BDb?O5xncGzR$GHVJ`%a@6VEWTcKd=vfC&7#6dcj;7oP@v49CM}$46SD17zJII z84Xwj*)2lL7ok@zLa$ncUbP6lY7u%>Zo~sszXyfuaByVIh1%7jQE@etH`3Uc@nY3b z-qqmhYAEk&DDP@0?`kOTYAEk&b5u-6HJ2=NT9Db4G`0#x=Z59y6h}nZ_ArAeW{OSd zh^XUum4o3r42J9YB%J4~gEFeakhu;+<~j_S>o6v+!zIS_UHN8H?6y&a!aFcbHz<- zZpbaj&%SZpjg?z`zD?)Jv_Uox~8|Ku&||$Bek`8dGP1e-z=IF*#8M01#<0F^mrW3WQr zl&qbyx;i*S2@791G=<(ua|)ePd@0}{3#8bIyK#!joOQ@VZ8q-0u9kenGxI4t`KQ{P zu>ANBJ}%gP_4!{m+<`6E&B%3P*;Ps;vZou#QTdtI2hK9;0{0vJf%_jZKdk54W@V;K z{IIYwJG-gCIwvvf_$!;Yo)vh;XgX^vj5+HxJ0{ZNHfOSE$(Y>DkvLaG+0_Oi?h4OJ znwAZRhOlmE-yHu{;O*n@^17pwSJ?L1?*XfJ)Whn;mpO)h?^gn!RH4*3BzsFYlk-;{MDvgK$EXMIo#Htj2*>_lh}L?%plu zZ0U8cJj2}@bVN-&-no5u%beOAPv?sMS@Y&Zd_c!kW_d$yiLa)j+PiRYZqMgRiZ?C@ zyQd1XGOJojs^-;|SJri&(YAcNuw?6!#9=A6jbI)!bN2?SYYuf%;K)QGY%0oV6f$wZRO9MZ z47emdw38Vs#iT=p6zZVGXvR3@SnVhM{kx>Rvh=iB*rYdiR$6*lUXpPZlT)RaEL z@H02b9-Tgmf6YoyFXwsXaMhjgH-?y&j>!-0e})}VjjT}{jc*^rmL*6Pfk!%KK~7aX zAWL&mS{0JPV#r`IWUv@ASPU5~h71-%28$tsOsd+>-l`Zfs8Bb~=Pki6mf#ml@QWq* z#S;8t34XBzzgQCb#S;8t35ALhx(X7uDkNd6&|a$`VXGivj2l`730nmTTLlSQg`dNO zK%)&$$Mc@*J@igCn5Ip+HAK7ZqF z=d~`l=$?%uH~OmW39)gx?xju0L|cJ8l`XaNYKxEede-l~{phAm$8O)d-ox^-O`DFg zJY3m3diCwAcmKzIXIAx|cl8~scmL|%jmE#&BOQ*md5bzOIyk)P(AfMAZ@VKF(prUN zc+19mD`MdiiQaVVjy)SZo(+5MIJRl{*zIN+H(7J%HOQGe{J^jGuDSb~oqg4tzWF{R zXwcSb?YG|x7OA%c(4^>ixP{lL>oT~xT4=VKy=T=6=FD?l$PzQN2bRDjnS-Mf$4VTV zaqPqq&KV+Ip(=s$yV3@JLTs47VxJmARa0NzanT5F) zgSiZ$j-hw|`f`am=4y#FYkzZ6QdDe4wY#C91iL4dtp3v3jlL3hadtvniapIUwrEa& zV@}}hy2VAEpJ|@qv312H%}&irhmqY}RxrQ5&|2KuoRpdv?<}8PUC`WL7kH_paH}fogi^OkaVRlKcssRZ7PMp*v}6`e%L4CZf%me&ds*N;CcK1(*n`4# zID%So7PKT&nBnKqC~&*4G8{e}i*T&Lu@%P{4%#s-ct~!4a1?3y&62sodhrX=x!t&0 zcj#)}xLP-^){U!m<7(ZwS~srNjjMG_=foR-H;2d0ORZCv#}~MW%DbevNd> zht}R#!;jVR=@jO#ZZY!izx(WMiJ39)9LP`jL3HMf?(@CNYEqLcIz79s&wmPC`HR5U zZT|6#hIVH~{ab4M38EehV|qxY~O1D7DkQde?#lyH>kHpP$Q_ zv#7khYfetioUZcnMRRf@w#?tT%I#jYbN;*wR@K$5x}Y7kxw$-Ru{Sr@yO^}GVh^Wo z?BVn9y^)_Bb{n9R4!%DgKc?UTUUvNN|(auoq&w(}BF1FVb<2 zgQ0QgLm-WzD5`iEKc-(F%XG2782m$Ktgze%HTc$8>ltXq_Puj*ZcndC{a$K%z;MRC znOT{a++0=di;GH5#O@diu1(^Ys=#j z3?p{iHa<_k&2Q~RJIuA*WVS;k9#FdUQ{|^%7E=uDrUqJARe+bP1c?ekszP*>92~T= zH$wW%ph?dA(@ZxF7)-Z7S7HB*;B*T`4m|@60xcQ|CYYxks0|=a+=T>#Fojizn#yKu ztm|#c+cj@N`GR$|zW%ut@!t5j>=;KbJgD{ht1>~VW)W+lX<4eM9b&ouez z`w^eF4%q+V+FV1^eGE9Z4*WW9X6m*Bart@nLxDiN>%;U^w8ce?m9qUe+}i(YdL_7g z#9W~fsb&i2*5XzpSz7(bPCe|Oqs5jx#f^V`W<8jBCmag(7pB_jwW0YC9DIbQ+s!RM zLSbB-PRt0#C#RqkS_FT}oO(&AvY0VC!KfVB8k$<4|AkeHca%mt)|8ZCdi|X37lx+S zyE^Ks%U6{Iem$#*L8h2+ne^Jz>^DJ@R+`3GD)`KXVQPf9kMS2=(-Q^1iJ7A;3N^{} z>u__yNF39nGGP0jnuMc}9U+d;GBSJG>t74J|Ftc5U(nim!QETzH{JA+*ZzZ#ytXsu zZvA4<$}em}k8AN8-!|^CzK7?k{KU-gBoy{qqs&<)4lv11(!u`pvN<`q4YM*bW;NvI z%qdH^_Duf^-{M}o1GgE!gSnnW{#oE8now8s~9(E&7jPnNj{R^SfI~?oLoY>=z zd*pB#y(u3y@PUoC68DRo9;c=e4;O8*n_A(ACJx3K=i%C+ zk=s8SXN)ynrY({Ui#r<@cQ!2UY*^gcu(-2fac9F8VY)6^+}W^2nBXg9PXzTsaI|O6 zVdA|(-T%J>gE5nxW?a&FZg*v6_qm-5M|&zOdqx-b_x1I!>g%%~s^~rsJIeG_RP>zR zweY;|iiwG>!^2y)3=hL`i#-A`4s&4~mSibL`{w~blOTU~Ln@wYm&8vks}`t$U^FT+?XG10JR#Kz1p?1_o^GjMTwdV1jE zQ@?-?ia<+S?0);rm2S$;T&s`@_?J>I5KFUKV-%vygYs3 z=4TN;nWd7us+OY6b@}|h2IU%L39p3!a;-v$qCqb_C>mt%8v2WBra6$p>3)M}l=F;o zbJmO*C+Nd7duJ}>F*|G~)8GQgM2H0Uw&G6Uj8`yArf3!8J3fxNOL%a(B&AxN#!COkSDzqY5s_Bg2fv+2NUqFYYI7%5 z=Pfg0+GFA$dMF{*XZ);bn)H1yxiUTQ#7ntp_QC8t(8ea(oB`TY!Ma&!Bp2Q_n1GZ(baz~GtD8XDn!%3ZuDnJaJ| ze)i(C7uOrYUCoWsc;5|EHrXi?XlIb7XH28|DU!OHXRJO^Qp57e&DMOfoih-(;lnGC z<>=|nL#^pwfCS^LHg??{EVjYZ&=&GEwBgm;U}?9(ThIniLmO_@22Vp9JPmE|G_=9f z&<0NfW6Ln<11C%`q&*S$G3CDxyfuV7x1k0cW$t$umjA!cct2T5B%G)uj?ephjCS>p`6#9()G<2D0v{iO44H%yq*6E4tWx%6ws;N=*~dYSg8}2Y|gq%sDU3 za-C$C+N`-tR&V*_-C|0RW-Bsq?#cVb{EXYhRQB#%vUJih6Mi(IUn&l(oY>VYI^%E!5zcF=wz`!OFQ|G@JsyA#W z)PESNw|qRkKC&uQZ&;1MdW@Jog){27p($8!ZE)iw9-+-lxTi^^^-bHvL~^sWX5yW>*3TS2K6~P4 zkHi$uIAFYH{OeF`cHGo%0mlBoT`8H?6zd0N3y@t7dujx3)1DejjGtqdQ}kBLaI}NN zXsv+5u0r8cjUkpo(6CD5|W zHpZ0@oDh5hc2#h&Rg1w^E!>o~n4zo1V5=5`ty&DWYBAWV#bB!zgRNQ&wrVlhstpac zYBAX2W(o)cn?Be=f(`8Q{1^5JF;@k|GjX)Av|%1(_(2%m`O*cmg1P_;GEP%JVN9>5E-=pz z81tr`PnkFCKQ`+ppNC*Psp}(R1`PYrpYVa}Bb~DKs%iBTX8q*vP=B$5*Ei1(FyeS} za`HpeU+CcV&H9h6sE2sFq09aix+4Lez<)xJ8YGV1u>vr>0m)(7f2l6Nfsk z{7Vc;WFnqKnFu&vl86o<5nTN(+)A^UUYC&%=J(|*$JWP0c5 zUk&g51J1^Sa9%&OtP;*Ac;+xT)@CZH!JSnKi!q$%4l4-T;m#`VXRPT;+pSdI6Tf~Y z;uY+zay~-b#{*Xw1I*uTi?x11TdQcB738_67&_HkO=NBB8fm z6HSz#T{JGh0>y6>SJ?o7% z#%kLi0|x`QZZI|mZrNZA8*4TM?lxA#j2)c(3i8pv2F|InG#ES0=sjle<1Ral+B5em zU@&OVJ5T_1TL67h0Cigcbz1;+TVUCYV<(QFcc1`j7vZBY>|EfQ0vUGfi>gCB_o?FZ zj$+(oQD`LEh8rtzgAujKDLZTg*Rh3ldU(qXt}HY+oRYy>235*%{C29+GH^8K2+N>K z%b-fjpi0Z2O3R>1%b-fjpi0Z2O3Uy7Wm2Ua&2efBKaWHq9Y-k+FOG#cR^d1c$1WWE zaNL079vqM32(G5`K$T)iGE}L#i4ddtv{ZuIuLX4}JiARsWLlCPp|ng@jb&?g4^l8_ zrIp>xWP>K?B)f+t=F+pud{$*aXzi$OT$Spn#u51ajRX8ohF)+A+XQZdY zffDm+fTVEn!ndbc1_b7wkYfCwesxN=eIp_8d;3j+Kbc{6$=naR?eW8qQ|*;ig@b1(Ut+T06m?ghtsq0PO}=3Z!XFSNNA+T06aJ*w}_ zIhHarimwd6mt64oW%zxW{`r85aIC?x6~`D3E_;A~*tF|v@jF@ux^FFhSBo=hao<|} zt`@(m#qVnIJ8sN`spYBB>pa?2^GuscjUBYhraTg+A7UPe7&MW%oo70Z(rG4AQAiex z@Kq7MD#8mEK^BW3i$##dBFJJ9WU&acSOi%tf-Dw=WU&ac$SC3|_XS5Q+Wqjma*P;)(snLD%zH`Rn&K%(OvHw-nZg2Uk}FTd6(2zV)x31{*C<&Rr8n6 zugYv#)7tUb6%~&xxb(37!R9m0scT+2&s|%WSL&&%>D;`0`9%X&;nkvT#SNWx<&Ayw z>Q}VRXzLC22ZBJK{zE?rCQ!5aBaK2>}xGy5E|tb*LHf`;H6;m{PXoicmXLgs6kwh%g; z9w#XJ!7wIq<7&va>GcSj(c=2;De(u%H+tDyy-JD~m4m2pkw3hP5>0q&?c+#bK(xo_kDFkgP1Z^n< zZ7Bq8DFkgP1Z^nS;OrxQqlz{E%~eDwQ9$ z*~N4$lqo~G%y@XrUdJK5t$M?H=DLeyuD^&c_I}~4ri9FiFGN%?+uFWhaBfLLT#}~;IrR%RDvM@P+NV!(6HZ&}@tS=hO)tNHxFrU>`WOA5;il_Yoby47b* zylpRR=qg{;U9|X|#m4WrVMqICyQ?50$g3K-O?g$jjQ=)$$cstae_*V<2(1|!D`TCa zIh*sT)+U<6WG+Z+obo9L)p6MFoKKmV&s=vw5jka;9Nbbu!{qtkng2t>Wc2|YCKo{_ zsLmx5MPTY8Fm(}Rq6jik1eqv;OcX&TiXan3kclG5L=j|y9Rl-I(^3rzcX$tEFDe(} zScT&(9J_Gr!*K(SdvH9CBWT-IgTuM}#Jm=wB2D40gUHlDWDr<+$_N^P87-K-4DGQQ zN>QM|R8*VGs-_R0jccb3pNspxu(>gqD7NOb`D9}f9qy)kKa+U+q4QV_mRp@`CX#JC zInQi#RD0LrsK#ldX7w%13;fUOTe^aM&L2)&ztb|ko_&sa{*OpLv-e~J&-pf|uEoHea}r&&MwBI@VZd42QzAEScf=C@H_X6NEy}eh&jQaOyv&r@)91I`j1zX^2#&EjFvjY@1AuLrP(2xk%%|`Y ziDMYl8QKS%Z%`OqO`kbcstuOtAK+@YAjj8(OY6a<^-%2f;P`rQd_6e69voi}j;{v= z>cR2#;Q0Cw$Jc}7nUx(D6!uBOL@AQin*~JsdDD?>63!p!YU*!uB{F#(Cq*VRO?frc zyt${Waa)8v{j91@zNAch%7()|_Y_8@eWv-$&eE2PAHQ(pz2jXi=ijwu_*?BM7YrR) zzwo@CYFmP5$(b!n&c#mB-CHBdB3+KO_^y__&sY=Gu#Vu9(z>`Lq3Bed3&J z-ucGLc^5ytW9Xhs7Oz~j|Eacp$FH8V{jSee^t2YcSMBQP`P|AX^4OPQ#Jp*z9n=F} ziM0I8u!{GT^Gm$ftNQttk55~_^Mrcxq$kBU2Gg+R+lXcI8V;%(E^8!vF$}eU%fvB94^ncJ5RDSEgP0B(bE`~xevOlS z@uBsGAzBSH;LX^WoIibOYku;{e_MaK&$#;}U;9MgNfmmRw#ma0RS`_vjunr_*Ta$N zHjLRAi*Cxw-|KULdjJhU7XhPn5>QUS+*uLaV>THx+z)DYXw>p4*F4n)uL7B47zX7| zGMC9NF>{(38T8Gl2h4@Y|D}1I%+t1FUqc7n5^InDpvgGA=(9`D zUop$@E;(<-EKguXr|tZX@9bpawt~FH*_q#8@U)-V+e!-8%}k&8);B(5UEVNf_)CGJ z`r&KV-mqcf@mk58^2A6MR|jSBzfW7g(=xrDvS^>Q@Nz16ITgH|3SLeH zFQ?)ba00`5LKEN2almoF$+_enZoSh?L54(f>vx}=NG>vC;+`)}x4?03KrVd_den&kMD5oFjCWO{v&pwvup3tlnT$Z}t;M9b&s z9%2j_=j9yW0rCplj430`F>5?(I9^Sh@~a1F7xp`a^~zCPKT2ukj^aLMiQCO{iqARq z4fAv*fIN7%VrEYP;8y@~v=8Z^k{PeQT38|6uC+yZImTt|C>A(ih z+>_?Rs8YN3sI+{1V*C`Pl8Yo_&213XZP{|@!uIwH`MIlY zY6kfC7w*O0;K6-T_l^C2qHgz353E>m;HSHH|MV-%mw!dJwvD+`9Ty;mq1Mu7Sz_FB z46X$mCJ{`##0C>Q<6k~2VOC)0}ro34+?%h&rn+5W6+WzKhXb?{Sw$7 zGvx0PmzL+Uj4EYD_V-8c{doe?8O~XAc?0)&f3GSDfOgC?)m)wf{rZ<7H(NkaHVY%+%4s&x?85UVK{Hsj*CLcUB}MZdI=M} zuDxcXhbdkU|G;LSaT2aXKwI1t5vUDRJzU?!Rs8xr(xL^_=fF6`-2!<9SHRr!Auh9l$i|2 z01e6S`6zMXfM&ZX-0hrAio_|AP(YFBkt4xtk?4^l(IZEqM~*~~9EszPt0lxKrw&i67cOg_pF-cZ}cy0&by!Ay_=tyI5~q zlli-snyY$RE2GwYH8u6$QZwFvEi1RWr>!bF&6sDiOqBfii6P&N#=#Ej3-Q*>7Yf7z75ZWU})T0(_eMg;a#c8 zmnJ4$=17aZ_~&;=d@1gd#KcSN(FO>__6=P-Q7hG^_sZdZGN?^a!Ekw`Uqv(5&gSms zx!Tpx%wA(Fyf`+^acPXh9%;YSksh<_=XYc0a{G9+)9#EIcSHyNMEVEUepwxsb9Mi` zh^ws~c(+u`Hq0sF)wpmo4XtZtyk;lNo+TYMiSXuO+%c8+I=t#Cs8zxpJQv9a-LMwe zOBUEm82Dj^CAirhMXxTD=!1!q4EM4v?OB(^75FMDdY~y45TewfIJUavnclz){m~v-}=s!xPNet6(8M zRCp*<=nfUG4HXhpK(xRc_+gsT8LsU7uuHR?V44#s39+}VNuzv zE^prOoSG`Hx2k52y|BE)J#!|uODpTBojJ3%qpY%_p|Yx>0r%M(xYzgq(voGln>!!a z_yWI)SgK+9x6%Va>yWI)SgK+9x=v`hxHOa|`5@E^G( zVVbi;@TO1s;f?P_Mq9IT&Zt|xDYK%fU@)b;AZ>PedQOV#r&0EK>Deph{aEJH7go&vkS6U*RJsKlRP_wHCF!tJ24tu>kVn^ zQ;f9}(nEn4xM0attnopGT47L!GI-7`84vt(YV6`Y2b!5a6=keAr0J+25v|LH>80Z(!dRA;D$7CLmIdN z`HIaxCk@;HQUxt7hVjf~b11%ax{D9nr?5D z-IJfEC7jz~FXK@})0tzLnT^D-5 zSSV%zI1RJ;zkgSN246vkd;JnDp0eCDA4LdHEh9@B03NVl~ZUS`G3 zPfSK%R*H?Nca~KYEbZ>5-`3bat8&3@%gvWwe*1!oGULkAzx%|& z=GWTq{7~>kx{_`Ze`h}+9eM^_^-_+E! zY5%gN`-YpWeWAaW;V*p4xv|xgAJ|t~ev50BV%-|-XV}g#tT@7Uqr^-yT!a__`(FL1 z11F^6fEMABmlOq5oS&9l73knS=~avW%HOL`Ui%VZKe+}=HuAC8T6IBkasfZ{lg~M6`Yn`oR=H`F ztG1e>y6Vv1v`4X%!{qOxp0MAe_MB~5fY80|mdmV%%{?wTF5xKBrq(=$tT#3-6l7c5 zU@Gz33sD+YX)Q|Uu+_OX$;|y$f=~Km;60&d1y+>>Ruz2Nrd4HuRRzPG)9MZoEe%Hr zjyX6waje9#8OKf>!C&Oy7t9+c3#k(pQm6UzXcRJWFd?@O2NNT5W5=yH#&9tDu@awd zxlm_=AvnXY`*!2L-MDWz?%R!1x^drb+_xL|Wttz{Y7Yw6;RxP$8223x-FF!G9mai! zao=IwcNq5_#(jrz-(mCTSD{&M#-SIDMj;bN84e$gML5>r*otEe2jd6Uf*r3onH|Ia zj-dZCTv1DQteqBBIh{YH4cGIG^*rMkqU{W1nIr8AQ8Hc6Wa7+_UojJY#Y{deqs%g4 z`ej0{GBKZ%3BO_{{EC_ID`tZ7neZ!S!mpSKzhWjtI}?Kiwlgwu%WLVyRR=<&jsc81 z1|YQq5S#&wItDQ67{I7w0Hclpj5-D|>KMSNV*sO$fzYU90HclpJPMbedMyLGYCBqI zDD{HSh`E=Wszk0=p*8V-~ zYHQc+>0h~bu$EaL=M6T^n9(#iuYH{_Gt;-u7!8hL38hlo9ta9oyd*j^`7S>y_VZrIw&>NHR+}aB5H$lB~qhRrSaONp2BEg_;2te)Z(y6t_ z)0T49hgJj|mV(I-B1WMT7jhq5tl~!e8*PXA;4^cL&8OE_W*3tRZe@-Ub~l`Rni(wT zqs%N1tS?2GtMz#|a|xSSZbN-ru)Y)J&Z(HaperE!t_>9S1`7L8EXOHgoZjY&yv*3B*r+9)FI;o}(fz9uzPK0P z@3UQT$&apCI=s3g+Er3r^4xd5N!cm0QWJ9G8xpgB@{`oO;=I(z$j;5@uK3DNuh<-) zlaNxD!miQMW?N)018=iue2nSIZP41(-5Drls>HPcE|fUqUl`1)%RD5UVP?<@twM7* z9Yo5YJc~UGLuMG3Mi-PM<^;DF9ZILHuE`}^<#M4p?-Z;2CfxQoRD!EWb!M7e#7f}) z#nj8wwrhc>$jgmckPt2%Wk!~irZP!RVZH5pj+h90RMes9goJJ9L_hAzP0Ecu5_QhD z#JHG09KPgm#6VnT9R4?ITu~Db8QYfx9>SI;%en$zv35tfQnv;&jsIYNW`mZ7{Sx^3 zyha=MSeU*$sA)mddNFOrN|d;IR`!Ggy|g3LOFPiI4)oI865D}Z+JRo$fnM5yUfRKa zoiebD>nTokDKqzP<5{b4U zLbi^c{bza?TzqJF_|U}*yc@6V2}I=-8Fy^>>PXX>-~8~JYd-wunN8cjy1}@!D93m# zzWuCg&N%yy?F|jv?>PI6YtCwq4=gUs8h$W+!~O?1UHa0^D_7q9(xsao+`l3H!Qrez z$ig6EINkPxPy;Q-RtPv+jvA5q^;*%Ip{Pr)e*XJnZQz^1dvm=}3a-%zSB0qD2r4&% z%8j6MBdFX6DmQ}4ji53EK4l>`g31gL4fQ~$%>IN&6=o7XW`jJ6Azl2mlp)xCz$9b= z2+1{dGQkQ!$N~_u0E8?6Aqzmr0uZtQge(9d3qZ&M5V8RGE)XGU&Q*leZ3R?h1sJLV z7E}e)Z3WbA1=MW?)NKXSZ3WbA1=MW?)NMsb-Bv)|axFE)m#UMoIab9KOq&x9$LN=y z9M?Hmx@h^zy0r(k_!fQT%>ygHw54(B{wH^Axw+PAT;(rc*ii0@NshU2-mVP`Q=BC& zs~Y<+UtN{gJYe_DEYFHteDx16{bAsn|FzF|_KoY$`{99=YgQJ|pYiOEQZiFwlRm!E zyW`&TD*M_>TDD)es(o{3vGimdWPT&`Bo))tZb7H`_Jir@AxZS>GkS)BlEJ`}IwQY0 zpP{T=6u;q{*1nJKH*B_LflH%PqN9_e?KgdN)-AU0q&F56G^I<=v|tm@g=cf1oIy%6D8!CyIdIUQ@1$Op;$(KQ!g_n= zu_J+)Bgc?X?9YcBt9aa`XY9u_+VG4?mZ@Anr`$hiESdMm?aU+sTsF)IBlMmO98C@F zq!i7V-~Nbi9^Yi0JMlf+S3mBFc3Ll(_Iv;*cHppwv) z1a|^64gEqR=f12mV+D2qyFNBH!X6WCJY>&GId9^n>#R5Am-*7-1Dod3(dhrd}d^JJAX_6e>-}kcB%lzoVVi+ z?dXl#LB@9UM(ya0+R+=eqc>{Dg)ooSj21LIHRS20GXy3pr(~UA7lt9`;IkQ@bQIAw zPP?cW6V20B-N+Rd68AW3@rl9OT#y~=3$T%t?KchUmbGVPw=W&^wwycQb`PA};vHPt zo}JacY+Xakj+Jir${iCcidwwx%uKhprKqU2HY=;P)p~7FYfV;GO>0q6O9Q`ZXbBWF zEiEr!+Eh@x#=mr_fA#Fp-?LZq?=`hw&Z%EeTDriKn^DtMTZ^2Eq0d|o>+88>*qFRN zaJy{~{eGe4+aXyCidNV*4(8+)uhS(T8`8M3(74=nvz>$9SZLf>Xxvz6+*oMbSZLf> zXxvz6+*oMbSZLf>Xxv!bCsrDlS$&b2(wtz+0So7Vg>pdG9BAAeXxtoV+#G1!9BAAe zXxtoV+#G1!oRG%NfySk4gBn+xSwwO<6gPRpM{r^dlds0k)WcscS&$cHjY`VN82)Vh z<*xQKFI!T$ILB#=PRYw`Ts5~iDq{YFN8%DzM#nkr+joBa(dI9&uW}_UjdeMUnN4TR zqh0xsaf$5}+cOAG@gjN9F$4iyEyds&x_hkXVOgSXq`_o{`=!I=Cd)@#unz%p_tfEy z5r>YtWSnn?@#W(hbrOi0UJLY=M z+O)nZrvZOu7oIz>e#`Lss=x4^ZEaj?M$BkUb^fe;S88VL_PW{mW%+>zU8p^`wi@NQ zVC}4Y@(aeI$7~-&T!QCch!()~9%yO4cW7HKhJ%{PRcKT&DgZJC`Jo$`s-58j47qXO zli@bW`A9{GB!3uP#|*eKNw5a2Ugm?@WBWB zp4)f)_`c_Gmjjk=+szT2NlC?lfhNLHk>OR2H(b|%c@=5r#uDlF93$H>80dGv=17_m zSXf;*!<}k8k(qq_Bbx(9x-oW9!pzuzL6XCG=fB3zOt{FnIN(&?TC3$hai2d-yH6tS zgFs&N4_e8bs!66|ZcBEAn*xsjC9u;;t))9s>HXei#7^v!Er*g zfrWrZoysU%Hw#g==vAKAZyIrf`i5aGt53>hRHCyFBRSqPG4W8R%v+CrfQRG8+D-yu6a zq(@FM!Lw*e$tSQMc8S&q`%{u&Wpx<_e%buFDsNsyS?r3p3&u~Q= zUpY{BJlD42_&4zScmlrvhxWsGlE=-+9Qqc*Q90)OD?$wK&o$lVd(&n<`MrZt1!4Ue zj$y)&I7~dHWx^YpGxfWHMq+z#nf}S`!9l7ykq82y;kmyALa87}C$$dt#VSm!Mgy^R z5a6n|@oc$eOW#dh!w=8dKI`(Uji^8%*f4YYZ`d)<_0bx8xz%yq-Z__{Sq#hbf$NN` zCLe;?P+-opQ`AXaG>zUPn0Xl;gW_GdAORsf;Dw&>_&(2Rsi2Acl7NJr}fKIZHI9yG=j8{vO6-8 z#QNpHYl$;bullJoAt^o4@yAzUqkiOcMRN3xw*M`Df1%?I46d_-l#Bp18FT1@R^#T1 zbZ(mlVhywkqRJJrQ)j(!Uu;(N39*g7314rH^F8i z?@<3wk8d+|A1$QQ?~ZBQS6FOpOe=4hRoK?#$tWl`hSMurOAFf?J&wa;vK0sMY2tmjD!Eo@U<_-m*yM) z{9lRLsT&?iDa~`d|7@J=(Ugp5U2%^lXW};CsTU*s#_jg+ftOQH(Wf!==yUgnDHVEI zT1;e8UM5wj&;C8=(EO&g^Poc)@>-LDz#)qjYffyix~FO6;9y-E*@pentPv6RfBMsV zyuZcrp83z{Htw{pv@MQ!(f*kI7mj|%Rgqbd{gHP^9z|B_tY~X=w=*He6LWLyN>_xd zEv`B4Pw^Y$UrTT%R3{83T9RUu29swb|0ZQP$B4FIkweuxMfJ z!sdlt3;P#tSa?g<;jZs?J>T_8*E?OmUv$pmOBY|g_{PO|E`Dh7lZ&5Qx^~&oWzQ~q zaoJnTezWY4%dN}fmd{u*YlUY;+lr+tR<9Udv17$c-5>QhdXjo_ddhp|^v>ul>0R3U zU|&?<3j@x9w1I+w>Vd|A&VlC!{12>4Xb{!I&1aN>JQgA*34M5dCg;M z9cv$6w{qP_gZ+cA3^J$_t{@O`{}da8=-#0*!PU9 zEk^uxP#iH;mvEdixfmEfnFUOkTnG#tx4Fu^EP< z9m}g(?wI^8uygWG;6h=SuvgeG+^##03CD$(>t0s~cMJCj_X_t3_Y1Go-46(_6J9U8 zL3pF^X5p=Rs@wHEcL?tk-X*+Sc#rU)@Q|MEUg3Sh`-Kk(9~K@KJ}P`n__*+h@Tl+^ z-ThgWf1qc0S?~CY@O8EGTf(Nr;b)2G(Q`B)y9VcQO?!-Byj?+TwI4z`((?aSvEu@aq zLh3jzq>j@<>NqW=j?+TwI4z`((?aSvEu@aqLh3jzq>j@<>NqW=j?+TwI4z`((?aSv zEu@aqLh3jzq>j@<>NqW=j?+TwI4z`((?aSvEu@aqLh3jzq>j@<>NqW=j?+TwI4z`( z(?aSvEu@aqLh3k?J&H)`I4z`(6LSK522#gqA$6P(txJ665?{H*S1$3DOMK-LU%A9rF7cI1eB}~fxx`m4 z@s&$_xDN6Zxr4vyjAylM&%!<{Iag_ittrk z^EKfc!Z(F)>)UsP?+V{TeF9owIWQV|LKDyqEW3p9I0wP9!X$lLB;>m%;N7nUHiE+w zEKPXR1hl{g;9N+00@{J!j_5k0Lcj2GUEvDhZs8u`Ug19Be&MaU+7E<3)HPq#6g&I;eQIth=Jz6gjvPL9j6CrCvz8#W}3Q5^S zQ8rPOMKV%QGf|XH6lD|fj=VA{n~2?VStex@Eu?HBB#vcLHW6|}BxMsJM?_LK5pqN% zWfLu=Y$CXtWl}Z~{LCwmvWXT_Hqk=LCR#|@L<=dK2;Szmq--L1n@Gwg!4{|mMx!PP zdX#0CFn+QP=G`T{CCtZ))l&SL7*%1w8Bit+8C)_W*Qg=BZyiRz%@CMzVHm-YL9Gc(?E#;X∾l0B9g!c;{5I!t?L{ENL7+FS)KE;-ue~ct7?bWgs+R%Z>apH@GaH6tux;dzAJoB-@cDF!Dh#hzCv)(OF*Z} zvFP0jAycf62d@@_i-<`&r%33X{5ooUc&b9^hkpk)!`D>^{csf6s`@rvXM=D=R~r@j zg_r9(R|t0t_Xzh2_X+n4Z`GB5ApD`O|EjL=n(%c!+Z!ssDSS&c@2UJgu26(`Tnuyy zUBU!BVG-i4o&y%@oDyNVunMzTMc{w_)+6*nGa$v6&iA3+il7_s2R2U*0$WwH27Frt zy+It&UAF5kqbiT7>{oeQS;hV5#`0RQyva z{z1AJP`p(9Q!4%`75|iqe@dZkUc$HJpHlG;<~_kbrQ)Ab@lUDvr_@6JDYcM)O3|J# z0?9w6(7i)_n*_{wcMPe~<}BS0MkC!isnfNd75> zz9o`>N}*#}CjXS-?fk%a^cqNAElg5P_T=|blOrsE-CKsYsxLdeK zxL3GOxL^3Xe*2d2ebiKgC!Youf@u#;KeFI)ww ztVaL-6mYGsJgD+^U4KkCF1%9LJRrPIc)joj;f=zZg@<(IdxiH2?-xEGd{}r`_^9wP z;p4(1!lS}xbhT$yep%1(itugWJHmH?H5Pl|Eud5A62@bmzXq+;2;_Rg8tAm201LtG zHE1znxzH{22)&d2sP{qYYoN!tM{DzBC9qXBY|k3CC-!kwnJrnPmaIV=9zc1mt~03e zh@ND-o?%qwF_rx)kE?v8&Oac$PI$fW2H}mun}xUPN!YeE7(o!(wlx?*5ZSgh7(o!( zwlx?*5ZSgh7(o!(wlx?*5TDUC*|s&%0DQ-n^*pZ#U)2-7CVXA3_lC-E3g1%A+dA_d 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 literal 0 HcmV?d00001 diff --git a/extlib/lato/OFL_1.1.txt b/extlib/lato/OFL_1.1.txt new file mode 100644 index 00000000..f1a20ac1 --- /dev/null +++ b/extlib/lato/OFL_1.1.txt @@ -0,0 +1,97 @@ +Copyright (c) , (), +with Reserved Font Name . +Copyright (c) , (), +with Reserved Font Name . +Copyright (c) , (). + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index d1b891ac..b108cc9e 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -4,25 +4,25 @@ font-family: 'Lato'; font-style: normal; font-weight: 700; - src: local('Lato Bold'), local('Lato-Bold'), url('http://themes.googleusercontent.com/static/fonts/lato/v1/wkfQbvfT_02e2IWO3yYueQ.woff') format('woff'); + src: local('Lato Bold'), local('Lato-Bold'), url('../fonts/Lato-Bold.ttf') format('truetype'); } @font-face { font-family: 'Lato'; font-style: italic; font-weight: 400; - src: local('Lato Italic'), local('Lato-Italic'), url('http://themes.googleusercontent.com/static/fonts/lato/v1/oUan5VrEkpzIazlUe5ieaA.woff') format('woff'); + src: local('Lato Italic'), local('Lato-Italic'), url('../fonts/Lato-Italic.ttf') format('truetype'); } @font-face { font-family: 'Lato'; font-style: italic; font-weight: 700; - src: local('Lato Bold Italic'), local('Lato-BoldItalic'), url('http://themes.googleusercontent.com/static/fonts/lato/v1/HkF_qI1x_noxlxhrhMQYED8E0i7KZn-EPnyo3HZu7kw.woff') format('woff'); + src: local('Lato Bold Italic'), local('Lato-BoldItalic'), url('../fonts/Lato-BoldItalic.ttf') format('truetype'); } @font-face { font-family: 'Lato'; font-style: normal; font-weight: 400; - src: local('Lato Regular'), local('Lato-Regular'), url('http://themes.googleusercontent.com/static/fonts/lato/v1/9k-RPmcnxYEPm8CNFsH2gg.woff') format('woff'); + src: local('Lato Regular'), local('Lato-Regular'), url('../fonts/Lato-Regular.woff') format('truetype'); } body { @@ -372,4 +372,4 @@ table.media_panel th { .delete_checkbox_box { margin-top: 10px; margin-left: 10px; -} \ No newline at end of file +} diff --git a/mediagoblin/static/fonts/Lato-Bold.ttf b/mediagoblin/static/fonts/Lato-Bold.ttf new file mode 120000 index 00000000..8b747690 --- /dev/null +++ b/mediagoblin/static/fonts/Lato-Bold.ttf @@ -0,0 +1 @@ +../../../extlib/lato/Lato-Bold.ttf \ No newline at end of file diff --git a/mediagoblin/static/fonts/Lato-BoldItalic.ttf b/mediagoblin/static/fonts/Lato-BoldItalic.ttf new file mode 120000 index 00000000..20886f02 --- /dev/null +++ b/mediagoblin/static/fonts/Lato-BoldItalic.ttf @@ -0,0 +1 @@ +../../../extlib/lato/Lato-BoldItalic.ttf \ No newline at end of file diff --git a/mediagoblin/static/fonts/Lato-Italic.ttf b/mediagoblin/static/fonts/Lato-Italic.ttf new file mode 120000 index 00000000..3e4ee80c --- /dev/null +++ b/mediagoblin/static/fonts/Lato-Italic.ttf @@ -0,0 +1 @@ +../../../extlib/lato/Lato-Italic.ttf \ No newline at end of file diff --git a/mediagoblin/static/fonts/Lato-Regular.ttf b/mediagoblin/static/fonts/Lato-Regular.ttf new file mode 120000 index 00000000..ff8e9d2c --- /dev/null +++ b/mediagoblin/static/fonts/Lato-Regular.ttf @@ -0,0 +1 @@ +../../../extlib/lato/Lato-Regular.ttf \ No newline at end of file From a7302773f64a41fdcefbb6e219b39dda4189278d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 10 Sep 2011 17:33:06 -0500 Subject: [PATCH 1016/2731] Adding Shawn to the contributor list. By the way, it's Shawn *Khan* :) --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 9653a332..8b202f58 100644 --- a/AUTHORS +++ b/AUTHORS @@ -29,6 +29,7 @@ Thank you! * Rasmus Larsson * Sam Kleinman * Sebastian Spaeth +* Shawn Khan * Will Kahn-Greene If you think your name should be on this list, let us know! From 611542034ab69c79be387b2655081af70a798b38 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 10 Sep 2011 17:33:41 -0500 Subject: [PATCH 1017/2731] Adding Nathan Yergler, another recent contributor, to the AUTHORS list. --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 8b202f58..c9fc5c8e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -24,6 +24,7 @@ Thank you! * Karen Rustad * Mark Holmquist * Matt Lee +* Nathan Yergler * Odin Hørthe Omdal * Osama Khalid * Rasmus Larsson From 0125e5567bfa71e47d79fa02acbe7f66c0c8bec7 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 10 Sep 2011 17:39:10 -0500 Subject: [PATCH 1018/2731] Adding MIT.txt to the 960.gs extlib/ checkout. Free software developers! You don't already have 80000 copies of these license texts in your distro, let's give you 50 more. --- extlib/960.gs/MIT.txt | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 extlib/960.gs/MIT.txt diff --git a/extlib/960.gs/MIT.txt b/extlib/960.gs/MIT.txt new file mode 100644 index 00000000..5a2aeb47 --- /dev/null +++ b/extlib/960.gs/MIT.txt @@ -0,0 +1,20 @@ +Copyright (c) + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. From 3d95afeb36fa9c5354de825801c0f7ac79bbea14 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 11 Sep 2011 16:13:27 -0500 Subject: [PATCH 1019/2731] Marking some things on the frontpage for translation. --- mediagoblin/templates/mediagoblin/root.html | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index ed4878a5..854fca51 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -21,7 +21,7 @@ {% block mediagoblin_content %} {% if request.user %} -

      Explore

      +

      {% trans %}Explore{% endtrans %}

      {% else %}

      {% trans %}Hi there, media lover! MediaGoblin is...{% endtrans %}

      @@ -35,9 +35,12 @@
    {% if allow_registration %} -

    Excited to join us?

    - Create a free account or - Set up MediaGoblin on your own server +

    {% trans %}Excited to join us?{% endtrans %}

    + {% trans register_url=request.urlgen('mediagoblin.auth.register') %} + Create a free account + or + Set up MediaGoblin on your own server + {% endtrans %} {% endif %}

@@ -47,6 +50,6 @@
{% endif %} -

Most recent media

+

{% trans %}Most recent media{% endtrans %}

{{ object_gallery(request, media_entries, pagination) }} {% endblock %} From 8c12e57b9e0db109e0fc3211ec1a8145ef3d3eb1 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 11 Sep 2011 16:20:10 -0500 Subject: [PATCH 1020/2731] Extracted, pushed, pulled, compiled translations --- .../i18n/ar/LC_MESSAGES/mediagoblin.mo | Bin 9631 -> 11549 bytes .../i18n/ar/LC_MESSAGES/mediagoblin.po | 108 ++++++++-- .../i18n/de/LC_MESSAGES/mediagoblin.mo | Bin 9020 -> 10915 bytes .../i18n/de/LC_MESSAGES/mediagoblin.po | 130 +++++++++--- .../i18n/en/LC_MESSAGES/mediagoblin.po | 107 ++++++++-- .../i18n/eo/LC_MESSAGES/mediagoblin.mo | Bin 8804 -> 10738 bytes .../i18n/eo/LC_MESSAGES/mediagoblin.po | 130 +++++++++--- .../i18n/es/LC_MESSAGES/mediagoblin.mo | Bin 9151 -> 11114 bytes .../i18n/es/LC_MESSAGES/mediagoblin.po | 192 ++++++++++++------ .../i18n/fr/LC_MESSAGES/mediagoblin.mo | Bin 9314 -> 11232 bytes .../i18n/fr/LC_MESSAGES/mediagoblin.po | 110 ++++++++-- .../i18n/ja/LC_MESSAGES/mediagoblin.mo | Bin 9266 -> 11184 bytes .../i18n/ja/LC_MESSAGES/mediagoblin.po | 106 ++++++++-- .../i18n/nl/LC_MESSAGES/mediagoblin.mo | Bin 8737 -> 10655 bytes .../i18n/nl/LC_MESSAGES/mediagoblin.po | 106 ++++++++-- .../i18n/nn_NO/LC_MESSAGES/mediagoblin.mo | Bin 8343 -> 10261 bytes .../i18n/nn_NO/LC_MESSAGES/mediagoblin.po | 106 ++++++++-- .../i18n/pt_BR/LC_MESSAGES/mediagoblin.mo | Bin 8690 -> 10608 bytes .../i18n/pt_BR/LC_MESSAGES/mediagoblin.po | 106 ++++++++-- .../i18n/ro/LC_MESSAGES/mediagoblin.mo | Bin 9008 -> 10955 bytes .../i18n/ro/LC_MESSAGES/mediagoblin.po | 118 +++++++++-- .../i18n/ru/LC_MESSAGES/mediagoblin.mo | Bin 11125 -> 13306 bytes .../i18n/ru/LC_MESSAGES/mediagoblin.po | 126 +++++++++--- .../i18n/sl/LC_MESSAGES/mediagoblin.mo | Bin 8806 -> 10724 bytes .../i18n/sl/LC_MESSAGES/mediagoblin.po | 106 ++++++++-- .../i18n/sr/LC_MESSAGES/mediagoblin.mo | Bin 8669 -> 10587 bytes .../i18n/sr/LC_MESSAGES/mediagoblin.po | 106 ++++++++-- .../i18n/sv/LC_MESSAGES/mediagoblin.mo | Bin 8930 -> 10836 bytes .../i18n/sv/LC_MESSAGES/mediagoblin.po | 126 +++++++++--- .../i18n/zh_TW/LC_MESSAGES/mediagoblin.mo | Bin 8545 -> 10463 bytes .../i18n/zh_TW/LC_MESSAGES/mediagoblin.po | 106 ++++++++-- 31 files changed, 1532 insertions(+), 357 deletions(-) diff --git a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mo index d02639a910c07269cf549e23ee58d7dafedaf26f..146a588fc1dcde1d4c6e15630c23891fbca8ea83 100644 GIT binary patch delta 3445 zcmdVZdu$X%9Ki8u0cnp~pe>dH#i7ztuwFe35Gk}^EmT?>0~C;`uw1vjZLhn>-kzmA zavH&q5MxL&H5wtr2TB4F&tOn|5})B8Ln19PDuj^uNQf9EMuL8Sch?p){HGW%clVjy zot@vz?>Doz;rTW3uk(gKt@yO^o5Zhim|P8gw%nxDMJ~5uGe$-#RgE9xEjS`esY;xL zP1uOp_#AfNOE??Ha&rmR<1Fk!zH#*#{}S^g$|O!9u~fBBDZZ+XKVqr-aSX1;O=zL? zJBNArL;CrZ^!4abN{#1!2~NN&%)ymdh(Vl8e6^Xz&D?kvi}00nhYwLQavJmT63RqI zG0Jev$8k6wB{O~;joYvScjH$408e2JLCUc(SE*ZZ0d^B#t)mgd(>MjI8ASrF!xHpR zR@#fQ(mmgqdV^J^|&q<%08ckX> zuEm-7Xq<*@k_3`96_}Vh1+^#v4xpqqo1Hid4U~YrC@I{BJMa+7%H|ZOPR)X}4am@H zC2qnEDE)p!nQQzP8hlmGeW<0u*KMNX#LizHDUz~yrO->1PMRe?^W{!V<6YY$Ih5gVZie?q#d1;c9?E7ri3?6jz6Pp(&DnzLK|^7*CBL?uR3Ye;kVd;Wz&?p3tgp1Z+krMI7bS^rDP&78hd)oy2yGYZ|Z9SdAx9j!nf3 zrE>8>T!$Sf1D-%)t8+*-R1O`j8ZD-~HX2*sX?bfyR$C~{&nwX(*KD0%Qd;hsZC2EyOUw;V zkCs%|x~Aco+R&}83BjNfv%PthM)g(0JMQ2`TNl2-1KxTqL)gi#mP?Ev30i-bG6fD>!|5IV!GE%Mfr#? zpW2Wa>_~OB?Dft@zg}hXg6(O;)@G++g>{$Zg;-YevPRwNxH=dz>^5SjUW$;cF2`;0 zCl@x5$_FI$z#|EklF4X3$|(-RVgZBDvlei?xkTUXL=e5%jD_OwFv557R}N7VR-| z^YdiPavB4PsZopADixZ!^NMVn7N;|jlbw;Vth9U}#`I`~&&ROIw412` z7B@9tQ|y5OE3^|K&0ff)QsJ=EC1sMjF?`RN?D91}-+iqz1YInebq-?x_P#gz l4)^cqJF5E*Chjh3%xJE+^#AV^Zkw<(^Y5oHkz2eg>rbo={5t>u delta 1588 zcmYM!TS!zv9LMolU31+`*Ud|s=4w_-ns<$S5Q}a~N@*9Q8&+ym4+%vDvIz>JmDP5k z(j-{Q7b7}Q7KPALQPzu)O4$YSA&inFNC^7=a-qdNpP4ylXXgK(|FNgGx57K_wqG`U zYWXJeoeWa%|K~}FF|l-?Vm1zACEDj06Nc4z2zOx-zQA%cp~e(K1?ssL48~5Z$1dbi zulYrTKl6u+3qu_LZkSkf(@#Q;=LGs?xPX2QCg2ea$99av%eV;paUQ$o1cLPertffi*RHtvPqMOF}MU9u>?<{AC-w@!c>GSQ5)WZ+%iq5h`qQS zTQL*gp)wa1!M$7>X*A?ER0Qp)3A#`_?M6-1k4x}ADgz^^l+R!}x+7;7*oDRPJ8%U) zLk~`24Z4{$8yj5YUy)vApcH#h5x++dPM~TdG-@`bk+_C_Dr$jxEWw+&9>-7_NhSZg zu>@6o*HK5}*M$Oqh#r~)(d0jm#%T2H*@u&7<}e+oD(yy16wCoCg>_hnk5Lo*PSvzwxZeL8G_*h;YQeY2X&4*n zP*umHCfbiGGJn8H^w2LLO*?Qas;ci|1diig{DzvZakb}1U}c5J*sO$z37h41 zZ3=bd6ngUVSLNsW8sa>ToFY$70UfI=ZiCI*lkh3XSCO>TnoO#*IY;h{wvM*(ZLtQE UYi-t4N=J~-?aHtoq%}DH0$p#klK=n! diff --git a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po index 112c6973..eb1c5f2d 100644 --- a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po @@ -2,15 +2,16 @@ # Copyright (C) 2011 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # +# Translators: # Majid Al-Dharrab , 2011. -# , 2011. # , 2011. +# , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-09-05 23:31-0500\n" -"PO-Revision-Date: 2011-09-06 04:31+0000\n" +"POT-Creation-Date: 2011-09-11 16:16-0500\n" +"PO-Revision-Date: 2011-09-11 21:16+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -20,43 +21,43 @@ msgstr "" "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" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "اسم المستخدم" -#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 msgid "Password" msgstr "كلمة السر" -#: mediagoblin/auth/forms.py:34 +#: mediagoblin/auth/forms.py:35 msgid "Passwords must match." msgstr "يجب أن تتطابق كلمتا السر." -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:37 msgid "Confirm password" msgstr "أكّد كلمة السر" -#: mediagoblin/auth/forms.py:38 +#: mediagoblin/auth/forms.py:39 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "اكتبها مرة أخرى هنا للتأكد من عدم وجود أخطاء إملائية." -#: mediagoblin/auth/forms.py:41 +#: mediagoblin/auth/forms.py:42 msgid "Email address" msgstr "عنوان البريد الإلكتروني" -#: mediagoblin/auth/views.py:40 +#: mediagoblin/auth/views.py:42 msgid "Sorry, registration is disabled on this instance." msgstr "عفوًا، التسجيل غير متاح هنا." -#: mediagoblin/auth/views.py:58 +#: mediagoblin/auth/views.py:60 msgid "Sorry, a user with that name already exists." msgstr "عذرًا، لقد اختار مستخدم آخر هذا الاسم." -#: mediagoblin/auth/views.py:62 +#: mediagoblin/auth/views.py:64 msgid "Sorry, that email address has already been taken." msgstr "عفوًا، هذا العنوان البريدي مستخدم." -#: mediagoblin/auth/views.py:160 +#: mediagoblin/auth/views.py:165 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -64,15 +65,20 @@ msgstr "" "تم التحقق من بريدك الإلكتروني. يمكنك الآن الولوج، وتحرير ملفك الشخصي، ونشر " "الصور!" -#: mediagoblin/auth/views.py:166 +#: mediagoblin/auth/views.py:171 msgid "The verification key or user id is incorrect" msgstr "مفتاح التحقق أو معرف المستخدم خاطئ" -#: mediagoblin/auth/views.py:187 -#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +#: mediagoblin/auth/views.py:192 msgid "Resent your verification email." msgstr "أعدنا إرسال رسالة التحقق." +#: mediagoblin/auth/views.py:228 +msgid "" +"Could not send password recovery email as your username is inactive or your " +"account's email address has not been verified." +msgstr "" + #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "العنوان" @@ -110,7 +116,7 @@ msgstr "" msgid "You are editing another user's media. Proceed with caution." msgstr "" -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:154 msgid "You are editing a user's profile. Proceed with caution." msgstr "" @@ -185,6 +191,10 @@ msgid "" "href=\"http://gnu.org/\">GNU project" msgstr "" +#: mediagoblin/templates/mediagoblin/root.html:24 +msgid "Explore" +msgstr "" + #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." msgstr "مرحبًا بكم يا محبي الوسائط! ميدياغوبلن هو..." @@ -225,6 +235,60 @@ msgid "" " software!)" msgstr "" +#: mediagoblin/templates/mediagoblin/root.html:38 +msgid "Excited to join us?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:39 +#, python-format +msgid "" +"\n" +" Create a free account\n" +" or\n" +" Set up MediaGoblin on your own server\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:53 +msgid "Most recent media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +msgid "Enter your new password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Enter your username or email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 +msgid "" +"\n" +" Your password has been changed. Try to log in now.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 +msgid "" +"\n" +" Check your inbox. We sent an email with a URL for changing your password.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to change your GNU MediaGoblin password, open the following URL in \n" +"your web browser:\n" +"\n" +"%(verification_url)s\n" +"\n" +"If you think this is an error, just ignore this email and continue being\n" +"a happy goblin!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" msgstr "فشل الولوج!" @@ -237,6 +301,14 @@ msgstr "ألا تملك حسابًا بعد؟" msgid "Create one here!" msgstr "أنشئ حسابًا هنا!" +#: mediagoblin/templates/mediagoblin/auth/login.html:48 +msgid "Forgot your password?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:51 +msgid "Change it!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "أنشئ حسابًا!" @@ -432,7 +504,7 @@ msgstr "علِّق" msgid "I am sure I want to delete this" msgstr "" -#: mediagoblin/user_pages/views.py:176 +#: mediagoblin/user_pages/views.py:175 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo index d53cff8b2b27b26579e9881bcaab4004a0631e26..bb7538c2660a006881acf2a5b63ea55a9978821d 100644 GIT binary patch delta 3683 zcmdVbZERFk8o=>0V5J>cDQ$sb5e}p1z}BfHf*XOUPzqR~BDAui5pQSC%)NBx-r?Rm zj&&vTK_tdRqmITGq91(MM5CDmHH#nEMiZl744WlE<4a;th@z9r^yltG+8VyR?QDgM*|U&K;7 zuoeG|ccX*S?rUtrZyWc|Hp+8nE7eJT3@^sDI0tXWg_y!6#8-de;ty0jjf?P=MuWeh zWaK2a<7t$E%%+zMupQ@PCrV}#I2R9MH$H|3@ED%JK7zz?;YCU<#p`gK`05TWQg{-V zVUk`X;2jvl5M`!Mpv?5y#{IWYmf-zH{bwi{`VQxz6q=w7rCn#E+|zJ1mRTOPmJ6B5 zCbV%6N{S~?QkbMS$;@t)k?%()r5-`a#Iv{?pGTSbk0>dRGumG4Z&*Z`$jd0tztKki ziJ|^Vg>>{WF2_$$GI1JZtrn4vLF`2da1UOCuVMnfLXE8*N)2N#_TV9u3>?8eJc=^m zGpMm?KKYk5y`1S2OC_)$H=qQ#57***xCQ@>l93JM^LE^W>{s*) z(|815BYkpeBrU{NeJBGQE^~1+7Y9)~_!Mu&f8n2SuuG{M@m^es$58^FMK-!>W``PV zN2wo2slT^Teh4MtlXy42j*|NLCG{mOujYc~Qa2)5R2E9gizqXFuyOw-WK8NET!P0@ zPR%K#&swECcL_J8yc(syohTX3pe%)pBvFNUo1Fg#xM0JoZ*Uc!#z%1_JM9F%hkwM! zb^XC(_!Q+6IEwq(C^S)jM;XBPxE|+lbY!gukuKFPl)yeprtilNIsb>bkWKg|N+yn> z?9$^%meom=8T`=jEK0{0UaHh(I2ZGHH9m;Xp=97HZc4_sqb!|`GJp!oQoV{9;;Skb z*Wkr$ec9bRQP#eUNqh%+_o&k-1D$z!-42wsT#o#yReaGz-GZ!&D&tM~3`#%W;Q%JC zsJ9QXyn>3uT=e1lD1n>e^|eak)s#1(1R6*BP=~M?Uq{(oM{qNKgc7KYPQ{yW7e0)V zk+0Fi2+=Mg3}J_1;o6>_ zk~8Kc@+R$AS#LDwxCzhC_H4CMV~(5M>Xkw-mfU4RT`cJB(r8Pqk@j3Y?iGFQm0TSd z|4!roY$z&9eEIa-CN)-X>bRrcT?xJ0@PHd?%he`tIXPW&LYrxg?A)d^p0883 zlq-UYby0hp^jRAg-8dPCaaHCwe^DNAS=4%a*OaCLs&ne6g3xg-M{3}%loOh?%xRy; zjEX@Yb%mVg8@1WV@x`hUuQrUy#Pq4nY?W@!*m*>@P1?&>=d?s3JD0~NW2^|eqfxr8 zrQOs!*fKQov&Ek5uv>ct(j3}`mCEJ3k}Q*~8{JpFYKiZOMz7CE7c_C)G5IERP+Mx> z_xx_XuNZ{d$-0cYez(2_EHa<++|Y50hMduD)M8l+g>hZql*_6u(SJtfZTEPbm682Z z+p^VDvxjCi_x9@EHP`m8scdc6QdreXp;~B>M>BINw0zK0ITb{oEELgkJDjMImGNH~*90^jkaT98z;lel0 zXp!BVHUV!af6N4xy$c`t-yhaZyu+RIpH`=v*C8(#S95e7yV~3tiwryZ|L(X};)|}F zKWNEp{IQ&qvZwN04HtbIS^8fGSq&Lh#;6-O{6<$=yB5rvIGE#2X)1@hHb&M}KJHr5 z)e}pe^BW{TINe&>=k>Zu>*CJVBrh(hy>f@|?K5Lxb;IH_Gj?p^bvw-4liv8X;YYXj zZZocx_Dv9&gdXzzyp=P4$vA=0`C<@g+o74uxWhna&BO~XkA=Eq{Iqeahn60h`4fAZ BN)P}5 delta 1703 zcmYM!e`wTo9LMp`&AWD0m6v zKn_7@X}0o-!qxZo4<5m{u>nINW8&C`hcS!$@G3rztqY7<-=Q}269!n{{N)XpRRi@f+mTTuNK=E0u^wN+6uyBIs7%D! zrgqqg3V18hWrk5ZF5nJ4hD|ty%G~^N`dTS0qae4Vb})*XUa|sGLj(wyD^2jeCJU|GQrm!pD~|fCG~Ta;$1QP@kNf>qQp zjLcz9;X3>TbtJ!_0=S1H!GxC<15cuM_#|>#rWX~^9^`FouYMGDly9Qu8^dLK{?Ac3 zM#E)1iQQ~VJNuq5)-u1LQXY&I7j8qP{#n!?Nfy`Om#EwQCw5|-XxHOT9~gVIE&0-;-o{jdL6FEQG5o!MvY%+kxp#KF5Hb;_yQ^eH?bY3QD-0F zkrW5u&F2oOqq$#=O_rTIWFNHVhGxp5OPlA$rhEHVJ~uq{ Zs(oPO;aK;hy8lX?)T{SQHv(4hbT diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po index 8360ee93..3aaabce0 100644 --- a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po @@ -2,19 +2,20 @@ # Copyright (C) 2011 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # -# Rafael Maguiña , 2011. +# Translators: # , 2011. -# Elrond , 2011. -# , 2011. -# Vinzenz Vietzke , 2011. # , 2011. +# Elrond , 2011. # Jan-Christoph Borchardt , 2011. +# , 2011. +# Rafael Maguiña , 2011. +# Vinzenz Vietzke , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-09-05 23:31-0500\n" -"PO-Revision-Date: 2011-09-06 04:31+0000\n" +"POT-Creation-Date: 2011-09-11 16:16-0500\n" +"PO-Revision-Date: 2011-09-11 21:16+0000\n" "Last-Translator: cwebber \n" "Language-Team: German (http://www.transifex.net/projects/p/mediagoblin/team/de/)\n" "MIME-Version: 1.0\n" @@ -24,43 +25,43 @@ msgstr "" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Benutzername" -#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 msgid "Password" msgstr "Passwort" -#: mediagoblin/auth/forms.py:34 +#: mediagoblin/auth/forms.py:35 msgid "Passwords must match." msgstr "Passwörter müssen übereinstimmen." -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:37 msgid "Confirm password" msgstr "Passwort wiederholen" -#: mediagoblin/auth/forms.py:38 +#: mediagoblin/auth/forms.py:39 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "Hier nochmal eintragen, um Tippfehler zu verhindern." -#: mediagoblin/auth/forms.py:41 +#: mediagoblin/auth/forms.py:42 msgid "Email address" msgstr "Email-Adresse" -#: mediagoblin/auth/views.py:40 +#: mediagoblin/auth/views.py:42 msgid "Sorry, registration is disabled on this instance." msgstr "Registrierung ist auf dieser Instanz leider deaktiviert." -#: mediagoblin/auth/views.py:58 +#: mediagoblin/auth/views.py:60 msgid "Sorry, a user with that name already exists." msgstr "Leider gibt es bereits einen Benutzer mit diesem Namen." -#: mediagoblin/auth/views.py:62 +#: mediagoblin/auth/views.py:64 msgid "Sorry, that email address has already been taken." msgstr "Tut und Leid, aber diese Email-Adresse wird bereits verwendet." -#: mediagoblin/auth/views.py:160 +#: mediagoblin/auth/views.py:165 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -68,15 +69,20 @@ msgstr "" "Deine Email-Adresse wurde bestätigt. Du kannst dich nun anmelden, Dein " "Profil bearbeiten und Bilder hochladen!" -#: mediagoblin/auth/views.py:166 +#: mediagoblin/auth/views.py:171 msgid "The verification key or user id is incorrect" msgstr "Der Bestätigungssschlüssel oder die Nutzernummer ist falsch." -#: mediagoblin/auth/views.py:187 -#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +#: mediagoblin/auth/views.py:192 msgid "Resent your verification email." msgstr "Bestätigungs-Email wurde erneut versandt." +#: mediagoblin/auth/views.py:228 +msgid "" +"Could not send password recovery email as your username is inactive or your " +"account's email address has not been verified." +msgstr "" + #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Titel" @@ -97,6 +103,8 @@ msgstr "Bitte gib einen Kurztitel ein" msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" +"Der Titelteil der Medienadresse. Normalerweise muss hier nichts geändert " +"werden." #: mediagoblin/edit/forms.py:42 msgid "Bio" @@ -114,7 +122,7 @@ msgstr "Diesen Kurztitel hast du bereits vergeben." msgid "You are editing another user's media. Proceed with caution." msgstr "Du bearbeitest die Medien eines Anderen. Bitte sei vorsichtig." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:154 msgid "You are editing a user's profile. Proceed with caution." msgstr "Du bearbeitest das Profil eines Anderen. Bitte sei vorsichtig." @@ -128,7 +136,7 @@ msgstr "Datei" #: mediagoblin/submit/forms.py:30 msgid "Description of this work" -msgstr "" +msgstr "Beschreibung des Werkes" #: mediagoblin/submit/views.py:47 msgid "You must provide a file." @@ -189,8 +197,12 @@ msgid "" "Powered by MediaGoblin, a GNU project" msgstr "" -"Läuft mit <a href=\"http://mediagoblin.org\">MediaGoblin</a>, " -"einem <a href=\"http://gnu.org/\">GNU-Projekt</a>" +"Läuft mit MediaGoblin, einem GNU-Projekt" + +#: mediagoblin/templates/mediagoblin/root.html:24 +msgid "Explore" +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." @@ -242,6 +254,60 @@ msgstr "" "href=\"http://mediagoblin.org/pages/join.html\">Du kannst uns dabei helfen, " "die Software zu verbessern!)" +#: mediagoblin/templates/mediagoblin/root.html:38 +msgid "Excited to join us?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:39 +#, python-format +msgid "" +"\n" +" Create a free account\n" +" or\n" +" Set up MediaGoblin on your own server\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:53 +msgid "Most recent media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +msgid "Enter your new password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Enter your username or email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 +msgid "" +"\n" +" Your password has been changed. Try to log in now.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 +msgid "" +"\n" +" Check your inbox. We sent an email with a URL for changing your password.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to change your GNU MediaGoblin password, open the following URL in \n" +"your web browser:\n" +"\n" +"%(verification_url)s\n" +"\n" +"If you think this is an error, just ignore this email and continue being\n" +"a happy goblin!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" msgstr "Anmeldevorgang fehlgeschlagen!" @@ -254,6 +320,14 @@ msgstr "Hast du noch kein Konto?" msgid "Create one here!" msgstr "Registriere dich!" +#: mediagoblin/templates/mediagoblin/auth/login.html:48 +msgid "Forgot your password?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:51 +msgid "Change it!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Neues Konto registrieren!" @@ -327,7 +401,7 @@ msgstr "%(title)s wirklich löschen?" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 msgid "Delete Permanently" -msgstr "" +msgstr "Dauerhaft löschen." #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 msgid "Media processing panel" @@ -441,11 +515,11 @@ msgstr "Atom-Feed" #: mediagoblin/templates/mediagoblin/utils/pagination.html:40 msgid "Newer" -msgstr "" +msgstr "Neuere" #: mediagoblin/templates/mediagoblin/utils/pagination.html:46 msgid "Older" -msgstr "" +msgstr "Ältere" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" @@ -453,9 +527,9 @@ msgstr "Kommentar" #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" -msgstr "" +msgstr "Ja, wirklich löschen" -#: mediagoblin/user_pages/views.py:176 +#: mediagoblin/user_pages/views.py:175 msgid "You are about to delete another user's media. Proceed with caution." msgstr "Du versuchst Medien eines anderen Nutzers zu löschen. Sei vorsichtig." diff --git a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po index 5818cd77..6ff8e8df 100644 --- a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-09-05 23:31-0500\n" +"POT-Creation-Date: 2011-09-11 16:16-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,57 +17,62 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 0.9.6\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "" -#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 msgid "Password" msgstr "" -#: mediagoblin/auth/forms.py:34 +#: mediagoblin/auth/forms.py:35 msgid "Passwords must match." msgstr "" -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:37 msgid "Confirm password" msgstr "" -#: mediagoblin/auth/forms.py:38 +#: mediagoblin/auth/forms.py:39 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "" -#: mediagoblin/auth/forms.py:41 +#: mediagoblin/auth/forms.py:42 msgid "Email address" msgstr "" -#: mediagoblin/auth/views.py:40 +#: mediagoblin/auth/views.py:42 msgid "Sorry, registration is disabled on this instance." msgstr "" -#: mediagoblin/auth/views.py:58 +#: mediagoblin/auth/views.py:60 msgid "Sorry, a user with that name already exists." msgstr "" -#: mediagoblin/auth/views.py:62 +#: mediagoblin/auth/views.py:64 msgid "Sorry, that email address has already been taken." msgstr "" -#: mediagoblin/auth/views.py:160 +#: mediagoblin/auth/views.py:165 msgid "" "Your email address has been verified. You may now login, edit your " "profile, and submit images!" msgstr "" -#: mediagoblin/auth/views.py:166 +#: mediagoblin/auth/views.py:171 msgid "The verification key or user id is incorrect" msgstr "" -#: mediagoblin/auth/views.py:187 -#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +#: mediagoblin/auth/views.py:192 msgid "Resent your verification email." msgstr "" +#: mediagoblin/auth/views.py:228 +msgid "" +"Could not send password recovery email as your username is inactive or " +"your account's email address has not been verified." +msgstr "" + #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "" @@ -104,7 +109,7 @@ msgstr "" msgid "You are editing another user's media. Proceed with caution." msgstr "" -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:154 msgid "You are editing a user's profile. Proceed with caution." msgstr "" @@ -178,6 +183,10 @@ msgid "" "href=\"http://gnu.org/\">GNU project" msgstr "" +#: mediagoblin/templates/mediagoblin/root.html:24 +msgid "Explore" +msgstr "" + #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." msgstr "" @@ -217,6 +226,64 @@ msgid "" "this software!)" msgstr "" +#: mediagoblin/templates/mediagoblin/root.html:38 +msgid "Excited to join us?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:39 +#, python-format +msgid "" +"\n" +" Create a free account\n" +" or\n" +" Set up MediaGoblin on " +"your own server\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:53 +msgid "Most recent media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +msgid "Enter your new password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Enter your username or email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 +msgid "" +"\n" +" Your password has been changed. Try to log in now.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 +msgid "" +"\n" +" Check your inbox. We sent an email with a URL for changing your " +"password.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to change your GNU MediaGoblin password, open the following URL in \n" +"your web browser:\n" +"\n" +"%(verification_url)s\n" +"\n" +"If you think this is an error, just ignore this email and continue being\n" +"a happy goblin!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" msgstr "" @@ -229,6 +296,14 @@ msgstr "" msgid "Create one here!" msgstr "" +#: mediagoblin/templates/mediagoblin/auth/login.html:48 +msgid "Forgot your password?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:51 +msgid "Change it!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "" @@ -414,7 +489,7 @@ msgstr "" msgid "I am sure I want to delete this" msgstr "" -#: mediagoblin/user_pages/views.py:176 +#: mediagoblin/user_pages/views.py:175 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo index 2502703bf74b1ccb3fe6499d4e93a653deaabae9..b260cb1639e12b3bfc7712b4040efcb7cc742a90 100644 GIT binary patch delta 4007 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 diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po index 0b01e7b5..296f1b4b 100644 --- a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po @@ -2,15 +2,16 @@ # Copyright (C) 2011 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # +# Translators: # , 2011. -# , 2011. # Fernando Inocencio , 2011. +# , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-09-05 23:31-0500\n" -"PO-Revision-Date: 2011-09-06 04:31+0000\n" +"POT-Creation-Date: 2011-09-11 16:16-0500\n" +"PO-Revision-Date: 2011-09-11 21:16+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -20,43 +21,43 @@ msgstr "" "Language: eo\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Uzantnomo" -#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 msgid "Password" msgstr "Pasvorto" -#: mediagoblin/auth/forms.py:34 +#: mediagoblin/auth/forms.py:35 msgid "Passwords must match." msgstr "Pasvortoj devas esti egalaj." -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:37 msgid "Confirm password" msgstr "Retajpu pasvorton" -#: mediagoblin/auth/forms.py:38 +#: mediagoblin/auth/forms.py:39 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "Retajpu ĝin por certigi, ke ne okazis mistajpoj." -#: mediagoblin/auth/forms.py:41 +#: mediagoblin/auth/forms.py:42 msgid "Email address" msgstr "Retpoŝtadreso" -#: mediagoblin/auth/views.py:40 +#: mediagoblin/auth/views.py:42 msgid "Sorry, registration is disabled on this instance." msgstr "Bedaŭrinde, registrado estas malaktivigita en tiu ĉi instalaĵo." -#: mediagoblin/auth/views.py:58 +#: mediagoblin/auth/views.py:60 msgid "Sorry, a user with that name already exists." msgstr "Bedaŭrinde, uzanto kun tiu nomo jam ekzistas." -#: mediagoblin/auth/views.py:62 +#: mediagoblin/auth/views.py:64 msgid "Sorry, that email address has already been taken." msgstr "Tiu retpoŝtadreso jam estas uzata." -#: mediagoblin/auth/views.py:160 +#: mediagoblin/auth/views.py:165 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -64,15 +65,20 @@ msgstr "" "Via retpoŝtadreso estas konfirmita. Vi povas nun ensaluti, redakti vian " "profilon, kaj alŝuti bildojn!" -#: mediagoblin/auth/views.py:166 +#: mediagoblin/auth/views.py:171 msgid "The verification key or user id is incorrect" msgstr "La kontrol-kodo aŭ la uzantonomo ne estas korekta" -#: mediagoblin/auth/views.py:187 -#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +#: mediagoblin/auth/views.py:192 msgid "Resent your verification email." msgstr "Resendi vian kontrol-mesaĝon." +#: mediagoblin/auth/views.py:228 +msgid "" +"Could not send password recovery email as your username is inactive or your " +"account's email address has not been verified." +msgstr "" + #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Titolo" @@ -93,6 +99,8 @@ msgstr "La distingiga adresparto ne povas esti malplena" msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" +"La parto de la dosieradreso, bazita sur la dosiertitolo. Ordinare ne necesas" +" ĝin ŝanĝi." #: mediagoblin/edit/forms.py:42 msgid "Bio" @@ -110,7 +118,7 @@ msgstr "Ĉi tiu uzanto jam havas dosieron kun tiu distingiga adresparto." msgid "You are editing another user's media. Proceed with caution." msgstr "Vi priredaktas dosieron de alia uzanto. Agu singardeme." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:154 msgid "You are editing a user's profile. Proceed with caution." msgstr "Vi redaktas profilon de alia uzanto. Agu singardeme." @@ -124,7 +132,7 @@ msgstr "Dosiero" #: mediagoblin/submit/forms.py:30 msgid "Description of this work" -msgstr "" +msgstr "Priskribo de ĉi tiu verko" #: mediagoblin/submit/views.py:47 msgid "You must provide a file." @@ -140,7 +148,7 @@ msgstr "Hura! Alŝutitas!" #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" -msgstr "" +msgstr "Oj!" #: mediagoblin/templates/mediagoblin/404.html:24 msgid "There doesn't seem to be a page at this address. Sorry!" @@ -188,6 +196,10 @@ msgstr "" "Funkcias per <a href=\"http://mediagoblin.org\">MediaGoblin</a>," " unu el la <a href=\"http://gnu.org/\">projektoj de GNU</a>" +#: mediagoblin/templates/mediagoblin/root.html:24 +msgid "Explore" +msgstr "" + #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." msgstr "Saluton, artemulo! MediaGoblin estas…" @@ -216,6 +228,7 @@ msgid "" "Aiming to make the world a better place through decentralization and " "(eventually, coming soon!) federation!" msgstr "" +"Celanta plibonigi la mondon per sencentreco kaj (iam, baldaŭ!) federateco!" #: mediagoblin/templates/mediagoblin/root.html:33 msgid "" @@ -231,6 +244,63 @@ msgid "" "href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this" " software!)" msgstr "" +"Vivanta per homoj kiel vi. (<a " +"href=\"http://mediagoblin.org/pages/join.html\">Vi povas helpi al ni " +"plibonigi la programon!</a>)" + +#: mediagoblin/templates/mediagoblin/root.html:38 +msgid "Excited to join us?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:39 +#, python-format +msgid "" +"\n" +" Create a free account\n" +" or\n" +" Set up MediaGoblin on your own server\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:53 +msgid "Most recent media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +msgid "Enter your new password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Enter your username or email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 +msgid "" +"\n" +" Your password has been changed. Try to log in now.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 +msgid "" +"\n" +" Check your inbox. We sent an email with a URL for changing your password.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to change your GNU MediaGoblin password, open the following URL in \n" +"your web browser:\n" +"\n" +"%(verification_url)s\n" +"\n" +"If you think this is an error, just ignore this email and continue being\n" +"a happy goblin!" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" @@ -244,6 +314,14 @@ msgstr "Ĉu ankoraŭ sen konto?" msgid "Create one here!" msgstr "Kreu ĝin ĉi tie!" +#: mediagoblin/templates/mediagoblin/auth/login.html:48 +msgid "Forgot your password?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:51 +msgid "Change it!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Kreu konton!" @@ -317,7 +395,7 @@ msgstr "Ĉu efektive forigi %(title)s?" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 msgid "Delete Permanently" -msgstr "" +msgstr "Forigi senrevene" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 msgid "Media processing panel" @@ -370,6 +448,8 @@ msgid "" "Someone has registered an account with this username, but it still has to be" " activated." msgstr "" +"Iu registris konton kun tiu ĉi uzantonomo, sed ĝi devas ankoraŭ esti " +"aktivigita." #: mediagoblin/templates/mediagoblin/user_pages/user.html:68 #, python-format @@ -396,7 +476,7 @@ msgstr "Redakti profilon" #: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "This user hasn't filled in their profile (yet)." -msgstr "" +msgstr "Ĉi tiu uzanto ne jam aldonis informojn pri si." #: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format @@ -428,11 +508,11 @@ msgstr "Atom-a informfluo" #: mediagoblin/templates/mediagoblin/utils/pagination.html:40 msgid "Newer" -msgstr "" +msgstr "Plinovaj" #: mediagoblin/templates/mediagoblin/utils/pagination.html:46 msgid "Older" -msgstr "" +msgstr "Malplinovaj" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" @@ -440,9 +520,9 @@ msgstr "Komento" #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" -msgstr "" +msgstr "Mi estas certa, ke mi volas forigi ĉi tion" -#: mediagoblin/user_pages/views.py:176 +#: mediagoblin/user_pages/views.py:175 msgid "You are about to delete another user's media. Proceed with caution." msgstr "Vi estas forigonta dosieron de alia uzanto. Estu singardema." diff --git a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo index a8fc04eaeeeb5ebd70637798ce974f1db7d2c54b..7c7dea0dbf072bd6764c0701da7e5c7960b54ff9 100644 GIT binary patch delta 4264 zcmc(hdu$Zf6^HKv4z_te493Rh?m7@d+%-nvv^;DcHa00(k%2fxB4NCHy*u&l%rY}; z$0_NmX8>`Z9wB zTzCqug5Rx7xCBL!x8O4PF%(DUvC15{4A#MVD9Xg)BKR0=gHOOm;H&To?8ZndT)9xG zHE<`Kz`i=hAOYWkQP{;QV(=J@!2n96--Z(DsmlFxP*U)E<@!5N6#6q<0_CI%EQK}=6$Cir2J#ZHk17C;R;6>O6{|-fwUFdl~ zJOZg#^$L{di}0g}Qon`QIDd`FhvCb}Ctb4uS-7S4!%mneFp!0xf~cn6hhKqzg%YXX zST^)5ln4F=#b76uDP6M@9)mqlB0B?V0QF*puRu}oHTW=m2Z|y?O=X7*M;VCW9F)i& zg_7&1p*;8!lJ$`(e^}vph=}SEw59*w zWI(~H-Bi{NI0#R`Z^0{YfmUi0`~a?l^;mrzc0=i!UqErFor9!c5K8V16eXU7;?T1Y zQPoA*0^fwIr2nro5KmWdRg~BOMdIy{TWT*9X>BM)>Or;wH4a6AuR-aWGw@Nk@b+>M zpM;;|{AIWqegGxV1}a=qumK*yzS_t@+T?M#9$tjI;U8fy+(6jUHaRHWG7iPzZ$feO z8OT?i<$w?B4Tz}fD!dOazC)>f(1zRLBouppfrSkWVy$ei@BkF4Pr%2 zJOdI5H}3@7+pVq}mUq4BlY-VaF*ao)9R#_p?d{|Cs2$Imq-~|#;f(FXT`$$%ZzV=; zC)Mwc2X3tEpb2z7rw_=azS1P^I(ov*d)gg$v~RpI<9)&vRf~Q3>`9x%XnCsb47(4- z^^oBKC(xFoP1dqAdfX1ugmrjuzaDWtok&|w3ftv}a)>qVddYYxuqi3OB&Mfs>9pnR zVPl-~qb3>GhrEg9I&gKyO=;WFjyqm{e)2-q?pZZrz-T*&hS%pd9&+=UBr^i>Dmk;L zXA&+^O;nu3L@C}p!8%r!$9-0|5`jHtG+vi(R+4guA6g5SEtNG(Zn2C#V&hj>SN(3G z*CDCp`HmT%HmGj6K5c}BOB$)(hZ1&Rk`mK{E)nJZZm#7ru4mL3ZnL*^iD$W$id zj!T*(Z!90aSJQf=wszl$EWs4p8I>cZ{Zgtu&-L2$gLyyDcFMu;^4)R?SSX)xoxpbT z2F+Nu)*`LB+=MO{WpuKp_QS}M11^t~8L6LA$xdFIH!!!lqeFLeZtds{`rwy?GAfZXjZ=D^xo?2Vwaal+hgv3-!Z~y{m%#45OS7h z@s444!(ovwkE@n=_o=;s-DQ|w&RE*FQ+ZngD(wieP2{y>jgh6K8(yucAJVGdzA^Q; zaN{X_b{miCcQY1IlCo0y@lNqem1G<{>H5*~MmhCbG`^0<;F{DM@zKL0bpK^V)bkW_(L3!*?C5F>p(-H3mt{=pgKFT35}Dyh$2AtZn$h ztm5ggr(yT@2~nOIS$E7%Qa5D-Nh_}QWvvux!2ITon=AXM*u`4$w1e*^yx7nj84KTT z*gUH^87^*otnoiKST$%8rL6klcN%Z6-o+lB%3J>ArN;J1#1F5o?pbiquq7L3jQTD4 z*;>_?x4dLH+H|hQII^vKtiHba{@KJBHnp^bKWN@Kn~n_MZ62D7sv>0g`8Bbj{YYSW zC7ClQ^Fol%l;oqj@?cp)!^F!FT8}69kwevhtI8fVvbcj z?}VLtO?XtBdO4B#^3TCa@lT5yrC5{U`})=JY*gPy0*j~p@N%@iS^^Lk!;hjm9EdHL zx)+UYof?kBPFD4>G5KMnr6F=CT;0;UT;92?>|4C`_}>&rAB927#yJUzyt}DxR#g2P D?p7Yh delta 2311 zcmYk*Yitx%6u|M@($W{SSjwxV?d^+}QlLN!+CmHuL3tFR6b$lkx_etD?#{sMLnTU; z@Bxv8$CYRhNk{-qOg~^X`avMrgox1?BLr>4L=1cY#25vFiHZNS-9(!0{^s7fbMHB4 z&fZ#oep%ly#aTxbe;fIq%>SKC8U6qFMYdAo8J@+Nco{n|Yot93|kj$SoD1WZZ`va1S=&&nT74E9BlRE^4_D*P~>x7iEJ3D3KmR*{C1u z@MDw;{D@NWe{eY#7Y!e<8Rs$Hhcoa?)c7Z^!(uj_iM?Z}zhwFj6Hns%C>dWvjWTeX^k6$4$7MK#Qju!vzXjV-n(rveD>=#6?-@#chO+Kd3H6t*Jy)XC zQoM)kq2^QX06S1hb^$x^F3S1^yinOVj?&e;@CDqBlE80Bo2WY|6?%Y@Xb}SmWE{#l z4Snf}Hk61~As^Ml7q3a}LV36QQJU;DO6f15l=e1Cg-UtY#cHI=YCkT(WB4)-p;Wk& z&7?;xzKMMUTu4_hpd;k>e*z`Kb0`OVkCKThOMO%UGNtOV1{a|O*n{$GcpW9vw^0H< znjW7;>7hZS&(&8*B7N#I7t+=DaW`%yidwvm(=n%fxH(&~kZ~`{0ZH75ucq%`MOmN6 zkAD%)!zH*ArK!&&?W8WE1bP+o*CgK13^W_7X4&2e zI=6YQZf;>Pa9~1f#)M~0(BnpQ*yy^3M9c)96E#y~_0}ovv%i-5c2n7s#x75r=}{-O ztlI>G{f>@AOs^AY8ZYk0>`>X2s?@a;xV~EKdp&LtH9D5iA>WG!PRtCR zaqRl?CR0KHa3ZJAtE}P~1(jy*!p+V@EIR=+di9*maiq z-4WMo(oQ$)B94x^y$P2kMt7}UDe>@(=Ol?P><4Wml{A6dw8-hL1b!7tEc^l z!xm9To+I^$q+r5zE;0=H(S*k%A$M@Vt9tZYZDQKaFRY!`>FPu*Zo)EQVvgQ!f|&2I zDHp!pmYN8=VV`j9`Pw>ruqwyCTlGYSV}GbxG%u10oV!s!>4qKc>ux^?oUk)PwKTVA z6Vbh?G})Tm`3g8A?AtZf6?S`dONMVxSMSO0FfWgK5~ZYbRtPxS$AeMkr{9JRj}Vrbz3r7(>A4Z1dHv#DH}3lj=ejj+Rhrg z!n*Z`4>wfg>bM_vlCEPb8jSWNxt-eS4N?_Oy;b8$qQk4~dkq&x)KjEQQ+0h;x, 2011. -# , 2011. # , 2011. +# Javier Di Mauro , 2011. +# , 2011. # Mario Rodriguez , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-09-05 23:31-0500\n" -"PO-Revision-Date: 2011-09-06 04:31+0000\n" +"POT-Creation-Date: 2011-09-11 16:16-0500\n" +"PO-Revision-Date: 2011-09-11 21:16+0000\n" "Last-Translator: cwebber \n" "Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mediagoblin/team/es/)\n" "MIME-Version: 1.0\n" @@ -21,60 +23,65 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Nombre de Usuario" -#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 msgid "Password" msgstr "Contraseña" -#: mediagoblin/auth/forms.py:34 +#: mediagoblin/auth/forms.py:35 msgid "Passwords must match." msgstr "Las contraseñas deben coincidir." -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:37 msgid "Confirm password" -msgstr "Confirme su contraseña" +msgstr "Confirma tu contraseña" -#: mediagoblin/auth/forms.py:38 +#: mediagoblin/auth/forms.py:39 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "" "Escriba de nuevo aquí para asegurarse de que no hay faltas de ortografía." -#: mediagoblin/auth/forms.py:41 +#: mediagoblin/auth/forms.py:42 msgid "Email address" msgstr "Dirección de correo electrónico" -#: mediagoblin/auth/views.py:40 +#: mediagoblin/auth/views.py:42 msgid "Sorry, registration is disabled on this instance." msgstr "Lo sentimos, la registración está deshabilitado en este momento." -#: mediagoblin/auth/views.py:58 +#: mediagoblin/auth/views.py:60 msgid "Sorry, a user with that name already exists." msgstr "Lo sentimos, ya existe un usuario con ese nombre." -#: mediagoblin/auth/views.py:62 +#: mediagoblin/auth/views.py:64 msgid "Sorry, that email address has already been taken." -msgstr "Lo sentimos, su dirección de correo electrónico ya ha sido tomada." +msgstr "Lo sentimos, esa dirección de correo electrónico ya ha sido tomada." -#: mediagoblin/auth/views.py:160 +#: mediagoblin/auth/views.py:165 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "" -"Su dirección de correo electrónico ha sido verificada. ¡Ahora puede " -"ingresar, editar su perfil, y enviar imágenes!" +"Tu dirección de correo electrónico ha sido verificada. ¡Ahora puedes " +"ingresar, editar tu perfil, y enviar imágenes!" -#: mediagoblin/auth/views.py:166 +#: mediagoblin/auth/views.py:171 msgid "The verification key or user id is incorrect" msgstr "" "La clave de verificación o la identificación de usuario son incorrectas" -#: mediagoblin/auth/views.py:187 -#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +#: mediagoblin/auth/views.py:192 msgid "Resent your verification email." -msgstr "Reenvíe su correo electrónico de verificación." +msgstr "Se reenvió tu correo electrónico de verificación." + +#: mediagoblin/auth/views.py:228 +msgid "" +"Could not send password recovery email as your username is inactive or your " +"account's email address has not been verified." +msgstr "" #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" @@ -96,6 +103,8 @@ msgstr "La ficha no puede estar vacía" msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" +"La parte del título de la URL de este contenido. Normalmente no necesitas " +"cambiar esto." #: mediagoblin/edit/forms.py:42 msgid "Bio" @@ -111,16 +120,15 @@ msgstr "Una entrada con esa ficha ya existe para este usuario." #: mediagoblin/edit/views.py:84 msgid "You are editing another user's media. Proceed with caution." -msgstr "" -"Usted está editando el contenido de otro usuario. Proceder con precaución." +msgstr "Estás editando el contenido de otro usuario. Proceder con precaución." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:154 msgid "You are editing a user's profile. Proceed with caution." -msgstr "Usted está editando un perfil de usuario. Proceder con precaución." +msgstr "Estás editando un perfil de usuario. Proceder con precaución." #: mediagoblin/process_media/errors.py:44 msgid "Invalid file given for media type." -msgstr "Archivo inálido para el formato seleccionado." +msgstr "Archivo inválido para el formato seleccionado." #: mediagoblin/submit/forms.py:25 msgid "File" @@ -128,11 +136,11 @@ msgstr "Archivo" #: mediagoblin/submit/forms.py:30 msgid "Description of this work" -msgstr "" +msgstr "Descripción de esta obra" #: mediagoblin/submit/views.py:47 msgid "You must provide a file." -msgstr "Usted debe proporcionar un archivo." +msgstr "Debes proporcionar un archivo." #: mediagoblin/submit/views.py:50 msgid "The file doesn't seem to be an image!" @@ -155,12 +163,12 @@ msgid "" "If you're sure the address is correct, maybe the page you're looking for has" " been moved or deleted." msgstr "" -"Si estas seguro que la dirección es correcta, puede ser que la pagina halla " +"Si estás seguro que la dirección es correcta, puede ser que la pagina haya " "sido movida o borrada." #: mediagoblin/templates/mediagoblin/404.html:32 msgid "Image of 404 goblin stressing out" -msgstr "404 el goblin esta estresado" +msgstr "Imagen de 404 goblin estresándose" #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" @@ -176,7 +184,7 @@ msgstr "Enviar contenido" #: mediagoblin/templates/mediagoblin/base.html:63 msgid "verify your email!" -msgstr "Verifique su correo electrónico" +msgstr "Verifica tu correo electrónico!" #: mediagoblin/templates/mediagoblin/base.html:73 #: mediagoblin/templates/mediagoblin/auth/login.html:26 @@ -190,20 +198,24 @@ msgid "" "href=\"http://gnu.org/\">GNU project" msgstr "" +#: mediagoblin/templates/mediagoblin/root.html:24 +msgid "Explore" +msgstr "" + #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." -msgstr "Hola, amante de los medios de comunicación! MediaGoblin es ..." +msgstr "Hola, amante de los contenidos! MediaGoblin es ..." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "The perfect place for your media!" -msgstr "El lugar ideal para tus cosas!" +msgstr "El lugar ideal para tus contenidos!" #: mediagoblin/templates/mediagoblin/root.html:30 msgid "" "A place for people to collaborate and show off original and derived " "creations!" msgstr "" -"Un lugar para colaborar y exhibir tus creaciones orignales y derivadas" +"Un lugar para colaborar y exhibir tus creaciones orignales y derivadas!" #: mediagoblin/templates/mediagoblin/root.html:31 msgid "" @@ -219,7 +231,7 @@ msgid "" "(eventually, coming soon!) federation!" msgstr "" "Queriendo hacer del mundo un mejor lugar a través de la descentralización y " -"(eventualmente!) la federalización!" +"(eventualmente, muy pronto!) la federalización!" #: mediagoblin/templates/mediagoblin/root.html:33 msgid "" @@ -239,9 +251,63 @@ msgstr "" "href=\"http://mediagoblin.org/pages/join.html\"> Vos podés ayudarnos a " "mejorar este programa)" +#: mediagoblin/templates/mediagoblin/root.html:38 +msgid "Excited to join us?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:39 +#, python-format +msgid "" +"\n" +" Create a free account\n" +" or\n" +" Set up MediaGoblin on your own server\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:53 +msgid "Most recent media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +msgid "Enter your new password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Enter your username or email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 +msgid "" +"\n" +" Your password has been changed. Try to log in now.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 +msgid "" +"\n" +" Check your inbox. We sent an email with a URL for changing your password.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to change your GNU MediaGoblin password, open the following URL in \n" +"your web browser:\n" +"\n" +"%(verification_url)s\n" +"\n" +"If you think this is an error, just ignore this email and continue being\n" +"a happy goblin!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" -msgstr "Fallo el inicio de sesión!" +msgstr "Falló el inicio de sesión!" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Don't have an account yet?" @@ -251,6 +317,14 @@ msgstr "¿No tienes una cuenta?" msgid "Create one here!" msgstr "¡Crea una aquí!" +#: mediagoblin/templates/mediagoblin/auth/login.html:48 +msgid "Forgot your password?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:51 +msgid "Change it!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "¡Crea una cuenta!" @@ -269,8 +343,11 @@ msgid "" "\n" "%(verification_url)s" msgstr "" -"Hola %(username)s , para activar su cuenta GNU MediaGoblin, abra la " -"siguiente URL en su navegador: %(verification_url)s " +"Hola %(username)s,\n" +"\n" +"para activar tu cuenta de GNU MediaGoblin, abre la siguiente URL en tu navegador:\n" +"\n" +"%(verification_url)s " #: mediagoblin/templates/mediagoblin/edit/edit.html:29 #, python-format @@ -285,7 +362,7 @@ msgstr "Cancelar" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" -msgstr "Salvar cambios" +msgstr "Guardar cambios" #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format @@ -298,7 +375,7 @@ msgstr "Contenido etiquetado con:" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" -msgstr "Envíe su contenido" +msgstr "Envía tu contenido" #: mediagoblin/templates/mediagoblin/submit/start.html:29 msgid "Submit" @@ -312,16 +389,16 @@ msgstr "Contenido de %(username)s's" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 #: mediagoblin/templates/mediagoblin/user_pages/user.html:32 msgid "Sorry, no such user found." -msgstr "Lo sentimos, no se ha encontrado ese usuario." +msgstr "Lo sentimos, no se encontró ese usuario." #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" -msgstr "Realmente desea eliminar %(title)s ?" +msgstr "Realmente deseas eliminar %(title)s ?" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 msgid "Delete Permanently" -msgstr "" +msgstr "Eliminar permanentemente" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 msgid "Media processing panel" @@ -359,8 +436,8 @@ msgstr "Casi terminas! Solo falta activar la cuenta." msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "" -"Un e-mail debería llegar en unos momentos con las instrucciones para " -"hacerlo." +"En unos momentos te debería llegar un correo electrónico con las " +"instrucciones para hacerlo." #: mediagoblin/templates/mediagoblin/user_pages/user.html:51 msgid "In case it doesn't:" @@ -384,13 +461,13 @@ msgid "" "If you are that person but you've lost your verification email, you can log in and resend it." msgstr "" -"Si usted es esa persona, pero ha perdido su correo electrónico de " -"verificación, puede acceder y reenviarlo." +"Si tú eres esa persona, pero has perdido tu correo electrónico de " +"verificación, puedes acceder y reenviarlo." #: mediagoblin/templates/mediagoblin/user_pages/user.html:78 #, python-format msgid "%(username)s's profile" -msgstr "Perfil de %(username)s's" +msgstr "Perfil de %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/user.html:85 msgid "Here's a spot to tell others about yourself." @@ -408,15 +485,14 @@ msgstr "Este usuario (todavia) no ha completado su perfil." #: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format msgid "View all of %(username)s's media" -msgstr "Ver todo el contenido de %(username)s's " +msgstr "Ver todo el contenido de %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/user.html:135 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" -"Aquí es donde tú contenido estará, pero parece que no haz agregado contenido" -" todavia." +"Aquí es donde tú contenido estará, pero parece que aún no has agregado nada." #: mediagoblin/templates/mediagoblin/user_pages/user.html:141 msgid "Add media" @@ -424,7 +500,7 @@ msgstr "Añadir contenido" #: mediagoblin/templates/mediagoblin/user_pages/user.html:147 msgid "There doesn't seem to be any media here yet..." -msgstr "Parece que no hay ningún contenido aquí todavia..." +msgstr "Parece que aún no hay ningún contenido aquí..." #: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 msgid "feed icon" @@ -436,11 +512,11 @@ msgstr "Atom feed" #: mediagoblin/templates/mediagoblin/utils/pagination.html:40 msgid "Newer" -msgstr "" +msgstr "Recientes" #: mediagoblin/templates/mediagoblin/utils/pagination.html:46 msgid "Older" -msgstr "" +msgstr "Antiguas" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" @@ -448,12 +524,12 @@ msgstr "Comentario" #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" -msgstr "" +msgstr "Estoy seguro de que quiero borrar esto" -#: mediagoblin/user_pages/views.py:176 +#: mediagoblin/user_pages/views.py:175 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" -"Usted está a punto de eliminar un medio de otro usuario. Proceder con " -"cautela." +"Estás a punto de eliminar un contenido de otro usuario. Proceder con " +"precaución." diff --git a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo index 93e218e8e69223377f713dc0b1f4e4841548fbdc..baab45ab69e9ee233683dfd8c2e7795a341ba082 100644 GIT binary patch delta 3437 zcmdVZdu&rx9Ki82WUv(kw($n>P#p|dI*T$B9vg_jghAv{=awMc-QKmAb@!IrTgrG? z6MV!-jAV$37>p4E5@RA06BXx!U_#^%4T&f*D#m|&L=!L}1fqU_ZTG;)pI~g-e(v-9 ze&=`2?}vu(o3h`Q4}MWrmC*vw? z#8TXk?f4qjVi^~gV*}2?F65h4r}&qcXHb$ji^NiO0j2n=CHxUfJ&2?5Vcdo`%5y(r zIsQ_(|7YQRM!lSb>*N5*fxQ zgRug~;CPhEgm5H2j@7sqcjCu*7V8O8h2usjbvrJ^PU5SL9GG|xr(zwWNWhI4L?30Q zFQClyK;iydC`)j%aQz#U3jK~{C?~~Gj`H02!g)=>IhbX6)I1JkCii0;TTn`T0;Pm? zj3$+7LdkqHGAXqOr4k3Q313B-`4yCsSCMTP7Z*&UOym&C`)`(0e`2WjxgZ0b#!CDG zr4pA=)@lOfSdL+o06Xwrd>uo09yN{{t<*XUV+}ruQh|4{9*?6;_$q2F9z*?QO{Xz^ zVyO@=#ziOrp1^td0WQPKC>2>mJs-gqWWTC+QQkj+Zxku@C0^is7Y|2p3+0opIgQ*> z!zj;e3}!jlz(E9=ggS<4JcSatev(q_aXT)>uTcVOcBXXAOiW@3Wg;&l4WJGo`&Au9 zS-KwFhF_s9!P?vMdnDUZI7pz(;8Bzr?m;H2juftcgtGQ$a2j4j_N$sWCBIZNP?l;1 z5<{6N6M76KvAqRfLK*iUHc9`##{nBwl{0!R2Jsba#S2d$-nsy{NwYhNq9Lgr$ zhcfVfoQ{Xl#n15>TzDtR;b|m>x`gDYCbF|7(fKHwumx8WUzr@-jmPjV{0ZmcMADRs zL{QdzH%dwO6+D8HP!CGL6DR?HL+O$-vXic*&`SurEup6juM^Ia%wz8eiZh-+~O*)(GdM(}Oa7??#%;w+R39-T$~<;I6x zPyyZdnQv$_VWd(Ef^o};THc0Ky0ydhH^l8&Ji*To>bPgMEeKXtc~;C$`8<;L5;Ic4 zy2YMl_?9+wn`eP(x@pIsUt`n_7~b{zPO@5GCs=QYxbG+D*3@L|c01HzMQtPIwkB*R zCy0g5zt$(N>3HCv?X4<4h~Erct-Ko;Kr#6C-y1r6k45xL!1rn^9@qL3zC4i-Ee`?p&p_A6R z=|q$#e90=>Kd5J!F0<+^BuR+eeA7(UF*Z$4vU(9-mx-$0o8!(eL)yFS0lA#t7-dIROYnFWk%^#J=c;6*R#}8 zJHa2TM!Z}ay@jb)OW7*bn%sFswoTOS=pJ5LRJ5kDsyD`rRCOT0u(`5Z`2m)#id?hU zy#rQjH%XcOxW!5(5^hG8N!E?wyUv$ZwFCkWw8;=WVms~fPv}%`sXfp2s`aLH%GY+x zA@BU%{1z~%yy-f=?W8Sg#;^f{WlbhKb$(M$?Jf=cTvWEw<#kp@_D^ohc3&8_YG_F~ zti!c)!?j%v6AqhlZ7KO1{HOM8 delta 1579 zcmYM!T}YEr9LMo9o4KYy+BC_1wrCPLQ(65psw;Fl*%aR`)dz0+&<@=XM4{7hKMrS~AARZHF=UQ7vgtr~ai3&Zg6Uyo2hghkA!GfZE^&w&D!dVky7Yjk{5& z`XZjfUR1z8k#7Dgk6M#LnN-;z5~C@yt&T8IWDTgu+mSuYIeR^d>gg>E;xnY$W){_g z->41q`Ed&dkt&<>Sb-qe+(Wu$VyKqRq8`IJd+z0*i_TCM>TKoVT0Q^k8JuLH5eIM**JC}==&|ZX zWjc%saDoq=kr+1MXDq`?b_-z_ZpL9$1zw?A`Y@Rc;H>ssdqDfM-!XpF&mY11f<;HuLG!dKetSAU0ti z?#CGJ#R_)u<7Mo@aa0M*SI5`4qUCheBt#qB+0oDLch1_*<43HblnjTJ^vzqzIU@;CD>oQz&ij#6+j;m{=aJLa!~7bD_0r#y KV09IQU4H>Zzo|?B diff --git a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po index 51b60aec..032399d6 100644 --- a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po @@ -2,17 +2,18 @@ # Copyright (C) 2011 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # +# Translators: # , 2011. -# , 2011. # , 2011. -# Valentin Villenave , 2011. +# , 2011. # , 2011. +# Valentin Villenave , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-09-05 23:31-0500\n" -"PO-Revision-Date: 2011-09-06 04:31+0000\n" +"POT-Creation-Date: 2011-09-11 16:16-0500\n" +"PO-Revision-Date: 2011-09-11 21:16+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -22,45 +23,45 @@ msgstr "" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Nom d'utilisateur" -#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 msgid "Password" msgstr "Mot de passe" -#: mediagoblin/auth/forms.py:34 +#: mediagoblin/auth/forms.py:35 msgid "Passwords must match." msgstr "Les mots de passe doivent correspondre." -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:37 msgid "Confirm password" msgstr "Confirmer le mot de passe" -#: mediagoblin/auth/forms.py:38 +#: mediagoblin/auth/forms.py:39 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "" "Tapez-le à nouveau ici pour vous assurer qu'il n'ya pas de fautes " "d'orthographe." -#: mediagoblin/auth/forms.py:41 +#: mediagoblin/auth/forms.py:42 msgid "Email address" msgstr "Adresse e-mail" -#: mediagoblin/auth/views.py:40 +#: mediagoblin/auth/views.py:42 msgid "Sorry, registration is disabled on this instance." msgstr "L'inscription n'est pas activée sur ce serveur, désolé." -#: mediagoblin/auth/views.py:58 +#: mediagoblin/auth/views.py:60 msgid "Sorry, a user with that name already exists." msgstr "Un utilisateur existe déjà avec ce nom, désolé." -#: mediagoblin/auth/views.py:62 +#: mediagoblin/auth/views.py:64 msgid "Sorry, that email address has already been taken." msgstr "Désolé, cette adresse courriel a déjà été prise." -#: mediagoblin/auth/views.py:160 +#: mediagoblin/auth/views.py:165 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -68,15 +69,20 @@ msgstr "" "Votre adresse e-mail a bien été vérifiée. Vous pouvez maintenant vous " "identifier, modifier votre profil, et soumettre des images !" -#: mediagoblin/auth/views.py:166 +#: mediagoblin/auth/views.py:171 msgid "The verification key or user id is incorrect" msgstr "La clé de vérification ou le nom d'utilisateur est incorrect." -#: mediagoblin/auth/views.py:187 -#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +#: mediagoblin/auth/views.py:192 msgid "Resent your verification email." msgstr "E-mail de vérification renvoyé." +#: mediagoblin/auth/views.py:228 +msgid "" +"Could not send password recovery email as your username is inactive or your " +"account's email address has not been verified." +msgstr "" + #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Titre" @@ -116,7 +122,7 @@ msgstr "" "Vous vous apprêtez à modifier le média d'un autre utilisateur. Veuillez " "prendre garde." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:154 msgid "You are editing a user's profile. Proceed with caution." msgstr "" "Vous vous apprêtez à modifier le profil d'un utilisateur. Veuillez prendre " @@ -196,6 +202,10 @@ msgstr "" "Propulsé par MediaGoblin , un GNU de projet" +#: mediagoblin/templates/mediagoblin/root.html:24 +msgid "Explore" +msgstr "" + #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." msgstr "Salut à tous, amateur de médias! MediaGoblin est ..." @@ -246,6 +256,60 @@ msgstr "" "href=\"http://mediagoblin.org/pages/join.html\">Vous pouvez nous aider à " "améliorer ce logiciel!)" +#: mediagoblin/templates/mediagoblin/root.html:38 +msgid "Excited to join us?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:39 +#, python-format +msgid "" +"\n" +" Create a free account\n" +" or\n" +" Set up MediaGoblin on your own server\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:53 +msgid "Most recent media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +msgid "Enter your new password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Enter your username or email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 +msgid "" +"\n" +" Your password has been changed. Try to log in now.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 +msgid "" +"\n" +" Check your inbox. We sent an email with a URL for changing your password.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to change your GNU MediaGoblin password, open the following URL in \n" +"your web browser:\n" +"\n" +"%(verification_url)s\n" +"\n" +"If you think this is an error, just ignore this email and continue being\n" +"a happy goblin!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" msgstr "Connexion a échoué!" @@ -258,6 +322,14 @@ msgstr "Pas encore de compte?" msgid "Create one here!" msgstr "Créez-en un ici!" +#: mediagoblin/templates/mediagoblin/auth/login.html:48 +msgid "Forgot your password?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:51 +msgid "Change it!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Créer un compte!" @@ -461,7 +533,7 @@ msgstr "Commentaire" msgid "I am sure I want to delete this" msgstr "" -#: mediagoblin/user_pages/views.py:176 +#: mediagoblin/user_pages/views.py:175 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" "Vous êtes sur le point de supprimer des médias d'un autre utilisateur. " diff --git a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo index 176bcb4d69825b154cc9751bd8e0539dd4957d47..efd3e3f49f9c7b7498811bd83e0cd1db133c7954 100644 GIT binary patch delta 3446 zcmdVaYitx%6u|LYq|z=3wB^xK9+yICDYdl_YC=mZmPc(0Dz;RKN{8*VJ9Im<&dySb zloe1k(U{;$OfVr5QG5l(Dv1FJN+j|1!I+2wfspzM6HNF*P(u8lo$Ui7@rz6@vs5waUmv<-?;jcPl@?GN)o4#SgIzV6u)X2AH-4*;COr(H=~6z z?q|%#UsB&+Pu-6jtyC`03vdcn;TT+llQD?XiLajI;tn3{!908`HQ;lUik!wAyn>R* zXl5CSIXDq>Q7Ti0wqgN# zC@XyhWu<#l-ycHRf-h3f&!SZ5SIk1WNr!Bdak;7c@{|iP&i1G(E@UN3F@$STN_+yP zgf+}2m1#lA{0U@HY8Of+_F@aZjIQ)h8(LpTIZMl==ZLbKlG0W{gn2WY=I3 z_vw^J61p?a#VRhkP$oKxop=%}aels152A%q;v*>IayXe%!fDu!CCIj`T}T6{eJBfi z4<+G`a5H|3vIX_ilwv9szn=@qyffuiloxj40(=K$;JK8)rJhfk?w^?kl(W%_vQ?Xr z80sZtSJe9`iJU-5_-mwy>PMt9adn9c$$Tj%OZK)2pT%u>3Ny9eHW!dbD!{?mh$Sdp zvk&=I>9mR@T7=Ryb$m#`c9aE1Q4-pT?2g)lMbiI=xR68m6LN6XMU+Ex4Q1enS^j-q z${8pL7h*LoMClqArNn1YD!690pOAyH=g*@g)Q7T#$FYU@>MJgSSisS5!kyTPXHeRw zdXB$mHp;}YlrN^9AHchKeh{S+=TRz=MpWsVX;_6JltaBArEAV&TyrtH*biKa(l*;r zGChQ~cnqb4*HI2-)?EKzc0EcZ8nF%^MGId;Sx}(F?;0EBEFH!KUc^k?I*9TTEWCJ#E<9>@uvd?zX%T%W7WTsM{S^2SbM4L2Un}2*v7l+_tjh z!UjtDh=d;aN{5W7UT>PV|Ek$mrkmWJ3EFdX*y+%gt!<~fv~w%I)xPz`%N7=($FHB!qq1uf5PlQnH{SWzrm%d<$> zaZR<{3iH9P5igm>Kw)ata*j%=CU;(uW7FnzCAxB-O1zM{ZFOPsK$yAF(m;Tjla)99 zIaaJ{zG1%y<}B4tgi3oMlg$c;oo?AF**YR5E@T$34Fv9Mmnj%x*`4x9^k{OoUDt6- z^@do~(^iK~>i)O>DKIF0(6K$sj+vB=X#)m38;SI2|6I=O%M4sh%UbF1I-4U$D0ylV zz4;}5Q^(96l~GZlD=HUNR3_?kwA{?Ekef)(rTAc1+_WkFg$^8w75`Ja-r?amF9zyZNvH delta 1601 zcmYM!TS${(9LMozbLv`_b9pF_Yh@)^ZY@nRI?~Bbn3@o1MF)%QCP+xIl}bq#5-$>+ z3r1apVZ9dx9f&T1BI_n7q`Jroii)Br5`w?AWc4IVKMH&Ds00zDicK?C+J2!pcfVC8PtRNu^6wTGVlVG@)4}YKzd?>Mx0Im2+qL! z7{qT_hXEd1hRuHRuall&U_PEjo%j_7@ja?GQZo`MO~=LbL#Pe5V-=pmWjKV&NQnG5 zVHK+QPNA+O&c`K}F*k53{iaOvuZ<67CaU@Y>I+%qdlwd=s=5bj@IES)nOvyWwV*Q9 zimK{P)#X%#?(`&T<6EezevaB;1Ql^AldAe$ z~3Uz=us<^!T_%~rAM({2w^z(hFXX(zCZT9rEESL2*xYXV>_JYd} z_*bWT!{x!5(K*qG)tnRbhAV>MS?cuWe6cc0vaQm>47)V9)ou0XPqbGQL|kdZoqfX{ d7l%9I!<|>`&xJ)U`)x4AZ3X-#cJZVh?_Y3gvDE+o diff --git a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po index 7f0c4716..79be3177 100644 --- a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po @@ -2,13 +2,14 @@ # Copyright (C) 2011 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # +# Translators: # , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-09-05 23:31-0500\n" -"PO-Revision-Date: 2011-09-06 04:31+0000\n" +"POT-Creation-Date: 2011-09-11 16:16-0500\n" +"PO-Revision-Date: 2011-09-11 21:16+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -18,57 +19,62 @@ msgstr "" "Language: ja\n" "Plural-Forms: nplurals=1; plural=0\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "ユーザネーム" -#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 msgid "Password" msgstr "パスワード" -#: mediagoblin/auth/forms.py:34 +#: mediagoblin/auth/forms.py:35 msgid "Passwords must match." msgstr "パスワードが一致している必要があります。" -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:37 msgid "Confirm password" msgstr "パスワードを確認" -#: mediagoblin/auth/forms.py:38 +#: mediagoblin/auth/forms.py:39 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "" -#: mediagoblin/auth/forms.py:41 +#: mediagoblin/auth/forms.py:42 msgid "Email address" msgstr "メールアドレス" -#: mediagoblin/auth/views.py:40 +#: mediagoblin/auth/views.py:42 msgid "Sorry, registration is disabled on this instance." msgstr "申し訳ありませんが、このインスタンスで登録は無効になっています。" -#: mediagoblin/auth/views.py:58 +#: mediagoblin/auth/views.py:60 msgid "Sorry, a user with that name already exists." msgstr "申し訳ありませんが、その名前を持つユーザーがすでに存在しています。" -#: mediagoblin/auth/views.py:62 +#: mediagoblin/auth/views.py:64 msgid "Sorry, that email address has already been taken." msgstr "" -#: mediagoblin/auth/views.py:160 +#: mediagoblin/auth/views.py:165 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "メアドが確認されています。これで、ログインしてプロファイルを編集し、画像を提出することができます!" -#: mediagoblin/auth/views.py:166 +#: mediagoblin/auth/views.py:171 msgid "The verification key or user id is incorrect" msgstr "検証キーまたはユーザーIDが間違っています" -#: mediagoblin/auth/views.py:187 -#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +#: mediagoblin/auth/views.py:192 msgid "Resent your verification email." msgstr "検証メールを再送しました。" +#: mediagoblin/auth/views.py:228 +msgid "" +"Could not send password recovery email as your username is inactive or your " +"account's email address has not been verified." +msgstr "" + #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "タイトル" @@ -106,7 +112,7 @@ msgstr "そのスラグを持つエントリは、このユーザーは既に存 msgid "You are editing another user's media. Proceed with caution." msgstr "あなたは、他のユーザーのメディアを編集しています。ご注意ください。" -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:154 msgid "You are editing a user's profile. Proceed with caution." msgstr "あなたは、他のユーザーのプロファイルを編集しています。ご注意ください。" @@ -180,6 +186,10 @@ msgid "" "href=\"http://gnu.org/\">GNU project" msgstr "" +#: mediagoblin/templates/mediagoblin/root.html:24 +msgid "Explore" +msgstr "" + #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." msgstr "" @@ -219,6 +229,60 @@ msgid "" " software!)" msgstr "" +#: mediagoblin/templates/mediagoblin/root.html:38 +msgid "Excited to join us?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:39 +#, python-format +msgid "" +"\n" +" Create a free account\n" +" or\n" +" Set up MediaGoblin on your own server\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:53 +msgid "Most recent media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +msgid "Enter your new password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Enter your username or email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 +msgid "" +"\n" +" Your password has been changed. Try to log in now.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 +msgid "" +"\n" +" Check your inbox. We sent an email with a URL for changing your password.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to change your GNU MediaGoblin password, open the following URL in \n" +"your web browser:\n" +"\n" +"%(verification_url)s\n" +"\n" +"If you think this is an error, just ignore this email and continue being\n" +"a happy goblin!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" msgstr "" @@ -231,6 +295,14 @@ msgstr "まだアカウントを持っていませんか?" msgid "Create one here!" msgstr "ここで作成!" +#: mediagoblin/templates/mediagoblin/auth/login.html:48 +msgid "Forgot your password?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:51 +msgid "Change it!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "アカウントを作成!" @@ -423,7 +495,7 @@ msgstr "" msgid "I am sure I want to delete this" msgstr "" -#: mediagoblin/user_pages/views.py:176 +#: mediagoblin/user_pages/views.py:175 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.mo index e91b7235cf47ca69bbc9187c849330592c56fe73..261e5e95faa014a5f24598a48e98dfd27b963c2e 100644 GIT binary patch delta 3445 zcmdVaU2GIp6u|MzM{T7|Ljg%Fp~J77&qJf z&7HY(&%Ni|+gBFvZ%bb&9{IfD)5%{sf6GTmYv{A<7Nz=W_F_B6^OdT{PjCX}6)07U z<+u`;VoDIa3Y3q8u8V`T-?fy7jP0D@;e+u$;de@!OJKU z8O10gu>?!83?(x)I2LzfH9m*E_%WWv27*-K#4$?UhWBF+@zoYCLU<0RV?Cotz%5vT z9?DAhqO5eE|NI@45}fewpGV2i4_JiK$b({(er0~U*0&DRlt<0yLRPXEqqq?z#m7-n zSkGvZne`|$--awoJ&TfweYhT9Ls|LnC@HUEwn1$2O`K7o>f!`OgFP!@azHRhF)f2rwA zmQO5IgH5;yCBWl2ACF=){)&>3Mdb4#+=%Q~^#RKJ$MLOUN}a)e+Pmr8jw#Y7r{;5% z_eYbSyRb6N#Y!$VpbT^fyYO9{i_@mC^RXT4@C}rH=TT10CG5m+{rjugu^a%k$+r_p zj@pJh@o|(AsHwSTxu%H3Tjbi*oac|P5%9)-`;~Wx&JCk4Nv;_&!Cj*M0`}RLhXeq}66F*s$t7l-i!aUD%Ij(P78Qv1!)1%@@Z#w4XsaHIvvV zd{r+$5@rYV@b{ZuUmyqhH->_89e-XW96V5`(#Jwn+rWK{*D!(1^?M6v) z0vSU+f>AtxlH$VKa~a%?vuMAJlCcvg6Zjrwv#S}L8se)wF7Ct!QFimwD78O|GQiI$ zD=Ft_@GnAD`reIF%O;$Ittb=fMJdI8lvDG*|9m*JkWF2O5~mx}nv0jXSc^wdj!iL9 z^RN*cumvUX9%PYfFXrQiC@VUKO?U>IadMSXZPsMWJkB` zQn^7w4?NOQBcVG?)6TtWhHLa%w`aWe9368a+OoCnq;l`~9m#7PUMK-fZF$o(SMsN< zb&|0#Jv^CJcxX`93^}Z-$Dbr2vg=Ku;N>!GP+T`-4FkIGZE2WJk#I%&@F!tHX+ti3aY)V~%U8 zrB;j|sz$u*GzJpWpq8>#sx@=x71=gnr#o|D;$xYo3LjllSv3%5cA`2EVB~D(&Dy#nrV%c5tOY}sx+OF%k)p~0( z;b|*kGxgll+%7Oke#o&s%TAi4jbQ@@m5s-HbZ%cx&zvi3?Q07h7*@2xVF(H&+bFwp zGp8os(N{itMt(sssDpFo1?Og3O0+cQ1f>x#`6WGgGH!S<{)JOG6f6CwBY$&F;m{#W z|0kz#=nw|3IfdcztFJwUeG{hN)KmE7grENTQ`l%GJofP4JcxZ?O&l@o|91rY&Xx85 M#qsMqHF;hBAEspVX8-^I delta 1586 zcmYM!Ye>^k7{~FmHJwh=wY;QxnM1pP*lcMRgON#w(N()pw20CbRxi4eRI3P*j3kx> zp+;atfxU21K}BHoqB4T&Mc56Zgdno$0tR8{b9aFItv#|pUuouVT0OsHzI`9Xs z#1Twqf3uY1l`^pb58_Fjf-aXag&4s7SdW|V2^L{_iZSCgk3I||8JQEPgP*q6dr%d; zY0W=HCG;K>*x!7&9vIOCv72;c7IH|FhnZM{Td)dSum@F%Lef-*vrq?Kfh?JwsEi}H z8joQqzD89pIgPb)2E`2IDpUros28-OPTGljQ7@KYAF2W`Q6>M4b?8ZtZ?GO`5}&{_ z>_;zt!v^&5(rFlWQ-5W8mWd#Cp)!7hUK~R8hI3rJr0F=H*oWGn39GOhYjF@&5g+vr zVHK+R&Y`ZPhkv~`V{V|HYs{ej0S1RM;$7W``hbmkH)9H_tM}nDyowb#ih8bsi&a+# zQC&SBHGc(Z6LSsKBX?1ieU5z83?gSWUn2~3GCOtDi84`lS%#WlXvOPr67e3?)pT0( zmr)hEhb!?hQe{)b%XHV}cmPAFrhbL$5eJ*JVx*XXy1Ey2r{m}hy)c04>MGQggir?x zqcUni&TdYjGP;P|mbrzx(gADznH7Js97a{c71f-y%@wLQArl@tBwdgEBIbz5UJRL~LaPdyyVO&hYs zJnqHLB!7i>dSFhVJQ~jSCiyG9{uv6|vwy}?bC=np;k?4AEq~Zq-MDM_#vPkup@Ixs Stj_zz7WKHN#&-Eioqqwv%cp(- diff --git a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po index b8feb0d7..b9e0896d 100644 --- a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po @@ -2,13 +2,14 @@ # Copyright (C) 2011 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # +# Translators: # , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-09-05 23:31-0500\n" -"PO-Revision-Date: 2011-09-06 04:31+0000\n" +"POT-Creation-Date: 2011-09-11 16:16-0500\n" +"PO-Revision-Date: 2011-09-11 21:16+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -18,43 +19,43 @@ msgstr "" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Gebruikersnaam" -#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 msgid "Password" msgstr "Wachtwoord" -#: mediagoblin/auth/forms.py:34 +#: mediagoblin/auth/forms.py:35 msgid "Passwords must match." msgstr "Wachtwoorden moeten overeenkomen." -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:37 msgid "Confirm password" msgstr "Bevestig wachtwoord" -#: mediagoblin/auth/forms.py:38 +#: mediagoblin/auth/forms.py:39 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "" -#: mediagoblin/auth/forms.py:41 +#: mediagoblin/auth/forms.py:42 msgid "Email address" msgstr "E-mail adres" -#: mediagoblin/auth/views.py:40 +#: mediagoblin/auth/views.py:42 msgid "Sorry, registration is disabled on this instance." msgstr "Sorry, registratie is uitgeschakeld op deze instantie." -#: mediagoblin/auth/views.py:58 +#: mediagoblin/auth/views.py:60 msgid "Sorry, a user with that name already exists." msgstr "Sorry, er bestaat al een gebruiker met die naam." -#: mediagoblin/auth/views.py:62 +#: mediagoblin/auth/views.py:64 msgid "Sorry, that email address has already been taken." msgstr "Sorry, dat e-mailadres is al ingenomen." -#: mediagoblin/auth/views.py:160 +#: mediagoblin/auth/views.py:165 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -62,15 +63,20 @@ msgstr "" "Uw e-mailadres is geverifieerd. U kunt nu inloggen, uw profiel bewerken, en " "afbeeldingen toevoegen!" -#: mediagoblin/auth/views.py:166 +#: mediagoblin/auth/views.py:171 msgid "The verification key or user id is incorrect" msgstr "De verificatie sleutel of gebruikers-ID is onjuist" -#: mediagoblin/auth/views.py:187 -#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +#: mediagoblin/auth/views.py:192 msgid "Resent your verification email." msgstr "Verificatie e-mail opnieuw opgestuurd." +#: mediagoblin/auth/views.py:228 +msgid "" +"Could not send password recovery email as your username is inactive or your " +"account's email address has not been verified." +msgstr "" + #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Titel" @@ -110,7 +116,7 @@ msgstr "" "U bent de media van een andere gebruiker aan het aanpassen. Ga voorzichtig " "te werk." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:154 msgid "You are editing a user's profile. Proceed with caution." msgstr "" "U bent een gebruikersprofiel aan het aanpassen. Ga voorzichtig te werk." @@ -185,6 +191,10 @@ msgid "" "href=\"http://gnu.org/\">GNU project" msgstr "" +#: mediagoblin/templates/mediagoblin/root.html:24 +msgid "Explore" +msgstr "" + #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." msgstr "" @@ -224,6 +234,60 @@ msgid "" " software!)" msgstr "" +#: mediagoblin/templates/mediagoblin/root.html:38 +msgid "Excited to join us?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:39 +#, python-format +msgid "" +"\n" +" Create a free account\n" +" or\n" +" Set up MediaGoblin on your own server\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:53 +msgid "Most recent media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +msgid "Enter your new password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Enter your username or email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 +msgid "" +"\n" +" Your password has been changed. Try to log in now.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 +msgid "" +"\n" +" Check your inbox. We sent an email with a URL for changing your password.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to change your GNU MediaGoblin password, open the following URL in \n" +"your web browser:\n" +"\n" +"%(verification_url)s\n" +"\n" +"If you think this is an error, just ignore this email and continue being\n" +"a happy goblin!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" msgstr "" @@ -236,6 +300,14 @@ msgstr "Heeft u nog geen account?" msgid "Create one here!" msgstr "Maak er hier een!" +#: mediagoblin/templates/mediagoblin/auth/login.html:48 +msgid "Forgot your password?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:51 +msgid "Change it!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Maak een account aan!" @@ -429,7 +501,7 @@ msgstr "Commentaar" msgid "I am sure I want to delete this" msgstr "" -#: mediagoblin/user_pages/views.py:176 +#: mediagoblin/user_pages/views.py:175 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mo index 1837c8da3d380f877149d7fb6f6fcf5b2714415b..9e4cf80f274601cbdb928d93a31093c73cd15677 100644 GIT binary patch delta 3437 zcmdVZU2GIp6u|LYptM~;=oc*?mfI?{B+WL}P!MQqtw14#5Nxdy1g6{R?$F(tb#|7e z2w4+F)WjH535iBtjPc_^Ax)Z~hzQXrAu1XnLBWvpMSalp1^JBsvpa3U$Rijx?fzzF z@7#0Gx%cdE*|$D@p=i=R#iy75x%{_Jl)LfIuE|P`aJw5jF`lPX6Ml&^F*jeSI-HB^ zupJBVP3*&WumKBsxCYyB5e^`KY4tVV67vU?MVv)qsiuHZ{HYau5lgMd8TbV5L&c)l$wVRV?XiLRxUz#4lA*VStQ_AtU?bZ z)BPx!9`JuZgt7%+_|Jbvsn8!-h;ow)MJVIS{rfuKMVMxL)G{t4lSeUv8&OJp0;Pma z%qErTLRtCKNK)!Glu8`HE_@p$^Q$N&uVJ>RUqg+#rPN>cbOGrT zO9inNTTlY*!DaXzn5A(Rpx$42}XrL@yHu{3}xK}l>L z%DmOM6C3>Jhy3U1!(2#7zCy|1G)jiUNLAH!lt6{|X3szc-pBnCl&;x?tW|A8$!rhu zih2v>{f|)=@(oIxpFxVK&LI^|t3SEmz^Ww`+0)*JF86(S7BAoe9OC53;XBWlhu3i} zx;h*17*Ygv-uE&}Vx^VYuBbqEMb)7!U?onK{@=ufl+;2Fu1caDn!PBQyyD+~;Cm1y zqal=xkD_eZ8SKYqdR8iU7-hciksQ=8%DfXPpH!{@8;P&VxR5sKL|Nfp)OY~z$Ino@ zV;Ci)UwubV7Je0_3-TB&-P3@?Qkzh^CXEl`Nvy#eC}*jf!D(ryr?_awmr)MgNtDBM z#ebed{pC=#pvHETQy)WV-xRjui?|q1;X^p7Ivc17={V(K9ACm5yi!g5rBv5=paOdA zv)s_3sF6rCRz*ys$8@(OlHD=O+Y+(DktqLOm5#V(Z)4T`8rKY436CL3H@YxU)zs>m zhG%L+_qry8LQc~5me(0gH%;%jV>fB7Zxd`ZM8xyrOY7=VR-YA&nLU;fcDkdM9dz7q zU7Hc=v+Qu2lk%LZrpHWAC*yjp3|f^Lq#axLJ4shNDO)E@cf0A{vJ@2{zI<9EW~eVa z)Uvys9YNh?@`CMY!`5cZu%bF;c@fg;+|aIj9ao1Uh8-q$_N6$*N;z&%Fq7D5DW8fzm7s;HNWigG_ zYq73@()?f2D{MA3JKi=^V*%Ao&&Pr=ai&IU#g35WnLU!zHiwLoiDsU~qmFB;l~$B5 zc8z$MWsDZ4S*_%#)N0nwD{^dloY>&hf}ETU^J_+9EKJk}0!*7JyP2I})w<4GHhXl! zTJ6LsvllVhsc6(m$u`NpG5x^Bf|`wi!0KL^f+3dOC*OolWVYIM9k*6*OC~&Rg>BZI z{WW_83@RUTY|pZjCN*Q)fWfxL9-Hu61~wossjCIkJNzQ`Y6>*VpU% zhNbll18v1xZXT$Yn|SeG>9KaWZ8zM3)*FwN{zsqRoz@%gy!3z4dgGlJxT*ERC6gxv zTE}}YIxbb2ERuBh7c)-m`SViD`?@vuHeB6Eg?mWj}RT`v2E`tILo5TleM9 Hes%KSEj{x3 delta 1574 zcmYM!OGs2v9LMqh=&0jp%`}x$rp?VXTv%#mSt4aYfn_hJlIXFBMx%m~S`^h7z0(pI zM0&2=xDcudY*Eo;74%vJm83zGtH7d&41~TvyU;K*pL5Q=bI$+#&;L%>`tI8JP{`Y5 zyteYm6_BAwI)8v<$OKSdF^xB&K2;#;^mq zHEzFX@U}6&f|%wTzhF5SqMwf%FLV2~IE{W3b8$ar<9Q5Y7tX{!oPf`9Iu4*0f8r(_ z#Q^KuI>IYqU?(2Ob}UA}-zsrMO~{VyA}a7s_j(U1gZJF= zSEvnr!Zg;mAMOpK8lWF!J2D3e((-UB7GX11<5BEEWg@~hwZke@z#EZE)`Hq`9Jk$*c2rH+G#ffOYsJ3$AjqLFse2(CjCok09Vj2KrIl%YP^Z7Z~&E&0`k8D zt5L;w6?G&%eBJVx^`ioBo9 zR*k3(Y(uhaJ*c9*i!JyT=U^R+s74OrA&hs@sHc(6Dti8-I72tMUP49Mi=2ktL1M9| zND^!S73eoqM#fM_nn`q;FM#ToxXwpqrV5EEZp&yW)s1)rAEPo+O%xobMN!Xl3^mai zR0i5mDZhf{_!bpdCaXH=U?J9`iZ_PZ$X?e&n5F0cI1N?l1uVjQsMHOis@jv!e*mt* zVr)g#KrfcyM^y1<6Qycp4XOr?p~g=ke;M`^9ejx@$`K6e%tmRbs{I_yB3z4$@hobg zM@U`TFFb%*4ng5DRHjZ~((7BElGxy%p7`P)^sd~qZ+CKT_Eb+YcjB-o84A{C_{u7s z`4vkl$`egt$5*z{DO;dUNBDO#keim0h~$M6xAWel^3%jf{, 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-09-05 23:31-0500\n" -"PO-Revision-Date: 2011-09-06 04:31+0000\n" +"POT-Creation-Date: 2011-09-11 16:16-0500\n" +"PO-Revision-Date: 2011-09-11 21:16+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -18,43 +19,43 @@ msgstr "" "Language: nn_NO\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Brukarnamn" -#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 msgid "Password" msgstr "Passord" -#: mediagoblin/auth/forms.py:34 +#: mediagoblin/auth/forms.py:35 msgid "Passwords must match." msgstr "Passorda må vera like." -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:37 msgid "Confirm password" msgstr "Gjenta passord" -#: mediagoblin/auth/forms.py:38 +#: mediagoblin/auth/forms.py:39 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "" -#: mediagoblin/auth/forms.py:41 +#: mediagoblin/auth/forms.py:42 msgid "Email address" msgstr "E-postadresse" -#: mediagoblin/auth/views.py:40 +#: mediagoblin/auth/views.py:42 msgid "Sorry, registration is disabled on this instance." msgstr "Registrering er slege av. Orsak." -#: mediagoblin/auth/views.py:58 +#: mediagoblin/auth/views.py:60 msgid "Sorry, a user with that name already exists." msgstr "Ein konto med dette brukarnamnet finst allereide." -#: mediagoblin/auth/views.py:62 +#: mediagoblin/auth/views.py:64 msgid "Sorry, that email address has already been taken." msgstr "Den epostadressa er allereide teken." -#: mediagoblin/auth/views.py:160 +#: mediagoblin/auth/views.py:165 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -62,15 +63,20 @@ msgstr "" "E-postadressa di, og dimed kontoen din er stadfesta. Du kan no logga inn, " "endra profilen din og lasta opp filer." -#: mediagoblin/auth/views.py:166 +#: mediagoblin/auth/views.py:171 msgid "The verification key or user id is incorrect" msgstr "Stadfestingsnykelen eller brukar-ID-en din er feil." -#: mediagoblin/auth/views.py:187 -#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +#: mediagoblin/auth/views.py:192 msgid "Resent your verification email." msgstr "Send ein ny stadfestingsepost." +#: mediagoblin/auth/views.py:228 +msgid "" +"Could not send password recovery email as your username is inactive or your " +"account's email address has not been verified." +msgstr "" + #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Tittel" @@ -108,7 +114,7 @@ msgstr "Eit innlegg med denne adressetittelen finst allereie." msgid "You are editing another user's media. Proceed with caution." msgstr "Ver forsiktig, du redigerer ein annan konto sitt innlegg." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:154 msgid "You are editing a user's profile. Proceed with caution." msgstr "Ver forsiktig, du redigerer ein annan konto sin profil." @@ -183,6 +189,10 @@ msgid "" "href=\"http://gnu.org/\">GNU project" msgstr "" +#: mediagoblin/templates/mediagoblin/root.html:24 +msgid "Explore" +msgstr "" + #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." msgstr "Hei der mediaentusiast, MediaGoblin..." @@ -229,6 +239,60 @@ msgstr "" "href=\"http://mediagoblin.org/pages/join.html\">Du kan hjelpa med å forbetra" " MediaGoblin)" +#: mediagoblin/templates/mediagoblin/root.html:38 +msgid "Excited to join us?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:39 +#, python-format +msgid "" +"\n" +" Create a free account\n" +" or\n" +" Set up MediaGoblin on your own server\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:53 +msgid "Most recent media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +msgid "Enter your new password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Enter your username or email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 +msgid "" +"\n" +" Your password has been changed. Try to log in now.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 +msgid "" +"\n" +" Check your inbox. We sent an email with a URL for changing your password.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to change your GNU MediaGoblin password, open the following URL in \n" +"your web browser:\n" +"\n" +"%(verification_url)s\n" +"\n" +"If you think this is an error, just ignore this email and continue being\n" +"a happy goblin!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" msgstr "Innlogging feila" @@ -241,6 +305,14 @@ msgstr "Har du ingen konto?" msgid "Create one here!" msgstr "Lag ein!" +#: mediagoblin/templates/mediagoblin/auth/login.html:48 +msgid "Forgot your password?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:51 +msgid "Change it!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Lag ein konto." @@ -435,7 +507,7 @@ msgstr "Innspel" msgid "I am sure I want to delete this" msgstr "" -#: mediagoblin/user_pages/views.py:176 +#: mediagoblin/user_pages/views.py:175 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo index 6c08c67a23c2997a50b6e132ce28a0b017cf1c8d..686989fc96014ea603f11f44937a49a9fdaae375 100644 GIT binary patch delta 3442 zcmdVZTWl0n7{KvUEw)|mZE2yPo>mI2X|^dsiEU}Y3atcCu(eteV7fc)4&BZyv$HI% zCHsJ2Ad$qZc)|aJKl^~<)6H)lzcqJCYy2~Kmr^4%cVat6a+GSs&#(w5v0M`fyEfWdx)=|=4L7n4&oeqJJaD4l!~0g0=$Yc zk;#mbjRiOhXQNcckJIrPtil&?Cw`1)v56oRSUgRsdvQ7T6JKrNCV=O#6dM^u0&c-F z^iVQ=2_@4*ng5TWEWxLl=U<^z=trE1(wGGKDE($<+SM7CV1ngQ_1s7%4`T>BQA&IQ zrG$-)CY9+xnfW#(DfK)`B@ST+zK)XluP7z2V74{boH2%y$Xh7yAI+!!#84mbKnD5( z%keZyC9a~Z)f~#P8f#Dj4B}Eef_}V&8fO$L)rK`#jeAfka2%U(7$xEBsBzLP>Mv`$ zfb@x_{Md{uPy+16di)Su@ES@*R#4AP*oo{{^*+k`CvYT7sV_y^r|8^{!<0`>O+ICj zgw~@>&`NN#j+<9d2Ko+raRh5|(_Ez%;Q?HNpQH4X)tskY(%5W%0i|QG~Lb7SXZCrZ4OyIp)fzMOov>vds$g|g=_X$QI9S$H(VJl zYixE+!!xy^yIm6k0VigA4b?{Dgy9``tdY?A7QseCggh@&S6v;qdM$sS8MKTZrz>pP ze#h;pZZ!hEmfh3p#6731@p04Bv4~zPomx_zv}5ajC+2D=ZtJM&Za3YVrlNermrrxZ z4D_bET6UMS!>>C`Ua&oF*xKwftgwz-UWl~XH>}a!j;jM9!|ow=`lSfPiaT!5pGs`B zlut?M(Z6)ai0UrWw9~JeLBDQu`wO+_=&;kHEnC}8JpKOA@T73+fwwPCPR_?{bN}EMZ_qWaXSU@%5`B)GJPSr@Q+!3%mGblN2b;u|dZQ@xZ?6{^{ zWrex0YQ#%TW3(_$Y86|hN;7v}k!=%n`i7?DWo2zBuNaL{8Ljg97&cXQGd)1dy7rqE zdvw4m?L;WE7cyC?aM+2`-kRD znV*weQ=@BY>uPF~tp!>di)v^LMGES&5@ToLmPg`WIDg}@5`Q}Ex99wgAHT$Za{k7T zpKrqXJ5soK;`uvYRB~I--_J!C{`vE_!rd0LwmX0G2qwQT{{8=V{E~UT)kFR{NB`mo K4xKM4&iMn46!X9U delta 1590 zcmYM!Ye-XZ7{~EvHrq7QwM@Hc9*0pux-GRL1F=9M>8d6KcA?V5MN||e#fT!p3aNF0 zs3`DFg>M>UK?V6PDk2QJph3~)O+}dm7Fpk49%#7p`CraC|L6bwANO_j;F9?3p!baN zS<5$%@23>?{(tVIn&r^Fi(!0*%h5a5EDh_h4V!QtKES1DKC^PDMcsE0$KWw+#!lqc zxc#8PpZ(?%z*PUg3CqDC{e0AT#O+t%Wcu|u6}Mpq9>rWdgVV7a$KxZMg0IkvL)d`B zn8o_Gg7D@rupSTKah!$e>1G93iua({-`yLAH9$YWc4Q6`q~+lxoPk@h0^6|*m5BnjsU0pr1-u%WvYn_M$FUI) z;~eZqWiBm~xhRby8gdP42S-sa=tM<&0rjG8oPjq`8F+z8`A=Mm!K~2*ns7e-4lKc5 zbnqM2W004Iu_ZwMwbOG9RN_U{jt9`e52)JkO&CpS7A~P5LM_mY6?h42@D(Z}A@aWt zD^SIE9(5#LTn0U6J*dF1Ws`qJ(wjY6)q|)9s>pX6)}pGq2j}7!EXP6)RQEL^P+*g3`JOps_K=f$akR@Zbw!9 z31ky?#T~zedhQ|WNc-LSw{Cyf^^a@nw0|3p+c+Ak>LP5%6QdL6=hsM)7UE2-LM_mW zD#mtf#5n2*pQG;c<(rjZ7^AouwSlv!j9x^&=Q?`z|9^*us`@@E10RtrS{lD1s_H^q zgfX0tS5Z~{1|19#rK&oL3gigtNN!>!-a{=of(~YJ(R>8Q*U(r%LseakTA%|fuopEy zf;?;0L>I$mRPps8^=bo{^!gX4Bvz$QNxV-V@K(3Rwj_%)CV3L|PIYoa=4DSZ7+B`> zN6MYKr3*`=iI!Z)ADQPw%IG9Ja~FD&tEQHwBs%jZCqnuCzN(!&cDL@?o+!>ZeX3x8 Svfdf;B!Yq2$wQ&fWB&q6daOJE diff --git a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po index 190cab68..02054003 100644 --- a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po @@ -2,13 +2,14 @@ # Copyright (C) 2011 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # +# Translators: # , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-09-05 23:31-0500\n" -"PO-Revision-Date: 2011-09-06 04:31+0000\n" +"POT-Creation-Date: 2011-09-11 16:16-0500\n" +"PO-Revision-Date: 2011-09-11 21:16+0000\n" "Last-Translator: cwebber \n" "Language-Team: Portuguese (Brazilian) (http://www.transifex.net/projects/p/mediagoblin/team/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -18,43 +19,43 @@ msgstr "" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Nome de Usuário" -#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 msgid "Password" msgstr "Senha" -#: mediagoblin/auth/forms.py:34 +#: mediagoblin/auth/forms.py:35 msgid "Passwords must match." msgstr "Senhas devem ser iguais." -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:37 msgid "Confirm password" msgstr "Confirmar senha" -#: mediagoblin/auth/forms.py:38 +#: mediagoblin/auth/forms.py:39 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "" -#: mediagoblin/auth/forms.py:41 +#: mediagoblin/auth/forms.py:42 msgid "Email address" msgstr "Endereço de email" -#: mediagoblin/auth/views.py:40 +#: mediagoblin/auth/views.py:42 msgid "Sorry, registration is disabled on this instance." msgstr "Desculpa, o registro está desativado neste momento." -#: mediagoblin/auth/views.py:58 +#: mediagoblin/auth/views.py:60 msgid "Sorry, a user with that name already exists." msgstr "Desculpe, um usuário com este nome já existe." -#: mediagoblin/auth/views.py:62 +#: mediagoblin/auth/views.py:64 msgid "Sorry, that email address has already been taken." msgstr "" -#: mediagoblin/auth/views.py:160 +#: mediagoblin/auth/views.py:165 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -62,15 +63,20 @@ msgstr "" "O seu endereço de e-mail foi verificado. Você pode agora fazer login, editar" " seu perfil, e enviar imagens!" -#: mediagoblin/auth/views.py:166 +#: mediagoblin/auth/views.py:171 msgid "The verification key or user id is incorrect" msgstr "A chave de verificação ou nome usuário estão incorretos." -#: mediagoblin/auth/views.py:187 -#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +#: mediagoblin/auth/views.py:192 msgid "Resent your verification email." msgstr "O email de verificação foi reenviado." +#: mediagoblin/auth/views.py:228 +msgid "" +"Could not send password recovery email as your username is inactive or your " +"account's email address has not been verified." +msgstr "" + #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Título" @@ -108,7 +114,7 @@ msgstr "" msgid "You are editing another user's media. Proceed with caution." msgstr "" -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:154 msgid "You are editing a user's profile. Proceed with caution." msgstr "" @@ -182,6 +188,10 @@ msgid "" "href=\"http://gnu.org/\">GNU project" msgstr "" +#: mediagoblin/templates/mediagoblin/root.html:24 +msgid "Explore" +msgstr "" + #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." msgstr "" @@ -221,6 +231,60 @@ msgid "" " software!)" msgstr "" +#: mediagoblin/templates/mediagoblin/root.html:38 +msgid "Excited to join us?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:39 +#, python-format +msgid "" +"\n" +" Create a free account\n" +" or\n" +" Set up MediaGoblin on your own server\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:53 +msgid "Most recent media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +msgid "Enter your new password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Enter your username or email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 +msgid "" +"\n" +" Your password has been changed. Try to log in now.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 +msgid "" +"\n" +" Check your inbox. We sent an email with a URL for changing your password.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to change your GNU MediaGoblin password, open the following URL in \n" +"your web browser:\n" +"\n" +"%(verification_url)s\n" +"\n" +"If you think this is an error, just ignore this email and continue being\n" +"a happy goblin!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" msgstr "" @@ -233,6 +297,14 @@ msgstr "Ainda não tem conta?" msgid "Create one here!" msgstr "Crie uma aqui!" +#: mediagoblin/templates/mediagoblin/auth/login.html:48 +msgid "Forgot your password?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:51 +msgid "Change it!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Criar uma conta!" @@ -427,7 +499,7 @@ msgstr "" msgid "I am sure I want to delete this" msgstr "" -#: mediagoblin/user_pages/views.py:176 +#: mediagoblin/user_pages/views.py:175 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo index 1fe03578fc76750c4401b659493494de243d753b..994d6f30e198f080120b964dee528e44965674fb 100644 GIT binary patch delta 3646 zcmdVadyG`o9l-Ik;C9);3haXHx)cs;fd#iSt_Dnb?4rxUN`P8m;6J7h65H7LNK9Izf@z5nAK%~1>@I5f zQ=3j^=5x<|oZs*K&N=s)m8W|OZ`ED4U-9YVH-q1r@zNUm-0=gY&e6ORdoW+4R6D+c zS7P-9rBXNp*Wnth#Y5PSkKrPm!pYUxjSI1ed<*I|{w3z0QIa@=#8T}ErTD5Y{)nY+ z!O6H8ccVqQ?>(%;e^;)5QE5+_s8j>zoAD}Kf|uj1I2~P_NqqGS4t~gq2eA>4RBm_? zr6O-)J)TENWFoy>hV?iN8&E2f#7THJw&MMGC%%AZu!A5iIQQ4;y94Dls*KrQMfl`U{D09_FIaXsEN`O1?27CgO_%>>sJXNWU*oG;*2c-hXumew^ z4EO?Ste!^wWlrZZd}662cH)gF0e*u^@OfN?pQ2RcM(Vi@w<7CRJ&W@EOZc}cet3@d z@42}LAEA7*YyOMmsuoh7<#=;}gAE+qi%gq(3xAFu;`O+^shoL)-L#LQ1pK^W4J-66 z+EY*lQbaa@I)oDFag+)l$K7}ur2;E|R9+*6pK%~JIF%Ct5?kGktVi{5#ivlF;&~*t z`YXzFXHlkP+|2Uz6cR(NLP;QvlGv__ze0+rev4~m{~zW+M*acL#|t=wb6II;@DY@R zcIon*6>&f9qu7tDXDdYx>KIC5f5CSA7-d_h*g}%{GNfzOgEEB?*2@0h%YlsK0J3n^ z5tNLNP!A4k>;zZ8s3Mpi0gTn+|^I91-GCi@@p);Z*V*D z)e#OB;{=|%7CTWETZA%_6DSFNhEj>~bIT*1i87Z-o?#$7A3%H9$Jp~U^l*s zlHlY8<*B_6YiU2Zfcmo))iF+}gdY7Yb+nsv!f;u0);MVsY!Bn!0UK@4+DtabFKX7= z!1OI^p3@STj141hiG$qyu(`c6FivE&qx%8_uItBMv^3?kU(~%Hj5Z2dUn1B@h-?() z7pGE#w%;ZPOxijbzc**Sq#tBb-HzLDy-c@182QcZ8%(6*yk09ett#E5eNPYhaiIM{ zPlqPhX@ak%q7uZHPiNM+{pDM&*X!>}>P?0RyhuBqHUo~$=|LN18CK8wHM-9aw3~Ij z46(}(d4nQKclUuJ%6zL{P2nD zo5s~j0HbX*yLh3dX`>(K(%cbAR_U=$1LOLPYN(PVAxh(o8La0F@OVhijvLvXMw4~v zVr5e1g+=Fz`a0>elos9CK1*K3X%qfg=<=A<^8KC}91W;0IzJkOj!QLCUAtTxnY4^) zhtG)Ou!D2?oF5pq(&qSM)`(Y1W27)0Y9&jhRg*i9$g)ZM1H+fsR#mN^(=rlce%P8w z&~2&grrg1*bv<93?2!&zwV$WVQPwb1xtu>J(w++w|c`6qN( zn(83%gI2vG4kK+d9(k9qmY0A-)L1x=j&%y6-M{NCAY(Ou=mDd6~3|2zn{G~ zw)G1Clf5^#^%58Dy}eU2;}V@?o9~k==Y6l6uVMO6T2DQ|=411xO`r8Fn^&zcp&MAk z%awPk38UERK6~mQXNvjh`@W0aTI&1~8+MKDH9=ChY~bB)26S9(Y&h4`ZT0`%ek~>% zXJ{FP4sC{)wR>`pPP6MnSBD&)Iws>W|^YPHs}tQ%YGXqsCq$2*OiwZl7_ zPLJPqixWglRhl=Blcu|G%^L3!PUmB9_sKnx@5p<`M!7f_+oWD$czI;v90_>5qXN?# WTcZd3G_PmZiB9er{^hJcj{gd)ut=W( delta 1641 zcmYM!duS9_6vy$i$*$QX=HVKX=CR3SjZrbyO=Dt7N}DQXgA&E6Q3T&^(rr?UX+udt zR;_=CeWWr3ANT+X3W6w(sDCKM);}y(L=+WKp%vpFiYNxbqR{WJ4s_Y<=iWOr_nvd^ zom^RZvMv1}5*#uSaiV{r$T;1E{g zam>R%u@vuO5Jzz-zQzL9w}pgP$G~dbj6dQO%*ipU!Ui0`#kd}?Vl~$1nvK^u#;_a7 z$abOv-{oH)Mpf{fKYk6B(BBwheS7KO@LB`(3rR;7BSBgPPQXd{Ikw<;IE<=96=^EN z4^aVshFr2fRK{sshTE|Y@1ZJ}ozJy;8Z|UzCn|#-s0jv9k?u!LbQ~w)DO3gSpi2G^ z&cjH-y9HL_Ec!d~ef$j_e1S_a!lW~>yO8=T)7=bwf(K9;-$w^WP-i1++`Ez%;2iof z)B;`Df(J2ycTp9IQU6ugf;xQrP+Kz0&#i#jS=843Ttxj_X&f$MAMqg)q|Kt{DMh}g97{zw( z(n4MMF>XW7i(N$4vTLZ<>oGE?jp1fhq6!t*RMeI>V-2?Y{iJUXD&S4XTa&f{8VX=P zZpSeHg>=Y%LPhG~6uf~7;0-FEBBEW5F>Jz9;@qAH=;_p1zYeKHsOdr9(8!-=qFI)`%o3Qj(YAkYKsFbqWOzZ z0kvYDB5kL!96M19oWNFmf;wz<)QP6`;{fhPm3-VpCc|>{g5lX2?xLJh_fgLMU|Xs; z=}jLyA>ftej|99(VMkUt-spVL(A-e(c9%Hec#{*KNyi&3sSJ3HWnCHWk&0S35uN51 zRSZ!!w?*^WF9=nq1){md>l}|pI`7h#Px@Q0Y diff --git a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po index 38696aa4..967f7dbb 100644 --- a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po @@ -2,13 +2,14 @@ # Copyright (C) 2011 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # +# Translators: # , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-09-05 23:31-0500\n" -"PO-Revision-Date: 2011-09-06 04:31+0000\n" +"POT-Creation-Date: 2011-09-11 16:16-0500\n" +"PO-Revision-Date: 2011-09-11 21:16+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -18,43 +19,43 @@ msgstr "" "Language: ro\n" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1))\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Nume de utilizator" -#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 msgid "Password" msgstr "Parolă" -#: mediagoblin/auth/forms.py:34 +#: mediagoblin/auth/forms.py:35 msgid "Passwords must match." msgstr "Parolele trebuie să fie identice." -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:37 msgid "Confirm password" msgstr "Reintrodu parola" -#: mediagoblin/auth/forms.py:38 +#: mediagoblin/auth/forms.py:39 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "Introdu parola din nou pentru verificare." -#: mediagoblin/auth/forms.py:41 +#: mediagoblin/auth/forms.py:42 msgid "Email address" msgstr "Adresa de e-mail" -#: mediagoblin/auth/views.py:40 +#: mediagoblin/auth/views.py:42 msgid "Sorry, registration is disabled on this instance." msgstr "Ne pare rău, dar înscrierile sunt dezactivate pe această instanță." -#: mediagoblin/auth/views.py:58 +#: mediagoblin/auth/views.py:60 msgid "Sorry, a user with that name already exists." msgstr "Ne pare rău, există deja un utilizator cu același nume." -#: mediagoblin/auth/views.py:62 +#: mediagoblin/auth/views.py:64 msgid "Sorry, that email address has already been taken." msgstr "Ne pare rău, această adresă de e-mail este deja rezervată." -#: mediagoblin/auth/views.py:160 +#: mediagoblin/auth/views.py:165 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -62,15 +63,20 @@ msgstr "" "Adresa ta de e-mail a fost confirmată. Poți să te autentifici, să îți " "completezi profilul și să trimiți imagini!" -#: mediagoblin/auth/views.py:166 +#: mediagoblin/auth/views.py:171 msgid "The verification key or user id is incorrect" msgstr "Cheie de verificare sau user ID incorect." -#: mediagoblin/auth/views.py:187 -#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +#: mediagoblin/auth/views.py:192 msgid "Resent your verification email." msgstr "E-mail-ul de verificare a fost retrimis." +#: mediagoblin/auth/views.py:228 +msgid "" +"Could not send password recovery email as your username is inactive or your " +"account's email address has not been verified." +msgstr "" + #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Titlu" @@ -91,6 +97,8 @@ msgstr "Identificatorul nu poate să lipsească" msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" +"Partea din adresa acestui fișier corespunzătoare titlului. De regulă nu " +"trebuie modificată." #: mediagoblin/edit/forms.py:42 msgid "Bio" @@ -109,7 +117,7 @@ msgstr "" msgid "You are editing another user's media. Proceed with caution." msgstr "Editezi fișierul unui alt utilizator. Se recomandă prudență." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:154 msgid "You are editing a user's profile. Proceed with caution." msgstr "Editezi profilul unui utilizator. Se recomandă prudență." @@ -123,7 +131,7 @@ msgstr "Fișier" #: mediagoblin/submit/forms.py:30 msgid "Description of this work" -msgstr "" +msgstr "Descrierea acestui fișier" #: mediagoblin/submit/views.py:47 msgid "You must provide a file." @@ -187,6 +195,10 @@ msgstr "" "Construit cu MediaGoblin, un proiect " "GNU" +#: mediagoblin/templates/mediagoblin/root.html:24 +msgid "Explore" +msgstr "" + #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." msgstr "Bună! MediaGoblin este..." @@ -236,6 +248,60 @@ msgstr "" "href=\"http://mediagoblin.org/pages/join.html\">Ne poți ajuta să îmbunătățim" " acest software!)" +#: mediagoblin/templates/mediagoblin/root.html:38 +msgid "Excited to join us?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:39 +#, python-format +msgid "" +"\n" +" Create a free account\n" +" or\n" +" Set up MediaGoblin on your own server\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:53 +msgid "Most recent media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +msgid "Enter your new password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Enter your username or email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 +msgid "" +"\n" +" Your password has been changed. Try to log in now.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 +msgid "" +"\n" +" Check your inbox. We sent an email with a URL for changing your password.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to change your GNU MediaGoblin password, open the following URL in \n" +"your web browser:\n" +"\n" +"%(verification_url)s\n" +"\n" +"If you think this is an error, just ignore this email and continue being\n" +"a happy goblin!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" msgstr "Autentificare eșuată!" @@ -248,6 +314,14 @@ msgstr "Nu ai un cont?" msgid "Create one here!" msgstr "Creează-l aici!" +#: mediagoblin/templates/mediagoblin/auth/login.html:48 +msgid "Forgot your password?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:51 +msgid "Change it!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Creează un cont!" @@ -321,7 +395,7 @@ msgstr "Sigur dorești să ștergi %(title)s?" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 msgid "Delete Permanently" -msgstr "" +msgstr "Șterge definitiv" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 msgid "Media processing panel" @@ -432,11 +506,11 @@ msgstr "feed Atom" #: mediagoblin/templates/mediagoblin/utils/pagination.html:40 msgid "Newer" -msgstr "" +msgstr "Mai noi" #: mediagoblin/templates/mediagoblin/utils/pagination.html:46 msgid "Older" -msgstr "" +msgstr "Mai vechi" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" @@ -444,9 +518,9 @@ msgstr "Scrie un comentariu" #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" -msgstr "" +msgstr "Sunt sigur că doresc să șterg" -#: mediagoblin/user_pages/views.py:176 +#: mediagoblin/user_pages/views.py:175 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" "Urmează să ștergi fișierele media ale unui alt utilizator. Se recomandă " diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo index 35c8ed2d52f1e31507de3fa7f8a4de1c6bf0c93e..2b698e4db1462bb77e1069608a04310771bac836 100644 GIT binary patch delta 3997 zcmdVaZE#f88Nl%qB|;X;O9Cd5C?}zWAnB$nkXnO@G(=JxQmX`nX^Wf9&F&?ey9y*00m*5e{>-i58W4%5hAN}b~v$fU7^DVE=PR`g@4!8bukPn0 zgzsS`Hqwg>ct2L5i?Y(EP*!?0|NI0>3f{`!{{SUIf5Am47llxa(ylCjU6*$qrbv%! z;6zrk5hJ(*CB$!_gs_p`Br@AjX1*I)lsbqKiKDm;UqD&;-%&zd!)ycCoHvQGkYgzC z4;K@E#!zG2kdA(XE6_uU#ATFRl@pG;Fn}_^!}vA)Ir{MeYFxNjsVx}5I{YC@1YW@= zJcF{}Pf=sx65=m8t!DX*rTo~88&C##92;;PH{st&aejj%r^{P&zy#EGXE>P#h!4xO&aPlWyio+b9!*{R?d#J!S(cpeOd}A&$kHVz^?Vvjs%@b2c}v$Sc@=vq3cyW(*hwEB{p&mOHZgu)y zr>gN@%hky~y;&M<$~MwYOz&}$aqaZSbi#^1V8uT(73E`m`87wZP*1L@9qV)+^y_UF zFT`9OjA^SkXh(Iw?M7Hu$31Pj+llK?Bp3@bcJ8GeL^?RXq*(gQPK$2rZku_f zm(2NNswGBJbM0eR|I~nL#{H>5=r|iA)$(A-cC9X1(=LYx(*ZOWkQlIgmBR z%T8l5Fiq-CN~KmacV3aQ>2i8A^NI=z?paYYImW6)t_Me7L**WnM-rqXU_=)bfEsW zKz+KkM9al30WLCqB~1mXsr_)(?eJgNd(&g3KDW`on7uc>^-}+ny*It}eA9a`J-oQy zXMScz%xN>`4W@T5FIzXHtD|lMsm_1%q$u;>yXvspFtbXfVO>z}W=fV^yw=w|y^H@^ zw!WkJi`>S6^0x1q7tBf4GG2Flpcte@v<<$lM`47cp@UQZ*FwbYFe}WmEWFD0h zOx8SWj{0?tdBz*m<`ub-oARi6)f-5c6;)<#URqbs(Q50Nx%$8OqNMMuXsY#- zpF|M+TJ0T>>}c=@3GuAGb6Q=8Os$}F0~`xkY;@Ynvt?~I8Jk^!EB9sLw;=zdk1M^PI!aff$U5; z$f~^krPP5;EnBu{=waL&lF4LVTd}k72D+g$-kC73>TE2=c{r%d+4REl>(d)nul*Nz CZD70r delta 1665 zcmYM!duUTv9Ki8kYGTv0OJl69tkg4lHh7VGs46BI4T&28vjPsl`A1N3=dFg5RGB7?S%rzjH6={Lb&3 zo00hN^29^0{fO{c$q>v2qZW^$u6Pg)96~)CnPXBV&BZyye$)xt zFp9@@8Spzhf))}Wt_(|8rm!yeR%-Nt2j7pbyTu!>nY6CdD@xB#1(RnN#N9LB^I8e3^x zoG3CE!=%StvK_;C2s!XFfK%}nM({0aB0)yeiZ!DyU>oX|9z?C|&*}Jb+UuA@e-bO0 zUj}LDsm?a|lfkX1165Im&Dek|@E;7Imv^lSYj7uS#0~fq8*wr9ZpP!d65pb3MN>&C z(GAFyvIkxI{-2^zN5>x+#h0jusgl|1aRikxvatH?cMv%H?hOlN3@Q5E?%5;o%nhBH)cgr*Z%y#=+l zjN}QkHXJa!irl8p8L}Q1JsxHLJ1J`JEp9M#vx8Qp5wJOveaYXGeoj{y!;VEAt+7t)ZfU#CoHeG<+EyO4o8hqy);H5y99eC# PSgX;#Zp&t~KhpRS1h&%4 diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po index 6fd2322e..865f5424 100644 --- a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po @@ -2,13 +2,14 @@ # Copyright (C) 2011 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # +# Translators: # , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-09-05 23:31-0500\n" -"PO-Revision-Date: 2011-09-06 04:31+0000\n" +"POT-Creation-Date: 2011-09-11 16:16-0500\n" +"PO-Revision-Date: 2011-09-11 21:16+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -18,43 +19,43 @@ msgstr "" "Language: ru\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" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Логин" -#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 msgid "Password" msgstr "Пароль" -#: mediagoblin/auth/forms.py:34 +#: mediagoblin/auth/forms.py:35 msgid "Passwords must match." msgstr "Пароли должны совпадать." -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:37 msgid "Confirm password" msgstr "Подтвердите пароль" -#: mediagoblin/auth/forms.py:38 +#: mediagoblin/auth/forms.py:39 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "Type it again here to make sure there are no spelling mistakes." -#: mediagoblin/auth/forms.py:41 +#: mediagoblin/auth/forms.py:42 msgid "Email address" msgstr "Адрес электронной почты" -#: mediagoblin/auth/views.py:40 +#: mediagoblin/auth/views.py:42 msgid "Sorry, registration is disabled on this instance." msgstr "Извините, на этом разделе регистрация запрещена." -#: mediagoblin/auth/views.py:58 +#: mediagoblin/auth/views.py:60 msgid "Sorry, a user with that name already exists." msgstr "Извините, пользователь с этим именем уже зарегистрирован." -#: mediagoblin/auth/views.py:62 +#: mediagoblin/auth/views.py:64 msgid "Sorry, that email address has already been taken." msgstr "Извините, этот адрес электнонной почты уже занят." -#: mediagoblin/auth/views.py:160 +#: mediagoblin/auth/views.py:165 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -62,15 +63,20 @@ msgstr "" "Адрес вашей электронной потвержден. Вы теперь можете войти и начать " "редактировать свой профиль и загружать новые изображения!" -#: mediagoblin/auth/views.py:166 +#: mediagoblin/auth/views.py:171 msgid "The verification key or user id is incorrect" msgstr "Неверный ключ проверки или идентификатор пользователя" -#: mediagoblin/auth/views.py:187 -#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +#: mediagoblin/auth/views.py:192 msgid "Resent your verification email." msgstr "Переслать сообщение с подтверждением аккаунта." +#: mediagoblin/auth/views.py:228 +msgid "" +"Could not send password recovery email as your username is inactive or your " +"account's email address has not been verified." +msgstr "" + #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Название" @@ -91,6 +97,8 @@ msgstr "Отличительная часть адреса необходима" msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" +"Часть адреса этого файла, производная от его названия. Её обычно не нужно " +"изменять." #: mediagoblin/edit/forms.py:42 msgid "Bio" @@ -109,7 +117,7 @@ msgstr "" msgid "You are editing another user's media. Proceed with caution." msgstr "Вы редактируете файлы другого пользователя. Будьте осторожны." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:154 msgid "You are editing a user's profile. Proceed with caution." msgstr "Вы редактируете профиль пользователя. Будьте осторожны." @@ -123,7 +131,7 @@ msgstr "Файл" #: mediagoblin/submit/forms.py:30 msgid "Description of this work" -msgstr "" +msgstr "Описание этого произведения" #: mediagoblin/submit/views.py:47 msgid "You must provide a file." @@ -183,6 +191,10 @@ msgid "" "href=\"http://gnu.org/\">GNU project" msgstr "" +#: mediagoblin/templates/mediagoblin/root.html:24 +msgid "Explore" +msgstr "" + #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." msgstr "Привет, любитель мультимедиа! MediaGoblin это…" @@ -203,7 +215,7 @@ msgstr "" msgid "" "Free, as in freedom. (We’re a GNU project, " "after all.)" -msgstr "" +msgstr "Свободное ПО. (Мы же проект GNU.)" #: mediagoblin/templates/mediagoblin/root.html:32 msgid "" @@ -231,6 +243,60 @@ msgstr "" "href=\"http://mediagoblin.org/pages/join.html\">Ты можешь помочь сделать это" " ПО лучше!)" +#: mediagoblin/templates/mediagoblin/root.html:38 +msgid "Excited to join us?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:39 +#, python-format +msgid "" +"\n" +" Create a free account\n" +" or\n" +" Set up MediaGoblin on your own server\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:53 +msgid "Most recent media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +msgid "Enter your new password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Enter your username or email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 +msgid "" +"\n" +" Your password has been changed. Try to log in now.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 +msgid "" +"\n" +" Check your inbox. We sent an email with a URL for changing your password.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to change your GNU MediaGoblin password, open the following URL in \n" +"your web browser:\n" +"\n" +"%(verification_url)s\n" +"\n" +"If you think this is an error, just ignore this email and continue being\n" +"a happy goblin!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" msgstr "Авторизация неуспешна!" @@ -243,6 +309,14 @@ msgstr "Ещё нету аккаунта?" msgid "Create one here!" msgstr "Создайте здесь!" +#: mediagoblin/templates/mediagoblin/auth/login.html:48 +msgid "Forgot your password?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:51 +msgid "Change it!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Создать аккаунт!" @@ -302,7 +376,7 @@ msgstr "Подтвердить" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 #, python-format msgid "%(username)s's media" -msgstr "" +msgstr "Файлы пользователя <a href=\"%(user_url)s\">%(username)s</a>" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 #: mediagoblin/templates/mediagoblin/user_pages/user.html:32 @@ -312,11 +386,11 @@ msgstr "Извините, но такой пользователь не найд #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" -msgstr "" +msgstr "Действительно удалить %(title)s?" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 msgid "Delete Permanently" -msgstr "" +msgstr "Удалить безвозвратно" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 msgid "Media processing panel" @@ -418,7 +492,7 @@ msgstr "Пока что тут файлов нет…" #: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 msgid "feed icon" -msgstr "" +msgstr "значок ленты" #: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 msgid "Atom feed" @@ -426,11 +500,11 @@ msgstr "лента в формате Atom" #: mediagoblin/templates/mediagoblin/utils/pagination.html:40 msgid "Newer" -msgstr "" +msgstr "Более новые" #: mediagoblin/templates/mediagoblin/utils/pagination.html:46 msgid "Older" -msgstr "" +msgstr "Более старые" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" @@ -438,9 +512,9 @@ msgstr "Комментарий" #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" -msgstr "" +msgstr "Я уверен, что хочу удалить это" -#: mediagoblin/user_pages/views.py:176 +#: mediagoblin/user_pages/views.py:175 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mo index 663a7e55515ec66d66820000217c08a5f2e6fd7a..d1ce44b2c07b63329ecfd094531b909310a4c199 100644 GIT binary patch delta 3470 zcmdVZYitx%6u|LYq_kbis}CN6a9aghtgTA|$g34fp;RCQT8kKjVRyPabUU-m&axCC z8xrw@5fZZ!j7AdQ8l%BfjSmbF)Tq(KM`9xp2}%s0#>kgyB*g#Oowi^g@q=jGwELSo zJ9E!H=ic+flGAI`-`fqQscQ_iPz(NEXF%=9ENZ*@zuRtjNrzjI02vcA2^Cqk>gm3eJBeV z&MZT*6w7fuN@Z$s6yAq5_%QCmcd-{62vUXPMk+N0Z^v%pt4&;l@HkdrJ+nx_O<0K@ zN~Q-;GCk=3{tC(#yzk%t2Bkv3;24xaK9rz5H{KuD`Od;L+oR@lA(mMiIT{3DDS^qLj8%M-sXl(^a)PI z&rvGThq6}_C`SthQ3CA5IrswB;wjWPx=g873}PMLk5Ylxu>lXGBzyri=9g1{+0$vH zPb^i7jkpLUz#g2B@8B~09i<|RsOLSn9yzb-O_cYK;i){OzQXg2-{9dke39}=*W^(a zN$7T*hwIW@$O9RaLwFX~VIMBU)e{MZ`|wu$3_0K`kCQ1D<3=2ZvXGR2e>X~|48{BbYJAwA)b zzeB0i8I-QcqYS%o3(EbU@FvXXs~TsZRIC-H3rxJ5_$tPQoZ=6C`|uXV(@0D9ycH#r zJt&phi&E;xQ6_o~Wub>rGXEN-U5lsXx@H>IGv11G@et0ybC{+|s(d;p66c@<-j2iY zS!}?UP*(mkO8Z?zIjlEVG!>O8y>->_#4WC8z@5r+ffehk!tEMEB#pN z6VL;n1%?jAj6`B#Wz;mnrn@nb+}ve(8>3bv8sp!q)KS;$SXeo=$~7Za!sC&o8>>!K z);GGQ;hEad9j*zXkdw5%1$9RKCDS|Zz#y&lRf6@0ha=RR%&=udoXs)I zu65iUNiD&(Sd_qAgq7PAd0)&*A*VLy9DTsV%P}bD>~j ztCNg{dBT%bg$E~f&5%P@-Top8kj`EyLY}qF)T}!DqrWNB6B%P_ts>Di(86vQ4sYOrJSbRJA@3Sl%I1@Q7u1$~U1C*{yb6$F0#@k_k^+ z5u0`Ae$5>LgUW{-+q3MXNzIrxV6d(6c(=|S%8H(%z`49JD;-{EXXN~3k8IER;j0P? zgFzjfJuf&r(_E@$Ff+)YCtg~emmcVctG2^6=)J*M>Ay7kztekzt(X2!dT+4x0+;mO zBV~(+q#FmCPu<~kv5$tURy&>>=6LIfnTR>6@mh4G-^Q8f$l@zC=C5PV{_~Bw#PA%? k>@@yfb7l&Q+B3_?zt`4m>HlAQ7EhQl3iJP*h|wB8uwD zz#uPb(Shos!%bAwMMy~oowN%HI)Xyb_vil5*!Fp!_rLw$=Y8I1`&`*EEBxN;I%_=E z@XF%V6|d<3<9>o!I^hE>z}L74U46~^VI^+EYAnI0Sb>&kHUZ|NK6eQF;0dh5M&zSm z`@?{z{pBqc6WqNQEFHbX*{Jz|69;h!@p8<>9hi*AFayuxaBRU8e2zo04PE#PtFRkA ztZ$1+Z!8lvcmPl0XiQ2n%fVu7z)IYRFEAGi`WMpUL3Q8#MAQFsGYfj6j<_h1EjJ+TF39jX<97662dXy`2gXY3!I{K<)B<%_hL>?JwxKHGr~d1( z4Ap!WP)E|l+lM%_+o;6P52pT;8C)M6Yl<$UI#y1-SK$(zidQj+ofyD84wN>qHIB7d zL%bWc;49Qd+K}SdC)7rMAURqOvNuZ(lZGUqp5)WZ`FN5_AexuHI1)ZS;_G1yAMrHmOmFP3a z_c)CBJ5n@DA<*~ys3R>w{hv&6;?<}gs&V2?NKRqf%0OLx7?n|1?1Js&+armOVjf;Y z?YtG$q@B1HzoD9}B0FXS<`Xxgj;a-Vdx$>;RmOu9$#Sr-e*Y60a1Wb?+VNVX7, 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-09-05 23:31-0500\n" -"PO-Revision-Date: 2011-09-06 04:31+0000\n" +"POT-Creation-Date: 2011-09-11 16:16-0500\n" +"PO-Revision-Date: 2011-09-11 21:16+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -18,43 +19,43 @@ msgstr "" "Language: sl\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3)\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Uporabniško ime" -#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 msgid "Password" msgstr "Geslo" -#: mediagoblin/auth/forms.py:34 +#: mediagoblin/auth/forms.py:35 msgid "Passwords must match." msgstr "Gesli morata biti enaki." -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:37 msgid "Confirm password" msgstr "Potrdite geslo" -#: mediagoblin/auth/forms.py:38 +#: mediagoblin/auth/forms.py:39 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "" -#: mediagoblin/auth/forms.py:41 +#: mediagoblin/auth/forms.py:42 msgid "Email address" msgstr "E-poštni naslov" -#: mediagoblin/auth/views.py:40 +#: mediagoblin/auth/views.py:42 msgid "Sorry, registration is disabled on this instance." msgstr "Oprostite, prijava za ta izvod ni omogočena." -#: mediagoblin/auth/views.py:58 +#: mediagoblin/auth/views.py:60 msgid "Sorry, a user with that name already exists." msgstr "Oprostite, uporabnik s tem imenom že obstaja." -#: mediagoblin/auth/views.py:62 +#: mediagoblin/auth/views.py:64 msgid "Sorry, that email address has already been taken." msgstr "Oprostite, ta e-poštni naslov je že v uporabi." -#: mediagoblin/auth/views.py:160 +#: mediagoblin/auth/views.py:165 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -62,15 +63,20 @@ msgstr "" "Vaš e-poštni naslov je bil potrjen. Sedaj se lahko prijavite, uredite svoj " "profil in pošljete slike." -#: mediagoblin/auth/views.py:166 +#: mediagoblin/auth/views.py:171 msgid "The verification key or user id is incorrect" msgstr "Potrditveni ključ ali uporabniška identifikacija je napačna" -#: mediagoblin/auth/views.py:187 -#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +#: mediagoblin/auth/views.py:192 msgid "Resent your verification email." msgstr "Ponovno pošiljanje potrditvene e-pošte." +#: mediagoblin/auth/views.py:228 +msgid "" +"Could not send password recovery email as your username is inactive or your " +"account's email address has not been verified." +msgstr "" + #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Naslov" @@ -108,7 +114,7 @@ msgstr "Vnos s to oznako za tega uporabnika že obstaja." msgid "You are editing another user's media. Proceed with caution." msgstr "Urejate vsebino drugega uporabnika. Nadaljujte pazljivo." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:154 msgid "You are editing a user's profile. Proceed with caution." msgstr "Urejate uporabniški profil. Nadaljujte pazljivo." @@ -184,6 +190,10 @@ msgid "" "href=\"http://gnu.org/\">GNU project" msgstr "" +#: mediagoblin/templates/mediagoblin/root.html:24 +msgid "Explore" +msgstr "" + #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." msgstr "Pozdravljen, ljubitelj večpredstavnostnih vsebin! MediaGoblin je ..." @@ -232,6 +242,60 @@ msgstr "" "href=\"http://mediagoblin.org/pages/join.html\">Pri izboljševanju nam lahko " "pomagate tudi vi.)" +#: mediagoblin/templates/mediagoblin/root.html:38 +msgid "Excited to join us?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:39 +#, python-format +msgid "" +"\n" +" Create a free account\n" +" or\n" +" Set up MediaGoblin on your own server\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:53 +msgid "Most recent media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +msgid "Enter your new password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Enter your username or email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 +msgid "" +"\n" +" Your password has been changed. Try to log in now.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 +msgid "" +"\n" +" Check your inbox. We sent an email with a URL for changing your password.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to change your GNU MediaGoblin password, open the following URL in \n" +"your web browser:\n" +"\n" +"%(verification_url)s\n" +"\n" +"If you think this is an error, just ignore this email and continue being\n" +"a happy goblin!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" msgstr "Prijava ni uspela." @@ -244,6 +308,14 @@ msgstr "Še nimate računa?" msgid "Create one here!" msgstr "Ustvarite si ga." +#: mediagoblin/templates/mediagoblin/auth/login.html:48 +msgid "Forgot your password?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:51 +msgid "Change it!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Ustvarite račun." @@ -441,7 +513,7 @@ msgstr "Komentar" msgid "I am sure I want to delete this" msgstr "" -#: mediagoblin/user_pages/views.py:176 +#: mediagoblin/user_pages/views.py:175 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo index 80608e3ab8acd4dd3cc96059a415e7ff5d18b130..d09aea4456f831b5e655b3c29bbf8872157520a0 100644 GIT binary patch delta 3291 zcmeIxZEO@p7{KuE z#nUJz@JVwZMuo%}gT`oLsu&d$v_izF2{B5-i-bfHqec@FB`7iepWADTCVceegO_%H zJG-;<%=665*{0KL^Ir!??p6E}{7>b7)pgPu{`HMg>LSe@xDGR;m5SjpoPy zluY-bWO|_V{tc8RI9hss2Bktj;Y5^1IRsJqg-Y#6$@!RPc~k>8lF6Nz!i^{;9zZE! zjM1brZ74H;5J^fsg;I$F*oH5nWd0jU$?KSH6q`!sP!c(a^8M>U>Q4;y9uH)oPjMEW zK&iwfl(nj+94j%35}*$k;42u$^QdvcB&Aw0iV=JQr2>br5f7szd<8X@Pp1B|rn5<( zSSpN7xD+M8PHe#Uu^BI;RAedj+=LsE{i@zU`F;Rz9ih}$c#-x9%C-)FMmaTiQx;yS z-6#`$A&C%A7%RP`{v5a>~tqC1zq9@l_o+lKCSjC4UX&*nC{_ zSCmZVaWrIrJ5VOP1V`e%$e&uzMJmyUvJ?kU_Rb-c@yllWn>vhgY7&^&-0bD16%V28 z%CU3&3N&CN?WHIgKZ+W6<7j*prL_IngvW3J23W5KT!zi~Fv^}fhMVvl$|jD@W&LG< zmbqL4dg!;v(DAg9%`UD@nMSASwr6u4-Imv$vXZGZ|6Z+5xn^Q0P*G5 zlrrO8epk!xaJGeYo5=^Zrwv=1-G-IcJ(iaut#xZx>4f9zc*?Mo#P&bRP^=!u?F<(a z8!YAh5_<5JP8nI}6=Y(#|wFtz2)C|ns` z)9U2Xo%HZzR-MCxx@O!VtKQNi2~o^9N3yoj&F5K0HsYSO)zr+o__DMpbFu|vTxC$k zEKZAItc1n93Jq1~x|Z84s^8x>dxiq4tDX-9Vc=qo)bed{%QHJAr!5W{<+6=D%cLFG zR4c4B7gmjU#c2!{rm=roXmVNMtx&MMSk%Jjp{g;1FAG0}YRYusd_~>HK;W)~e5t*Z zWp~My+_J?5a$U!rr?=#?p0<)U(fqgm!Wq;n?%1AX=S(tX%>o9Ck;(LGe=E)Ck5qqG zHgUDX=hRbHy|~f(Lp4W772Xc+8WWA`X#K)yeW9gNOXKz^js8q!wk$uildrjv|AtdD e94r5qBl^#rn&Cr}|5r}U@SzF(e`@}Vr{)iO%fMm) delta 1577 zcmaLXOGs346vy$uIzF?UCLcLz-Yg?hbIeAi5k#dDr6QjcXh@`$wWtUhDTc7XOpy>N zqQ}Mv0>vD}poB0tNzuXexEuq9 z*C9S>d_IM1_V4vH(wJnX6PSl@a34CNjETisY{w=n#1~kFCfXP;RHLrDgb{cRTd@zh zG+=%*;B9{K<;2LCzZ)hQUCh%_>mGYvhHIJEp&L(OJa%CU4&Ztm!jcj;t_m>8!&%`F>ADrnb?M8WV%s-U$^%MQ5Ae_ zufIkm^d2L5zWHWfu%rd%PSTOdNRTEClQ0X9p$|K75LJl`(o}}UsDNvbEprByaR3|f zGUnhrROMnSP>Od@8PB7Ii>Tg+UL7iF0#-23L_MGteRvo5;2f$Vnbf}- zeW>QUg*uW!zOrfXanzA~NTmLXWH~X^)my2vZt!C}cA~oaGb+Q)+~vj7sOuh}y802S ztH)3kOrtCcd?S*B$wsZ0paQ9|*Bb)%LK`ab4%FH7qmE!0d7CGEsjFv@<1=4TXRe!c zG;XZN45Z5D9O|sEpqhFV)zlttQjZ)&KL-2^)YacmXWGcq)zyAfSNEbKA3;SvZtqVc z$(jXw{Rb-3n02A%O-1cz*z-c$64ViwBSj6EY6j}+7VN-jBv`YH|3<`Qno$v-M^)q| zD&zauh!0VjhNp)rmxuYxt86cz5*S9^KZXi)5*_;cpJAY`o<&vQH&R_=QE#1jG3o)G zScD^}uKtJ?rVyRFx){|!?Q2UBX z6{*B#Y(X{OGt`kxWALiGJiPxvTx$P`^m)hb<0p>>bK{f3g7>V&u%OGiH#)}SwYC@R fEXeO~OR-`+g_dUrlVD%U*|1=@yX-&rPDT9zA_1el diff --git a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po index 7a843fdc..da928da6 100644 --- a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po @@ -2,12 +2,13 @@ # Copyright (C) 2011 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # +# Translators: msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-09-05 23:31-0500\n" -"PO-Revision-Date: 2011-09-06 04:31+0000\n" +"POT-Creation-Date: 2011-09-11 16:16-0500\n" +"PO-Revision-Date: 2011-09-11 21:16+0000\n" "Last-Translator: cwebber \n" "Language-Team: Serbian (http://www.transifex.net/projects/p/mediagoblin/team/sr/)\n" "MIME-Version: 1.0\n" @@ -17,57 +18,62 @@ msgstr "" "Language: sr\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" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "" -#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 msgid "Password" msgstr "" -#: mediagoblin/auth/forms.py:34 +#: mediagoblin/auth/forms.py:35 msgid "Passwords must match." msgstr "" -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:37 msgid "Confirm password" msgstr "" -#: mediagoblin/auth/forms.py:38 +#: mediagoblin/auth/forms.py:39 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "" -#: mediagoblin/auth/forms.py:41 +#: mediagoblin/auth/forms.py:42 msgid "Email address" msgstr "" -#: mediagoblin/auth/views.py:40 +#: mediagoblin/auth/views.py:42 msgid "Sorry, registration is disabled on this instance." msgstr "" -#: mediagoblin/auth/views.py:58 +#: mediagoblin/auth/views.py:60 msgid "Sorry, a user with that name already exists." msgstr "" -#: mediagoblin/auth/views.py:62 +#: mediagoblin/auth/views.py:64 msgid "Sorry, that email address has already been taken." msgstr "" -#: mediagoblin/auth/views.py:160 +#: mediagoblin/auth/views.py:165 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "" -#: mediagoblin/auth/views.py:166 +#: mediagoblin/auth/views.py:171 msgid "The verification key or user id is incorrect" msgstr "" -#: mediagoblin/auth/views.py:187 -#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +#: mediagoblin/auth/views.py:192 msgid "Resent your verification email." msgstr "" +#: mediagoblin/auth/views.py:228 +msgid "" +"Could not send password recovery email as your username is inactive or your " +"account's email address has not been verified." +msgstr "" + #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "" @@ -105,7 +111,7 @@ msgstr "" msgid "You are editing another user's media. Proceed with caution." msgstr "" -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:154 msgid "You are editing a user's profile. Proceed with caution." msgstr "" @@ -179,6 +185,10 @@ msgid "" "href=\"http://gnu.org/\">GNU project" msgstr "" +#: mediagoblin/templates/mediagoblin/root.html:24 +msgid "Explore" +msgstr "" + #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." msgstr "" @@ -218,6 +228,60 @@ msgid "" " software!)" msgstr "" +#: mediagoblin/templates/mediagoblin/root.html:38 +msgid "Excited to join us?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:39 +#, python-format +msgid "" +"\n" +" Create a free account\n" +" or\n" +" Set up MediaGoblin on your own server\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:53 +msgid "Most recent media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +msgid "Enter your new password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Enter your username or email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 +msgid "" +"\n" +" Your password has been changed. Try to log in now.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 +msgid "" +"\n" +" Check your inbox. We sent an email with a URL for changing your password.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to change your GNU MediaGoblin password, open the following URL in \n" +"your web browser:\n" +"\n" +"%(verification_url)s\n" +"\n" +"If you think this is an error, just ignore this email and continue being\n" +"a happy goblin!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" msgstr "" @@ -230,6 +294,14 @@ msgstr "" msgid "Create one here!" msgstr "" +#: mediagoblin/templates/mediagoblin/auth/login.html:48 +msgid "Forgot your password?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:51 +msgid "Change it!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "" @@ -417,7 +489,7 @@ msgstr "" msgid "I am sure I want to delete this" msgstr "" -#: mediagoblin/user_pages/views.py:176 +#: mediagoblin/user_pages/views.py:175 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo index 9086472adbdc635757ffd435edac7e51fd1cb8d5..5f8ac655c01f05feb5187ee88ae6eed3abe337d2 100644 GIT binary patch delta 3783 zcmdVbe{37&8Nl(^9U+NJ3r*T4C4sz2*OHXf!B9HZQm1WNTB6cHo3vZCj$Z6H_QjVw z@9yk0(8{aS@ek5|=s=qW0wh{7gvP`ym2P8yFmKb4Ku2pJ|(~~%k zg=VEv_%mFMO)W|dVK?r_eb|amU>?unW?VtzDDK5OF+#p&^%}nt^G%c_E+Vm1Dy|e? zwVNMesr&H;{473%Hp+ePU>p9aas8i-^Xr!?)k%9F-iTZAIy{6On8urluO8-L84cgU zHTdnu4L?Sy$lKVC@1rELlwPjEc3g#>D3wXz^>`Ww@i9D!ui`}(-Wu)Ig8R=7v>o1{9!A~3QzeTCgd$i0K z%S?~j%7Khz7v}H?N{Oo|B}~zqROT>B=3hhxrM`|*iKp-|K8rH)%P1x9C)*^BG%TVF ziP#85w^K{|RJ*WoWvD)BzbT&m@fDN-e}EdBR#AVM)AbCWSSo=dxC14?mvJlp2>0MWP%5&6dVT?qAnR3qALaQf zUWzI8Yn4e7wxT=Q%iyQi)60LI-mwrMui!ANfXB;wH|I zqXhg8N(o=aqxch)()Qg{-!%g$_iaLoqf+<~9zdzc8z}M0Z*stnQSUSw-a`f{d!zQ? zYGggB4Jd113-VQC{73=;%9{8R%2YjrTga@aIg|ui z*Rqvm|Mzepncj*lTs4eRq6bhqI*d}EJdd)d z-$Lp4UnuXJCK`_sU$t{^JBG+L^&D=;*HJoJw!WS~5+(3m4R|@5+$*- zxC?)dx8X7_Zp0MI?r^Xy0iWc6xlpg7toHW)dZwSjTR9&`$@mm9E9$G*jNe76*vq&L zU&BvhGuhmMJ5UlRqLlmxcoZ*SD<(Ejf0?_xHt-YI3!l3!op!7s*w&XbR>t@b2E~bK zJA5!_XLAmJVV}qTZV>a?7W?rHW}N>dJ~TACOkhowAV`KZ8y8un+d(X)Ik&KVnN?0 zH|?q2q&-*9dPQG*Gp-JdUo!rOQc-c@%V#8K()s$Wwmab+Pw2yj2i#Cwt~S$_?dTah z%rUI-1N-!(=j(LNa`ls2B{>R&YGusC#UOA7+hswKV1nGpz1msSIjz=Mh;p8E?9B zU280MU|s)wjDcV<9;e${*-gEJJ^RN$G}-eV4r;GJnZul6rX0tck!g~7qxUQ`D z_TFNw@_%gfk7w^KZoTsVWbZ9*z4#S-@0%;%T@oKz+~U7Z{Aq&y(yEAzS3RpJS5#` zinW>KUn=jbdaTNgH+3%=IaocHFICTEgU}8gu1!|Y`8vb(xh>s=HAg2 m^c&KN)S{kF^iuEYRgIvB2q%dIc0RPT(Hp%zmGAZ57W+5mYjk`7 delta 1680 zcmYM!eP~lx7{~FGG_h&4ZJNGh?M!>y#??ZdiG6WvVQrn8#W1zAb0XF$GwqzMLKJkq zEOZPfolxai#zd!o6#p5H;RP#F|Iorf<_m&@Ay%}YAPz;8fwIBAKO0zR@;T?+d(Sz~ zbDrB_w(C@(t9K< zm3Rj8@hX<%ZS>&_`~+WOA?ur!Y_EZV&u~8;!uc2s8dHUh_!X|k&+!^oV`8>3#Tv&N z>_;Lp!>ElP$zC5rW$=7<{01tZY4o$cd7i!Dr3UDS2uGG7n>2H=6zAa=*oJ#>43&v0 z!c>Ispf>z5a>=Ao5ohpI{1zMV4k~kb1zbzeh|!R1P!SwNO)!Gm>2cIVXK)^#MP=Ym zRLWoBats&FEYORK=?~-Eco`jhhCLW&(uLR`BL9l?2L{^l1S;YwbnqdnHgbz*Qd)@b z)2~4-(1&gK6E4HssEpK*{|(rND!yZ=BN^l8zQ>qxETR8n3HjF!f1$S?r;s&GEBOv^ zV-geedpJNvcmSL5CTikYgs)76uot7K4DLl;{{~efhfsl@Ld|~~DI+tUp`o2!M(z9$ z)B{hDY#A?uI@>U+svA%XCQ)a-7WG=~#%|n)dhR+Zu)BBw^O>X$kD{KNz>AoyDSC{0pNq+p&b$TVID`xEEUJ3%p%x4|GpTRJHu~S8Hadyzcm=iL zyy}_MM^Ht*7>iW3?KD)?-S{q!Vk6$brI^ERl, 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-09-05 23:31-0500\n" -"PO-Revision-Date: 2011-09-06 04:31+0000\n" +"POT-Creation-Date: 2011-09-11 16:16-0500\n" +"PO-Revision-Date: 2011-09-11 21:16+0000\n" "Last-Translator: cwebber \n" "Language-Team: Swedish (http://www.transifex.net/projects/p/mediagoblin/team/sv/)\n" "MIME-Version: 1.0\n" @@ -18,43 +19,43 @@ msgstr "" "Language: sv\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Användarnamn" -#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 msgid "Password" msgstr "Lösenord" -#: mediagoblin/auth/forms.py:34 +#: mediagoblin/auth/forms.py:35 msgid "Passwords must match." msgstr "Lösenorden måste vara identiska." -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:37 msgid "Confirm password" msgstr "Bekräfta lösenord" -#: mediagoblin/auth/forms.py:38 +#: mediagoblin/auth/forms.py:39 msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "" +msgstr "Skriv in det igen för att undvika stavfel." -#: mediagoblin/auth/forms.py:41 +#: mediagoblin/auth/forms.py:42 msgid "Email address" msgstr "E-postadress" -#: mediagoblin/auth/views.py:40 +#: mediagoblin/auth/views.py:42 msgid "Sorry, registration is disabled on this instance." msgstr "Vi beklagar, registreringen är avtängd på den här instansen." -#: mediagoblin/auth/views.py:58 +#: mediagoblin/auth/views.py:60 msgid "Sorry, a user with that name already exists." msgstr "En användare med det användarnamnet finns redan." -#: mediagoblin/auth/views.py:62 +#: mediagoblin/auth/views.py:64 msgid "Sorry, that email address has already been taken." msgstr "Den e-postadressen är redan tagen." -#: mediagoblin/auth/views.py:160 +#: mediagoblin/auth/views.py:165 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -62,15 +63,20 @@ msgstr "" "Din e-postadress är verifierad. Du kan nu logga in, redigera din profil och " "ladda upp filer!" -#: mediagoblin/auth/views.py:166 +#: mediagoblin/auth/views.py:171 msgid "The verification key or user id is incorrect" msgstr "Verifieringsnyckeln eller användar-IDt är fel." -#: mediagoblin/auth/views.py:187 -#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +#: mediagoblin/auth/views.py:192 msgid "Resent your verification email." msgstr "Skickade ett nytt verifierings-email." +#: mediagoblin/auth/views.py:228 +msgid "" +"Could not send password recovery email as your username is inactive or your " +"account's email address has not been verified." +msgstr "" + #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Titel" @@ -90,7 +96,7 @@ msgstr "Sökvägsnamnet kan inte vara tomt" #: mediagoblin/edit/forms.py:35 msgid "" "The title part of this media's URL. You usually don't need to change this." -msgstr "" +msgstr "Sökvägstitlen för din media. Du brukar inte behöva ändra denna." #: mediagoblin/edit/forms.py:42 msgid "Bio" @@ -108,7 +114,7 @@ msgstr "Ett inlägg med det sökvägsnamnet existerar redan." msgid "You are editing another user's media. Proceed with caution." msgstr "Var försiktig, du redigerar någon annans inlägg." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:154 msgid "You are editing a user's profile. Proceed with caution." msgstr "Var försiktig, du redigerar en annan användares profil." @@ -122,7 +128,7 @@ msgstr "Fil" #: mediagoblin/submit/forms.py:30 msgid "Description of this work" -msgstr "" +msgstr "Beskrivning av verket" #: mediagoblin/submit/views.py:47 msgid "You must provide a file." @@ -183,6 +189,12 @@ msgid "" "Powered by MediaGoblin, a GNU project" msgstr "" +"Drivs av MediaGoblin, ett GNU-projekt" + +#: mediagoblin/templates/mediagoblin/root.html:24 +msgid "Explore" +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." @@ -237,6 +249,60 @@ msgstr "" "href=\"http://mediagoblin.org/pages/join.html\">Du kan hjälpa os forbättra " "MediaGoblin!)" +#: mediagoblin/templates/mediagoblin/root.html:38 +msgid "Excited to join us?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:39 +#, python-format +msgid "" +"\n" +" Create a free account\n" +" or\n" +" Set up MediaGoblin on your own server\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:53 +msgid "Most recent media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +msgid "Enter your new password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Enter your username or email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 +msgid "" +"\n" +" Your password has been changed. Try to log in now.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 +msgid "" +"\n" +" Check your inbox. We sent an email with a URL for changing your password.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to change your GNU MediaGoblin password, open the following URL in \n" +"your web browser:\n" +"\n" +"%(verification_url)s\n" +"\n" +"If you think this is an error, just ignore this email and continue being\n" +"a happy goblin!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" msgstr "Inloggning misslyckades!" @@ -249,6 +315,14 @@ msgstr "Har du inget konto?" msgid "Create one here!" msgstr "Skapa ett!" +#: mediagoblin/templates/mediagoblin/auth/login.html:48 +msgid "Forgot your password?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:51 +msgid "Change it!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Skapa ett konto!" @@ -318,11 +392,11 @@ msgstr "Finns ingen sådan användare ännu." #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" -msgstr "" +msgstr "Vill du verkligen radera %(title)s?" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 msgid "Delete Permanently" -msgstr "" +msgstr "Radera permanent" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 msgid "Media processing panel" @@ -435,11 +509,11 @@ msgstr "Atom-feed" #: mediagoblin/templates/mediagoblin/utils/pagination.html:40 msgid "Newer" -msgstr "" +msgstr "Nyare" #: mediagoblin/templates/mediagoblin/utils/pagination.html:46 msgid "Older" -msgstr "" +msgstr "Äldre" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" @@ -447,10 +521,10 @@ msgstr "Kommentar" #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" -msgstr "" +msgstr "Jag är säker på att jag vill radera detta" -#: mediagoblin/user_pages/views.py:176 +#: mediagoblin/user_pages/views.py:175 msgid "You are about to delete another user's media. Proceed with caution." -msgstr "" +msgstr "Du tänker radera en annan användares media. Var försiktig." diff --git a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo index dc196210925111daede00d006da3754b10e0d91b..e01173913c017cd40cf3a0bf22da58f0d98f649c 100644 GIT binary patch delta 3448 zcmdVbTWnNC7{Ku$os}}P^EcFPE#K*B6EtGaY zVh;Z7zyH%Oj~J>{9`yw{9_QjPd<@582qzO?ZQaT|V$r?G+{g*bM&Qd96jY$Lu}&qD~$U_J&JMFOtJ0`yQ; z`ZCH&_xSJMN7;hoe*JeS8Tu8oQ3`_~2c=z}UoP=2!zA0I=JFsbS%eX+M@jK9loSRT zO)|3@W#$`^MX482GO-6&;~OX|{{toEh0L}TD}56v3waBr|G^ycPYiXK3K{4toQ_|k zWa28yUX3Fi%diwBz*f8uJFytgp~jJ;lv;(QSb{rHGVl>r;1QGsUq_9DMw5Tp(-|zE zSgIH+aREwz?Kl^Y;!?bZl92`Eb1l{*=T&`-(*GECW+-(Edni9m<2sC!KDjj~Z~|tM zo^qU)rW#|Q^{@~WN&*=CNOMLdWBO^8r+XkUyaO3twW9Ne*JEgj2uMSsxOeC)LE4N z*HJP&a&me?c}Nn~6kIF!zl;YCtlEi^l6@G*Z}Bv);Ka?wnL2&=>QUaequiQbFdu9A zk+b9>UDbA!4D3T0|A6mdlm&f>uo$TxL`3`QKg4_SFiHw9 zqjbE6gE60i>}4U&!yw8QZt?v9t0-Sa&ZnAPnEszogK|g@6_S5Be8;I!0p0hRXXsGW zh{xv_L`)-Wy6fVJh8D|P7qOZmQU1IF9dXUZ`32JpU9-uGdo)S7(OL0=V5Msso~aGp z=$a4;ISJdFS7HQj7~XOF3Q4VR6RbBx#PecvN=jO-W~;cx3|mH%(-5`nV#jSNsWL*% zmfck4w0cfK@KMv#iI`q4jh3bwX~))WPQukrtF7avyUBEKnu-b#Up|!)Gt``JYS|6W z=3>3tq=W5g!`5btVMTSTl#ygDRxj8asYFZ3qHCoK8 zV|3=(;%POo71RiRXA!uUR&GJj=cxtO%*Kv#VhD6-cR+G)V({Iy9 zz##J>$M!5cVUjb34H#@|EY_yehcdq_EAUfB_Hu{r?2MeB)RFD#8Co+Wv$Rx~md`0I z@2JYvQkY#Tg;?&DWZ!kT?QOUNSFb--@^AP2-?@7IH!u00T)qCA7r5c-tshlBAX(XW z_td4%U6&5Lq%Q6~bZP(d=il9NaqkgTc_%Jo?+p%z-Hzz+%v;^d&M{Y7Zn%H{%)Pv@ kf9HkQpS|_X?0RkNgp9f>OaK2a;-S3rx4MXX#vdE}7uuZu+5i9m delta 1594 zcmYM!e`w5c9LMp`&Fyw>Z0GjNWij*l@LU!oJg<0AZp zsmyQYv%DfI8nFcr;yCnpj48lU+=2DD8lT{3EKW8iP4yVSCS*ruKWgEJZF>(YgV$~S zQ`Ck&U?TIIZ??lPRSu_G$KpDyz@6BG%0vO%)DEYj7Q6syGFwnPj^Gm9 zi$(YvmARoQv=vhrLqRS^?Vt@cKs#!sCr|@j#Ibkf%L=t~`(paG{4@5f1a z7yTH=h3I3@$=Kv2|Jvy>Dypyxwc|JF#~A8vB#jtMX)4Yl4xlDjixqehtMMf&BLVWi z0xM9L?>Op6diXi-FyJ6Bt6}R}+SDB2Gtbq#5gUIWMKY8lz74%!H0QPj*MY=Z$mr`VDKM6NhCuqB$usN7U!7O>zfA{*uyZrNtdh zS$=mg><^YHXwQmA-8rFzw1M-T0~d~(Pp5AT^d9QJwC~gDTOED5aaXMONUXapT9!Y` P5iRt8bVTz4cU^x0grBj* diff --git a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po index 8a5fc21c..9e4380c2 100644 --- a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po @@ -2,14 +2,15 @@ # Copyright (C) 2011 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # +# Translators: # , 2011. # Harry Chen , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-09-05 23:31-0500\n" -"PO-Revision-Date: 2011-09-06 04:31+0000\n" +"POT-Creation-Date: 2011-09-11 16:16-0500\n" +"PO-Revision-Date: 2011-09-11 21:16+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -19,57 +20,62 @@ msgstr "" "Language: zh_TW\n" "Plural-Forms: nplurals=1; plural=0\n" -#: mediagoblin/auth/forms.py:24 mediagoblin/auth/forms.py:48 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "使用者名稱" -#: mediagoblin/auth/forms.py:29 mediagoblin/auth/forms.py:52 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 msgid "Password" msgstr "密碼" -#: mediagoblin/auth/forms.py:34 +#: mediagoblin/auth/forms.py:35 msgid "Passwords must match." msgstr "密碼必須一致" -#: mediagoblin/auth/forms.py:36 +#: mediagoblin/auth/forms.py:37 msgid "Confirm password" msgstr "確認密碼" -#: mediagoblin/auth/forms.py:38 +#: mediagoblin/auth/forms.py:39 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "再輸入一次,確定你沒有打錯字。" -#: mediagoblin/auth/forms.py:41 +#: mediagoblin/auth/forms.py:42 msgid "Email address" msgstr "電子郵件位置" -#: mediagoblin/auth/views.py:40 +#: mediagoblin/auth/views.py:42 msgid "Sorry, registration is disabled on this instance." msgstr "抱歉, 這個項目已經被暫停註冊." -#: mediagoblin/auth/views.py:58 +#: mediagoblin/auth/views.py:60 msgid "Sorry, a user with that name already exists." msgstr "抱歉, 這個使用者名稱已經存在." -#: mediagoblin/auth/views.py:62 +#: mediagoblin/auth/views.py:64 msgid "Sorry, that email address has already been taken." msgstr "抱歉,這個電子郵件已經被其他人使用了。" -#: mediagoblin/auth/views.py:160 +#: mediagoblin/auth/views.py:165 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "你的電子郵件位址已被認證. 你現在就可以登入, 編輯你的個人檔案而且遞交照片!" -#: mediagoblin/auth/views.py:166 +#: mediagoblin/auth/views.py:171 msgid "The verification key or user id is incorrect" msgstr "認證碼或是使用者帳號錯誤" -#: mediagoblin/auth/views.py:187 -#: mediagoblin/templates/mediagoblin/auth/resent_verification_email.html:22 +#: mediagoblin/auth/views.py:192 msgid "Resent your verification email." msgstr "重送認證信." +#: mediagoblin/auth/views.py:228 +msgid "" +"Could not send password recovery email as your username is inactive or your " +"account's email address has not been verified." +msgstr "" + #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "標題" @@ -107,7 +113,7 @@ msgstr "這個自訂字串已經被其他人用了" msgid "You are editing another user's media. Proceed with caution." msgstr "你正在編輯他人的媒體檔案. 請謹慎處理." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:154 msgid "You are editing a user's profile. Proceed with caution." msgstr "你正在編輯一位用戶的檔案. 請謹慎處理." @@ -183,6 +189,10 @@ msgstr "" "由 MediaGoblin製作, 它是一個 GNU 專案" +#: mediagoblin/templates/mediagoblin/root.html:24 +msgid "Explore" +msgstr "" + #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." msgstr "嗨!多媒體檔案愛好者!MediaGoblin是..." @@ -224,6 +234,60 @@ msgstr "" "由像你一樣的人們製作 (你可以幫我們改進軟體!)" +#: mediagoblin/templates/mediagoblin/root.html:38 +msgid "Excited to join us?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:39 +#, python-format +msgid "" +"\n" +" Create a free account\n" +" or\n" +" Set up MediaGoblin on your own server\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:53 +msgid "Most recent media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +msgid "Enter your new password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Enter your username or email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 +msgid "" +"\n" +" Your password has been changed. Try to log in now.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 +msgid "" +"\n" +" Check your inbox. We sent an email with a URL for changing your password.\n" +" " +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to change your GNU MediaGoblin password, open the following URL in \n" +"your web browser:\n" +"\n" +"%(verification_url)s\n" +"\n" +"If you think this is an error, just ignore this email and continue being\n" +"a happy goblin!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" msgstr "登入失敗!" @@ -236,6 +300,14 @@ msgstr "還沒有帳號嗎?" msgid "Create one here!" msgstr "在這裡建立一個吧!" +#: mediagoblin/templates/mediagoblin/auth/login.html:48 +msgid "Forgot your password?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:51 +msgid "Change it!" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "建立一個帳號!" @@ -428,7 +500,7 @@ msgstr "評論" msgid "I am sure I want to delete this" msgstr "" -#: mediagoblin/user_pages/views.py:176 +#: mediagoblin/user_pages/views.py:175 msgid "You are about to delete another user's media. Proceed with caution." msgstr "你在刪除其他人的媒體檔案。請小心處理喔。" From a2468d18ca39afed9102d707e7aea6a613ff2dab Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Mon, 12 Sep 2011 02:32:03 +0200 Subject: [PATCH 1021/2731] Feature #587 - Split storage.py into submodules * Removed storage.py * Created submodules for filestorage, cloudfiles, mountstorage * Changed test_storage to reflect the changes made in the storage module structure * Added mediagoblin.storage.filestorage.BasicFileStorage as a default for both publicstore and queuestore's `storage_class` --- mediagoblin/config_spec.ini | 2 + mediagoblin/storage.py | 568 ---------------------------- mediagoblin/storage/__init__.py | 240 ++++++++++++ mediagoblin/storage/cloudfiles.py | 156 ++++++++ mediagoblin/storage/filestorage.py | 78 ++++ mediagoblin/storage/mountstorage.py | 156 ++++++++ mediagoblin/tests/test_storage.py | 6 +- 7 files changed, 635 insertions(+), 571 deletions(-) delete mode 100644 mediagoblin/storage.py create mode 100644 mediagoblin/storage/__init__.py create mode 100644 mediagoblin/storage/cloudfiles.py create mode 100644 mediagoblin/storage/filestorage.py create mode 100644 mediagoblin/storage/mountstorage.py diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini index 6fefb581..0801b39e 100644 --- a/mediagoblin/config_spec.ini +++ b/mediagoblin/config_spec.ini @@ -43,10 +43,12 @@ allow_attachments = boolean(default=False) [storage:publicstore] +storage_class = string(default="mediagoblin.storage.filestorage:BasicFileStorage") base_dir = string(default="%(here)s/user_dev/media/public") base_url = string(default="/mgoblin_media/") [storage:queuestore] +storage_class = string(default="mediagoblin.storage.filestorage:BasicFileStorage") base_dir = string(default="%(here)s/user_dev/media/queue") diff --git a/mediagoblin/storage.py b/mediagoblin/storage.py deleted file mode 100644 index f9563031..00000000 --- a/mediagoblin/storage.py +++ /dev/null @@ -1,568 +0,0 @@ -# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . - -import os -import shutil -import urlparse -import uuid -import cloudfiles -import mimetypes -import tempfile - -from werkzeug.utils import secure_filename - -from mediagoblin import util - -######## -# Errors -######## - - -class Error(Exception): - pass - - -class InvalidFilepath(Error): - pass - - -class NoWebServing(Error): - pass - - -class NotImplementedError(Error): - pass - - -############################################### -# Storage interface & basic file implementation -############################################### - -class StorageInterface(object): - """ - Interface for the storage API. - - This interface doesn't actually provide behavior, but it defines - what kind of storage patterns subclasses should provide. - - It is important to note that the storage API idea of a "filepath" - is actually like ['dir1', 'dir2', 'file.jpg'], so keep that in - mind while reading method documentation. - - You should set up your __init__ method with whatever keyword - arguments are appropriate to your storage system, but you should - also passively accept all extraneous keyword arguments like: - - def __init__(self, **kwargs): - pass - - See BasicFileStorage as a simple implementation of the - StorageInterface. - """ - - # Whether this file store is on the local filesystem. - local_storage = False - - def __raise_not_implemented(self): - """ - Raise a warning about some component not implemented by a - subclass of this interface. - """ - raise NotImplementedError( - "This feature not implemented in this storage API implementation.") - - def file_exists(self, filepath): - """ - Return a boolean asserting whether or not file at filepath - exists in our storage system. - - Returns: - True / False depending on whether file exists or not. - """ - # Subclasses should override this method. - self.__raise_not_implemented() - - def get_file(self, filepath, mode='r'): - """ - Return a file-like object for reading/writing from this filepath. - - Should create directories, buckets, whatever, as necessary. - """ - # Subclasses should override this method. - self.__raise_not_implemented() - - def delete_file(self, filepath): - """ - Delete or dereference the file at filepath. - - This might need to delete directories, buckets, whatever, for - cleanliness. (Be sure to avoid race conditions on that though) - """ - # Subclasses should override this method. - self.__raise_not_implemented() - - def file_url(self, filepath): - """ - Get the URL for this file. This assumes our storage has been - mounted with some kind of URL which makes this possible. - """ - # Subclasses should override this method. - self.__raise_not_implemented() - - def get_unique_filepath(self, filepath): - """ - If a filename at filepath already exists, generate a new name. - - Eg, if the filename doesn't exist: - >>> storage_handler.get_unique_filename(['dir1', 'dir2', 'fname.jpg']) - [u'dir1', u'dir2', u'fname.jpg'] - - But if a file does exist, let's get one back with at uuid tacked on: - >>> storage_handler.get_unique_filename(['dir1', 'dir2', 'fname.jpg']) - [u'dir1', u'dir2', u'd02c3571-dd62-4479-9d62-9e3012dada29-fname.jpg'] - """ - # Make sure we have a clean filepath to start with, since - # we'll be possibly tacking on stuff to the filename. - filepath = clean_listy_filepath(filepath) - - if self.file_exists(filepath): - return filepath[:-1] + ["%s-%s" % (uuid.uuid4(), filepath[-1])] - else: - return filepath - - def get_local_path(self, filepath): - """ - If this is a local_storage implementation, give us a link to - the local filesystem reference to this file. - - >>> storage_handler.get_local_path(['foo', 'bar', 'baz.jpg']) - u'/path/to/mounting/foo/bar/baz.jpg' - """ - # Subclasses should override this method, if applicable. - self.__raise_not_implemented() - - def copy_locally(self, filepath, dest_path): - """ - Copy this file locally. - - A basic working method for this is provided that should - function both for local_storage systems and remote storge - systems, but if more efficient systems for copying locally - apply to your system, override this method with something more - appropriate. - """ - if self.local_storage: - shutil.copy( - self.get_local_path(filepath), dest_path) - else: - with self.get_file(filepath, 'rb') as source_file: - with file(dest_path, 'wb') as dest_file: - dest_file.write(source_file.read()) - - -class BasicFileStorage(StorageInterface): - """ - Basic local filesystem implementation of storage API - """ - - local_storage = True - - def __init__(self, base_dir, base_url=None, **kwargs): - """ - Keyword arguments: - - base_dir: Base directory things will be served out of. MUST - be an absolute path. - - base_url: URL files will be served from - """ - self.base_dir = base_dir - self.base_url = base_url - - def _resolve_filepath(self, filepath): - """ - Transform the given filepath into a local filesystem filepath. - """ - return os.path.join( - self.base_dir, *clean_listy_filepath(filepath)) - - def file_exists(self, filepath): - return os.path.exists(self._resolve_filepath(filepath)) - - def get_file(self, filepath, mode='r'): - # Make directories if necessary - if len(filepath) > 1: - directory = self._resolve_filepath(filepath[:-1]) - if not os.path.exists(directory): - os.makedirs(directory) - - # Grab and return the file in the mode specified - return open(self._resolve_filepath(filepath), mode) - - def delete_file(self, filepath): - # TODO: Also delete unused directories if empty (safely, with - # checks to avoid race conditions). - os.remove(self._resolve_filepath(filepath)) - - def file_url(self, filepath): - if not self.base_url: - raise NoWebServing( - "base_url not set, cannot provide file urls") - - return urlparse.urljoin( - self.base_url, - '/'.join(clean_listy_filepath(filepath))) - - def get_local_path(self, filepath): - return self._resolve_filepath(filepath) - - -# ---------------------------------------------------- -# OpenStack/Rackspace Cloud's Swift/CloudFiles support -# ---------------------------------------------------- - -class CloudFilesStorage(StorageInterface): - def __init__(self, **kwargs): - self.param_container = kwargs.get('cloudfiles_container') - self.param_user = kwargs.get('cloudfiles_user') - self.param_api_key = kwargs.get('cloudfiles_api_key') - self.param_host = kwargs.get('cloudfiles_host') - self.param_use_servicenet = kwargs.get('cloudfiles_use_servicenet') - - if not self.param_host: - print('No CloudFiles host URL specified, ' - 'defaulting to Rackspace US') - - self.connection = cloudfiles.get_connection( - username=self.param_user, - api_key=self.param_api_key, - servicenet=True if self.param_use_servicenet == 'true' or \ - self.param_use_servicenet == True else False) - - if not self.param_container == \ - self.connection.get_container(self.param_container): - self.container = self.connection.create_container( - self.param_container) - self.container.make_public( - ttl=60 * 60 * 2) - else: - self.container = self.connection.get_container( - self.param_container) - - self.container_uri = self.container.public_uri() - - def _resolve_filepath(self, filepath): - return '/'.join( - clean_listy_filepath(filepath)) - - def file_exists(self, filepath): - try: - object = self.container.get_object( - self._resolve_filepath(filepath)) - return True - except cloudfiles.errors.NoSuchObject: - return False - - def get_file(self, filepath, *args, **kwargs): - """ - - Doesn't care about the "mode" argument - """ - try: - obj = self.container.get_object( - self._resolve_filepath(filepath)) - except cloudfiles.errors.NoSuchObject: - obj = self.container.create_object( - self._resolve_filepath(filepath)) - - mimetype = mimetypes.guess_type( - filepath[-1]) - - if mimetype: - obj.content_type = mimetype[0] - - return CloudFilesStorageObjectWrapper(obj, *args, **kwargs) - - def delete_file(self, filepath): - # TODO: Also delete unused directories if empty (safely, with - # checks to avoid race conditions). - self.container.delete_object( - self._resolve_filepath(filepath)) - - def file_url(self, filepath): - return '/'.join([ - self.container_uri, - self._resolve_filepath(filepath)]) - - -class CloudFilesStorageObjectWrapper(): - """ - Wrapper for python-cloudfiles's cloudfiles.storage_object.Object - used to circumvent the mystic `medium.jpg` corruption issue, where - we had both python-cloudfiles and PIL doing buffering on both - ends and that breaking things. - - This wrapper currently meets mediagoblin's needs for a public_store - file-like object. - """ - def __init__(self, storage_object, *args, **kwargs): - self.storage_object = storage_object - - def read(self, *args, **kwargs): - return self.storage_object.read(*args, **kwargs) - - def write(self, data, *args, **kwargs): - """ - write data to the cloudfiles storage object - - The original motivation for this wrapper is to ensure - that buffered writing to a cloudfiles storage object does not overwrite - any preexisting data. - - Currently this method does not support any write modes except "append". - However if we should need it it would be easy implement. - """ - if self.storage_object.size and type(data) == str: - data = self.read() + data - - self.storage_object.write(data, *args, **kwargs) - - def close(self): - pass - - def __enter__(self): - """ - Context Manager API implementation - http://docs.python.org/library/stdtypes.html#context-manager-types - """ - return self - - def __exit__(self, *exc_info): - """ - Context Manger API implementation - see self.__enter__() - """ - self.close() - - -# ------------ -# MountStorage -# ------------ - -class MountStorage(StorageInterface): - """ - Experimental "Mount" virtual Storage Interface - - This isn't an interface to some real storage, instead it's a - redirecting interface, that redirects requests to other - "StorageInterface"s. - - For example, say you have the paths: - - 1. ['user_data', 'cwebber', 'avatar.jpg'] - 2. ['user_data', 'elrond', 'avatar.jpg'] - 3. ['media_entries', '34352f304c3f4d0ad8ad0f043522b6f2', 'thumb.jpg'] - - You could mount media_entries under CloudFileStorage and user_data - under BasicFileStorage. Then 1 would be passed to - BasicFileStorage under the path ['cwebber', 'avatar.jpg'] and 3 - would be passed to CloudFileStorage under - ['34352f304c3f4d0ad8ad0f043522b6f2', 'thumb.jpg']. - - In other words, this is kind of like mounting /home/ and /etc/ - under different filesystems on your operating system... but with - mediagoblin filestorages :) - - To set this up, you currently need to call the mount() method with - the target path and a backend, that shall be available under that - target path. You have to mount things in a sensible order, - especially you can't mount ["a", "b"] before ["a"]. - """ - def __init__(self, **kwargs): - self.mounttab = {} - - def mount(self, dirpath, backend): - """ - Mount a new backend under dirpath - """ - new_ent = clean_listy_filepath(dirpath) - - print "Mounting:", repr(new_ent) - already, rem_1, table, rem_2 = self._resolve_to_backend(new_ent, True) - print "===", repr(already), repr(rem_1), repr(rem_2), len(table) - - assert (len(rem_2) > 0) or (None not in table), \ - "That path is already mounted" - assert (len(rem_2) > 0) or (len(table)==0), \ - "A longer path is already mounted here" - - for part in rem_2: - table[part] = {} - table = table[part] - table[None] = backend - - def _resolve_to_backend(self, filepath, extra_info = False): - """ - extra_info = True is for internal use! - - Normally, returns the backend and the filepath inside that backend. - - With extra_info = True it returns the last directory node and the - remaining filepath from there in addition. - """ - table = self.mounttab - filepath = filepath[:] - res_fp = None - while True: - new_be = table.get(None) - if (new_be is not None) or res_fp is None: - res_be = new_be - res_fp = filepath[:] - res_extra = (table, filepath[:]) - # print "... New res: %r, %r, %r" % (res_be, res_fp, res_extra) - if len(filepath) == 0: - break - query = filepath.pop(0) - entry = table.get(query) - if entry is not None: - table = entry - res_extra = (table, filepath[:]) - else: - break - if extra_info: - return (res_be, res_fp) + res_extra - else: - return (res_be, res_fp) - - def resolve_to_backend(self, filepath): - backend, filepath = self._resolve_to_backend(filepath) - if backend is None: - raise Error("Path not mounted") - return backend, filepath - - def __repr__(self, table = None, indent = []): - res = [] - if table is None: - res.append("MountStorage<") - table = self.mounttab - v = table.get(None) - if v: - res.append(" " * len(indent) + repr(indent) + ": " + repr(v)) - for k, v in table.iteritems(): - if k == None: - continue - res.append(" " * len(indent) + repr(k) + ":") - res += self.__repr__(v, indent + [k]) - if table is self.mounttab: - res.append(">") - return "\n".join(res) - else: - return res - - def file_exists(self, filepath): - backend, filepath = self.resolve_to_backend(filepath) - return backend.file_exists(filepath) - - def get_file(self, filepath, mode='r'): - backend, filepath = self.resolve_to_backend(filepath) - return backend.get_file(filepath, mode) - - def delete_file(self, filepath): - backend, filepath = self.resolve_to_backend(filepath) - return backend.delete_file(filepath) - - def file_url(self, filepath): - backend, filepath = self.resolve_to_backend(filepath) - return backend.file_url(filepath) - - def get_local_path(self, filepath): - backend, filepath = self.resolve_to_backend(filepath) - return backend.get_local_path(filepath) - - def copy_locally(self, filepath, dest_path): - """ - Need to override copy_locally, because the local_storage - attribute is not correct. - """ - backend, filepath = self.resolve_to_backend(filepath) - backend.copy_locally(filepath, dest_path) - - -########### -# Utilities -########### - -def clean_listy_filepath(listy_filepath): - """ - Take a listy filepath (like ['dir1', 'dir2', 'filename.jpg']) and - clean out any nastiness from it. - - - >>> clean_listy_filepath([u'/dir1/', u'foo/../nasty', u'linooks.jpg']) - [u'dir1', u'foo_.._nasty', u'linooks.jpg'] - - Args: - - listy_filepath: a list of filepath components, mediagoblin - storage API style. - - Returns: - A cleaned list of unicode objects. - """ - cleaned_filepath = [ - unicode(secure_filename(filepath)) - for filepath in listy_filepath] - - if u'' in cleaned_filepath: - raise InvalidFilepath( - "A filename component could not be resolved into a usable name.") - - return cleaned_filepath - - -def storage_system_from_config(config_section): - """ - Utility for setting up a storage system from a config section. - - Note that a special argument may be passed in to - the config_section which is "storage_class" which will provide an - import path to a storage system. This defaults to - "mediagoblin.storage:BasicFileStorage" if otherwise undefined. - - Arguments: - - config_section: dictionary of config parameters - - Returns: - An instantiated storage system. - - Example: - storage_system_from_config( - {'base_url': '/media/', - 'base_dir': '/var/whatever/media/'}) - - Will return: - BasicFileStorage( - base_url='/media/', - base_dir='/var/whatever/media') - """ - # This construct is needed, because dict(config) does - # not replace the variables in the config items. - config_params = dict(config_section.iteritems()) - - if 'storage_class' in config_params: - storage_class = config_params['storage_class'] - config_params.pop('storage_class') - else: - storage_class = "mediagoblin.storage:BasicFileStorage" - - storage_class = util.import_component(storage_class) - return storage_class(**config_params) diff --git a/mediagoblin/storage/__init__.py b/mediagoblin/storage/__init__.py new file mode 100644 index 00000000..8665d9e5 --- /dev/null +++ b/mediagoblin/storage/__init__.py @@ -0,0 +1,240 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import os +import shutil +import urlparse +import uuid + +from werkzeug.utils import secure_filename + +from mediagoblin import util + +######## +# Errors +######## + + +class Error(Exception): + pass + + +class InvalidFilepath(Error): + pass + + +class NoWebServing(Error): + pass + + +class NotImplementedError(Error): + pass + + +############################################### +# Storage interface & basic file implementation +############################################### + +class StorageInterface(object): + """ + Interface for the storage API. + + This interface doesn't actually provide behavior, but it defines + what kind of storage patterns subclasses should provide. + + It is important to note that the storage API idea of a "filepath" + is actually like ['dir1', 'dir2', 'file.jpg'], so keep that in + mind while reading method documentation. + + You should set up your __init__ method with whatever keyword + arguments are appropriate to your storage system, but you should + also passively accept all extraneous keyword arguments like: + + def __init__(self, **kwargs): + pass + + See BasicFileStorage as a simple implementation of the + StorageInterface. + """ + + # Whether this file store is on the local filesystem. + local_storage = False + + def __raise_not_implemented(self): + """ + Raise a warning about some component not implemented by a + subclass of this interface. + """ + raise NotImplementedError( + "This feature not implemented in this storage API implementation.") + + def file_exists(self, filepath): + """ + Return a boolean asserting whether or not file at filepath + exists in our storage system. + + Returns: + True / False depending on whether file exists or not. + """ + # Subclasses should override this method. + self.__raise_not_implemented() + + def get_file(self, filepath, mode='r'): + """ + Return a file-like object for reading/writing from this filepath. + + Should create directories, buckets, whatever, as necessary. + """ + # Subclasses should override this method. + self.__raise_not_implemented() + + def delete_file(self, filepath): + """ + Delete or dereference the file at filepath. + + This might need to delete directories, buckets, whatever, for + cleanliness. (Be sure to avoid race conditions on that though) + """ + # Subclasses should override this method. + self.__raise_not_implemented() + + def file_url(self, filepath): + """ + Get the URL for this file. This assumes our storage has been + mounted with some kind of URL which makes this possible. + """ + # Subclasses should override this method. + self.__raise_not_implemented() + + def get_unique_filepath(self, filepath): + """ + If a filename at filepath already exists, generate a new name. + + Eg, if the filename doesn't exist: + >>> storage_handler.get_unique_filename(['dir1', 'dir2', 'fname.jpg']) + [u'dir1', u'dir2', u'fname.jpg'] + + But if a file does exist, let's get one back with at uuid tacked on: + >>> storage_handler.get_unique_filename(['dir1', 'dir2', 'fname.jpg']) + [u'dir1', u'dir2', u'd02c3571-dd62-4479-9d62-9e3012dada29-fname.jpg'] + """ + # Make sure we have a clean filepath to start with, since + # we'll be possibly tacking on stuff to the filename. + filepath = clean_listy_filepath(filepath) + + if self.file_exists(filepath): + return filepath[:-1] + ["%s-%s" % (uuid.uuid4(), filepath[-1])] + else: + return filepath + + def get_local_path(self, filepath): + """ + If this is a local_storage implementation, give us a link to + the local filesystem reference to this file. + + >>> storage_handler.get_local_path(['foo', 'bar', 'baz.jpg']) + u'/path/to/mounting/foo/bar/baz.jpg' + """ + # Subclasses should override this method, if applicable. + self.__raise_not_implemented() + + def copy_locally(self, filepath, dest_path): + """ + Copy this file locally. + + A basic working method for this is provided that should + function both for local_storage systems and remote storge + systems, but if more efficient systems for copying locally + apply to your system, override this method with something more + appropriate. + """ + if self.local_storage: + shutil.copy( + self.get_local_path(filepath), dest_path) + else: + with self.get_file(filepath, 'rb') as source_file: + with file(dest_path, 'wb') as dest_file: + dest_file.write(source_file.read()) + + +########### +# Utilities +########### + +def clean_listy_filepath(listy_filepath): + """ + Take a listy filepath (like ['dir1', 'dir2', 'filename.jpg']) and + clean out any nastiness from it. + + + >>> clean_listy_filepath([u'/dir1/', u'foo/../nasty', u'linooks.jpg']) + [u'dir1', u'foo_.._nasty', u'linooks.jpg'] + + Args: + - listy_filepath: a list of filepath components, mediagoblin + storage API style. + + Returns: + A cleaned list of unicode objects. + """ + cleaned_filepath = [ + unicode(secure_filename(filepath)) + for filepath in listy_filepath] + + if u'' in cleaned_filepath: + raise InvalidFilepath( + "A filename component could not be resolved into a usable name.") + + return cleaned_filepath + + +def storage_system_from_config(config_section): + """ + Utility for setting up a storage system from a config section. + + Note that a special argument may be passed in to + the config_section which is "storage_class" which will provide an + import path to a storage system. This defaults to + "mediagoblin.storage:BasicFileStorage" if otherwise undefined. + + Arguments: + - config_section: dictionary of config parameters + + Returns: + An instantiated storage system. + + Example: + storage_system_from_config( + {'base_url': '/media/', + 'base_dir': '/var/whatever/media/'}) + + Will return: + BasicFileStorage( + base_url='/media/', + base_dir='/var/whatever/media') + """ + # This construct is needed, because dict(config) does + # not replace the variables in the config items. + config_params = dict(config_section.iteritems()) + + if 'storage_class' in config_params: + storage_class = config_params['storage_class'] + config_params.pop('storage_class') + else: + storage_class = 'mediagoblin.storage.filestorage:BasicFileStorage' + + storage_class = util.import_component(storage_class) + return storage_class(**config_params) diff --git a/mediagoblin/storage/cloudfiles.py b/mediagoblin/storage/cloudfiles.py new file mode 100644 index 00000000..b1dd9450 --- /dev/null +++ b/mediagoblin/storage/cloudfiles.py @@ -0,0 +1,156 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +''' +Make it so that ``import cloudfiles`` does not pick THIS file, but the +python-cloudfiles one. + +http://docs.python.org/whatsnew/2.5.html#pep-328-absolute-and-relative-imports +''' +from __future__ import absolute_import + +from mediagoblin.storage import StorageInterface, clean_listy_filepath + +import cloudfiles +import mimetypes + +class CloudFilesStorage(StorageInterface): + ''' + OpenStack/Rackspace Cloud's Swift/CloudFiles support + ''' + + local_storage = False + + def __init__(self, **kwargs): + self.param_container = kwargs.get('cloudfiles_container') + self.param_user = kwargs.get('cloudfiles_user') + self.param_api_key = kwargs.get('cloudfiles_api_key') + self.param_host = kwargs.get('cloudfiles_host') + self.param_use_servicenet = kwargs.get('cloudfiles_use_servicenet') + + if not self.param_host: + print('No CloudFiles host URL specified, ' + 'defaulting to Rackspace US') + + self.connection = cloudfiles.get_connection( + username=self.param_user, + api_key=self.param_api_key, + servicenet=True if self.param_use_servicenet == 'true' or \ + self.param_use_servicenet == True else False) + + if not self.param_container == \ + self.connection.get_container(self.param_container): + self.container = self.connection.create_container( + self.param_container) + self.container.make_public( + ttl=60 * 60 * 2) + else: + self.container = self.connection.get_container( + self.param_container) + + self.container_uri = self.container.public_uri() + + def _resolve_filepath(self, filepath): + return '/'.join( + clean_listy_filepath(filepath)) + + def file_exists(self, filepath): + try: + object = self.container.get_object( + self._resolve_filepath(filepath)) + return True + except cloudfiles.errors.NoSuchObject: + return False + + def get_file(self, filepath, *args, **kwargs): + """ + - Doesn't care about the "mode" argument + """ + try: + obj = self.container.get_object( + self._resolve_filepath(filepath)) + except cloudfiles.errors.NoSuchObject: + obj = self.container.create_object( + self._resolve_filepath(filepath)) + + mimetype = mimetypes.guess_type( + filepath[-1]) + + if mimetype: + obj.content_type = mimetype[0] + + return CloudFilesStorageObjectWrapper(obj, *args, **kwargs) + + def delete_file(self, filepath): + # TODO: Also delete unused directories if empty (safely, with + # checks to avoid race conditions). + self.container.delete_object( + self._resolve_filepath(filepath)) + + def file_url(self, filepath): + return '/'.join([ + self.container_uri, + self._resolve_filepath(filepath)]) + + +class CloudFilesStorageObjectWrapper(): + """ + Wrapper for python-cloudfiles's cloudfiles.storage_object.Object + used to circumvent the mystic `medium.jpg` corruption issue, where + we had both python-cloudfiles and PIL doing buffering on both + ends and that breaking things. + + This wrapper currently meets mediagoblin's needs for a public_store + file-like object. + """ + def __init__(self, storage_object, *args, **kwargs): + self.storage_object = storage_object + + def read(self, *args, **kwargs): + return self.storage_object.read(*args, **kwargs) + + def write(self, data, *args, **kwargs): + """ + write data to the cloudfiles storage object + + The original motivation for this wrapper is to ensure + that buffered writing to a cloudfiles storage object does not overwrite + any preexisting data. + + Currently this method does not support any write modes except "append". + However if we should need it it would be easy implement. + """ + if self.storage_object.size and type(data) == str: + data = self.read() + data + + self.storage_object.write(data, *args, **kwargs) + + def close(self): + pass + + def __enter__(self): + """ + Context Manager API implementation + http://docs.python.org/library/stdtypes.html#context-manager-types + """ + return self + + def __exit__(self, *exc_info): + """ + Context Manger API implementation + see self.__enter__() + """ + self.close() diff --git a/mediagoblin/storage/filestorage.py b/mediagoblin/storage/filestorage.py new file mode 100644 index 00000000..22d6eb5a --- /dev/null +++ b/mediagoblin/storage/filestorage.py @@ -0,0 +1,78 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from mediagoblin.storage import ( + StorageInterface, + clean_listy_filepath, + NoWebServing) + +import os +import urlparse + + +class BasicFileStorage(StorageInterface): + """ + Basic local filesystem implementation of storage API + """ + + local_storage = True + + def __init__(self, base_dir, base_url=None, **kwargs): + """ + Keyword arguments: + - base_dir: Base directory things will be served out of. MUST + be an absolute path. + - base_url: URL files will be served from + """ + self.base_dir = base_dir + self.base_url = base_url + + def _resolve_filepath(self, filepath): + """ + Transform the given filepath into a local filesystem filepath. + """ + return os.path.join( + self.base_dir, *clean_listy_filepath(filepath)) + + def file_exists(self, filepath): + return os.path.exists(self._resolve_filepath(filepath)) + + def get_file(self, filepath, mode='r'): + # Make directories if necessary + if len(filepath) > 1: + directory = self._resolve_filepath(filepath[:-1]) + if not os.path.exists(directory): + os.makedirs(directory) + + # Grab and return the file in the mode specified + return open(self._resolve_filepath(filepath), mode) + + def delete_file(self, filepath): + # TODO: Also delete unused directories if empty (safely, with + # checks to avoid race conditions). + os.remove(self._resolve_filepath(filepath)) + + def file_url(self, filepath): + if not self.base_url: + raise NoWebServing( + "base_url not set, cannot provide file urls") + + return urlparse.urljoin( + self.base_url, + '/'.join(clean_listy_filepath(filepath))) + + def get_local_path(self, filepath): + return self._resolve_filepath(filepath) diff --git a/mediagoblin/storage/mountstorage.py b/mediagoblin/storage/mountstorage.py new file mode 100644 index 00000000..6adb7a0d --- /dev/null +++ b/mediagoblin/storage/mountstorage.py @@ -0,0 +1,156 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from medigoblin.storage import StorageInterface, clean_listy_filepath + + +class MountStorage(StorageInterface): + """ + Experimental "Mount" virtual Storage Interface + + This isn't an interface to some real storage, instead it's a + redirecting interface, that redirects requests to other + "StorageInterface"s. + + For example, say you have the paths: + + 1. ['user_data', 'cwebber', 'avatar.jpg'] + 2. ['user_data', 'elrond', 'avatar.jpg'] + 3. ['media_entries', '34352f304c3f4d0ad8ad0f043522b6f2', 'thumb.jpg'] + + You could mount media_entries under CloudFileStorage and user_data + under BasicFileStorage. Then 1 would be passed to + BasicFileStorage under the path ['cwebber', 'avatar.jpg'] and 3 + would be passed to CloudFileStorage under + ['34352f304c3f4d0ad8ad0f043522b6f2', 'thumb.jpg']. + + In other words, this is kind of like mounting /home/ and /etc/ + under different filesystems on your operating system... but with + mediagoblin filestorages :) + + To set this up, you currently need to call the mount() method with + the target path and a backend, that shall be available under that + target path. You have to mount things in a sensible order, + especially you can't mount ["a", "b"] before ["a"]. + """ + def __init__(self, **kwargs): + self.mounttab = {} + + def mount(self, dirpath, backend): + """ + Mount a new backend under dirpath + """ + new_ent = clean_listy_filepath(dirpath) + + print "Mounting:", repr(new_ent) + already, rem_1, table, rem_2 = self._resolve_to_backend(new_ent, True) + print "===", repr(already), repr(rem_1), repr(rem_2), len(table) + + assert (len(rem_2) > 0) or (None not in table), \ + "That path is already mounted" + assert (len(rem_2) > 0) or (len(table) == 0), \ + "A longer path is already mounted here" + + for part in rem_2: + table[part] = {} + table = table[part] + table[None] = backend + + def _resolve_to_backend(self, filepath, extra_info=False): + """ + extra_info = True is for internal use! + + Normally, returns the backend and the filepath inside that backend. + + With extra_info = True it returns the last directory node and the + remaining filepath from there in addition. + """ + table = self.mounttab + filepath = filepath[:] + res_fp = None + while True: + new_be = table.get(None) + if (new_be is not None) or res_fp is None: + res_be = new_be + res_fp = filepath[:] + res_extra = (table, filepath[:]) + # print "... New res: %r, %r, %r" % (res_be, res_fp, res_extra) + if len(filepath) == 0: + break + query = filepath.pop(0) + entry = table.get(query) + if entry is not None: + table = entry + res_extra = (table, filepath[:]) + else: + break + if extra_info: + return (res_be, res_fp) + res_extra + else: + return (res_be, res_fp) + + def resolve_to_backend(self, filepath): + backend, filepath = self._resolve_to_backend(filepath) + if backend is None: + raise Error("Path not mounted") + return backend, filepath + + def __repr__(self, table=None, indent=[]): + res = [] + if table is None: + res.append("MountStorage<") + table = self.mounttab + v = table.get(None) + if v: + res.append(" " * len(indent) + repr(indent) + ": " + repr(v)) + for k, v in table.iteritems(): + if k == None: + continue + res.append(" " * len(indent) + repr(k) + ":") + res += self.__repr__(v, indent + [k]) + if table is self.mounttab: + res.append(">") + return "\n".join(res) + else: + return res + + def file_exists(self, filepath): + backend, filepath = self.resolve_to_backend(filepath) + return backend.file_exists(filepath) + + def get_file(self, filepath, mode='r'): + backend, filepath = self.resolve_to_backend(filepath) + return backend.get_file(filepath, mode) + + def delete_file(self, filepath): + backend, filepath = self.resolve_to_backend(filepath) + return backend.delete_file(filepath) + + def file_url(self, filepath): + backend, filepath = self.resolve_to_backend(filepath) + return backend.file_url(filepath) + + def get_local_path(self, filepath): + backend, filepath = self.resolve_to_backend(filepath) + return backend.get_local_path(filepath) + + def copy_locally(self, filepath, dest_path): + """ + Need to override copy_locally, because the local_storage + attribute is not correct. + """ + backend, filepath = self.resolve_to_backend(filepath) + backend.copy_locally(filepath, dest_path) diff --git a/mediagoblin/tests/test_storage.py b/mediagoblin/tests/test_storage.py index 9c96f6ca..46ecb2ec 100644 --- a/mediagoblin/tests/test_storage.py +++ b/mediagoblin/tests/test_storage.py @@ -52,7 +52,7 @@ class FakeStorageSystem(): self.foobie = foobie self.blech = blech -class FakeRemoteStorage(storage.BasicFileStorage): +class FakeRemoteStorage(storage.filestorage.BasicFileStorage): # Theoretically despite this, all the methods should work but it # should force copying to the workbench local_storage = False @@ -66,7 +66,7 @@ def test_storage_system_from_config(): 'garbage_arg': 'trash'}) assert this_storage.base_url == 'http://example.org/moodia/' assert this_storage.base_dir == '/tmp/' - assert this_storage.__class__ is storage.BasicFileStorage + assert this_storage.__class__ is storage.filestorage.BasicFileStorage this_storage = storage.storage_system_from_config( {'foobie': 'eiboof', @@ -88,7 +88,7 @@ def get_tmp_filestorage(mount_url=None, fake_remote=False): if fake_remote: this_storage = FakeRemoteStorage(tmpdir, mount_url) else: - this_storage = storage.BasicFileStorage(tmpdir, mount_url) + this_storage = storage.filestorage.BasicFileStorage(tmpdir, mount_url) return tmpdir, this_storage From fd10c71644f12b0a56247c782566af1c37df5851 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Wed, 14 Sep 2011 02:08:01 +0200 Subject: [PATCH 1022/2731] Fixed ./bin/gmg. import_export would not find BasicFileStorage, and ./bin/gmg would throw an error no matter what command you tried to run. --- mediagoblin/gmg_commands/import_export.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/gmg_commands/import_export.py b/mediagoblin/gmg_commands/import_export.py index fc5c88a8..05edbfc8 100644 --- a/mediagoblin/gmg_commands/import_export.py +++ b/mediagoblin/gmg_commands/import_export.py @@ -17,7 +17,7 @@ from mediagoblin import mg_globals from mediagoblin.db.open import setup_connection_and_db_from_config from mediagoblin.init.config import read_mediagoblin_config -from mediagoblin.storage import BasicFileStorage +from mediagoblin.storage.filestorage import BasicFileStorage from mediagoblin.init import setup_storage, setup_global_and_app_config import shutil From 32d1a69d2f1293cb53cf9620f0e0a4f266ad230b Mon Sep 17 00:00:00 2001 From: Elrond Date: Wed, 14 Sep 2011 19:52:47 +0200 Subject: [PATCH 1023/2731] Templates: Use request.staticdirect instead of /mgoblin_static Any reference to static, shipped content should use request.staticdirect instead of the default path. Especially if hosting mediagoblin via fastcgi, the paths might need changing. --- mediagoblin/templates/mediagoblin/utils/pagination.html | 4 ++-- mediagoblin/templates/mediagoblin/utils/prev_next.html | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/utils/pagination.html b/mediagoblin/templates/mediagoblin/utils/pagination.html index 87e15e0f..0df3bfea 100644 --- a/mediagoblin/templates/mediagoblin/utils/pagination.html +++ b/mediagoblin/templates/mediagoblin/utils/pagination.html @@ -36,7 +36,7 @@ {% set prev_url = pagination.get_page_url_explicit( base_url, get_params, pagination.page - 1) %} - Previous page + Previous page {% trans %}Newer{% endtrans %} {% endif %} {% if pagination.has_next %} @@ -44,7 +44,7 @@ base_url, get_params, pagination.page + 1) %} {% trans %}Older{% endtrans %} - Next page + Next page {% endif %}
Go to page: diff --git a/mediagoblin/templates/mediagoblin/utils/prev_next.html b/mediagoblin/templates/mediagoblin/utils/prev_next.html index 74f855ed..75903076 100644 --- a/mediagoblin/templates/mediagoblin/utils/prev_next.html +++ b/mediagoblin/templates/mediagoblin/utils/prev_next.html @@ -25,23 +25,23 @@ {# There are no previous entries for the very first media entry #} {% if prev_entry_url %} - Previous image + Previous image {% else %} {# This is the first entry. display greyed-out 'previous' image #} {% endif %} {# Likewise, this could be the very last media entry #} {% if next_entry_url %} - Next image + Next image {% else %} {# This is the last entry. display greyed-out 'next' image #} {% endif %} From dd1756ee19fc22d13bd207174e37ec5a68892a89 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Thu, 15 Sep 2011 13:19:25 +0200 Subject: [PATCH 1024/2731] mountstorage - Changed typo in import --- mediagoblin/storage/mountstorage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/storage/mountstorage.py b/mediagoblin/storage/mountstorage.py index 6adb7a0d..7239931f 100644 --- a/mediagoblin/storage/mountstorage.py +++ b/mediagoblin/storage/mountstorage.py @@ -14,7 +14,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from medigoblin.storage import StorageInterface, clean_listy_filepath +from mediagoblin.storage import StorageInterface, clean_listy_filepath class MountStorage(StorageInterface): From 93bdab9daad3ae431afd41a2efaefae05a555d88 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Fri, 23 Sep 2011 02:35:57 +0200 Subject: [PATCH 1025/2731] Multimedia support - Commiting from a not yet finished state - Details below * DONE Initially testing with arista ** DONE Video display templates *** TODO Multi-browser support ** TODO Video thumbnails ** TODO Link to original video ** TODO Video cropping Also contains a lot of "debug" print's --- mediagoblin/db/migrations.py | 8 + mediagoblin/init/celery/__init__.py | 5 + mediagoblin/media_types/__init__.py | 70 +++++ mediagoblin/media_types/image/__init__.py | 28 ++ mediagoblin/media_types/image/processing.py | 207 ++++++++++++++ mediagoblin/media_types/video/__init__.py | 26 ++ mediagoblin/media_types/video/processing.py | 260 ++++++++++++++++++ mediagoblin/storage/cloudfiles.py | 10 +- mediagoblin/submit/views.py | 13 +- .../mediagoblin/media_displays/image.html | 1 + .../mediagoblin/media_displays/video.html | 8 + .../mediagoblin/user_pages/media.html | 30 +- mediagoblin/user_pages/views.py | 6 +- 13 files changed, 649 insertions(+), 23 deletions(-) create mode 100644 mediagoblin/media_types/__init__.py create mode 100644 mediagoblin/media_types/image/__init__.py create mode 100644 mediagoblin/media_types/image/processing.py create mode 100644 mediagoblin/media_types/video/__init__.py create mode 100644 mediagoblin/media_types/video/processing.py create mode 100644 mediagoblin/templates/mediagoblin/media_displays/image.html create mode 100644 mediagoblin/templates/mediagoblin/media_displays/video.html diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py index 755f49c5..01df7208 100644 --- a/mediagoblin/db/migrations.py +++ b/mediagoblin/db/migrations.py @@ -107,3 +107,11 @@ def user_add_forgot_password_token_and_expires(database): {'fp_token_expire': {'$exists': False}}, {'$set': {'fp_token_expire': None}}, multi=True) + + +@RegisterMigration(7) +def media_type_image_to_multimedia_type_image(database): + database['media_entries'].update( + {'media_type': 'image'}, + {'$set': {'media_type': 'mediagoblin.media_types.image'}}, + multi=True) diff --git a/mediagoblin/init/celery/__init__.py b/mediagoblin/init/celery/__init__.py index c58b1305..05c54b05 100644 --- a/mediagoblin/init/celery/__init__.py +++ b/mediagoblin/init/celery/__init__.py @@ -17,8 +17,13 @@ import os import sys +from mediagoblin.media_types import get_media_types + MANDATORY_CELERY_IMPORTS = ['mediagoblin.process_media'] +MANDATORY_CELERY_IMPORTS = [i for i in get_media_types()] + +print(MANDATORY_CELERY_IMPORTS) DEFAULT_SETTINGS_MODULE = 'mediagoblin.init.celery.dummy_settings_module' diff --git a/mediagoblin/media_types/__init__.py b/mediagoblin/media_types/__init__.py new file mode 100644 index 00000000..67dab418 --- /dev/null +++ b/mediagoblin/media_types/__init__.py @@ -0,0 +1,70 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import os +import sys + +class FileTypeNotSupported(Exception): + pass + +class InvalidFileType(Exception): + pass + +MEDIA_TYPES = [ + 'mediagoblin.media_types.image', + 'mediagoblin.media_types.video'] + + +def get_media_types(): + for media_type in MEDIA_TYPES: + yield media_type + + +def get_media_managers(): + for media_type in get_media_types(): + ''' + FIXME + __import__ returns the lowest-level module. If the plugin is located + outside the conventional plugin module tree, it will not be loaded + properly because of the [...]ugin.media_types. + + We need this if we want to support a separate site-specific plugin + folder. + ''' + try: + __import__(media_type) + except ImportError as e: + raise Exception('ERROR: Could not import {0}: {1}'.format(media_type, e)) + + yield media_type, sys.modules[media_type].MEDIA_MANAGER + +def get_media_manager(_media_type = None): + for media_type, manager in get_media_managers(): + if media_type in _media_type: + return manager + + +def get_media_type_and_manager(filename): + for media_type, manager in get_media_managers(): + if filename.find('.') > 0: + ext = os.path.splitext(filename)[1].lower() + else: + raise InvalidFileType( + 'Could not find any file extension in "{0}"'.format( + filename)) + + if ext[1:] in manager['accepted_extensions']: + return media_type, manager diff --git a/mediagoblin/media_types/image/__init__.py b/mediagoblin/media_types/image/__init__.py new file mode 100644 index 00000000..0cd0383f --- /dev/null +++ b/mediagoblin/media_types/image/__init__.py @@ -0,0 +1,28 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from mediagoblin.media_types.image.processing import process_media + + +MEDIA_MANAGER = { + "human_readable": "Image", + "processor": process_media, # alternately a string, + # 'mediagoblin.media_types.image.processing'? + "display_template": "mediagoblin/media_displays/image.html", + "default_thumb": "images/media_thumbs/image.jpg", + "accepted_extensions": ["jpg", "jpeg", "png", "gif", "tiff"], + "accepted_mimetypes": [ + "image/jpeg", "image/png", "image/gif", "image/tiff"]} diff --git a/mediagoblin/media_types/image/processing.py b/mediagoblin/media_types/image/processing.py new file mode 100644 index 00000000..2c4ad2b1 --- /dev/null +++ b/mediagoblin/media_types/image/processing.py @@ -0,0 +1,207 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import Image + +from celery.task import Task +from celery import registry + +from mediagoblin.db.util import ObjectId +from mediagoblin import mg_globals as mgg + +from mediagoblin.util import lazy_pass_to_ugettext as _ + +THUMB_SIZE = 180, 180 +MEDIUM_SIZE = 640, 640 + + +def create_pub_filepath(entry, filename): + return mgg.public_store.get_unique_filepath( + ['media_entries', + unicode(entry['_id']), + filename]) + + +class BaseProcessingFail(Exception): + """ + Base exception that all other processing failure messages should + subclass from. + + You shouldn't call this itself; instead you should subclass it + and provid the exception_path and general_message applicable to + this error. + """ + general_message = u'' + + @property + def exception_path(self): + return u"%s:%s" % ( + self.__class__.__module__, self.__class__.__name__) + + def __init__(self, **metadata): + self.metadata = metadata or {} + + +class BadMediaFail(BaseProcessingFail): + """ + Error that should be raised when an inappropriate file was given + for the media type specified. + """ + general_message = _(u'Invalid file given for media type.') + + +################################ +# Media processing initial steps +################################ + +class ProcessMedia(Task): + """ + Pass this entry off for processing. + """ + def run(self, media_id): + """ + Pass the media entry off to the appropriate processing function + (for now just process_image...) + """ + entry = mgg.database.MediaEntry.one( + {'_id': ObjectId(media_id)}) + + # Try to process, and handle expected errors. + try: + process_image(entry) + except BaseProcessingFail, exc: + mark_entry_failed(entry[u'_id'], exc) + return + + entry['state'] = u'processed' + entry.save() + + def on_failure(self, exc, task_id, args, kwargs, einfo): + """ + If the processing failed we should mark that in the database. + + Assuming that the exception raised is a subclass of BaseProcessingFail, + we can use that to get more information about the failure and store that + for conveying information to users about the failure, etc. + """ + entry_id = args[0] + mark_entry_failed(entry_id, exc) + + +process_media = registry.tasks[ProcessMedia.name] + + +def mark_entry_failed(entry_id, exc): + """ + Mark a media entry as having failed in its conversion. + + Uses the exception that was raised to mark more information. If the + exception is a derivative of BaseProcessingFail then we can store extra + information that can be useful for users telling them why their media failed + to process. + + Args: + - entry_id: The id of the media entry + + """ + # Was this a BaseProcessingFail? In other words, was this a + # type of error that we know how to handle? + if isinstance(exc, BaseProcessingFail): + # Looks like yes, so record information about that failure and any + # metadata the user might have supplied. + mgg.database['media_entries'].update( + {'_id': entry_id}, + {'$set': {u'state': u'failed', + u'fail_error': exc.exception_path, + u'fail_metadata': exc.metadata}}) + else: + # Looks like no, so just mark it as failed and don't record a + # failure_error (we'll assume it wasn't handled) and don't record + # metadata (in fact overwrite it if somehow it had previous info + # here) + mgg.database['media_entries'].update( + {'_id': entry_id}, + {'$set': {u'state': u'failed', + u'fail_error': None, + u'fail_metadata': {}}}) + + +def process_image(entry): + """ + Code to process an image + """ + workbench = mgg.workbench_manager.create_workbench() + + queued_filepath = entry['queued_media_file'] + queued_filename = workbench.localized_file( + mgg.queue_store, queued_filepath, + 'source') + + try: + thumb = Image.open(queued_filename) + except IOError: + raise BadMediaFail() + + thumb.thumbnail(THUMB_SIZE, Image.ANTIALIAS) + # ensure color mode is compatible with jpg + if thumb.mode != "RGB": + thumb = thumb.convert("RGB") + + thumb_filepath = create_pub_filepath(entry, 'thumbnail.jpg') + thumb_file = mgg.public_store.get_file(thumb_filepath, 'w') + + with thumb_file: + thumb.save(thumb_file, "JPEG", quality=90) + + # If the size of the original file exceeds the specified size of a `medium` + # file, a `medium.jpg` files is created and later associated with the media + # entry. + medium = Image.open(queued_filename) + medium_processed = False + + if medium.size[0] > MEDIUM_SIZE[0] or medium.size[1] > MEDIUM_SIZE[1]: + medium.thumbnail(MEDIUM_SIZE, Image.ANTIALIAS) + + if medium.mode != "RGB": + medium = medium.convert("RGB") + + medium_filepath = create_pub_filepath(entry, 'medium.jpg') + medium_file = mgg.public_store.get_file(medium_filepath, 'w') + + with medium_file: + medium.save(medium_file, "JPEG", quality=90) + medium_processed = True + + # we have to re-read because unlike PIL, not everything reads + # things in string representation :) + queued_file = file(queued_filename, 'rb') + + with queued_file: + original_filepath = create_pub_filepath(entry, queued_filepath[-1]) + + with mgg.public_store.get_file(original_filepath, 'wb') as original_file: + original_file.write(queued_file.read()) + + mgg.queue_store.delete_file(queued_filepath) + entry['queued_media_file'] = [] + media_files_dict = entry.setdefault('media_files', {}) + media_files_dict['thumb'] = thumb_filepath + media_files_dict['original'] = original_filepath + if medium_processed: + media_files_dict['medium'] = medium_filepath + + # clean up workbench + workbench.destroy_self() diff --git a/mediagoblin/media_types/video/__init__.py b/mediagoblin/media_types/video/__init__.py new file mode 100644 index 00000000..2a36623e --- /dev/null +++ b/mediagoblin/media_types/video/__init__.py @@ -0,0 +1,26 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from mediagoblin.media_types.video.processing import process_media + + +MEDIA_MANAGER = { + "human_readable": "Video", + "processor": process_media, # alternately a string, + # 'mediagoblin.media_types.image.processing'? + "display_template": "mediagoblin/media_displays/video.html", + "default_thumb": "images/media_thumbs/video.jpg", + "accepted_extensions": ["mp4", "mov", "webm", "avi", "3gp", "3gpp"]} diff --git a/mediagoblin/media_types/video/processing.py b/mediagoblin/media_types/video/processing.py new file mode 100644 index 00000000..94784836 --- /dev/null +++ b/mediagoblin/media_types/video/processing.py @@ -0,0 +1,260 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import Image +import tempfile + +from celery.task import Task +from celery import registry + +from mediagoblin.db.util import ObjectId +from mediagoblin import mg_globals as mgg + +from mediagoblin.util import lazy_pass_to_ugettext as _ + +import gobject + +import gst +import arista + +from arista.transcoder import TranscoderOptions + +THUMB_SIZE = 180, 180 +MEDIUM_SIZE = 640, 640 +ARISTA_DEVICE_KEY = 'web' + + +loop = None + + +def process_video(entry): + """ + Code to process a video + """ + info = {} + workbench = mgg.workbench_manager.create_workbench() + + queued_filepath = entry['queued_media_file'] + queued_filename = workbench.localized_file( + mgg.queue_store, queued_filepath, + 'source') + + arista.init() + + devices = arista.presets.get() + device = devices[ARISTA_DEVICE_KEY] + + queue = arista.queue.TranscodeQueue() + + info['tmp_file'] = tmp_file = tempfile.NamedTemporaryFile() + + info['medium_filepath'] = medium_filepath = create_pub_filepath(entry, 'video.webm') + + output = tmp_file.name + + uri = 'file://' + queued_filename + + preset = device.presets[device.default] + + opts = TranscoderOptions(uri, preset, output) + + queue.append(opts) + + info['entry'] = entry + + queue.connect("entry-start", entry_start, info) +# queue.connect("entry-pass-setup", entry_pass_setup, options) + queue.connect("entry-error", entry_error, info) + queue.connect("entry-complete", entry_complete, info) + + info['loop'] = loop = gobject.MainLoop() + + loop.run() + + # we have to re-read because unlike PIL, not everything reads + # things in string representation :) + queued_file = file(queued_filename, 'rb') + + with queued_file: + original_filepath = create_pub_filepath(entry, queued_filepath[-1]) + + with mgg.public_store.get_file(original_filepath, 'wb') as original_file: + original_file.write(queued_file.read()) + + mgg.queue_store.delete_file(queued_filepath) + entry['queued_media_file'] = [] + media_files_dict = entry.setdefault('media_files', {}) + media_files_dict['original'] = original_filepath + + # clean up workbench + workbench.destroy_self() + + +def create_pub_filepath(entry, filename): + return mgg.public_store.get_unique_filepath( + ['media_entries', + unicode(entry['_id']), + filename]) + + +class BaseProcessingFail(Exception): + """ + Base exception that all other processing failure messages should + subclass from. + + You shouldn't call this itself; instead you should subclass it + and provid the exception_path and general_message applicable to + this error. + """ + general_message = u'' + + @property + def exception_path(self): + return u"%s:%s" % ( + self.__class__.__module__, self.__class__.__name__) + + def __init__(self, **metadata): + self.metadata = metadata or {} + + +class BadMediaFail(BaseProcessingFail): + """ + Error that should be raised when an inappropriate file was given + for the media type specified. + """ + general_message = _(u'Invalid file given for media type.') + + +################################ +# Media processing initial steps +################################ + +class ProcessMedia(Task): + """ + Pass this entry off for processing. + """ + def run(self, media_id): + """ + Pass the media entry off to the appropriate processing function + (for now just process_image...) + """ + entry = mgg.database.MediaEntry.one( + {'_id': ObjectId(media_id)}) + + # Try to process, and handle expected errors. + try: + process_video(entry) + except BaseProcessingFail, exc: + mark_entry_failed(entry[u'_id'], exc) + return + + entry['state'] = u'processed' + entry.save() + + def on_failure(self, exc, task_id, args, kwargs, einfo): + """ + If the processing failed we should mark that in the database. + + Assuming that the exception raised is a subclass of BaseProcessingFail, + we can use that to get more information about the failure and store that + for conveying information to users about the failure, etc. + """ + entry_id = args[0] + mark_entry_failed(entry_id, exc) + + +process_media = registry.tasks[ProcessMedia.name] + + +def mark_entry_failed(entry_id, exc): + """ + Mark a media entry as having failed in its conversion. + + Uses the exception that was raised to mark more information. If the + exception is a derivative of BaseProcessingFail then we can store extra + information that can be useful for users telling them why their media failed + to process. + + Args: + - entry_id: The id of the media entry + + """ + # Was this a BaseProcessingFail? In other words, was this a + # type of error that we know how to handle? + if isinstance(exc, BaseProcessingFail): + # Looks like yes, so record information about that failure and any + # metadata the user might have supplied. + mgg.database['media_entries'].update( + {'_id': entry_id}, + {'$set': {u'state': u'failed', + u'fail_error': exc.exception_path, + u'fail_metadata': exc.metadata}}) + else: + # Looks like no, so just mark it as failed and don't record a + # failure_error (we'll assume it wasn't handled) and don't record + # metadata (in fact overwrite it if somehow it had previous info + # here) + mgg.database['media_entries'].update( + {'_id': entry_id}, + {'$set': {u'state': u'failed', + u'fail_error': None, + u'fail_metadata': {}}}) + + +def entry_start(queue, entry, options): + print(queue, entry, options) + +def entry_complete(queue, entry, info): + entry.transcoder.stop() + gobject.idle_add(info['loop'].quit) + + with info['tmp_file'] as tmp_file: + mgg.public_store.get_file(info['medium_filepath'], 'wb').write( + tmp_file.read()) + info['entry']['media_files']['medium'] = info['medium_filepath'] + + print('\n=== DONE! ===\n') + + print(queue, entry, info) + +def entry_error(queue, entry, options): + print(queue, entry, options) + +def signal_handler(signum, frame): + """ + Handle Ctr-C gracefully and shut down the transcoder. + """ + global interrupted + print + print _("Interrupt caught. Cleaning up... (Ctrl-C to force exit)") + interrupted = True + signal.signal(signal.SIGINT, signal.SIG_DFL) + +def check_interrupted(): + """ + Check whether we have been interrupted by Ctrl-C and stop the + transcoder. + """ + if interrupted: + try: + source = transcoder.pipe.get_by_name("source") + source.send_event(gst.event_new_eos()) + except: + # Something pretty bad happened... just exit! + gobject.idle_add(loop.quit) + + return False + return True diff --git a/mediagoblin/storage/cloudfiles.py b/mediagoblin/storage/cloudfiles.py index b1dd9450..85d52242 100644 --- a/mediagoblin/storage/cloudfiles.py +++ b/mediagoblin/storage/cloudfiles.py @@ -97,8 +97,14 @@ class CloudFilesStorage(StorageInterface): def delete_file(self, filepath): # TODO: Also delete unused directories if empty (safely, with # checks to avoid race conditions). - self.container.delete_object( - self._resolve_filepath(filepath)) + try: + self.container.delete_object( + self._resolve_filepath(filepath)) + except cloudfiles.container.ResponseError: + pass + finally: + pass + def file_url(self, filepath): return '/'.join([ diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index e24d78f3..78f52160 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -28,8 +28,9 @@ from mediagoblin.util import ( from mediagoblin.util import pass_to_ugettext as _ from mediagoblin.decorators import require_active_login from mediagoblin.submit import forms as submit_forms, security -from mediagoblin.process_media import process_media, mark_entry_failed +from mediagoblin.process_media import mark_entry_failed from mediagoblin.messages import add_message, SUCCESS +from mediagoblin.media_types import get_media_type_and_manager @require_active_login @@ -45,15 +46,15 @@ def submit_start(request): and request.POST['file'].file): submit_form.file.errors.append( _(u'You must provide a file.')) - elif not security.check_filetype(request.POST['file']): - submit_form.file.errors.append( - _(u"The file doesn't seem to be an image!")) else: filename = request.POST['file'].filename + media_type, media_manager = get_media_type_and_manager(filename) + # create entry and save in database entry = request.db.MediaEntry() entry['_id'] = ObjectId() + entry['media_type'] = unicode(media_type) entry['title'] = ( unicode(request.POST['title']) or unicode(splitext(filename)[0])) @@ -62,7 +63,6 @@ def submit_start(request): entry['description_html'] = cleaned_markdown_conversion( entry['description']) - entry['media_type'] = u'image' # heh entry['uploader'] = request.user['_id'] # Process the user's folksonomy "tags" @@ -72,6 +72,7 @@ def submit_start(request): # Generate a slug from the title entry.generate_slug() + # Now store generate the queueing related filename queue_filepath = request.app.queue_store.get_unique_filepath( ['media_entries', @@ -103,7 +104,7 @@ def submit_start(request): # (... don't change entry after this point to avoid race # conditions with changes to the document via processing code) try: - process_media.apply_async( + media_manager['processor'].apply_async( [unicode(entry['_id'])], {}, task_id=task_id) except BaseException as exc: diff --git a/mediagoblin/templates/mediagoblin/media_displays/image.html b/mediagoblin/templates/mediagoblin/media_displays/image.html new file mode 100644 index 00000000..ad60fa94 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/media_displays/image.html @@ -0,0 +1 @@ +{% extends 'mediagoblin/user_pages/media.html' %} diff --git a/mediagoblin/templates/mediagoblin/media_displays/video.html b/mediagoblin/templates/mediagoblin/media_displays/video.html new file mode 100644 index 00000000..37586924 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/media_displays/video.html @@ -0,0 +1,8 @@ +{% extends 'mediagoblin/user_pages/media.html' %} +{% block mediagoblin_media %} + +{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 442bef6d..82a48e7c 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -24,24 +24,26 @@ {% if media %}
- {% set display_media = request.app.public_store.file_url( - media.get_display_media(media.media_files)) %} + {% block mediagoblin_media %} + {% set display_media = request.app.public_store.file_url( + media.get_display_media(media.media_files)) %} - {# if there's a medium file size, that means the medium size - # isn't the original... so link to the original! - #} - {% if media['media_files'].has_key('medium') %} - + {# if there's a medium file size, that means the medium size + # isn't the original... so link to the original! + #} + {% if media['media_files'].has_key('medium') %} + + Image for {{ media.title }} + + {% else %} Image for {{ media.title }} - - {% else %} - Image for {{ media.title }} - {% endif %} + {% endif %} + {% endblock %}

diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 6a82d718..5458c694 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -29,6 +29,8 @@ from mediagoblin.decorators import (uses_pagination, get_user_media_entry, from werkzeug.contrib.atom import AtomFeed +from mediagoblin.media_types import get_media_manager + @uses_pagination def user_home(request, page): @@ -113,9 +115,11 @@ def media_home(request, media, page, **kwargs): comment_form = user_forms.MediaCommentForm(request.POST) + media_template_name = get_media_manager(media['media_type'])['display_template'] + return render_to_response( request, - 'mediagoblin/user_pages/media.html', + media_template_name, {'media': media, 'comments': comments, 'pagination': pagination, From 1f255101f54579760f2238d70dd3aa0b3cd4ba92 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Sat, 24 Sep 2011 02:21:46 +0200 Subject: [PATCH 1026/2731] Multimedia support - Refractored video processing. --- mediagoblin/media_types/__init__.py | 1 + .../video/presets/web-advanced.json | 505 +++++++++ .../media_types/video/presets/web-flv.png | Bin 0 -> 2234 bytes .../media_types/video/presets/web-webm.svg | 259 +++++ mediagoblin/media_types/video/presets/web.svg | 982 ++++++++++++++++++ mediagoblin/media_types/video/processing.py | 186 ++-- .../static/images/media_thumbs/video.jpg | Bin 0 -> 7278 bytes .../mediagoblin/media_displays/video.html | 8 + 8 files changed, 1875 insertions(+), 66 deletions(-) create mode 100644 mediagoblin/media_types/video/presets/web-advanced.json create mode 100644 mediagoblin/media_types/video/presets/web-flv.png create mode 100644 mediagoblin/media_types/video/presets/web-webm.svg create mode 100644 mediagoblin/media_types/video/presets/web.svg create mode 100644 mediagoblin/static/images/media_thumbs/video.jpg diff --git a/mediagoblin/media_types/__init__.py b/mediagoblin/media_types/__init__.py index 67dab418..6a368cda 100644 --- a/mediagoblin/media_types/__init__.py +++ b/mediagoblin/media_types/__init__.py @@ -51,6 +51,7 @@ def get_media_managers(): yield media_type, sys.modules[media_type].MEDIA_MANAGER + def get_media_manager(_media_type = None): for media_type, manager in get_media_managers(): if media_type in _media_type: diff --git a/mediagoblin/media_types/video/presets/web-advanced.json b/mediagoblin/media_types/video/presets/web-advanced.json new file mode 100644 index 00000000..ce1d22ff --- /dev/null +++ b/mediagoblin/media_types/video/presets/web-advanced.json @@ -0,0 +1,505 @@ +{ + "make": "Generic", + "model": "Web Browser (Advanced)", + "description": "Media for World Wide Web", + "version": "0.1", + "author": { + "name": "Dionisio E Alonso", + "email": "dealonso@gmail.com" + }, + "icon": "file://web.svg", + "default": "WebM 480p", + "presets": [ + { + "name": "H.264 720p", + "extension": "mp4", + "container": "qtmux", + "vcodec": { + "name": "x264enc", + "container": "qtmux", + "width": [ + 960, 1280 + ], + "height": [ + 720, 720 + ], + "rate": [ + 1, 30 + ], + "passes": [ + "pass=qual quantizer=23 subme=6 cabac=0 threads=0" + ] + }, + "acodec": { + "name": "faac", + "container": "qtmux", + "width": [ + 8, 24 + ], + "depth": [ + 8, 24 + ], + "rate": [ + 8000, 96000 + ], + "channels": [ + 1, 2 + ], + "passes": [ + "bitrate=131072 profile=LC" + ] + } + }, + { + "name": "WebM 720p", + "extension": "webm", + "container": "webmmux", + "icon": "file://web-webm.svg", + "vcodec": { + "name": "vp8enc", + "container": "webmmux", + "width": [ + 960, 1280 + ], + "height": [ + 720, 720 + ], + "rate": [ + 1, 30 + ], + "passes": [ + "quality=5.75 threads=%(threads)s speed=2" + ] + }, + "acodec": { + "name": "vorbisenc", + "container": "webmmux", + "width": [ + 8, 32 + ], + "depth": [ + 8, 24 + ], + "rate": [ + 8000, 96000 + ], + "channels": [ + 1, 2 + ], + "passes": [ + "quality=0.3" + ] + } + }, + { + "name": "Flash Video 720p", + "extension": "flv", + "icon": "file://web-flv.png", + "container": "flvmux", + "vcodec": { + "name": "x264enc", + "container": "flvmux", + "width": [ + 960, 1280 + ], + "height": [ + 720, 720 + ], + "rate": [ + 1, 30 + ], + "passes": [ + "pass=qual quantizer=23 subme=6 cabac=0 threads=0" + ] + }, + "acodec": { + "name": "faac", + "container": "flvmux", + "width": [ + 8, 24 + ], + "depth": [ + 8, 24 + ], + "rate": [ + 8000, 96000 + ], + "channels": [ + 1, 2 + ], + "passes": [ + "bitrate=131072 profile=LC" + ] + } + }, + + { + "name": "H.264 576p", + "extension": "mp4", + "container": "qtmux", + "vcodec": { + "name": "x264enc", + "container": "qtmux", + "width": [ + 768, 1024 + ], + "height": [ + 576, 576 + ], + "rate": [ + 1, 30 + ], + "passes": [ + "pass=qual quantizer=23 subme=6 cabac=0 threads=0" + ] + }, + "acodec": { + "name": "faac", + "container": "qtmux", + "width": [ + 8, 24 + ], + "depth": [ + 8, 24 + ], + "rate": [ + 8000, 96000 + ], + "channels": [ + 1, 2 + ], + "passes": [ + "bitrate=131072 profile=LC" + ] + } + }, + { + "name": "WebM 576p", + "extension": "webm", + "container": "webmmux", + "icon": "file://web-webm.svg", + "vcodec": { + "name": "vp8enc", + "container": "webmmux", + "width": [ + 768, 1024 + ], + "height": [ + 576, 576 + ], + "rate": [ + 1, 30 + ], + "passes": [ + "quality=5.75 threads=%(threads)s speed=2" + ] + }, + "acodec": { + "name": "vorbisenc", + "container": "webmmux", + "width": [ + 8, 32 + ], + "depth": [ + 8, 24 + ], + "rate": [ + 8000, 96000 + ], + "channels": [ + 1, 2 + ], + "passes": [ + "quality=0.3" + ] + } + }, + { + "name": "Flash Video 576p", + "extension": "flv", + "icon": "file://web-flv.png", + "container": "flvmux", + "vcodec": { + "name": "x264enc", + "container": "flvmux", + "width": [ + 768, 1024 + ], + "height": [ + 576, 576 + ], + "rate": [ + 1, 30 + ], + "passes": [ + "pass=qual quantizer=23 subme=6 cabac=0 threads=0" + ] + }, + "acodec": { + "name": "faac", + "container": "flvmux", + "width": [ + 8, 24 + ], + "depth": [ + 8, 24 + ], + "rate": [ + 8000, 96000 + ], + "channels": [ + 1, 2 + ], + "passes": [ + "bitrate=131072 profile=LC" + ] + } + }, + + { + "name": "H.264 480p", + "extension": "mp4", + "container": "qtmux", + "vcodec": { + "name": "x264enc", + "container": "qtmux", + "width": [ + 640, 854 + ], + "height": [ + 480, 480 + ], + "rate": [ + 1, 30 + ], + "passes": [ + "pass=qual quantizer=23 subme=6 cabac=0 threads=0" + ] + }, + "acodec": { + "name": "faac", + "container": "qtmux", + "width": [ + 8, 24 + ], + "depth": [ + 8, 24 + ], + "rate": [ + 8000, 96000 + ], + "channels": [ + 1, 2 + ], + "passes": [ + "bitrate=131072 profile=LC" + ] + } + }, + { + "name": "WebM 480p", + "extension": "webm", + "container": "webmmux", + "icon": "file://web-webm.svg", + "vcodec": { + "name": "vp8enc", + "container": "webmmux", + "width": [ + 640, 854 + ], + "height": [ + 480, 480 + ], + "rate": [ + 1, 30 + ], + "passes": [ + "quality=5.75 threads=%(threads)s speed=2" + ] + }, + "acodec": { + "name": "vorbisenc", + "container": "webmmux", + "width": [ + 8, 32 + ], + "depth": [ + 8, 24 + ], + "rate": [ + 8000, 96000 + ], + "channels": [ + 1, 2 + ], + "passes": [ + "quality=0.3" + ] + } + }, + { + "name": "Flash Video 480p", + "extension": "flv", + "icon": "file://web-flv.png", + "container": "flvmux", + "vcodec": { + "name": "x264enc", + "container": "flvmux", + "width": [ + 640, 854 + ], + "height": [ + 480, 480 + ], + "rate": [ + 1, 30 + ], + "passes": [ + "pass=qual quantizer=23 subme=6 cabac=0 threads=0" + ] + }, + "acodec": { + "name": "faac", + "container": "flvmux", + "width": [ + 8, 24 + ], + "depth": [ + 8, 24 + ], + "rate": [ + 8000, 96000 + ], + "channels": [ + 1, 2 + ], + "passes": [ + "bitrate=131072 profile=LC" + ] + } + }, + + { + "name": "H.264 360p", + "extension": "mp4", + "container": "qtmux", + "vcodec": { + "name": "x264enc", + "container": "qtmux", + "width": [ + 480, 640 + ], + "height": [ + 360, 360 + ], + "rate": [ + 1, 30 + ], + "passes": [ + "pass=qual quantizer=23 subme=6 cabac=0 threads=0" + ] + }, + "acodec": { + "name": "faac", + "container": "qtmux", + "width": [ + 8, 24 + ], + "depth": [ + 8, 24 + ], + "rate": [ + 8000, 96000 + ], + "channels": [ + 1, 2 + ], + "passes": [ + "bitrate=131072 profile=LC" + ] + } + }, + { + "name": "WebM 360p", + "extension": "webm", + "container": "webmmux", + "icon": "file://web-webm.svg", + "vcodec": { + "name": "vp8enc", + "container": "webmmux", + "width": [ + 480, 640 + ], + "height": [ + 360, 360 + ], + "rate": [ + 1, 30 + ], + "passes": [ + "quality=5.75 threads=%(threads)s speed=2" + ] + }, + "acodec": { + "name": "vorbisenc", + "container": "webmmux", + "width": [ + 8, 32 + ], + "depth": [ + 8, 24 + ], + "rate": [ + 8000, 96000 + ], + "channels": [ + 1, 2 + ], + "passes": [ + "quality=0.3" + ] + } + }, + { + "name": "Flash Video 360p", + "extension": "flv", + "icon": "file://web-flv.png", + "container": "flvmux", + "vcodec": { + "name": "x264enc", + "container": "flvmux", + "width": [ + 480, 640 + ], + "height": [ + 360, 360 + ], + "rate": [ + 1, 30 + ], + "passes": [ + "pass=qual quantizer=23 subme=6 cabac=0 threads=0" + ] + }, + "acodec": { + "name": "faac", + "container": "flvmux", + "width": [ + 8, 24 + ], + "depth": [ + 8, 24 + ], + "rate": [ + 8000, 96000 + ], + "channels": [ + 1, 2 + ], + "passes": [ + "bitrate=131072 profile=LC" + ] + } + } + ] +} diff --git a/mediagoblin/media_types/video/presets/web-flv.png b/mediagoblin/media_types/video/presets/web-flv.png new file mode 100644 index 0000000000000000000000000000000000000000..b75699f494cc5aefbdfb6c80ec099e434fcfd4de GIT binary patch literal 2234 zcmV;r2u1gaP)|?_Tq&~sV3GZOKpw#papARLcoG3`VgTMQIvv; zAc&Q|Sn=92DpLC()wZ@&M4E<}5REbIRL5ZSWMsh1Hs@{|h$cc2Ip8CQfh$lu z0J4u{n>wJh6yxSzfYe!I$I$uu{2Hunq8N#80AI{Sq=rBaWTFir5K7zxgHr zHK3X67h?ehD3`55AviH0zBr>f*Ojup9g?}WEtoJKtPIKKI>0?rK3^{^V|T=Cp3M*& z#>$QtdI*8&0DP6DLTiYXh6mo?Eu8PS*qyEg(j2(5z{_>Q+gvIv;`q6njY_d2f|fkv zpsYo-v532u2q;y;;t@!5p&4{3?BtlBDvjcRoR&rn_+&C+G8#gy2KAU)t3{fmh)#WX z3cy!s-y>i^=p3HMRWcUhi119BYuEG}8Lk^8lL^Ua#08h_F8sbNC3V*(kY;-JWU^js=8NghX-|Dw!*XFJ*zQFS~WZSZLhu)7-X=YYyJa75nd` zbIHZo3@zwnLey-cMH5kWwd|=hh+ECCH9WYxjVI(`68*NTV_+I%J(8*IJyYHt48 zm)Z8#Ye@QiChO~&>?lIggj6&-7vj60w%AOP2wUMolIQz8SjyoNWDUm}ZY+4<`+c@v zdo_E%^DR0%b};UpD}*UU)TpCW1C+{BH>DI@C`ZtFYOf?9x%Sgs`(+0TuLY69H^o{a zO%iJJbG-Ax&(mGp!DM~I%BnRRprCi^FZ52HV%X~;QRD=@o6*Wvok}1%9EbGYoq@RIP?;H1hQ8`@5UL47r&W z(DtsnnXFUJ7RAQNXvCH`FLBj9cQfe^>{z|qVda_Uc>LoBIrqv6al3RULc*uGt<1u?a_7OUlT*Ua?8UVFMgWjprJaO=otgWt6pPR>2a95so ztZI~L4tSzAaiLVQR9Z=ZVzIr7q3*~SkJ++&7fW~DPSPJ_19?h*>i#eA*ONzR&?OxV zh+D0|zl#`h<0-7rQwbzUkw&Kxuo^4J1PG(ykfjgaLHFVXt9_*u!(NYt8?NI$Z`nhw z+2YKxV;ueAV?=Q+$TlwcfSfL;(n<@MHZ2pmfL&|oB%!@<5lbI=W4BqI~{KN z!~swdjc$iOJoXa~fAwsVa$QMGwZkHpEF7u1e9HQ206>Aiv z!%$+ zqtS7mx&##|qFQWIr>l%og22>>88M&{649j7i*O(|Yvc6|=5{Qy?}5(|#WBfn2td8v z;-%+*$De-vH1*aTMCLJx{943Y_*m%%v-^E^5R+LTp&Z2FB0ZjvP9`KWX8RSpx$7HW zW#OtTt?Qr^N-3WG=0o&1)@XDt@Faym&5)~e*PZOMMuh@r)`7~Vh50uwa^cQ5ap}$P z;Q9~m=XGybwBQA3&&_f8(Pds({uyzrQ=G4YB4{ajuIZ14#dBs5ZK7mu*~*+ZnFQBmvwl#)E>&eOP(GNGASNDCyJSU~azo~T|& zoWcZvQncshSUquqNA5kq*_9OLyh5X`PS6E5NPN|gy;8j>47p%3;ij{&$ zMZ|fEJp9w2vwY}&{{F`kG}~R$pkfrR-~)FHnM1Rb^{O(YpM{WM(~v-x%IcjCtu6DY zC}Oy_>i#=jm@h%gBE1=D%tts-DzAejn3Z&Advk9?08 zAAf?gr(fcgqsRE$@#Bn!eHzU+QB)^&j}lc1k!s77)|4zTBL<+FVF`j#Jo(VWq)Y%s z9My^Ib?WU-u7qNCsiKF#E1OuC3Nc8jxAa;?Y#o@@qIQc&S{7lNZ((1@h)bX>&(ouy zC!IN7cw3A!(x_~jg-UQNP${ac2cjs7*_c}-tM@Tg+FbqZHhZX-%}=B5aur;?KIcpm zz8tH5<_^eKWU$$%QOPUu%q--$f`EVgD6CLE*%lD0#=>)vKS%64@G1fnuNG&44#Au6 z_FkrgEPpQ^XbPVfd++aWes=P4{D*1OUtMK^sl;%9G%0|D*7M0YdsbyzhkyXJ>KEA6 z6hi-3!K?zjSeKgWa^~t}BzH{Zq+*~3br+;67x2_*kQ{*04Rm588}ng + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/mediagoblin/media_types/video/presets/web.svg b/mediagoblin/media_types/video/presets/web.svg new file mode 100644 index 00000000..c0c68244 --- /dev/null +++ b/mediagoblin/media_types/video/presets/web.svg @@ -0,0 +1,982 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Globe + + + Jakub Steiner + + + + + Tuomas Kuosmanen + + + + http://jimmac.musichall.cz + + + globe + international + web + www + internet + network + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mediagoblin/media_types/video/processing.py b/mediagoblin/media_types/video/processing.py index 94784836..4cae1fd8 100644 --- a/mediagoblin/media_types/video/processing.py +++ b/mediagoblin/media_types/video/processing.py @@ -16,6 +16,7 @@ import Image import tempfile +import pkg_resources from celery.task import Task from celery import registry @@ -25,10 +26,14 @@ from mediagoblin import mg_globals as mgg from mediagoblin.util import lazy_pass_to_ugettext as _ +import mediagoblin.media_types.video + import gobject +gobject.threads_init() import gst import arista +import logging from arista.transcoder import TranscoderOptions @@ -38,12 +43,17 @@ ARISTA_DEVICE_KEY = 'web' loop = None +logger = logging.getLogger(__name__) +logging.basicConfig() +logger.setLevel(logging.DEBUG) def process_video(entry): """ Code to process a video """ + global loop + loop = None info = {} workbench = mgg.workbench_manager.create_workbench() @@ -54,8 +64,11 @@ def process_video(entry): arista.init() - devices = arista.presets.get() - device = devices[ARISTA_DEVICE_KEY] + + web_advanced_preset = pkg_resources.resource_filename( + __name__, + 'presets/web-advanced.json') + device = arista.presets.load(web_advanced_preset) queue = arista.queue.TranscodeQueue() @@ -69,38 +82,127 @@ def process_video(entry): preset = device.presets[device.default] + logger.debug('preset: {0}'.format(preset)) + opts = TranscoderOptions(uri, preset, output) queue.append(opts) info['entry'] = entry - queue.connect("entry-start", entry_start, info) -# queue.connect("entry-pass-setup", entry_pass_setup, options) - queue.connect("entry-error", entry_error, info) - queue.connect("entry-complete", entry_complete, info) + queue.connect("entry-start", _transcoding_start, info) + queue.connect("entry-pass-setup", _transcoding_pass_setup, info) + queue.connect("entry-error", _transcoding_error, info) + queue.connect("entry-complete", _transcoding_complete, info) info['loop'] = loop = gobject.MainLoop() + info['queued_filename'] = queued_filename + info['queued_filepath'] = queued_filepath + info['workbench'] = workbench + + logger.debug('info: {0}'.format(info)) loop.run() + + ''' + try: + #thumb = Image.open(mediagoblin.media_types.video.MEDIA_MANAGER['default_thumb']) + except IOError: + raise BadMediaFail() - # we have to re-read because unlike PIL, not everything reads - # things in string representation :) - queued_file = file(queued_filename, 'rb') + thumb.thumbnail(THUMB_SIZE, Image.ANTIALIAS) + # ensure color mode is compatible with jpg + if thumb.mode != "RGB": + thumb = thumb.convert("RGB") - with queued_file: - original_filepath = create_pub_filepath(entry, queued_filepath[-1]) + thumb_filepath = create_pub_filepath(entry, 'thumbnail.jpg') + thumb_file = mgg.public_store.get_file(thumb_filepath, 'w') - with mgg.public_store.get_file(original_filepath, 'wb') as original_file: - original_file.write(queued_file.read()) + with thumb_file: + thumb.save(thumb_file, "JPEG", quality=90) + ''' - mgg.queue_store.delete_file(queued_filepath) - entry['queued_media_file'] = [] - media_files_dict = entry.setdefault('media_files', {}) - media_files_dict['original'] = original_filepath +def __close_processing(queue, qentry, info, error=False): + ''' + Update MediaEntry, move files, handle errors + ''' + if not error: + qentry.transcoder.stop() + gobject.idle_add(info['loop'].quit) + info['loop'].quit() + + print('\n-> Saving video...\n') + + with info['tmp_file'] as tmp_file: + mgg.public_store.get_file(info['medium_filepath'], 'wb').write( + tmp_file.read()) + info['entry']['media_files']['medium'] = info['medium_filepath'] + + print('\n=== DONE! ===\n') + + # we have to re-read because unlike PIL, not everything reads + # things in string representation :) + queued_file = file(info['queued_filename'], 'rb') + + with queued_file: + original_filepath = create_pub_filepath(info['entry'], info['queued_filepath'][-1]) + + with mgg.public_store.get_file(original_filepath, 'wb') as original_file: + original_file.write(queued_file.read()) + + mgg.queue_store.delete_file(info['queued_filepath']) + info['entry']['queued_media_file'] = [] + media_files_dict = info['entry'].setdefault('media_files', {}) + media_files_dict['original'] = original_filepath + # media_files_dict['thumb'] = thumb_filepath + + info['entry']['state'] = u'processed' + info['entry'].save() + + else: + qentry.transcoder.stop() + gobject.idle_add(info['loop'].quit) + info['loop'].quit() + info['entry']['state'] = u'failed' + info['entry'].save() # clean up workbench - workbench.destroy_self() + info['workbench'].destroy_self() + + +def _transcoding_start(queue, qentry, info): + logger.info('-> Starting transcoding') + logger.debug(queue, qentry, info) + +def _transcoding_complete(*args): + __close_processing(*args) + print(args) + +def _transcoding_error(*args): + logger.info('-> Error') + __close_processing(*args, error=True) + logger.debug(*args) + +def _transcoding_pass_setup(queue, qentry, options): + logger.info('-> Pass setup') + logger.debug(queue, qentry, options) + + +def check_interrupted(): + """ + Check whether we have been interrupted by Ctrl-C and stop the + transcoder. + """ + if interrupted: + try: + source = transcoder.pipe.get_by_name("source") + source.send_event(gst.event_new_eos()) + except: + # Something pretty bad happened... just exit! + gobject.idle_add(loop.quit) + + return False + return True def create_pub_filepath(entry, filename): @@ -161,9 +263,6 @@ class ProcessMedia(Task): mark_entry_failed(entry[u'_id'], exc) return - entry['state'] = u'processed' - entry.save() - def on_failure(self, exc, task_id, args, kwargs, einfo): """ If the processing failed we should mark that in the database. @@ -213,48 +312,3 @@ def mark_entry_failed(entry_id, exc): u'fail_error': None, u'fail_metadata': {}}}) - -def entry_start(queue, entry, options): - print(queue, entry, options) - -def entry_complete(queue, entry, info): - entry.transcoder.stop() - gobject.idle_add(info['loop'].quit) - - with info['tmp_file'] as tmp_file: - mgg.public_store.get_file(info['medium_filepath'], 'wb').write( - tmp_file.read()) - info['entry']['media_files']['medium'] = info['medium_filepath'] - - print('\n=== DONE! ===\n') - - print(queue, entry, info) - -def entry_error(queue, entry, options): - print(queue, entry, options) - -def signal_handler(signum, frame): - """ - Handle Ctr-C gracefully and shut down the transcoder. - """ - global interrupted - print - print _("Interrupt caught. Cleaning up... (Ctrl-C to force exit)") - interrupted = True - signal.signal(signal.SIGINT, signal.SIG_DFL) - -def check_interrupted(): - """ - Check whether we have been interrupted by Ctrl-C and stop the - transcoder. - """ - if interrupted: - try: - source = transcoder.pipe.get_by_name("source") - source.send_event(gst.event_new_eos()) - except: - # Something pretty bad happened... just exit! - gobject.idle_add(loop.quit) - - return False - return True diff --git a/mediagoblin/static/images/media_thumbs/video.jpg b/mediagoblin/static/images/media_thumbs/video.jpg new file mode 100644 index 0000000000000000000000000000000000000000..841dc796fda777f8dcf72ed90ebe52c539c77f0a GIT binary patch literal 7278 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 literal 0 HcmV?d00001 diff --git a/mediagoblin/templates/mediagoblin/media_displays/video.html b/mediagoblin/templates/mediagoblin/media_displays/video.html index 37586924..22b19240 100644 --- a/mediagoblin/templates/mediagoblin/media_displays/video.html +++ b/mediagoblin/templates/mediagoblin/media_displays/video.html @@ -5,4 +5,12 @@ media['media_files']['medium']) }}" type='video/webm; codecs="vp8, vorbis"' /> + {% if 'original' in media.media_files %} + + {%- trans -%} + Original + {%- endtrans -%} + + {% endif %} {% endblock %} From 31370dbc2c0711798352e2af5708e5d58cbcb704 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 25 Sep 2011 20:26:06 -0500 Subject: [PATCH 1027/2731] Stripping out whitespace on these translation blocks. {% trans -%} ;o {%- endtrans %} --- .../templates/mediagoblin/auth/fp_changed_success.html | 4 ++-- mediagoblin/templates/mediagoblin/auth/fp_email_sent.html | 4 ++-- mediagoblin/templates/mediagoblin/root.html | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/auth/fp_changed_success.html b/mediagoblin/templates/mediagoblin/auth/fp_changed_success.html index d6633ec6..7cea312d 100644 --- a/mediagoblin/templates/mediagoblin/auth/fp_changed_success.html +++ b/mediagoblin/templates/mediagoblin/auth/fp_changed_success.html @@ -19,9 +19,9 @@ {% block mediagoblin_content %}

- {% trans %} + {% trans -%} Your password has been changed. Try to log in now. - {% endtrans %} + {%- endtrans %}

{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/auth/fp_email_sent.html b/mediagoblin/templates/mediagoblin/auth/fp_email_sent.html index bc79b970..69aac6b3 100644 --- a/mediagoblin/templates/mediagoblin/auth/fp_email_sent.html +++ b/mediagoblin/templates/mediagoblin/auth/fp_email_sent.html @@ -19,9 +19,9 @@ {% block mediagoblin_content %}

- {% trans %} + {% trans -%} Check your inbox. We sent an email with a URL for changing your password. - {% endtrans %} + {%- endtrans %}

{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index 854fca51..e3ca9726 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -36,11 +36,11 @@ {% if allow_registration %}

{% trans %}Excited to join us?{% endtrans %}

- {% trans register_url=request.urlgen('mediagoblin.auth.register') %} + {% trans register_url=request.urlgen('mediagoblin.auth.register') -%} Create a free account or Set up MediaGoblin on your own server - {% endtrans %} + {%- endtrans %} {% endif %}

From e9b2d7b498f6c9206659b3a252f631a8d11c1b4c Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 25 Sep 2011 20:31:00 -0500 Subject: [PATCH 1028/2731] Updating translations --- .../i18n/ar/LC_MESSAGES/mediagoblin.mo | Bin 11549 -> 11461 bytes .../i18n/ar/LC_MESSAGES/mediagoblin.po | 19 +- .../i18n/de/LC_MESSAGES/mediagoblin.mo | Bin 10915 -> 10827 bytes .../i18n/de/LC_MESSAGES/mediagoblin.po | 19 +- .../i18n/en/LC_MESSAGES/mediagoblin.po | 21 +- .../i18n/eo/LC_MESSAGES/mediagoblin.mo | Bin 10738 -> 10686 bytes .../i18n/eo/LC_MESSAGES/mediagoblin.po | 46 +- .../i18n/es/LC_MESSAGES/mediagoblin.mo | Bin 11114 -> 11175 bytes .../i18n/es/LC_MESSAGES/mediagoblin.po | 42 +- .../i18n/fr/LC_MESSAGES/mediagoblin.mo | Bin 11232 -> 11144 bytes .../i18n/fr/LC_MESSAGES/mediagoblin.po | 19 +- .../i18n/it/LC_MESSAGES/mediagoblin.mo | Bin 0 -> 10898 bytes .../i18n/it/LC_MESSAGES/mediagoblin.po | 520 ++++++++++++++++++ .../i18n/ja/LC_MESSAGES/mediagoblin.mo | Bin 11184 -> 11096 bytes .../i18n/ja/LC_MESSAGES/mediagoblin.po | 19 +- .../i18n/nl/LC_MESSAGES/mediagoblin.mo | Bin 10655 -> 10567 bytes .../i18n/nl/LC_MESSAGES/mediagoblin.po | 19 +- .../i18n/nn_NO/LC_MESSAGES/mediagoblin.mo | Bin 10261 -> 10173 bytes .../i18n/nn_NO/LC_MESSAGES/mediagoblin.po | 19 +- .../i18n/pt_BR/LC_MESSAGES/mediagoblin.mo | Bin 10608 -> 10520 bytes .../i18n/pt_BR/LC_MESSAGES/mediagoblin.po | 19 +- .../i18n/ro/LC_MESSAGES/mediagoblin.mo | Bin 10955 -> 10905 bytes .../i18n/ro/LC_MESSAGES/mediagoblin.po | 50 +- .../i18n/ru/LC_MESSAGES/mediagoblin.mo | Bin 13306 -> 13546 bytes .../i18n/ru/LC_MESSAGES/mediagoblin.po | 45 +- .../i18n/sl/LC_MESSAGES/mediagoblin.mo | Bin 10724 -> 10636 bytes .../i18n/sl/LC_MESSAGES/mediagoblin.po | 19 +- .../i18n/sr/LC_MESSAGES/mediagoblin.mo | Bin 10587 -> 10499 bytes .../i18n/sr/LC_MESSAGES/mediagoblin.po | 19 +- .../i18n/sv/LC_MESSAGES/mediagoblin.mo | Bin 10836 -> 10748 bytes .../i18n/sv/LC_MESSAGES/mediagoblin.po | 19 +- .../i18n/zh_TW/LC_MESSAGES/mediagoblin.mo | Bin 10463 -> 10375 bytes .../i18n/zh_TW/LC_MESSAGES/mediagoblin.po | 19 +- 33 files changed, 682 insertions(+), 251 deletions(-) create mode 100644 mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.mo create mode 100644 mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po diff --git a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mo index 146a588fc1dcde1d4c6e15630c23891fbca8ea83..1d75d517d70b43ebc7b7bf5e5e23d40decee9434 100644 GIT binary patch delta 1760 zcmXZcdu)tZ7{~Fa)zyo-EY+G;^)0OyU1iqPrX`Ia+DbHQN!_-qRwrF`OJ`Y2nm0Dt zu!%*y72=YnacM&T&>a%|RYU|8G>gchwsFb&3y~}#;`{SXGMUdg@0|CX^E~G{b9l++ z#k=#|bTe!2Z}tdVuoxqWX7lg}CgW>t#1B}44M}EI*oq;1fg0!V)epyG7$+iA+Fne- zLs*IJ$W-O>W6CYqI{*M`$Fu-gSj>Lgj zh5@WZ{r)44#4R`s_YZLWopkUZfd{8?IG)3WcoPR>KC2XA2%B*Q-owXOh-XVlx;TFurUetndOg0*aqXPZLrJ+d6Q3K|qjwBp=-i*q?Zu}D4@C%Hh#+{4xZ^gWe zoQ6F>1@aUd@I5NSE166g>_uh9eM>_-AIj_mV?k6V%CQD#VG$lerTi*R#wRh;*}WpE zK)qj$+VC>eJZmr?n^2k9k2;F;SjGC*LqiK>6aG}J!io4BI@pN|um_8=AkEJ}4VKgY z9u@InbnrN;xUL{m+fAH_eW>}zl9n>8#W}2R2WTiIeOQa{F^EgZFLh~uq9)p>e8-!e zK!@f@Uec}UMvXs7K2;l!kmT4h(iO(FsCn<8GCC#8zco8Bnf2`=4W+Idx8r?OL@Ov& z3fme{*Jfj^--SAg>$n-8p~lx``!%r&`Pf#zwDDF{fPbNm;yS7bU!kjs(zr7duo!g| zOR*HUqt5CQvWESGoPxbYr8t$s(FW6yq*)Grhan^e`vaBwV|Wz*!+W^X@&8}Kx#XW` zc81Dm!#k)9{KEEVnvL;OIU2R&DX3zrL5|aEQ5%Y29&STL*ntFRJ*cC2iMloM4ALnk zq53&_uHVS#fd)>%uW&jxU?VEUf1^@Z&Ftf_0ac`XP?2811bm21*oU)m;aIb|co4tF z=U9$e1^$sOb!jMqm8cYMLe;`f)B*=l3tmGV#T(?>SZbj^Q4P+azb|GlI`j*8X%SYS zZcQ8VA7r<2IX*_s=gt_b{2Dc_1Z>mxW5yKpKdP#|SE4YlAVqztSJTd)^(3x1}6 zlCd2XSf>gqzi>mOzG-dUn)-2(f{3%eXa*OhMeG}(x4a4$W02CIFlxq21C(Z85MEf51F~%yg6#zeSMzU5oK`$fuX`2k6Zk_n0Me7T?e0oHAgbIv{YywCf6&bd49VDp|lx7W-z z#hW$YssyttyoZ?>*UzjNbFdy~VgL`|3OtTwn8x4?oQ9?7q2@j0Uo1YurPz&xvZ_Qg zJ~k!MTqBmvqBj8N;s#uXn)n9O@xA~3FTbCfWR}f%7zbk|CSxOJVJi;9jo2UeV-QdJ z-`~a@`aMamSq6=73}_=stkM@Va1dsrDpQ21xD^X=A8x{1*p1ahDZs20v*B2S>#+q} zu?KUpibWK!1;e=3rJ+naP?;X`C!9we!Cim+1*$?HF%8v;gLKrqY`GuEQ)!w|J70|?WqVPTID}1j6qWf8RLKk2t%J3`>rjbwqJDoCiD6e! z>pa1c_!L!%Z^%)(7Nj0C7;sPl+OZr@VG+K<5Dpkax8?j@#a$HuMYgFr9zOupCu^1*qR|MBSNPs0w*`Zgil_|KglK z@e+<>!UJr>uc#6)VpWx}2S?*))FmC7AI)?o_NCv3Yj7n_!IxNv`J>Dx;2NyP6D|#% z*;`ZwA5kTYEr{NMASysUDqsWZC|uO5=|C;?8mD5INpd-c@B+@oXQ)?GIL0gm=VJ>l zSwTY!K0#vJ8{{-BnTw#aF2Y)@!*bk>m3SW&D3*)DHL*I}hs!a5zflPVR7P)HFzlU< zzn_*E^8d_ld7Xjj{r|TAjWlPL#Qh!d+T(|KmxFnc{Rt^Ck={UCvbQVqM1tdloU#hX ntH{djN4vzSaLOXBS=0LbXOyn&aO8CGaZKc9&c#%(vvAlSlOD?1 diff --git a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po index eb1c5f2d..b5057b9d 100644 --- a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-09-11 16:16-0500\n" -"PO-Revision-Date: 2011-09-11 21:16+0000\n" +"POT-Creation-Date: 2011-09-25 20:26-0500\n" +"PO-Revision-Date: 2011-09-26 01:25+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -242,11 +242,9 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"\n" -" Create a free account\n" +"Create a free account\n" " or\n" -" Set up MediaGoblin on your own server\n" -" " +" Set up MediaGoblin on your own server" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:53 @@ -262,17 +260,12 @@ msgid "Enter your username or email" msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "" -"\n" -" Your password has been changed. Try to log in now.\n" -" " +msgid "Your password has been changed. Try to log in now." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" -"\n" -" Check your inbox. We sent an email with a URL for changing your password.\n" -" " +"Check your inbox. We sent an email with a URL for changing your password." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo index bb7538c2660a006881acf2a5b63ea55a9978821d..06a016322681f2e37f8d4e9b7818efff5aa94a84 100644 GIT binary patch delta 1764 zcmXxke@sae8EQZ93`N^=>yX>!$sbllMj#?ETB z){5yoHjUxPVX;`V?DmKBPg}L9In()v{*k{U8~ov>bJIq@-XHI2WB2tu=R7|@&vO{s zczVNugv0m*&f#YoR$~Hdks<9v z%*O$Y<1jLm-Oe-53Mu@_gKo^Hl{&nGMfd^g{a{f466a9=9!v2O&cJ(Ef?3ne=3zM& z;3^Db9QFQXEXN+4iASb;>6LuWgDf6=jk9qSH{w}*7$eM5gZ0>p+wme^!zi9&wny2^_#j@EB%e3e|2jsGkeG zfSiV1LT%)C+=Wx9gm*BQ61<8^#=B2JD=%VnHe)U-iALOnPhkxXpd$Yn>u@}W~{}x(7}_q0ng)7telljU=ub{ z--6olQFQQA)a4pOhPJb~25+FoUqmdca4W83e(R^8NN(U(oI)2jlP~wu`cMNM#%md7 zBgk0xKArT{e2iL{N1iX>7pV3*#Pt$}aV2(P3!cDg{0H-x->S;epT}}+qrMt7@$umK z35-)84W3Wq3Tpuc*o_sa=#Qe#bObpa`vD2fE}$ZxL~S&4Zu)&0dMv`0P|#=7g!*iD zB5kb;)$w3ZA3+T`hKl%C)Mfk)3C$+375_!^syMUPdh-L?<2DJWOB|SKxlsywf$yQtvL6@WF!E==@I$J07oWur ze&e_!?T{{Z1Q%uE0P delta 1835 zcmb8vZ%EZw9LMpm*;VsTrj~lu*3D_%EOft1S}0wMYL#r+AMKBeQ4_`Jum2uc*$=A4 z2#nfqqn6ZzqP8}SjSH>VdSFp8+LJI6Y!4a>_8?dwkwhWAKi(gEo?Pzhobx;Pe9!rQ z&(8-9ml{u%xT9v)n`G9A`;*P0cn@4B`*|^V?WNeXJ9@mGv%0x$8Z6DgS|M2!&pm{ zFy>7)n}tiU2e)H0j^J#JvWVhs$71YqY3QV9P$#|MPxu8@g1i3sU#JYdz${cJ0NJQ{ z`F_8`w-Tw2)u0Zt0^6_&mEk+647yQPQ))J&cHWL0%1)y)aRE2uCDh5^pi&-Yw+=4% z?M5Bsd(`i*Au;SX)H;7+DLzDHVhkyjYeDi+$AE(ha0nOSRV>H9F@)2mn>C<=6?hz# zf$La{zoSn47DE`|*edB9B$k!qa$JU5|4XbPzTKj+ihrW2 z2=&^GB5O_z>W4FVsD34C!40Ssx1vh17fGUZ;Wj*h+*kV-BRGa%V;L817;nuY|MO{l z8;bvM5Wk~8j9*|oH-)+O2(^KixCGOAcU0>-WKG+M3fzH8^;f9O^rJ4}&!~eAqAuwW zl4KhxCjUCYD+c5^YT=|0%}Ov6_uxY8!;7d4e8fX#>{C?f+E5$tP^G$xtr){aSisfS z<=%j*y^B%2p$7kZYz(#2#5r-NqiR`-d@RBjQ*0|z6?1Vto<}Y80#{=B-1z)1oJYSO zYw<2Ba3CBnRTLM}Z&^V@fqIZN>^P?204jyo@nd{|3Y5*Nay@RuQ>ctQ!+n@QI&`3R z)P{SN9xowS?EREe!IIdy\n" "Language-Team: German (http://www.transifex.net/projects/p/mediagoblin/team/de/)\n" "MIME-Version: 1.0\n" @@ -261,11 +261,9 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"\n" -" Create a free account\n" +"Create a free account\n" " or\n" -" Set up MediaGoblin on your own server\n" -" " +" Set up MediaGoblin on your own server" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:53 @@ -281,17 +279,12 @@ msgid "Enter your username or email" msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "" -"\n" -" Your password has been changed. Try to log in now.\n" -" " +msgid "Your password has been changed. Try to log in now." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" -"\n" -" Check your inbox. We sent an email with a URL for changing your password.\n" -" " +"Check your inbox. We sent an email with a URL for changing your password." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 diff --git a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po index 6ff8e8df..16a235a2 100644 --- a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-09-11 16:16-0500\n" +"POT-Creation-Date: 2011-09-25 20:26-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -233,14 +233,12 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"\n" -" Create a free account\n" +"Create a " +"free account\n" " or\n" " Set up MediaGoblin on " -"your own server\n" -" " +"your own server" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:53 @@ -256,18 +254,11 @@ msgid "Enter your username or email" msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "" -"\n" -" Your password has been changed. Try to log in now.\n" -" " +msgid "Your password has been changed. Try to log in now." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 -msgid "" -"\n" -" Check your inbox. We sent an email with a URL for changing your " -"password.\n" -" " +msgid "Check your inbox. We sent an email with a URL for changing your password." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo index b260cb1639e12b3bfc7712b4040efcb7cc742a90..506e882b0808d694cd2aa4c104a19e88eed89429 100644 GIT binary patch delta 2245 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 diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po index 296f1b4b..270b043f 100644 --- a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-09-11 16:16-0500\n" -"PO-Revision-Date: 2011-09-11 21:16+0000\n" +"POT-Creation-Date: 2011-09-25 20:26-0500\n" +"PO-Revision-Date: 2011-09-26 01:25+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -193,8 +193,8 @@ msgid "" "Powered by MediaGoblin, a GNU project" msgstr "" -"Funkcias per <a href=\"http://mediagoblin.org\">MediaGoblin</a>," -" unu el la <a href=\"http://gnu.org/\">projektoj de GNU</a>" +"Funkcias per MediaGoblin, unu el la " +"projektoj de GNU" #: mediagoblin/templates/mediagoblin/root.html:24 msgid "Explore" @@ -244,9 +244,9 @@ msgid "" "href=\"http://mediagoblin.org/pages/join.html\">You can help us improve this" " software!)" msgstr "" -"Vivanta per homoj kiel vi. (<a " -"href=\"http://mediagoblin.org/pages/join.html\">Vi povas helpi al ni " -"plibonigi la programon!</a>)" +"Vivanta per homoj kiel vi. (Vi povas helpi al ni " +"plibonigi la programon!)" #: mediagoblin/templates/mediagoblin/root.html:38 msgid "Excited to join us?" @@ -255,37 +255,30 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"\n" -" Create a free account\n" +"Create a free account\n" " or\n" -" Set up MediaGoblin on your own server\n" -" " +" Set up MediaGoblin on your own server" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:53 msgid "Most recent media" -msgstr "" +msgstr "Plej nove aldonitaj dosieroj" #: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 msgid "Enter your new password" -msgstr "" +msgstr "Enigu vian novan pasvorton" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Enter your username or email" -msgstr "" +msgstr "Enigu vian salutnomon aŭ retpoŝtadreson" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "" -"\n" -" Your password has been changed. Try to log in now.\n" -" " +msgid "Your password has been changed. Try to log in now." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" -"\n" -" Check your inbox. We sent an email with a URL for changing your password.\n" -" " +"Check your inbox. We sent an email with a URL for changing your password." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 @@ -301,6 +294,13 @@ msgid "" "If you think this is an error, just ignore this email and continue being\n" "a happy goblin!" msgstr "" +"Saluton, %(username)s,\n" +"\n" +"por ŝanĝi vian pasvorton ĉe GNUa MediaGoblin, sekvu la jenan retadreson per via TTT-legilo:\n" +"\n" +"%(verification_url)s\n" +"\n" +"Se vi pensas, ke ĉi tiu retletero estas sendita erare, simple ignoru ĝin kaj plu restu feliĉa koboldo!" #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" @@ -316,11 +316,11 @@ msgstr "Kreu ĝin ĉi tie!" #: mediagoblin/templates/mediagoblin/auth/login.html:48 msgid "Forgot your password?" -msgstr "" +msgstr "Ĉu vi forgesis vian pasvorton?" #: mediagoblin/templates/mediagoblin/auth/login.html:51 msgid "Change it!" -msgstr "" +msgstr "Ŝanĝu ĝin!" #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" diff --git a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo index 7c7dea0dbf072bd6764c0701da7e5c7960b54ff9..2e64b81448ecf7ab86c9585107968896e6244729 100644 GIT binary patch delta 2430 zcmZwGYitx%6u|LYL<aV-9Z zc{p;6QZsQnj>BbGfQ=~cBRCy*;AGr4CYj0PBOZ+8!N-`3r?3V4aXijumP)L~9t`6J z{0`^hNoFg;Yq%Y=?qxFEfyHLLai@mw&kcJXSq*g=rH~)60|!w$93_}^@G44YlD~5ynNK1*#i$TUC+e^jAHqu9 zkJ9q5a1q`Zb}HFRC96=rZ$?S@36wZ7oQ*z8C-$K%#c5p4{Az#;nP3Lx--oNQ3U{H# z6Sx5fZ~>N0$#kF<>$rasrQ!pq@i5BfI*Wu>{rDhWM~Od&wk*R<*uebiZ7!rG*KrdL zVhA_VU-qSX6(!J{_*0frN0Fb}$47E%j^Pq~jea)Z=SXwZING%ni%<%D7bX7JDB~-p z5uf>$#f2Q3E%-EgC>5PUHnzHma%^r4-&e7PrG@unFFt~@CnnCwB$|hkKm|%+wJ2-d zg7Te*aynkbq`cV6h3v{>C~Gu;vIM`P9G8-rnRC7zWn33Zf^VU;`aL8!brfy<0@-hB zVUbb~;BtHxcjAvYh|=Nfn*Pt>B9~cT##)Tvmnaie@+YltMp^qXN=NpfBz6GlraFx! z_$^97w~_6lCi76O5~MVgHnK3lFaPVZ9L$ps~(gNyo3&Zh`TVqG_#A}!TH>u z!NvG9N~NW2aan@JxDjhmPRU*@$FsN+Z(%(yrfNAg-AOLwxIBlF@g9^+4yUc?40AbJy8C2TrN5jj>YY+JtL6|2;z1&yhb(@V!Uc{(t< zGZFQ)al7o)nQ4Vv2;iGYqSN?R#O_PG5;5Yrao-9|-wBI!J%4M$=pdn8FBbNV3`hhC z%eRRV#QP3u+qEKbyUWv_b}SvWiT7_PK8qxb8|S%6^_J%5x}NT^bYPQ1m+|d3J7Ptx zbjyq>S;qC3LJ|Cfr#Xx}&F01< z*V2>}wl-V7gr%0iBVbUc>bG?|o^SbT)(St;K^f|^-e#xEj#@$7=s5ZR*Nyb~nM<>h z9#!7ibX}=CEuVBVEtmZ6_(uBG(A1*Wny76xcwxtOE43A7ykj{uqCH{LAER5=uVGb& zinF>*yA}2P8m9TDNpWg;D&afjK~n2SZI&QzqPmlB153*Su@{zE` zVnfmGcGqL=7-Te00&BC;+hulH3*)jHd>3V<$hOTmc6YH_MV(|Cvm`qnJ66L-8ad+Gf>F&Ds zuHl*;vL6H@D8~p?E<$W80--J?R{JBJMU;dD&CGxLAwdz94}& z*opz%gB2LZRrm}R;VBH^>)!o~80PwVp(C<{#%(%uAcef;UR;99Fo>E=BbML`_yC^7 z!}uZ2VLMgou%cMxKHP|hun*&S9V@YomuS5{tirTILudLb>P$1<18<=&!DX-i25LgT zU>WK~9xO(EF6doHJe!f#kyg}+bm9>9q9%L^H9@D1w`nvn)R8}hOiE6mCXvAyzJ@yU zKT#vEW3(o2_8di>$TaHr&mlGBebo1ShP8MVHHq8EQaKVLkL`4rs0Ai)9ln8$_zfCZ zx>V$GG%UX~fOgf%^Uzv6cEVLt`5qf1pOvL7q=w zFX}G7fck<<_;ZfPmpIS$ED!I-^Tem8rifU$B|9*Ran$#oLPC>o@mc&Gb)u;i)SdYpQ10d%-FCY=hERN$1)I?${7Y4i!weSe)#EzgY^=Z`a zy@QS(k1O7duTgj9Ez~s%a)xvXT2Q}WBQ@kXWK|@C8u8nn?;#<|MYQo6vR`Er8*2mh z-~=AWIV>{Bzlp|8gLT3nRgYpj>aqD0bwCk5bP0M;*WN-+;uX{ZokdcW8LY-@s58BT zI?!@DHHmuEgx4dtWNS6~YqT~Ux=WMDPl1e~Ch$D!v6;jpSX{HPi%(z!*XQveyoox~ zVT$j3@@W5xMA(WG3-KdOG8!eoB1D?`3>(+yp}s%&{cG|{a;USc~joq z9(N*tg_{Yj&YtlFadq|~>K`7o3_D%vHiTIO z_R|U3nn(^N(#E00Xwn$zPo>5Z$${+bs)u0MP>I3dyC4<>uO~mJpuWk4j0g3b? diff --git a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po index 85da5dbe..083a87a5 100644 --- a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-09-11 16:16-0500\n" -"PO-Revision-Date: 2011-09-11 21:16+0000\n" +"POT-Creation-Date: 2011-09-25 20:26-0500\n" +"PO-Revision-Date: 2011-09-26 01:25+0000\n" "Last-Translator: cwebber \n" "Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mediagoblin/team/es/)\n" "MIME-Version: 1.0\n" @@ -82,6 +82,9 @@ msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" +"No se pudo enviar un correo electrónico de recuperación de contraseñas " +"porque su nombre de usuario está inactivo o la dirección de su cuenta de " +"correo electrónico no ha sido verificada." #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" @@ -197,10 +200,12 @@ msgid "" "Powered by MediaGoblin, a GNU project" msgstr "" +"Potenciado por MediaGoblin, a GNU project" #: mediagoblin/templates/mediagoblin/root.html:24 msgid "Explore" -msgstr "" +msgstr "Explorar" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." @@ -253,42 +258,35 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:38 msgid "Excited to join us?" -msgstr "" +msgstr "Te emociona trabajar con nosotros?" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"\n" -" Create a free account\n" +"Create a free account\n" " or\n" -" Set up MediaGoblin on your own server\n" -" " +" Set up MediaGoblin on your own server" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:53 msgid "Most recent media" -msgstr "" +msgstr "El contenido más reciente" #: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 msgid "Enter your new password" -msgstr "" +msgstr "Ingrese su nueva contraseña" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Enter your username or email" -msgstr "" +msgstr "Introduzca su nombre de usuario o correo electrónico" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "" -"\n" -" Your password has been changed. Try to log in now.\n" -" " +msgid "Your password has been changed. Try to log in now." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" -"\n" -" Check your inbox. We sent an email with a URL for changing your password.\n" -" " +"Check your inbox. We sent an email with a URL for changing your password." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 @@ -304,6 +302,10 @@ msgid "" "If you think this is an error, just ignore this email and continue being\n" "a happy goblin!" msgstr "" +"Hola %(username)s , para cambiar su contraseña de GNU MediaGoblin, abra lal " +"siguiente URL en su navegador: %(verification_url)s Si usted piensa que " +"esto es un error, simplemente ignore este mensaje y siga siendo un duende " +"feliz!" #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" @@ -319,11 +321,11 @@ msgstr "¡Crea una aquí!" #: mediagoblin/templates/mediagoblin/auth/login.html:48 msgid "Forgot your password?" -msgstr "" +msgstr "¿Olvidaste tu contraseña?" #: mediagoblin/templates/mediagoblin/auth/login.html:51 msgid "Change it!" -msgstr "" +msgstr "Cambiarlo!" #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" diff --git a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo index baab45ab69e9ee233683dfd8c2e7795a341ba082..5b3adb77c5322a2a03962c92b614bb01b8230212 100644 GIT binary patch delta 1777 zcmYk*Z%CDA7{~GJEX%*^-^zc}`M9#9*3!=DnCO^`wlar{T6QSPaH%<$e^7dnV$T@N z2K!^{G?d|H5hz42l2f3AAm~Lc$P>O;L8TVei@n>{SW!gZ-=6bgAb#%qInQ(5*L~gB zJs18ue0-&wZf1Q8%x3T;mSA_H*~fSWlkqS79A97=wj`O=;0T8B57c`O|K?#aHse|( zr2U8~IE-6y3<+g_CYx)E89d`b52o;zKKKfk;ZN8b9;yoGaEh!d=q zhxhRa`WCVn_F_KHq89WK>}_0*+Gx4UKs&8My|4pyB+c>XeW(f?$0c|g=VKK0-ei1! zGw$!mY1m!VMjl}cK1Wr!kzlIeEUGf@QwGX>Dbd-C1yGf!!Z3b-Yj7A<^51YBK8%}A z_S#7`>icb|g!iK2v|#~up(-(iI*MPhhV^ZlffmSR`x~$Z*W#Dx;5hEYX)HniGOq$* ztYW?owd0@B!BJFmT}47$3^(BeRQy$xr4s9L3+vlY3{;W_SdY&!fP1JfeQDpJ0uACh zpV?XD&%%79Thoquzm|IL$1jjvZ4M9P6V!sOly4u7;$}>EllZJ}A2HCisl!g(joQI= zq_J%pb#3k;{b+t#n3xtsooOxV2(BTgVzIdQQHlSJ+Tem*uP5?Q&qL_uF{oy+3R{py zwE@&w{en8H%Sa5njoR5is05R_YjO!vG|R#;mLUCR$FK|s@ib21E$n1bJ+F4CzY=gA zjsZtdC97a{*0A%q9;Z-eKaabkCJUk#d>>VbU8oIoqMB_G)r6N&6`4ZanmHr~dmNw7 zUqSuVrKu~tz>Cq(JQq9gL;MCWVli%9>D}K$NKQ6@N^~66gfZNXw=sytWK)XuSb+nm zonJ@wmd_<^l{7VO9wsmkq82PilC=YtDby|Sul6dr2le|w zw1UFJ-A!HX4Q)+D-TrQ;v#X=|vqMexZi5r~A@h#UBJX7TqnnZzz7{!}RUO@y(wY{z zkr;?fq>m*ALQbHxA`ofL$WIECIi>3=0-?x2#*+*$h|}2Q{6D%yzR#SA=4YSqLXGG6 L7X24$e09ky^V`t( delta 1836 zcmb8ue`r-@9LMo*+TG@zPB(SGZO7}hI~RAJ)fVi=onrYLDeQK;H%#R^QM8=eg8b15 zEHTnhk0?x0#NR&%av7vKt)Vg+R18{*fkOX8P%wiblj{BP9{RsA_Il29&Ytg&=XrLf z?xptBdV^-REzc~8?fGU2yose4DllunYFvzqa1bI36crIjS=;9E%^~Gq@kO;Ws#dtwf1p zS&>-{&cyd{IcD(=PR0a_DBg06;5!}zReBIr>5<@r&rw@&BbdL7>d>E9jCu$`3F^D@ z;JG2N3E3TsqY8NuS7Qd%;T}{6y#%YNH7Qi)8<3)GFRBwqFonlal@Fs@9wl2BX9sqm z3OSAX|Id&Zb_KOgA5O&|QJokK zVk>@)s`wE)7@}-#=`BLYcn0& zF@~z-C~^VpG;&_;B5LcpaWnpm+JYsMa%UtHxDHjo`=|oaR7&F=)Yd{JGlhH zMC;^vI;vGSkX$UzU3m`EsJ;Ibb;!C=0l!0a;y$W?Vbo!ZOvxR>dC0l7H0sQ(MRKzZ zQ@q^79wu~351c!jm2Y?fEWLOAiE|LnYLW3fO}R_y_8i6qB89O#)l-W7MJQMRh0?H6v$h!j+gt zb+8*l_yCn)+d~Fw&BD4|%a&pR&)ZRZz6)3230#7CWRu1WCh-e&FkH`-#ClW*FQVqJ zq50pJNBr}7w~E6~@MFQq|D|gFn8)M)W-_IXp~o}+*1RhJjf&c?&itYgU4x@mkM?($ zp2~M!$8BzL{g$%H1&kZr7Pr~Ymi_gAgH-3jwr^a&YRx)lWt%fK+Oer^h^}b$KSh3~KK3uVmeV}| diff --git a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po index 032399d6..a9b9f160 100644 --- a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-09-11 16:16-0500\n" -"PO-Revision-Date: 2011-09-11 21:16+0000\n" +"POT-Creation-Date: 2011-09-25 20:26-0500\n" +"PO-Revision-Date: 2011-09-26 01:25+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -263,11 +263,9 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"\n" -" Create a free account\n" +"Create a free account\n" " or\n" -" Set up MediaGoblin on your own server\n" -" " +" Set up MediaGoblin on your own server" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:53 @@ -283,17 +281,12 @@ msgid "Enter your username or email" msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "" -"\n" -" Your password has been changed. Try to log in now.\n" -" " +msgid "Your password has been changed. Try to log in now." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" -"\n" -" Check your inbox. We sent an email with a URL for changing your password.\n" -" " +"Check your inbox. We sent an email with a URL for changing your password." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 diff --git a/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.mo new file mode 100644 index 0000000000000000000000000000000000000000..9a01019269f8506476a809367e2aa96c75eca6c2 GIT binary patch literal 10898 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 literal 0 HcmV?d00001 diff --git a/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po new file mode 100644 index 00000000..67db7ca2 --- /dev/null +++ b/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po @@ -0,0 +1,520 @@ +# Translations template for PROJECT. +# Copyright (C) 2011 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# +# Translators: +# , 2011. +msgid "" +msgstr "" +"Project-Id-Version: GNU MediaGoblin\n" +"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" +"POT-Creation-Date: 2011-09-25 20:26-0500\n" +"PO-Revision-Date: 2011-09-26 01:25+0000\n" +"Last-Translator: cwebber \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 0.9.6\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 +msgid "Username" +msgstr "Nome utente" + +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 +msgid "Password" +msgstr "Password" + +#: mediagoblin/auth/forms.py:35 +msgid "Passwords must match." +msgstr "Le password devono coincidere" + +#: mediagoblin/auth/forms.py:37 +msgid "Confirm password" +msgstr "Conferma password" + +#: mediagoblin/auth/forms.py:39 +msgid "Type it again here to make sure there are no spelling mistakes." +msgstr "Scrivilo ancora qui per assicurarti che non ci siano errori" + +#: mediagoblin/auth/forms.py:42 +msgid "Email address" +msgstr "Indirizzo email" + +#: mediagoblin/auth/views.py:42 +msgid "Sorry, registration is disabled on this instance." +msgstr "Spiacente, registrazione è disabilitata su questa istanza" + +#: mediagoblin/auth/views.py:60 +msgid "Sorry, a user with that name already exists." +msgstr "Spiacente, esiste già un utente con quel nome" + +#: mediagoblin/auth/views.py:64 +msgid "Sorry, that email address has already been taken." +msgstr "Spiacente, quell'indirizzo email è già stato preso." + +#: mediagoblin/auth/views.py:165 +msgid "" +"Your email address has been verified. You may now login, edit your profile, " +"and submit images!" +msgstr "" +"Il tuo indirizzo email è stato verificato. Puoi ora fare login, modificare " +"il tuo profilo, e inserire immagini!" + +#: mediagoblin/auth/views.py:171 +msgid "The verification key or user id is incorrect" +msgstr "La chiave di verifica o l'id utente è sbagliato" + +#: mediagoblin/auth/views.py:192 +msgid "Resent your verification email." +msgstr "Rispedisci email di verifica" + +#: mediagoblin/auth/views.py:228 +msgid "" +"Could not send password recovery email as your username is inactive or your " +"account's email address has not been verified." +msgstr "" + +#: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 +msgid "Title" +msgstr "Titolo" + +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:32 +msgid "Tags" +msgstr "Tags" + +#: mediagoblin/edit/forms.py:33 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:34 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:35 +msgid "" +"The title part of this media's URL. You usually don't need to change this." +msgstr "" + +#: mediagoblin/edit/forms.py:42 +msgid "Bio" +msgstr "Bio" + +#: mediagoblin/edit/forms.py:45 +msgid "Website" +msgstr "Sito web" + +#: mediagoblin/edit/views.py:63 +msgid "An entry with that slug already exists for this user." +msgstr "" + +#: mediagoblin/edit/views.py:84 +msgid "You are editing another user's media. Proceed with caution." +msgstr "" +"Stai modificando documenti multimediale di un altro utente. Procedi con " +"attenzione." + +#: mediagoblin/edit/views.py:154 +msgid "You are editing a user's profile. Proceed with caution." +msgstr "Stai modificando il profilo di un utente. Procedi con attenzione." + +#: mediagoblin/process_media/errors.py:44 +msgid "Invalid file given for media type." +msgstr "documento non valido come tipo multimediale." + +#: mediagoblin/submit/forms.py:25 +msgid "File" +msgstr "Documento" + +#: mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "Descrizione di questo lavoro" + +#: mediagoblin/submit/views.py:47 +msgid "You must provide a file." +msgstr "Devi specificare un documento." + +#: mediagoblin/submit/views.py:50 +msgid "The file doesn't seem to be an image!" +msgstr "Il documento non sembra essere un'immagine!" + +#: mediagoblin/submit/views.py:122 +msgid "Woohoo! Submitted!" +msgstr "Evviva! " + +#: mediagoblin/templates/mediagoblin/404.html:21 +msgid "Oops!" +msgstr "Oops!" + +#: mediagoblin/templates/mediagoblin/404.html:24 +msgid "There doesn't seem to be a page at this address. Sorry!" +msgstr "Non sembra esserci una pagina a questo indirizzo. Spiacente!" + +#: mediagoblin/templates/mediagoblin/404.html:26 +msgid "" +"If you're sure the address is correct, maybe the page you're looking for has" +" been moved or deleted." +msgstr "" +"Se sei sicuro che l'indirizzo è corretto, forse la pagina che stai cercando " +"è stata spostata o cancellata." + +#: mediagoblin/templates/mediagoblin/404.html:32 +msgid "Image of 404 goblin stressing out" +msgstr "Immagine di 404 folletti che stressano" + +#: mediagoblin/templates/mediagoblin/base.html:22 +msgid "GNU MediaGoblin" +msgstr "GNU MediaGoblin" + +#: mediagoblin/templates/mediagoblin/base.html:47 +msgid "MediaGoblin logo" +msgstr "MediaGoblin logo" + +#: mediagoblin/templates/mediagoblin/base.html:52 +msgid "Submit media" +msgstr "Inoltra file multimediale" + +#: mediagoblin/templates/mediagoblin/base.html:63 +msgid "verify your email!" +msgstr "verifica il tuo indirizzo email!" + +#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/auth/login.html:26 +#: mediagoblin/templates/mediagoblin/auth/login.html:34 +msgid "Log in" +msgstr "Accedi" + +#: mediagoblin/templates/mediagoblin/base.html:89 +msgid "" +"Powered by MediaGoblin, a GNU project" +msgstr "" +"Powered by MediaGoblin, un progetto " +"GNU" + +#: mediagoblin/templates/mediagoblin/root.html:24 +msgid "Explore" +msgstr "Esplora" + +#: mediagoblin/templates/mediagoblin/root.html:27 +msgid "Hi there, media lover! MediaGoblin is..." +msgstr "Ciao, amante del multimedia! MediaGoblin è..." + +#: mediagoblin/templates/mediagoblin/root.html:29 +msgid "The perfect place for your media!" +msgstr "Il posto perfetto per i tuoi documenti multimediali!" + +#: mediagoblin/templates/mediagoblin/root.html:30 +msgid "" +"A place for people to collaborate and show off original and derived " +"creations!" +msgstr "" +"Un posto per collaborare con altri e mostrare le proprie creazioni originali" +" e derivate!" + +#: mediagoblin/templates/mediagoblin/root.html:31 +msgid "" +"Free, as in freedom. (We’re a GNU project, " +"after all.)" +msgstr "" +"Libero, come in libertà. (Siamo un progetto GNU, dopotutto.)" + +#: mediagoblin/templates/mediagoblin/root.html:32 +msgid "" +"Aiming to make the world a better place through decentralization and " +"(eventually, coming soon!) federation!" +msgstr "" +"Con l'obbiettivo di rendere il mondo un posto migliore attraverso la " +"decentrelizzazione e (finalmente, presto!) federazione!" + +#: mediagoblin/templates/mediagoblin/root.html:33 +msgid "" +"Built for extensibility. (Multiple media types coming soon to the software," +" including video support!)" +msgstr "" +"Fatto per estensibilità. (Numerosi tipi multimediali saranno presto aggiunti" +" al programma, incluso il supporto video!)" + +#: mediagoblin/templates/mediagoblin/root.html:34 +msgid "" +"Powered by people like you. (You can help us improve this" +" software!)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:38 +msgid "Excited to join us?" +msgstr "Eccitato di unirti a noi?" + +#: mediagoblin/templates/mediagoblin/root.html:39 +#, python-format +msgid "" +"Create a free account\n" +" or\n" +" Set up MediaGoblin on your own server" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:53 +msgid "Most recent media" +msgstr "Documenti multimediali più recenti" + +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 +msgid "Enter your new password" +msgstr "Inserisci la tua nuova password" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Enter your username or email" +msgstr "Inserisci il tuo nome utente o email" + +#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 +msgid "Your password has been changed. Try to log in now." +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 +msgid "" +"Check your inbox. We sent an email with a URL for changing your password." +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to change your GNU MediaGoblin password, open the following URL in \n" +"your web browser:\n" +"\n" +"%(verification_url)s\n" +"\n" +"If you think this is an error, just ignore this email and continue being\n" +"a happy goblin!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:29 +msgid "Logging in failed!" +msgstr "Accesso fallito!" + +#: mediagoblin/templates/mediagoblin/auth/login.html:42 +msgid "Don't have an account yet?" +msgstr "Non hai ancora un account?" + +#: mediagoblin/templates/mediagoblin/auth/login.html:45 +msgid "Create one here!" +msgstr "Creane uno qui!" + +#: mediagoblin/templates/mediagoblin/auth/login.html:48 +msgid "Forgot your password?" +msgstr "Hai dimenticato la password?" + +#: mediagoblin/templates/mediagoblin/auth/login.html:51 +msgid "Change it!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/register.html:27 +msgid "Create an account!" +msgstr "Crea un account!" + +#: mediagoblin/templates/mediagoblin/auth/register.html:30 +msgid "Create" +msgstr "Crea" + +#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to activate your GNU MediaGoblin account, open the following URL in\n" +"your web browser:\n" +"\n" +"%(verification_url)s" +msgstr "" +"Ciao %(username)s,\n" +"\n" +"per attivare il tuo account GNU MediaGoblin, apri il seguente URL nel tuo navigatore web.\n" +"\n" +"%(verification_url)s" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:29 +#, python-format +msgid "Editing %(media_title)s" +msgstr "Stai modificando %(media_title)s" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:36 +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49 +msgid "Cancel" +msgstr "Annulla" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 +msgid "Save changes" +msgstr "Salva i cambiamenti" + +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 +#, python-format +msgid "Editing %(username)s's profile" +msgstr "Stai modificando il profilo di %(username)s" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:31 +msgid "Media tagged with:" +msgstr "Media taggata con:" + +#: mediagoblin/templates/mediagoblin/submit/start.html:26 +msgid "Submit yer media" +msgstr "Inoltra documento multimediale" + +#: mediagoblin/templates/mediagoblin/submit/start.html:29 +msgid "Submit" +msgstr "Conferma" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#, python-format +msgid "%(username)s's media" +msgstr "Documenti multimediali di %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 +msgid "Sorry, no such user found." +msgstr "Mi dispiace, utente non trovato" + +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 +#, python-format +msgid "Really delete %(title)s?" +msgstr "Vuoi davvero cancellare %(title)s?" + +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 +msgid "Delete Permanently" +msgstr "Cancella permanentemente" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 +msgid "Media processing panel" +msgstr "Pannello di elaborazione media" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 +msgid "" +"You can track the state of media being processed for your gallery here." +msgstr "Puoi seguire lo stato dell'elaborazione per la tua galleria qui." + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 +msgid "Media in-processing" +msgstr "Media in elaborazione" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 +msgid "No media in-processing" +msgstr "Nessun documento multimediale in elaborazione" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 +msgid "These uploads failed to process:" +msgstr "L'elaborazione di questi upload è fallita:" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +msgid "Email verification needed" +msgstr "è necessario verificare email" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +msgid "Almost done! Your account still needs to be activated." +msgstr "Quasi finito! Il tuo account deve ancora essere attivato." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +msgid "" +"An email should arrive in a few moments with instructions on how to do so." +msgstr "" +"In breve dovresti ricevere un email contenente istruzioni su come fare." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +msgid "In case it doesn't:" +msgstr "Nel caso non fosse:" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +msgid "Resend verification email" +msgstr "Rispedisci email di verifica" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +msgid "" +"Someone has registered an account with this username, but it still has to be" +" activated." +msgstr "" +"Qualcuno ha registrato un account con questo nome utente, ma deve ancora " +"essere attivato." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#, python-format +msgid "" +"If you are that person but you've lost your verification email, you can log in and resend it." +msgstr "" +"Se sei quella persona ma hai perso l'email di verifica, puoi accedere e rispedirlo." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 +#, python-format +msgid "%(username)s's profile" +msgstr "profilo di %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +msgid "Here's a spot to tell others about yourself." +msgstr "Ecco un posto dove raccontare agli altri di te." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +msgid "Edit profile" +msgstr "Modifica profilo" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +msgid "This user hasn't filled in their profile (yet)." +msgstr "Questo utente non ha (ancora) compilato il proprio profilo." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#, python-format +msgid "View all of %(username)s's media" +msgstr "Visualizza tutti i file multimediali di %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +msgid "" +"This is where your media will appear, but you don't seem to have added " +"anything yet." +msgstr "" +"Questo è dove i tuoi documenti multimediali appariranno, ma sembra che tu " +"non abbia ancora aggiunto niente." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +msgid "Add media" +msgstr "Aggiungi documenti multimediali" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +msgid "There doesn't seem to be any media here yet..." +msgstr "Non sembra ci sia ancora nessun documento multimediali qui.." + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 +msgid "feed icon" +msgstr "feed icon" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 +msgid "Atom feed" +msgstr "Atom feed" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 +msgid "Newer" +msgstr "Più nuovo" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 +msgid "Older" +msgstr "Più vecchio" + +#: mediagoblin/user_pages/forms.py:24 +msgid "Comment" +msgstr "Commento" + +#: mediagoblin/user_pages/forms.py:30 +msgid "I am sure I want to delete this" +msgstr "Sono sicuro di volerlo cancellare" + +#: mediagoblin/user_pages/views.py:175 +msgid "You are about to delete another user's media. Proceed with caution." +msgstr "" +"Stai cancellando un documento multimediale di un altro utente. Procedi con " +"attenzione." + + diff --git a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo index efd3e3f49f9c7b7498811bd83e0cd1db133c7954..4bdc4d5a6582733574c23ed19ab2d0da837e5208 100644 GIT binary patch delta 1761 zcmXZbe`r-@9LMqRn(l7Xrn7dJbGkF#?(W=0=NWg3lO`>28#JA6PQo9V?xLAlyJR_; zM+GY|OF9#WOojvs+8@gLV-rQBKt#h*YJukOQvAa(!Ho4s?@#Bz<-VThoaa2x_xXOG z=VZsP%lDUgQ8VkwGP{YrI2+RuvljdsbMP_d+Aye6t9P?}c3~uy33fMDh&}#_-@WJq3$e>vU7QBwy;X_nFqexY30)teV80rwVAm`N9pl;0vsBs^K z{V%4If4%7Cfg(PH3-CDV+B`s|c*%?)g_lqP-A65CWkEo3RLzs9+Sa2sauC~a6yL%n zTm{{pQ>c>N^Ju6xk3utJ!HZ(7=J^a{bJm7hcq?*k>?^Fp-*7HYCK}zER&;PDYT+ZO zTk{N+xmY|ntTm_%dTAOuou6PPo<(KiJT~A@xDg8~gB^Lei2gm)VXB&G=HnW4@hRqD ztSZP*HClQ6!*plYduum$R;DY`&ih?kQXAjxv;}J&e{a@xKT#APY{<@g!T&hYIJh|X zo$>w;5!WAz9*ek1$E}|4`l-UwY`4~_o-^M~`d=14_VX*FeqvgFhWVdm-5g95?Fv3V OQG6}$|BrjBYW@RrTF$uu delta 1817 zcmbW%|4Y?Z9LMo@uAAO#X*V~$cj~-dO`SR2$Iw7UC$}*ZaRz=FIzqT4imbI-L6%*D za)Ysv`wRvSWU)jO@o~<%$Mb%l z_c_Ovp09h)l_b{8Y;2QRHy%niYr;j$MPG(lH5On8wxb_E!4dod>oCY*8@6ICx~O?S z@#`u49S3n431v+IGd}imz!F9*>!i08U&B!xMoqkf+wgDi`zKyMJJT%0cod(-2HcE2 zn1^wE4o~0~oWwAG>3#n_7SLbKOqk`+c))-X$z+v{n1jz?2vwOX%*HcVi67w@UdLr@ zCQ3QxWtkP>OL!ayFpjIZ9h+E0@dhx8ZzpJIryrwsI^|86MIFHp-uO*ah3;bz)$zeL z)Vz?_ulB4(PRANh8`*1?uP?ea%Ui=KT^M6n!FDF|E zW1dG*8<|1<{beME&7s!$6?fngsuB;7qe@tqdbBa%paPu4-FN}3@HR$p>(gdk=wLOD zqbhI(n{ghs_Z2fl$?XC6mz5$muf-)tZ8ZJ35iJcpW?!_`y? z3vm!DkYl$AM!y2}Y|bMe^YK=cU>WM!#Q3FvgQy)IK_xVfoQ_Rm8P1|E;h)I8wY#W0 z^B6TRt(f|2AY7cX2$k^;Y{XjBvpI|^@eNc7drDFXy@?9+9x9Iko)j`U}YW0b4k zh2uDYH&CyqF;SX2vxBIGk9vOKjnCkVj9*4o;xAMsHV{>>rVtx&2zTS>s8@3nBbZ5f z6}S@hYEGjPoyBH6aFvEi_ylz;gU_e_XSbp%(T*{E9f$E#)Q$obsaJClb(yZ9i+9nF zr*@_)^DdgZ8j8B-LO%ur5%0&mmOJC$yJfxo-$-9>jcAaq8+Fw?1!s2JITB-l=ordH4Qjkj_wLvOheQmW&oGWx1t0YyJh3Z^=yn diff --git a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po index 79be3177..ebc8ad52 100644 --- a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-09-11 16:16-0500\n" -"PO-Revision-Date: 2011-09-11 21:16+0000\n" +"POT-Creation-Date: 2011-09-25 20:26-0500\n" +"PO-Revision-Date: 2011-09-26 01:25+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -236,11 +236,9 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"\n" -" Create a free account\n" +"Create a free account\n" " or\n" -" Set up MediaGoblin on your own server\n" -" " +" Set up MediaGoblin on your own server" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:53 @@ -256,17 +254,12 @@ msgid "Enter your username or email" msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "" -"\n" -" Your password has been changed. Try to log in now.\n" -" " +msgid "Your password has been changed. Try to log in now." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" -"\n" -" Check your inbox. We sent an email with a URL for changing your password.\n" -" " +"Check your inbox. We sent an email with a URL for changing your password." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 diff --git a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.mo index 261e5e95faa014a5f24598a48e98dfd27b963c2e..57447395ad2574093af52654299c79c5a463a5fb 100644 GIT binary patch delta 1757 zcmXZce@sQ|jq*@WW`Tlgy#?I?`o_o&oeV*_0 zeHh<i0cZiihw~99ixKEBS(fbOye{LOhQ<@iIP)6-24Q7!KlYoW>hig_A^E zjlbjTnD!9C@DP^abyUDKCVLzUQ5${AqoJL~Q7>#m9Z51AA4Fwf81wK`%)klMd*{Rc zmC&omY1k}kBe$>%mrxnr%Vf&nbyQ}&e`#pt`OMB{%td7)j_vp?*5DW_iaFI1;2orXCGEzFDerwsH6A>+lX&dG!$SZ+i%1+T!(L>gJ0qfoWfeHEC@2t zj&b@gqIUcVI`|o?xGo`6+huIVIn?}XNXrK7z>UPWQ5s6g9CqLmy10w{QkV8VYNC(v zbeh>I)ceoz(5-nD*W*_5xf$O=efJCY;BVM~t)y=&zJW3P8MBFRnU4k6CJ&SJ3sDmc zAcbv5uoaJn{TU<~_6PRkf2bqqqqJGO4Irmu$50DDfm-l6WG!|j9G^!|1NUgG!N|(s z44*-bZ$h0_0(r#-QGrKMDLxbWH7f80+=;&;^=50ii#pmS9Ke@w8gHU*&9|$`zl!e` zk9RS{39iitsA5?_1uCGUYg39k>o{s>EvN-OkDQ7fKrQ45stCtWnK+HQH5XCu{SfwN z%gDcem}5YxzK#6ZpFFy-kf=)WVN?niu@dv22r|}$T0keN+WW8_`>_tEP{q8gJg5N| z^?f&LBS$?N{BN+)(9cn4If*L5i>L)HppK$|yTrAz8r1KvVI!VG1)4(#^El5P=%Q}T zJD7pzFpl4$;(GUJD7CpPOR26!?Whr(aT9LDA>5ABVgJdhpe9ndhw)+5g8o7kZ)J6G z6!mBoReh;M@BYqxiRx5k$~oA3Aldy&!k+GQ{A0y4Y3A2PBNOYhRz2W*B`p(Ma$e5$ zf68?I$)b~)Zp?A(np{5_Da&#joVxlZH|7sT{`PaDCH_$HwTbd*bMRTBG`iyd&kk3Y F-3L$j%bWlJ delta 1864 zcma*ne`u9e9LMpm%j@0GbhEZQ@0^dz>o$9>MF_g%e09YtA*}W29s7xHk4frW)=XX&l zuVS?>#sm9M8##^o{g+4#`vEo2WsKo9R3>gArShzle6-Qwq5|~eGW;BC@K%i`Fs^SQK$Gj z)CA}8iy3C)I7NGq!5#P(>C>&bg8F?v>3IrcxE42|<~f5q@M~!j`iYxJb)^J&Ck?4j8x0!qc%{BTHp#)$v2~?7kxp; z5H6;D5>>;CLH{^XEBhOXVcFa*1&*Oo{7hgAl0;jB%FJuXd9`m)r5(e5oWcp*y@34d z+O#^E!?y>AXdgsfn^H~+9~kw9=GVwI( z%(S7#wO5dTb-WS0=s~48jm%;1VmF>Zr8wt_ObQ3FlJ+rF#>P+!_!D*7ZBgddgz!n4 zTTqAjBUJ52QNRDk<3T$q<8JUj!eW6-QMHU?9k!tsG=M6_FzVKP8@$hA6*|@Rs6ajF z;3v2qM^U$?h^Qf4fx0!`Y917L2-&0^!7zT0+R-_T<2bhByehMG_&Tb67Ih}>VG^U& znM3TMO7H<%t~34jY{E(IOr+D#RdlBk+fx2}k*kH%uOAHb4@K7$-0z+4=`5}b-S6@H zXGKT$h3m3LrgFOT{SS*zg_`7*m3;c$S)5Ys5}$8 peedqB?Wvv4zQiskR@IkI?cJ5=NmZvuUM!7gjZ8)(1%73<^FI{1&msT- diff --git a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po index b9e0896d..c982eb95 100644 --- a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-09-11 16:16-0500\n" -"PO-Revision-Date: 2011-09-11 21:16+0000\n" +"POT-Creation-Date: 2011-09-25 20:26-0500\n" +"PO-Revision-Date: 2011-09-26 01:25+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -241,11 +241,9 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"\n" -" Create a free account\n" +"Create a free account\n" " or\n" -" Set up MediaGoblin on your own server\n" -" " +" Set up MediaGoblin on your own server" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:53 @@ -261,17 +259,12 @@ msgid "Enter your username or email" msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "" -"\n" -" Your password has been changed. Try to log in now.\n" -" " +msgid "Your password has been changed. Try to log in now." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" -"\n" -" Check your inbox. We sent an email with a URL for changing your password.\n" -" " +"Check your inbox. We sent an email with a URL for changing your password." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 diff --git a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mo index 9e4cf80f274601cbdb928d93a31093c73cd15677..7bf5a87a9500edc23e797b68cffc3a03f4d7f0f3 100644 GIT binary patch delta 1763 zcmXxkduS9_6vy$iR!vN7)u@SinMvy=>w`o`H(G62N{TTNP1v?bv<>)3>N{aq#i(&; zK%ph2!Wb$gCD@9BsbEiRTJ#&%qX*YOsH@EofZ z;caZgz(*{Gd$AaYPzweK_AyRHCA!FCpiCpE8=|OJ(wv%aM^)euPQs%&1{0|J`cl_d zQ(i;fh7F<;xr-a|6{^A;2&M`Sp(^7&XP}*D5uIerMO7k#tMCh)gWaf-|BLhRPReX{ zuS}Mqp07h~_#0H5Z5YHDsuD*~ui`w`vc3&4&;o^|zYuG&3_H-lzwj#@z;Y~|lB~cg zjBx!eD&ybK!Q-grx`c$bD_DiYsQ4w6WeGN7HS6223{;X~Y{XaS;%e$kU)oQoK)>MW zfZ0h@25WdorzVaS7^R-|_yh8~?FOp!_fZ>JK*{b#ossC1985?|uG=EzST zn+WRI)S@ywj9Q=@_h4^ozJ%7+d>N`Dm8gv`MJ3pP6wzX+^$w!P=FDgC37$e7n|@>u zHiXLbCGxSX!eoGQ)JCdM=Y2U+G^@jEY(o0YPNBN}BF69*UdJyvqa`@Ii2AGfqI~VZ z7_Pv3s0G808Od2R<#tqNKcbq$R0+#SM**u*e>4rKK)X?u+mDsli8>|!p*A>z4o;@bGjIXw zbToJjlu={K?@&8$MV*3u7{p#AhV>)I#-8GQj1Vn^aa2=vqfXNRM(_=)`62{SPqm=t zcOie8=AC8WF!&qQ?Zc?jKEx{g9~a{1ys%HP4Yg1LIZ<{WTk$oz*iy>B9R7}~*fF$V zXlJ}BwtelkrkU~5xYHVIY2LK8$v#`__<`Ihe$UuTiTw16QGQ46vP50R=JEdJG}k|u zeIm^bJMP@YuHT$fobFaQbLTB~!~V}X&;1E``R^a~^V36#m3jRE|NGpU#Pou}%y*B! HC@pvk$qCKE delta 1843 zcmbW$>r2#G9LMpmm5!Ip>^9oCHk#Y`Ae3K=Q>!^9c9ph#u#+JciM80av0aQRv|Z`_X@23uFa1th`nw4T6F2Ti^hQH%FJcd!sX0R3)Vi|g=V=t?tHx`#;8?Hr79K><>-2eW)-_Oc0%VE3_Cu0SU#$_19 zX3WQ*F%u7AE}rzi@5Ma&0~xN_cp5Jm&_Oa-WfYFbiI{`RObKS;4xEk$aXVhdeyn1b zVhoNkn}T!jCtQWiIDiEhV-fAQ3JbB-rJ+cFLq*!*PdJOZf~)@cBUFa|#cWh38OEXJ z<@o(l-!kNOtO6CtTx`JxREDphGU&!wO{u9zoqQt_lpR22q66#kC@S(dsFW9TS_f-< zx1a(!f%^TQ$R2hcwazX467Qih@e;Wz*K)~6Edvf}gKanyPhkl@#W0SYVD>FKScS!92!r%{H#Aa!V6s1){M zCEh`$Hj|R&0oVjoWK&QJN3ac}{`gscyc?B~>!<+kp#mI4l4|eJ)kfK0Bx)cZr_!H= zdNz&7VeNZVWIK`H*kRNH=THZ^je6&OND^%TmC^r@dbL@+MOFJk+=T0}AD`rt|7kS3 zs60OQn18MK4!^-o;lzfQkR;e+-&d%}CKe=$EFZZQD@7e(J}R(AR7Te#b!%HtHPem? zWM6@s7&z^JaRwDp7b@Z&)SdOA-g6aUD23gq1@9xl*dS`*k)%(VOT$VGqFzZHb-;EE zV+R)D-!2V3k3m#K&wPhaCx3%_1p#L3`9zVutP%BUT>J`eVllo))l!7XdQB^^3iqOl z?k1|1Ui;&268TqARbviurT8r+RD@fLoKqauloV#tfLR@{JlFbQ9yGW8ZM zJv{t3yD8lKL(}HXm4z*9npUszvI42zA1T+eho^j+?A3-AWquqT9{DjcBl+Wqw=E^) z#dC`~4+X}I=p0IG8SU+xbUffVVJBMdc;&%@RN6C~awqCF2mkk8q!fO}CJi}xo$=fk ONu38n4>P\n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -246,11 +246,9 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"\n" -" Create a free account\n" +"Create a free account\n" " or\n" -" Set up MediaGoblin on your own server\n" -" " +" Set up MediaGoblin on your own server" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:53 @@ -266,17 +264,12 @@ msgid "Enter your username or email" msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "" -"\n" -" Your password has been changed. Try to log in now.\n" -" " +msgid "Your password has been changed. Try to log in now." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" -"\n" -" Check your inbox. We sent an email with a URL for changing your password.\n" -" " +"Check your inbox. We sent an email with a URL for changing your password." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 diff --git a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo index 686989fc96014ea603f11f44937a49a9fdaae375..189733f6e7232a0e47134d361e1c28220d477457 100644 GIT binary patch delta 1764 zcmYk*Sx8h-9LMqhq~+G0X*HTxQ`2^*#!4d}j8Y%0q>y%69NG(qpaq!-dT1kIS}Zh) zXeC;(Afq5iilQ*01tMCc9*U^6hZdvy{+#>J%l({l?%DqTbI#X_x{BJ&P?DL|^e}sc z2XHI~W6a9&1jbx^>i=>~!EHDI z>k>kdot&p3nuaSl5Swu>wqhU5VwF+o#~NIQ&+!fB;5AlD!?(BvJ-t~Bw_!TIMlI-J zvJ4!E3UpG4f+8(Kb*MlcNx*HdL1my8`{8lyj!me3&2IgX>oepu>?JCY_qY-}Q5jyr zWXj-cRAxdyC}`*XnVn$Fhss0|R^l`qh4rYE-@`n7=bFUs6-fzd{7lq_7oz4_hgn#S z%0wOND6V4}>)T@rS|FA1Ct?|n!5!$}Wt@YLaV!o`jAWn^i>NO`McjZ6o!TNTTf>P3ki?I`ZIG_A-FKr)cqQltXF*}Efpn*YpHCIs^J3v0m zu?0150O?wTshE$uQ1jkGKYqhF*0)@5ZTlvQY!3qb|ohRHQ+qukArj!OoyI za>KO+HSq(Si*2Y4PU0=r= zLq$3Vwb2Er4XsB`#df&uM^NL=Blpy9qFzlas^3$${wbaO>qm#%@B@{RKd5Ju%&JQ9 zc2s*OYQu@cxQI9byKXyn-FB>`y&82V?xXts!U>p>8F@XGs6cjwDCjI|Q4<}*XuODe zHdm0n*bCHA{6?OQCGv9$F2RXdk9svv(7~we$g9ajZDb4T$j)LBUPi4KYNy~(=*BkH zVHj#dBe57KqZX*aLcEGIupO0&$sFWboQJyIcTl(gC-UMfDwj`I&Zb~h_4=jjs&a$F zgU-h44S`i_t8B_rCtN%@G2GbWZj(1Qzgu{7Oi9zs_|-kb4`Y1cYe}bLe169_uD}-# rB&Wyv@||&c1wMb%{^SBrc=izQe`7~`!Uw&-y2kHIX^D)VmFxTi$*|A& delta 1845 zcmbW$|4Y?Z9LMpurFs2Usdc?~T3&BfR|xH6sqE^saG{G)Gcv=V6lWL}EGjBfK0h=a z1;ygi_eMfvZ6j*Lg&=Z_WnZCRB1nkA*pQ0thlam2SxL`V_mh9XE|>fGobx&NywCf6 z&N;L0pLJiCy5nZnKf|mQzeqQ$$GaHBw18O!7U3HF6f^KVZpZJi8guDfjm=nv9%|eJ zex~DN+=`<}D67vj<7=xj%{5}#XS8PHM(o9HsDWdchkyI;C;j%UEVB^(QTzaFF&j5v z0e0bhJcv1X4#W6^|Na&h(SDlcn&tEGiViI#i&;`JALn8SRhe>}gNNy?6+DschZ@LN>o|Dj4AW3>)8 z`tC&~@;&PRSCJTY6E)96T!@cQm3W10m1|+@v6>DC6`&7m@JB4iKQMx`=a{WW2P<$8 zRe|f+fWxSaUtGt0Q+xw8!3d70 zm_3oSA27HThbfh6TA>?20WzEu_hJEo$O6RAqLe7C3_1+Q+yb6=W0+6jT2g4=s^o z;9fjJ`yA@pEaar{wZr`AFkMDnn_*O@zoQoV47H#MWOpowLFz9>{jUZ&x7Lh0GwrBx z9Z~A9j(z@%e&0i=QXNKJn~SItXDvwf527kHgp2VPRG{am)BZ2E;TzOhXe~{S8^GnX zub^(vpDqu|WDa*jTTzIbs0>pvj(n|wACj|f)K+|jx-~;shks!WE?$(pHCr%3`xvgr zpHK@)WwqL}<=B939S;iFhY>uA>39{jpzGL(w^0EC>{l(Wz$WZNRpK`8z%kSzZYd)v z+=P}HnflaqM!I%%?%w@Tw5PlC^KNfxIN&`D-OHUC@_w*)qwtfQcfC_R?ZL{lcRgO; zjKaj}a9K)XD3Fno7|-a*_KpTGr8`c\n" "Language-Team: Portuguese (Brazilian) (http://www.transifex.net/projects/p/mediagoblin/team/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -238,11 +238,9 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"\n" -" Create a free account\n" +"Create a free account\n" " or\n" -" Set up MediaGoblin on your own server\n" -" " +" Set up MediaGoblin on your own server" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:53 @@ -258,17 +256,12 @@ msgid "Enter your username or email" msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "" -"\n" -" Your password has been changed. Try to log in now.\n" -" " +msgid "Your password has been changed. Try to log in now." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" -"\n" -" Check your inbox. We sent an email with a URL for changing your password.\n" -" " +"Check your inbox. We sent an email with a URL for changing your password." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 diff --git a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo index 994d6f30e198f080120b964dee528e44965674fb..f43e25f656dcb402b513a54cfeae30dfff8c8b92 100644 GIT binary patch delta 2302 zcmY+@Yiv|S6u|N63VkdfffL)Q6mbIu zVj?QK5UHsl#vqB92w6;k82R7^F@!*Bf*&9hhINRf>6k20Y8ifoWq2RA;v;Op&812$#UogccTvV^{yl|LFoJc+ zlIjo!u?Ji57_yYQSEf?x89x4|qZ5OSk_mfpDDFr3{YasG0-vM(6OO{`I1vBDa_l!i zsc|?42jN^Ci7hC*U!k(>M}0G+bHW#q%3oBJuV@>`kW6b$!%PZ4>5%6 zs4w?YeTcHqXLz+psc(>6)Gj8;t2u-V(4(HK@q47&s*G~2#F01)x1uC`1e>uB%ZRUP zM&|>Ca2M@)C_DJE(0?A~*<3*hJc=tUC9cDL*oabr^T?^F%Z1->725ZaSgPMxrMQQx zqF^1S{)Z#=$+&!bdeH%`V+ z@m>4@f5jIo@(B&n)L+w4!@on=f?Kfv+O1WR~rE-08WXHwg0PhFt{RLL`TOGZ8l=Vg-mlb$jxh77Yr_P z!o+thhfO6t?Su{Gh*7F7y3NM*Cf8i(Hj-JbwwvM!H`_HWs!53ITg`E?PmYG{{kS&K zh>jT7hOL+B(4oM{g;EF^B!?4cP$a(>lQ~m$FHlA#?pud(GiR&+2o$d|ozx+7qUKRi K?sgrYqW=ZzVw17} delta 2006 zcmbW%|4-C)9Ki7xXD4ugf+XAt!iNj#vI36=O;E%kh%8GB)cB$NboUW%0%vz;DQTx^ zuC>u@pPEw|v9*jgv$b=q{IZr>;_Qc7Us%>^SzABUD%g@W?aT88pZEh}$35Qf_viij zyk76u`~A729alOImnSDhWba&&4&0G0(tsaf0lG6ps<0UE$NMl72XQ;Tjmk# z4ce&lF7q`9Kf`S}j)am1j|d-W_DE8QB^&7F;uh@32snY&(9L^GVaGk zSdZDb2@5fVCHNHP;4$>!h;#is7Sq3)l@!URF~xu;lEqVQ!F*hZUewA|;(R=aci~I8 z7eBypTt$=s7S0nX#YWtXTQP)Ju?!n{h{oHBeoQ23=t_^Eu5`$m@DA!0eCUjSgIb~A zFb}okh6SkeyiUK$u?E>4sYhMN8tleS)Cylftzfc&r)g<6qh|g%vM6~GwGuEZogVR4a_$d7mtiud$T82%iXDxxckh4h|n$Zo^O3bO4S#b&KUamkEE6sQ(cH!-4 zqXsyGTG}E8>#-SYaX;$#yZ9hpbH;1P)=j?$^?EW!Lr?cBr~%%_bo?51B|qR6oInlG z#$Ang2wU+IYJ#~-XZE%lGwGi|-b5Ki@ffpzD@-HQW5(kv{oR%sw(MMAhJC_&DQ|Yl zf0OM`iq_>!kIs&C7F4^ZN9;Xwi|oU`^3<{Pd9KuCW_PwdP;fjw7&L;lbwRtXuq=ai zb+9g2n+g?{q}kWK{{InWpLbzei@h=6O%3>#yF5+ZW?z?OL=t7TueieYc%HT|7mqD| z!iq(_!V#TB-8taNCjNQ?lF=Gc6crqFb z+tnrS+r6c0?C-L_O63^KTzTuG@q`hxLRMeG=(WNTGquS-;mS4RiHiq}NMAf*_Kgi* dJdoP3\n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -45,7 +45,7 @@ msgstr "Adresa de e-mail" #: mediagoblin/auth/views.py:42 msgid "Sorry, registration is disabled on this instance." -msgstr "Ne pare rău, dar înscrierile sunt dezactivate pe această instanță." +msgstr "Ne pare rău, dar înscrierile sunt dezactivate pe acest server." #: mediagoblin/auth/views.py:60 msgid "Sorry, a user with that name already exists." @@ -76,6 +76,8 @@ msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" +"E-mailul pentru recuperarea parolei nu a putut fi trimis deoarece contul tău" +" e inactiv sau adresa ta de e-mail nu a fost confirmată." #: mediagoblin/edit/forms.py:26 mediagoblin/submit/forms.py:27 msgid "Title" @@ -197,7 +199,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:24 msgid "Explore" -msgstr "" +msgstr "Explorează" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." @@ -250,42 +252,35 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:38 msgid "Excited to join us?" -msgstr "" +msgstr "Vrei să ni te alături?" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"\n" -" Create a free account\n" +"Create a free account\n" " or\n" -" Set up MediaGoblin on your own server\n" -" " +" Set up MediaGoblin on your own server" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:53 msgid "Most recent media" -msgstr "" +msgstr "Cele mai recente fișiere" #: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 msgid "Enter your new password" -msgstr "" +msgstr "Introdu noua parolă" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Enter your username or email" -msgstr "" +msgstr "Introdu numele de utilizator sau adresa de e-mail" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "" -"\n" -" Your password has been changed. Try to log in now.\n" -" " +msgid "Your password has been changed. Try to log in now." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" -"\n" -" Check your inbox. We sent an email with a URL for changing your password.\n" -" " +"Check your inbox. We sent an email with a URL for changing your password." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 @@ -301,6 +296,13 @@ msgid "" "If you think this is an error, just ignore this email and continue being\n" "a happy goblin!" msgstr "" +"Bună, %(username)s\n" +"\n" +"Pentru a modifica parola ta la GNU MediaGoblin, accesează adresa următoare:\n" +"\n" +"%(verification_url)s\n" +"\n" +"Dacă ai primit acest mesaj din greșeală, ignoră-l și fii mai departe un elf fericit!" #: mediagoblin/templates/mediagoblin/auth/login.html:29 msgid "Logging in failed!" @@ -316,11 +318,11 @@ msgstr "Creează-l aici!" #: mediagoblin/templates/mediagoblin/auth/login.html:48 msgid "Forgot your password?" -msgstr "" +msgstr "Ai uitat parola?" #: mediagoblin/templates/mediagoblin/auth/login.html:51 msgid "Change it!" -msgstr "" +msgstr "Schimb-o!" #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" @@ -342,7 +344,7 @@ msgid "" msgstr "" "Bună, %(username)s,\n" "\n" -"pentru activarea contului tău GNU MediaGoblin, accesează adresa următoare:\n" +"pentru activarea contului tău la GNU MediaGoblin, accesează adresa următoare:\n" "\n" "%(verification_url)s" @@ -421,7 +423,7 @@ msgstr "Aceste fișiere nu au putut fi procesate:" #: mediagoblin/templates/mediagoblin/user_pages/user.html:39 #: mediagoblin/templates/mediagoblin/user_pages/user.html:59 msgid "Email verification needed" -msgstr "Este necesară verificarea adresei de e-mail" +msgstr "Este necesară confirmarea adresei de e-mail" #: mediagoblin/templates/mediagoblin/user_pages/user.html:42 msgid "Almost done! Your account still needs to be activated." @@ -478,7 +480,7 @@ msgstr "Acest utilizator nu și-a completat (încă) profilul." #: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format msgid "View all of %(username)s's media" -msgstr "Toate fișierele media ale lui %(username)s" +msgstr "Vezi toate fișierele media ale lui %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/user.html:135 msgid "" diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo index 2b698e4db1462bb77e1069608a04310771bac836..c1eab2ba082866bb6761f34394bf4c31cae1392a 100644 GIT binary patch delta 2391 zcmZA0e@xV69Ki91J55BhGUb;*-!l+UK<*G?VzG)6XlctDlTyLC}zomy*LwFP`-DD`(BKte;VU)6sO}2jKN9M zluE(`ycY{F4ogtJzlsUC6CcF(Y3@)apD-|qfgYTV{rDoD$NMmaC>fZG^|%g4@CQso zAJHDdaomm(GYEz|(Sesx0!FaeT%3(^(0n%yIcXuvgy&JNq%u5Sk5Yky_y8Wo$!MX> z>ks#J*l&^BP@^aZ`58CjZIlYHXEUkbC6vmzZ_<#=XR96@ z@u#rSWG^QvMp?fcCE=G*_Su3dSc_7Lc9g3az*6F?3p6A^BFBFOOEC)@(7+S;0$#v{ zm^v#|fif(lzY68Vhta@~P#)Kp$kysSK8X`3`_H2+1-KfQ5?{SXLrOA%tMN9vu$=nx zF4fy88@1t$2&F#8MfBfik^E{#@EJTwJLvP<}Qw;l2+arhguH;5FoZsT%H)rm9DI zp;S8NqgzV9jz&IuQ2J-^DZGwS@&Z~`aT{LY#T4Ny^FpumLzG81jQrHqRh*A^Fb7jPrX>Cn zO6i-CTT#c*z#-&T)fmcw{=^tePIHGI(~`8%>wN+<`LG-}Vm%JwFDNBEM%`-gB9>t> zS&*yhLU}V^p#1)CVKvq*Q0iG6!jk00C(e3 z9Ktr7%ul2O592Ddb1XiowJ4?apd|PWO5n`w(3@()HT2t2;<#_pV2-j=-$=|su1PJy zH*pPaz)`HlB97UJeMoFoK>dHkYLp7BpiENQeJH<*BT}}MwAbq@YHQYRsYtI&tutP$ z-C9|-xk4>jYnY?4-&=Dc^K9nXxMFL0RP}T-Dc)uJqK{8;$JIz98idi2&!@L+fX6}zqF%u$Ft%>-}cDL@*-oS4DnzS#_puKv?&_mj5 z1a<|-n;G2|@aSGWsQt`p2()AwMw)Il^e|KW+LDQU9Mru=V7DG%7Q=?_;oB*FGPsu> zX4Ip*B|@NuT|BJjdynpM>t5!cWSy5aglg0l)AkxNJGe==p$8c~#li-Lh{Lc?dozq+ zx&xuvtk(l~7xiktBVFkuOpxhAp}0yP{kKcDe6h6M?@;EMxDrbz?XfM>t%MEk&(h#| zx=FKND&p7OfdkSUrY>@D5>o%0PuCl0maWM%;4zH_v5_3rMwxvt!;|-A1Y> z*o#4_SUAFewzWQUbl9wlWV_uUWs1vW_Pm<|dF^4ep9~II+f!HA%!I@k>&Nu1(ulRH zGtSvp>%$TxSX;T(@L{=@-oRUdcY>Fz`wZPjDSNq(7K+)#JijC+3HQljuEi@CW-va? zye8?=9x!XOt6aKOrpi+ZUT^R%NX;7A)63yPb@%*}toE9pI-fIJoN?Bp&Xu;{vptkk F@i*)%bdUf5 delta 2033 zcmbW%|4-C)9Ki7x5FlR!QRFzjc^t?WHShq*xZ=xzG*i?0E!iwDI1UsKy*uVa={7Q* zGdJ5uaWf-bnf60uyHT3bBF)mi?9R4mifxuZxZG-EYZQH1&zE=g2gDeU_xpVx-mmxj z^?H5or_L$Y;X?m}i1fvYti$c`BDHuGGcb0VNIB-UN3ah^ zaSZE-Qi7%wkvUk8yKpnM;!VuQS~k&mo6(9sKLfq#G1Qw5Mjm(%wFI9=*2hsZ^b4k; zPGVsu>T{Wqd3nS|NOi=HdXXmVz!uaDUq;QKzn0xJH5*V*z5}_Gyn>pELEM0Epx*os z)RdQSS{pV->_NTA8PxwDLSo28)P26hxfnvt#3WKGznIC#G8Sy80rub{_%@c|9kk$# zbdj}a!*bk*nt}JR4lkkJ_)oN8EZ5eO79p{u3>&clb^n*pPJ9_*u!M!*QB%@DKA*)F z)Goe&y1`|fj1u`4CzyZD!|QOA^yyn;A}v+89yMbJ@jCv9**L_XlXxB5a4Q{nh4>O= z@FE_~4X4IT>uNwdw&P0FR1PCAfLuk+AR#Qkd)SM~)Q>)s{m7CGpmzB%7UK=n15Tlq zpxi?KOBt+YpsC-Di}7q^eg~VGr|>kjlC`KCb|F=f1E?u}4K?+rktE6xuE8rvze*;p zUW+9-jxHR-rULT6oIy@u_=}_ye`S6WeKgTvx%RbZ-A3@3^=P(h2*nqdtj=7v_ z32ww=cnY2PD6h&Ud>vVmzpxqSb4@+q4%EQcPQET}w>NnJR z)Ys+~x^NEp_uziirkz4!$qQWj9=?Mn9H1Ug;gHtFSZuZ$KWBcHmS~CmNMvNV^PZgk zVEo@oOGZWPgB4>>T()uBTo^bWpAsFINa#p54rRO*Z?jo!)ipMw#*{yeafPkMRvlw}Pjq`+-9F2%?jDb2yTj|<+3jfy&*yy9chlMdQX)C(DK8wfM z>U8@o+njBkj==5WHPO+*5o0tzBd~OyJ2IXf_-eryF~+9!dgHf+F5`#vrogyuXSA`e Gs_h?M8!}D+ diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po index 865f5424..ffdeab2e 100644 --- a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-09-11 16:16-0500\n" -"PO-Revision-Date: 2011-09-11 21:16+0000\n" +"POT-Creation-Date: 2011-09-25 20:26-0500\n" +"PO-Revision-Date: 2011-09-26 01:25+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -37,7 +37,7 @@ msgstr "Подтвердите пароль" #: mediagoblin/auth/forms.py:39 msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "Type it again here to make sure there are no spelling mistakes." +msgstr "Наберите его ещё раз здесь, чтобы избежать опечаток." #: mediagoblin/auth/forms.py:42 msgid "Email address" @@ -53,7 +53,7 @@ msgstr "Извините, пользователь с этим именем уж #: mediagoblin/auth/views.py:64 msgid "Sorry, that email address has already been taken." -msgstr "Извините, этот адрес электнонной почты уже занят." +msgstr "Извините, этот адрес электронной почты уже занят." #: mediagoblin/auth/views.py:165 msgid "" @@ -197,7 +197,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." -msgstr "Привет, любитель мультимедиа! MediaGoblin это…" +msgstr "Привет, любитель мультимедиа! MediaGoblin…" #: mediagoblin/templates/mediagoblin/root.html:29 msgid "The perfect place for your media!" @@ -230,8 +230,8 @@ msgid "" "Built for extensibility. (Multiple media types coming soon to the software," " including video support!)" msgstr "" -"Built for extensibility. (Multiple media types coming soon to the software," -" including video support!)" +"Рассчитан на расширяемость. (В программе скоро должна появиться поддержка " +"других видов мультимедиа, таких как видео!)" #: mediagoblin/templates/mediagoblin/root.html:34 msgid "" @@ -250,37 +250,30 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"\n" -" Create a free account\n" +"Create a free account\n" " or\n" -" Set up MediaGoblin on your own server\n" -" " +" Set up MediaGoblin on your own server" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:53 msgid "Most recent media" -msgstr "" +msgstr "Самые новые файлы" #: mediagoblin/templates/mediagoblin/auth/change_fp.html:27 msgid "Enter your new password" -msgstr "" +msgstr "Введите свой новый пароль" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Enter your username or email" -msgstr "" +msgstr "Введите Ваше имя пользователя или адрес электронной почты" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "" -"\n" -" Your password has been changed. Try to log in now.\n" -" " +msgid "Your password has been changed. Try to log in now." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" -"\n" -" Check your inbox. We sent an email with a URL for changing your password.\n" -" " +"Check your inbox. We sent an email with a URL for changing your password." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 @@ -311,11 +304,11 @@ msgstr "Создайте здесь!" #: mediagoblin/templates/mediagoblin/auth/login.html:48 msgid "Forgot your password?" -msgstr "" +msgstr "Забыли свой пароль?" #: mediagoblin/templates/mediagoblin/auth/login.html:51 msgid "Change it!" -msgstr "" +msgstr "Смените его!" #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" @@ -376,7 +369,7 @@ msgstr "Подтвердить" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 #, python-format msgid "%(username)s's media" -msgstr "Файлы пользователя <a href=\"%(user_url)s\">%(username)s</a>" +msgstr "Файлы пользователя %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 #: mediagoblin/templates/mediagoblin/user_pages/user.html:32 @@ -436,7 +429,7 @@ msgstr "А если нет, то:" #: mediagoblin/templates/mediagoblin/user_pages/user.html:54 msgid "Resend verification email" -msgstr "Повторно отправить подверждение на адрес электнонной почты" +msgstr "Повторно отправить подверждение на адрес электронной почты" #: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "" @@ -516,6 +509,6 @@ msgstr "Я уверен, что хочу удалить это" #: mediagoblin/user_pages/views.py:175 msgid "You are about to delete another user's media. Proceed with caution." -msgstr "" +msgstr "Вы на пороге удаления файла другого пользователя. Будьте осторожны." diff --git a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mo index d1ce44b2c07b63329ecfd094531b909310a4c199..4c4333811161e3542dd48fecfb5863b012f130df 100644 GIT binary patch delta 1760 zcmXZcTTIkP6vy$iXjxpb7X(%=mW8sw8Y=J)3yNB-)+(gY1T`2dDpZiF^ungK1<3|Y zUs{@){Ao0bp%+t=hM1Bisq_IKj4>n{4G)+!MvAdMv}#gcywIfm{@niypPAYJ%$aj$ zhPzt_wjM8zXPa4Hs@ZKE#0rf0%{JqYxBwsFLHrkMurtl95r;8~f1$n$@n;?`!wy`I zENS0j0Ee&v&ml|MKMO2wFVlF+Ko17^N)x`o3>-lHKJ4{>!6o!BVJ_anbbO3KoWIcQ zRm{glxC(Qy0rmTPn2)`<7*8&YCwDT!zhn$e-AWbEpdMV=+~52348(6B^oi2CI{dIjBn1V>7;mjL%>Qe?ncZE6CDz9oOR>)cPfqWfktmjl{Q8G*ps1xEtrt!JX8Xdud;z7CM2m zKC_=u84NHIlxGHhvM6;1p6s`x|vs|6yD|q%TdLO&B$C zBff?^P?;Ve+mX{W#-|w^Ej3`aKxIVN}H?QLo^4d>3a?mv{{y%R~4&o<^Ph zBr1_-aT+RB3hAoU8K{Mpp>|q@%6v2Gz4jx|#!llKcn?=%xP&>l2T9((#I-nr3j6?5 zF|RcFYKl-BkGIj#^NXQw?RTgRoyYY!fqL&LW&F3oYJ3~JP#Ye@{dg6%(Q3-Ve`DK^ z+HkkZ6fXND*53U=Ygc delta 1844 zcmbW$|7(?H7{~GJXy=@Lbxw0?R5sifMTOo>aOv*2e6fLEoFVIkuu>3(S5eBg$k=`HA)Bb?QIIriv&wZZj zzOMVaw=KP~^u027#LPB^%$DKnVY4JBr4nN?#6F2Uz88$ZC;@Br3gA(O4R2xp^* zT6c+$@%SUYjKfGMOXisIZ!J0I8nLX6(M0UT_4o>E;SHRGzx&_c_s0dfX2r}W@DXgp zJbWG_*n^MZ+nA4gFp8h}-=D)0##eJ)v&lS+GNFy+@|K5iGETu_RAs8L05{_kxC1xh zmpF_~M5(~Y1hW{<$A0X_9=wXBnB*mj*Nq8$!{tGl?m}g{*I#fPbp#ju`JYi0x{HOV zK@cXP))o8XYTwz&=~yEwk%icYU8oA5M^(^G@-~&G1GV$jNK*DbsuFv#1NWga{|8m_ z3U=#Yv+tXzL=K^Te-w#fr%~_u2B+iqs7j0?N99_SdbBd(paN{bI{Xx?@H)nE;=^X` z=wLN&MOEM=HsKjm#`iFeLDJTdmLsvO3Y&2O>it`=k@$9&hi94i80)bmB`LUr*M zs27~a>jAT$aD?&aEMA6(DW7glfU=O0&Bq4pM1Aj}n(!8O;wa9;wyDG-zHR5>Df|v; za0}3yG7nc^1htX1{`>$c(``s!*-l)K`%xLk9?kT~4Ac?SqY`LECAb_Zs=bA-&gvci zi(RO*IfnY-4>%2fLuD4`P7%Xms29vd1#ClYs1qrorBIo#Mf%mgMIG5S^e{h`xiuff zsDBF+{qaom4dDReU$7ff>_$y<4i)ew*5Ex<;A-xWGOP1#MT%(4kv6b?)bF+BJ2E0E* aiT@Gh-Qs9^Q*_q2bfDzvd~apt^nU@tr_P7~ diff --git a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po index 17ffeec0..39c6b9a5 100644 --- a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-09-11 16:16-0500\n" -"PO-Revision-Date: 2011-09-11 21:16+0000\n" +"POT-Creation-Date: 2011-09-25 20:26-0500\n" +"PO-Revision-Date: 2011-09-26 01:25+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -249,11 +249,9 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"\n" -" Create a free account\n" +"Create a free account\n" " or\n" -" Set up MediaGoblin on your own server\n" -" " +" Set up MediaGoblin on your own server" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:53 @@ -269,17 +267,12 @@ msgid "Enter your username or email" msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "" -"\n" -" Your password has been changed. Try to log in now.\n" -" " +msgid "Your password has been changed. Try to log in now." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" -"\n" -" Check your inbox. We sent an email with a URL for changing your password.\n" -" " +"Check your inbox. We sent an email with a URL for changing your password." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 diff --git a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo index d09aea4456f831b5e655b3c29bbf8872157520a0..3c5d864b33edff5013a794d0bae5a31d9c632cc9 100644 GIT binary patch delta 1733 zcmZ|OeQ3>59LMqRX0rzyHf(kcKQlA7Hg4U!*^T`%#ilma)@rdo&`lP~qR?EC?#jDP$_^ zPqL5=r}2Xa>oJ*8`d}-j<1WTmlA!y%6_tT~n1;tO9wVr6oo@fJYY%c7_7oM!8(fCJ zP#IpzWXj-kRAxd0G_><{W+xc)qB2pA4LBPMu^pB2`#2q6yJoO^MKTxleGO{E3sLi| zz)83om5DagQC!0+*0*jNT3{^UmtYkZ;bwI30@h(S7USfR(F`xIyCsCK{ z9x}CcVFkWI&7VhF0@#FeSl)|6+%?H%R z9+J;${Ehl<9_ebvdi3LMBw`ytA6ATE9P8UU8Y-JD7{qO;lzv1mwtdA))YVmFRj3r# z;(AQWqI*Ua#R5oi+Wpe;^IZmM7-$3TFC&(#S zKWZcKe55l@MUrOeSdaP0eY1_Iquqn8cpZCj1{Y3Mlje|r+E(U7%cc=kHcwEOrIbG{ z*oZ2dm8eMfqatl{-=9St$u0MJ4=O|Nkb7!BQB{+|BpR2F>QBib|7sNTK$pmeiewh5 zZ0b-czKOacr4yr>S%BJjGb)ukQJHAN20Vg_{3|NuIl0lQnd!O;70B@r4NY(wwc|?| zhj&qB^8ner^`nkr1P^tI3Q!BI#S-j5RZSl{n4A}_ngZ12+=TIX9?S7ED&VExXgDyJt*zcvfHJn8zO* z{*yH~Qj@$qCHyGC8=g63T(~D=dxF>Jc&C+l!@P0{iq2&$=! z79pZ6q#!1QHn1iwqlkzST8N+^2nvLf7NYO3x%~%;+|N1Z-Z|$y&w0+CnpZW4CItt~ ztTo=O7B?lB1+W*>F)q=p5VNovmtYc}!i{(yeVE2z6;@&~hEU)2@feEFuo3%_r7Vza z#=k8{wxF?=Eu}XSSK@YTLVfriN8u;;{cpFQnqrp8crK1ZKMuncn1KyA0e9eVJc%B> z=)S*;S@d6~1kFa%7-T>jNnw^)9F1c!6P1|)OvSx86OUpm-obt>WtDu)7-5!!bFmrM zVgtU!i5OrKt+y6)achuTRz)S-61841b`qcYKsb$AXH`A<~J^VzL~<*wUMfpnmLe+5~? zZldOSgp=_pDiedqQ3cIIKB^dSPz$u+9K3`D_zt}|a*Ww>bg&TjqcYHirFaV!@h|jZ z9AWE7ryy%t0hVJKYW{ubXMMX(qk@6&sFakE&(&Cus^aUY2_iTn#_R3H5%D+dqm5umjnXbz@Lx^@;{(VINV~Mh{(^98_)0LcOm* z*043msaOkYBZp9Dd;&?Lok3+LjMS?oQCK=!54Pe$?8kdKp+1Y_S&nM|J)%|ss7(a%Rkz6+J|%cxuP!1YIvh9a5C z-OvQHQ9GWCvA7KRw-r2;i5ApRw4-iK7ixhaQ=(N}fVwq}=*45W9J^3OnKCsRupdk5 zuP>vah\n" "Language-Team: Serbian (http://www.transifex.net/projects/p/mediagoblin/team/sr/)\n" "MIME-Version: 1.0\n" @@ -235,11 +235,9 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"\n" -" Create a free account\n" +"Create a free account\n" " or\n" -" Set up MediaGoblin on your own server\n" -" " +" Set up MediaGoblin on your own server" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:53 @@ -255,17 +253,12 @@ msgid "Enter your username or email" msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "" -"\n" -" Your password has been changed. Try to log in now.\n" -" " +msgid "Your password has been changed. Try to log in now." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" -"\n" -" Check your inbox. We sent an email with a URL for changing your password.\n" -" " +"Check your inbox. We sent an email with a URL for changing your password." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo index 5f8ac655c01f05feb5187ee88ae6eed3abe337d2..2cdf2fee84be8bcf7afc236bccbabd00d80531f0 100644 GIT binary patch delta 1764 zcmXxkdq~x19LMpmWu0@(R<_jgvVNAAV`vcc+)ZcuI5AA5f|XK?WKJip)X`99z0`#g{L zYd(H)I6ItTW-Wuwp5PHI!X}?tHFjbE-{QCU5leA{->eEdumoSAzH|695XWN(Cn6#3 zC??sIunnj2FAsKO0$*vscQ^vuQ13fp{mVFt{*Rc3k1-KHU@FEBG5ZWN za444HXskrNUyB*I2S3I3A>n8y7kCiQgR7W~H*gu=!(o`iECpDCEw~0B;xi0l7qgAQ zUfhLopD-Ej!7O}=nlO%FV=)=E&}m^BT4_1zgQch~3B{hbpek?}lkhYS!U*cS8?pW$ zF&`kiVUJM@`3pB-KdQp(2&M`?MO7yJ4-I8Lg6J&9TvR2>aXHS%0z82#`CXiZf5uE9 zd#$7bHGVNF;gzU3n=l6(QI%*%ZN*KjVt(tPp$Rfs{#2~OiP(w`Ucnmd!6M8X8Lhx_ zET>#!ePTtR&~mv#^p=ot3K znVm;sSsR0NYfhsQ-bX!G;w4lC5-FFT?=w*q%T15onlEt*{Z0%pzdfR%()D32zCx9B z5l5ASZ8fNCvkH~aIiwgCLG5Wb>P*bdj80sE8uwMKzYbZGZAXp!0XYuVfngnjOEh$C z?xGU;8+9h$q4p}7m&{>>r~p-{64#;bdk8f_11`aRs0n&dmFdIpF^QlLu^sbpt3&;@ z_wA0^E&Lf9aDSE=MX;Ah4wk^3Q365KUN1mxSv9g7wjPzhUgXBw5mch5kaKERQ5Cv_ zit`()!q3N2f4z9k1C{nY@-rJ3y*A^pnQj~Mvp{zAkQJg%bv0`IHq<|y-S{;gK%JrI z$j>tPcs9;K#c4$)a3)Mc6JLyZJ@(=@=JWg)RH@#g5=+bFO5!Xm##SuE2`Qi zIH4iY``zbyT`6aMZi(X-&v3m^YL?$Eb&4m=a7!YGQuE`y*=eKxAM2(2gOTR6t^wW- QUu9%+W`A^i;rP7&02BkwqyPW_ delta 1848 zcmb8vTWC~A9LMp0Y}ZY)Ni?QrcWbOC7h~cj@kC8Eshh+LZADryNmD{o6QU)y7AlEQ zHQ`jeyhv%wu@qE95pR^LWkF-B4{8+!r50O*B87l2r4QnQh(_9ef7xT+8H47r*j#;h4auy zjl0g*OL!YU!a*dIC9=)<*wSqCj99jU)_8m$x8Qozzy~-1{|?^&6ST)g%wqJH;Hy}V zIrtt%u?t_rt(c2@F^gbt2>#jF`! ztj1la3Y@_PJdaxOb96AovbCkvC269bA7UHo6rV#) za2ba(%-a{Ag-qQ=cdiem}ff~!y!xrqvR8@Vv{AZR~C);MxC^t(c?h|Zr) z=Rs$n4*6I!UrL|{btb+*_R0<-x!3?|fWmFh<&b_AE;HJpvPyqtvz)a}@S z3b-G&6&JA{3o6oyzKb(xdo4UD<88>c*jE_FQ>c=i#f5ks7hsrd=3o;lfla8A|Ag&$ z3$w6ldV1^Tqh&jze{Xa;T^l-kdKQ*+uj^d9&OaUdHGlN=i-G={qPKHLdPjTO3Tr|m zJ$~QVN&fbDS#obUZ%i_k)t%#iS$H(;x{h00=lXTg;!K`v+&Z^5*%htKh>XteIR2s7 ZpZ_!3?pQpzJ$`>o@\n" "Language-Team: Swedish (http://www.transifex.net/projects/p/mediagoblin/team/sv/)\n" "MIME-Version: 1.0\n" @@ -256,11 +256,9 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"\n" -" Create a free account\n" +"Create a free account\n" " or\n" -" Set up MediaGoblin on your own server\n" -" " +" Set up MediaGoblin on your own server" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:53 @@ -276,17 +274,12 @@ msgid "Enter your username or email" msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "" -"\n" -" Your password has been changed. Try to log in now.\n" -" " +msgid "Your password has been changed. Try to log in now." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" -"\n" -" Check your inbox. We sent an email with a URL for changing your password.\n" -" " +"Check your inbox. We sent an email with a URL for changing your password." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 diff --git a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo index e01173913c017cd40cf3a0bf22da58f0d98f649c..adc3548e7f21840c9eb93a2ce71175b6a121924a 100644 GIT binary patch delta 1755 zcmXZbZAeu~9LMp$+tXERD|gebS{^g?7H!&rYfpl~F62XGrV&I5W}2_zR1wk@c(E&BdA2QK$BGiPT0Gyj-7oR3UtCol#3 zumby$sq9^{#cc|O&op#m3cWO7Kc?X!)c3PN{VGnUej79K8BWBHn1N$c&1PaYPQs-a z#tPK;M$E=8{0VzgJ>; z5)8XA7e`P5lbCE4PD5>UQJjKyT88Sd8g(SiL3=kU1IKVGp2KmNK=m64>h}U4A*W%_ zP#bxLE%*hM;Z01Y433~O6aPd(D^Fu~He)U-6J@v-f5Um$hf4VnF2K>ibXKpOl%vL1 zqZYg#HBTGnV>>Dny{MzOftAF!2NV=w2HRhVl{g>wp@V;59X`M!Ed1Hez*;P$z5%u4 zGw9$2)a4pPrnX`H6p^Ak5^~=xnYXCSgfWJz@G;&&WwN34X#@K(TfZ<#}fD>4Z+UYXX&TE5u8*)!=59-w%N6ph4)UV}|f1UA78Z_}B zYNETSvwMLZSj(eTriM^E8$~Vb1L`Qo<@u&z74;m{8Mh)`>|{_MK;4B=RJ@t-+5W(M z)ET*`4^^mvtC62|@Tc#mk!NFxp#2*vP#$lr5Lcr5?ZQSpicx%zns-it*)Ld(+DN>f zf(CBG@puw-mS?aO6R0!%C$Nyt<<#quduRRFinmc`S`_gw?MBp5w4vokI$}-j+Zx)M z=EMqP&W`r&&0DrMS!sjg9hv?#krgWW!Rrc_C#q9^pXl8SyWaKm{t0f>af_F@UUNon q$SrY-7c6n3-qDPAUMMq1!@R6eBvF<5HOcD?S0t8a$NZrKk%I3_h0E3e delta 1841 zcmb8wTWC~A9LMp$+T5ci+M10~vm3LzicL5R*=nL|)fD4}XoB$)i?t0Ai?&u{9*mdc zgI7eboIoMcKryXGF{ly2#DE%9Li-|uL9MX`wMe1GJb0l}{Qj~B-(8md%*>fH|C#^H zum`IiRUIpI2hD7EvRMs&mtq#jn>Y@WQq78S0#@QuOvB^234g{IX4AMBE3gDTRKGrc zM&KRXfc;1)i>I6Mwa?PcHDcLvYFW4%oA7H?$HzDZ|Ms8%@7G6Xm<4Dr!0}jynYa>j zuns5TP8^9Xn2V?U=htxp_4^sF*;ooMY0yM6807;TiyvVCm6;+Ojr(v0Hsfx*hW$8~ zC=tvVWtNYh;tpJob$A~`7-ta0TaN{}-KC(F{(xF(tKZ=~Y71`o?Z2Zk^e<+kDoHQ~ z)i2=Ji+xLw-LW#%LdtO?)}k`pi^`xIXEdc|6>8>Nkww|}s7$otDm;N&`G2UCN0_aH z3w#?<3pt5;zXOS3-KcSX!!X`PW#T2WRj%cdkHs`Nr~te06KuyK{1bzi^`Y4cbg&o? zpfYd?=i(LAir-)mlUTO4bP5v7if{qWLyf;5%ZP716c*C(8kLfHFjd5hT05%6zuR!%%hE4dn-`DKIJf0)yCu zYCn$3NC&c4b_*HH9-#(!gGzB0cTE!tAW5`*T!$sdd9`L#M%u6eA7DQ&%P0R)3R8oL z!&i&y(1f}+|6mBK`O#t8j=XF8Q32af0nYe#qbB|\n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -241,11 +241,9 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"\n" -" Create a free account\n" +"Create a free account\n" " or\n" -" Set up MediaGoblin on your own server\n" -" " +" Set up MediaGoblin on your own server" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:53 @@ -261,17 +259,12 @@ msgid "Enter your username or email" msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "" -"\n" -" Your password has been changed. Try to log in now.\n" -" " +msgid "Your password has been changed. Try to log in now." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" -"\n" -" Check your inbox. We sent an email with a URL for changing your password.\n" -" " +"Check your inbox. We sent an email with a URL for changing your password." msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 From 81291bbb896d04fee66b9482f479b3fc6e6e07f5 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Wed, 28 Sep 2011 21:00:33 +0200 Subject: [PATCH 1029/2731] Added arista to install requires --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index 06626926..7417fb97 100644 --- a/setup.py +++ b/setup.py @@ -61,6 +61,7 @@ setup( 'ConfigObj', 'Markdown', 'python-cloudfiles', + 'arista', ## For now we're expecting that users will install this from ## their package managers. # 'lxml', From 62be795e9141f951a92d5c44a974db9875df197d Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Thu, 29 Sep 2011 00:57:07 +0200 Subject: [PATCH 1030/2731] Renamed video.presets => video.devices --- .../video/{presets => devices}/web-advanced.json | 0 .../video/{presets => devices}/web-flv.png | Bin .../video/{presets => devices}/web-webm.svg | 0 .../media_types/video/{presets => devices}/web.svg | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename mediagoblin/media_types/video/{presets => devices}/web-advanced.json (100%) rename mediagoblin/media_types/video/{presets => devices}/web-flv.png (100%) rename mediagoblin/media_types/video/{presets => devices}/web-webm.svg (100%) rename mediagoblin/media_types/video/{presets => devices}/web.svg (100%) diff --git a/mediagoblin/media_types/video/presets/web-advanced.json b/mediagoblin/media_types/video/devices/web-advanced.json similarity index 100% rename from mediagoblin/media_types/video/presets/web-advanced.json rename to mediagoblin/media_types/video/devices/web-advanced.json diff --git a/mediagoblin/media_types/video/presets/web-flv.png b/mediagoblin/media_types/video/devices/web-flv.png similarity index 100% rename from mediagoblin/media_types/video/presets/web-flv.png rename to mediagoblin/media_types/video/devices/web-flv.png diff --git a/mediagoblin/media_types/video/presets/web-webm.svg b/mediagoblin/media_types/video/devices/web-webm.svg similarity index 100% rename from mediagoblin/media_types/video/presets/web-webm.svg rename to mediagoblin/media_types/video/devices/web-webm.svg diff --git a/mediagoblin/media_types/video/presets/web.svg b/mediagoblin/media_types/video/devices/web.svg similarity index 100% rename from mediagoblin/media_types/video/presets/web.svg rename to mediagoblin/media_types/video/devices/web.svg From 6347605c1e57e2f428b682740048c68cb54837c2 Mon Sep 17 00:00:00 2001 From: Elrond Date: Thu, 29 Sep 2011 20:15:53 +0200 Subject: [PATCH 1031/2731] When using paste's static content server to serve media entries and other files the client should have some idea on how long it can cache those files locally before asking again for them. The old setting was: Don't allow the client to cache. New setting: 1 week for the media entries (they don't change, ever) 1 day for css/logos, etc. They change on an update, so people might want to see the new design soon. --- paste.ini | 2 ++ 1 file changed, 2 insertions(+) diff --git a/paste.ini b/paste.ini index fc459989..7eee528b 100644 --- a/paste.ini +++ b/paste.ini @@ -19,10 +19,12 @@ config = %(here)s/mediagoblin.ini [app:publicstore_serve] use = egg:Paste#static document_root = %(here)s/user_dev/media/public/ +cache_max_age = 604800 [app:mediagoblin_static] use = egg:Paste#static document_root = %(here)s/mediagoblin/static/ +cache_max_age = 86400 [filter:beaker] use = egg:Beaker#beaker_session From bf33272f03a28c86b91750fed354b75062f516e6 Mon Sep 17 00:00:00 2001 From: Elrond Date: Fri, 30 Sep 2011 22:27:47 +0200 Subject: [PATCH 1032/2731] Give debug message in email debug mode If the server is running in email debug mode (current default), users have often asked where the mail is. So tell them in the web browser that their mail is on the console. --- mediagoblin/auth/views.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index f67f0588..b6f38fec 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -30,6 +30,19 @@ from mediagoblin.auth.lib import send_verification_email, \ send_fp_verification_email +def email_debug_message(request): + """ + If the server is running in email debug mode (which is + the current default), give a debug message to the user + so that they have an idea where to find their email. + """ + if mg_globals.app_config['email_debug_mode']: + # DEBUG message, no need to translate + messages.add_message(request, messages.DEBUG, + u"This instance is running in email debug mode. " + u"The email will be on the console of the server process.") + + def register(request): """ Your classic registration view! @@ -78,6 +91,7 @@ def register(request): request.session.save() # send verification email + email_debug_message(request) send_verification_email(user, request) # redirect the user to their homepage... there will be a @@ -184,6 +198,7 @@ def resend_activation(request): request.user[u'verification_key'] = unicode(uuid.uuid4()) request.user.save() + email_debug_message(request) send_verification_email(request.user, request) messages.add_message( @@ -204,6 +219,11 @@ def forgot_password(request): fp_form = auth_forms.ForgotPassForm(request.POST) if request.method == 'POST' and fp_form.validate(): + + # Here, so it doesn't depend on the actual mail being sent + # and thus doesn't reveal, wether mail was sent. + email_debug_message(request) + # '$or' not available till mongodb 1.5.3 user = request.db.User.find_one( {'username': request.POST['username']}) From ae3bc7fabf8e0abb5f3d8b6534ca451890bbe90b Mon Sep 17 00:00:00 2001 From: Aaron Williamson Date: Sat, 1 Oct 2011 09:31:42 -0400 Subject: [PATCH 1033/2731] Moved common, translation, template, and url code out of util.py and into tools/[file].py --- mediagoblin/app.py | 5 +- mediagoblin/auth/forms.py | 2 +- mediagoblin/auth/lib.py | 3 +- mediagoblin/auth/views.py | 2 +- mediagoblin/db/models.py | 4 +- mediagoblin/process_media/errors.py | 2 +- mediagoblin/submit/forms.py | 2 +- mediagoblin/submit/views.py | 2 +- mediagoblin/tests/test_auth.py | 106 +++---- mediagoblin/tests/test_messages.py | 4 +- mediagoblin/tests/test_submission.py | 42 +-- mediagoblin/tests/test_util.py | 36 +-- mediagoblin/tools/__init__.py | 0 mediagoblin/tools/common.py | 18 ++ mediagoblin/tools/template.py | 114 ++++++++ mediagoblin/tools/translate.py | 167 +++++++++++ mediagoblin/tools/url.py | 31 +++ mediagoblin/user_pages/forms.py | 2 +- mediagoblin/user_pages/views.py | 2 +- mediagoblin/util.py | 395 ++++++++++++++------------- 20 files changed, 636 insertions(+), 303 deletions(-) create mode 100644 mediagoblin/tools/__init__.py create mode 100644 mediagoblin/tools/common.py create mode 100644 mediagoblin/tools/template.py create mode 100644 mediagoblin/tools/translate.py create mode 100644 mediagoblin/tools/url.py diff --git a/mediagoblin/app.py b/mediagoblin/app.py index dd5f0b89..5ee3b973 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -21,6 +21,7 @@ import routes from webob import Request, exc from mediagoblin import routing, util, middleware +from mediagoblin.tools import translate, template from mediagoblin.mg_globals import setup_globals from mediagoblin.init.celery import setup_celery_from_config from mediagoblin.init import (get_jinja_loader, get_staticdirector, @@ -123,9 +124,9 @@ class MediaGoblinApp(object): # Attach self as request.app # Also attach a few utilities from request.app for convenience? request.app = self - request.locale = util.get_locale_from_request(request) + request.locale = translate.get_locale_from_request(request) - request.template_env = util.get_jinja_env( + request.template_env = template.get_jinja_env( self.template_loader, request.locale) request.db = self.db request.staticdirect = self.staticdirector diff --git a/mediagoblin/auth/forms.py b/mediagoblin/auth/forms.py index 6339b4a3..a932ad26 100644 --- a/mediagoblin/auth/forms.py +++ b/mediagoblin/auth/forms.py @@ -17,7 +17,7 @@ import wtforms import re -from mediagoblin.util import fake_ugettext_passthrough as _ +from mediagoblin.tools.translate import fake_ugettext_passthrough as _ class RegistrationForm(wtforms.Form): diff --git a/mediagoblin/auth/lib.py b/mediagoblin/auth/lib.py index d7d351a5..bf5a2399 100644 --- a/mediagoblin/auth/lib.py +++ b/mediagoblin/auth/lib.py @@ -19,7 +19,8 @@ import random import bcrypt -from mediagoblin.util import send_email, render_template +from mediagoblin.util import send_email +from mediagoblin.tools.template import render_template from mediagoblin import mg_globals diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index f67f0588..9bfa93cf 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -22,7 +22,7 @@ from webob import exc from mediagoblin import messages from mediagoblin import mg_globals from mediagoblin.util import render_to_response, redirect, render_404 -from mediagoblin.util import pass_to_ugettext as _ +from mediagoblin.tools.translate import pass_to_ugettext as _ from mediagoblin.db.util import ObjectId, InvalidId from mediagoblin.auth import lib as auth_lib from mediagoblin.auth import forms as auth_forms diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index bbddada6..eacc801c 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -25,7 +25,7 @@ from mediagoblin.db import migrations from mediagoblin.db.util import ASCENDING, DESCENDING, ObjectId from mediagoblin.util import Pagination from mediagoblin.util import DISPLAY_IMAGE_FETCHING_ORDER - +from mediagoblin.tools import url ################### # Custom validators @@ -242,7 +242,7 @@ class MediaEntry(Document): pass def generate_slug(self): - self['slug'] = util.slugify(self['title']) + self['slug'] = url.slugify(self['title']) duplicate = mg_globals.database.media_entries.find_one( {'slug': self['slug']}) diff --git a/mediagoblin/process_media/errors.py b/mediagoblin/process_media/errors.py index 156f0a01..8003ffaf 100644 --- a/mediagoblin/process_media/errors.py +++ b/mediagoblin/process_media/errors.py @@ -14,7 +14,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from mediagoblin.util import lazy_pass_to_ugettext as _ +from mediagoblin.tools.translate import lazy_pass_to_ugettext as _ class BaseProcessingFail(Exception): """ diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py index a999c714..200ce4e4 100644 --- a/mediagoblin/submit/forms.py +++ b/mediagoblin/submit/forms.py @@ -18,7 +18,7 @@ import wtforms from mediagoblin.util import tag_length_validator -from mediagoblin.util import fake_ugettext_passthrough as _ +from mediagoblin.tools.translate import fake_ugettext_passthrough as _ class SubmitStartForm(wtforms.Form): diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index e24d78f3..cd34e006 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -25,7 +25,7 @@ from mediagoblin.db.util import ObjectId from mediagoblin.util import ( render_to_response, redirect, cleaned_markdown_conversion, \ convert_to_tag_list_of_dicts) -from mediagoblin.util import pass_to_ugettext as _ +from mediagoblin.tools.translate import pass_to_ugettext as _ from mediagoblin.decorators import require_active_login from mediagoblin.submit import forms as submit_forms, security from mediagoblin.process_media import process_media, mark_entry_failed diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py index fbbe1613..f00456c4 100644 --- a/mediagoblin/tests/test_auth.py +++ b/mediagoblin/tests/test_auth.py @@ -22,7 +22,7 @@ from nose.tools import assert_equal from mediagoblin.auth import lib as auth_lib from mediagoblin.tests.tools import setup_fresh_app from mediagoblin import mg_globals -from mediagoblin import util +from mediagoblin.tools import template ######################## @@ -76,16 +76,16 @@ def test_register_views(test_app): test_app.get('/auth/register/') # Make sure it rendered with the appropriate template - assert util.TEMPLATE_TEST_CONTEXT.has_key( + assert template.TEMPLATE_TEST_CONTEXT.has_key( 'mediagoblin/auth/register.html') # Try to register without providing anything, should error # -------------------------------------------------------- - util.clear_test_template_context() + template.clear_test_template_context() test_app.post( '/auth/register/', {}) - context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/register.html'] + context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/register.html'] form = context['register_form'] assert form.username.errors == [u'This field is required.'] assert form.password.errors == [u'This field is required.'] @@ -96,14 +96,14 @@ def test_register_views(test_app): # -------------------------------------------------------- ## too short - util.clear_test_template_context() + template.clear_test_template_context() test_app.post( '/auth/register/', { 'username': 'l', 'password': 'o', 'confirm_password': 'o', 'email': 'l'}) - context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/register.html'] + context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/register.html'] form = context['register_form'] assert form.username.errors == [ @@ -112,12 +112,12 @@ def test_register_views(test_app): u'Field must be between 6 and 30 characters long.'] ## bad form - util.clear_test_template_context() + template.clear_test_template_context() test_app.post( '/auth/register/', { 'username': '@_@', 'email': 'lollerskates'}) - context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/register.html'] + context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/register.html'] form = context['register_form'] assert form.username.errors == [ @@ -126,12 +126,12 @@ def test_register_views(test_app): u'Invalid email address.'] ## mismatching passwords - util.clear_test_template_context() + template.clear_test_template_context() test_app.post( '/auth/register/', { 'password': 'herpderp', 'confirm_password': 'derpherp'}) - context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/register.html'] + context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/register.html'] form = context['register_form'] assert form.password.errors == [ @@ -142,7 +142,7 @@ def test_register_views(test_app): # Successful register # ------------------- - util.clear_test_template_context() + template.clear_test_template_context() response = test_app.post( '/auth/register/', { 'username': 'happygirl', @@ -155,7 +155,7 @@ def test_register_views(test_app): assert_equal( urlparse.urlsplit(response.location)[2], '/u/happygirl/') - assert util.TEMPLATE_TEST_CONTEXT.has_key( + assert template.TEMPLATE_TEST_CONTEXT.has_key( 'mediagoblin/user_pages/user.html') ## Make sure user is in place @@ -166,15 +166,15 @@ def test_register_views(test_app): assert new_user['email_verified'] == False ## Make sure user is logged in - request = util.TEMPLATE_TEST_CONTEXT[ + request = template.TEMPLATE_TEST_CONTEXT[ 'mediagoblin/user_pages/user.html']['request'] assert request.session['user_id'] == unicode(new_user['_id']) ## Make sure we get email confirmation, and try verifying - assert len(util.EMAIL_TEST_INBOX) == 1 - message = util.EMAIL_TEST_INBOX.pop() + assert len(template.EMAIL_TEST_INBOX) == 1 + message = template.EMAIL_TEST_INBOX.pop() assert message['To'] == 'happygrrl@example.org' - email_context = util.TEMPLATE_TEST_CONTEXT[ + email_context = template.TEMPLATE_TEST_CONTEXT[ 'mediagoblin/auth/verification_email.txt'] assert email_context['verification_url'] in message.get_payload(decode=True) @@ -190,12 +190,12 @@ def test_register_views(test_app): new_user['verification_key']] ## Try verifying with bs verification key, shouldn't work - util.clear_test_template_context() + template.clear_test_template_context() response = test_app.get( "/auth/verify_email/?userid=%s&token=total_bs" % unicode( new_user['_id'])) response.follow() - context = util.TEMPLATE_TEST_CONTEXT[ + context = template.TEMPLATE_TEST_CONTEXT[ 'mediagoblin/user_pages/user.html'] # assert context['verification_successful'] == True # TODO: Would be good to test messages here when we can do so... @@ -206,10 +206,10 @@ def test_register_views(test_app): assert new_user['email_verified'] == False ## Verify the email activation works - util.clear_test_template_context() + template.clear_test_template_context() response = test_app.get("%s?%s" % (path, get_params)) response.follow() - context = util.TEMPLATE_TEST_CONTEXT[ + context = template.TEMPLATE_TEST_CONTEXT[ 'mediagoblin/user_pages/user.html'] # assert context['verification_successful'] == True # TODO: Would be good to test messages here when we can do so... @@ -222,7 +222,7 @@ def test_register_views(test_app): # Uniqueness checks # ----------------- ## We shouldn't be able to register with that user twice - util.clear_test_template_context() + template.clear_test_template_context() response = test_app.post( '/auth/register/', { 'username': 'happygirl', @@ -230,7 +230,7 @@ def test_register_views(test_app): 'confirm_password': 'iamsohappy2', 'email': 'happygrrl2@example.org'}) - context = util.TEMPLATE_TEST_CONTEXT[ + context = template.TEMPLATE_TEST_CONTEXT[ 'mediagoblin/auth/register.html'] form = context['register_form'] assert form.username.errors == [ @@ -240,7 +240,7 @@ def test_register_views(test_app): ### Oops, forgot the password # ------------------- - util.clear_test_template_context() + template.clear_test_template_context() response = test_app.post( '/auth/forgot_password/', {'username': 'happygirl'}) @@ -250,14 +250,14 @@ def test_register_views(test_app): assert_equal( urlparse.urlsplit(response.location)[2], '/auth/forgot_password/email_sent/') - assert util.TEMPLATE_TEST_CONTEXT.has_key( + assert template.TEMPLATE_TEST_CONTEXT.has_key( 'mediagoblin/auth/fp_email_sent.html') ## Make sure link to change password is sent by email - assert len(util.EMAIL_TEST_INBOX) == 1 - message = util.EMAIL_TEST_INBOX.pop() + assert len(template.EMAIL_TEST_INBOX) == 1 + message = template.EMAIL_TEST_INBOX.pop() assert message['To'] == 'happygrrl@example.org' - email_context = util.TEMPLATE_TEST_CONTEXT[ + email_context = template.TEMPLATE_TEST_CONTEXT[ 'mediagoblin/auth/fp_verification_email.txt'] #TODO - change the name of verification_url to something forgot-password-ish assert email_context['verification_url'] in message.get_payload(decode=True) @@ -277,14 +277,14 @@ def test_register_views(test_app): assert (new_user['fp_token_expire'] - datetime.datetime.now()).days == 9 ## Try using a bs password-changing verification key, shouldn't work - util.clear_test_template_context() + template.clear_test_template_context() response = test_app.get( "/auth/forgot_password/verify/?userid=%s&token=total_bs" % unicode( new_user['_id']), status=400) assert response.status == '400 Bad Request' ## Try using an expired token to change password, shouldn't work - util.clear_test_template_context() + template.clear_test_template_context() real_token_expiration = new_user['fp_token_expire'] new_user['fp_token_expire'] = datetime.datetime.now() new_user.save() @@ -294,12 +294,12 @@ def test_register_views(test_app): new_user.save() ## Verify step 1 of password-change works -- can see form to change password - util.clear_test_template_context() + template.clear_test_template_context() response = test_app.get("%s?%s" % (path, get_params)) - assert util.TEMPLATE_TEST_CONTEXT.has_key('mediagoblin/auth/change_fp.html') + assert template.TEMPLATE_TEST_CONTEXT.has_key('mediagoblin/auth/change_fp.html') ## Verify step 2.1 of password-change works -- report success to user - util.clear_test_template_context() + template.clear_test_template_context() response = test_app.post( '/auth/forgot_password/verify/', { 'userid': parsed_get_params['userid'], @@ -307,11 +307,11 @@ def test_register_views(test_app): 'confirm_password': 'iamveryveryhappy', 'token': parsed_get_params['token']}) response.follow() - assert util.TEMPLATE_TEST_CONTEXT.has_key( + assert template.TEMPLATE_TEST_CONTEXT.has_key( 'mediagoblin/auth/fp_changed_success.html') ## Verify step 2.2 of password-change works -- login w/ new password success - util.clear_test_template_context() + template.clear_test_template_context() response = test_app.post( '/auth/login/', { 'username': u'happygirl', @@ -322,7 +322,7 @@ def test_register_views(test_app): assert_equal( urlparse.urlsplit(response.location)[2], '/') - assert util.TEMPLATE_TEST_CONTEXT.has_key( + assert template.TEMPLATE_TEST_CONTEXT.has_key( 'mediagoblin/root.html') @@ -341,61 +341,61 @@ def test_authentication_views(test_app): # Get login # --------- test_app.get('/auth/login/') - assert util.TEMPLATE_TEST_CONTEXT.has_key( + assert template.TEMPLATE_TEST_CONTEXT.has_key( 'mediagoblin/auth/login.html') # Failed login - blank form # ------------------------- - util.clear_test_template_context() + template.clear_test_template_context() response = test_app.post('/auth/login/') - context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/login.html'] + context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/login.html'] form = context['login_form'] assert form.username.errors == [u'This field is required.'] assert form.password.errors == [u'This field is required.'] # Failed login - blank user # ------------------------- - util.clear_test_template_context() + template.clear_test_template_context() response = test_app.post( '/auth/login/', { 'password': u'toast'}) - context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/login.html'] + context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/login.html'] form = context['login_form'] assert form.username.errors == [u'This field is required.'] # Failed login - blank password # ----------------------------- - util.clear_test_template_context() + template.clear_test_template_context() response = test_app.post( '/auth/login/', { 'username': u'chris'}) - context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/login.html'] + context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/login.html'] form = context['login_form'] assert form.password.errors == [u'This field is required.'] # Failed login - bad user # ----------------------- - util.clear_test_template_context() + template.clear_test_template_context() response = test_app.post( '/auth/login/', { 'username': u'steve', 'password': 'toast'}) - context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/login.html'] + context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/login.html'] assert context['login_failed'] # Failed login - bad password # --------------------------- - util.clear_test_template_context() + template.clear_test_template_context() response = test_app.post( '/auth/login/', { 'username': u'chris', 'password': 'jam'}) - context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/login.html'] + context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/login.html'] assert context['login_failed'] # Successful login # ---------------- - util.clear_test_template_context() + template.clear_test_template_context() response = test_app.post( '/auth/login/', { 'username': u'chris', @@ -406,17 +406,17 @@ def test_authentication_views(test_app): assert_equal( urlparse.urlsplit(response.location)[2], '/') - assert util.TEMPLATE_TEST_CONTEXT.has_key( + assert template.TEMPLATE_TEST_CONTEXT.has_key( 'mediagoblin/root.html') # Make sure user is in the session - context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/root.html'] + context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/root.html'] session = context['request'].session assert session['user_id'] == unicode(test_user['_id']) # Successful logout # ----------------- - util.clear_test_template_context() + template.clear_test_template_context() response = test_app.get('/auth/logout/') # Should be redirected to index page @@ -424,17 +424,17 @@ def test_authentication_views(test_app): assert_equal( urlparse.urlsplit(response.location)[2], '/') - assert util.TEMPLATE_TEST_CONTEXT.has_key( + assert template.TEMPLATE_TEST_CONTEXT.has_key( 'mediagoblin/root.html') # Make sure the user is not in the session - context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/root.html'] + context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/root.html'] session = context['request'].session assert session.has_key('user_id') == False # User is redirected to custom URL if POST['next'] is set # ------------------------------------------------------- - util.clear_test_template_context() + template.clear_test_template_context() response = test_app.post( '/auth/login/', { 'username': u'chris', diff --git a/mediagoblin/tests/test_messages.py b/mediagoblin/tests/test_messages.py index 9c57a151..2635f4d7 100644 --- a/mediagoblin/tests/test_messages.py +++ b/mediagoblin/tests/test_messages.py @@ -16,7 +16,7 @@ from mediagoblin.messages import fetch_messages, add_message from mediagoblin.tests.tools import setup_fresh_app -from mediagoblin import util +from mediagoblin.tools import template @setup_fresh_app @@ -28,7 +28,7 @@ def test_messages(test_app): """ # Aquire a request object test_app.get('/') - context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/root.html'] + context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/root.html'] request = context['request'] # The message queue should be empty diff --git a/mediagoblin/tests/test_submission.py b/mediagoblin/tests/test_submission.py index 007c0348..1c657e6c 100644 --- a/mediagoblin/tests/test_submission.py +++ b/mediagoblin/tests/test_submission.py @@ -22,7 +22,7 @@ from nose.tools import assert_equal, assert_true, assert_false from mediagoblin.auth import lib as auth_lib from mediagoblin.tests.tools import setup_fresh_app, get_test_app from mediagoblin import mg_globals -from mediagoblin import util +from mediagoblin.tools import template, common GOOD_JPG = pkg_resources.resource_filename( 'mediagoblin.tests', 'test_submission/good.jpg') @@ -63,20 +63,20 @@ class TestSubmission: def test_missing_fields(self): # Test blank form # --------------- - util.clear_test_template_context() + template.clear_test_template_context() response = self.test_app.post( '/submit/', {}) - context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] + context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] form = context['submit_form'] assert form.file.errors == [u'You must provide a file.'] # Test blank file # --------------- - util.clear_test_template_context() + template.clear_test_template_context() response = self.test_app.post( '/submit/', { 'title': 'test title'}) - context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] + context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] form = context['submit_form'] assert form.file.errors == [u'You must provide a file.'] @@ -84,7 +84,7 @@ class TestSubmission: def test_normal_uploads(self): # Test JPG # -------- - util.clear_test_template_context() + template.clear_test_template_context() response = self.test_app.post( '/submit/', { 'title': 'Normal upload 1' @@ -96,12 +96,12 @@ class TestSubmission: assert_equal( urlparse.urlsplit(response.location)[2], '/u/chris/') - assert util.TEMPLATE_TEST_CONTEXT.has_key( + assert template.TEMPLATE_TEST_CONTEXT.has_key( 'mediagoblin/user_pages/user.html') # Test PNG # -------- - util.clear_test_template_context() + template.clear_test_template_context() response = self.test_app.post( '/submit/', { 'title': 'Normal upload 2' @@ -112,13 +112,13 @@ class TestSubmission: assert_equal( urlparse.urlsplit(response.location)[2], '/u/chris/') - assert util.TEMPLATE_TEST_CONTEXT.has_key( + assert template.TEMPLATE_TEST_CONTEXT.has_key( 'mediagoblin/user_pages/user.html') def test_tags(self): # Good tag string # -------- - util.clear_test_template_context() + template.clear_test_template_context() response = self.test_app.post( '/submit/', { 'title': 'Balanced Goblin', @@ -128,7 +128,7 @@ class TestSubmission: # New media entry with correct tags should be created response.follow() - context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/user_pages/user.html'] + context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/user_pages/user.html'] request = context['request'] media = request.db.MediaEntry.find({'title': 'Balanced Goblin'})[0] assert_equal(media['tags'], @@ -137,7 +137,7 @@ class TestSubmission: # Test tags that are too long # --------------- - util.clear_test_template_context() + template.clear_test_template_context() response = self.test_app.post( '/submit/', { 'title': 'Balanced Goblin', @@ -146,14 +146,14 @@ class TestSubmission: 'file', GOOD_JPG)]) # Too long error should be raised - context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] + context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] form = context['submit_form'] assert form.tags.errors == [ u'Tags must be shorter than 50 characters. Tags that are too long'\ ': ffffffffffffffffffffffffffuuuuuuuuuuuuuuuuuuuuuuuuuu'] def test_delete(self): - util.clear_test_template_context() + template.clear_test_template_context() response = self.test_app.post( '/submit/', { 'title': 'Balanced Goblin', @@ -163,7 +163,7 @@ class TestSubmission: # Post image response.follow() - request = util.TEMPLATE_TEST_CONTEXT[ + request = template.TEMPLATE_TEST_CONTEXT[ 'mediagoblin/user_pages/user.html']['request'] media = request.db.MediaEntry.find({'title': 'Balanced Goblin'})[0] @@ -183,7 +183,7 @@ class TestSubmission: response.follow() - request = util.TEMPLATE_TEST_CONTEXT[ + request = template.TEMPLATE_TEST_CONTEXT[ 'mediagoblin/user_pages/user.html']['request'] media = request.db.MediaEntry.find({'title': 'Balanced Goblin'})[0] @@ -202,7 +202,7 @@ class TestSubmission: response.follow() - request = util.TEMPLATE_TEST_CONTEXT[ + request = template.TEMPLATE_TEST_CONTEXT[ 'mediagoblin/user_pages/user.html']['request'] # Does media entry still exist? @@ -213,14 +213,14 @@ class TestSubmission: def test_malicious_uploads(self): # Test non-suppoerted file with non-supported extension # ----------------------------------------------------- - util.clear_test_template_context() + template.clear_test_template_context() response = self.test_app.post( '/submit/', { 'title': 'Malicious Upload 1' }, upload_files=[( 'file', EVIL_FILE)]) - context = util.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] + context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] form = context['submit_form'] assert form.file.errors == ['The file doesn\'t seem to be an image!'] @@ -230,7 +230,7 @@ class TestSubmission: # Test non-supported file with .jpg extension # ------------------------------------------- - util.clear_test_template_context() + template.clear_test_template_context() response = self.test_app.post( '/submit/', { 'title': 'Malicious Upload 2' @@ -250,7 +250,7 @@ class TestSubmission: # Test non-supported file with .png extension # ------------------------------------------- - util.clear_test_template_context() + template.clear_test_template_context() response = self.test_app.post( '/submit/', { 'title': 'Malicious Upload 3' diff --git a/mediagoblin/tests/test_util.py b/mediagoblin/tests/test_util.py index c2a3a67f..cdc62b7d 100644 --- a/mediagoblin/tests/test_util.py +++ b/mediagoblin/tests/test_util.py @@ -17,7 +17,7 @@ import email from mediagoblin import util - +from mediagoblin.tools import url, translate util._activate_testing() @@ -71,38 +71,38 @@ I hope you like unit tests JUST AS MUCH AS I DO!""" I hope you like unit tests JUST AS MUCH AS I DO!""" def test_slugify(): - assert util.slugify('a walk in the park') == 'a-walk-in-the-park' - assert util.slugify('A Walk in the Park') == 'a-walk-in-the-park' - assert util.slugify('a walk in the park') == 'a-walk-in-the-park' - assert util.slugify('a walk in-the-park') == 'a-walk-in-the-park' - assert util.slugify('a w@lk in the park?') == 'a-w-lk-in-the-park' - assert util.slugify(u'a walk in the par\u0107') == 'a-walk-in-the-parc' - assert util.slugify(u'\u00E0\u0042\u00E7\u010F\u00EB\u0066') == 'abcdef' + assert url.slugify('a walk in the park') == 'a-walk-in-the-park' + assert url.slugify('A Walk in the Park') == 'a-walk-in-the-park' + assert url.slugify('a walk in the park') == 'a-walk-in-the-park' + assert url.slugify('a walk in-the-park') == 'a-walk-in-the-park' + assert url.slugify('a w@lk in the park?') == 'a-w-lk-in-the-park' + assert url.slugify(u'a walk in the par\u0107') == 'a-walk-in-the-parc' + assert url.slugify(u'\u00E0\u0042\u00E7\u010F\u00EB\u0066') == 'abcdef' def test_locale_to_lower_upper(): """ Test cc.i18n.util.locale_to_lower_upper() """ - assert util.locale_to_lower_upper('en') == 'en' - assert util.locale_to_lower_upper('en_US') == 'en_US' - assert util.locale_to_lower_upper('en-us') == 'en_US' + assert translate.locale_to_lower_upper('en') == 'en' + assert translate.locale_to_lower_upper('en_US') == 'en_US' + assert translate.locale_to_lower_upper('en-us') == 'en_US' # crazy renditions. Useful? - assert util.locale_to_lower_upper('en-US') == 'en_US' - assert util.locale_to_lower_upper('en_us') == 'en_US' + assert translate.locale_to_lower_upper('en-US') == 'en_US' + assert translate.locale_to_lower_upper('en_us') == 'en_US' def test_locale_to_lower_lower(): """ Test cc.i18n.util.locale_to_lower_lower() """ - assert util.locale_to_lower_lower('en') == 'en' - assert util.locale_to_lower_lower('en_US') == 'en-us' - assert util.locale_to_lower_lower('en-us') == 'en-us' + assert translate.locale_to_lower_lower('en') == 'en' + assert translate.locale_to_lower_lower('en_US') == 'en-us' + assert translate.locale_to_lower_lower('en-us') == 'en-us' # crazy renditions. Useful? - assert util.locale_to_lower_lower('en-US') == 'en-us' - assert util.locale_to_lower_lower('en_us') == 'en-us' + assert translate.locale_to_lower_lower('en-US') == 'en-us' + assert translate.locale_to_lower_lower('en_us') == 'en-us' def test_html_cleaner(): diff --git a/mediagoblin/tools/__init__.py b/mediagoblin/tools/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/mediagoblin/tools/common.py b/mediagoblin/tools/common.py new file mode 100644 index 00000000..dccceccb --- /dev/null +++ b/mediagoblin/tools/common.py @@ -0,0 +1,18 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +global TESTS_ENABLED +TESTS_ENABLED = False diff --git a/mediagoblin/tools/template.py b/mediagoblin/tools/template.py new file mode 100644 index 00000000..c346c33d --- /dev/null +++ b/mediagoblin/tools/template.py @@ -0,0 +1,114 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from math import ceil +import jinja2 +from babel.localedata import exists +from babel.support import LazyProxy +from mediagoblin import mg_globals +from mediagoblin import messages +from mediagoblin.tools import common +from mediagoblin.tools.translate import setup_gettext + +SETUP_JINJA_ENVS = {} + +def get_jinja_env(template_loader, locale): + """ + Set up the Jinja environment, + + (In the future we may have another system for providing theming; + for now this is good enough.) + """ + setup_gettext(locale) + + # If we have a jinja environment set up with this locale, just + # return that one. + if SETUP_JINJA_ENVS.has_key(locale): + return SETUP_JINJA_ENVS[locale] + + template_env = jinja2.Environment( + loader=template_loader, autoescape=True, + extensions=['jinja2.ext.i18n', 'jinja2.ext.autoescape']) + + template_env.install_gettext_callables( + mg_globals.translations.ugettext, + mg_globals.translations.ungettext) + + # All templates will know how to ... + # ... fetch all waiting messages and remove them from the queue + # ... construct a grid of thumbnails or other media + template_env.globals['fetch_messages'] = messages.fetch_messages + template_env.globals['gridify_list'] = gridify_list + template_env.globals['gridify_cursor'] = gridify_cursor + + if exists(locale): + SETUP_JINJA_ENVS[locale] = template_env + + return template_env + +# We'll store context information here when doing unit tests +TEMPLATE_TEST_CONTEXT = {} + + +def render_template(request, template_path, context): + """ + Render a template with context. + + Always inserts the request into the context, so you don't have to. + Also stores the context if we're doing unit tests. Helpful! + """ + template = request.template_env.get_template( + template_path) + context['request'] = request + rendered = template.render(context) + + if common.TESTS_ENABLED: + TEMPLATE_TEST_CONTEXT[template_path] = context + + return rendered + + +def clear_test_template_context(): + global TEMPLATE_TEST_CONTEXT + TEMPLATE_TEST_CONTEXT = {} + +def gridify_list(this_list, num_cols=5): + """ + Generates a list of lists where each sub-list's length depends on + the number of columns in the list + """ + grid = [] + + # Figure out how many rows we should have + num_rows = int(ceil(float(len(this_list)) / num_cols)) + + for row_num in range(num_rows): + slice_min = row_num * num_cols + slice_max = (row_num + 1) * num_cols + + row = this_list[slice_min:slice_max] + + grid.append(row) + + return grid + + +def gridify_cursor(this_cursor, num_cols=5): + """ + Generates a list of lists where each sub-list's length depends on + the number of columns in the list + """ + return gridify_list(list(this_cursor), num_cols) diff --git a/mediagoblin/tools/translate.py b/mediagoblin/tools/translate.py new file mode 100644 index 00000000..2c2a710d --- /dev/null +++ b/mediagoblin/tools/translate.py @@ -0,0 +1,167 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import gettext +import pkg_resources +from babel.localedata import exists +from babel.support import LazyProxy + +from mediagoblin import mg_globals + +################### +# Translation tools +################### + + +TRANSLATIONS_PATH = pkg_resources.resource_filename( + 'mediagoblin', 'i18n') + + +def locale_to_lower_upper(locale): + """ + Take a locale, regardless of style, and format it like "en-us" + """ + if '-' in locale: + lang, country = locale.split('-', 1) + return '%s_%s' % (lang.lower(), country.upper()) + elif '_' in locale: + lang, country = locale.split('_', 1) + return '%s_%s' % (lang.lower(), country.upper()) + else: + return locale.lower() + + +def locale_to_lower_lower(locale): + """ + Take a locale, regardless of style, and format it like "en_US" + """ + if '_' in locale: + lang, country = locale.split('_', 1) + return '%s-%s' % (lang.lower(), country.lower()) + else: + return locale.lower() + + +def get_locale_from_request(request): + """ + Figure out what target language is most appropriate based on the + request + """ + request_form = request.GET or request.POST + + if request_form.has_key('lang'): + return locale_to_lower_upper(request_form['lang']) + + accept_lang_matches = request.accept_language.best_matches() + + # Your routing can explicitly specify a target language + matchdict = request.matchdict or {} + + if matchdict.has_key('locale'): + target_lang = matchdict['locale'] + elif request.session.has_key('target_lang'): + target_lang = request.session['target_lang'] + # Pull the first acceptable language + elif accept_lang_matches: + target_lang = accept_lang_matches[0] + # Fall back to English + else: + target_lang = 'en' + + return locale_to_lower_upper(target_lang) + +SETUP_GETTEXTS = {} + +def setup_gettext(locale): + """ + Setup the gettext instance based on this locale + """ + # Later on when we have plugins we may want to enable the + # multi-translations system they have so we can handle plugin + # translations too + + # TODO: fallback nicely on translations from pt_PT to pt if not + # available, etc. + if SETUP_GETTEXTS.has_key(locale): + this_gettext = SETUP_GETTEXTS[locale] + else: + this_gettext = gettext.translation( + 'mediagoblin', TRANSLATIONS_PATH, [locale], fallback=True) + if exists(locale): + SETUP_GETTEXTS[locale] = this_gettext + + mg_globals.setup_globals( + translations=this_gettext) + + +# Force en to be setup before anything else so that +# mg_globals.translations is never None +setup_gettext('en') + + +def pass_to_ugettext(*args, **kwargs): + """ + Pass a translation on to the appropriate ugettext method. + + The reason we can't have a global ugettext method is because + mg_globals gets swapped out by the application per-request. + """ + return mg_globals.translations.ugettext( + *args, **kwargs) + + +def lazy_pass_to_ugettext(*args, **kwargs): + """ + Lazily pass to ugettext. + + This is useful if you have to define a translation on a module + level but you need it to not translate until the time that it's + used as a string. + """ + return LazyProxy(pass_to_ugettext, *args, **kwargs) + + +def pass_to_ngettext(*args, **kwargs): + """ + Pass a translation on to the appropriate ngettext method. + + The reason we can't have a global ngettext method is because + mg_globals gets swapped out by the application per-request. + """ + return mg_globals.translations.ngettext( + *args, **kwargs) + + +def lazy_pass_to_ngettext(*args, **kwargs): + """ + Lazily pass to ngettext. + + This is useful if you have to define a translation on a module + level but you need it to not translate until the time that it's + used as a string. + """ + return LazyProxy(pass_to_ngettext, *args, **kwargs) + + +def fake_ugettext_passthrough(string): + """ + Fake a ugettext call for extraction's sake ;) + + In wtforms there's a separate way to define a method to translate + things... so we just need to mark up the text so that it can be + extracted, not so that it's actually run through gettext. + """ + return string diff --git a/mediagoblin/tools/url.py b/mediagoblin/tools/url.py new file mode 100644 index 00000000..458ef2c8 --- /dev/null +++ b/mediagoblin/tools/url.py @@ -0,0 +1,31 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import re +import translitcodec + +_punct_re = re.compile(r'[\t !"#$%&\'()*\-/<=>?@\[\\\]^_`{|},.]+') + +def slugify(text, delim=u'-'): + """ + Generates an ASCII-only slug. Taken from http://flask.pocoo.org/snippets/5/ + """ + result = [] + for word in _punct_re.split(text.lower()): + word = word.encode('translit/long') + if word: + result.append(word) + return unicode(delim.join(result)) diff --git a/mediagoblin/user_pages/forms.py b/mediagoblin/user_pages/forms.py index 57061d34..301f1f0a 100644 --- a/mediagoblin/user_pages/forms.py +++ b/mediagoblin/user_pages/forms.py @@ -16,7 +16,7 @@ import wtforms -from mediagoblin.util import fake_ugettext_passthrough as _ +from mediagoblin.tools.translate import fake_ugettext_passthrough as _ class MediaCommentForm(wtforms.Form): diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 6a82d718..40c7ffce 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -21,7 +21,7 @@ from mediagoblin.db.util import DESCENDING, ObjectId from mediagoblin.util import ( Pagination, render_to_response, redirect, cleaned_markdown_conversion, render_404, delete_media_files) -from mediagoblin.util import pass_to_ugettext as _ +from mediagoblin.tools.translate import pass_to_ugettext as _ from mediagoblin.user_pages import forms as user_forms from mediagoblin.decorators import (uses_pagination, get_user_media_entry, diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 7ff3ec7f..35755ccf 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -17,41 +17,42 @@ from __future__ import division from email.MIMEText import MIMEText -import gettext -import pkg_resources +#import gettext +#import pkg_resources import smtplib import sys -import re +#import re +#import translitcodec import urllib from math import ceil, floor import copy import wtforms -from babel.localedata import exists -from babel.support import LazyProxy -import jinja2 -import translitcodec +#from babel.localedata import exists +#from babel.support import LazyProxy +#import jinja2 from webob import Response, exc from lxml.html.clean import Cleaner import markdown from wtforms.form import Form from mediagoblin import mg_globals -from mediagoblin import messages +#from mediagoblin import messages from mediagoblin.db.util import ObjectId +from mediagoblin.tools import url +from mediagoblin.tools import common +from mediagoblin.tools.template import TEMPLATE_TEST_CONTEXT, render_template from itertools import izip, count DISPLAY_IMAGE_FETCHING_ORDER = [u'medium', u'original', u'thumb'] -TESTS_ENABLED = False def _activate_testing(): """ Call this to activate testing in util.py """ - global TESTS_ENABLED - TESTS_ENABLED = True + common.TESTS_ENABLED = True def clear_test_buckets(): """ @@ -73,64 +74,64 @@ def clear_test_buckets(): clear_test_template_context() -SETUP_JINJA_ENVS = {} +# SETUP_JINJA_ENVS = {} -def get_jinja_env(template_loader, locale): - """ - Set up the Jinja environment, +# def get_jinja_env(template_loader, locale): +# """ +# Set up the Jinja environment, - (In the future we may have another system for providing theming; - for now this is good enough.) - """ - setup_gettext(locale) +# (In the future we may have another system for providing theming; +# for now this is good enough.) +# """ +# setup_gettext(locale) - # If we have a jinja environment set up with this locale, just - # return that one. - if SETUP_JINJA_ENVS.has_key(locale): - return SETUP_JINJA_ENVS[locale] +# # If we have a jinja environment set up with this locale, just +# # return that one. +# if SETUP_JINJA_ENVS.has_key(locale): +# return SETUP_JINJA_ENVS[locale] - template_env = jinja2.Environment( - loader=template_loader, autoescape=True, - extensions=['jinja2.ext.i18n', 'jinja2.ext.autoescape']) +# template_env = jinja2.Environment( +# loader=template_loader, autoescape=True, +# extensions=['jinja2.ext.i18n', 'jinja2.ext.autoescape']) - template_env.install_gettext_callables( - mg_globals.translations.ugettext, - mg_globals.translations.ungettext) +# template_env.install_gettext_callables( +# mg_globals.translations.ugettext, +# mg_globals.translations.ungettext) - # All templates will know how to ... - # ... fetch all waiting messages and remove them from the queue - # ... construct a grid of thumbnails or other media - template_env.globals['fetch_messages'] = messages.fetch_messages - template_env.globals['gridify_list'] = gridify_list - template_env.globals['gridify_cursor'] = gridify_cursor +# # All templates will know how to ... +# # ... fetch all waiting messages and remove them from the queue +# # ... construct a grid of thumbnails or other media +# template_env.globals['fetch_messages'] = messages.fetch_messages +# template_env.globals['gridify_list'] = gridify_list +# template_env.globals['gridify_cursor'] = gridify_cursor - if exists(locale): - SETUP_JINJA_ENVS[locale] = template_env +# if exists(locale): +# SETUP_JINJA_ENVS[locale] = template_env - return template_env +# return template_env -# We'll store context information here when doing unit tests -TEMPLATE_TEST_CONTEXT = {} +# # We'll store context information here when doing unit tests +# TEMPLATE_TEST_CONTEXT = {} -def render_template(request, template_path, context): - """ - Render a template with context. +# def render_template(request, template_path, context): +# """ +# Render a template with context. - Always inserts the request into the context, so you don't have to. - Also stores the context if we're doing unit tests. Helpful! - """ - template = request.template_env.get_template( - template_path) - context['request'] = request - rendered = template.render(context) +# Always inserts the request into the context, so you don't have to. +# Also stores the context if we're doing unit tests. Helpful! +# """ +# template = request.template_env.get_template( +# template_path) +# context['request'] = request +# rendered = template.render(context) - if TESTS_ENABLED: - TEMPLATE_TEST_CONTEXT[template_path] = context +# if TESTS_ENABLED: +# TEMPLATE_TEST_CONTEXT[template_path] = context - return rendered +# return rendered def clear_test_template_context(): @@ -195,18 +196,18 @@ def import_component(import_string): func = getattr(module, func_name) return func -_punct_re = re.compile(r'[\t !"#$%&\'()*\-/<=>?@\[\\\]^_`{|},.]+') +# _punct_re = re.compile(r'[\t !"#$%&\'()*\-/<=>?@\[\\\]^_`{|},.]+') -def slugify(text, delim=u'-'): - """ - Generates an ASCII-only slug. Taken from http://flask.pocoo.org/snippets/5/ - """ - result = [] - for word in _punct_re.split(text.lower()): - word = word.encode('translit/long') - if word: - result.append(word) - return unicode(delim.join(result)) +# def slugify(text, delim=u'-'): +# """ +# Generates an ASCII-only slug. Taken from http://flask.pocoo.org/snippets/5/ +# """ +# result = [] +# for word in _punct_re.split(text.lower()): +# word = word.encode('translit/long') +# if word: +# result.append(word) +# return unicode(delim.join(result)) ### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ### Special email test stuff begins HERE @@ -274,7 +275,7 @@ def send_email(from_addr, to_addrs, subject, message_body): - subject: subject of the email - message_body: email body text """ - if TESTS_ENABLED or mg_globals.app_config['email_debug_mode']: + if common.TESTS_ENABLED or mg_globals.app_config['email_debug_mode']: mhost = FakeMhost() elif not mg_globals.app_config['email_debug_mode']: mhost = smtplib.SMTP( @@ -296,7 +297,7 @@ def send_email(from_addr, to_addrs, subject, message_body): message['From'] = from_addr message['To'] = ', '.join(to_addrs) - if TESTS_ENABLED: + if common.TESTS_ENABLED: EMAIL_TEST_INBOX.append(message) if mg_globals.app_config['email_debug_mode']: @@ -310,67 +311,67 @@ def send_email(from_addr, to_addrs, subject, message_body): return mhost.sendmail(from_addr, to_addrs, message.as_string()) -################### -# Translation tools -################### +# ################### +# # Translation tools +# ################### -TRANSLATIONS_PATH = pkg_resources.resource_filename( - 'mediagoblin', 'i18n') +# TRANSLATIONS_PATH = pkg_resources.resource_filename( +# 'mediagoblin', 'i18n') -def locale_to_lower_upper(locale): - """ - Take a locale, regardless of style, and format it like "en-us" - """ - if '-' in locale: - lang, country = locale.split('-', 1) - return '%s_%s' % (lang.lower(), country.upper()) - elif '_' in locale: - lang, country = locale.split('_', 1) - return '%s_%s' % (lang.lower(), country.upper()) - else: - return locale.lower() +# def locale_to_lower_upper(locale): +# """ +# Take a locale, regardless of style, and format it like "en-us" +# """ +# if '-' in locale: +# lang, country = locale.split('-', 1) +# return '%s_%s' % (lang.lower(), country.upper()) +# elif '_' in locale: +# lang, country = locale.split('_', 1) +# return '%s_%s' % (lang.lower(), country.upper()) +# else: +# return locale.lower() -def locale_to_lower_lower(locale): - """ - Take a locale, regardless of style, and format it like "en_US" - """ - if '_' in locale: - lang, country = locale.split('_', 1) - return '%s-%s' % (lang.lower(), country.lower()) - else: - return locale.lower() +# def locale_to_lower_lower(locale): +# """ +# Take a locale, regardless of style, and format it like "en_US" +# """ +# if '_' in locale: +# lang, country = locale.split('_', 1) +# return '%s-%s' % (lang.lower(), country.lower()) +# else: +# return locale.lower() -def get_locale_from_request(request): - """ - Figure out what target language is most appropriate based on the - request - """ - request_form = request.GET or request.POST +# def get_locale_from_request(request): +# """ +# Figure out what target language is most appropriate based on the +# request +# """ +# request_form = request.GET or request.POST - if request_form.has_key('lang'): - return locale_to_lower_upper(request_form['lang']) +# if request_form.has_key('lang'): +# return locale_to_lower_upper(request_form['lang']) - accept_lang_matches = request.accept_language.best_matches() +# accept_lang_matches = request.accept_language.best_matches() - # Your routing can explicitly specify a target language - matchdict = request.matchdict or {} +# # Your routing can explicitly specify a target language +# matchdict = request.matchdict or {} - if matchdict.has_key('locale'): - target_lang = matchdict['locale'] - elif request.session.has_key('target_lang'): - target_lang = request.session['target_lang'] - # Pull the first acceptable language - elif accept_lang_matches: - target_lang = accept_lang_matches[0] - # Fall back to English - else: - target_lang = 'en' +# if matchdict.has_key('locale'): +# target_lang = matchdict['locale'] +# elif request.session.has_key('target_lang'): +# target_lang = request.session['target_lang'] +# # Pull the first acceptable language +# elif accept_lang_matches: +# target_lang = accept_lang_matches[0] +# # Fall back to English +# else: +# target_lang = 'en' - return locale_to_lower_upper(target_lang) +# return locale_to_lower_upper(target_lang) # A super strict version of the lxml.html cleaner class @@ -424,7 +425,7 @@ def convert_to_tag_list_of_dicts(tag_string): if tag.strip() and tag.strip() not in [t['name'] for t in taglist]: taglist.append({'name': tag.strip(), - 'slug': slugify(tag.strip())}) + 'slug': url.slugify(tag.strip())}) return taglist @@ -472,88 +473,88 @@ def cleaned_markdown_conversion(text): return clean_html(MARKDOWN_INSTANCE.convert(text)) -SETUP_GETTEXTS = {} +# SETUP_GETTEXTS = {} -def setup_gettext(locale): - """ - Setup the gettext instance based on this locale - """ - # Later on when we have plugins we may want to enable the - # multi-translations system they have so we can handle plugin - # translations too +# def setup_gettext(locale): +# """ +# Setup the gettext instance based on this locale +# """ +# # Later on when we have plugins we may want to enable the +# # multi-translations system they have so we can handle plugin +# # translations too - # TODO: fallback nicely on translations from pt_PT to pt if not - # available, etc. - if SETUP_GETTEXTS.has_key(locale): - this_gettext = SETUP_GETTEXTS[locale] - else: - this_gettext = gettext.translation( - 'mediagoblin', TRANSLATIONS_PATH, [locale], fallback=True) - if exists(locale): - SETUP_GETTEXTS[locale] = this_gettext +# # TODO: fallback nicely on translations from pt_PT to pt if not +# # available, etc. +# if SETUP_GETTEXTS.has_key(locale): +# this_gettext = SETUP_GETTEXTS[locale] +# else: +# this_gettext = gettext.translation( +# 'mediagoblin', TRANSLATIONS_PATH, [locale], fallback=True) +# if exists(locale): +# SETUP_GETTEXTS[locale] = this_gettext - mg_globals.setup_globals( - translations=this_gettext) +# mg_globals.setup_globals( +# translations=this_gettext) -# Force en to be setup before anything else so that -# mg_globals.translations is never None -setup_gettext('en') +# # Force en to be setup before anything else so that +# # mg_globals.translations is never None +# setup_gettext('en') -def pass_to_ugettext(*args, **kwargs): - """ - Pass a translation on to the appropriate ugettext method. +# def pass_to_ugettext(*args, **kwargs): +# """ +# Pass a translation on to the appropriate ugettext method. - The reason we can't have a global ugettext method is because - mg_globals gets swapped out by the application per-request. - """ - return mg_globals.translations.ugettext( - *args, **kwargs) +# The reason we can't have a global ugettext method is because +# mg_globals gets swapped out by the application per-request. +# """ +# return mg_globals.translations.ugettext( +# *args, **kwargs) -def lazy_pass_to_ugettext(*args, **kwargs): - """ - Lazily pass to ugettext. +# def lazy_pass_to_ugettext(*args, **kwargs): +# """ +# Lazily pass to ugettext. - This is useful if you have to define a translation on a module - level but you need it to not translate until the time that it's - used as a string. - """ - return LazyProxy(pass_to_ugettext, *args, **kwargs) +# This is useful if you have to define a translation on a module +# level but you need it to not translate until the time that it's +# used as a string. +# """ +# return LazyProxy(pass_to_ugettext, *args, **kwargs) -def pass_to_ngettext(*args, **kwargs): - """ - Pass a translation on to the appropriate ngettext method. +# def pass_to_ngettext(*args, **kwargs): +# """ +# Pass a translation on to the appropriate ngettext method. - The reason we can't have a global ngettext method is because - mg_globals gets swapped out by the application per-request. - """ - return mg_globals.translations.ngettext( - *args, **kwargs) +# The reason we can't have a global ngettext method is because +# mg_globals gets swapped out by the application per-request. +# """ +# return mg_globals.translations.ngettext( +# *args, **kwargs) -def lazy_pass_to_ngettext(*args, **kwargs): - """ - Lazily pass to ngettext. +# def lazy_pass_to_ngettext(*args, **kwargs): +# """ +# Lazily pass to ngettext. - This is useful if you have to define a translation on a module - level but you need it to not translate until the time that it's - used as a string. - """ - return LazyProxy(pass_to_ngettext, *args, **kwargs) +# This is useful if you have to define a translation on a module +# level but you need it to not translate until the time that it's +# used as a string. +# """ +# return LazyProxy(pass_to_ngettext, *args, **kwargs) -def fake_ugettext_passthrough(string): - """ - Fake a ugettext call for extraction's sake ;) +# def fake_ugettext_passthrough(string): +# """ +# Fake a ugettext call for extraction's sake ;) - In wtforms there's a separate way to define a method to translate - things... so we just need to mark up the text so that it can be - extracted, not so that it's actually run through gettext. - """ - return string +# In wtforms there's a separate way to define a method to translate +# things... so we just need to mark up the text so that it can be +# extracted, not so that it's actually run through gettext. +# """ +# return string PAGINATION_DEFAULT_PER_PAGE = 30 @@ -646,33 +647,33 @@ class Pagination(object): request.path_info, request.GET, page_no) -def gridify_list(this_list, num_cols=5): - """ - Generates a list of lists where each sub-list's length depends on - the number of columns in the list - """ - grid = [] +# def gridify_list(this_list, num_cols=5): +# """ +# Generates a list of lists where each sub-list's length depends on +# the number of columns in the list +# """ +# grid = [] - # Figure out how many rows we should have - num_rows = int(ceil(float(len(this_list)) / num_cols)) +# # Figure out how many rows we should have +# num_rows = int(ceil(float(len(this_list)) / num_cols)) - for row_num in range(num_rows): - slice_min = row_num * num_cols - slice_max = (row_num + 1) * num_cols +# for row_num in range(num_rows): +# slice_min = row_num * num_cols +# slice_max = (row_num + 1) * num_cols - row = this_list[slice_min:slice_max] +# row = this_list[slice_min:slice_max] - grid.append(row) +# grid.append(row) - return grid +# return grid -def gridify_cursor(this_cursor, num_cols=5): - """ - Generates a list of lists where each sub-list's length depends on - the number of columns in the list - """ - return gridify_list(list(this_cursor), num_cols) +# def gridify_cursor(this_cursor, num_cols=5): +# """ +# Generates a list of lists where each sub-list's length depends on +# the number of columns in the list +# """ +# return gridify_list(list(this_cursor), num_cols) def render_404(request): From 5d2abe45b2bae9111d4f1bda645b53414d2b240d Mon Sep 17 00:00:00 2001 From: Nathan Yergler Date: Sat, 1 Oct 2011 12:48:43 -0700 Subject: [PATCH 1034/2731] PEP8-ification. --- mediagoblin/middleware/csrf.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/mediagoblin/middleware/csrf.py b/mediagoblin/middleware/csrf.py index a372d0b5..68ece6d3 100644 --- a/mediagoblin/middleware/csrf.py +++ b/mediagoblin/middleware/csrf.py @@ -34,17 +34,19 @@ class CsrfForm(Form): """Simple form to handle rendering a CSRF token and confirming it is included in the POST.""" - csrf_token = HiddenField("", + csrf_token = HiddenField("", [validators.Required()]) + def render_csrf_form_token(request): """Render the CSRF token in a format suitable for inclusion in a form.""" - form = CsrfForm(csrf_token = request.environ['CSRF_TOKEN']) + form = CsrfForm(csrf_token=request.environ['CSRF_TOKEN']) return form.csrf_token + class CsrfMiddleware(object): """CSRF Protection Middleware @@ -87,7 +89,8 @@ class CsrfMiddleware(object): response.set_cookie( mg_globals.app_config['csrf_cookie_name'], request.environ['CSRF_TOKEN'], - max_age=60*60*24*7*52, path='/', + max_age=60 * 60 * 24 * 7 * 52, + path='/', domain=mg_globals.app_config.get('csrf_cookie_domain', None), secure=(request.scheme.lower() == 'https'), httponly=True) @@ -98,10 +101,9 @@ class CsrfMiddleware(object): def _make_token(self, request): """Generate a new token to use for CSRF protection.""" - return hashlib.md5("%s%s" % - (randrange(0, self.MAX_CSRF_KEY), - mg_globals.app_config['secret_key']) - ).hexdigest() + return hashlib.md5("%s%s" % + (randrange(0, self.MAX_CSRF_KEY), + mg_globals.app_config['secret_key'])).hexdigest() def verify_tokens(self, request): """Verify that the CSRF Cookie exists and that it matches the @@ -109,7 +111,7 @@ class CsrfMiddleware(object): # confirm the cookie token was presented cookie_token = request.cookies.get( - mg_globals.app_config['csrf_cookie_name'], + mg_globals.app_config['csrf_cookie_name'], None) if cookie_token is None: @@ -128,4 +130,3 @@ class CsrfMiddleware(object): # either the tokens didn't match or the form token wasn't # present; either way, the request is denied return HTTPForbidden() - From 7e694e5fd858aeaea7eb7e9a9062b36d17a3b7f7 Mon Sep 17 00:00:00 2001 From: Nathan Yergler Date: Sat, 1 Oct 2011 13:13:14 -0700 Subject: [PATCH 1035/2731] #361: Don't test for CSRF token if we're running unit tests. --- mediagoblin/middleware/csrf.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mediagoblin/middleware/csrf.py b/mediagoblin/middleware/csrf.py index 68ece6d3..d41bcd87 100644 --- a/mediagoblin/middleware/csrf.py +++ b/mediagoblin/middleware/csrf.py @@ -77,7 +77,10 @@ class CsrfMiddleware(object): # if this is a non-"safe" request (ie, one that could have # side effects), confirm that the CSRF tokens are present and # valid - if request.method not in self.SAFE_HTTP_METHODS: + if request.method not in self.SAFE_HTTP_METHODS \ + and ('gmg.verify_csrf' in request.environ or + 'paste.testing' not in request.environ): + return self.verify_tokens(request) def process_response(self, request, response): From 4f475d3024f689c1c461dc26bd679dfb514a46ef Mon Sep 17 00:00:00 2001 From: Nathan Yergler Date: Sat, 1 Oct 2011 14:21:02 -0700 Subject: [PATCH 1036/2731] #361 Unit tests for CSRF Middleware --- mediagoblin/tests/test_csrf_middleware.py | 69 +++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 mediagoblin/tests/test_csrf_middleware.py diff --git a/mediagoblin/tests/test_csrf_middleware.py b/mediagoblin/tests/test_csrf_middleware.py new file mode 100644 index 00000000..cf03fe58 --- /dev/null +++ b/mediagoblin/tests/test_csrf_middleware.py @@ -0,0 +1,69 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import urlparse +import datetime + +from nose.tools import assert_equal + +from mediagoblin.tests.tools import setup_fresh_app +from mediagoblin import mg_globals + + +@setup_fresh_app +def test_csrf_cookie_set(test_app): + + # get login page + response = test_app.get('/auth/login/') + + # assert that the mediagoblin nonce cookie has been set + assert 'Set-Cookie' in response.headers + assert 'mediagoblin_nonce' in response.cookies_set + + # assert that we're also sending a vary header + assert response.headers.get('Vary', False) == 'Cookie' + + +@setup_fresh_app +def test_csrf_token_must_match(test_app): + + # construct a request with no cookie or form token + assert test_app.post('/auth/login/', + extra_environ={'gmg.verify_csrf': True}, + expect_errors=True).status_int == 403 + + # construct a request with a cookie, but no form token + assert test_app.post('/auth/login/', + headers={'Cookie': str('%s=foo; ' % + mg_globals.app_config['csrf_cookie_name'])}, + extra_environ={'gmg.verify_csrf': True}, + expect_errors=True).status_int == 403 + + # if both the cookie and form token are provided, they must match + assert test_app.post('/auth/login/', + {'csrf_token': 'blarf'}, + headers={'Cookie': str('%s=foo; ' % + mg_globals.app_config['csrf_cookie_name'])}, + extra_environ={'gmg.verify_csrf': True}, + expect_errors=True).\ + status_int == 403 + + assert test_app.post('/auth/login/', + {'csrf_token': 'foo'}, + headers={'Cookie': str('%s=foo; ' % + mg_globals.app_config['csrf_cookie_name'])}, + extra_environ={'gmg.verify_csrf': True}).\ + status_int == 200 From 9202e5a1e15183b134fa15c4e1290dea8ed2acbe Mon Sep 17 00:00:00 2001 From: Nathan Yergler Date: Sat, 1 Oct 2011 14:24:49 -0700 Subject: [PATCH 1037/2731] #361: Removing additional secret key, per CW's request. --- mediagoblin/config_spec.ini | 1 - mediagoblin/middleware/csrf.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini index 37fe7130..298a6951 100644 --- a/mediagoblin/config_spec.ini +++ b/mediagoblin/config_spec.ini @@ -42,7 +42,6 @@ celery_setup_elsewhere = boolean(default=False) allow_attachments = boolean(default=False) # Cookie stuff -secret_key = string(default="Something Super Duper Secrit!") csrf_cookie_name = string(default='mediagoblin_nonce') [storage:publicstore] diff --git a/mediagoblin/middleware/csrf.py b/mediagoblin/middleware/csrf.py index d41bcd87..44b799d5 100644 --- a/mediagoblin/middleware/csrf.py +++ b/mediagoblin/middleware/csrf.py @@ -106,7 +106,7 @@ class CsrfMiddleware(object): return hashlib.md5("%s%s" % (randrange(0, self.MAX_CSRF_KEY), - mg_globals.app_config['secret_key'])).hexdigest() + randrange(0, self.MAX_CSRF_KEY))).hexdigest() def verify_tokens(self, request): """Verify that the CSRF Cookie exists and that it matches the From 03ae172a60a87625e5281eb9766aa5bf3e37d0f4 Mon Sep 17 00:00:00 2001 From: Aaron Williamson Date: Sat, 1 Oct 2011 18:05:17 -0400 Subject: [PATCH 1038/2731] Finished splitting util.py into separate files. --- mediagoblin/tools/common.py | 19 +++++ mediagoblin/tools/files.py | 32 +++++++++ mediagoblin/tools/mail.py | 120 ++++++++++++++++++++++++++++++++ mediagoblin/tools/pagination.py | 109 +++++++++++++++++++++++++++++ mediagoblin/tools/request.py | 37 ++++++++++ mediagoblin/tools/response.py | 44 ++++++++++++ mediagoblin/tools/testing.py | 45 ++++++++++++ mediagoblin/tools/text.py | 117 +++++++++++++++++++++++++++++++ 8 files changed, 523 insertions(+) create mode 100644 mediagoblin/tools/files.py create mode 100644 mediagoblin/tools/mail.py create mode 100644 mediagoblin/tools/pagination.py create mode 100644 mediagoblin/tools/request.py create mode 100644 mediagoblin/tools/response.py create mode 100644 mediagoblin/tools/testing.py create mode 100644 mediagoblin/tools/text.py diff --git a/mediagoblin/tools/common.py b/mediagoblin/tools/common.py index dccceccb..ea4541a8 100644 --- a/mediagoblin/tools/common.py +++ b/mediagoblin/tools/common.py @@ -14,5 +14,24 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +import sys + +DISPLAY_IMAGE_FETCHING_ORDER = [u'medium', u'original', u'thumb'] + global TESTS_ENABLED TESTS_ENABLED = False + +def import_component(import_string): + """ + Import a module component defined by STRING. Probably a method, + class, or global variable. + + Args: + - import_string: a string that defines what to import. Written + in the format of "module1.module2:component" + """ + module_name, func_name = import_string.split(':', 1) + __import__(module_name) + module = sys.modules[module_name] + func = getattr(module, func_name) + return func diff --git a/mediagoblin/tools/files.py b/mediagoblin/tools/files.py new file mode 100644 index 00000000..e0bf0569 --- /dev/null +++ b/mediagoblin/tools/files.py @@ -0,0 +1,32 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from mediagoblin import mg_globals + +def delete_media_files(media): + """ + Delete all files associated with a MediaEntry + + Arguments: + - media: A MediaEntry document + """ + for listpath in media['media_files'].itervalues(): + mg_globals.public_store.delete_file( + listpath) + + for attachment in media['attachment_files']: + mg_globals.public_store.delete_file( + attachment['filepath']) diff --git a/mediagoblin/tools/mail.py b/mediagoblin/tools/mail.py new file mode 100644 index 00000000..826acdbf --- /dev/null +++ b/mediagoblin/tools/mail.py @@ -0,0 +1,120 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import smtplib +from email.MIMEText import MIMEText +from mediagoblin import mg_globals +from mediagoblin.tools import common + +### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +### Special email test stuff begins HERE +### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# We have two "test inboxes" here: +# +# EMAIL_TEST_INBOX: +# ---------------- +# If you're writing test views, you'll probably want to check this. +# It contains a list of MIMEText messages. +# +# EMAIL_TEST_MBOX_INBOX: +# ---------------------- +# This collects the messages from the FakeMhost inbox. It's reslly +# just here for testing the send_email method itself. +# +# Anyway this contains: +# - from +# - to: a list of email recipient addresses +# - message: not just the body, but the whole message, including +# headers, etc. +# +# ***IMPORTANT!*** +# ---------------- +# Before running tests that call functions which send email, you should +# always call _clear_test_inboxes() to "wipe" the inboxes clean. + +EMAIL_TEST_INBOX = [] +EMAIL_TEST_MBOX_INBOX = [] + +class FakeMhost(object): + """ + Just a fake mail host so we can capture and test messages + from send_email + """ + def login(self, *args, **kwargs): + pass + + def sendmail(self, from_addr, to_addrs, message): + EMAIL_TEST_MBOX_INBOX.append( + {'from': from_addr, + 'to': to_addrs, + 'message': message}) + +def _clear_test_inboxes(): + global EMAIL_TEST_INBOX + global EMAIL_TEST_MBOX_INBOX + EMAIL_TEST_INBOX = [] + EMAIL_TEST_MBOX_INBOX = [] + +### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +### +### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +def send_email(from_addr, to_addrs, subject, message_body): + """ + Simple email sending wrapper, use this so we can capture messages + for unit testing purposes. + + Args: + - from_addr: address you're sending the email from + - to_addrs: list of recipient email addresses + - subject: subject of the email + - message_body: email body text + """ + if common.TESTS_ENABLED or mg_globals.app_config['email_debug_mode']: + mhost = FakeMhost() + elif not mg_globals.app_config['email_debug_mode']: + mhost = smtplib.SMTP( + mg_globals.app_config['email_smtp_host'], + mg_globals.app_config['email_smtp_port']) + + # SMTP.__init__ Issues SMTP.connect implicitly if host + if not mg_globals.app_config['email_smtp_host']: # e.g. host = '' + mhost.connect() # We SMTP.connect explicitly + + if mg_globals.app_config['email_smtp_user'] \ + or mg_globals.app_config['email_smtp_pass']: + mhost.login( + mg_globals.app_config['email_smtp_user'], + mg_globals.app_config['email_smtp_pass']) + + message = MIMEText(message_body.encode('utf-8'), 'plain', 'utf-8') + message['Subject'] = subject + message['From'] = from_addr + message['To'] = ', '.join(to_addrs) + + if common.TESTS_ENABLED: + EMAIL_TEST_INBOX.append(message) + + if mg_globals.app_config['email_debug_mode']: + print u"===== Email =====" + print u"From address: %s" % message['From'] + print u"To addresses: %s" % message['To'] + print u"Subject: %s" % message['Subject'] + print u"-- Body: --" + print message.get_payload(decode=True) + + return mhost.sendmail(from_addr, to_addrs, message.as_string()) diff --git a/mediagoblin/tools/pagination.py b/mediagoblin/tools/pagination.py new file mode 100644 index 00000000..859b60fb --- /dev/null +++ b/mediagoblin/tools/pagination.py @@ -0,0 +1,109 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import urllib +import copy +from math import ceil, floor +from itertools import izip, count + +PAGINATION_DEFAULT_PER_PAGE = 30 + +class Pagination(object): + """ + Pagination class for mongodb queries. + + Initialization through __init__(self, cursor, page=1, per_page=2), + get actual data slice through __call__(). + """ + + def __init__(self, page, cursor, per_page=PAGINATION_DEFAULT_PER_PAGE, + jump_to_id=False): + """ + Initializes Pagination + + Args: + - page: requested page + - per_page: number of objects per page + - cursor: db cursor + - jump_to_id: ObjectId, sets the page to the page containing the object + with _id == jump_to_id. + """ + self.page = page + self.per_page = per_page + self.cursor = cursor + self.total_count = self.cursor.count() + self.active_id = None + + if jump_to_id: + cursor = copy.copy(self.cursor) + + for (doc, increment) in izip(cursor, count(0)): + if doc['_id'] == jump_to_id: + self.page = 1 + int(floor(increment / self.per_page)) + + self.active_id = jump_to_id + break + + + def __call__(self): + """ + Returns slice of objects for the requested page + """ + return self.cursor.skip( + (self.page - 1) * self.per_page).limit(self.per_page) + + @property + def pages(self): + return int(ceil(self.total_count / float(self.per_page))) + + @property + def has_prev(self): + return self.page > 1 + + @property + def has_next(self): + return self.page < self.pages + + def iter_pages(self, left_edge=2, left_current=2, + right_current=5, right_edge=2): + last = 0 + for num in xrange(1, self.pages + 1): + if num <= left_edge or \ + (num > self.page - left_current - 1 and \ + num < self.page + right_current) or \ + num > self.pages - right_edge: + if last + 1 != num: + yield None + yield num + last = num + + def get_page_url_explicit(self, base_url, get_params, page_no): + """ + Get a page url by adding a page= parameter to the base url + """ + new_get_params = copy.copy(get_params or {}) + new_get_params['page'] = page_no + return "%s?%s" % ( + base_url, urllib.urlencode(new_get_params)) + + def get_page_url(self, request, page_no): + """ + Get a new page url based of the request, and the new page number. + + This is a nice wrapper around get_page_url_explicit() + """ + return self.get_page_url_explicit( + request.path_info, request.GET, page_no) diff --git a/mediagoblin/tools/request.py b/mediagoblin/tools/request.py new file mode 100644 index 00000000..b1cbe119 --- /dev/null +++ b/mediagoblin/tools/request.py @@ -0,0 +1,37 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from mediagoblin.db.util import ObjectId + +def setup_user_in_request(request): + """ + Examine a request and tack on a request.user parameter if that's + appropriate. + """ + if not request.session.has_key('user_id'): + request.user = None + return + + user = None + user = request.app.db.User.one( + {'_id': ObjectId(request.session['user_id'])}) + + if not user: + # Something's wrong... this user doesn't exist? Invalidate + # this session. + request.session.invalidate() + + request.user = user diff --git a/mediagoblin/tools/response.py b/mediagoblin/tools/response.py new file mode 100644 index 00000000..1477b9bc --- /dev/null +++ b/mediagoblin/tools/response.py @@ -0,0 +1,44 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from webob import Response, exc +from mediagoblin.tools.template import render_template + +def render_to_response(request, template, context, status=200): + """Much like Django's shortcut.render()""" + return Response( + render_template(request, template, context), + status=status) + +def render_404(request): + """ + Render a 404. + """ + return render_to_response( + request, 'mediagoblin/404.html', {}, status=400) + +def redirect(request, *args, **kwargs): + """Returns a HTTPFound(), takes a request and then urlgen params""" + + querystring = None + if kwargs.get('querystring'): + querystring = kwargs.get('querystring') + del kwargs['querystring'] + + return exc.HTTPFound( + location=''.join([ + request.urlgen(*args, **kwargs), + querystring if querystring else ''])) diff --git a/mediagoblin/tools/testing.py b/mediagoblin/tools/testing.py new file mode 100644 index 00000000..39435ca5 --- /dev/null +++ b/mediagoblin/tools/testing.py @@ -0,0 +1,45 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from mediagoblin.tools import common +from mediagoblin.tools.template import clear_test_template_context +from mediagoblin.tools.mail import EMAIL_TEST_INBOX, EMAIL_TEST_MBOX_INBOX + +def _activate_testing(): + """ + Call this to activate testing in util.py + """ + + common.TESTS_ENABLED = True + +def clear_test_buckets(): + """ + We store some things for testing purposes that should be cleared + when we want a "clean slate" of information for our next round of + tests. Call this function to wipe all that stuff clean. + + Also wipes out some other things we might redefine during testing, + like the jinja envs. + """ + global SETUP_JINJA_ENVS + SETUP_JINJA_ENVS = {} + + global EMAIL_TEST_INBOX + global EMAIL_TEST_MBOX_INBOX + EMAIL_TEST_INBOX = [] + EMAIL_TEST_MBOX_INBOX = [] + + clear_test_template_context() diff --git a/mediagoblin/tools/text.py b/mediagoblin/tools/text.py new file mode 100644 index 00000000..de4bb281 --- /dev/null +++ b/mediagoblin/tools/text.py @@ -0,0 +1,117 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import wtforms +import markdown +from lxml.html.clean import Cleaner + +from mediagoblin import mg_globals +from mediagoblin.tools import url + +# A super strict version of the lxml.html cleaner class +HTML_CLEANER = Cleaner( + scripts=True, + javascript=True, + comments=True, + style=True, + links=True, + page_structure=True, + processing_instructions=True, + embedded=True, + frames=True, + forms=True, + annoying_tags=True, + allow_tags=[ + 'div', 'b', 'i', 'em', 'strong', 'p', 'ul', 'ol', 'li', 'a', 'br'], + remove_unknown_tags=False, # can't be used with allow_tags + safe_attrs_only=True, + add_nofollow=True, # for now + host_whitelist=(), + whitelist_tags=set([])) + +def clean_html(html): + # clean_html barfs on an empty string + if not html: + return u'' + + return HTML_CLEANER.clean_html(html) + +def convert_to_tag_list_of_dicts(tag_string): + """ + Filter input from incoming string containing user tags, + + Strips trailing, leading, and internal whitespace, and also converts + the "tags" text into an array of tags + """ + taglist = [] + if tag_string: + + # Strip out internal, trailing, and leading whitespace + stripped_tag_string = u' '.join(tag_string.strip().split()) + + # Split the tag string into a list of tags + for tag in stripped_tag_string.split( + mg_globals.app_config['tags_delimiter']): + + # Ignore empty or duplicate tags + if tag.strip() and tag.strip() not in [t['name'] for t in taglist]: + + taglist.append({'name': tag.strip(), + 'slug': url.slugify(tag.strip())}) + return taglist + +def media_tags_as_string(media_entry_tags): + """ + Generate a string from a media item's tags, stored as a list of dicts + + This is the opposite of convert_to_tag_list_of_dicts + """ + media_tag_string = '' + if media_entry_tags: + media_tag_string = mg_globals.app_config['tags_delimiter'].join( + [tag['name'] for tag in media_entry_tags]) + return media_tag_string + +TOO_LONG_TAG_WARNING = \ + u'Tags must be shorter than %s characters. Tags that are too long: %s' + +def tag_length_validator(form, field): + """ + Make sure tags do not exceed the maximum tag length. + """ + tags = convert_to_tag_list_of_dicts(field.data) + too_long_tags = [ + tag['name'] for tag in tags + if len(tag['name']) > mg_globals.app_config['tags_max_length']] + + if too_long_tags: + raise wtforms.ValidationError( + TOO_LONG_TAG_WARNING % (mg_globals.app_config['tags_max_length'], \ + ', '.join(too_long_tags))) + + +MARKDOWN_INSTANCE = markdown.Markdown(safe_mode='escape') + +def cleaned_markdown_conversion(text): + """ + Take a block of text, run it through MarkDown, and clean its HTML. + """ + # Markdown will do nothing with and clean_html can do nothing with + # an empty string :) + if not text: + return u'' + + return clean_html(MARKDOWN_INSTANCE.convert(text)) From 152a3bfaa36d58e44979f217c5799531f780250f Mon Sep 17 00:00:00 2001 From: Aaron Williamson Date: Sat, 1 Oct 2011 18:05:44 -0400 Subject: [PATCH 1039/2731] Finished splitting util.py into separate files. --- mediagoblin/app.py | 13 +- mediagoblin/auth/lib.py | 2 +- mediagoblin/auth/views.py | 2 +- mediagoblin/db/migrations.py | 2 +- mediagoblin/db/models.py | 12 +- mediagoblin/decorators.py | 2 +- mediagoblin/edit/forms.py | 6 +- mediagoblin/edit/views.py | 11 +- mediagoblin/listings/views.py | 3 +- mediagoblin/storage/__init__.py | 4 +- mediagoblin/submit/forms.py | 2 +- mediagoblin/submit/views.py | 5 +- mediagoblin/tests/test_auth.py | 10 +- mediagoblin/tests/test_tags.py | 11 +- mediagoblin/tests/test_util.py | 23 +- mediagoblin/tests/tools.py | 6 +- mediagoblin/user_pages/views.py | 7 +- mediagoblin/util.py | 699 -------------------------------- mediagoblin/views.py | 3 +- 19 files changed, 61 insertions(+), 762 deletions(-) delete mode 100644 mediagoblin/util.py diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 5ee3b973..0f25a4e5 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -20,8 +20,9 @@ import urllib import routes from webob import Request, exc -from mediagoblin import routing, util, middleware -from mediagoblin.tools import translate, template +from mediagoblin import routing, middleware +from mediagoblin.tools import common, translate, template, response +from mediagoblin.tools import request as mg_request from mediagoblin.mg_globals import setup_globals from mediagoblin.init.celery import setup_celery_from_config from mediagoblin.init import (get_jinja_loader, get_staticdirector, @@ -99,7 +100,7 @@ class MediaGoblinApp(object): setup_workbench() # instantiate application middleware - self.middleware = [util.import_component(m)(self) + self.middleware = [common.import_component(m)(self) for m in middleware.ENABLED_MIDDLEWARE] @@ -131,7 +132,7 @@ class MediaGoblinApp(object): request.db = self.db request.staticdirect = self.staticdirector - util.setup_user_in_request(request) + mg_request.setup_user_in_request(request) # No matching page? if route_match is None: @@ -149,9 +150,9 @@ class MediaGoblinApp(object): # Okay, no matches. 404 time! request.matchdict = {} # in case our template expects it - return util.render_404(request)(environ, start_response) + return response.render_404(request)(environ, start_response) - controller = util.import_component(route_match['controller']) + controller = common.import_component(route_match['controller']) request.start_response = start_response # get the response from the controller diff --git a/mediagoblin/auth/lib.py b/mediagoblin/auth/lib.py index bf5a2399..4c57ef88 100644 --- a/mediagoblin/auth/lib.py +++ b/mediagoblin/auth/lib.py @@ -19,7 +19,7 @@ import random import bcrypt -from mediagoblin.util import send_email +from mediagoblin.tools.mail import send_email from mediagoblin.tools.template import render_template from mediagoblin import mg_globals diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 9bfa93cf..88c91565 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -21,7 +21,7 @@ from webob import exc from mediagoblin import messages from mediagoblin import mg_globals -from mediagoblin.util import render_to_response, redirect, render_404 +from mediagoblin.tools.response import render_to_response, redirect, render_404 from mediagoblin.tools.translate import pass_to_ugettext as _ from mediagoblin.db.util import ObjectId, InvalidId from mediagoblin.auth import lib as auth_lib diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py index 755f49c5..3cafe4f8 100644 --- a/mediagoblin/db/migrations.py +++ b/mediagoblin/db/migrations.py @@ -15,7 +15,7 @@ # along with this program. If not, see . from mediagoblin.db.util import RegisterMigration -from mediagoblin.util import cleaned_markdown_conversion +from mediagoblin.tools.text import cleaned_markdown_conversion # Please see mediagoblin/tests/test_migrations.py for some examples of diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index eacc801c..0f5174cc 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -18,14 +18,12 @@ import datetime, uuid from mongokit import Document -from mediagoblin import util from mediagoblin.auth import lib as auth_lib from mediagoblin import mg_globals from mediagoblin.db import migrations from mediagoblin.db.util import ASCENDING, DESCENDING, ObjectId -from mediagoblin.util import Pagination -from mediagoblin.util import DISPLAY_IMAGE_FETCHING_ORDER -from mediagoblin.tools import url +from mediagoblin.tools.pagination import Pagination +from mediagoblin.tools import url, common ################### # Custom validators @@ -220,7 +218,7 @@ class MediaEntry(Document): return self.db.MediaComment.find({ 'media_entry': self['_id']}).sort('created', DESCENDING) - def get_display_media(self, media_map, fetch_order=DISPLAY_IMAGE_FETCHING_ORDER): + def get_display_media(self, media_map, fetch_order=common.DISPLAY_IMAGE_FETCHING_ORDER): """ Find the best media for display. @@ -234,7 +232,7 @@ class MediaEntry(Document): """ media_sizes = media_map.keys() - for media_size in DISPLAY_IMAGE_FETCHING_ORDER: + for media_size in common.DISPLAY_IMAGE_FETCHING_ORDER: if media_size in media_sizes: return media_map[media_size] @@ -304,7 +302,7 @@ class MediaEntry(Document): Get the exception that's appropriate for this error """ if self['fail_error']: - return util.import_component(self['fail_error']) + return common.import_component(self['fail_error']) class MediaComment(Document): diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index 7d5978fc..19e22bca 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -17,7 +17,7 @@ from webob import exc -from mediagoblin.util import redirect, render_404 +from mediagoblin.tools.response import redirect, render_404 from mediagoblin.db.util import ObjectId, InvalidId diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index f81d58b2..7e71722c 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -14,12 +14,10 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . - import wtforms -from mediagoblin.util import tag_length_validator, TOO_LONG_TAG_WARNING -from mediagoblin.util import fake_ugettext_passthrough as _ - +from mediagoblin.tools.text import tag_length_validator, TOO_LONG_TAG_WARNING +from mediagoblin.tools.translate import fake_ugettext_passthrough as _ class EditForm(wtforms.Form): title = wtforms.TextField( diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 15edfdd6..a6ddb553 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -25,14 +25,15 @@ from werkzeug.utils import secure_filename from mediagoblin import messages from mediagoblin import mg_globals -from mediagoblin.util import ( - render_to_response, redirect, clean_html, convert_to_tag_list_of_dicts, - media_tags_as_string, cleaned_markdown_conversion) -from mediagoblin.util import pass_to_ugettext as _ + from mediagoblin.edit import forms from mediagoblin.edit.lib import may_edit_media from mediagoblin.decorators import require_active_login, get_user_media_entry - +from mediagoblin.tools.response import render_to_response, redirect +from mediagoblin.tools.translate import pass_to_ugettext as _ +from mediagoblin.tools.text import ( + clean_html, convert_to_tag_list_of_dicts, + media_tags_as_string, cleaned_markdown_conversion) @get_user_media_entry @require_active_login diff --git a/mediagoblin/listings/views.py b/mediagoblin/listings/views.py index b3384eb4..01aad803 100644 --- a/mediagoblin/listings/views.py +++ b/mediagoblin/listings/views.py @@ -16,7 +16,8 @@ from mediagoblin.db.util import DESCENDING -from mediagoblin.util import Pagination, render_to_response +from mediagoblin.tools.pagination import Pagination +from mediagoblin.tools.response import render_to_response from mediagoblin.decorators import uses_pagination from werkzeug.contrib.atom import AtomFeed diff --git a/mediagoblin/storage/__init__.py b/mediagoblin/storage/__init__.py index 8665d9e5..9e592b9e 100644 --- a/mediagoblin/storage/__init__.py +++ b/mediagoblin/storage/__init__.py @@ -21,7 +21,7 @@ import uuid from werkzeug.utils import secure_filename -from mediagoblin import util +from mediagoblin.tools import common ######## # Errors @@ -236,5 +236,5 @@ def storage_system_from_config(config_section): else: storage_class = 'mediagoblin.storage.filestorage:BasicFileStorage' - storage_class = util.import_component(storage_class) + storage_class = common.import_component(storage_class) return storage_class(**config_params) diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py index 200ce4e4..25d6e304 100644 --- a/mediagoblin/submit/forms.py +++ b/mediagoblin/submit/forms.py @@ -17,7 +17,7 @@ import wtforms -from mediagoblin.util import tag_length_validator +from mediagoblin.tools.text import tag_length_validator from mediagoblin.tools.translate import fake_ugettext_passthrough as _ diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index cd34e006..7134235e 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -22,10 +22,9 @@ from cgi import FieldStorage from werkzeug.utils import secure_filename from mediagoblin.db.util import ObjectId -from mediagoblin.util import ( - render_to_response, redirect, cleaned_markdown_conversion, \ - convert_to_tag_list_of_dicts) +from mediagoblin.tools.text import cleaned_markdown_conversion, convert_to_tag_list_of_dicts from mediagoblin.tools.translate import pass_to_ugettext as _ +from mediagoblin.tools.response import render_to_response, redirect from mediagoblin.decorators import require_active_login from mediagoblin.submit import forms as submit_forms, security from mediagoblin.process_media import process_media, mark_entry_failed diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py index f00456c4..40961eca 100644 --- a/mediagoblin/tests/test_auth.py +++ b/mediagoblin/tests/test_auth.py @@ -22,7 +22,7 @@ from nose.tools import assert_equal from mediagoblin.auth import lib as auth_lib from mediagoblin.tests.tools import setup_fresh_app from mediagoblin import mg_globals -from mediagoblin.tools import template +from mediagoblin.tools import template, mail ######################## @@ -171,8 +171,8 @@ def test_register_views(test_app): assert request.session['user_id'] == unicode(new_user['_id']) ## Make sure we get email confirmation, and try verifying - assert len(template.EMAIL_TEST_INBOX) == 1 - message = template.EMAIL_TEST_INBOX.pop() + assert len(mail.EMAIL_TEST_INBOX) == 1 + message = mail.EMAIL_TEST_INBOX.pop() assert message['To'] == 'happygrrl@example.org' email_context = template.TEMPLATE_TEST_CONTEXT[ 'mediagoblin/auth/verification_email.txt'] @@ -254,8 +254,8 @@ def test_register_views(test_app): 'mediagoblin/auth/fp_email_sent.html') ## Make sure link to change password is sent by email - assert len(template.EMAIL_TEST_INBOX) == 1 - message = template.EMAIL_TEST_INBOX.pop() + assert len(mail.EMAIL_TEST_INBOX) == 1 + message = mail.EMAIL_TEST_INBOX.pop() assert message['To'] == 'happygrrl@example.org' email_context = template.TEMPLATE_TEST_CONTEXT[ 'mediagoblin/auth/fp_verification_email.txt'] diff --git a/mediagoblin/tests/test_tags.py b/mediagoblin/tests/test_tags.py index d4628795..a05831c9 100644 --- a/mediagoblin/tests/test_tags.py +++ b/mediagoblin/tests/test_tags.py @@ -15,9 +15,8 @@ # along with this program. If not, see . from mediagoblin.tests.tools import setup_fresh_app -from mediagoblin import util from mediagoblin import mg_globals - +from mediagoblin.tools import text @setup_fresh_app def test_list_of_dicts_conversion(test_app): @@ -28,23 +27,23 @@ def test_list_of_dicts_conversion(test_app): function performs the reverse operation when populating a form to edit tags. """ # Leading, trailing, and internal whitespace should be removed and slugified - assert util.convert_to_tag_list_of_dicts('sleep , 6 AM, chainsaw! ') == [ + assert text.convert_to_tag_list_of_dicts('sleep , 6 AM, chainsaw! ') == [ {'name': u'sleep', 'slug': u'sleep'}, {'name': u'6 AM', 'slug': u'6-am'}, {'name': u'chainsaw!', 'slug': u'chainsaw'}] # If the user enters two identical tags, record only one of them - assert util.convert_to_tag_list_of_dicts('echo,echo') == [{'name': u'echo', + assert text.convert_to_tag_list_of_dicts('echo,echo') == [{'name': u'echo', 'slug': u'echo'}] # Make sure converting the list of dicts to a string works - assert util.media_tags_as_string([{'name': u'yin', 'slug': u'yin'}, + assert text.media_tags_as_string([{'name': u'yin', 'slug': u'yin'}, {'name': u'yang', 'slug': u'yang'}]) == \ u'yin,yang' # If the tag delimiter is a space then we expect different results mg_globals.app_config['tags_delimiter'] = u' ' - assert util.convert_to_tag_list_of_dicts('unicorn ceramic nazi') == [ + assert text.convert_to_tag_list_of_dicts('unicorn ceramic nazi') == [ {'name': u'unicorn', 'slug': u'unicorn'}, {'name': u'ceramic', 'slug': u'ceramic'}, {'name': u'nazi', 'slug': u'nazi'}] diff --git a/mediagoblin/tests/test_util.py b/mediagoblin/tests/test_util.py index cdc62b7d..48fa8669 100644 --- a/mediagoblin/tests/test_util.py +++ b/mediagoblin/tests/test_util.py @@ -16,10 +16,9 @@ import email -from mediagoblin import util -from mediagoblin.tools import url, translate +from mediagoblin.tools import common, url, translate, mail, text, testing -util._activate_testing() +testing._activate_testing() def _import_component_testing_method(silly_string): @@ -28,7 +27,7 @@ def _import_component_testing_method(silly_string): def test_import_component(): - imported_func = util.import_component( + imported_func = common.import_component( 'mediagoblin.tests.test_util:_import_component_testing_method') result = imported_func('hooobaladoobala') expected = u"'hooobaladoobala' is the silliest string I've ever seen" @@ -36,10 +35,10 @@ def test_import_component(): def test_send_email(): - util._clear_test_inboxes() + mail._clear_test_inboxes() # send the email - util.send_email( + mail.send_email( "sender@mediagoblin.example.org", ["amanda@example.org", "akila@example.org"], "Testing is so much fun!", @@ -48,8 +47,8 @@ def test_send_email(): I hope you like unit tests JUST AS MUCH AS I DO!""") # check the main inbox - assert len(util.EMAIL_TEST_INBOX) == 1 - message = util.EMAIL_TEST_INBOX.pop() + assert len(mail.EMAIL_TEST_INBOX) == 1 + message = mail.EMAIL_TEST_INBOX.pop() assert message['From'] == "sender@mediagoblin.example.org" assert message['To'] == "amanda@example.org, akila@example.org" assert message['Subject'] == "Testing is so much fun!" @@ -58,8 +57,8 @@ I hope you like unit tests JUST AS MUCH AS I DO!""") I hope you like unit tests JUST AS MUCH AS I DO!""" # Check everything that the FakeMhost.sendmail() method got is correct - assert len(util.EMAIL_TEST_MBOX_INBOX) == 1 - mbox_dict = util.EMAIL_TEST_MBOX_INBOX.pop() + assert len(mail.EMAIL_TEST_MBOX_INBOX) == 1 + mbox_dict = mail.EMAIL_TEST_MBOX_INBOX.pop() assert mbox_dict['from'] == "sender@mediagoblin.example.org" assert mbox_dict['to'] == ["amanda@example.org", "akila@example.org"] mbox_message = email.message_from_string(mbox_dict['message']) @@ -107,7 +106,7 @@ def test_locale_to_lower_lower(): def test_html_cleaner(): # Remove images - result = util.clean_html( + result = text.clean_html( '

Hi everybody! ' '

\n' '

:)

') @@ -118,7 +117,7 @@ def test_html_cleaner(): '') # Remove evil javascript - result = util.clean_html( + result = text.clean_html( '

innocent link!

') assert result == ( '

innocent link!

') diff --git a/mediagoblin/tests/tools.py b/mediagoblin/tests/tools.py index 308e83ee..cf84da14 100644 --- a/mediagoblin/tests/tools.py +++ b/mediagoblin/tests/tools.py @@ -21,7 +21,7 @@ import os, shutil from paste.deploy import loadapp from webtest import TestApp -from mediagoblin import util +from mediagoblin.tools import testing from mediagoblin.init.config import read_mediagoblin_config from mediagoblin.decorators import _make_safe from mediagoblin.db.open import setup_connection_and_db_from_config @@ -59,7 +59,7 @@ def get_test_app(dump_old_app=True): suicide_if_bad_celery_environ() # Make sure we've turned on testing - util._activate_testing() + testing._activate_testing() # Leave this imported as it sets up celery. from mediagoblin.init.celery import from_tests @@ -117,7 +117,7 @@ def setup_fresh_app(func): """ def wrapper(*args, **kwargs): test_app = get_test_app() - util.clear_test_buckets() + testing.clear_test_buckets() return func(test_app, *args, **kwargs) return _make_safe(wrapper, func) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 40c7ffce..9cec74dc 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -18,10 +18,11 @@ from webob import exc from mediagoblin import messages, mg_globals from mediagoblin.db.util import DESCENDING, ObjectId -from mediagoblin.util import ( - Pagination, render_to_response, redirect, cleaned_markdown_conversion, - render_404, delete_media_files) +from mediagoblin.tools.text import cleaned_markdown_conversion +from mediagoblin.tools.response import render_to_response, render_404, redirect from mediagoblin.tools.translate import pass_to_ugettext as _ +from mediagoblin.tools.pagination import Pagination +from mediagoblin.tools.files import delete_media_files from mediagoblin.user_pages import forms as user_forms from mediagoblin.decorators import (uses_pagination, get_user_media_entry, diff --git a/mediagoblin/util.py b/mediagoblin/util.py deleted file mode 100644 index 35755ccf..00000000 --- a/mediagoblin/util.py +++ /dev/null @@ -1,699 +0,0 @@ -# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . - -from __future__ import division - -from email.MIMEText import MIMEText -#import gettext -#import pkg_resources -import smtplib -import sys -#import re -#import translitcodec -import urllib -from math import ceil, floor -import copy -import wtforms - -#from babel.localedata import exists -#from babel.support import LazyProxy -#import jinja2 -from webob import Response, exc -from lxml.html.clean import Cleaner -import markdown -from wtforms.form import Form - -from mediagoblin import mg_globals -#from mediagoblin import messages -from mediagoblin.db.util import ObjectId -from mediagoblin.tools import url -from mediagoblin.tools import common -from mediagoblin.tools.template import TEMPLATE_TEST_CONTEXT, render_template - -from itertools import izip, count - -DISPLAY_IMAGE_FETCHING_ORDER = [u'medium', u'original', u'thumb'] - -def _activate_testing(): - """ - Call this to activate testing in util.py - """ - - common.TESTS_ENABLED = True - -def clear_test_buckets(): - """ - We store some things for testing purposes that should be cleared - when we want a "clean slate" of information for our next round of - tests. Call this function to wipe all that stuff clean. - - Also wipes out some other things we might redefine during testing, - like the jinja envs. - """ - global SETUP_JINJA_ENVS - SETUP_JINJA_ENVS = {} - - global EMAIL_TEST_INBOX - global EMAIL_TEST_MBOX_INBOX - EMAIL_TEST_INBOX = [] - EMAIL_TEST_MBOX_INBOX = [] - - clear_test_template_context() - - -# SETUP_JINJA_ENVS = {} - - -# def get_jinja_env(template_loader, locale): -# """ -# Set up the Jinja environment, - -# (In the future we may have another system for providing theming; -# for now this is good enough.) -# """ -# setup_gettext(locale) - -# # If we have a jinja environment set up with this locale, just -# # return that one. -# if SETUP_JINJA_ENVS.has_key(locale): -# return SETUP_JINJA_ENVS[locale] - -# template_env = jinja2.Environment( -# loader=template_loader, autoescape=True, -# extensions=['jinja2.ext.i18n', 'jinja2.ext.autoescape']) - -# template_env.install_gettext_callables( -# mg_globals.translations.ugettext, -# mg_globals.translations.ungettext) - -# # All templates will know how to ... -# # ... fetch all waiting messages and remove them from the queue -# # ... construct a grid of thumbnails or other media -# template_env.globals['fetch_messages'] = messages.fetch_messages -# template_env.globals['gridify_list'] = gridify_list -# template_env.globals['gridify_cursor'] = gridify_cursor - -# if exists(locale): -# SETUP_JINJA_ENVS[locale] = template_env - -# return template_env - - -# # We'll store context information here when doing unit tests -# TEMPLATE_TEST_CONTEXT = {} - - -# def render_template(request, template_path, context): -# """ -# Render a template with context. - -# Always inserts the request into the context, so you don't have to. -# Also stores the context if we're doing unit tests. Helpful! -# """ -# template = request.template_env.get_template( -# template_path) -# context['request'] = request -# rendered = template.render(context) - -# if TESTS_ENABLED: -# TEMPLATE_TEST_CONTEXT[template_path] = context - -# return rendered - - -def clear_test_template_context(): - global TEMPLATE_TEST_CONTEXT - TEMPLATE_TEST_CONTEXT = {} - - -def render_to_response(request, template, context, status=200): - """Much like Django's shortcut.render()""" - return Response( - render_template(request, template, context), - status=status) - - -def redirect(request, *args, **kwargs): - """Returns a HTTPFound(), takes a request and then urlgen params""" - - querystring = None - if kwargs.get('querystring'): - querystring = kwargs.get('querystring') - del kwargs['querystring'] - - return exc.HTTPFound( - location=''.join([ - request.urlgen(*args, **kwargs), - querystring if querystring else ''])) - - -def setup_user_in_request(request): - """ - Examine a request and tack on a request.user parameter if that's - appropriate. - """ - if not request.session.has_key('user_id'): - request.user = None - return - - user = None - user = request.app.db.User.one( - {'_id': ObjectId(request.session['user_id'])}) - - if not user: - # Something's wrong... this user doesn't exist? Invalidate - # this session. - request.session.invalidate() - - request.user = user - - -def import_component(import_string): - """ - Import a module component defined by STRING. Probably a method, - class, or global variable. - - Args: - - import_string: a string that defines what to import. Written - in the format of "module1.module2:component" - """ - module_name, func_name = import_string.split(':', 1) - __import__(module_name) - module = sys.modules[module_name] - func = getattr(module, func_name) - return func - -# _punct_re = re.compile(r'[\t !"#$%&\'()*\-/<=>?@\[\\\]^_`{|},.]+') - -# def slugify(text, delim=u'-'): -# """ -# Generates an ASCII-only slug. Taken from http://flask.pocoo.org/snippets/5/ -# """ -# result = [] -# for word in _punct_re.split(text.lower()): -# word = word.encode('translit/long') -# if word: -# result.append(word) -# return unicode(delim.join(result)) - -### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -### Special email test stuff begins HERE -### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# We have two "test inboxes" here: -# -# EMAIL_TEST_INBOX: -# ---------------- -# If you're writing test views, you'll probably want to check this. -# It contains a list of MIMEText messages. -# -# EMAIL_TEST_MBOX_INBOX: -# ---------------------- -# This collects the messages from the FakeMhost inbox. It's reslly -# just here for testing the send_email method itself. -# -# Anyway this contains: -# - from -# - to: a list of email recipient addresses -# - message: not just the body, but the whole message, including -# headers, etc. -# -# ***IMPORTANT!*** -# ---------------- -# Before running tests that call functions which send email, you should -# always call _clear_test_inboxes() to "wipe" the inboxes clean. - -EMAIL_TEST_INBOX = [] -EMAIL_TEST_MBOX_INBOX = [] - - -class FakeMhost(object): - """ - Just a fake mail host so we can capture and test messages - from send_email - """ - def login(self, *args, **kwargs): - pass - - def sendmail(self, from_addr, to_addrs, message): - EMAIL_TEST_MBOX_INBOX.append( - {'from': from_addr, - 'to': to_addrs, - 'message': message}) - -def _clear_test_inboxes(): - global EMAIL_TEST_INBOX - global EMAIL_TEST_MBOX_INBOX - EMAIL_TEST_INBOX = [] - EMAIL_TEST_MBOX_INBOX = [] - -### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -### -### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -def send_email(from_addr, to_addrs, subject, message_body): - """ - Simple email sending wrapper, use this so we can capture messages - for unit testing purposes. - - Args: - - from_addr: address you're sending the email from - - to_addrs: list of recipient email addresses - - subject: subject of the email - - message_body: email body text - """ - if common.TESTS_ENABLED or mg_globals.app_config['email_debug_mode']: - mhost = FakeMhost() - elif not mg_globals.app_config['email_debug_mode']: - mhost = smtplib.SMTP( - mg_globals.app_config['email_smtp_host'], - mg_globals.app_config['email_smtp_port']) - - # SMTP.__init__ Issues SMTP.connect implicitly if host - if not mg_globals.app_config['email_smtp_host']: # e.g. host = '' - mhost.connect() # We SMTP.connect explicitly - - if mg_globals.app_config['email_smtp_user'] \ - or mg_globals.app_config['email_smtp_pass']: - mhost.login( - mg_globals.app_config['email_smtp_user'], - mg_globals.app_config['email_smtp_pass']) - - message = MIMEText(message_body.encode('utf-8'), 'plain', 'utf-8') - message['Subject'] = subject - message['From'] = from_addr - message['To'] = ', '.join(to_addrs) - - if common.TESTS_ENABLED: - EMAIL_TEST_INBOX.append(message) - - if mg_globals.app_config['email_debug_mode']: - print u"===== Email =====" - print u"From address: %s" % message['From'] - print u"To addresses: %s" % message['To'] - print u"Subject: %s" % message['Subject'] - print u"-- Body: --" - print message.get_payload(decode=True) - - return mhost.sendmail(from_addr, to_addrs, message.as_string()) - - -# ################### -# # Translation tools -# ################### - - -# TRANSLATIONS_PATH = pkg_resources.resource_filename( -# 'mediagoblin', 'i18n') - - -# def locale_to_lower_upper(locale): -# """ -# Take a locale, regardless of style, and format it like "en-us" -# """ -# if '-' in locale: -# lang, country = locale.split('-', 1) -# return '%s_%s' % (lang.lower(), country.upper()) -# elif '_' in locale: -# lang, country = locale.split('_', 1) -# return '%s_%s' % (lang.lower(), country.upper()) -# else: -# return locale.lower() - - -# def locale_to_lower_lower(locale): -# """ -# Take a locale, regardless of style, and format it like "en_US" -# """ -# if '_' in locale: -# lang, country = locale.split('_', 1) -# return '%s-%s' % (lang.lower(), country.lower()) -# else: -# return locale.lower() - - -# def get_locale_from_request(request): -# """ -# Figure out what target language is most appropriate based on the -# request -# """ -# request_form = request.GET or request.POST - -# if request_form.has_key('lang'): -# return locale_to_lower_upper(request_form['lang']) - -# accept_lang_matches = request.accept_language.best_matches() - -# # Your routing can explicitly specify a target language -# matchdict = request.matchdict or {} - -# if matchdict.has_key('locale'): -# target_lang = matchdict['locale'] -# elif request.session.has_key('target_lang'): -# target_lang = request.session['target_lang'] -# # Pull the first acceptable language -# elif accept_lang_matches: -# target_lang = accept_lang_matches[0] -# # Fall back to English -# else: -# target_lang = 'en' - -# return locale_to_lower_upper(target_lang) - - -# A super strict version of the lxml.html cleaner class -HTML_CLEANER = Cleaner( - scripts=True, - javascript=True, - comments=True, - style=True, - links=True, - page_structure=True, - processing_instructions=True, - embedded=True, - frames=True, - forms=True, - annoying_tags=True, - allow_tags=[ - 'div', 'b', 'i', 'em', 'strong', 'p', 'ul', 'ol', 'li', 'a', 'br'], - remove_unknown_tags=False, # can't be used with allow_tags - safe_attrs_only=True, - add_nofollow=True, # for now - host_whitelist=(), - whitelist_tags=set([])) - - -def clean_html(html): - # clean_html barfs on an empty string - if not html: - return u'' - - return HTML_CLEANER.clean_html(html) - - -def convert_to_tag_list_of_dicts(tag_string): - """ - Filter input from incoming string containing user tags, - - Strips trailing, leading, and internal whitespace, and also converts - the "tags" text into an array of tags - """ - taglist = [] - if tag_string: - - # Strip out internal, trailing, and leading whitespace - stripped_tag_string = u' '.join(tag_string.strip().split()) - - # Split the tag string into a list of tags - for tag in stripped_tag_string.split( - mg_globals.app_config['tags_delimiter']): - - # Ignore empty or duplicate tags - if tag.strip() and tag.strip() not in [t['name'] for t in taglist]: - - taglist.append({'name': tag.strip(), - 'slug': url.slugify(tag.strip())}) - return taglist - - -def media_tags_as_string(media_entry_tags): - """ - Generate a string from a media item's tags, stored as a list of dicts - - This is the opposite of convert_to_tag_list_of_dicts - """ - media_tag_string = '' - if media_entry_tags: - media_tag_string = mg_globals.app_config['tags_delimiter'].join( - [tag['name'] for tag in media_entry_tags]) - return media_tag_string - -TOO_LONG_TAG_WARNING = \ - u'Tags must be shorter than %s characters. Tags that are too long: %s' - -def tag_length_validator(form, field): - """ - Make sure tags do not exceed the maximum tag length. - """ - tags = convert_to_tag_list_of_dicts(field.data) - too_long_tags = [ - tag['name'] for tag in tags - if len(tag['name']) > mg_globals.app_config['tags_max_length']] - - if too_long_tags: - raise wtforms.ValidationError( - TOO_LONG_TAG_WARNING % (mg_globals.app_config['tags_max_length'], \ - ', '.join(too_long_tags))) - - -MARKDOWN_INSTANCE = markdown.Markdown(safe_mode='escape') - -def cleaned_markdown_conversion(text): - """ - Take a block of text, run it through MarkDown, and clean its HTML. - """ - # Markdown will do nothing with and clean_html can do nothing with - # an empty string :) - if not text: - return u'' - - return clean_html(MARKDOWN_INSTANCE.convert(text)) - - -# SETUP_GETTEXTS = {} - -# def setup_gettext(locale): -# """ -# Setup the gettext instance based on this locale -# """ -# # Later on when we have plugins we may want to enable the -# # multi-translations system they have so we can handle plugin -# # translations too - -# # TODO: fallback nicely on translations from pt_PT to pt if not -# # available, etc. -# if SETUP_GETTEXTS.has_key(locale): -# this_gettext = SETUP_GETTEXTS[locale] -# else: -# this_gettext = gettext.translation( -# 'mediagoblin', TRANSLATIONS_PATH, [locale], fallback=True) -# if exists(locale): -# SETUP_GETTEXTS[locale] = this_gettext - -# mg_globals.setup_globals( -# translations=this_gettext) - - -# # Force en to be setup before anything else so that -# # mg_globals.translations is never None -# setup_gettext('en') - - -# def pass_to_ugettext(*args, **kwargs): -# """ -# Pass a translation on to the appropriate ugettext method. - -# The reason we can't have a global ugettext method is because -# mg_globals gets swapped out by the application per-request. -# """ -# return mg_globals.translations.ugettext( -# *args, **kwargs) - - -# def lazy_pass_to_ugettext(*args, **kwargs): -# """ -# Lazily pass to ugettext. - -# This is useful if you have to define a translation on a module -# level but you need it to not translate until the time that it's -# used as a string. -# """ -# return LazyProxy(pass_to_ugettext, *args, **kwargs) - - -# def pass_to_ngettext(*args, **kwargs): -# """ -# Pass a translation on to the appropriate ngettext method. - -# The reason we can't have a global ngettext method is because -# mg_globals gets swapped out by the application per-request. -# """ -# return mg_globals.translations.ngettext( -# *args, **kwargs) - - -# def lazy_pass_to_ngettext(*args, **kwargs): -# """ -# Lazily pass to ngettext. - -# This is useful if you have to define a translation on a module -# level but you need it to not translate until the time that it's -# used as a string. -# """ -# return LazyProxy(pass_to_ngettext, *args, **kwargs) - - -# def fake_ugettext_passthrough(string): -# """ -# Fake a ugettext call for extraction's sake ;) - -# In wtforms there's a separate way to define a method to translate -# things... so we just need to mark up the text so that it can be -# extracted, not so that it's actually run through gettext. -# """ -# return string - - -PAGINATION_DEFAULT_PER_PAGE = 30 - -class Pagination(object): - """ - Pagination class for mongodb queries. - - Initialization through __init__(self, cursor, page=1, per_page=2), - get actual data slice through __call__(). - """ - - def __init__(self, page, cursor, per_page=PAGINATION_DEFAULT_PER_PAGE, - jump_to_id=False): - """ - Initializes Pagination - - Args: - - page: requested page - - per_page: number of objects per page - - cursor: db cursor - - jump_to_id: ObjectId, sets the page to the page containing the object - with _id == jump_to_id. - """ - self.page = page - self.per_page = per_page - self.cursor = cursor - self.total_count = self.cursor.count() - self.active_id = None - - if jump_to_id: - cursor = copy.copy(self.cursor) - - for (doc, increment) in izip(cursor, count(0)): - if doc['_id'] == jump_to_id: - self.page = 1 + int(floor(increment / self.per_page)) - - self.active_id = jump_to_id - break - - - def __call__(self): - """ - Returns slice of objects for the requested page - """ - return self.cursor.skip( - (self.page - 1) * self.per_page).limit(self.per_page) - - @property - def pages(self): - return int(ceil(self.total_count / float(self.per_page))) - - @property - def has_prev(self): - return self.page > 1 - - @property - def has_next(self): - return self.page < self.pages - - def iter_pages(self, left_edge=2, left_current=2, - right_current=5, right_edge=2): - last = 0 - for num in xrange(1, self.pages + 1): - if num <= left_edge or \ - (num > self.page - left_current - 1 and \ - num < self.page + right_current) or \ - num > self.pages - right_edge: - if last + 1 != num: - yield None - yield num - last = num - - def get_page_url_explicit(self, base_url, get_params, page_no): - """ - Get a page url by adding a page= parameter to the base url - """ - new_get_params = copy.copy(get_params or {}) - new_get_params['page'] = page_no - return "%s?%s" % ( - base_url, urllib.urlencode(new_get_params)) - - def get_page_url(self, request, page_no): - """ - Get a new page url based of the request, and the new page number. - - This is a nice wrapper around get_page_url_explicit() - """ - return self.get_page_url_explicit( - request.path_info, request.GET, page_no) - - -# def gridify_list(this_list, num_cols=5): -# """ -# Generates a list of lists where each sub-list's length depends on -# the number of columns in the list -# """ -# grid = [] - -# # Figure out how many rows we should have -# num_rows = int(ceil(float(len(this_list)) / num_cols)) - -# for row_num in range(num_rows): -# slice_min = row_num * num_cols -# slice_max = (row_num + 1) * num_cols - -# row = this_list[slice_min:slice_max] - -# grid.append(row) - -# return grid - - -# def gridify_cursor(this_cursor, num_cols=5): -# """ -# Generates a list of lists where each sub-list's length depends on -# the number of columns in the list -# """ -# return gridify_list(list(this_cursor), num_cols) - - -def render_404(request): - """ - Render a 404. - """ - return render_to_response( - request, 'mediagoblin/404.html', {}, status=400) - -def delete_media_files(media): - """ - Delete all files associated with a MediaEntry - - Arguments: - - media: A MediaEntry document - """ - for listpath in media['media_files'].itervalues(): - mg_globals.public_store.delete_file( - listpath) - - for attachment in media['attachment_files']: - mg_globals.public_store.delete_file( - attachment['filepath']) diff --git a/mediagoblin/views.py b/mediagoblin/views.py index 96687f96..22f9268d 100644 --- a/mediagoblin/views.py +++ b/mediagoblin/views.py @@ -15,7 +15,8 @@ # along with this program. If not, see . from mediagoblin import mg_globals -from mediagoblin.util import render_to_response, Pagination +from mediagoblin.tools.pagination import Pagination +from mediagoblin.tools.response import render_to_response from mediagoblin.db.util import DESCENDING from mediagoblin.decorators import uses_pagination From 243c3843bd574129caa7663e25d1a843b2d2dd30 Mon Sep 17 00:00:00 2001 From: Nathan Yergler Date: Sat, 1 Oct 2011 15:10:02 -0700 Subject: [PATCH 1040/2731] Whitespace and formatting cleanup. * Removed trailing whitespace * Line length < 80 where possible * Honor conventions on number of blank lines * Honor conventions about spaces around :, = --- mediagoblin/app.py | 3 +- mediagoblin/auth/forms.py | 8 ++--- mediagoblin/auth/lib.py | 3 +- mediagoblin/auth/routing.py | 3 +- mediagoblin/auth/views.py | 3 +- mediagoblin/db/__init__.py | 2 +- mediagoblin/db/indexes.py | 5 +-- mediagoblin/db/migrations.py | 2 +- mediagoblin/db/models.py | 35 ++++++++++---------- mediagoblin/db/open.py | 2 +- mediagoblin/db/util.py | 5 +-- mediagoblin/decorators.py | 2 +- mediagoblin/edit/__init__.py | 2 -- mediagoblin/edit/views.py | 2 +- mediagoblin/gmg_commands/__init__.py | 3 +- mediagoblin/gmg_commands/import_export.py | 7 ++-- mediagoblin/gmg_commands/migrate.py | 4 +-- mediagoblin/gmg_commands/users.py | 7 ++-- mediagoblin/init/__init__.py | 18 +++++++---- mediagoblin/init/celery/__init__.py | 2 +- mediagoblin/init/celery/from_celery.py | 2 +- mediagoblin/init/config.py | 2 +- mediagoblin/listings/routing.py | 1 - mediagoblin/listings/views.py | 3 +- mediagoblin/messages.py | 2 ++ mediagoblin/middleware/noop.py | 1 + mediagoblin/process_media/__init__.py | 18 ++++++----- mediagoblin/process_media/errors.py | 9 +++--- mediagoblin/storage/cloudfiles.py | 1 + mediagoblin/submit/__init__.py | 2 -- mediagoblin/submit/security.py | 2 +- mediagoblin/submit/views.py | 16 ++++++---- mediagoblin/user_pages/__init__.py | 2 -- mediagoblin/user_pages/views.py | 13 +++++--- mediagoblin/util.py | 39 +++++++++++++---------- mediagoblin/views.py | 1 + mediagoblin/workbench.py | 4 ++- setup.py | 12 +++---- 38 files changed, 135 insertions(+), 113 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index dd5f0b89..9bbccf24 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -91,7 +91,7 @@ class MediaGoblinApp(object): # object. ####################################################### - setup_globals(app = self) + setup_globals(app=self) # Workbench *currently* only used by celery, so this only # matters in always eager mode :) @@ -101,7 +101,6 @@ class MediaGoblinApp(object): self.middleware = [util.import_component(m)(self) for m in middleware.ENABLED_MIDDLEWARE] - def __call__(self, environ, start_response): request = Request(environ) diff --git a/mediagoblin/auth/forms.py b/mediagoblin/auth/forms.py index 6339b4a3..aadb5888 100644 --- a/mediagoblin/auth/forms.py +++ b/mediagoblin/auth/forms.py @@ -59,9 +59,10 @@ class ForgotPassForm(wtforms.Form): 'Username or email', [wtforms.validators.Required()]) - def validate_username(form,field): - if not (re.match(r'^\w+$',field.data) or - re.match(r'^.+@[^.].*\.[a-z]{2,10}$',field.data, re.IGNORECASE)): + def validate_username(form, field): + if not (re.match(r'^\w+$', field.data) or + re.match(r'^.+@[^.].*\.[a-z]{2,10}$', field.data, + re.IGNORECASE)): raise wtforms.ValidationError(u'Incorrect input') @@ -82,4 +83,3 @@ class ChangePassForm(wtforms.Form): token = wtforms.HiddenField( '', [wtforms.validators.Required()]) - diff --git a/mediagoblin/auth/lib.py b/mediagoblin/auth/lib.py index d7d351a5..0ecccbb5 100644 --- a/mediagoblin/auth/lib.py +++ b/mediagoblin/auth/lib.py @@ -93,6 +93,7 @@ EMAIL_VERIFICATION_TEMPLATE = ( u"http://{host}{uri}?" u"userid={userid}&token={verification_key}") + def send_verification_email(user, request): """ Send the verification email to users to activate their accounts. @@ -127,6 +128,7 @@ EMAIL_FP_VERIFICATION_TEMPLATE = ( u"http://{host}{uri}?" u"userid={userid}&token={fp_verification_key}") + def send_fp_verification_email(user, request): """ Send the verification email to users to change their password. @@ -150,4 +152,3 @@ def send_fp_verification_email(user, request): [user['email']], 'GNU MediaGoblin - Change forgotten password!', rendered_email) - diff --git a/mediagoblin/auth/routing.py b/mediagoblin/auth/routing.py index 912d89fa..365ccfaa 100644 --- a/mediagoblin/auth/routing.py +++ b/mediagoblin/auth/routing.py @@ -33,7 +33,8 @@ auth_routes = [ controller='mediagoblin.views:simple_template_render'), Route('mediagoblin.auth.forgot_password', '/forgot_password/', controller='mediagoblin.auth.views:forgot_password'), - Route('mediagoblin.auth.verify_forgot_password', '/forgot_password/verify/', + Route('mediagoblin.auth.verify_forgot_password', + '/forgot_password/verify/', controller='mediagoblin.auth.views:verify_forgot_password'), Route('mediagoblin.auth.fp_changed_success', '/forgot_password/changed_success/', diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index f67f0588..afcfcf1e 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -233,8 +233,7 @@ def forgot_password(request): request, 'mediagoblin.user_pages.user_home', user=user['username']) - - # do not reveal whether or not there is a matching user, just move along + # do not reveal whether or not there is a matching user return redirect(request, 'mediagoblin.auth.fp_email_sent') return render_to_response( diff --git a/mediagoblin/db/__init__.py b/mediagoblin/db/__init__.py index c5124b1a..27e8a90f 100644 --- a/mediagoblin/db/__init__.py +++ b/mediagoblin/db/__init__.py @@ -23,7 +23,7 @@ Database Abstraction/Wrapper Layer pymongo. Read beow for why, but note that nobody is actually doing this and there's no proof that we'll ever support more than MongoDB... it would be a huge amount of work to do so. - + If you really want to prove that possible, jump on IRC and talk to us about making such a branch. In the meanwhile, it doesn't hurt to have things as they are... if it ever makes it hard for us to diff --git a/mediagoblin/db/indexes.py b/mediagoblin/db/indexes.py index 75394a31..1dd73f2b 100644 --- a/mediagoblin/db/indexes.py +++ b/mediagoblin/db/indexes.py @@ -93,8 +93,9 @@ MEDIAENTRY_INDEXES = { ('created', DESCENDING)]}, 'state_uploader_tags_created': { - # Indexing on processed?, media uploader, associated tags, and timestamp - # Used for showing media items matching a tag search, most recent first. + # Indexing on processed?, media uploader, associated tags, and + # timestamp Used for showing media items matching a tag + # search, most recent first. 'index': [('state', ASCENDING), ('uploader', ASCENDING), ('tags.slug', DESCENDING), diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py index 755f49c5..28bb62fc 100644 --- a/mediagoblin/db/migrations.py +++ b/mediagoblin/db/migrations.py @@ -87,7 +87,7 @@ def mediaentry_add_fail_error_and_metadata(database): {'fail_error': {'$exists': False}}, {'$set': {'fail_error': None}}, multi=True) - + collection.update( {'fail_metadata': {'$exists': False}}, {'$set': {'fail_metadata': {}}}, diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index bbddada6..42db3f83 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -14,7 +14,8 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -import datetime, uuid +import datetime +import uuid from mongokit import Document @@ -69,17 +70,17 @@ class User(Document): 'username': unicode, 'email': unicode, 'created': datetime.datetime, - 'plugin_data': dict, # plugins can dump stuff here. + 'plugin_data': dict, # plugins can dump stuff here. 'pw_hash': unicode, 'email_verified': bool, 'status': unicode, 'verification_key': unicode, 'is_admin': bool, - 'url' : unicode, - 'bio' : unicode, # May contain markdown - 'bio_html': unicode, # May contain plaintext, or HTML - 'fp_verification_key': unicode, # forgotten password verification key - 'fp_token_expire': datetime.datetime + 'url': unicode, + 'bio': unicode, # May contain markdown + 'bio_html': unicode, # May contain plaintext, or HTML + 'fp_verification_key': unicode, # forgotten password verification key + 'fp_token_expire': datetime.datetime, } required_fields = ['username', 'created', 'pw_hash', 'email'] @@ -174,8 +175,8 @@ class MediaEntry(Document): critical to this piece of media but may be usefully relevant to people viewing the work. (currently unused.) - - fail_error: path to the exception raised - - fail_metadata: + - fail_error: path to the exception raised + - fail_metadata: """ __collection__ = 'media_entries' @@ -184,11 +185,11 @@ class MediaEntry(Document): 'title': unicode, 'slug': unicode, 'created': datetime.datetime, - 'description': unicode, # May contain markdown/up - 'description_html': unicode, # May contain plaintext, or HTML + 'description': unicode, # May contain markdown/up + 'description_html': unicode, # May contain plaintext, or HTML 'media_type': unicode, - 'media_data': dict, # extra data relevant to this media_type - 'plugin_data': dict, # plugins can dump stuff here. + 'media_data': dict, # extra data relevant to this media_type + 'plugin_data': dict, # plugins can dump stuff here. 'tags': [dict], 'state': unicode, @@ -220,7 +221,8 @@ class MediaEntry(Document): return self.db.MediaComment.find({ 'media_entry': self['_id']}).sort('created', DESCENDING) - def get_display_media(self, media_map, fetch_order=DISPLAY_IMAGE_FETCHING_ORDER): + def get_display_media(self, media_map, + fetch_order=DISPLAY_IMAGE_FETCHING_ORDER): """ Find the best media for display. @@ -273,7 +275,7 @@ class MediaEntry(Document): """ Provide a url to the previous entry from this user, if there is one """ - cursor = self.db.MediaEntry.find({'_id' : {"$gt": self['_id']}, + cursor = self.db.MediaEntry.find({'_id': {"$gt": self['_id']}, 'uploader': self['uploader'], 'state': 'processed'}).sort( '_id', ASCENDING).limit(1) @@ -286,7 +288,7 @@ class MediaEntry(Document): """ Provide a url to the next entry from this user, if there is one """ - cursor = self.db.MediaEntry.find({'_id' : {"$lt": self['_id']}, + cursor = self.db.MediaEntry.find({'_id': {"$lt": self['_id']}, 'uploader': self['uploader'], 'state': 'processed'}).sort( '_id', DESCENDING).limit(1) @@ -353,4 +355,3 @@ def register_models(connection): Register all models in REGISTER_MODELS with this connection. """ connection.register(REGISTER_MODELS) - diff --git a/mediagoblin/db/open.py b/mediagoblin/db/open.py index e73b6258..e677ba12 100644 --- a/mediagoblin/db/open.py +++ b/mediagoblin/db/open.py @@ -29,7 +29,7 @@ def connect_database_from_config(app_config, use_pymongo=False): port = app_config.get('db_port') if port: port = asint(port) - + if use_pymongo: connection = pymongo.Connection( app_config.get('db_host'), port) diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index 84a6cbce..38f0233f 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -118,11 +118,12 @@ def remove_deprecated_indexes(database, deprecated_indexes=DEPRECATED_INDEXES): ################# # The default migration registry... -# +# # Don't set this yourself! RegisterMigration will automatically fill # this with stuff via decorating methods in migrations.py -class MissingCurrentMigration(Exception): pass +class MissingCurrentMigration(Exception): + pass MIGRATIONS = {} diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index 7d5978fc..204ac47a 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -119,6 +119,7 @@ def get_user_media_entry(controller): return _make_safe(wrapper, controller) + def get_media_entry_by_id(controller): """ Pass in a MediaEntry based off of a url component @@ -138,4 +139,3 @@ def get_media_entry_by_id(controller): return controller(request, media=media, *args, **kwargs) return _make_safe(wrapper, controller) - diff --git a/mediagoblin/edit/__init__.py b/mediagoblin/edit/__init__.py index 576bd0f5..ba347c69 100644 --- a/mediagoblin/edit/__init__.py +++ b/mediagoblin/edit/__init__.py @@ -13,5 +13,3 @@ # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . - - diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 15edfdd6..d15461c0 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -119,7 +119,7 @@ def edit_attachments(request, media): name=request.POST['attachment_name'] \ or request.POST['attachment_file'].filename, filepath=attachment_public_filepath, - created=datetime.utcnow() + created=datetime.utcnow(), )) media.save() diff --git a/mediagoblin/gmg_commands/__init__.py b/mediagoblin/gmg_commands/__init__.py index 0071c65b..b3f69ccc 100644 --- a/mediagoblin/gmg_commands/__init__.py +++ b/mediagoblin/gmg_commands/__init__.py @@ -28,7 +28,7 @@ SUBCOMMAND_MAP = { 'setup': 'mediagoblin.gmg_commands.migrate:migrate_parser_setup', 'func': 'mediagoblin.gmg_commands.migrate:migrate', 'help': 'Apply all unapplied bulk migrations to the database'}, - 'adduser':{ + 'adduser': { 'setup': 'mediagoblin.gmg_commands.users:adduser_parser_setup', 'func': 'mediagoblin.gmg_commands.users:adduser', 'help': 'Creates an user'}, @@ -80,4 +80,3 @@ def main_cli(): if __name__ == '__main__': main_cli() - diff --git a/mediagoblin/gmg_commands/import_export.py b/mediagoblin/gmg_commands/import_export.py index 05edbfc8..962e545c 100644 --- a/mediagoblin/gmg_commands/import_export.py +++ b/mediagoblin/gmg_commands/import_export.py @@ -91,7 +91,7 @@ def _import_database(db, args): args.mongorestore_path, '-d', db.name, os.path.join(args._cache_path['database'], db.name)]) - + p.wait() _log.info('...Database imported') @@ -229,7 +229,8 @@ def env_export(args): ''' if args.cache_path: if os.path.exists(args.cache_path): - _log.error('The cache directory must not exist before you run this script') + _log.error('The cache directory must not exist ' + 'before you run this script') _log.error('Cache directory: {0}'.format(args.cache_path)) return False @@ -245,7 +246,7 @@ def env_export(args): globa_config, app_config = setup_global_and_app_config(args.conf_file) setup_storage() - + connection, db = setup_connection_and_db_from_config( app_config, use_pymongo=True) diff --git a/mediagoblin/gmg_commands/migrate.py b/mediagoblin/gmg_commands/migrate.py index 1a597188..e6dd6f78 100644 --- a/mediagoblin/gmg_commands/migrate.py +++ b/mediagoblin/gmg_commands/migrate.py @@ -55,13 +55,13 @@ def migrate(args): for collection, index_name in removed_indexes: print "Removed index '%s' in collection '%s'" % ( index_name, collection) - + # Migrate print "\n== Applying migrations... ==" migration_manager.migrate_new( pre_callback=_print_started_migration, post_callback=_print_finished_migration) - + # Add new indexes print "\n== Adding new indexes... ==" new_indexes = db_util.add_new_indexes(db) diff --git a/mediagoblin/gmg_commands/users.py b/mediagoblin/gmg_commands/users.py index 5421907d..3fda0e32 100644 --- a/mediagoblin/gmg_commands/users.py +++ b/mediagoblin/gmg_commands/users.py @@ -41,7 +41,7 @@ def adduser(args): db = mg_globals.database users_with_username = \ db.User.find({ - 'username': args.username.lower() + 'username': args.username.lower(), }).count() if users_with_username: @@ -74,7 +74,7 @@ def makeadmin(args): db = mg_globals.database - user = db.User.one({'username':unicode(args.username.lower())}) + user = db.User.one({'username': unicode(args.username.lower())}) if user: user['is_admin'] = True user.save() @@ -100,11 +100,10 @@ def changepw(args): db = mg_globals.database - user = db.User.one({'username':unicode(args.username.lower())}) + user = db.User.one({'username': unicode(args.username.lower())}) if user: user['pw_hash'] = auth_lib.bcrypt_gen_password_hash(args.password) user.save() print 'Password successfully changed' else: print 'The user doesn\'t exist' - diff --git a/mediagoblin/init/__init__.py b/mediagoblin/init/__init__.py index b7f52595..f21e2fdd 100644 --- a/mediagoblin/init/__init__.py +++ b/mediagoblin/init/__init__.py @@ -29,8 +29,12 @@ from mediagoblin.workbench import WorkbenchManager from mediagoblin.storage import storage_system_from_config -class Error(Exception): pass -class ImproperlyConfigured(Error): pass +class Error(Exception): + pass + + +class ImproperlyConfigured(Error): + pass def setup_global_and_app_config(config_path): @@ -76,8 +80,8 @@ def setup_database(): "in fact they appear to be from the future?!") setup_globals( - db_connection = connection, - database = db) + db_connection=connection, + database=db) return connection, db @@ -126,8 +130,8 @@ def setup_storage(): queue_store = storage_system_from_config(global_config[key_long]) setup_globals( - public_store = public_store, - queue_store = queue_store) + public_store=public_store, + queue_store=queue_store) return public_store, queue_store @@ -137,7 +141,7 @@ def setup_workbench(): workbench_manager = WorkbenchManager(app_config['workbench_path']) - setup_globals(workbench_manager = workbench_manager) + setup_globals(workbench_manager=workbench_manager) def setup_beaker_cache(): diff --git a/mediagoblin/init/celery/__init__.py b/mediagoblin/init/celery/__init__.py index c58b1305..21ce1d39 100644 --- a/mediagoblin/init/celery/__init__.py +++ b/mediagoblin/init/celery/__init__.py @@ -84,6 +84,6 @@ def setup_celery_from_config(app_config, global_config, for key, value in celery_settings.iteritems(): setattr(this_module, key, value) - + if set_environ: os.environ['CELERY_CONFIG_MODULE'] = settings_module diff --git a/mediagoblin/init/celery/from_celery.py b/mediagoblin/init/celery/from_celery.py index 3e5adb98..05669b67 100644 --- a/mediagoblin/init/celery/from_celery.py +++ b/mediagoblin/init/celery/from_celery.py @@ -44,7 +44,7 @@ def setup_self(check_environ_for_conf=True, module_name=OUR_MODULENAME, if not os.path.exists(mgoblin_conf_file): raise IOError( "MEDIAGOBLIN_CONFIG not set or file does not exist") - + # By setting the environment variable here we should ensure that # this is the module that gets set up. os.environ['CELERY_CONFIG_MODULE'] = module_name diff --git a/mediagoblin/init/config.py b/mediagoblin/init/config.py index 029a0956..ae232e91 100644 --- a/mediagoblin/init/config.py +++ b/mediagoblin/init/config.py @@ -73,7 +73,7 @@ def read_mediagoblin_config(config_path, config_spec=CONFIG_SPEC_PATH): # For now the validator just works with the default functions, # but in the future if we want to add additional validation/configuration # functions we'd add them to validator.functions here. - # + # # See also: # http://www.voidspace.org.uk/python/validate.html#adding-functions validator = Validator() diff --git a/mediagoblin/listings/routing.py b/mediagoblin/listings/routing.py index b72bd015..234f2595 100644 --- a/mediagoblin/listings/routing.py +++ b/mediagoblin/listings/routing.py @@ -25,4 +25,3 @@ tag_routes = [ Route('mediagoblin.listings.tag_atom_feed', "/{tag}/atom/", controller="mediagoblin.listings.views:tag_atom_feed"), ] - diff --git a/mediagoblin/listings/views.py b/mediagoblin/listings/views.py index b3384eb4..2d61ee9b 100644 --- a/mediagoblin/listings/views.py +++ b/mediagoblin/listings/views.py @@ -46,7 +46,7 @@ def tag_listing(request, page): {u'state': u'processed', u'tags.slug': tag_slug}) cursor = cursor.sort('created', DESCENDING) - + pagination = Pagination(page, cursor) media_entries = pagination() @@ -63,6 +63,7 @@ def tag_listing(request, page): ATOM_DEFAULT_NR_OF_UPDATED_ITEMS = 15 + def tag_atom_feed(request): """ generates the atom feed with the tag images diff --git a/mediagoblin/messages.py b/mediagoblin/messages.py index dc82fbf6..054d46c0 100644 --- a/mediagoblin/messages.py +++ b/mediagoblin/messages.py @@ -20,11 +20,13 @@ SUCCESS = 'success' WARNING = 'warning' ERROR = 'error' + def add_message(request, level, text): messages = request.session.setdefault('messages', []) messages.append({'level': level, 'text': text}) request.session.save() + def fetch_messages(request, clear_from_session=True): messages = request.session.get('messages') if messages and clear_from_session: diff --git a/mediagoblin/middleware/noop.py b/mediagoblin/middleware/noop.py index 28380232..820b5d9e 100644 --- a/mediagoblin/middleware/noop.py +++ b/mediagoblin/middleware/noop.py @@ -14,6 +14,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . + class NoOpMiddleware(object): def __init__(self, mg_app): diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py index 2b9eed6e..9a7d5c39 100644 --- a/mediagoblin/process_media/__init__.py +++ b/mediagoblin/process_media/__init__.py @@ -65,9 +65,10 @@ class ProcessMedia(Task): """ If the processing failed we should mark that in the database. - Assuming that the exception raised is a subclass of BaseProcessingFail, - we can use that to get more information about the failure and store that - for conveying information to users about the failure, etc. + Assuming that the exception raised is a subclass of + BaseProcessingFail, we can use that to get more information + about the failure and store that for conveying information to + users about the failure, etc. """ entry_id = args[0] mark_entry_failed(entry_id, exc) @@ -80,10 +81,10 @@ def mark_entry_failed(entry_id, exc): """ Mark a media entry as having failed in its conversion. - Uses the exception that was raised to mark more information. If the - exception is a derivative of BaseProcessingFail then we can store extra - information that can be useful for users telling them why their media failed - to process. + Uses the exception that was raised to mark more information. If + the exception is a derivative of BaseProcessingFail then we can + store extra information that can be useful for users telling them + why their media failed to process. Args: - entry_id: The id of the media entry @@ -164,7 +165,8 @@ def process_image(entry): with queued_file: original_filepath = create_pub_filepath(entry, queued_filepath[-1]) - with mgg.public_store.get_file(original_filepath, 'wb') as original_file: + with mgg.public_store.get_file(original_filepath, 'wb') \ + as original_file: original_file.write(queued_file.read()) mgg.queue_store.delete_file(queued_filepath) diff --git a/mediagoblin/process_media/errors.py b/mediagoblin/process_media/errors.py index 156f0a01..cb236154 100644 --- a/mediagoblin/process_media/errors.py +++ b/mediagoblin/process_media/errors.py @@ -16,17 +16,18 @@ from mediagoblin.util import lazy_pass_to_ugettext as _ + class BaseProcessingFail(Exception): """ Base exception that all other processing failure messages should subclass from. - + You shouldn't call this itself; instead you should subclass it and provid the exception_path and general_message applicable to this error. """ general_message = u'' - + @property def exception_path(self): return u"%s:%s" % ( @@ -34,8 +35,8 @@ class BaseProcessingFail(Exception): def __init__(self, **metadata): self.metadata = metadata or {} - - + + class BadMediaFail(BaseProcessingFail): """ Error that should be raised when an inappropriate file was given diff --git a/mediagoblin/storage/cloudfiles.py b/mediagoblin/storage/cloudfiles.py index b1dd9450..0d3cc3df 100644 --- a/mediagoblin/storage/cloudfiles.py +++ b/mediagoblin/storage/cloudfiles.py @@ -27,6 +27,7 @@ from mediagoblin.storage import StorageInterface, clean_listy_filepath import cloudfiles import mimetypes + class CloudFilesStorage(StorageInterface): ''' OpenStack/Rackspace Cloud's Swift/CloudFiles support diff --git a/mediagoblin/submit/__init__.py b/mediagoblin/submit/__init__.py index 576bd0f5..ba347c69 100644 --- a/mediagoblin/submit/__init__.py +++ b/mediagoblin/submit/__init__.py @@ -13,5 +13,3 @@ # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . - - diff --git a/mediagoblin/submit/security.py b/mediagoblin/submit/security.py index 9d62a36e..6708baf7 100644 --- a/mediagoblin/submit/security.py +++ b/mediagoblin/submit/security.py @@ -16,9 +16,9 @@ from mimetypes import guess_type - ALLOWED = ['image/jpeg', 'image/png', 'image/tiff', 'image/gif'] + def check_filetype(posted_file): if not guess_type(posted_file.filename)[0] in ALLOWED: return False diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index e24d78f3..22a13b6d 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -61,8 +61,8 @@ def submit_start(request): entry['description'] = unicode(request.POST.get('description')) entry['description_html'] = cleaned_markdown_conversion( entry['description']) - - entry['media_type'] = u'image' # heh + + entry['media_type'] = u'image' # heh entry['uploader'] = request.user['_id'] # Process the user's folksonomy "tags" @@ -90,8 +90,10 @@ def submit_start(request): # We generate this ourselves so we know what the taks id is for # retrieval later. - # (If we got it off the task's auto-generation, there'd be a risk of - # a race condition when we'd save after sending off the task) + + # (If we got it off the task's auto-generation, there'd be + # a risk of a race condition when we'd save after sending + # off the task) task_id = unicode(uuid.uuid4()) entry['queued_task_id'] = task_id @@ -113,8 +115,8 @@ def submit_start(request): # expect a lot of users to run things in this way we have to # capture stuff here. # - # ... not completely the diaper pattern because the exception is - # re-raised :) + # ... not completely the diaper pattern because the + # exception is re-raised :) mark_entry_failed(entry[u'_id'], exc) # re-raise the exception raise @@ -122,7 +124,7 @@ def submit_start(request): add_message(request, SUCCESS, _('Woohoo! Submitted!')) return redirect(request, "mediagoblin.user_pages.user_home", - user = request.user['username']) + user=request.user['username']) return render_to_response( request, diff --git a/mediagoblin/user_pages/__init__.py b/mediagoblin/user_pages/__init__.py index 576bd0f5..ba347c69 100644 --- a/mediagoblin/user_pages/__init__.py +++ b/mediagoblin/user_pages/__init__.py @@ -13,5 +13,3 @@ # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . - - diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 6a82d718..e6ba6b79 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -53,7 +53,7 @@ def user_home(request, page): #if no data is available, return NotFound if media_entries == None: return render_404(request) - + user_gallery_url = request.urlgen( 'mediagoblin.user_pages.user_gallery', user=user['username']) @@ -66,6 +66,7 @@ def user_home(request, page): 'media_entries': media_entries, 'pagination': pagination}) + @uses_pagination def user_gallery(request, page): """'Gallery' of a User()""" @@ -85,7 +86,7 @@ def user_gallery(request, page): #if no data is available, return NotFound if media_entries == None: return render_404(request) - + return render_to_response( request, 'mediagoblin/user_pages/gallery.html', @@ -95,6 +96,7 @@ def user_gallery(request, page): MEDIA_COMMENTS_PER_PAGE = 50 + @get_user_media_entry @uses_pagination def media_home(request, media, page, **kwargs): @@ -142,8 +144,8 @@ def media_post_comment(request): 'Comment posted!') return redirect(request, 'mediagoblin.user_pages.media_home', - media = request.matchdict['media'], - user = request.matchdict['user']) + media=request.matchdict['media'], + user=request.matchdict['user']) @get_user_media_entry @@ -184,6 +186,7 @@ def media_confirm_delete(request, media): ATOM_DEFAULT_NR_OF_UPDATED_ITEMS = 15 + def atom_feed(request): """ generates the atom feed with the newest images @@ -204,7 +207,7 @@ def atom_feed(request): feed = AtomFeed(request.matchdict['user'], feed_url=request.url, url=request.host_url) - + for entry in cursor: feed.add(entry.get('title'), entry.get('description_html'), diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 7ff3ec7f..4132b497 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -45,6 +45,8 @@ from itertools import izip, count DISPLAY_IMAGE_FETCHING_ORDER = [u'medium', u'original', u'thumb'] TESTS_ENABLED = False + + def _activate_testing(): """ Call this to activate testing in util.py @@ -78,7 +80,7 @@ SETUP_JINJA_ENVS = {} def get_jinja_env(template_loader, locale): """ - Set up the Jinja environment, + Set up the Jinja environment, (In the future we may have another system for providing theming; for now this is good enough.) @@ -147,7 +149,7 @@ def render_to_response(request, template, context, status=200): def redirect(request, *args, **kwargs): """Returns a HTTPFound(), takes a request and then urlgen params""" - + querystring = None if kwargs.get('querystring'): querystring = kwargs.get('querystring') @@ -197,6 +199,7 @@ def import_component(import_string): _punct_re = re.compile(r'[\t !"#$%&\'()*\-/<=>?@\[\\\]^_`{|},.]+') + def slugify(text, delim=u'-'): """ Generates an ASCII-only slug. Taken from http://flask.pocoo.org/snippets/5/ @@ -213,7 +216,7 @@ def slugify(text, delim=u'-'): ### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # We have two "test inboxes" here: -# +# # EMAIL_TEST_INBOX: # ---------------- # If you're writing test views, you'll probably want to check this. @@ -233,7 +236,7 @@ def slugify(text, delim=u'-'): # ***IMPORTANT!*** # ---------------- # Before running tests that call functions which send email, you should -# always call _clear_test_inboxes() to "wipe" the inboxes clean. +# always call _clear_test_inboxes() to "wipe" the inboxes clean. EMAIL_TEST_INBOX = [] EMAIL_TEST_MBOX_INBOX = [] @@ -253,6 +256,7 @@ class FakeMhost(object): 'to': to_addrs, 'message': message}) + def _clear_test_inboxes(): global EMAIL_TEST_INBOX global EMAIL_TEST_MBOX_INBOX @@ -263,6 +267,7 @@ def _clear_test_inboxes(): ### ### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + def send_email(from_addr, to_addrs, subject, message_body): """ Simple email sending wrapper, use this so we can capture messages @@ -418,7 +423,7 @@ def convert_to_tag_list_of_dicts(tag_string): # Split the tag string into a list of tags for tag in stripped_tag_string.split( - mg_globals.app_config['tags_delimiter']): + mg_globals.app_config['tags_delimiter']): # Ignore empty or duplicate tags if tag.strip() and tag.strip() not in [t['name'] for t in taglist]: @@ -437,12 +442,13 @@ def media_tags_as_string(media_entry_tags): media_tag_string = '' if media_entry_tags: media_tag_string = mg_globals.app_config['tags_delimiter'].join( - [tag['name'] for tag in media_entry_tags]) + [tag['name'] for tag in media_entry_tags]) return media_tag_string TOO_LONG_TAG_WARNING = \ u'Tags must be shorter than %s characters. Tags that are too long: %s' + def tag_length_validator(form, field): """ Make sure tags do not exceed the maximum tag length. @@ -460,6 +466,7 @@ def tag_length_validator(form, field): MARKDOWN_INSTANCE = markdown.Markdown(safe_mode='escape') + def cleaned_markdown_conversion(text): """ Take a block of text, run it through MarkDown, and clean its HTML. @@ -474,6 +481,7 @@ def cleaned_markdown_conversion(text): SETUP_GETTEXTS = {} + def setup_gettext(locale): """ Setup the gettext instance based on this locale @@ -558,6 +566,7 @@ def fake_ugettext_passthrough(string): PAGINATION_DEFAULT_PER_PAGE = 30 + class Pagination(object): """ Pagination class for mongodb queries. @@ -574,9 +583,9 @@ class Pagination(object): Args: - page: requested page - per_page: number of objects per page - - cursor: db cursor - - jump_to_id: ObjectId, sets the page to the page containing the object - with _id == jump_to_id. + - cursor: db cursor + - jump_to_id: ObjectId, sets the page to the page containing the + object with _id == jump_to_id. """ self.page = page self.per_page = per_page @@ -594,7 +603,6 @@ class Pagination(object): self.active_id = jump_to_id break - def __call__(self): """ Returns slice of objects for the requested page @@ -628,20 +636,18 @@ class Pagination(object): last = num def get_page_url_explicit(self, base_url, get_params, page_no): - """ - Get a page url by adding a page= parameter to the base url - """ + """Get a page url by adding a page= parameter to the base url + """ new_get_params = copy.copy(get_params or {}) new_get_params['page'] = page_no return "%s?%s" % ( base_url, urllib.urlencode(new_get_params)) def get_page_url(self, request, page_no): - """ - Get a new page url based of the request, and the new page number. + """Get a new page url based of the request, and the new page number. This is a nice wrapper around get_page_url_explicit() - """ + """ return self.get_page_url_explicit( request.path_info, request.GET, page_no) @@ -682,6 +688,7 @@ def render_404(request): return render_to_response( request, 'mediagoblin/404.html', {}, status=400) + def delete_media_files(media): """ Delete all files associated with a MediaEntry diff --git a/mediagoblin/views.py b/mediagoblin/views.py index 96687f96..afa6ac91 100644 --- a/mediagoblin/views.py +++ b/mediagoblin/views.py @@ -19,6 +19,7 @@ from mediagoblin.util import render_to_response, Pagination from mediagoblin.db.util import DESCENDING from mediagoblin.decorators import uses_pagination + @uses_pagination def root_view(request, page): cursor = request.db.MediaEntry.find( diff --git a/mediagoblin/workbench.py b/mediagoblin/workbench.py index 722f8e27..60a79f47 100644 --- a/mediagoblin/workbench.py +++ b/mediagoblin/workbench.py @@ -42,8 +42,10 @@ class Workbench(object): def __unicode__(self): return unicode(self.dir) + def __str__(self): return str(self.dir) + def __repr__(self): return repr(self.dir) @@ -140,7 +142,7 @@ class WorkbenchManager(object): self.base_workbench_dir = os.path.abspath(base_workbench_dir) if not os.path.exists(self.base_workbench_dir): os.makedirs(self.base_workbench_dir) - + def create_workbench(self): """ Create and return the path to a new workbench (directory). diff --git a/setup.py b/setup.py index 06626926..11c8fe6c 100644 --- a/setup.py +++ b/setup.py @@ -29,16 +29,17 @@ def get_version(): if mo: return mo.group(1) else: - raise RuntimeError("Unable to find version string in %s." % VERSIONFILE) + raise RuntimeError("Unable to find version string in %s." % + VERSIONFILE) setup( - name = "mediagoblin", - version = get_version(), + name="mediagoblin", + version=get_version(), packages=find_packages(exclude=['ez_setup', 'examples', 'tests']), zip_safe=False, # scripts and dependencies - install_requires = [ + install_requires=[ 'setuptools', 'PasteScript', 'beaker', @@ -66,7 +67,7 @@ setup( # 'lxml', ], test_suite='nose.collector', - entry_points = """\ + entry_points="""\ [console_scripts] gmg = mediagoblin.gmg_commands:main_cli pybabel = mediagoblin.babel.messages.frontend:main @@ -83,7 +84,6 @@ setup( [babel.extractors] jinja2 = jinja2.ext:babel_extract """, - license='AGPLv3', author='Free Software Foundation and contributors', author_email='cwebber@gnu.org', From 285ffeddf3542201b83072d3be544c85e9c487c2 Mon Sep 17 00:00:00 2001 From: Nathan Yergler Date: Sat, 1 Oct 2011 15:10:41 -0700 Subject: [PATCH 1041/2731] has_key is deprecated, converting uses to use "in" operator. --- mediagoblin/auth/views.py | 4 ++-- mediagoblin/db/util.py | 2 +- mediagoblin/gmg_commands/__init__.py | 2 +- mediagoblin/init/__init__.py | 4 ++-- mediagoblin/init/celery/__init__.py | 10 +++++----- mediagoblin/staticdirect.py | 6 +++--- mediagoblin/submit/views.py | 2 +- mediagoblin/util.py | 16 ++++++++-------- 8 files changed, 23 insertions(+), 23 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index afcfcf1e..adf2c315 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -146,7 +146,7 @@ def verify_email(request): you are lucky :) """ # If we don't have userid and token parameters, we can't do anything; 404 - if not request.GET.has_key('userid') or not request.GET.has_key('token'): + if not 'userid' in request.GET or not 'token' in request.GET: return render_404(request) user = request.db.User.find_one( @@ -307,6 +307,6 @@ def _process_for_token(request): formdata = { 'vars': formdata_vars, 'has_userid_and_token': - formdata_vars.has_key('userid') and formdata_vars.has_key('token')} + 'userid' in formdata_vars and 'token' in formdata_vars} return formdata diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index 38f0233f..52e97f6d 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -148,7 +148,7 @@ class RegisterMigration(object): """ def __init__(self, migration_number, migration_registry=MIGRATIONS): assert migration_number > 0, "Migration number must be > 0!" - assert not migration_registry.has_key(migration_number), \ + assert migration_number not in migration_registry, \ "Duplicate migration numbers detected! That's not allowed!" self.migration_number = migration_number diff --git a/mediagoblin/gmg_commands/__init__.py b/mediagoblin/gmg_commands/__init__.py index b3f69ccc..3250c246 100644 --- a/mediagoblin/gmg_commands/__init__.py +++ b/mediagoblin/gmg_commands/__init__.py @@ -61,7 +61,7 @@ def main_cli(): subparsers = parser.add_subparsers(help='sub-command help') for command_name, command_struct in SUBCOMMAND_MAP.iteritems(): - if command_struct.has_key('help'): + if 'help' in command_struct: subparser = subparsers.add_parser( command_name, help=command_struct['help']) else: diff --git a/mediagoblin/init/__init__.py b/mediagoblin/init/__init__.py index f21e2fdd..08a0618d 100644 --- a/mediagoblin/init/__init__.py +++ b/mediagoblin/init/__init__.py @@ -103,10 +103,10 @@ def get_jinja_loader(user_template_path=None): def get_staticdirector(app_config): - if app_config.has_key('direct_remote_path'): + if 'direct_remote_path' in app_config: return staticdirect.RemoteStaticDirect( app_config['direct_remote_path'].strip()) - elif app_config.has_key('direct_remote_paths'): + elif 'direct_remote_paths' in app_config: direct_remote_path_lines = app_config[ 'direct_remote_paths'].strip().splitlines() return staticdirect.MultiRemoteStaticDirect( diff --git a/mediagoblin/init/celery/__init__.py b/mediagoblin/init/celery/__init__.py index 21ce1d39..f7ef9f39 100644 --- a/mediagoblin/init/celery/__init__.py +++ b/mediagoblin/init/celery/__init__.py @@ -40,25 +40,25 @@ def setup_celery_from_config(app_config, global_config, - set_environ: if set, this will CELERY_CONFIG_MODULE to the settings_module """ - if global_config.has_key('celery'): + if 'celery' in global_config: celery_conf = global_config['celery'] else: celery_conf = {} - + celery_settings = {} # set up mongodb stuff celery_settings['CELERY_RESULT_BACKEND'] = 'mongodb' - if not celery_settings.has_key('BROKER_BACKEND'): + if 'BROKER_BACKEND' not in celery_settings: celery_settings['BROKER_BACKEND'] = 'mongodb' celery_mongo_settings = {} - if app_config.has_key('db_host'): + if 'db_host' in app_config: celery_mongo_settings['host'] = app_config['db_host'] if celery_settings['BROKER_BACKEND'] == 'mongodb': celery_settings['BROKER_HOST'] = app_config['db_host'] - if app_config.has_key('db_port'): + if 'db_port' in app_config: celery_mongo_settings['port'] = app_config['db_port'] if celery_settings['BROKER_BACKEND'] == 'mongodb': celery_settings['BROKER_PORT'] = app_config['db_port'] diff --git a/mediagoblin/staticdirect.py b/mediagoblin/staticdirect.py index 58175881..c6d2b374 100644 --- a/mediagoblin/staticdirect.py +++ b/mediagoblin/staticdirect.py @@ -21,24 +21,24 @@ import urlparse # Staticdirect infrastructure. # Borrowed largely from cc.engine # by Chris Webber & Creative Commons -# +# # This needs documentation! #################################### import pkg_resources import urlparse + class StaticDirect(object): def __init__(self): self.cache = {} def __call__(self, filepath): - if self.cache.has_key(filepath): + if filepath in self.cache: return self.cache[filepath] static_direction = self.cache[filepath] = self.get(filepath) return static_direction - def get(self, filepath): # should be implemented by the individual staticdirector diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 22a13b6d..d450ca21 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -40,7 +40,7 @@ def submit_start(request): submit_form = submit_forms.SubmitStartForm(request.POST) if request.method == 'POST' and submit_form.validate(): - if not (request.POST.has_key('file') + if not ('file' in request.POST and isinstance(request.POST['file'], FieldStorage) and request.POST['file'].file): submit_form.file.errors.append( diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 4132b497..d6ce5930 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -89,7 +89,7 @@ def get_jinja_env(template_loader, locale): # If we have a jinja environment set up with this locale, just # return that one. - if SETUP_JINJA_ENVS.has_key(locale): + if locale in SETUP_JINJA_ENVS: return SETUP_JINJA_ENVS[locale] template_env = jinja2.Environment( @@ -166,7 +166,7 @@ def setup_user_in_request(request): Examine a request and tack on a request.user parameter if that's appropriate. """ - if not request.session.has_key('user_id'): + if not 'user_id' in request.session: request.user = None return @@ -356,7 +356,7 @@ def get_locale_from_request(request): """ request_form = request.GET or request.POST - if request_form.has_key('lang'): + if 'lang' in request_form: return locale_to_lower_upper(request_form['lang']) accept_lang_matches = request.accept_language.best_matches() @@ -364,9 +364,9 @@ def get_locale_from_request(request): # Your routing can explicitly specify a target language matchdict = request.matchdict or {} - if matchdict.has_key('locale'): + if 'locale' in matchdict: target_lang = matchdict['locale'] - elif request.session.has_key('target_lang'): + elif 'target_lang' in request.session: target_lang = request.session['target_lang'] # Pull the first acceptable language elif accept_lang_matches: @@ -393,9 +393,9 @@ HTML_CLEANER = Cleaner( annoying_tags=True, allow_tags=[ 'div', 'b', 'i', 'em', 'strong', 'p', 'ul', 'ol', 'li', 'a', 'br'], - remove_unknown_tags=False, # can't be used with allow_tags + remove_unknown_tags=False, # can't be used with allow_tags safe_attrs_only=True, - add_nofollow=True, # for now + add_nofollow=True, # for now host_whitelist=(), whitelist_tags=set([])) @@ -492,7 +492,7 @@ def setup_gettext(locale): # TODO: fallback nicely on translations from pt_PT to pt if not # available, etc. - if SETUP_GETTEXTS.has_key(locale): + if locale in SETUP_GETTEXTS: this_gettext = SETUP_GETTEXTS[locale] else: this_gettext = gettext.translation( From 84a7e7706c8b1239f8fd52c604afbb10c776ac04 Mon Sep 17 00:00:00 2001 From: Aaron Williamson Date: Sat, 1 Oct 2011 19:49:56 -0400 Subject: [PATCH 1042/2731] Display and error and redirect to login page if unauthenticated user tries to access resend_verification. --- mediagoblin/auth/views.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index b6f38fec..d91a1f25 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -21,7 +21,7 @@ from webob import exc from mediagoblin import messages from mediagoblin import mg_globals -from mediagoblin.util import render_to_response, redirect, render_404 +from mediagoblin.util import render_to_response, redirect, render_404, setup_user_in_request from mediagoblin.util import pass_to_ugettext as _ from mediagoblin.db.util import ObjectId, InvalidId from mediagoblin.auth import lib as auth_lib @@ -195,9 +195,18 @@ def resend_activation(request): Resend the activation email. """ + + if not request.GET.has_key('userid') or not request.GET.has_key('token'): + messages.add_message( + request, + messages.ERROR, + _('You must be logged in so we know who to send the email to!')) + + return redirect(request, "/auth/login") + request.user[u'verification_key'] = unicode(uuid.uuid4()) request.user.save() - + email_debug_message(request) send_verification_email(request.user, request) From f1360855319612a9af3c03ae4ca04fef6660f6b0 Mon Sep 17 00:00:00 2001 From: Aaron Williamson Date: Sat, 1 Oct 2011 19:52:12 -0400 Subject: [PATCH 1043/2731] Regenerated English .po file to include new string. --- .../i18n/en/LC_MESSAGES/mediagoblin.po | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po index 16a235a2..3c176a14 100644 --- a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-09-25 20:26-0500\n" +"POT-Creation-Date: 2011-10-01 19:51-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -41,33 +41,37 @@ msgstr "" msgid "Email address" msgstr "" -#: mediagoblin/auth/views.py:42 +#: mediagoblin/auth/views.py:55 msgid "Sorry, registration is disabled on this instance." msgstr "" -#: mediagoblin/auth/views.py:60 +#: mediagoblin/auth/views.py:73 msgid "Sorry, a user with that name already exists." msgstr "" -#: mediagoblin/auth/views.py:64 +#: mediagoblin/auth/views.py:77 msgid "Sorry, that email address has already been taken." msgstr "" -#: mediagoblin/auth/views.py:165 +#: mediagoblin/auth/views.py:179 msgid "" "Your email address has been verified. You may now login, edit your " "profile, and submit images!" msgstr "" -#: mediagoblin/auth/views.py:171 +#: mediagoblin/auth/views.py:185 msgid "The verification key or user id is incorrect" msgstr "" -#: mediagoblin/auth/views.py:192 +#: mediagoblin/auth/views.py:203 +msgid "You must be logged in so we know who to send the email to!" +msgstr "" + +#: mediagoblin/auth/views.py:216 msgid "Resent your verification email." msgstr "" -#: mediagoblin/auth/views.py:228 +#: mediagoblin/auth/views.py:257 msgid "" "Could not send password recovery email as your username is inactive or " "your account's email address has not been verified." From 88233cb282ceacd4c9e8cac419faf952627e7fe2 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 1 Oct 2011 21:30:41 -0500 Subject: [PATCH 1044/2731] Fixing indentation in start.html --- mediagoblin/templates/mediagoblin/submit/start.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/submit/start.html b/mediagoblin/templates/mediagoblin/submit/start.html index 7bc6ff45..29b01181 100644 --- a/mediagoblin/templates/mediagoblin/submit/start.html +++ b/mediagoblin/templates/mediagoblin/submit/start.html @@ -26,8 +26,8 @@

{% trans %}Submit yer media{% endtrans %}

{{ wtforms_util.render_divs(submit_form) }}
- {{ csrf_token }} - + {{ csrf_token }} +
From 4d7a93a49303344830021bab5a741148b1adb7c3 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 1 Oct 2011 21:31:14 -0500 Subject: [PATCH 1045/2731] Adding csrf token fields to the forgot password calls --- mediagoblin/templates/mediagoblin/auth/change_fp.html | 2 ++ mediagoblin/templates/mediagoblin/auth/forgot_password.html | 2 ++ 2 files changed, 4 insertions(+) diff --git a/mediagoblin/templates/mediagoblin/auth/change_fp.html b/mediagoblin/templates/mediagoblin/auth/change_fp.html index 4be7e065..53186cec 100644 --- a/mediagoblin/templates/mediagoblin/auth/change_fp.html +++ b/mediagoblin/templates/mediagoblin/auth/change_fp.html @@ -23,6 +23,8 @@
+ {{ csrf_token }} +

{% trans %}Enter your new password{% endtrans %}

diff --git a/mediagoblin/templates/mediagoblin/auth/forgot_password.html b/mediagoblin/templates/mediagoblin/auth/forgot_password.html index 23fa9eb5..b95a4dcb 100644 --- a/mediagoblin/templates/mediagoblin/auth/forgot_password.html +++ b/mediagoblin/templates/mediagoblin/auth/forgot_password.html @@ -23,6 +23,8 @@ + {{ csrf_token }} +

{% trans %}Enter your username or email{% endtrans %}

From 05788ef450cd63da4009cea1825323e10e572e43 Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 3 Oct 2011 14:01:13 +0200 Subject: [PATCH 1046/2731] i592: Use full path in various places When running mediagoblin in a sub path on a web server, most things inside mediagoblin need the "inside path", but when generating URLs for the webbrowser, full paths are needed. urlgen and routes already do that. Some (mostly pagination and login) need the URL of the current page. They used request.path_info. But this is the "inside" path, not the full. So now there is request.full_path and its used in various places. --- mediagoblin/app.py | 11 +++++++++++ mediagoblin/decorators.py | 2 +- .../templates/mediagoblin/utils/pagination.html | 2 +- mediagoblin/tools/pagination.py | 2 +- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 0f25a4e5..f052d4a2 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -117,6 +117,17 @@ class MediaGoblinApp(object): path_info = request.path_info route_match = self.routing.match(path_info) + # By using fcgi, mediagoblin can run under a base path + # like /mediagoblin/. request.path_info contains the + # path inside mediagoblin. If the something needs the + # full path of the current page, that should include + # the basepath. + # Note: urlgen and routes are fine! + request.full_path = environ["SCRIPT_NAME"] + request.path_info + # python-routes uses SCRIPT_NAME. So let's use that too. + # The other option would be: + # request.full_path = environ["SCRIPT_URL"] + ## Attach utilities to the request object request.matchdict = route_match request.urlgen = routes.URLGenerator(self.routing, environ) diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index 19e22bca..6431d67e 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -45,7 +45,7 @@ def require_active_login(controller): return exc.HTTPFound( location="%s?next=%s" % ( request.urlgen("mediagoblin.auth.login"), - request.path_info)) + request.full_path)) return controller(request, *args, **kwargs) diff --git a/mediagoblin/templates/mediagoblin/utils/pagination.html b/mediagoblin/templates/mediagoblin/utils/pagination.html index 0df3bfea..84336103 100644 --- a/mediagoblin/templates/mediagoblin/utils/pagination.html +++ b/mediagoblin/templates/mediagoblin/utils/pagination.html @@ -21,7 +21,7 @@ {# only display if {{pagination}} is defined #} {% if pagination and pagination.pages > 1 %} {% if not base_url %} - {% set base_url = request.path_info %} + {% set base_url = request.full_path %} {% endif %} {% if preserve_get_params %} diff --git a/mediagoblin/tools/pagination.py b/mediagoblin/tools/pagination.py index 859b60fb..3ea96e6d 100644 --- a/mediagoblin/tools/pagination.py +++ b/mediagoblin/tools/pagination.py @@ -106,4 +106,4 @@ class Pagination(object): This is a nice wrapper around get_page_url_explicit() """ return self.get_page_url_explicit( - request.path_info, request.GET, page_no) + request.full_path, request.GET, page_no) From 3b74ce94ff90e0bd5b214891becb62a6fc503434 Mon Sep 17 00:00:00 2001 From: Aaron Williamson Date: Mon, 3 Oct 2011 19:59:28 -0400 Subject: [PATCH 1047/2731] Check request.user to determine if user is logged in. --- mediagoblin/auth/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index d91a1f25..fdc5aec8 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -196,7 +196,7 @@ def resend_activation(request): Resend the activation email. """ - if not request.GET.has_key('userid') or not request.GET.has_key('token'): + if request.user is None: messages.add_message( request, messages.ERROR, From 7903a14f986b5bf37a45d5ec3b156c21a1cada72 Mon Sep 17 00:00:00 2001 From: Aaron Williamson Date: Mon, 3 Oct 2011 20:25:11 -0400 Subject: [PATCH 1048/2731] Make sure user isn't already verified before resending verification. --- mediagoblin/auth/views.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 798fae25..dc4c540b 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -196,6 +196,14 @@ def resend_activation(request): Resend the activation email. """ + if request.user["email_verified"]: + messages.add_message( + request, + messages.ERROR, + _("You've already verified your email address!")) + + return redirect(request, "mediagoblin.user_pages.user_home", user=request.user['username']) + if request.user is None: messages.add_message( request, From 2fe6991660cd1a20f9117b0cdc88431085eb7490 Mon Sep 17 00:00:00 2001 From: Aaron Williamson Date: Mon, 3 Oct 2011 20:28:48 -0400 Subject: [PATCH 1049/2731] Reverse order of sanity checks: check email_verified after making sure there's a user in the request. --- mediagoblin/auth/views.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index dc4c540b..d8c441ef 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -196,14 +196,6 @@ def resend_activation(request): Resend the activation email. """ - if request.user["email_verified"]: - messages.add_message( - request, - messages.ERROR, - _("You've already verified your email address!")) - - return redirect(request, "mediagoblin.user_pages.user_home", user=request.user['username']) - if request.user is None: messages.add_message( request, @@ -212,6 +204,14 @@ def resend_activation(request): return redirect(request, "/auth/login") + if request.user["email_verified"]: + messages.add_message( + request, + messages.ERROR, + _("You've already verified your email address!")) + + return redirect(request, "mediagoblin.user_pages.user_home", user=request.user['username']) + request.user[u'verification_key'] = unicode(uuid.uuid4()) request.user.save() From c302bcd918302347f89b2c06c141db89d0c55848 Mon Sep 17 00:00:00 2001 From: Aaron Williamson Date: Mon, 3 Oct 2011 20:47:39 -0400 Subject: [PATCH 1050/2731] Checkbox label is being translated in the form definition -- translating it in the template is redundant and breaks
{% endblock %} From 1b36a8e80c09307a2c4ddf8cc8bfe786a9d86f7d Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 4 Nov 2011 02:20:26 +0100 Subject: [PATCH 1134/2731] On second thought, let's use this title for forgot_password.html --- mediagoblin/templates/mediagoblin/auth/forgot_password.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/auth/forgot_password.html b/mediagoblin/templates/mediagoblin/auth/forgot_password.html index c7f01678..9b821426 100644 --- a/mediagoblin/templates/mediagoblin/auth/forgot_password.html +++ b/mediagoblin/templates/mediagoblin/auth/forgot_password.html @@ -24,7 +24,7 @@ method="POST" enctype="multipart/form-data"> {{ csrf_token }}
-

{% trans %}Forgot your password?{% endtrans %}

+

{% trans %}Recover password{% endtrans %}

{{ wtforms_util.render_divs(fp_form) }}
From 80c9a7ee51590923a3b9f7a07419679af4a368d8 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 4 Nov 2011 02:30:07 +0100 Subject: [PATCH 1135/2731] Small style changes to navigation buttons --- mediagoblin/static/css/base.css | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index b026a819..23a7e6c5 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -290,11 +290,14 @@ img.media_icon{ /* navigation */ .navigation_button{ - width: 139px; + width: 135px; display: block; float: left; text-align: center; - background-color: #222; + background-color: #1d1d1d; + border: 1px solid; + border-color: #2c2c2c #232323 #1a1a1a; + border-radius: 3px; text-decoration: none; padding: 12px 0pt; font-size: 2em; @@ -306,7 +309,7 @@ p.navigation_button{ } .navigation_left{ - margin-right: 2px; + margin-right: 6px; } /* messages */ From da76a8cbaa06ba63533f60051c66f08cd0e7baf4 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 4 Nov 2011 02:34:00 +0100 Subject: [PATCH 1136/2731] Tiny padding change to vertically center navigation button arrows --- mediagoblin/static/css/base.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 23a7e6c5..afd10207 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -299,7 +299,7 @@ img.media_icon{ border-color: #2c2c2c #232323 #1a1a1a; border-radius: 3px; text-decoration: none; - padding: 12px 0pt; + padding: 8px 0px 14px; font-size: 2em; margin: 0 0 20px } From d871f4e0d107268fab9dc33c648b1a6f7a99a652 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 4 Nov 2011 08:23:28 -0500 Subject: [PATCH 1137/2731] Updating translations --- .../i18n/de/LC_MESSAGES/mediagoblin.mo | Bin 11089 -> 11119 bytes .../i18n/de/LC_MESSAGES/mediagoblin.po | 14 +- .../i18n/fr/LC_MESSAGES/mediagoblin.mo | Bin 11272 -> 11583 bytes .../i18n/fr/LC_MESSAGES/mediagoblin.po | 92 ++-- .../i18n/ro/LC_MESSAGES/mediagoblin.mo | Bin 11051 -> 11067 bytes .../i18n/ro/LC_MESSAGES/mediagoblin.po | 8 +- .../i18n/ru/LC_MESSAGES/mediagoblin.mo | Bin 13895 -> 13899 bytes .../i18n/ru/LC_MESSAGES/mediagoblin.po | 6 +- .../i18n/te/LC_MESSAGES/mediagoblin.mo | Bin 0 -> 10812 bytes .../i18n/te/LC_MESSAGES/mediagoblin.po | 498 ++++++++++++++++++ 10 files changed, 568 insertions(+), 50 deletions(-) create mode 100644 mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.mo create mode 100644 mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.po diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo index b65212ebe441861fa088710063c6b1713fc3fc3b..056e3ecaac4d6dbbadcfc480f2279b81df03f85c 100644 GIT binary patch delta 1066 zcmYMyO-NKx6u|Lg<=157XZA6TuQW41O2f!3HIjlzNGWWggl}fv=yRMq^4_z+MbpP3 zT4-1hTBJcqTWK~$MU*=ss9gmT)U;?3F04%u^}mhOFwF1X^WMGZ+{w37{wmEfKB)TPh!y)k!lQKE{>xQC(*+DEAd>v z$Xez_cn-__lK8ve7J*U%_fQw|7;oTf%)`E|BGe)=q*l3#ML3Om-6N!CS-=APjMOGS zunhA9BI~do*-~1u0(%09^ad9RR1uiO?f4RNFol`;4Ryk0?8R($U5{bhiyrENAL3VR zHbiQ$Vw*?_cH$I9Fo-${uSzJvK%d|Ww%{GqiQgl+pifEAkt4 zVU_f&4ZBb$p1@38z(#z7I#K4X^twXKVSWJh4IaT`(k^m_flf5N;v$}6?k9`BkztJE z80v(-P@k-Y2J6C)C#SMX3Jx~xYi?+&spsSCFkP?iv|}oF$n@e)voUNtre~>PQ-w|A zP|#9?X3SQHhpeD$s)(2TQaZRM6tg|UvXvDxI&2j+`Yks!V27e!t)ZWUiHAqPRz|1k zy65ALXUsoPVariQ)Ktp#cFT!)EM_UsbpDTw0b7lZ^jnenXZ>FCu75V8yu-2_%lP-M gWw^Eq8_Et1P=GUJjs(4%eSyAJ^E1g;f$MpH0C4-Q8~^|S delta 1019 zcmXZaPe>GT6u|LkrI{IY!x*FBm5fATWVi$P7;63oOO%?IP47eMqg6#?3g6l{k&mEYGnF-y*fi zC#=C=xB)9eB5W!3sPU7btiM5&z#al)xC0+!G0tNlzC%s8fc?0HT5uP;G-Cv{;5)d4 zK_k+DMYSU3*o@P73ZwWHc~rt#vgsSxcnq(jCVq|NkT<9sd_!%)Z`2bi-AP-p7WK`V zu?Rbm)0S>ri?O_esQbEDhu1KL*+&fSF$fUVqj`vWbgxi*x`0}M)cd`yz{^Yxw&87T z#5vS&Vi}KP{Vu=PanwSG^4>yi=_GPxWrly&$UM>}S;n(ivfJONAH&QaAh+ZTYGK9n z>jbu-CU&t9pJFS{q9*!|y6z_yWA$GD1naO%Iz^5!(28&7ox^j?|Dv8qFWDS)P!oPe z{fcX7uom8sn=UFZYinw4Kh)CD#IK~sa=rb187u83Ezilco7jjQjoKM=G(YHw54+xI zEa?o#b4!(1*MtUaH+Cfv8}v*n;Tb!T=Hc_bJ&k5KW#aafWh$x;$Z02)veTZGkxqYP wh8)+kbUoM*si- diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po index 5baab62e..5c4ef0d0 100644 --- a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po @@ -16,8 +16,8 @@ msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" "POT-Creation-Date: 2011-11-01 23:14-0500\n" -"PO-Revision-Date: 2011-11-02 04:13+0000\n" -"Last-Translator: cwebber \n" +"PO-Revision-Date: 2011-11-02 15:18+0000\n" +"Last-Translator: piratenpanda \n" "Language-Team: German (http://www.transifex.net/projects/p/mediagoblin/team/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -259,7 +259,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:38 msgid "Excited to join us?" -msgstr "Neugierig dich uns anzuschliessen?" +msgstr "Neugierig dich uns anzuschließen?" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format @@ -292,8 +292,8 @@ msgstr "Dein Passwort wurde geändert. Versuche dich jetzt einzuloggen." msgid "" "Check your inbox. We sent an email with a URL for changing your password." msgstr "" -"Prüfe deinen Posteingang. Wir haben dir eine Email geschickt mit einer URL, " -"um dein Passwort zu ändern." +"Prüfe deinen Posteingang. Wir haben dir eine Email mit einem Link geschickt," +" mit dem du dein Passwort ändern kannst." #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format @@ -539,11 +539,11 @@ msgstr "Ja, wirklich löschen" #: mediagoblin/user_pages/views.py:142 msgid "Empty comments are not allowed." -msgstr "" +msgstr "Leere Kommentare sind nicht erlaubt." #: mediagoblin/user_pages/views.py:148 msgid "Comment posted!" -msgstr "" +msgstr "Kommentar hinzugefügt!" #: mediagoblin/user_pages/views.py:181 msgid "You are about to delete another user's media. Proceed with caution." diff --git a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo index eaa18426582b2bd390213b24a816e85dab128988..90e833039023edeafae9a63dc03855e1fec26bb7 100644 GIT binary patch delta 2652 zcmZXVU2GiH700iWkl>{>!O(oTj(zQftWE4~+M1LaH)((nCD=)DKGZL$#*i zb7!`()pmtcMWt1d&>)a_Aq`L43JSOdq#z+!NFPd7sD%1bRq8`&d5TaUs=z}w-y zy-Ix-o`93^J@^Rh{;X0D!g<&YUxe%7>oA6Iz)f(hPpMDAyWwN-zCP7bx3GAJjUo6x z&Cfp3)gZtqh;ZNc1TB(1-UqRV_ncL*M zzrknWW}^HK{27#chFZIn8fS3`-UFLZQuGT*71SG0BK;7Gp=DQc zei6O^_rX8I3D|>miF_K07JdN5!6#OD8E)YDRmgoUb%ljo_z@h1-NU3A?uQ5AMfeqX z70Lx0MwDWy4#EYv0L76H;7#x*tj@q&plIe%NGvLbH^ZmlHuxO$)B{Sr#^MwkJN7E| zb=ZJX<6lD!cjDDWcmN)Q@4{Q*76hYV|Jd@g8+&d$G_F6tZ(`rwd-w5InetpZb~^Dw z7kFuuOlW_>xXjkQMUy3Z^7^N*E_w@5RGUkdKi<~UHQH&LB|V>bX=YQ?Fkz}qsQsuB zr)KhV-hql<`-`%CV8`jPqoGT^AmFQMQ@7rcXg08+c3jhp(!}UEiDKYP(llBA%#O*2 zjf*|s=(^E<(rJ6CjpT+P@Ma_KwR3txH=>YlmoVY1;*(p)Add} zu}$1{IlcsG{ty6-Fsm25?e{bjB1nWIKrn{%aP76Q$0AM15eL&+G3~l zVNjjqp7WW}b2hYk`D*WMS8Hi3FnUm(HHn?Gg+~(9Y}9!%EkYmy-^3C_O&^akhs*qU z%_wwat{E+M+ByrhX?QkZ+xR>geP(8=JQ$06Y3h+@$;W~h&YRWDHKJ61iQU+9&eYWX zQA6tC*~F-`MQSO_>W=nwr=4*%wQ;E?|Gt!n0!S)#P%R_ln;XuCRZri6<11cKC&?ex%J=LX8$XrBabg>I zL-r-vQZorfJz$)lSn@en)(f4aiPt1~`S*8TZcS0`>!K#xw$2tAbtpzMrM(QnTi0p3 znmSynh>*i5YZ@=RA->hurQ>1LAWKs)W zJAF_cz7PjdViNVB^%pEWTPgw3L>Wy%RZ4R=d*_()p!ZQPOWhF$fY3Iw>Ebo$#u9&D)?i_9w z>h_B^_;!{ABd$`foU&!4u?Zb^&u3K>?5f_pMIu#Eu}Kp0G^*`kb#WBdS45)I#kgqT1|z_FHFc_r zltP3jrJM4!pT9NqlfKhYCJm8<>^j|$38!dt(b9$7?9!VKg+6`Y@*nMLZCtD3_FV6- zERXO0&$<)%Qz#1;=q~xbEJ;zOnl3a#vouK`No+9PilHk?o;41UNlIwo6(!`~tIl*U z%6uV1_52UjL77fRgQ5jYLt0%vT|2>@MSMEwTpBG~DyUi+*|bZoR#W&#gRRbb?(*p; z?;K$Ry4PQbGMOh+!@D;yhQd4^9vUzq`84G*UY^e)%TEy^E~oj+!@a%3<)IO(k1DJ* zsK|VdPX1{4-Y&g7IC62_$+N{EyP+diCs`43r(M&Bo#X$lCCvy$wc*OFEV}T2C95gx MN1@68wD+$60;eqbMgRZ+ delta 1545 zcmXxjUu;uV90%}UH#SBYOtwIwjPsd_Ze)aHXf~0F(`fXz_Y}`^dv7`C z-c3xjA;d+qXfP){h(Up9u#3h&^}&#cXk)^gKKbu~kocev{$Vf1VB-9qt!tWm&N=s< z`}>{mZNGf-m6?y9sx5vHBD%YS2w%Foljs(_4)?)}yNI5F-@z7`juHj%FdTu`;M4GL zcmz)GCfWqwg0=8HSb!zC5k^~y!Y~0RU|%a0X)^}%SZIQ0A!?C^FTf9BJ?!2?v<>d9 zdI&aSejK7#%E9fhSY1C4W0=1W?}azvR`?f;!~d$+SzD1Pf`zd*BGjT8XigeH)A6fS z-+-pToA7b?5i|{NM3o^JftTSV`~lvnuHR&9jjX^6SdXE)N$?s(50ow@i1uSJ3HQRY zuo0G_DR={#M81dSBzIsZjIG;Xr6lxcEO9#gT-$! zSj6DI4x$wN3Ze%64oy@|sAf7HfDLd89)mM*5H7(qyak706S_2s9EIk$a0Z%07puMl zO+#gfdPVvi15@x9*bD2?-cdLRN8w9w1YUvTDhLg}FScY}*H)tCC6Pjek zl52@Q3L7wg9-3Ev23m9&?-YaMSojw{0jJQ`W3U7nT!9Oa^{o9Xu0j*#&(K`|wWoZc zzIofheJs6ycwn$6jZgStOZk1%(sGq!`JNnR*?FGHaLFF14#w<2`KPmv7ufxtJX!uD z(j3yu^;h(#yM~I6-~lUmfn*L>tiYx6To)sov#jShR>qTf6!*X1}?wQj%h>QsOF3hi1LNuWra!O17{Roe;`$eO9@|BzJ9XNADjg&2iTc zxa06V2E7bZAz4OXQu)k}Cs_`A@z~XRae72@bt>R2CtOkfDVhoCuQ#1&v4rF_?&ZxR za3JM#TQ9e^>f!K<`rSQAeLLK%YuYYry;()G&j~K+2*U7ucG?`iU@0~4Nn87|c!=u< z8@p=!Uj0SvAD!Ovqy8j*Ko4wX<)%bUXbbZKrh-C23LHtZ_DF+5DoSyw$J&Qt6YiYl z2&9!0t7VvtKr5y7jP={?ZJ}{}qy06#+_Y2AcEswY92, 2011. # , 2011. # , 2011. # , 2011. @@ -13,8 +14,8 @@ msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" "POT-Creation-Date: 2011-11-01 23:14-0500\n" -"PO-Revision-Date: 2011-11-02 04:13+0000\n" -"Last-Translator: cwebber \n" +"PO-Revision-Date: 2011-11-04 10:05+0000\n" +"Last-Translator: chesuidayeur \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -42,7 +43,7 @@ msgstr "Confirmer le mot de passe" #: mediagoblin/auth/forms.py:39 msgid "Type it again here to make sure there are no spelling mistakes." msgstr "" -"Tapez-le à nouveau ici pour vous assurer qu'il n'ya pas de fautes " +"Tapez-le à nouveau ici pour vous assurer qu'il n'y a pas de fautes " "d'orthographe." #: mediagoblin/auth/forms.py:42 @@ -82,6 +83,8 @@ msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" +"Impossible d'envoyer un email de récupération de mot de passe : votre compte" +" est inactif ou bien l'email de votre compte n'a pas été vérifiée." #: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" @@ -103,6 +106,8 @@ msgstr "La légende ne peut pas être laissée vide." msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" +"Le nom de ce media dans l'URL. Vous n'avez normalement pas besoin de le " +"changer" #: mediagoblin/edit/forms.py:40 msgid "Bio" @@ -130,7 +135,7 @@ msgstr "" #: mediagoblin/process_media/errors.py:44 msgid "Invalid file given for media type." -msgstr "Invalide fichier donné pour le type de média." +msgstr "Le fichier envoyé ne correspond pas au type de média." #: mediagoblin/submit/forms.py:25 msgid "File" @@ -138,7 +143,7 @@ msgstr "Fichier" #: mediagoblin/submit/forms.py:30 msgid "Description of this work" -msgstr "" +msgstr "Descriptif pour ce travail" #: mediagoblin/submit/views.py:46 msgid "You must provide a file." @@ -158,7 +163,7 @@ msgstr "Zut!" #: mediagoblin/templates/mediagoblin/404.html:24 msgid "There doesn't seem to be a page at this address. Sorry!" -msgstr "Il ne semble pas être une page à cette adresse. Désolé!" +msgstr "Il ne semble pas y avoir de page à cette adresse. Désolé !" #: mediagoblin/templates/mediagoblin/404.html:26 msgid "" @@ -166,11 +171,11 @@ msgid "" " been moved or deleted." msgstr "" "Si vous êtes sûr que l'adresse est correcte, peut-être la page que vous " -"recherchez a été déplacé ou supprimé." +"recherchez a été déplacée ou supprimée." #: mediagoblin/templates/mediagoblin/404.html:32 msgid "Image of 404 goblin stressing out" -msgstr "Image de 404 gobelin stresser" +msgstr "Image de 404 gobelin angoissé" #: mediagoblin/templates/mediagoblin/base.html:22 msgid "GNU MediaGoblin" @@ -199,12 +204,12 @@ msgid "" "Powered by MediaGoblin, a GNU project" msgstr "" -"Propulsé par MediaGoblin , un GNU de projet" +"Propulsé par MediaGoblin , un projet " +"GNU" #: mediagoblin/templates/mediagoblin/root.html:24 msgid "Explore" -msgstr "" +msgstr "Explorer" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, media lover! MediaGoblin is..." @@ -219,15 +224,15 @@ msgid "" "A place for people to collaborate and show off original and derived " "creations!" msgstr "" -"Un lieu pour les personnes de collaborer et de montrer des créations " -"originales et dérivées!" +"Un espace de création collaboratif : montrez vos œuvres, originales ou " +"dérivées !" #: mediagoblin/templates/mediagoblin/root.html:31 msgid "" "Free, as in freedom. (We’re a GNU project, " "after all.)" msgstr "" -"Logiciel libre. (Nous sommes une GNU projet, " +"Logiciel libre. (Nous sommes un projet GNU " "après tout.)" #: mediagoblin/templates/mediagoblin/root.html:32 @@ -235,8 +240,8 @@ msgid "" "Aiming to make the world a better place through decentralization and " "(eventually, coming soon!) federation!" msgstr "" -"Visant à rendre le monde meilleur grâce à la décentralisation et " -"(éventuellement, venir bientôt!) fédération!" +"Une tentative de rendre le monde meilleur grâce à la décentralisation et (à " +"terme, et pour bientôt !) la fédération !" #: mediagoblin/templates/mediagoblin/root.html:33 msgid "" @@ -258,7 +263,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:38 msgid "Excited to join us?" -msgstr "" +msgstr "Envi de vous joindre à nous ?" #: mediagoblin/templates/mediagoblin/root.html:39 #, python-format @@ -267,27 +272,33 @@ msgid "" " or\n" " Set up MediaGoblin on your own server" msgstr "" +"Créez gratuitement en compte\n" +" ou\n" +" Installez MediaGoblin sur votre propre serveur" #: mediagoblin/templates/mediagoblin/root.html:53 msgid "Most recent media" -msgstr "" +msgstr "Tout derniers media" #: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 msgid "Enter your new password" -msgstr "" +msgstr "Entrez un nouveau mot de passe" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 msgid "Enter your username or email" -msgstr "" +msgstr "Entrez votre nom d'utilisateur ou votre email" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." msgstr "" +"Votre mot de passe a été changé. Essayez maintenant de vous identifier." #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" "Check your inbox. We sent an email with a URL for changing your password." msgstr "" +"Verifiez votre boîte de réception. Nous vous avons envoyé un email avec une " +"URL vous permettant de changer votre mot de passe." #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format @@ -302,10 +313,19 @@ msgid "" "If you think this is an error, just ignore this email and continue being\n" "a happy goblin!" msgstr "" +"Bonjour %(username)s,\n" +"\n" +"Pour changer votre mot de passe GNU MediaGoblin, ouvrez l'URL suivante dans \n" +"votre navigateur internet :\n" +"\n" +"%(verification_url)s\n" +"\n" +"Si vous pensez qu'il s'agit d'une erreur, ignorez simplement cet email et restez\n" +"un goblin heureux !" #: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" -msgstr "Connexion a échoué!" +msgstr "La connexion a échoué!" #: mediagoblin/templates/mediagoblin/auth/login.html:43 msgid "Don't have an account yet?" @@ -317,11 +337,11 @@ msgstr "Créez-en un ici!" #: mediagoblin/templates/mediagoblin/auth/login.html:49 msgid "Forgot your password?" -msgstr "" +msgstr "Vous avez oublié votre mot de passe ?" #: mediagoblin/templates/mediagoblin/auth/login.html:52 msgid "Change it!" -msgstr "" +msgstr "Changez-le !" #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" @@ -396,7 +416,7 @@ msgstr "Voulez-vous vraiment supprimer %(title)s ?" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 msgid "Delete Permanently" -msgstr "" +msgstr "Supprimer définitivement" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 msgid "Media processing panel" @@ -419,7 +439,7 @@ msgstr "Aucun média en transformation" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 msgid "These uploads failed to process:" -msgstr "Ces ajouts n'etaient pas processé:" +msgstr "Le traitement de ces ajouts a échoué :" #: mediagoblin/templates/mediagoblin/user_pages/user.html:39 #: mediagoblin/templates/mediagoblin/user_pages/user.html:59 @@ -428,7 +448,7 @@ msgstr "Vérification d'email nécessaire" #: mediagoblin/templates/mediagoblin/user_pages/user.html:42 msgid "Almost done! Your account still needs to be activated." -msgstr "Presque fini! Votre compte a encore besoin d'être activé." +msgstr "Presque fini ! Votre compte a encore besoin d'être activé." #: mediagoblin/templates/mediagoblin/user_pages/user.html:47 msgid "" @@ -479,7 +499,7 @@ msgstr "Modifier le profil" #: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "This user hasn't filled in their profile (yet)." -msgstr "Cet utilisateur n'a pas rempli leur profil (encore)." +msgstr "Cet utilisateur n'a pas (encore) rempli son profil." #: mediagoblin/templates/mediagoblin/user_pages/user.html:122 #, python-format @@ -491,8 +511,8 @@ msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" -"C'est là où vos médias apparaît, mais vous ne semblez pas avoir quoi que ce " -"soit encore ajouté." +"C'est là où vos médias apparaîssent, mais vous ne semblez pas avoir encore " +"ajouté quoi que ce soit." #: mediagoblin/templates/mediagoblin/user_pages/user.html:141 msgid "Add media" @@ -500,11 +520,11 @@ msgstr "Ajouter des médias" #: mediagoblin/templates/mediagoblin/user_pages/user.html:147 msgid "There doesn't seem to be any media here yet..." -msgstr "Il ne semble pas être un média encore là ..." +msgstr "Il ne semble pas y avoir de média là, pour l'instant ..." #: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 msgid "feed icon" -msgstr "icon de flux" +msgstr "icone de flux" #: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 msgid "Atom feed" @@ -512,11 +532,11 @@ msgstr "flux Atom" #: mediagoblin/templates/mediagoblin/utils/pagination.html:40 msgid "Newer" -msgstr "" +msgstr "Nouveaux" #: mediagoblin/templates/mediagoblin/utils/pagination.html:46 msgid "Older" -msgstr "" +msgstr "Anciens" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" @@ -524,15 +544,15 @@ msgstr "Commentaire" #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" -msgstr "" +msgstr "Je suis sûr de vouloir supprimer cela" #: mediagoblin/user_pages/views.py:142 msgid "Empty comments are not allowed." -msgstr "" +msgstr "Les commentaires vides ne sont pas autorisés." #: mediagoblin/user_pages/views.py:148 msgid "Comment posted!" -msgstr "" +msgstr "Votre commentaire a été posté !" #: mediagoblin/user_pages/views.py:181 msgid "You are about to delete another user's media. Proceed with caution." diff --git a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo index 6e9c88976cfa9eff49a76acdd8c6ca29c937de0c..2ab9cf8b6ab09d244718b9c17c0cfccdc88f9e22 100644 GIT binary patch delta 983 zcmX}qUr19?9Ki9PnA$2cvt{P8oBuLbvYZ4>laWD#3i`(i`p2EEdC~34-5n7K7b|@0 z%?Jr9@TG`CT0~M0VLq&&9->}CdNbUEJr?!U_m`t_IiKG-=brt3=bZaE{wh9mzTEpz zCh}*qNS%ljwumg^0!DGJLF5#cZxyM*Gk5}17{*!b!DWnLbEAk4hfC&goW6%uSQc2B z_u)nQbpi4IC3YC#kqMd&IE@qd99LuSHj!F9ggPHD^;1Z0xrXa;vg9<@(|?BKmiMUZ zzT@Oq09NBU)E!tzE*VEH>;dW#&!QIe7P%$)j9Taq zY{j3b?=`lFRA3wGd=QzEFb<;^C%8#4hi!P6)f6vj?7&;7g}gv5>?2;n1&m-Hi$Zu6 zqxcYYBSqAN9qlV85klSZ5!5TSkiC225a?Y@;!b>nnqUd_Xk!faqJ#VJDeCwlp2Qle z)bRvX;1ufoecXuePzzkZDy(KwH{!>$GQb@YXo4|};!BL-Z=^yw*vSWmm+=68LmvjH zTECt4{8XjCw!1qN>DeC)@mq7$%({C{J7y+3V!E~yF;eEJ(MMyCMu%)SZCWE;gLXP! ztbeqsA(?Sa$I6Wurg6p2x`wOk(pI)Be=l&otaHFl|9``El8Ky^G_vzI4AV-`<}${h QohjV4GC4Qj-?Y5$FW*j&od5s; delta 967 zcmXZaOK1~O6vpvWG}gB9(blxp#yB;;Qzf;Oza4ptKtip@IunLKlMQ|JY=a-?{hBo%7w9c|P!9pmcPe z`?*Twcaun?hA=^%1uSK<^QCPr{QmQWi^p+4H}Ohzz{+weB({3nd! z-^zTHv>wLSP}fJX0iU4;oWyGUgL)7T7aft^yh93YkU|shV=w+d63W(1B1P=So%kMW z&`WClcACmJ7x?NU;jW&J&QO?N?fzKa+1#ItW%8+*W9NE|#IO~QTRCG#r7)9)yi-i1 z>_T#jof|5DZJwC#OhZ6t* diff --git a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po index 2598f795..01fe5c48 100644 --- a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" "POT-Creation-Date: 2011-11-01 23:14-0500\n" -"PO-Revision-Date: 2011-11-02 04:13+0000\n" -"Last-Translator: cwebber \n" +"PO-Revision-Date: 2011-11-02 20:49+0000\n" +"Last-Translator: gap \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -529,11 +529,11 @@ msgstr "Sunt sigur că doresc să șterg" #: mediagoblin/user_pages/views.py:142 msgid "Empty comments are not allowed." -msgstr "" +msgstr "Comentariul trebuie să aibă un conținut." #: mediagoblin/user_pages/views.py:148 msgid "Comment posted!" -msgstr "" +msgstr "Comentariul a fost transmis." #: mediagoblin/user_pages/views.py:181 msgid "You are about to delete another user's media. Proceed with caution." diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo index 7cfc0b61d7c27edb0d61524e6f866f2b1baa0317..4b5481e070c77a113503c11ef4972e86a877f8a4 100644 GIT binary patch delta 898 zcmXZbT}YEr9LMpW^frcMCbeZXmup%r=ax2t(q2>|q8r6xqm04x80aY2ODPPV3keFU zn-WP1yzxQ;k&L`5Y6L-ECKwS5ywPr=n^KcrzNd9_KIa^s=lTE6|7>qlv#F_z>zuVR z>F0K-S<(-$RK(B@=`6adrFVE9cj6v~F>FB#i}(iHc1c6%+RZa~2e;xRe!$nb1xI}n zrSt^PV8JKn-$r?jRKZ371K5NSf?dGPtZ(@x-q8qBOV6<$-=hh>hNf_YVLx`_LCoV3 zocO<9zz)_GwGy9Jcda8eGRd*gkKT8V2Q8pIvH2R1?g1u#;*&E5UePS?q P)v^b|>D=@ePmk{}>4<#) delta 894 zcmXZaPe{{Y9LMobq&Cb-)0(c_AFYe*B0g_$Hdh0hTJfjscA0d7RzZ zr?G|o-U@nQdxcFiiXjf};S3hzK2q#KA3CrKO)!h41G~@!p2H@5hb#C8zu@O%*+y@U zOXt{cUyc9LR&B0x7Y${#q6o*L;U&LZLU4=t=D#VB^+UHpV?*vPNm z!Y9~`t7zW3sWuz96V1qnFdrxIGX3?EqLG6%UPTx2pJNCkxP`sg7tAJ4VGH}8XaZV{ z%`|?B=1;bUcQAvdQ75U*MEcNy&yZKvG(OZ7X`W($g9hdt!x+#50Cao2S>uSgRz0+FXwId Ee@AtCm;e9( diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po index aacd5ec8..f4bfbd67 100644 --- a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" "POT-Creation-Date: 2011-11-01 23:14-0500\n" -"PO-Revision-Date: 2011-11-02 04:13+0000\n" -"Last-Translator: cwebber \n" +"PO-Revision-Date: 2011-11-04 11:13+0000\n" +"Last-Translator: aleksejrs \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -515,7 +515,7 @@ msgstr "Я уверен, что хочу удалить это" #: mediagoblin/user_pages/views.py:142 msgid "Empty comments are not allowed." -msgstr "" +msgstr "Empty comments are not allowed." #: mediagoblin/user_pages/views.py:148 msgid "Comment posted!" diff --git a/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.mo new file mode 100644 index 0000000000000000000000000000000000000000..b0d8d3fcc54d8d7855f2b529486183e885f8e84d GIT binary patch literal 10812 zcmeI0eT*Ds8Ngpc6}l<{TCj-ry~ENwyxqGiZK>P#TKYkIrB_OOr6Dnp+1+<{hnt<* z%*@_(n~(qr+C&K&K2)MHC_#dJT#*7Aq=}f2h{VK%koZA1Y9b*u!5I0&_=mseeP^!M z(i)7AkZ_l~{oTyIAJ6yu%)EZ#qWcs-P5v(B@5^V))rp_)epIQ8xcnY`9X<_*;XUUl zwHv+&7sCtBRcZ=e3fI8Ha3?$lSHl8>WZWh`WQ(1!4tGPAR7YU}J`cy?OOU121>F23 zTnf*JgYXb6Lpu*%$o2Et_rJ-md+;;d{|CGTe*9zn!4>dgxC(wA?t-6yQ*bHl!e#It zDC2$t#V#+yPr)~!$n|fy2rgpLC2%p^50^oaw*!aZo$yxp6nqViu-O1S_dK`HDC}~5 zJ*>i)VILf35!vs0*bfa9eGfy?_wMZbA3*WXGui!DpxCJgFMxlCAAx6cQ^qZZa;-C7 z4snqhf}+Q2*o4^RI~VxJvQ>{EfLr0#%Xhr8hccrO&ak3+HhQiL6at1{N1 z=<#hR^S=+-LOlj$ou9+y@E1_*@CFn=6fnk4*bim>7Q6~R088+D zM=0z36+V2HQvZVdst1`Q`STnUxxR%lcf*&U%)1CleG?Ra*P+;93hswL zgCg(wEFyl^@K!hhUxP10$)6u;x6iL(m+RwD@~2MF@T-2shwOJ8O8&@)=zAGl2d{wg zeI1H_4neWQH=)?+AxH?Tqfp}KB`D)w$*%vB@l7c4@D>z%FTTv>&oU@>J`Cmiv%lc% zb16gxwFZh^Z-9&7*Wdy84JdlQ0dc)rLNZAHjAX1pwo>;(@yD}J#G%(RgUO0Sx8tbp z2S%;;bT#mjWJ7<`cr_E>oOCKJKfSr>H<|%|X}@m9roN$n`9N$Mev&ez69rt%RCTa≺)BkLEu%Q*s2@WbkdAwbX2eFDE1qE=mpy2F4ps>O-)zD zE`Agyed_93EnnDgA-^ov@}^j{Y4l7K2Q|!BF)3EfHcp#y)M+$XtZKqE_5%NqUCiz< zV5Yg*@q(Z`givAUC9MZ0Izj4-Z>-aF+HIR;zCA<|v2YUA(-|)|Lx@`qIyLdYv|lp_*=e_-g$cl4|U?B@9RijE+R;KBcxs;fjNS)sEPYZmY*g1!CWka$ zV2YH?TGT4(fdl4Gw|xh(JUv&dvO?GhJ5u}l$F}d@FGWghc8jT|tWg)KQKB@c_;P+B zR6B4LzV~#}Mg&O&L&`^_L(JVu)NyhpCa9Ox4j;qk3JxYig#r`ulHlY&W&J!nhIG^> zjwH+KRL5vWoF)0-hXt$mjH&2K9LZ63RhjKL zprlsGWCB%lTk3t;-OBn6Oc$vMu|AfNv%w0WcAFU!tKFRP zr`hScfHPWM7q#gO_GE{|+&^?65^yaqtu{+)59KLl<4X60^RlvFS3c1i^^aLeomk>Z z%ELS6WTj;I9kpcsMp?fT`1B`uQV!a=z&ZWi!{YU1Sc+h&nYM!du^UM!iMXZ-+SEnu zw=gVmY7d6|IPMcM2i0C9jZ7Z!%LlU3zmYF&9KJK6-8W|p_>$Tu=Z&i%iP}fUq4v?V z*b|I6%o|wjI`2%fXStOxFN8xj!w5RpE=dTJm?t+&`$z$rFweFw^V%F~uuo}o5X%h? zrSGUV-IO}rGD(nq^@)-6_#Gt3LSS&G}0>1(8(vkld%Lnq+T zV7sCtf@j60%m5LK7Rk+$*4*k&0C7ljh!~HPC#&z7_PGmOFIA(fA$q%rOOcd)-J(`) zB30~#2PJfw%c9vjQH~2J8WU_d3els!mOm)Ci68a@|Ac~q%)TdqO*+y7=EnB$0g#EMA z&!bUAB>v{jJy`K;uyXQ7IMj zaEJ+`yG+xh_VUNz*5rCi@}}jw(KLTJeW{VB>n6cS+_ZN?#`X0F6!xCZK`kt z|S#vio=4Cbj@^nz_!jI9@B>K#zi7%KDVXv9Q<36IXE}Y529`=1wCiPDW*&9V`{D zOZ6xsVcVt9q{B!ry>2pW?dguYVLwSaCMoQ>Zn9_}PS~fo6}y-9%8}90BEKV}dgYbn z(N)Ef)gvPeEbcYazQ}XxxGVMOs`AL%FOKk2*ySZ@aWeM8B=FKGF7tRKPuhCD=%n@H+7shM-nxm4 z+bDDLXj|56D}GwoZbEqzU@&sGtT%fV6X=oBmr8323-5rWO6JY){8}XqNnU3b-T{5+ z-U0PyXM3{`_m13UKX32NKF~Yz)!yurz1d^$&x@hn>`}WLJG{`Fz2E)+VSG*0n|-2p zM>)tFzze6r&U*O_?Yn+GN#Z%TJ4|DO}yg=&B9=3ab#ksjR%LXFB1NdCR z;RsRih!x-oK0k18n4H~^_qohs60ex*QHfxQsYh%~p}{c*p#mBa-A=nldq=)z)n*)l zk3|<=P1Sw(;&9>B)WWN&_y5(DB&y^i*~dXZ>OMmnlc+~+_4%<>BT3pP-N9gQQWweW zV;`hb;m$Vd+I(tMsg`y7&Fx@5yXY dCw(8ZiA!rsib_vLB2)LJ(Oh_gw(tf`{RbS{tH%HU literal 0 HcmV?d00001 diff --git a/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.po new file mode 100644 index 00000000..289bddb5 --- /dev/null +++ b/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.po @@ -0,0 +1,498 @@ +# Translations template for PROJECT. +# Copyright (C) 2011 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# +# Translators: +# వీవెన్ , 2011. +msgid "" +msgstr "" +"Project-Id-Version: GNU MediaGoblin\n" +"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" +"POT-Creation-Date: 2011-11-01 23:14-0500\n" +"PO-Revision-Date: 2011-11-03 14:08+0000\n" +"Last-Translator: veeven \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 0.9.6\n" +"Language: te\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 +msgid "Username" +msgstr "వాడుకరి పేరు" + +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 +msgid "Password" +msgstr "సంకేతపదం" + +#: mediagoblin/auth/forms.py:35 +msgid "Passwords must match." +msgstr "" + +#: mediagoblin/auth/forms.py:37 +msgid "Confirm password" +msgstr "" + +#: mediagoblin/auth/forms.py:39 +msgid "Type it again here to make sure there are no spelling mistakes." +msgstr "" + +#: mediagoblin/auth/forms.py:42 +msgid "Email address" +msgstr "ఈమెయిలు చిరునామా" + +#: mediagoblin/auth/views.py:55 +msgid "Sorry, registration is disabled on this instance." +msgstr "" + +#: mediagoblin/auth/views.py:73 +msgid "Sorry, a user with that name already exists." +msgstr "" + +#: mediagoblin/auth/views.py:77 +msgid "Sorry, that email address has already been taken." +msgstr "" + +#: mediagoblin/auth/views.py:179 +msgid "" +"Your email address has been verified. You may now login, edit your profile, " +"and submit images!" +msgstr "" + +#: mediagoblin/auth/views.py:185 +msgid "The verification key or user id is incorrect" +msgstr "" + +#: mediagoblin/auth/views.py:207 +msgid "Resent your verification email." +msgstr "" + +#: mediagoblin/auth/views.py:248 +msgid "" +"Could not send password recovery email as your username is inactive or your " +"account's email address has not been verified." +msgstr "" + +#: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 +msgid "Title" +msgstr "శీర్షిక" + +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 +msgid "Tags" +msgstr "" + +#: mediagoblin/edit/forms.py:31 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:32 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:33 +msgid "" +"The title part of this media's URL. You usually don't need to change this." +msgstr "" + +#: mediagoblin/edit/forms.py:40 +msgid "Bio" +msgstr "" + +#: mediagoblin/edit/forms.py:43 +msgid "Website" +msgstr "" + +#: mediagoblin/edit/views.py:64 +msgid "An entry with that slug already exists for this user." +msgstr "" + +#: mediagoblin/edit/views.py:85 +msgid "You are editing another user's media. Proceed with caution." +msgstr "" + +#: mediagoblin/edit/views.py:155 +msgid "You are editing a user's profile. Proceed with caution." +msgstr "" + +#: mediagoblin/process_media/errors.py:44 +msgid "Invalid file given for media type." +msgstr "" + +#: mediagoblin/submit/forms.py:25 +msgid "File" +msgstr "" + +#: mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + +#: mediagoblin/submit/views.py:46 +msgid "You must provide a file." +msgstr "" + +#: mediagoblin/submit/views.py:49 +msgid "The file doesn't seem to be an image!" +msgstr "" + +#: mediagoblin/submit/views.py:121 +msgid "Woohoo! Submitted!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:21 +msgid "Oops!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:24 +msgid "There doesn't seem to be a page at this address. Sorry!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:26 +msgid "" +"If you're sure the address is correct, maybe the page you're looking for has" +" been moved or deleted." +msgstr "" + +#: mediagoblin/templates/mediagoblin/404.html:32 +msgid "Image of 404 goblin stressing out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:22 +msgid "GNU MediaGoblin" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:47 +msgid "MediaGoblin logo" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:52 +msgid "Submit media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:63 +msgid "verify your email!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/auth/login.html:27 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 +msgid "Log in" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:89 +msgid "" +"Powered by MediaGoblin, a GNU project" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:24 +msgid "Explore" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:27 +msgid "Hi there, media lover! MediaGoblin is..." +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:29 +msgid "The perfect place for your media!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:30 +msgid "" +"A place for people to collaborate and show off original and derived " +"creations!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:31 +msgid "" +"Free, as in freedom. (We’re a GNU project, " +"after all.)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:32 +msgid "" +"Aiming to make the world a better place through decentralization and " +"(eventually, coming soon!) federation!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:33 +msgid "" +"Built for extensibility. (Multiple media types coming soon to the software," +" including video support!)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:34 +msgid "" +"Powered by people like you. (You can help us improve this" +" software!)" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:38 +msgid "Excited to join us?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:39 +#, python-format +msgid "" +"Create a free account\n" +" or\n" +" Set up MediaGoblin on your own server" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:53 +msgid "Most recent media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 +msgid "Enter your new password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 +msgid "Enter your username or email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 +msgid "Your password has been changed. Try to log in now." +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 +msgid "" +"Check your inbox. We sent an email with a URL for changing your password." +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to change your GNU MediaGoblin password, open the following URL in \n" +"your web browser:\n" +"\n" +"%(verification_url)s\n" +"\n" +"If you think this is an error, just ignore this email and continue being\n" +"a happy goblin!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:30 +msgid "Logging in failed!" +msgstr "ప్రవేశం విఫలమయ్యింది!" + +#: mediagoblin/templates/mediagoblin/auth/login.html:43 +msgid "Don't have an account yet?" +msgstr "మీకు ఇంకా ఖాతా లేదా?" + +#: mediagoblin/templates/mediagoblin/auth/login.html:46 +msgid "Create one here!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/login.html:49 +msgid "Forgot your password?" +msgstr "మీ సంకేతపదాన్ని మర్చిపోయారా?" + +#: mediagoblin/templates/mediagoblin/auth/login.html:52 +msgid "Change it!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/register.html:27 +msgid "Create an account!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/register.html:31 +msgid "Create" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 +#, python-format +msgid "" +"Hi %(username)s,\n" +"\n" +"to activate your GNU MediaGoblin account, open the following URL in\n" +"your web browser:\n" +"\n" +"%(verification_url)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:29 +#, python-format +msgid "Editing %(media_title)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:36 +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49 +msgid "Cancel" +msgstr "రద్దుచేయి" + +#: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 +msgid "Save changes" +msgstr "మార్పులను భద్రపరచు" + +#: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 +#, python-format +msgid "Editing %(username)s's profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/listings/tag.html:31 +msgid "Media tagged with:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:26 +msgid "Submit yer media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Submit" +msgstr "దాఖలు చెయ్యి" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 +msgid "Sorry, no such user found." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 +#, python-format +msgid "Really delete %(title)s?" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 +msgid "Delete Permanently" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 +msgid "Media processing panel" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 +msgid "" +"You can track the state of media being processed for your gallery here." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 +msgid "Media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 +msgid "No media in-processing" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 +msgid "These uploads failed to process:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +msgid "Email verification needed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +msgid "Almost done! Your account still needs to be activated." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +msgid "" +"An email should arrive in a few moments with instructions on how to do so." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +msgid "In case it doesn't:" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +msgid "Resend verification email" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +msgid "" +"Someone has registered an account with this username, but it still has to be" +" activated." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#, python-format +msgid "" +"If you are that person but you've lost your verification email, you can log in and resend it." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 +#, python-format +msgid "%(username)s's profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +msgid "Here's a spot to tell others about yourself." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +msgid "Edit profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +msgid "This user hasn't filled in their profile (yet)." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#, python-format +msgid "View all of %(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +msgid "" +"This is where your media will appear, but you don't seem to have added " +"anything yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +msgid "Add media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +msgid "There doesn't seem to be any media here yet..." +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 +msgid "feed icon" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 +msgid "Atom feed" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 +msgid "Newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 +msgid "Older" +msgstr "" + +#: mediagoblin/user_pages/forms.py:24 +msgid "Comment" +msgstr "వ్యాఖ్య" + +#: mediagoblin/user_pages/forms.py:30 +msgid "I am sure I want to delete this" +msgstr "" + +#: mediagoblin/user_pages/views.py:142 +msgid "Empty comments are not allowed." +msgstr "" + +#: mediagoblin/user_pages/views.py:148 +msgid "Comment posted!" +msgstr "" + +#: mediagoblin/user_pages/views.py:181 +msgid "You are about to delete another user's media. Proceed with caution." +msgstr "" + + From 34b0874d9ad305f4c8d5e892a679bad2f33ed277 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sun, 30 Oct 2011 20:51:55 +0100 Subject: [PATCH 1138/2731] Some docs for the TestingMiddleware To make the TestingMiddleware actually more useful in the future, start to document it. --- mediagoblin/middleware/testing.py | 25 +++++++++++++++++++++++++ mediagoblin/tests/tools.py | 2 ++ 2 files changed, 27 insertions(+) diff --git a/mediagoblin/middleware/testing.py b/mediagoblin/middleware/testing.py index 06714769..99322661 100644 --- a/mediagoblin/middleware/testing.py +++ b/mediagoblin/middleware/testing.py @@ -15,6 +15,23 @@ # along with this program. If not, see . class TestingMiddleware(object): + """ + Middleware for the Unit tests + + It might make sense to perform some tests on all + requests/responses. Or prepare them in a special + manner. For example all html responses could be tested + for being valid html *after* being rendered. + + This module is getting inserted at the front of the + middleware list, which means: requests are handed here + first, responses last. So this wraps up the "normal" + app. + + If you need to add a test, either add it directly to + the appropiate process_request or process_response, or + create a new method and call it from process_*. + """ def __init__(self, mg_app): self.app = mg_app @@ -23,12 +40,20 @@ class TestingMiddleware(object): pass def process_response(self, request, response): + # All following tests should be for html only! if response.content_type != "text/html": # Get out early return + + # If the template contains a reference to + # /mgoblin_static/ instead of using + # /request.staticdirect(), error out here. + # This could probably be implemented as a grep on + # the shipped templates easier... if response.text.find("/mgoblin_static/") >= 0: raise AssertionError( "Response HTML contains reference to /mgoblin_static/ " "instead of staticdirect. Request was for: " + request.full_path) + return diff --git a/mediagoblin/tests/tools.py b/mediagoblin/tests/tools.py index e8558240..7f20f6e7 100644 --- a/mediagoblin/tests/tools.py +++ b/mediagoblin/tests/tools.py @@ -107,6 +107,8 @@ def get_test_app(dump_old_app=True): # Insert the TestingMiddleware, which can do some # sanity checks on every request/response. + # Doing it this way is probably not the cleanest way. + # We'll fix it, when we have plugins! mg_globals.app.middleware.insert(0, TestingMiddleware(mg_globals.app)) app = TestApp(test_app) From 33d11e995d183f339597715472e4f6ecc81ba557 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 12 Nov 2011 13:21:41 +0100 Subject: [PATCH 1139/2731] Move TestingMiddleware to tests/tools.py This middleware isn't needed outside of the tests, so let's just put it there. --- mediagoblin/middleware/testing.py | 59 ------------------------------- mediagoblin/tests/tools.py | 46 +++++++++++++++++++++++- 2 files changed, 45 insertions(+), 60 deletions(-) delete mode 100644 mediagoblin/middleware/testing.py diff --git a/mediagoblin/middleware/testing.py b/mediagoblin/middleware/testing.py deleted file mode 100644 index 99322661..00000000 --- a/mediagoblin/middleware/testing.py +++ /dev/null @@ -1,59 +0,0 @@ -# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . - -class TestingMiddleware(object): - """ - Middleware for the Unit tests - - It might make sense to perform some tests on all - requests/responses. Or prepare them in a special - manner. For example all html responses could be tested - for being valid html *after* being rendered. - - This module is getting inserted at the front of the - middleware list, which means: requests are handed here - first, responses last. So this wraps up the "normal" - app. - - If you need to add a test, either add it directly to - the appropiate process_request or process_response, or - create a new method and call it from process_*. - """ - - def __init__(self, mg_app): - self.app = mg_app - - def process_request(self, request): - pass - - def process_response(self, request, response): - # All following tests should be for html only! - if response.content_type != "text/html": - # Get out early - return - - # If the template contains a reference to - # /mgoblin_static/ instead of using - # /request.staticdirect(), error out here. - # This could probably be implemented as a grep on - # the shipped templates easier... - if response.text.find("/mgoblin_static/") >= 0: - raise AssertionError( - "Response HTML contains reference to /mgoblin_static/ " - "instead of staticdirect. Request was for: " - + request.full_path) - - return diff --git a/mediagoblin/tests/tools.py b/mediagoblin/tests/tools.py index 7f20f6e7..420d9ba8 100644 --- a/mediagoblin/tests/tools.py +++ b/mediagoblin/tests/tools.py @@ -23,7 +23,6 @@ from webtest import TestApp from mediagoblin import mg_globals from mediagoblin.tools import testing -from mediagoblin.middleware.testing import TestingMiddleware from mediagoblin.init.config import read_mediagoblin_config from mediagoblin.decorators import _make_safe from mediagoblin.db.open import setup_connection_and_db_from_config @@ -51,6 +50,51 @@ $ CELERY_CONFIG_MODULE=mediagoblin.init.celery.from_tests ./bin/nosetests""" class BadCeleryEnviron(Exception): pass +class TestingMiddleware(object): + """ + Middleware for the Unit tests + + It might make sense to perform some tests on all + requests/responses. Or prepare them in a special + manner. For example all html responses could be tested + for being valid html *after* being rendered. + + This module is getting inserted at the front of the + middleware list, which means: requests are handed here + first, responses last. So this wraps up the "normal" + app. + + If you need to add a test, either add it directly to + the appropiate process_request or process_response, or + create a new method and call it from process_*. + """ + + def __init__(self, mg_app): + self.app = mg_app + + def process_request(self, request): + pass + + def process_response(self, request, response): + # All following tests should be for html only! + if response.content_type != "text/html": + # Get out early + return + + # If the template contains a reference to + # /mgoblin_static/ instead of using + # /request.staticdirect(), error out here. + # This could probably be implemented as a grep on + # the shipped templates easier... + if response.text.find("/mgoblin_static/") >= 0: + raise AssertionError( + "Response HTML contains reference to /mgoblin_static/ " + "instead of staticdirect. Request was for: " + + request.full_path) + + return + + def suicide_if_bad_celery_environ(): if not os.environ.get('CELERY_CONFIG_MODULE') == \ 'mediagoblin.init.celery.from_tests': From daed11b81263c3841ae23f45ed1bf33aa2e92992 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 12 Nov 2011 14:26:35 +0100 Subject: [PATCH 1140/2731] 640: Configuration files should mention their _local versions Thanks go to Aleksej Serdjukov for bringing this up and providing the patch in the bug! --- mediagoblin.ini | 3 +++ paste.ini | 3 +++ 2 files changed, 6 insertions(+) diff --git a/mediagoblin.ini b/mediagoblin.ini index c22d12d7..728ab2f2 100644 --- a/mediagoblin.ini +++ b/mediagoblin.ini @@ -1,3 +1,6 @@ +# If you want to make changes to this file, first copy it to +# mediagoblin_local.ini, then make the changes there. + [mediagoblin] direct_remote_path = /mgoblin_static/ email_sender_address = "notice@mediagoblin.example.org" diff --git a/paste.ini b/paste.ini index 8866789c..c729e41d 100644 --- a/paste.ini +++ b/paste.ini @@ -1,3 +1,6 @@ +# If you want to make changes to this file, first copy it to +# paste_local.ini, then make the changes there. + [DEFAULT] # Set to true to enable web-based debugging messages and etc. debug = false From 8bb3eb185ab14e8e8f4fc7b3df9eac4e1438d030 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 12 Nov 2011 08:10:46 -0600 Subject: [PATCH 1141/2731] Probably should have MANIFEST.in checked in, for doing python sdists --- MANIFEST.in | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 MANIFEST.in diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 00000000..b1f93dba --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,5 @@ +recursive-include mediagoblin/templates *.html +recursive-include mediagoblin/static *.js *.css *.png *.svg +recursive-include mediagoblin/tests *.ini +recursive-include docs *.rst *.html + From 0cf5b8ad2499a93fdba5ff1202fdc554208ec85f Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 12 Nov 2011 13:35:41 -0600 Subject: [PATCH 1142/2731] Don't force-convert resized images to JPEG. That's just not nice for those of us who like transparency! --- mediagoblin/process_media/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py index 2b9eed6e..85bdcbea 100644 --- a/mediagoblin/process_media/__init__.py +++ b/mediagoblin/process_media/__init__.py @@ -136,7 +136,7 @@ def process_image(entry): thumb_file = mgg.public_store.get_file(thumb_filepath, 'w') with thumb_file: - thumb.save(thumb_file, "JPEG", quality=90) + thumb.save(thumb_file) # If the size of the original file exceeds the specified size of a `medium` # file, a `medium.jpg` files is created and later associated with the media @@ -154,7 +154,7 @@ def process_image(entry): medium_file = mgg.public_store.get_file(medium_filepath, 'w') with medium_file: - medium.save(medium_file, "JPEG", quality=90) + medium.save(medium_file) medium_processed = True # we have to re-read because unlike PIL, not everything reads From d0504cfa875b0ac7340fb00a64fc8422faecdc9a Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 12 Nov 2011 15:12:39 -0600 Subject: [PATCH 1143/2731] Final step for non-force-conversion to jpeg --- mediagoblin/process_media/__init__.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py index 85bdcbea..f63fb2b0 100644 --- a/mediagoblin/process_media/__init__.py +++ b/mediagoblin/process_media/__init__.py @@ -14,8 +14,9 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -import Image +import os +import Image from celery.task import Task from celery import registry @@ -122,17 +123,16 @@ def process_image(entry): mgg.queue_store, queued_filepath, 'source') + extension = os.path.splitext(queued_filename)[1] + try: thumb = Image.open(queued_filename) except IOError: raise BadMediaFail() thumb.thumbnail(THUMB_SIZE, Image.ANTIALIAS) - # ensure color mode is compatible with jpg - if thumb.mode != "RGB": - thumb = thumb.convert("RGB") - thumb_filepath = create_pub_filepath(entry, 'thumbnail.jpg') + thumb_filepath = create_pub_filepath(entry, 'thumbnail' + extension) thumb_file = mgg.public_store.get_file(thumb_filepath, 'w') with thumb_file: @@ -147,10 +147,7 @@ def process_image(entry): if medium.size[0] > MEDIUM_SIZE[0] or medium.size[1] > MEDIUM_SIZE[1]: medium.thumbnail(MEDIUM_SIZE, Image.ANTIALIAS) - if medium.mode != "RGB": - medium = medium.convert("RGB") - - medium_filepath = create_pub_filepath(entry, 'medium.jpg') + medium_filepath = create_pub_filepath(entry, 'medium' + extension) medium_file = mgg.public_store.get_file(medium_filepath, 'w') with medium_file: From efd0a42ca1b81a2dd17aee1626060584a278020c Mon Sep 17 00:00:00 2001 From: Elrond Date: Sun, 13 Nov 2011 19:51:11 +0100 Subject: [PATCH 1144/2731] Mark two strings for translation --- mediagoblin/edit/views.py | 2 +- mediagoblin/templates/mediagoblin/base.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index a6ddb553..17244831 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -170,7 +170,7 @@ def edit_profile(request): messages.add_message(request, messages.SUCCESS, - 'Profile edited!') + _("Profile edited!")) return redirect(request, 'mediagoblin.user_pages.user_home', user=edit_username) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index b4c4dcf3..925386e5 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -67,7 +67,7 @@ user= request.user['username']) }}"> {{ request.user['username'] }} - (log out) + ({% trans %}log out{% endtrans %}) {% else %} {% trans %}Log in{% endtrans %} From b97ae0fd7da45c32897a4cb8437c04ddf04fdc95 Mon Sep 17 00:00:00 2001 From: Nathan Yergler Date: Sun, 13 Nov 2011 11:41:43 -0800 Subject: [PATCH 1145/2731] Issue 653: Don't throw exception if response has no vary header. --- mediagoblin/middleware/csrf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/middleware/csrf.py b/mediagoblin/middleware/csrf.py index 7a5e352e..6c977f21 100644 --- a/mediagoblin/middleware/csrf.py +++ b/mediagoblin/middleware/csrf.py @@ -98,7 +98,7 @@ class CsrfMiddleware(object): httponly=True) # update the Vary header - response.vary = (response.vary or []) + ['Cookie'] + response.vary = getattr(response, 'vary', []) + ['Cookie'] def _make_token(self, request): """Generate a new token to use for CSRF protection.""" From ad3f1233df672688c09ab923d8bb216a351db8cb Mon Sep 17 00:00:00 2001 From: Nathan Yergler Date: Sun, 13 Nov 2011 11:59:24 -0800 Subject: [PATCH 1146/2731] Issue 653: Handle the case where request.vary is None --- mediagoblin/middleware/csrf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/middleware/csrf.py b/mediagoblin/middleware/csrf.py index 6c977f21..d0601af8 100644 --- a/mediagoblin/middleware/csrf.py +++ b/mediagoblin/middleware/csrf.py @@ -98,7 +98,7 @@ class CsrfMiddleware(object): httponly=True) # update the Vary header - response.vary = getattr(response, 'vary', []) + ['Cookie'] + response.vary = (getattr(response, 'vary') or []) + ['Cookie'] def _make_token(self, request): """Generate a new token to use for CSRF protection.""" From d9ed3aeb402fc66de2a79d145b5a443c9e660c18 Mon Sep 17 00:00:00 2001 From: Nathan Yergler Date: Sun, 13 Nov 2011 12:07:09 -0800 Subject: [PATCH 1147/2731] Issue 653: This time for sure! --- mediagoblin/middleware/csrf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/middleware/csrf.py b/mediagoblin/middleware/csrf.py index d0601af8..8275c18e 100644 --- a/mediagoblin/middleware/csrf.py +++ b/mediagoblin/middleware/csrf.py @@ -98,7 +98,7 @@ class CsrfMiddleware(object): httponly=True) # update the Vary header - response.vary = (getattr(response, 'vary') or []) + ['Cookie'] + response.vary = (getattr(response, 'vary', None) or []) + ['Cookie'] def _make_token(self, request): """Generate a new token to use for CSRF protection.""" From 688f56c2dc579218b35263d0189e5d7c9ba9627f Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 13 Nov 2011 14:34:22 -0600 Subject: [PATCH 1148/2731] Improved title block on media page --- mediagoblin/templates/mediagoblin/user_pages/media.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 17beffb2..2441ec1b 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -20,6 +20,8 @@ {% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} {% from "mediagoblin/utils/pagination.html" import render_pagination %} +{% block title %}{{ media.title }} — {{ super() }}{% endblock %} + {% block mediagoblin_content %} {% if media %}
From 017d6ca3501b157277fc01fb37df2dbbd9ed17ef Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 13 Nov 2011 14:38:40 -0600 Subject: [PATCH 1149/2731] Enhanced title for user profile page --- .../templates/mediagoblin/user_pages/user.html | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index c5beeaaa..d65da055 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -26,6 +26,17 @@ user=user.username) }}"> {% endblock mediagoblin_head %} +{% block title %} + {%- if user -%} + {%- trans username=user.username -%} + {{ username }}'s profile + {%- endtrans %} — {{ super() }} + {%- else -%} + {{ super() }} + {%- endif -%} +{% endblock %} + + {% block mediagoblin_content -%} {# If no user... #} {% if not user %} From 7fc25d27208ef9926e94eeba953160ffbe676942 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 13 Nov 2011 14:40:11 -0600 Subject: [PATCH 1150/2731] If the gallery view makes sure we have a user anyway, do we need this check? Seems like the classic annoying "SHOULD NEVER HAPPEN" else: statement :) --- .../mediagoblin/user_pages/gallery.html | 39 ++++++++----------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/gallery.html b/mediagoblin/templates/mediagoblin/user_pages/gallery.html index df931d9c..86105493 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/gallery.html +++ b/mediagoblin/templates/mediagoblin/user_pages/gallery.html @@ -27,28 +27,23 @@ {% endblock mediagoblin_head %} {% block mediagoblin_content -%} - {% if user %} -

- {%- trans username=user.username, - user_url=request.urlgen( - 'mediagoblin.user_pages.user_home', - user=user.username) -%} - {{ username }}'s media - {%- endtrans %} -

+

+ {%- trans username=user.username, + user_url=request.urlgen( + 'mediagoblin.user_pages.user_home', + user=user.username) -%} + {{ username }}'s media + {%- endtrans %} +

- + -
- {% set feed_url = request.urlgen( - 'mediagoblin.user_pages.atom_feed', - user=user.username) %} - {% include "mediagoblin/utils/feed_link.html" %} -
- {% else %} - {# This *should* not occur as the view makes sure we pass in a user. #} -

{% trans %}Sorry, no such user found.{% endtrans %}

- {% endif %} +

+ {% set feed_url = request.urlgen( + 'mediagoblin.user_pages.atom_feed', + user=user.username) %} + {% include "mediagoblin/utils/feed_link.html" %} +
{% endblock %} From ab56689017daa985f3938af4710f3c76ad415bda Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 13 Nov 2011 14:42:03 -0600 Subject: [PATCH 1151/2731] Enhanced title on the user's main media gallery --- mediagoblin/templates/mediagoblin/user_pages/gallery.html | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mediagoblin/templates/mediagoblin/user_pages/gallery.html b/mediagoblin/templates/mediagoblin/user_pages/gallery.html index 86105493..b066dd71 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/gallery.html +++ b/mediagoblin/templates/mediagoblin/user_pages/gallery.html @@ -26,6 +26,12 @@ user=user.username) }}"> {% endblock mediagoblin_head %} +{% block title %} + {%- trans username=user.username -%} + {{ username }}'s media + {%- endtrans %} — {{ super() }} +{% endblock %} + {% block mediagoblin_content -%}

{%- trans username=user.username, From 4671fda345394dad9ca4278b1cf7b2cdf7d2b4ee Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 13 Nov 2011 14:48:51 -0600 Subject: [PATCH 1152/2731] Improving on tag page *and* adjusting translation for RTL reasons Basically moving the variable inside the translation to give translators more flexibility --- mediagoblin/templates/mediagoblin/listings/tag.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/listings/tag.html b/mediagoblin/templates/mediagoblin/listings/tag.html index 58863015..f797f72f 100644 --- a/mediagoblin/templates/mediagoblin/listings/tag.html +++ b/mediagoblin/templates/mediagoblin/listings/tag.html @@ -26,9 +26,13 @@ tag=tag_slug) }}"> {% endblock mediagoblin_head %} +{% block title %} + {% trans %}Media tagged with: {{ tag_name }}{% endtrans %} — {{ super() }} +{% endblock %} + {% block mediagoblin_content -%} <h1> - {% trans %}Media tagged with:{% endtrans %} {{ tag_name }} + {% trans %}Media tagged with: {{ tag_name }}{% endtrans %} </h1> <div class="container_16 media_gallery"> From 2b7aa99d3c221e713a95b664491f35612f9023cc Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber <cwebber@dustycloud.org> Date: Sun, 13 Nov 2011 20:39:42 -0600 Subject: [PATCH 1153/2731] Only show "post a comment" link if comments already exist The purpose of the link is to help you jump past comments to the comment box, and so... Even with this new conditional, I'm not entirely sure I like that link ;) --- mediagoblin/templates/mediagoblin/user_pages/media.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 2441ec1b..1e495b98 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -62,7 +62,7 @@ {%- endtrans %} </p> <h3></h3> - {% if request.user %} + {% if request.user and comments.count() %} <p><a href="#comment_form">{% trans %}Post a comment{% endtrans %}</a></p> {% endif %} {% if comments %} From b33701b851ef7f848d8d7b47e3654552da32b485 Mon Sep 17 00:00:00 2001 From: Joar Wandborg <git@wandborg.com> Date: Tue, 15 Nov 2011 00:27:21 +0100 Subject: [PATCH 1154/2731] moved from videoscale => ffvideoscale *and* put queus before video and audio pipes --- mediagoblin/media_types/video/transcoders.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/mediagoblin/media_types/video/transcoders.py b/mediagoblin/media_types/video/transcoders.py index 512c7cb6..3a30aedf 100644 --- a/mediagoblin/media_types/video/transcoders.py +++ b/mediagoblin/media_types/video/transcoders.py @@ -624,13 +624,16 @@ class VideoTranscoder: self.pipeline.add(self.decoder) # Video elements + self.videoqueue = gst.element_factory_make('queue', 'videoqueue') + self.pipeline.add(self.videoqueue) + self.ffmpegcolorspace = gst.element_factory_make( 'ffmpegcolorspace', 'ffmpegcolorspace') self.pipeline.add(self.ffmpegcolorspace) - self.videoscale = gst.element_factory_make('videoscale', 'videoscale') - self.videoscale.set_property('method', 2) # I'm not sure this works - self.videoscale.set_property('add-borders', 0) + self.videoscale = gst.element_factory_make('ffvideoscale', 'videoscale') + #self.videoscale.set_property('method', 2) # I'm not sure this works + #self.videoscale.set_property('add-borders', 0) self.pipeline.add(self.videoscale) self.capsfilter = gst.element_factory_make('capsfilter', 'capsfilter') @@ -642,6 +645,9 @@ class VideoTranscoder: self.pipeline.add(self.vp8enc) # Audio elements + self.audioqueue = gst.element_factory_make('queue', 'audioqueue') + self.pipeline.add(self.audioqueue) + self.audioconvert = gst.element_factory_make('audioconvert', 'audioconvert') self.pipeline.add(self.audioconvert) @@ -679,6 +685,7 @@ class VideoTranscoder: self.filesrc.link(self.decoder) # Link all the video elements in a link to webmux + self.videoqueue.link(self.ffmpegcolorspace) self.ffmpegcolorspace.link(self.videoscale) self.videoscale.link(self.capsfilter) #self.capsfilter.link(self.xvimagesink) @@ -688,6 +695,7 @@ class VideoTranscoder: if self.data.is_audio: # Link all the audio elements in a line to webmux #self.audioconvert.link(self.alsasink) + self.audioqueue.link(self.audioconvert) self.audioconvert.link(self.vorbisenc) self.vorbisenc.link(self.webmmux) @@ -707,10 +715,10 @@ class VideoTranscoder: if self.ffmpegcolorspace.get_pad_template('sink')\ .get_caps().intersect(pad.get_caps()).is_empty(): # It is NOT a video src pad. - pad.link(self.audioconvert.get_pad('sink')) + pad.link(self.audioqueue.get_pad('sink')) else: # It IS a video src pad. - pad.link(self.ffmpegcolorspace.get_pad('sink')) + pad.link(self.videoqueue.get_pad('sink')) def _setup_bus(self): self.bus = self.pipeline.get_bus() From a9c7af90408c3537f42763e63862a2ae44bcc368 Mon Sep 17 00:00:00 2001 From: Elrond <elrond+mediagoblin.org@samba-tng.org> Date: Tue, 15 Nov 2011 11:21:15 +0100 Subject: [PATCH 1155/2731] export: Handle Unicode titles better in logging log("ascii %s" % unicode_string) tries to convert unicode to ascii, which might fail. Better use log(u"unicode format %s" % unicode_string) and let the logging framework handle the conversion. This works much better and the exceptions still happening aren't stopping the main app. Also remove one useless import. --- mediagoblin/gmg_commands/import_export.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mediagoblin/gmg_commands/import_export.py b/mediagoblin/gmg_commands/import_export.py index a46219a0..30112969 100644 --- a/mediagoblin/gmg_commands/import_export.py +++ b/mediagoblin/gmg_commands/import_export.py @@ -16,7 +16,6 @@ from mediagoblin import mg_globals from mediagoblin.db.open import setup_connection_and_db_from_config -from mediagoblin.init.config import read_mediagoblin_config from mediagoblin.storage.filestorage import BasicFileStorage from mediagoblin.init import setup_storage, setup_global_and_app_config @@ -209,7 +208,7 @@ def _export_media(db, args): for entry in db.media_entries.find(): for name, path in entry['media_files'].items(): - _log.info('Exporting {0} - {1}'.format( + _log.info(u'Exporting {0} - {1}'.format( entry['title'], name)) From 7cbddc96a85410c14583b598312e40efe6051a44 Mon Sep 17 00:00:00 2001 From: Elrond <elrond+mediagoblin.org@samba-tng.org> Date: Mon, 14 Nov 2011 14:21:06 +0100 Subject: [PATCH 1156/2731] Enable mongokit's "Dot notation" mongokit documents can allow to use x.FIELD instead of x["FIELD"]. First it looks a lot more pythonic. Second it might allow us an easier migration path towards an sqlalchemy database backend. Docs: http://namlook.github.com/mongokit/tutorial.html#dot-notation --- mediagoblin/db/models.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index c010cb89..65c15917 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -63,6 +63,7 @@ class User(Document): - bio_html: biography of the user converted to proper HTML. """ __collection__ = 'users' + use_dot_notation = True structure = { 'username': unicode, @@ -177,6 +178,7 @@ class MediaEntry(Document): - fail_metadata: """ __collection__ = 'media_entries' + use_dot_notation = True structure = { 'uploader': ObjectId, @@ -321,6 +323,7 @@ class MediaComment(Document): """ __collection__ = 'media_comments' + use_dot_notation = True structure = { 'media_entry': ObjectId, From eabe6b678a98fd06d9cd8463935a3b842f41485c Mon Sep 17 00:00:00 2001 From: Elrond <elrond+mediagoblin.org@samba-tng.org> Date: Sun, 13 Nov 2011 19:25:06 +0100 Subject: [PATCH 1157/2731] Dot-Notation for "_id" Note: Migrations can't use "Dot Notation"! Migrations run on pymongo, not mongokit. So they can't use the "Dot Notation". This isn't really a big issue, as migrations are anyway quite mongo specific. --- mediagoblin/auth/lib.py | 4 ++-- mediagoblin/auth/views.py | 4 ++-- mediagoblin/db/models.py | 10 +++++----- mediagoblin/decorators.py | 6 +++--- mediagoblin/edit/lib.py | 2 +- mediagoblin/edit/views.py | 6 +++--- mediagoblin/process_media/__init__.py | 4 ++-- mediagoblin/submit/views.py | 10 +++++----- .../mediagoblin/user_pages/media.html | 10 +++++----- .../templates/mediagoblin/user_pages/user.html | 6 +++--- mediagoblin/tests/test_auth.py | 12 ++++++------ mediagoblin/tests/test_submission.py | 6 +++--- mediagoblin/tools/pagination.py | 2 +- mediagoblin/user_pages/views.py | 18 +++++++++--------- 14 files changed, 50 insertions(+), 50 deletions(-) diff --git a/mediagoblin/auth/lib.py b/mediagoblin/auth/lib.py index 653424cc..cf4a2b83 100644 --- a/mediagoblin/auth/lib.py +++ b/mediagoblin/auth/lib.py @@ -109,7 +109,7 @@ def send_verification_email(user, request): 'verification_url': EMAIL_VERIFICATION_TEMPLATE.format( host=request.host, uri=request.urlgen('mediagoblin.auth.verify_email'), - userid=unicode(user['_id']), + userid=unicode(user._id), verification_key=user['verification_key'])}) # TODO: There is no error handling in place @@ -144,7 +144,7 @@ def send_fp_verification_email(user, request): 'verification_url': EMAIL_FP_VERIFICATION_TEMPLATE.format( host=request.host, uri=request.urlgen('mediagoblin.auth.verify_forgot_password'), - userid=unicode(user['_id']), + userid=unicode(user._id), fp_verification_key=user['fp_verification_key'])}) # TODO: There is no error handling in place diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 8888d23c..8412b81c 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -87,7 +87,7 @@ def register(request): user.save(validate=True) # log the user in - request.session['user_id'] = unicode(user['_id']) + request.session['user_id'] = unicode(user._id) request.session.save() # send verification email @@ -122,7 +122,7 @@ def login(request): if user and user.check_login(request.POST['password']): # set up login in session - request.session['user_id'] = unicode(user['_id']) + request.session['user_id'] = unicode(user._id) request.session.save() if request.POST.get('next'): diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 65c15917..1c1bc2fd 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -219,7 +219,7 @@ class MediaEntry(Document): def get_comments(self): return self.db.MediaComment.find({ - 'media_entry': self['_id']}).sort('created', DESCENDING) + 'media_entry': self._id}).sort('created', DESCENDING) def get_display_media(self, media_map, fetch_order=common.DISPLAY_IMAGE_FETCHING_ORDER): @@ -250,7 +250,7 @@ class MediaEntry(Document): {'slug': self['slug']}) if duplicate: - self['slug'] = "%s-%s" % (self['_id'], self['slug']) + self['slug'] = "%s-%s" % (self._id, self['slug']) def url_for_self(self, urlgen): """ @@ -269,13 +269,13 @@ class MediaEntry(Document): return urlgen( 'mediagoblin.user_pages.media_home', user=uploader['username'], - media=unicode(self['_id'])) + media=unicode(self._id)) def url_to_prev(self, urlgen): """ Provide a url to the previous entry from this user, if there is one """ - cursor = self.db.MediaEntry.find({'_id': {"$gt": self['_id']}, + cursor = self.db.MediaEntry.find({'_id': {"$gt": self._id}, 'uploader': self['uploader'], 'state': 'processed'}).sort( '_id', ASCENDING).limit(1) @@ -288,7 +288,7 @@ class MediaEntry(Document): """ Provide a url to the next entry from this user, if there is one """ - cursor = self.db.MediaEntry.find({'_id': {"$lt": self['_id']}, + cursor = self.db.MediaEntry.find({'_id': {"$lt": self._id}, 'uploader': self['uploader'], 'state': 'processed'}).sort( '_id', DESCENDING).limit(1) diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index b247e229..8f7532ec 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -60,7 +60,7 @@ def user_may_delete_media(controller): uploader = request.db.MediaEntry.find_one( {'_id': ObjectId(request.matchdict['media'])}).uploader() if not (request.user['is_admin'] or - request.user['_id'] == uploader['_id']): + request.user._id == uploader._id): return exc.HTTPForbidden() return controller(request, *args, **kwargs) @@ -99,7 +99,7 @@ def get_user_media_entry(controller): media = request.db.MediaEntry.find_one( {'slug': request.matchdict['media'], 'state': 'processed', - 'uploader': user['_id']}) + 'uploader': user._id}) # no media via slug? Grab it via ObjectId if not media: @@ -107,7 +107,7 @@ def get_user_media_entry(controller): media = request.db.MediaEntry.find_one( {'_id': ObjectId(request.matchdict['media']), 'state': 'processed', - 'uploader': user['_id']}) + 'uploader': user._id}) except InvalidId: return render_404(request) diff --git a/mediagoblin/edit/lib.py b/mediagoblin/edit/lib.py index b722e9c1..458b704e 100644 --- a/mediagoblin/edit/lib.py +++ b/mediagoblin/edit/lib.py @@ -17,7 +17,7 @@ def may_edit_media(request, media): """Check, if the request's user may edit the media details""" - if media['uploader'] == request.user['_id']: + if media['uploader'] == request.user._id: return True if request.user['is_admin']: return True diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index f3ebebe8..5f781552 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -57,7 +57,7 @@ def edit_media(request, media): existing_user_slug_entries = request.db.MediaEntry.find( {'slug': request.POST['slug'], 'uploader': media['uploader'], - '_id': {'$ne': media['_id']}}).count() + '_id': {'$ne': media._id}}).count() if existing_user_slug_entries: form.slug.errors.append( @@ -78,7 +78,7 @@ def edit_media(request, media): location=media.url_for_self(request.urlgen)) if request.user['is_admin'] \ - and media['uploader'] != request.user['_id'] \ + and media['uploader'] != request.user._id \ and request.method != 'POST': messages.add_message( request, messages.WARNING, @@ -104,7 +104,7 @@ def edit_attachments(request, media): attachment_public_filepath \ = mg_globals.public_store.get_unique_filepath( - ['media_entries', unicode(media['_id']), 'attachment', + ['media_entries', unicode(media._id), 'attachment', secure_filename(request.POST['attachment_file'].filename)]) attachment_public_file = mg_globals.public_store.get_file( diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py index 3d6b418f..34d83e54 100644 --- a/mediagoblin/process_media/__init__.py +++ b/mediagoblin/process_media/__init__.py @@ -32,7 +32,7 @@ MEDIUM_SIZE = 640, 640 def create_pub_filepath(entry, filename): return mgg.public_store.get_unique_filepath( ['media_entries', - unicode(entry['_id']), + unicode(entry._id), filename]) @@ -56,7 +56,7 @@ class ProcessMedia(Task): try: process_image(entry) except BaseProcessingFail, exc: - mark_entry_failed(entry[u'_id'], exc) + mark_entry_failed(entry._id, exc) return entry['state'] = u'processed' diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 25f7d79d..bd63bd18 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -52,7 +52,7 @@ def submit_start(request): # create entry and save in database entry = request.db.MediaEntry() - entry['_id'] = ObjectId() + entry._id = ObjectId() entry['title'] = ( unicode(request.POST['title']) or unicode(splitext(filename)[0])) @@ -62,7 +62,7 @@ def submit_start(request): entry['description']) entry['media_type'] = u'image' # heh - entry['uploader'] = request.user['_id'] + entry['uploader'] = request.user._id # Process the user's folksonomy "tags" entry['tags'] = convert_to_tag_list_of_dicts( @@ -74,7 +74,7 @@ def submit_start(request): # Now store generate the queueing related filename queue_filepath = request.app.queue_store.get_unique_filepath( ['media_entries', - unicode(entry['_id']), + unicode(entry._id), secure_filename(filename)]) # queue appropriately @@ -105,7 +105,7 @@ def submit_start(request): # conditions with changes to the document via processing code) try: process_media.apply_async( - [unicode(entry['_id'])], {}, + [unicode(entry._id)], {}, task_id=task_id) except BaseException as exc: # The purpose of this section is because when running in "lazy" @@ -116,7 +116,7 @@ def submit_start(request): # # ... not completely the diaper pattern because the # exception is re-raised :) - mark_entry_failed(entry[u'_id'], exc) + mark_entry_failed(entry._id, exc) # re-raise the exception raise diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 1e495b98..4b02b684 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -69,10 +69,10 @@ {% for comment in comments %} {% set comment_author = comment.author() %} {% if pagination.active_id == comment._id %} - <div class="comment_wrapper comment_active" id="comment-{{ comment['_id'] }}"> + <div class="comment_wrapper comment_active" id="comment-{{ comment._id }}"> <a name="comment" id="comment"></a> {% else %} - <div class="comment_wrapper" id="comment-{{ comment['_id'] }}"> + <div class="comment_wrapper" id="comment-{{ comment._id }}"> {% endif %} <div class="comment_content">{% autoescape False %}{{ comment.content_html }} @@ -83,7 +83,7 @@ {{ comment_author['username'] }}</a> {% trans %}at{% endtrans %} <a href="{{ request.urlgen('mediagoblin.user_pages.media_home.view_comment', - comment = comment['_id'], + comment = comment._id, user = media.uploader().username, media = media._id) }}#comment"> {{ comment.created.strftime("%I:%M%p %Y-%m-%d") }} @@ -114,7 +114,7 @@ <div class="grid_5 omega"> {% include "mediagoblin/utils/prev_next.html" %} - {% if media['uploader'] == request.user['_id'] or + {% if media['uploader'] == request.user._id or request.user['is_admin'] %} <h3>{% trans %}Actions{% endtrans %}</h3> <p> @@ -151,7 +151,7 @@ {% endif %} {% if app_config['allow_attachments'] - and (media['uploader'] == request.user['_id'] + and (media['uploader'] == request.user._id or request.user['is_admin']) %} <p> <a href="{{ request.urlgen('mediagoblin.edit.attachments', diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index d65da055..1de7f611 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -90,7 +90,7 @@ </h1> {% if not user['url'] and not user['profile'] %} - {% if request.user['_id'] == user['_id'] %} + {% if request.user._id == user._id %} <div class="grid_6 alpha empty_space"> <p> {% trans %}Here's a spot to tell others about yourself.{% endtrans %} @@ -113,7 +113,7 @@ {% else %} <div class="grid_6 alpha"> {% include "mediagoblin/utils/profile.html" %} - {% if request.user['_id'] == user['_id'] or request.user['is_admin'] %} + {% if request.user._id == user._id or request.user['is_admin'] %} <a href="{{ request.urlgen('mediagoblin.edit.profile') }}?username={{ user.username }}"> {%- trans %}Edit profile{% endtrans -%} @@ -140,7 +140,7 @@ {% include "mediagoblin/utils/feed_link.html" %} </div> {% else %} - {% if request.user['_id'] == user['_id'] %} + {% if request.user._id == user._id %} <div class="grid_10 omega empty_space"> <p> {% trans -%} diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py index 40961eca..153c6e53 100644 --- a/mediagoblin/tests/test_auth.py +++ b/mediagoblin/tests/test_auth.py @@ -168,7 +168,7 @@ def test_register_views(test_app): ## Make sure user is logged in request = template.TEMPLATE_TEST_CONTEXT[ 'mediagoblin/user_pages/user.html']['request'] - assert request.session['user_id'] == unicode(new_user['_id']) + assert request.session['user_id'] == unicode(new_user._id) ## Make sure we get email confirmation, and try verifying assert len(mail.EMAIL_TEST_INBOX) == 1 @@ -185,7 +185,7 @@ def test_register_views(test_app): ### user should have these same parameters assert parsed_get_params['userid'] == [ - unicode(new_user['_id'])] + unicode(new_user._id)] assert parsed_get_params['token'] == [ new_user['verification_key']] @@ -193,7 +193,7 @@ def test_register_views(test_app): template.clear_test_template_context() response = test_app.get( "/auth/verify_email/?userid=%s&token=total_bs" % unicode( - new_user['_id'])) + new_user._id)) response.follow() context = template.TEMPLATE_TEST_CONTEXT[ 'mediagoblin/user_pages/user.html'] @@ -269,7 +269,7 @@ def test_register_views(test_app): # user should have matching parameters new_user = mg_globals.database.User.find_one({'username': 'happygirl'}) - assert parsed_get_params['userid'] == [unicode(new_user['_id'])] + assert parsed_get_params['userid'] == [unicode(new_user._id)] assert parsed_get_params['token'] == [new_user['fp_verification_key']] ### The forgotten password token should be set to expire in ~ 10 days @@ -280,7 +280,7 @@ def test_register_views(test_app): template.clear_test_template_context() response = test_app.get( "/auth/forgot_password/verify/?userid=%s&token=total_bs" % unicode( - new_user['_id']), status=400) + new_user._id), status=400) assert response.status == '400 Bad Request' ## Try using an expired token to change password, shouldn't work @@ -412,7 +412,7 @@ def test_authentication_views(test_app): # Make sure user is in the session context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/root.html'] session = context['request'].session - assert session['user_id'] == unicode(test_user['_id']) + assert session['user_id'] == unicode(test_user._id) # Successful logout # ----------------- diff --git a/mediagoblin/tests/test_submission.py b/mediagoblin/tests/test_submission.py index 1c657e6c..dec7118b 100644 --- a/mediagoblin/tests/test_submission.py +++ b/mediagoblin/tests/test_submission.py @@ -177,7 +177,7 @@ class TestSubmission: request.urlgen('mediagoblin.user_pages.media_confirm_delete', # No work: user=media.uploader().username, user=self.test_user['username'], - media=media['_id']), + media=media._id), # no value means no confirm {}) @@ -197,7 +197,7 @@ class TestSubmission: request.urlgen('mediagoblin.user_pages.media_confirm_delete', # No work: user=media.uploader().username, user=self.test_user['username'], - media=media['_id']), + media=media._id), {'confirm': 'y'}) response.follow() @@ -208,7 +208,7 @@ class TestSubmission: # Does media entry still exist? assert_false( request.db.MediaEntry.find( - {'_id': media['_id']}).count()) + {'_id': media._id}).count()) def test_malicious_uploads(self): # Test non-suppoerted file with non-supported extension diff --git a/mediagoblin/tools/pagination.py b/mediagoblin/tools/pagination.py index bc20ec90..5ebc3c5a 100644 --- a/mediagoblin/tools/pagination.py +++ b/mediagoblin/tools/pagination.py @@ -53,7 +53,7 @@ class Pagination(object): cursor = copy.copy(self.cursor) for (doc, increment) in izip(cursor, count(0)): - if doc['_id'] == jump_to_id: + if doc._id == jump_to_id: self.page = 1 + int(floor(increment / self.per_page)) self.active_id = jump_to_id diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 2090d6fd..82865bb4 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -45,7 +45,7 @@ def user_home(request, page): {'user': user}) cursor = request.db.MediaEntry.find( - {'uploader': user['_id'], + {'uploader': user._id, 'state': 'processed'}).sort('created', DESCENDING) pagination = Pagination(page, cursor) @@ -78,7 +78,7 @@ def user_gallery(request, page): return render_404(request) cursor = request.db.MediaEntry.find( - {'uploader': user['_id'], + {'uploader': user._id, 'state': 'processed'}).sort('created', DESCENDING) pagination = Pagination(page, cursor) @@ -135,8 +135,8 @@ def media_post_comment(request, media): assert request.method == 'POST' comment = request.db.MediaComment() - comment['media_entry'] = media['_id'] - comment['author'] = request.user['_id'] + comment['media_entry'] = media._id + comment['author'] = request.user._id comment['content'] = unicode(request.POST['comment_content']) comment['content_html'] = cleaned_markdown_conversion(comment['content']) @@ -179,7 +179,7 @@ def media_confirm_delete(request, media): location=media.url_for_self(request.urlgen)) if ((request.user[u'is_admin'] and - request.user[u'_id'] != media.uploader()[u'_id'])): + request.user._id != media.uploader()._id)): messages.add_message( request, messages.WARNING, _("You are about to delete another user's media. " @@ -207,7 +207,7 @@ def atom_feed(request): return render_404(request) cursor = request.db.MediaEntry.find({ - 'uploader': user['_id'], + 'uploader': user._id, 'state': 'processed'}) \ .sort('created', DESCENDING) \ .limit(ATOM_DEFAULT_NR_OF_UPDATED_ITEMS) @@ -251,7 +251,7 @@ def processing_panel(request): # # Make sure we have permission to access this user's panel. Only # admins and this user herself should be able to do so. - if not (user[u'_id'] == request.user[u'_id'] + if not (user._id == request.user._id or request.user.is_admin): # No? Let's simply redirect to this user's homepage then. return redirect( @@ -260,12 +260,12 @@ def processing_panel(request): # Get media entries which are in-processing processing_entries = request.db.MediaEntry.find( - {'uploader': user['_id'], + {'uploader': user._id, 'state': 'processing'}).sort('created', DESCENDING) # Get media entries which have failed to process failed_entries = request.db.MediaEntry.find( - {'uploader': user['_id'], + {'uploader': user._id, 'state': 'failed'}).sort('created', DESCENDING) # Render to response From 3618a9ac5112c657fd095a0f9cbd346921a4e800 Mon Sep 17 00:00:00 2001 From: Elrond <elrond+mediagoblin.org@samba-tng.org> Date: Mon, 14 Nov 2011 17:11:37 +0100 Subject: [PATCH 1158/2731] Dot-Notation: x._id = ObjectId() doesn't seem to work properly For whatever reason, this does not work as expected: entry._id = ObjectId() Need to go this way: entry['_id'] = ObjectId() --- mediagoblin/submit/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index bd63bd18..139b1d1d 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -52,7 +52,7 @@ def submit_start(request): # create entry and save in database entry = request.db.MediaEntry() - entry._id = ObjectId() + entry['_id'] = ObjectId() entry['title'] = ( unicode(request.POST['title']) or unicode(splitext(filename)[0])) From 64fd0462bdd821d5777d9697e67d951838f87de0 Mon Sep 17 00:00:00 2001 From: Joar Wandborg <git@wandborg.com> Date: Tue, 15 Nov 2011 22:43:05 +0100 Subject: [PATCH 1159/2731] Committing some futile attempts to make GStreamer transcode the audio properly. - Added CPU count detection - Added videorate - Added audiorate --- mediagoblin/media_types/video/transcoders.py | 45 +++++++++++++++++--- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/mediagoblin/media_types/video/transcoders.py b/mediagoblin/media_types/video/transcoders.py index 3a30aedf..de3701f6 100644 --- a/mediagoblin/media_types/video/transcoders.py +++ b/mediagoblin/media_types/video/transcoders.py @@ -29,6 +29,18 @@ _log = logging.getLogger(__name__) logging.basicConfig() _log.setLevel(logging.DEBUG) +CPU_COUNT = 2 +try: + import multiprocessing + try: + CPU_COUNT = multiprocessing.cpu_count() + except NotImplementedError: + _log.warning('multiprocessing.cpu_count not implemented') + pass +except ImportError: + _log.warning('Could not import multiprocessing, defaulting to 2 CPU cores') + pass + try: import gtk except: @@ -627,10 +639,13 @@ class VideoTranscoder: self.videoqueue = gst.element_factory_make('queue', 'videoqueue') self.pipeline.add(self.videoqueue) + self.videorate = gst.element_factory_make('videorate', 'videorate') + self.pipeline.add(self.videorate) + self.ffmpegcolorspace = gst.element_factory_make( 'ffmpegcolorspace', 'ffmpegcolorspace') self.pipeline.add(self.ffmpegcolorspace) - + self.videoscale = gst.element_factory_make('ffvideoscale', 'videoscale') #self.videoscale.set_property('method', 2) # I'm not sure this works #self.videoscale.set_property('add-borders', 0) @@ -648,11 +663,22 @@ class VideoTranscoder: self.audioqueue = gst.element_factory_make('queue', 'audioqueue') self.pipeline.add(self.audioqueue) + self.audiorate = gst.element_factory_make('audiorate', 'audiorate') + self.pipeline.add(self.audiorate) + self.audioconvert = gst.element_factory_make('audioconvert', 'audioconvert') self.pipeline.add(self.audioconvert) + self.audiocapsfilter = gst.element_factory_make('capsfilter', 'audiocapsfilter') + audiocaps = ['audio/x-raw-float'] + self.audiocapsfilter.set_property( + 'caps', + gst.caps_from_string( + ','.join(audiocaps))) + self.pipeline.add(self.audiocapsfilter) + self.vorbisenc = gst.element_factory_make('vorbisenc', 'vorbisenc') - self.vorbisenc.set_property('quality', 0.7) + self.vorbisenc.set_property('quality', 1) self.pipeline.add(self.vorbisenc) # WebMmux & filesink @@ -685,7 +711,8 @@ class VideoTranscoder: self.filesrc.link(self.decoder) # Link all the video elements in a link to webmux - self.videoqueue.link(self.ffmpegcolorspace) + self.videoqueue.link(self.videorate) + self.videorate.link(self.ffmpegcolorspace) self.ffmpegcolorspace.link(self.videoscale) self.videoscale.link(self.capsfilter) #self.capsfilter.link(self.xvimagesink) @@ -695,8 +722,12 @@ class VideoTranscoder: if self.data.is_audio: # Link all the audio elements in a line to webmux #self.audioconvert.link(self.alsasink) - self.audioqueue.link(self.audioconvert) - self.audioconvert.link(self.vorbisenc) + self.audioqueue.link(self.audiorate) + self.audiorate.link(self.audioconvert) + self.audioconvert.link(self.audiocapsfilter) + self.audiocapsfilter.link(self.vorbisenc) + #self.audiocapsfilter.link(self.level) + #self.level.link(self.vorbisenc) self.vorbisenc.link(self.webmmux) self.webmmux.link(self.progressreport) @@ -729,7 +760,7 @@ class VideoTranscoder: ''' Sets up the output format (width, height) for the video ''' - caps = ['video/x-raw-yuv', 'pixel-aspect-ratio=1/1'] + caps = ['video/x-raw-yuv', 'pixel-aspect-ratio=1/1', 'framerate=30/1'] if self.data.videoheight > self.data.videowidth: # Whoa! We have ourselves a portrait video! @@ -743,7 +774,7 @@ class VideoTranscoder: self.capsfilter.set_property( 'caps', gst.caps_from_string( - ', '.join(caps))) + ','.join(caps))) def _on_message(self, bus, message): _log.debug((bus, message, message.type)) From 359781f075f22c6ea677e28756c8046b2f405e63 Mon Sep 17 00:00:00 2001 From: Joar Wandborg <git@wandborg.com> Date: Wed, 16 Nov 2011 14:20:27 +0100 Subject: [PATCH 1160/2731] Fixed video transcoding - Added audiorate with tolerance 80 million - Removed deprecated thumbnailer --- mediagoblin/media_types/video/transcoders.py | 213 +------------------ 1 file changed, 1 insertion(+), 212 deletions(-) diff --git a/mediagoblin/media_types/video/transcoders.py b/mediagoblin/media_types/video/transcoders.py index de3701f6..f6a2eb21 100644 --- a/mediagoblin/media_types/video/transcoders.py +++ b/mediagoblin/media_types/video/transcoders.py @@ -340,218 +340,6 @@ class VideoThumbnailer: self.loop.quit() -class DeprecatedVideoThumbnailer: - ''' - Creates a video thumbnail - - - Sets up discoverer & transcoding pipeline. - Discoverer finds out information about the media file - - Launches gobject.MainLoop, this triggers the discoverer to start running - - Once the discoverer is done, it calls the __discovered callback function - - The __discovered callback function launches the transcoding process - - The _on_message callback is called from the transcoding process until it - gets a message of type gst.MESSAGE_EOS, then it calls __stop which shuts - down the gobject.MainLoop - ''' - - WADSWORTH_CONSTANT = 30 # percent - - def __init__(self, src, dst, **kwargs): - _log.info('Initializing VideoThumbnailer...') - - self.loop = gobject.MainLoop() - - self.source_path = src - self.destination_path = dst - - self.destination_dimensions = kwargs.get('dimensions') or (180, 180) - - if not type(self.destination_dimensions) == tuple: - raise Exception('dimensions must be tuple: (width, height)') - - self._setup() - self._run() - - def _setup(self): - self._setup_pipeline() - self._setup_discover() - - def _run(self): - _log.info('Discovering...') - self.discoverer.discover() - _log.info('Done') - - _log.debug('Initializing MainLoop()') - self.loop.run() - - def _setup_discover(self): - self.discoverer = discoverer.Discoverer(self.source_path) - - # Connect self.__discovered to the 'discovered' event - self.discoverer.connect('discovered', self.__discovered) - - def __discovered(self, data, is_media): - ''' - Callback for media discoverer. - ''' - if not is_media: - self.__stop() - raise Exception('Could not discover {0}'.format(self.source_path)) - - _log.debug('__discovered, data: {0}'.format(data)) - - self.data = data - - # Run any tasks that depend on the info from the discovery - self._on_discovered() - - # Tell the transcoding pipeline to start running - _log.info('Transcoding...') - - def _on_discovered(self): - self.__setup_capsfilter() - - def _setup_pipeline(self): - # Create a new pipeline - self.pipeline = gst.Pipeline('VideoThumbnailerPipeline') - - # Create the elements in the pipeline - self.filesrc = gst.element_factory_make('filesrc', 'filesrc') - self.filesrc.set_property('location', self.source_path) - self.pipeline.add(self.filesrc) - - self.decoder = gst.element_factory_make('decodebin2', 'decoder') - self.decoder.connect('new-decoded-pad', self._on_dynamic_pad) - self.pipeline.add(self.decoder) - - self.ffmpegcolorspace = gst.element_factory_make( - 'ffmpegcolorspace', 'ffmpegcolorspace') - self.pipeline.add(self.ffmpegcolorspace) - - self.videoscale = gst.element_factory_make('videoscale', 'videoscale') - self.videoscale.set_property('method', 'bilinear') - self.pipeline.add(self.videoscale) - - self.capsfilter = gst.element_factory_make('capsfilter', 'capsfilter') - self.pipeline.add(self.capsfilter) - - self.jpegenc = gst.element_factory_make('jpegenc', 'jpegenc') - self.pipeline.add(self.jpegenc) - - #self.filesink = gst.element_factory_make('filesink', 'filesink') - #self.filesink.set_property('location', self.destination_path) - #self.pipeline.add(self.filesink) - - self.appsink = gst.element_factory_make('appsink', 'appsink') - self.appsink.set_property('emit-signals', True) - self.appsink.connect('new-preroll', self.__on_sink_preroll) - self.pipeline.add(self.appsink) - - self.progressreport = gst.element_factory_make( - 'progressreport', 'progressreport') - self.progressreport.set_property('update-freq', 1) - self.pipeline.add(self.progressreport) - - self.identity = gst.element_factory_make('identity', 'id') - self.pipeline.add(self.identity) - - # Link all the elements together - self.filesrc.link(self.decoder) - self.ffmpegcolorspace.link(self.videoscale) - self.videoscale.link(self.capsfilter) - self.capsfilter.link(self.jpegenc) - self.jpegenc.link(self.progressreport) - self.progressreport.link(self.identity) - #self.identity.link(self.filesink) - self.identity.link(self.appsink) - - self.pipeline.set_state(gst.STATE_PAUSED) - - self._setup_bus() - - def __on_sink_preroll(self, sink): - _log.debug('SINK PREROLL!!!!') - - def _on_dynamic_pad(self, dbin, pad, islast): - ''' - Callback called when ``decodebin2`` has a pad that we can connect to - ''' - # Intersect the capabilities of the video sink and the pad src - # Then check if they have no common capabilities. - if not self.ffmpegcolorspace.get_pad_template('sink')\ - .get_caps().intersect(pad.get_caps()).is_empty(): - # It IS a video src pad. - pad.link(self.ffmpegcolorspace.get_pad('sink')) - gst.DEBUG_BIN_TO_DOT_FILE( - self.pipeline, - gst.DEBUG_GRAPH_SHOW_ALL, - 'ss') - - def _setup_bus(self): - self.bus = self.pipeline.get_bus() - self.bus.add_signal_watch() - self.bus.connect('message', self._on_message) - - def __setup_capsfilter(self): - caps = ['video/x-raw-rgb', 'pixel-aspect-ratio=1/1'] - - if self.data.videoheight > self.data.videowidth: - # Whoa! We have ourselves a portrait video! - caps.append('height={0}'.format( - self.destination_dimensions[1])) - else: - # It's a landscape, phew, how normal. - caps.append('width={0}'.format( - self.destination_dimensions[0])) - - self.capsfilter.set_property( - 'caps', - gst.caps_from_string( - ', '.join(caps))) - - def __find_wadsworth(self): - if self.decoder.seek_simple( - gst.FORMAT_PERCENT, - gst.SEEK_FLAG_NONE, - 0 * 10000): - _log.info('Found wadsworth') - #pdb.set_trace() - #self.pipeline.set_state(gst.STATE_PLAYING) - self.__get_buffer() - self.__stop() - else: - pdb.set_trace() - - def __get_buffer(self): - buffer = self.appsink.emit('pull-preroll') - open(self.destination_path, 'wb').write(buffer) - - def _on_message(self, bus, message): - t = message.type - - _log.debug(( - t == gst.MESSAGE_ASYNC_DONE, - bus, - message)) - - if t == gst.MESSAGE_EOS: - self.__stop() - _log.info('Got EOS') - elif t == gst.MESSAGE_ASYNC_DONE: - #pdb.set_trace() - self.__find_wadsworth() - elif t == gst.MESSAGE_ERROR: - _log.error((bus, message)) - self.__stop() - - def __stop(self): - _log.debug(self.loop) - - self.pipeline.set_state(gst.STATE_NULL) - - gobject.idle_add(self.loop.quit) - - class VideoTranscoder: ''' Video transcoder @@ -664,6 +452,7 @@ class VideoTranscoder: self.pipeline.add(self.audioqueue) self.audiorate = gst.element_factory_make('audiorate', 'audiorate') + self.audiorate.set_property('tolerance', 80000000) self.pipeline.add(self.audiorate) self.audioconvert = gst.element_factory_make('audioconvert', 'audioconvert') From 76c6c806caec7af20a3fe11c04bb783baacc3934 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber <cwebber@dustycloud.org> Date: Wed, 16 Nov 2011 17:53:46 -0600 Subject: [PATCH 1161/2731] Accidentally had user['profile'] where it shoulda been user['bio'] --- mediagoblin/templates/mediagoblin/user_pages/user.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index c5beeaaa..6d938262 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -78,7 +78,7 @@ {%- trans username=user.username %}{{ username }}'s profile{% endtrans -%} </h1> - {% if not user['url'] and not user['profile'] %} + {% if not user['url'] and not user['bio'] %} {% if request.user['_id'] == user['_id'] %} <div class="grid_6 alpha empty_space"> <p> From ccca0fbfc3667900d0a5ad3687c27f4fd72db061 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber <cwebber@dustycloud.org> Date: Thu, 17 Nov 2011 08:28:23 -0600 Subject: [PATCH 1162/2731] Beginnings of sqlalchemy models --- mediagoblin/db/sql.py | 95 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 mediagoblin/db/sql.py diff --git a/mediagoblin/db/sql.py b/mediagoblin/db/sql.py new file mode 100644 index 00000000..31ebfbf4 --- /dev/null +++ b/mediagoblin/db/sql.py @@ -0,0 +1,95 @@ +import datetime + +from sqlalchemy.ext.declarative import declarative_base +from sqlalchemy import ( + Column, Integer, Unicode, UnicodeText, DateTime, Boolean, ForeignKey, + UniqueConstraint) + + +Base = declarative_base() + + +class User(Base): + __tablename__ = "users" + + id = Column(Integer, primary_key=True) + username = Column(Unicode, nullable=False, unique=True) + email = Column(Unicode, nullable=False) + created = Column(DateTime, nullable=False, default=datetime.datetime.now) + pw_hash = Column(Unicode, nullable=False) + email_verified = Column(Boolean) + status = Column(Unicode, default="needs_email_verification", nullable=False) + verification_key = Column(Unicode) + is_admin = Column(Boolean, default=False, nullable=False) + url = Column(Unicode) + bio = Column(UnicodeText) # ?? + bio_html = Column(UnicodeText) # ?? + fp_verification_key = Column(Unicode) + fp_verification_expire = Column(DateTime) + + ## TODO + # plugin data would be in a separate model + + +class MediaEntry(Base): + __tablename__ = "media_entries" + + id = Column(Integer, primary_key=True) + uploader = Column(Integer, ForeignKey('users.id'), nullable=False) + slug = Column(Unicode, nullable=False) + created = Column(DateTime, nullable=False, default=datetime.datetime.now) + description = Column(UnicodeText) # ?? + description_html = Column(UnicodeText) # ?? + media_type = Column(Unicode, nullable=False) + + fail_error = Column(Unicode) + fail_metadata = Column(UnicodeText) + + queued_media_file = Column(Unicode) + + queued_task_id = Column(Unicode) + + __table_args__ = ( + UniqueConstraint('uploader', 'slug'), + {}) + + ## TODO + # media_files + # media_data + # attachment_files + # fail_error + + +class Tag(Base): + __tablename__ = "tags" + + id = Column(Integer, primary_key=True) + slug = Column(Unicode, nullable=False, unique=True) + + +class MediaTag(Base): + __tablename__ = "media_tags" + + id = Column(Integer, primary_key=True) + tag = Column(Integer, ForeignKey('tags.id'), nullable=False) + name = Column(Unicode) + media_entry = Column( + Integer, ForeignKey('media_entries.id'), + nullable=False) + # created = Column(DateTime, nullable=False, default=datetime.datetime.now) + + __table_args__ = ( + UniqueConstraint('tag', 'media_entry'), + {}) + + +class MediaComment(Base): + __tablename__ = "media_comments" + + id = Column(Integer, primary_key=True) + media_entry = Column( + Integer, ForeignKey('media_entries.id'), nullable=False) + author = Column(Integer, ForeignKey('users.id'), nullable=False) + created = Column(DateTime, nullable=False, default=datetime.datetime.now) + content = Column(UnicodeText, nullable=False) + content_html = Column(UnicodeText) From 6950c6c77c2daf4a47810e05a7c3f64f8995059d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber <cwebber@dustycloud.org> Date: Sat, 19 Nov 2011 08:31:37 -0600 Subject: [PATCH 1163/2731] Adding app_config and global_config to the template environment --- mediagoblin/tools/template.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mediagoblin/tools/template.py b/mediagoblin/tools/template.py index 905a36df..a0eaabe7 100644 --- a/mediagoblin/tools/template.py +++ b/mediagoblin/tools/template.py @@ -55,6 +55,8 @@ def get_jinja_env(template_loader, locale): template_env.globals['fetch_messages'] = messages.fetch_messages template_env.globals['gridify_list'] = gridify_list template_env.globals['gridify_cursor'] = gridify_cursor + template_env.globals['app_config'] = mg_globals.app_config + template_env.globals['global_config'] = mg_globals.global_config if exists(locale): SETUP_JINJA_ENVS[locale] = template_env From 53bc39755bf22fe8eebf06b051018eba111a64e7 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber <cwebber@dustycloud.org> Date: Sat, 19 Nov 2011 08:33:29 -0600 Subject: [PATCH 1164/2731] Add app_config and global_config to the template environment --- mediagoblin/tools/template.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mediagoblin/tools/template.py b/mediagoblin/tools/template.py index a0eaabe7..0986761b 100644 --- a/mediagoblin/tools/template.py +++ b/mediagoblin/tools/template.py @@ -52,6 +52,7 @@ def get_jinja_env(template_loader, locale): # All templates will know how to ... # ... fetch all waiting messages and remove them from the queue # ... construct a grid of thumbnails or other media + # ... have access to the global and app config template_env.globals['fetch_messages'] = messages.fetch_messages template_env.globals['gridify_list'] = gridify_list template_env.globals['gridify_cursor'] = gridify_cursor From 3c0411f51f43ade8c7d47df4f3843fd79d4709b5 Mon Sep 17 00:00:00 2001 From: "Pablo J. Urbano Santos" <flamma@member.fsf.org> Date: Sat, 19 Nov 2011 17:07:41 +0100 Subject: [PATCH 1165/2731] Allow instance owners to customize html titles of page: Added html_title config option. Made base.html template use html_title option as page title. --- mediagoblin/config_spec.ini | 3 +++ mediagoblin/templates/mediagoblin/base.html | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini index 900957ce..b804358c 100644 --- a/mediagoblin/config_spec.ini +++ b/mediagoblin/config_spec.ini @@ -1,4 +1,7 @@ [mediagoblin] +# HTML title of the pages +html_title = string(default="GNU MediaGoblin") + # database stuff db_host = string() db_name = string(default="mediagoblin") diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 925386e5..0d6b9e40 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -19,7 +19,7 @@ <html> <head> <meta charset="utf-8"> - <title>{% block title %}{% trans %}GNU MediaGoblin{% endtrans %}{% endblock title %} + {{ app_config['html_title'] }} Date: Sat, 19 Nov 2011 19:11:42 +0100 Subject: [PATCH 1166/2731] Added parameter ascending to MediaEntry::get_comments, if true, comments will be ordered ascending, otherwise descending --- mediagoblin/db/models.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 1c1bc2fd..f13a4457 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -217,9 +217,14 @@ class MediaEntry(Document): 'created': datetime.datetime.utcnow, 'state': u'unprocessed'} - def get_comments(self): + def get_comments(self, ascending=False): + if ascending: + order = ASCENDING + else: + order = DESCENDING + return self.db.MediaComment.find({ - 'media_entry': self._id}).sort('created', DESCENDING) + 'media_entry': self._id}).sort('created', order) def get_display_media(self, media_map, fetch_order=common.DISPLAY_IMAGE_FETCHING_ORDER): From 1a3138addd43d410b03cdd1816e0a62bd217de30 Mon Sep 17 00:00:00 2001 From: "Pablo J. Urbano Santos" Date: Sat, 19 Nov 2011 19:15:41 +0100 Subject: [PATCH 1167/2731] media_home: order comments by ascending date. --- mediagoblin/user_pages/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 82865bb4..98a21bb4 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -106,11 +106,11 @@ def media_home(request, media, page, **kwargs): """ if ObjectId(request.matchdict.get('comment')): pagination = Pagination( - page, media.get_comments(), MEDIA_COMMENTS_PER_PAGE, + page, media.get_comments(True), MEDIA_COMMENTS_PER_PAGE, ObjectId(request.matchdict.get('comment'))) else: pagination = Pagination( - page, media.get_comments(), MEDIA_COMMENTS_PER_PAGE) + page, media.get_comments(True), MEDIA_COMMENTS_PER_PAGE) comments = pagination() From fc5695c538f2b6d230c0e431087e9c10e6deac6c Mon Sep 17 00:00:00 2001 From: Corey Farwell Date: Sat, 19 Nov 2011 10:43:31 -0800 Subject: [PATCH 1168/2731] incorrect path in nginx config --- docs/source/deploying.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/deploying.rst b/docs/source/deploying.rst index c2ba0c47..b944a3d3 100644 --- a/docs/source/deploying.rst +++ b/docs/source/deploying.rst @@ -207,7 +207,7 @@ this ``nginx.conf`` file should be modeled on the following: :: # Instance specific media: location /mgoblin_media/ { - alias /srv/mediagoblin.example.org/mediagoblin/mediagoblin/user_dev/media/public/; + alias /srv/mediagoblin.example.org/mediagoblin/user_dev/media/public/; } # Mounting MediaGoblin itself via fastcgi. From b4b7b6a57a5ad9a5e52a5d3e05f9ad3d3e8b650a Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 19 Nov 2011 13:42:30 -0600 Subject: [PATCH 1169/2731] Added Corey Farwell to the list of contributors --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index c9fc5c8e..b0ef7154 100644 --- a/AUTHORS +++ b/AUTHORS @@ -13,6 +13,7 @@ Thank you! * Alex Camelio * Bernhard Keller * Caleb Forbes Davis V +* Corey Farwell * Chris Moylan * Christopher Allan Webber * Daniel Neel From 7c378f2cd5324a05e709cbada5eb5668ce3a3469 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 19 Nov 2011 14:01:38 -0600 Subject: [PATCH 1170/2731] Allow user to set whether comments are ascending or descending --- mediagoblin/config_spec.ini | 3 +++ mediagoblin/user_pages/views.py | 8 ++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini index 900957ce..4d412346 100644 --- a/mediagoblin/config_spec.ini +++ b/mediagoblin/config_spec.ini @@ -27,6 +27,9 @@ allow_registration = boolean(default=True) tags_delimiter = string(default=",") tags_max_length = integer(default=50) +# Whether comments are ascending or descending +comments_ascending = boolean(default=True) + # By default not set, but you might want something like: # "%(here)s/user_dev/templates/" local_templates = string() diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 98a21bb4..25fd2ebb 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -106,11 +106,15 @@ def media_home(request, media, page, **kwargs): """ if ObjectId(request.matchdict.get('comment')): pagination = Pagination( - page, media.get_comments(True), MEDIA_COMMENTS_PER_PAGE, + page, media.get_comments( + mg_globals.app_config['comments_ascending']), + MEDIA_COMMENTS_PER_PAGE, ObjectId(request.matchdict.get('comment'))) else: pagination = Pagination( - page, media.get_comments(True), MEDIA_COMMENTS_PER_PAGE) + page, media.get_comments( + mg_globals.app_config['comments_ascending']), + MEDIA_COMMENTS_PER_PAGE) comments = pagination() From 1bc231c766c41f61aee6d91c631bd972426b277b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 19 Nov 2011 14:03:01 -0600 Subject: [PATCH 1171/2731] Added Pablo Santos to the AUTHORS file --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index b0ef7154..76e16b86 100644 --- a/AUTHORS +++ b/AUTHORS @@ -28,6 +28,7 @@ Thank you! * Nathan Yergler * Odin Hørthe Omdal * Osama Khalid +* Pablo J. Urbano Santos * Rasmus Larsson * Sam Kleinman * Sebastian Spaeth From 7880168526032bc2ddce96257d8f62a01e562832 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 19 Nov 2011 14:06:48 -0600 Subject: [PATCH 1172/2731] Added back the title block --- mediagoblin/templates/mediagoblin/base.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 0d6b9e40..64fafb73 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -19,7 +19,7 @@ - {{ app_config['html_title'] }} + {% block title %}{{ app_config['html_title'] }}{% endblock %} Date: Sat, 19 Nov 2011 23:46:42 +0100 Subject: [PATCH 1173/2731] Change form structure and add relevant CSS rules --- mediagoblin/static/css/base.css | 6 +++++- mediagoblin/templates/mediagoblin/utils/wtforms.html | 12 +++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index afd10207..a7b659c3 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -212,7 +212,11 @@ text-align: center; width: 100%; } -.form_field_label,.form_field_input { +.form_field_input { + margin-bottom: 10px; +} + +.form_field_label { margin-bottom: 4px; } diff --git a/mediagoblin/templates/mediagoblin/utils/wtforms.html b/mediagoblin/templates/mediagoblin/utils/wtforms.html index 6a86fd24..39dca7cc 100644 --- a/mediagoblin/templates/mediagoblin/utils/wtforms.html +++ b/mediagoblin/templates/mediagoblin/utils/wtforms.html @@ -18,18 +18,16 @@ {# Generically render a field #} {% macro render_field_div(field) %} -
-
{{ _(field.label.text) }}
-
{{ field }}
+

+
+ {{ field }} {%- if field.errors -%} {% for error in field.errors %} -
- {{ error }} -
+

{{ error }}

{% endfor %} {%- endif %} {% if field.description -%} -
{{ _(field.description) }}
+

{{ _(field.description) }}

{%- endif %}
{%- endmacro %} From 2d62e9efd210becd30982e65e06a6ef97029b391 Mon Sep 17 00:00:00 2001 From: lora Date: Sat, 19 Nov 2011 17:00:25 -0600 Subject: [PATCH 1174/2731] issue 582: use media.slug instead of media.id --- mediagoblin/decorators.py | 3 +-- mediagoblin/templates/mediagoblin/user_pages/media.html | 4 ++-- .../mediagoblin/user_pages/media_confirm_delete.html | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index 19e22bca..38f52ced 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -58,7 +58,7 @@ def user_may_delete_media(controller): """ def wrapper(request, *args, **kwargs): uploader = request.db.MediaEntry.find_one( - {'_id': ObjectId(request.matchdict['media'])}).uploader() + {'slug': request.matchdict['media'] }).uploader() if not (request.user['is_admin'] or request.user['_id'] == uploader['_id']): return exc.HTTPForbidden() @@ -95,7 +95,6 @@ def get_user_media_entry(controller): if not user: return render_404(request) - media = request.db.MediaEntry.find_one( {'slug': request.matchdict['media'], 'state': 'processed', diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 433f74dc..5e1b73de 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -124,7 +124,7 @@

{% set edit_url = request.urlgen('mediagoblin.edit.edit_media', user= media.uploader().username, - media= media._id) %} + media= media.slug) %} @@ -133,7 +133,7 @@

{% set delete_url = request.urlgen('mediagoblin.user_pages.media_confirm_delete', user= media.uploader().username, - media= media._id) %} + media= media.slug) %} diff --git a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html index dd6923a9..f62082bd 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html @@ -23,7 +23,7 @@

From 909dda1f85b27866e0d20343169c91953ca7d8f6 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 20 Nov 2011 00:28:19 +0100 Subject: [PATCH 1175/2731] Change button style a bit --- mediagoblin/static/css/base.css | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index a7b659c3..8d9756b9 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -99,20 +99,14 @@ a.mediagoblin_logo{ } .header_submit, .header_submit_highlight{ - color: #272727; - background-color: #aaa; - background-image: -webkit-gradient(linear, left top, left bottom, from(##D2D2D2), to(#aaa)); - background-image: -webkit-linear-gradient(top, #D2D2D2, #aaa); - background-image: -moz-linear-gradient(top, #D2D2D2, #aaa); - background-image: -ms-linear-gradient(top, #D2D2D2, #aaa); - background-image: -o-linear-gradient(top, #D2D2D2, #aaa); - background-image: linear-gradient(top, #D2D2D2, #aaa); - box-shadow: 0px 0px 4px #000; - border-radius: 3px; + color: #c3c3c3; + background-color: #2d2d2d; + border: 1px solid; + border-color: #323232 #232323 #1F1F1F; + border-radius: 4px; margin: 8px; padding: 3px 8px; text-decoration: none; - border: medium none; font-style: normal; font-weight: bold; font-size: 1em; @@ -301,7 +295,7 @@ img.media_icon{ background-color: #1d1d1d; border: 1px solid; border-color: #2c2c2c #232323 #1a1a1a; - border-radius: 3px; + border-radius: 4px; text-decoration: none; padding: 8px 0px 14px; font-size: 2em; From 4837b2f253e7f525eb4eb97a574c8af68c0ff570 Mon Sep 17 00:00:00 2001 From: Jakob Kramer Date: Sat, 19 Nov 2011 22:17:21 +0100 Subject: [PATCH 1176/2731] added support for changing the password, issue #643 --- mediagoblin/edit/forms.py | 13 +++++++++++++ mediagoblin/edit/views.py | 34 ++++++++++++++++++++++++---------- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index 7e71722c..ec4e22b3 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -43,6 +43,19 @@ class EditProfileForm(wtforms.Form): _('Website'), [wtforms.validators.Optional(), wtforms.validators.URL(message='Improperly formed URL')]) + old_password = wtforms.PasswordField( + _('Old password'), + [wtforms.validators.Optional()]) + new_password = wtforms.PasswordField( + _('New Password'), + [wtforms.validators.Optional(), + wtforms.validators.Length(min=6, max=30), + wtforms.validators.EqualTo( + 'confirm_password', + 'Passwords must match.')]) + confirm_password = wtforms.PasswordField( + 'Confirm password', + [wtforms.validators.Optional()]) class EditAttachmentsForm(wtforms.Form): diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 5f781552..75bf51bf 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -26,6 +26,7 @@ from werkzeug.utils import secure_filename from mediagoblin import messages from mediagoblin import mg_globals +from mediagoblin.auth import lib as auth_lib from mediagoblin.edit import forms from mediagoblin.edit.lib import may_edit_media from mediagoblin.decorators import require_active_login, get_user_media_entry @@ -161,19 +162,32 @@ def edit_profile(request): bio=user.get('bio')) if request.method == 'POST' and form.validate(): - user['url'] = unicode(request.POST['url']) - user['bio'] = unicode(request.POST['bio']) + user['url'] = unicode(request.POST['url']) + user['bio'] = unicode(request.POST['bio']) - user['bio_html'] = cleaned_markdown_conversion(user['bio']) - - user.save() + password_matches = auth_lib.bcrypt_check_password(request.POST['old_password'], + user['pw_hash']) + if (request.POST['old_password'] or request.POST['new_password']) and not \ + password_matches: messages.add_message(request, - messages.SUCCESS, - _("Profile edited!")) - return redirect(request, - 'mediagoblin.user_pages.user_home', - user=edit_username) + messages.ERROR, + _('Wrong password')) + + if password_matches: + user['pw_hash'] = auth_lib.bcrypt_gen_password_hash( + request.POST['new_password']) + + user['bio_html'] = cleaned_markdown_conversion(user['bio']) + + user.save() + + messages.add_message(request, + messages.SUCCESS, + _("Profile edited!")) + return redirect(request, + 'mediagoblin.user_pages.user_home', + user=edit_username) return render_to_response( request, From c8ccd23e8e0d77df3e7382cd6330e0c993bbcc8e Mon Sep 17 00:00:00 2001 From: Jakob Kramer Date: Sun, 20 Nov 2011 00:35:09 +0100 Subject: [PATCH 1177/2731] added unittests, now using form errors and fixed bug when no GET parameter is given for /edit/profile/ --- mediagoblin/edit/views.py | 23 ++++--- mediagoblin/tests/test_edit.py | 112 +++++++++++++++++++++++++++++++++ 2 files changed, 126 insertions(+), 9 deletions(-) create mode 100644 mediagoblin/tests/test_edit.py diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 75bf51bf..673409bd 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -162,17 +162,22 @@ def edit_profile(request): bio=user.get('bio')) if request.method == 'POST' and form.validate(): - user['url'] = unicode(request.POST['url']) - user['bio'] = unicode(request.POST['bio']) - - password_matches = auth_lib.bcrypt_check_password(request.POST['old_password'], - user['pw_hash']) + password_matches = auth_lib.bcrypt_check_password( + request.POST['old_password'], + user['pw_hash']) if (request.POST['old_password'] or request.POST['new_password']) and not \ password_matches: - messages.add_message(request, - messages.ERROR, - _('Wrong password')) + form.old_password.errors.append(_('Wrong password')) + + return render_to_response( + request, + 'mediagoblin/edit/edit_profile.html', + {'user': user, + 'form': form}) + + user['url'] = unicode(request.POST['url']) + user['bio'] = unicode(request.POST['bio']) if password_matches: user['pw_hash'] = auth_lib.bcrypt_gen_password_hash( @@ -187,7 +192,7 @@ def edit_profile(request): _("Profile edited!")) return redirect(request, 'mediagoblin.user_pages.user_home', - user=edit_username) + user=user['username']) return render_to_response( request, diff --git a/mediagoblin/tests/test_edit.py b/mediagoblin/tests/test_edit.py new file mode 100644 index 00000000..3637b046 --- /dev/null +++ b/mediagoblin/tests/test_edit.py @@ -0,0 +1,112 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from mediagoblin import mg_globals +from mediagoblin.tests.tools import setup_fresh_app +from mediagoblin.tools import template +from mediagoblin.auth.lib import bcrypt_check_password, \ + bcrypt_gen_password_hash + + +@setup_fresh_app +def test_change_password(test_app): + """Test changing password correctly and incorrectly""" + # set up new user + test_user = mg_globals.database.User() + test_user['username'] = u'chris' + test_user['email'] = u'chris@example.com' + test_user['email_verified'] = True + test_user['status'] = u'active' + test_user['pw_hash'] = bcrypt_gen_password_hash('toast') + test_user.save() + + test_app.post( + '/auth/login/', { + 'username': u'chris', + 'password': 'toast'}) + + # test that the password can be changed + # template.clear_test_template_context() + test_app.post( + '/edit/profile/', { + 'bio': u'', + 'url': u'', + 'old_password': 'toast', + 'new_password': '123456', + 'confirm_password': '123456'}) + + # test_user has to be fetched again in order to have the current values + test_user = mg_globals.database.User.one({'username': 'chris'}) + + assert bcrypt_check_password('123456', test_user['pw_hash']) + + # test that the password cannot be changed if the given old_password + # is wrong + # template.clear_test_template_context() + test_app.post( + '/edit/profile/', { + 'bio': u'', + 'url': u'', + 'old_password': 'toast', + 'new_password': '098765', + 'confirm_password': '098765'}) + + test_user = mg_globals.database.User.one({'username': 'chris'}) + + assert not bcrypt_check_password('098765', test_user['pw_hash']) + + +@setup_fresh_app +def change_bio_url(test_app): + """Test changing bio and URL""" + # set up new user + test_user = mg_globals.database.User() + test_user['username'] = u'chris' + test_user['email'] = u'chris@example.com' + test_user['email_verified'] = True + test_user['status'] = u'active' + test_user['pw_hash'] = bcrypt_gen_password_hash('toast') + test_user.save() + + # test changing the bio and the URL properly + test_app.post( + '/edit/profile/', { + 'bio': u'I love toast!', + 'url': u'http://dustycloud.org/'}) + + test_user = mg_globals.database.User.one({'username': 'chris'}) + + assert test_user['bio'] == u'I love toast!' + assert test_user['url'] == u'http://dustycloud.org/' + + # test changing the bio and the URL inproperly + too_long_bio = 150 * 'T' + 150 * 'o' + 150 * 'a' + 150 * 's' + 150* 't' + + test_app.post( + '/edit/profile/', { + # more than 500 characters + 'bio': too_long_bio, + 'url': 'this-is-no-url'}) + + test_user = mg_globals.database.User.one({'username': 'chris'}) + + context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/edit/edit_profile.html'] + form = context['edit_profile_form'] + + assert form.bio.errors == [u'Field must be between 0 and 500 characters long.'] + assert form.url.errors == [u'Improperly formed URL'] + + # test changing the url inproperly From 5bd523eb23e7c30b52e41cdb0f02053d8573ce63 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 20 Nov 2011 01:12:10 +0100 Subject: [PATCH 1178/2731] Change to background of "empty_space", it now uses an image --- mediagoblin/static/css/base.css | 2 +- mediagoblin/static/images/empty_back.png | Bin 0 -> 191 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 mediagoblin/static/images/empty_back.png diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 8d9756b9..d61292a2 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -177,7 +177,7 @@ text-align: center; } .empty_space{ - background-color: #222; + background-image: url("../images/empty_back.png"); font-style: italic; text-align: center; height: 160px; diff --git a/mediagoblin/static/images/empty_back.png b/mediagoblin/static/images/empty_back.png new file mode 100644 index 0000000000000000000000000000000000000000..3522ddd3c56c5c9f3ca8c2fdd93a0564f352a58d GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4u@pObhHwBu4M$1`kk47*5m^kR ztU#FYL&_vCprB-lYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt(p5E{-7* zQ Date: Sun, 20 Nov 2011 01:43:48 +0100 Subject: [PATCH 1179/2731] Another change to button style. Renamed header_submit, header_submit_highlight and button classes, correct all references to these --- mediagoblin/static/css/base.css | 39 ++++++++++--------- .../templates/mediagoblin/auth/change_fp.html | 2 +- .../mediagoblin/auth/forgot_password.html | 2 +- .../templates/mediagoblin/auth/login.html | 4 +- .../templates/mediagoblin/auth/register.html | 2 +- mediagoblin/templates/mediagoblin/base.html | 6 +-- .../mediagoblin/edit/attachments.html | 2 +- .../templates/mediagoblin/edit/edit.html | 2 +- .../mediagoblin/edit/edit_profile.html | 2 +- mediagoblin/templates/mediagoblin/root.html | 4 +- .../templates/mediagoblin/submit/start.html | 2 +- .../templates/mediagoblin/test_submit.html | 2 +- .../mediagoblin/user_pages/media.html | 2 +- .../user_pages/media_confirm_delete.html | 2 +- .../mediagoblin/user_pages/user.html | 6 +-- 15 files changed, 40 insertions(+), 39 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index d61292a2..cec236f4 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -98,24 +98,6 @@ a.mediagoblin_logo{ font-weight: bold; } -.header_submit, .header_submit_highlight{ - color: #c3c3c3; - background-color: #2d2d2d; - border: 1px solid; - border-color: #323232 #232323 #1F1F1F; - border-radius: 4px; - margin: 8px; - padding: 3px 8px; - text-decoration: none; - font-style: normal; - font-weight: bold; - font-size: 1em; -} - -.header_submit_highlight{ -background-image: -moz-linear-gradient(center top , rgb(134, 212, 177), rgb(109, 173, 144)); -} - .mediagoblin_footer { height: 30px; border-top: 1px solid #333; @@ -135,7 +117,26 @@ background-image: -moz-linear-gradient(center top , rgb(134, 212, 177), rgb(109, /* common website elements */ -.button, .cancel_link { +.button_action, .button_action_highlight{ + color: #c3c3c3; + background-color: #363636; + border: 1px solid; + border-color: #464646 #2B2B2B #252525; + border-radius: 4px; + margin: 8px; + padding: 3px 8px; + text-decoration: none; + font-style: normal; + font-weight: bold; + font-size: 1em; +} + +.button_action_highlight{ +background-image: -moz-linear-gradient(center top , rgb(134, 212, 177), rgb(109, 173, 144)); +} + + +.button_form, .cancel_link { height: 32px; min-width: 99px; background-color: #86d4b1; diff --git a/mediagoblin/templates/mediagoblin/auth/change_fp.html b/mediagoblin/templates/mediagoblin/auth/change_fp.html index 53186cec..fa972085 100644 --- a/mediagoblin/templates/mediagoblin/auth/change_fp.html +++ b/mediagoblin/templates/mediagoblin/auth/change_fp.html @@ -30,7 +30,7 @@ {{ wtforms_util.render_divs(cp_form) }}
- +

diff --git a/mediagoblin/templates/mediagoblin/auth/forgot_password.html b/mediagoblin/templates/mediagoblin/auth/forgot_password.html index 9b821426..41940742 100644 --- a/mediagoblin/templates/mediagoblin/auth/forgot_password.html +++ b/mediagoblin/templates/mediagoblin/auth/forgot_password.html @@ -27,7 +27,7 @@

{% trans %}Recover password{% endtrans %}

{{ wtforms_util.render_divs(fp_form) }}
- +
diff --git a/mediagoblin/templates/mediagoblin/auth/login.html b/mediagoblin/templates/mediagoblin/auth/login.html index 756f67c0..c3807e5f 100644 --- a/mediagoblin/templates/mediagoblin/auth/login.html +++ b/mediagoblin/templates/mediagoblin/auth/login.html @@ -42,10 +42,10 @@ {% trans %}Forgot your password?{% endtrans %}

- +
{% if next %} - {% endif %}

diff --git a/mediagoblin/templates/mediagoblin/auth/register.html b/mediagoblin/templates/mediagoblin/auth/register.html index 25b68058..a0d0a277 100644 --- a/mediagoblin/templates/mediagoblin/auth/register.html +++ b/mediagoblin/templates/mediagoblin/auth/register.html @@ -29,7 +29,7 @@ {{ csrf_token }}
+ class="button_form" />
diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 64fafb73..ede5f5c6 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -47,7 +47,7 @@ alt="{% trans %}MediaGoblin logo{% endtrans %}" /> {% endblock %} {% if request.user and request.user['status'] == 'active' %} - {% trans %}Submit media{% endtrans %} @@ -59,8 +59,8 @@ {% if request.user.status == "needs_email_verification" %} - {% trans %}verify your email!{% endtrans %} + class="button_action_highlight"> + {% trans %}Verify your email!{% endtrans %} {% endif %} Cancel - + {{ csrf_token }}
diff --git a/mediagoblin/templates/mediagoblin/edit/edit.html b/mediagoblin/templates/mediagoblin/edit/edit.html index b4b3be85..73c2bada 100644 --- a/mediagoblin/templates/mediagoblin/edit/edit.html +++ b/mediagoblin/templates/mediagoblin/edit/edit.html @@ -34,7 +34,7 @@ {{ wtforms_util.render_divs(form) }}
{% trans %}Cancel{% endtrans %} - + {{ csrf_token }}
diff --git a/mediagoblin/templates/mediagoblin/edit/edit_profile.html b/mediagoblin/templates/mediagoblin/edit/edit_profile.html index 93b2a792..bf8fe5c1 100644 --- a/mediagoblin/templates/mediagoblin/edit/edit_profile.html +++ b/mediagoblin/templates/mediagoblin/edit/edit_profile.html @@ -32,7 +32,7 @@ {{ wtforms_util.render_divs(form) }}
- + {{ csrf_token }}
diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index 43d973d1..25ce9e96 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -30,9 +30,9 @@ {% if allow_registration %}

{% trans %}Don't have one yet? It's easy!{% endtrans %}

{% trans register_url=request.urlgen('mediagoblin.auth.register') -%} - Create an account at this site + Create an account at this site or - Set up MediaGoblin on your own server + Set up MediaGoblin on your own server {%- endtrans %} {% endif %} diff --git a/mediagoblin/templates/mediagoblin/submit/start.html b/mediagoblin/templates/mediagoblin/submit/start.html index 29b01181..1a0dd4b7 100644 --- a/mediagoblin/templates/mediagoblin/submit/start.html +++ b/mediagoblin/templates/mediagoblin/submit/start.html @@ -27,7 +27,7 @@ {{ wtforms_util.render_divs(submit_form) }}
{{ csrf_token }} - +
diff --git a/mediagoblin/templates/mediagoblin/test_submit.html b/mediagoblin/templates/mediagoblin/test_submit.html index 190b9ac3..38be8efc 100644 --- a/mediagoblin/templates/mediagoblin/test_submit.html +++ b/mediagoblin/templates/mediagoblin/test_submit.html @@ -25,7 +25,7 @@ {{ wtforms_util.render_table(image_form) }} - + {{ csrf_token }} diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 4b02b684..c8a9650f 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -98,7 +98,7 @@ media=media._id) }}" method="POST"> {{ wtforms_util.render_divs(comment_form) }}
- + {{ csrf_token }}
diff --git a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html index 8da90f79..c3a9d622 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html @@ -47,7 +47,7 @@
{# TODO: This isn't a button really... might do unexpected things :) #} {% trans %}Cancel{% endtrans %} - + {{ csrf_token }}
diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index d6a9fe1f..91dd2369 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -62,7 +62,7 @@

{% trans %}In case it doesn't:{% endtrans %}

{% trans %}Resend verification email{% endtrans %} + class="button_form">{% trans %}Resend verification email{% endtrans %} {% else %} {# if the user is not you, but still needs to verify their email #} @@ -97,7 +97,7 @@

+ class="button_action"> {%- trans %}Edit profile{% endtrans -%} @@ -147,7 +147,7 @@ This is where your media will appear, but you don't seem to have added anything yet. {%- endtrans %}

- {%- trans %}Add media{% endtrans -%} From 5ab3855e1f8fd94058ccea76ef2d5a1d795cc93a Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 20 Nov 2011 01:46:21 +0100 Subject: [PATCH 1180/2731] Slight change to error wording --- mediagoblin/auth/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 8412b81c..54cb1ab5 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -74,7 +74,7 @@ def register(request): extra_validation_passes = False if users_with_email: register_form.email.errors.append( - _(u'Sorry, that email address has already been taken.')) + _(u'Sorry, a user with that email address already exists.')) extra_validation_passes = False if extra_validation_passes: From c6c08a2f296be16dbde4a5041bd6adc0d215d29d Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 20 Nov 2011 01:57:02 +0100 Subject: [PATCH 1181/2731] Small correction, this button should be button_action, not button_form --- mediagoblin/templates/mediagoblin/user_pages/user.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 91dd2369..5a39aaa5 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -62,7 +62,7 @@

{% trans %}In case it doesn't:{% endtrans %}

{% trans %}Resend verification email{% endtrans %} + class="button_action_highlight">{% trans %}Resend verification email{% endtrans %} {% else %} {# if the user is not you, but still needs to verify their email #} From 88f20b58b29a4edbfbc24378a991d82de8e7b975 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 20 Nov 2011 01:57:29 +0100 Subject: [PATCH 1182/2731] Slight style changes to button_action_highlight --- mediagoblin/static/css/base.css | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index cec236f4..c26e11af 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -132,7 +132,9 @@ a.mediagoblin_logo{ } .button_action_highlight{ -background-image: -moz-linear-gradient(center top , rgb(134, 212, 177), rgb(109, 173, 144)); + background-color: #86D4B1; + border-color: #A2DEC3 #6CAA8E #5C9179; + color: #283F35; } From cee794a8f7ac82ee7681f749e56411c910e281a6 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 20 Nov 2011 15:34:40 +0100 Subject: [PATCH 1183/2731] Fix for bug #467, "Add explanatory copy to add/edit picture pages saying that tags are comma-separated" --- mediagoblin/edit/forms.py | 4 +++- mediagoblin/submit/forms.py | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index ec4e22b3..93934be7 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -26,7 +26,9 @@ class EditForm(wtforms.Form): description = wtforms.TextAreaField('Description of this work') tags = wtforms.TextField( _('Tags'), - [tag_length_validator]) + [tag_length_validator], + description=_( + "Seperate tags by commas or spaces.")) slug = wtforms.TextField( _('Slug'), [wtforms.validators.Required(message=_("The slug can't be empty"))], diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py index 25d6e304..48a21f02 100644 --- a/mediagoblin/submit/forms.py +++ b/mediagoblin/submit/forms.py @@ -30,4 +30,6 @@ class SubmitStartForm(wtforms.Form): _('Description of this work')) tags = wtforms.TextField( _('Tags'), - [tag_length_validator]) + [tag_length_validator], + description=_( + "Seperate tags by commas or spaces.")) From 16a444444ab42f88f1654054050b7dcd64bf960e Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 20 Nov 2011 16:18:27 +0100 Subject: [PATCH 1184/2731] Change tag list from a list to a paragraph. Wrap text for translation. --- .../templates/mediagoblin/utils/tags.html | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/utils/tags.html b/mediagoblin/templates/mediagoblin/utils/tags.html index b3211bd9..19ca8d2a 100644 --- a/mediagoblin/templates/mediagoblin/utils/tags.html +++ b/mediagoblin/templates/mediagoblin/utils/tags.html @@ -17,13 +17,20 @@ #} {% block tags_content -%} -

Tags

- +

{% endblock %} From 7807f5a513f2d5e510916e00dc276d0cd33de66a Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 20 Nov 2011 16:45:45 +0100 Subject: [PATCH 1185/2731] Remove Edit/Delete icons, since they are not required yet. --- mediagoblin/static/images/icon_delete.png | Bin 472 -> 0 bytes mediagoblin/static/images/icon_edit.png | Bin 297 -> 0 bytes .../templates/mediagoblin/user_pages/media.html | 11 ++--------- 3 files changed, 2 insertions(+), 9 deletions(-) delete mode 100644 mediagoblin/static/images/icon_delete.png delete mode 100644 mediagoblin/static/images/icon_edit.png diff --git a/mediagoblin/static/images/icon_delete.png b/mediagoblin/static/images/icon_delete.png deleted file mode 100644 index 9d76a5db0080cadb4f8bdf11da279efe1de5b604..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 472 zcmV;}0Vn>6P)Px#24YJ`L;xoMCjciBs;y-J000SaNLh0L01ejw01ejxLMWSf00007bV*G`2ipe$ z4-p<5JEV6200CG@L_t(I%dL|?s=`1J#((CS8(2=iENqe9E2Py57}S?n`34q-`SZ=pH#;MxROC&pwHRYC#sJ{G$9vCiw|fs| z^Z-bbgvDY(S(c<}N(h0bX#mh#BO+X{SE{OFzu$Aa-R=lVsi?J%&bioiU3AVxrPSbi zj?r32rBwWyOeWvU<&yb)&UU+Hy2$hx(6((~x$C;vb=|M( z&vxfrY}+;}rD9^OB~4SxvV5sl*Y%(d^gLN>85?5=A@t5H%ld@F;qa1}Wm&I>5HQA& z7-M?2p94b(hzKG=2;n6eplO;r03XWOdym$7aQ??=B0^o)FI{M@@!peo?-7wf!ty*P z&+|c_h~T~de2rs(s;XG6Ruo0?i>&tz6h*;wI%Tuj{LfeZ_?SkYp7RfY@htYek(Q7E O0000%tiFY)wsWxvhN$S14(QsrzcP-vy6i(`nz>8X=9 z^0q37F!&$l>-i8><(?qowxNv0eN#G1wE6(()78&qol`;+0Jqp}XaE2J diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index c8a9650f..7ef64c76 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -116,24 +116,17 @@ {% if media['uploader'] == request.user._id or request.user['is_admin'] %} -

{% trans %}Actions{% endtrans %}

{% set edit_url = request.urlgen('mediagoblin.edit.edit_media', user= media.uploader().username, media= media._id) %} - - {% trans %}edit{% endtrans %} + {% trans %}Edit{% endtrans %}

{% set delete_url = request.urlgen('mediagoblin.user_pages.media_confirm_delete', user= media.uploader().username, media= media._id) %} - - {% trans %}delete{% endtrans %} + {% trans %}Delete{% endtrans %}

{% endif %} From 0b3cdd6a25f8aaa74beecb7fed32a20cc13587a8 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 20 Nov 2011 17:01:23 +0100 Subject: [PATCH 1186/2731] Navigation buttons edits. Removed images as they are no longer needed. Related: bug #504 --- mediagoblin/static/css/base.css | 8 ++------ mediagoblin/static/images/navigation_end.png | Bin 718 -> 0 bytes mediagoblin/static/images/navigation_left.png | Bin 406 -> 0 bytes mediagoblin/static/images/navigation_right.png | Bin 383 -> 0 bytes .../templates/mediagoblin/utils/prev_next.html | 8 ++++---- 5 files changed, 6 insertions(+), 10 deletions(-) delete mode 100644 mediagoblin/static/images/navigation_end.png delete mode 100644 mediagoblin/static/images/navigation_left.png delete mode 100644 mediagoblin/static/images/navigation_right.png diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index c26e11af..12d88ffa 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -300,15 +300,11 @@ img.media_icon{ border-color: #2c2c2c #232323 #1a1a1a; border-radius: 4px; text-decoration: none; - padding: 8px 0px 14px; - font-size: 2em; + padding: 12px 0 16px; + font-size: 1.4em; margin: 0 0 20px } -p.navigation_button{ - color: #272727; -} - .navigation_left{ margin-right: 6px; } diff --git a/mediagoblin/static/images/navigation_end.png b/mediagoblin/static/images/navigation_end.png deleted file mode 100644 index b2f2729698bf8443ce687ab4a6a872726735cc19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 718 zcmV;<0x|uGP)FN`H1O zGH5A6C_;f`MhjtFI9koZg(x`MCTgMJLI_*A5QG#Xgo(6`(Ss6#CE~PdF}wr1w_3aE>Z@J4ZMz>1RO?6Ly*LxY(PX0WZ2--9y^bLKJC#gCY4Tqkcv#Cs*T zt8uJFe>5{6bTjh_4zvhiCL+d)@if*n=>EV7=nP+8L|nxCE%3eg88U43v>aWmJ{8IU>bk7z?)(=Gk%!_I0y#%6|tZsGPrY;F*r%FH<^ zjR diff --git a/mediagoblin/static/images/navigation_left.png b/mediagoblin/static/images/navigation_left.png deleted file mode 100644 index d1645120322caaa60c8173e8c7dbcc7fc2575397..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmeAS@N?(olHy`uVBq!ia0vp^YCtT_!3HD+ZvMRsq*#ibJVQ8upoSx*1IXtr@Q5r1 zs=p4xj7}P}D}aKMC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NHH)l3VXUZ zhD5Z!y|z2+Pyj>wM}N(rBRlyYYIRKCDPAHzUGLVy{0A!**S0+~s$4VM_Y`&$HkIw&br^mF2APpwHij;&h9SRZ=GM>}y@EZ1sAXXyzk=IQUQvn)GM zyrCw&T{x8~n?d;j>x*O8*01eq`g9=bfVRQ0|GCR%1aGvt=B%^ x+IqF2`oUp7^;ba=iGOd)A3dZ6bhz#t@wbP>H(mHWF9R5c44$rjF6*2UngBDsrLq73 diff --git a/mediagoblin/static/images/navigation_right.png b/mediagoblin/static/images/navigation_right.png deleted file mode 100644 index d4caa7b8ba1fa404cefa63a7d216f346a64960f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 383 zcmeAS@N?(olHy`uVBq!ia0vp^YCtT_!3HD+ZvMRsq*#ibJVQ8upoSx*1IXtr@Q5r1 zs=p4xj7}P}D}aKMC9V-A!TD(=<%vb94CUqJdYO6I#mR{Use1WE>9gP2NC6f7@pN$v ziD-R$Wv|x}2a&di>fIZf%x-a23troHuYK);>kIcLJmT~v-c~ax*lA*l!4%7XMomZC%ulDBJ$kgpSdx_BQgN9+t|GG`o zI6luH_-(tzifb>{^9FU^O@4QHv-q4u{^edjDa!S?S9mU}Ut^eia-)AqQt8Vh auRd|D{C?4*OEDZ2ybPYMelF{r5}E+h>7 - Previous image + ← newer {% else %} {# This is the first entry. display greyed-out 'previous' image #} {% endif %} {# Likewise, this could be the very last media entry #} {% if next_entry_url %} - Next image + older → {% else %} {# This is the last entry. display greyed-out 'next' image #} {% endif %} From 5dbeda8a0f2953aed13521b6e87376327e8302e0 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sun, 20 Nov 2011 20:15:21 +0100 Subject: [PATCH 1187/2731] Fix redirect to logical path redirects should in nearly all cases go to a logical path like 'mediagoblin.auth.login' and not to an absolute path like "/auth/login". --- mediagoblin/auth/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index b3a70d46..d01861d1 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -202,7 +202,7 @@ def resend_activation(request): messages.ERROR, _('You must be logged in so we know who to send the email to!')) - return redirect(request, "/auth/login") + return redirect(request, 'mediagoblin.auth.login') if request.user["email_verified"]: messages.add_message( From 9404a9fed23bfe27144da4f8e692df1f692a25b5 Mon Sep 17 00:00:00 2001 From: Jakob Kramer Date: Sun, 20 Nov 2011 21:15:07 +0100 Subject: [PATCH 1188/2731] don't use 'and' anymore, if there is only one tag --- mediagoblin/templates/mediagoblin/utils/tags.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/utils/tags.html b/mediagoblin/templates/mediagoblin/utils/tags.html index 19ca8d2a..20c50f6e 100644 --- a/mediagoblin/templates/mediagoblin/utils/tags.html +++ b/mediagoblin/templates/mediagoblin/utils/tags.html @@ -20,7 +20,10 @@

{% trans %}Tagged with{% endtrans %} {% for tag in media.tags %} {% if loop.last %} - {% trans %}and{% endtrans %} {{ tag['name'] }}. {% elif loop.revindex==2 %} From a00f1c1e1cecb8f127b6a064e2cd90c8f613660d Mon Sep 17 00:00:00 2001 From: Jakob Kramer Date: Sun, 20 Nov 2011 21:30:46 +0100 Subject: [PATCH 1189/2731] eyecandy for programmers --- .../templates/mediagoblin/utils/tags.html | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/utils/tags.html b/mediagoblin/templates/mediagoblin/utils/tags.html index 20c50f6e..49bc3cee 100644 --- a/mediagoblin/templates/mediagoblin/utils/tags.html +++ b/mediagoblin/templates/mediagoblin/utils/tags.html @@ -20,19 +20,21 @@

{% trans %}Tagged with{% endtrans %} {% for tag in media.tags %} {% if loop.last %} + {# the 'and' should only appear if there is more than one tag #} {% if media.tags|length > 1 %} - {% trans %}and{% endtrans %} + {% trans %}and{% endtrans %} {% endif %} - {{ tag['name'] }}. - {% elif loop.revindex==2 %} - {{ tag['name'] }} - {% else %}{{ tag['name'] }}, + + {{ tag['name'] }}. + {% elif loop.revindex==2 %} + {{ tag['name'] }} + {% else %}{{ tag['name'] }}, {% endif %} {% endfor %}

From fe0a8f53e251aae93bee5f4dee79d462fad751e8 Mon Sep 17 00:00:00 2001 From: Jakob Kramer Date: Sun, 20 Nov 2011 21:40:51 +0100 Subject: [PATCH 1190/2731] fixed identation --- mediagoblin/templates/mediagoblin/utils/tags.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/utils/tags.html b/mediagoblin/templates/mediagoblin/utils/tags.html index 49bc3cee..c7dfc8eb 100644 --- a/mediagoblin/templates/mediagoblin/utils/tags.html +++ b/mediagoblin/templates/mediagoblin/utils/tags.html @@ -24,15 +24,15 @@ {% if media.tags|length > 1 %} {% trans %}and{% endtrans %} {% endif %} - {{ tag['name'] }}. - {% elif loop.revindex==2 %} + {% elif loop.revindex == 2 %} {{ tag['name'] }} - {% else %}{{ tag['name'] }}, {% endif %} From a63b640f12896a873ebf96f9fe0ef62d0794bfe7 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Mon, 21 Nov 2011 00:06:59 +0100 Subject: [PATCH 1191/2731] Stashing changes --- mediagoblin/init/celery/__init__.py | 3 -- mediagoblin/media_types/__init__.py | 26 +++++----- mediagoblin/media_types/video/processing.py | 49 +++---------------- mediagoblin/media_types/video/transcoders.py | 1 - mediagoblin/process_media/__init__.py | 3 ++ mediagoblin/templates/mediagoblin/base.html | 7 +++ .../mediagoblin/media_displays/video.html | 18 ++++--- setup.py | 1 - 8 files changed, 43 insertions(+), 65 deletions(-) diff --git a/mediagoblin/init/celery/__init__.py b/mediagoblin/init/celery/__init__.py index 05c54b05..c5d37420 100644 --- a/mediagoblin/init/celery/__init__.py +++ b/mediagoblin/init/celery/__init__.py @@ -17,11 +17,8 @@ import os import sys -from mediagoblin.media_types import get_media_types - MANDATORY_CELERY_IMPORTS = ['mediagoblin.process_media'] -MANDATORY_CELERY_IMPORTS = [i for i in get_media_types()] print(MANDATORY_CELERY_IMPORTS) diff --git a/mediagoblin/media_types/__init__.py b/mediagoblin/media_types/__init__.py index 49d3ab9d..2d13f5a6 100644 --- a/mediagoblin/media_types/__init__.py +++ b/mediagoblin/media_types/__init__.py @@ -26,31 +26,33 @@ class FileTypeNotSupported(Exception): class InvalidFileType(Exception): pass +# This should be more dynamic in the future. Perhaps put it in the .ini? +# -- Joar MEDIA_TYPES = [ 'mediagoblin.media_types.image', 'mediagoblin.media_types.video'] def get_media_types(): + ''' + Generator that returns the available media types + ''' for media_type in MEDIA_TYPES: yield media_type def get_media_managers(): + ''' + Generator that returns all available media managers + ''' for media_type in get_media_types(): - ''' - FIXME - __import__ returns the lowest-level module. If the plugin is located - outside the conventional plugin module tree, it will not be loaded - properly because of the [...]ugin.media_types. - - We need this if we want to support a separate site-specific plugin - folder. - ''' try: __import__(media_type) except ImportError as e: - raise Exception('ERROR: Could not import {0}: {1}'.format(media_type, e)) + raise Exception( + _('ERROR: Could not import {media_type}: {exception}').format( + media_type=media_type, + exception=e)) yield media_type, sys.modules[media_type].MEDIA_MANAGER @@ -67,8 +69,8 @@ def get_media_type_and_manager(filename): ext = os.path.splitext(filename)[1].lower() else: raise InvalidFileType( - 'Could not find any file extension in "{0}"'.format( - filename)) + _('Could not find any file extension in "{filename}"').format( + filename=filename)) if ext[1:] in manager['accepted_extensions']: return media_type, manager diff --git a/mediagoblin/media_types/video/processing.py b/mediagoblin/media_types/video/processing.py index 027f527b..4e05a71c 100644 --- a/mediagoblin/media_types/video/processing.py +++ b/mediagoblin/media_types/video/processing.py @@ -15,25 +15,21 @@ # along with this program. If not, see . import tempfile -import pkg_resources -import os import logging +import os from celery.task import Task from celery import registry from mediagoblin.db.util import ObjectId from mediagoblin import mg_globals as mgg -from mediagoblin.util import lazy_pass_to_ugettext as _ -from mediagoblin.process_media.errors import BaseProcessingFail, BadMediaFail +from mediagoblin.process_media import BaseProcessingFail from mediagoblin.process_media import mark_entry_failed from . import transcoders THUMB_SIZE = 180, 180 MEDIUM_SIZE = 640, 640 -loop = None # Is this even used? - logger = logging.getLogger(__name__) logging.basicConfig() logger.setLevel(logging.DEBUG) @@ -59,7 +55,11 @@ def process_video(entry): 'source') medium_filepath = create_pub_filepath( - entry, '640p.webm') + entry, + '{original}-640p.webm'.format( + original=os.path.splitext( + queued_filepath[-1])[0] # Select the + )) thumbnail_filepath = create_pub_filepath( entry, 'thumbnail.jpg') @@ -163,38 +163,3 @@ class ProcessMedia(Task): process_media = registry.tasks[ProcessMedia.name] - - -def mark_entry_failed(entry_id, exc): - """ - Mark a media entry as having failed in its conversion. - - Uses the exception that was raised to mark more information. If the - exception is a derivative of BaseProcessingFail then we can store extra - information that can be useful for users telling them why their media failed - to process. - - Args: - - entry_id: The id of the media entry - - """ - # Was this a BaseProcessingFail? In other words, was this a - # type of error that we know how to handle? - if isinstance(exc, BaseProcessingFail): - # Looks like yes, so record information about that failure and any - # metadata the user might have supplied. - mgg.database['media_entries'].update( - {'_id': entry_id}, - {'$set': {u'state': u'failed', - u'fail_error': exc.exception_path, - u'fail_metadata': exc.metadata}}) - else: - # Looks like no, so just mark it as failed and don't record a - # failure_error (we'll assume it wasn't handled) and don't record - # metadata (in fact overwrite it if somehow it had previous info - # here) - mgg.database['media_entries'].update( - {'_id': entry_id}, - {'$set': {u'state': u'failed', - u'fail_error': None, - u'fail_metadata': {}}}) diff --git a/mediagoblin/media_types/video/transcoders.py b/mediagoblin/media_types/video/transcoders.py index f6a2eb21..8d80beda 100644 --- a/mediagoblin/media_types/video/transcoders.py +++ b/mediagoblin/media_types/video/transcoders.py @@ -56,7 +56,6 @@ try: import pygst pygst.require('0.10') import gst - from gst import pbutils from gst.extend import discoverer except: raise Exception('gst/pygst 0.10 could not be found') diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py index 2b9eed6e..96fe49fe 100644 --- a/mediagoblin/process_media/__init__.py +++ b/mediagoblin/process_media/__init__.py @@ -53,10 +53,13 @@ class ProcessMedia(Task): # Try to process, and handle expected errors. try: + __import__(entry['media_type']) process_image(entry) except BaseProcessingFail, exc: mark_entry_failed(entry[u'_id'], exc) return + except ImportError, exc: + mark_entry_failed(entry[u'_id'], exc) entry['state'] = u'processed' entry.save() diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index b4c4dcf3..bad22e7e 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -28,8 +28,15 @@ href="{{ request.staticdirect('/css/extlib/960_16_col.css') }}"/> + + + + {% block mediagoblin_head %} {% endblock mediagoblin_head %} diff --git a/mediagoblin/templates/mediagoblin/media_displays/video.html b/mediagoblin/templates/mediagoblin/media_displays/video.html index bff9889a..5b8ec789 100644 --- a/mediagoblin/templates/mediagoblin/media_displays/video.html +++ b/mediagoblin/templates/mediagoblin/media_displays/video.html @@ -1,11 +1,17 @@ {% extends 'mediagoblin/user_pages/media.html' %} {% block mediagoblin_media %} - +
+ +
{% if 'original' in media.media_files %}

1: + directory = self._resolve_filepath(filepath[:-1]) + if not os.path.exists(directory): + os.makedirs(directory) + + shutil.copy( + filename, self.get_local_path(filepath)) From 2e8fbc8fab47930f1de7e20e0072eaefafc898a6 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 20 Nov 2011 22:02:02 -0600 Subject: [PATCH 1193/2731] Slightly clearer docs on copy_local_to_storage --- mediagoblin/storage/__init__.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mediagoblin/storage/__init__.py b/mediagoblin/storage/__init__.py index b76e18af..0840614b 100644 --- a/mediagoblin/storage/__init__.py +++ b/mediagoblin/storage/__init__.py @@ -172,6 +172,10 @@ class StorageInterface(object): def copy_local_to_storage(self, filename, filepath): """ Copy this file from locally to the storage system. + + This is kind of the opposite of copy_locally. It's likely you + could override this method with something more appropriate to + your storage system. """ with self.get_file(filepath, 'wb') as dest_file: with file(filename, 'rb') as source_file: From 61c5306d247a4403032e4e37bbdf32db1e6d8aa8 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 20 Nov 2011 22:03:38 -0600 Subject: [PATCH 1194/2731] Made the image processing use intermediary conversion file. This should fix the problem with PIL and the cloudfiles storage system fighting. --- mediagoblin/process_media/__init__.py | 30 ++++++++++++++++++++------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py index 34d83e54..54c0c493 100644 --- a/mediagoblin/process_media/__init__.py +++ b/mediagoblin/process_media/__init__.py @@ -118,6 +118,10 @@ def process_image(entry): Code to process an image """ workbench = mgg.workbench_manager.create_workbench() + # Conversions subdirectory to avoid collisions + conversions_subdir = os.path.join( + workbench.dir, 'conversions') + os.mkdir(conversions_subdir) queued_filepath = entry['queued_media_file'] queued_filename = workbench.localized_file( @@ -133,11 +137,15 @@ def process_image(entry): thumb.thumbnail(THUMB_SIZE, Image.ANTIALIAS) - thumb_filepath = create_pub_filepath(entry, 'thumbnail' + extension) - thumb_file = mgg.public_store.get_file(thumb_filepath, 'w') - - with thumb_file: + # Copy the thumb to the conversion subdir, then remotely. + thumb_filename = 'thumbnail' + extension + thumb_filepath = create_pub_filepath(entry, thumb_filename) + tmp_thumb_filename = os.path.join( + conversions_subdir, thumb_filename) + with file(tmp_thumb_filename, 'w') as thumb_file: thumb.save(thumb_file) + mgg.public_store.copy_local_to_storage( + tmp_thumb_filename, thumb_filepath) # If the size of the original file exceeds the specified size of a `medium` # file, a `medium.jpg` files is created and later associated with the media @@ -148,12 +156,18 @@ def process_image(entry): if medium.size[0] > MEDIUM_SIZE[0] or medium.size[1] > MEDIUM_SIZE[1]: medium.thumbnail(MEDIUM_SIZE, Image.ANTIALIAS) - medium_filepath = create_pub_filepath(entry, 'medium' + extension) - medium_file = mgg.public_store.get_file(medium_filepath, 'w') + medium_filename = 'medium' + extension + medium_filepath = create_pub_filepath(entry, medium_filename) + tmp_medium_filename = os.path.join( + conversions_subdir, medium_filename) - with medium_file: + with file(tmp_medium_filename, 'w') as medium_file: medium.save(medium_file) - medium_processed = True + + mgg.public_store.copy_local_to_storage( + tmp_medium_filename, medium_filepath) + + medium_processed = True # we have to re-read because unlike PIL, not everything reads # things in string representation :) From e56e5f8c5c3dc7909aa68a1543ed04ddb18e27f6 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 20 Nov 2011 22:25:22 -0600 Subject: [PATCH 1195/2731] Tests for StorageInterface*.copy_local_to_storage() --- mediagoblin/tests/test_storage.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/mediagoblin/tests/test_storage.py b/mediagoblin/tests/test_storage.py index 46ecb2ec..eab4d032 100644 --- a/mediagoblin/tests/test_storage.py +++ b/mediagoblin/tests/test_storage.py @@ -57,6 +57,10 @@ class FakeRemoteStorage(storage.filestorage.BasicFileStorage): # should force copying to the workbench local_storage = False + def copy_local_to_storage(self, *args, **kwargs): + return storage.StorageInterface.copy_local_to_storage( + self, *args, **kwargs) + def test_storage_system_from_config(): this_storage = storage.storage_system_from_config( @@ -252,3 +256,26 @@ def test_basic_storage_copy_locally(): this_storage.copy_locally(filepath, new_file_dest) assert file(new_file_dest).read() == 'Testing this file' + + +def _test_copy_local_to_storage_works(tmpdir, this_storage): + local_filename = tempfile.mktemp() + with file(local_filename, 'w') as tmpfile: + tmpfile.write('haha') + + this_storage.copy_local_to_storage( + local_filename, ['dir1', 'dir2', 'copiedto.txt']) + + assert file( + os.path.join(tmpdir, 'dir1/dir2/copiedto.txt'), + 'r').read() == 'haha' + + +def test_basic_storage_copy_local_to_storage(): + tmpdir, this_storage = get_tmp_filestorage() + _test_copy_local_to_storage_works(tmpdir, this_storage) + + +def test_general_storage_copy_local_to_storage(): + tmpdir, this_storage = get_tmp_filestorage(fake_remote=True) + _test_copy_local_to_storage_works(tmpdir, this_storage) From c875bb74a8245b39b6985f37cb8ab838c22efa7e Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Mon, 21 Nov 2011 21:47:00 +0100 Subject: [PATCH 1196/2731] Refractored GStreamer element linking --- mediagoblin/media_types/video/transcoders.py | 41 ++++++++++---------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/mediagoblin/media_types/video/transcoders.py b/mediagoblin/media_types/video/transcoders.py index 8d80beda..8b220891 100644 --- a/mediagoblin/media_types/video/transcoders.py +++ b/mediagoblin/media_types/video/transcoders.py @@ -17,7 +17,6 @@ from __future__ import division import os -os.environ["GST_DEBUG_DUMP_DOT_DIR"] = "/tmp" os.putenv('GST_DEBUG_DUMP_DOT_DIR', '/tmp') import sys @@ -498,28 +497,30 @@ class VideoTranscoder: # or audio sink self.filesrc.link(self.decoder) - # Link all the video elements in a link to webmux - self.videoqueue.link(self.videorate) - self.videorate.link(self.ffmpegcolorspace) - self.ffmpegcolorspace.link(self.videoscale) - self.videoscale.link(self.capsfilter) - #self.capsfilter.link(self.xvimagesink) - self.capsfilter.link(self.vp8enc) - self.vp8enc.link(self.webmmux) + # Link all the video elements in a row to webmmux + gst.element_link_many( + self.videoqueue, + self.videorate, + self.ffmpegcolorspace, + self.videoscale, + self.capsfilter, + self.vp8enc, + self.webmmux) if self.data.is_audio: - # Link all the audio elements in a line to webmux - #self.audioconvert.link(self.alsasink) - self.audioqueue.link(self.audiorate) - self.audiorate.link(self.audioconvert) - self.audioconvert.link(self.audiocapsfilter) - self.audiocapsfilter.link(self.vorbisenc) - #self.audiocapsfilter.link(self.level) - #self.level.link(self.vorbisenc) - self.vorbisenc.link(self.webmmux) + # Link all the audio elements in a row to webmux + gst.element_link_many( + self.audioqueue, + self.audiorate, + self.audioconvert, + self.audiocapsfilter, + self.vorbisenc, + self.webmmux) - self.webmmux.link(self.progressreport) - self.progressreport.link(self.filesink) + gst.element_link_many( + self.webmmux, + self.progressreport, + self.filesink) # Setup the message bus and connect _on_message to the pipeline self._setup_bus() From 58dd8d9e6326013528cdfdfeea375c4eade54b92 Mon Sep 17 00:00:00 2001 From: "Pablo J. Urbano Santos" Date: Mon, 21 Nov 2011 22:42:55 +0100 Subject: [PATCH 1197/2731] Filename extensions are lowercased before uploading the image. --- mediagoblin/process_media/__init__.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py index 54c0c493..dcf21b81 100644 --- a/mediagoblin/process_media/__init__.py +++ b/mediagoblin/process_media/__init__.py @@ -128,7 +128,9 @@ def process_image(entry): mgg.queue_store, queued_filepath, 'source') - extension = os.path.splitext(queued_filename)[1] + filename_bits = os.path.splitext(queued_filename) + basename = os.path.split(filename_bits[0])[1] + extension = filename_bits[1].lower() try: thumb = Image.open(queued_filename) @@ -174,7 +176,8 @@ def process_image(entry): queued_file = file(queued_filename, 'rb') with queued_file: - original_filepath = create_pub_filepath(entry, queued_filepath[-1]) + #create_pub_filepath(entry, queued_filepath[-1]) + original_filepath = create_pub_filepath(entry, basename + extension) with mgg.public_store.get_file(original_filepath, 'wb') \ as original_file: From 8e5f974684ce4e329a5022459f2e536fa4e15edd Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Mon, 21 Nov 2011 23:18:40 +0100 Subject: [PATCH 1198/2731] Fixes after merging video branch into master - Removed debug output from init/celery - Moved process_media/__init__ to processing.py - Centralized the processing.ProcessMedia task class - Updated media managers to reference the processing function instead of the ProcessMedia instance - Updated new-style image processing to previous, newer old-style image processing - Updated video transcoding - Changed method in progress output, sometimes message.structure['percent'] raises KeyError --- mediagoblin/init/celery/__init__.py | 4 +- mediagoblin/media_types/image/__init__.py | 8 +- mediagoblin/media_types/image/processing.py | 95 +++++---------- mediagoblin/media_types/video/__init__.py | 7 +- mediagoblin/media_types/video/processing.py | 69 ++--------- mediagoblin/media_types/video/transcoders.py | 17 +-- mediagoblin/process_media/errors.py | 45 ------- .../__init__.py => processing.py} | 110 +++++------------- mediagoblin/submit/views.py | 7 +- 9 files changed, 86 insertions(+), 276 deletions(-) delete mode 100644 mediagoblin/process_media/errors.py rename mediagoblin/{process_media/__init__.py => processing.py} (56%) diff --git a/mediagoblin/init/celery/__init__.py b/mediagoblin/init/celery/__init__.py index a62d40e3..1eb21d7a 100644 --- a/mediagoblin/init/celery/__init__.py +++ b/mediagoblin/init/celery/__init__.py @@ -18,9 +18,7 @@ import os import sys -MANDATORY_CELERY_IMPORTS = ['mediagoblin.process_media'] - -print(MANDATORY_CELERY_IMPORTS) +MANDATORY_CELERY_IMPORTS = ['mediagoblin.processing'] DEFAULT_SETTINGS_MODULE = 'mediagoblin.init.celery.dummy_settings_module' diff --git a/mediagoblin/media_types/image/__init__.py b/mediagoblin/media_types/image/__init__.py index 0cd0383f..3b63d8eb 100644 --- a/mediagoblin/media_types/image/__init__.py +++ b/mediagoblin/media_types/image/__init__.py @@ -14,15 +14,13 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from mediagoblin.media_types.image.processing import process_media +from mediagoblin.media_types.image.processing import process_image MEDIA_MANAGER = { "human_readable": "Image", - "processor": process_media, # alternately a string, + "processor": process_image, # alternately a string, # 'mediagoblin.media_types.image.processing'? "display_template": "mediagoblin/media_displays/image.html", "default_thumb": "images/media_thumbs/image.jpg", - "accepted_extensions": ["jpg", "jpeg", "png", "gif", "tiff"], - "accepted_mimetypes": [ - "image/jpeg", "image/png", "image/gif", "image/tiff"]} + "accepted_extensions": ["jpg", "jpeg", "png", "gif", "tiff"]} diff --git a/mediagoblin/media_types/image/processing.py b/mediagoblin/media_types/image/processing.py index 57eb75db..5e8e4e0a 100644 --- a/mediagoblin/media_types/image/processing.py +++ b/mediagoblin/media_types/image/processing.py @@ -15,6 +15,7 @@ # along with this program. If not, see . import Image +import os from celery.task import Task from celery import registry @@ -22,19 +23,9 @@ from celery import registry from mediagoblin.db.util import ObjectId from mediagoblin import mg_globals as mgg -from mediagoblin.util import lazy_pass_to_ugettext as _ - -from mediagoblin.process_media.errors import * - -THUMB_SIZE = 180, 180 -MEDIUM_SIZE = 640, 640 - - -def create_pub_filepath(entry, filename): - return mgg.public_store.get_unique_filepath( - ['media_entries', - unicode(entry['_id']), - filename]) +from mediagoblin.processing import BaseProcessingFail, \ + mark_entry_failed, BadMediaFail, create_pub_filepath, THUMB_SIZE, \ + MEDIUM_SIZE ################################ # Media processing initial steps @@ -77,67 +68,39 @@ class ProcessMedia(Task): process_media = registry.tasks[ProcessMedia.name] -def mark_entry_failed(entry_id, exc): - """ - Mark a media entry as having failed in its conversion. - - Uses the exception that was raised to mark more information. If the - exception is a derivative of BaseProcessingFail then we can store extra - information that can be useful for users telling them why their media failed - to process. - - Args: - - entry_id: The id of the media entry - - """ - # Was this a BaseProcessingFail? In other words, was this a - # type of error that we know how to handle? - if isinstance(exc, BaseProcessingFail): - # Looks like yes, so record information about that failure and any - # metadata the user might have supplied. - mgg.database['media_entries'].update( - {'_id': entry_id}, - {'$set': {u'state': u'failed', - u'fail_error': exc.exception_path, - u'fail_metadata': exc.metadata}}) - else: - # Looks like no, so just mark it as failed and don't record a - # failure_error (we'll assume it wasn't handled) and don't record - # metadata (in fact overwrite it if somehow it had previous info - # here) - mgg.database['media_entries'].update( - {'_id': entry_id}, - {'$set': {u'state': u'failed', - u'fail_error': None, - u'fail_metadata': {}}}) - - def process_image(entry): """ Code to process an image """ workbench = mgg.workbench_manager.create_workbench() + # Conversions subdirectory to avoid collisions + conversions_subdir = os.path.join( + workbench.dir, 'conversions') + os.mkdir(conversions_subdir) queued_filepath = entry['queued_media_file'] queued_filename = workbench.localized_file( mgg.queue_store, queued_filepath, 'source') + extension = os.path.splitext(queued_filename)[1] + try: thumb = Image.open(queued_filename) except IOError: raise BadMediaFail() thumb.thumbnail(THUMB_SIZE, Image.ANTIALIAS) - # ensure color mode is compatible with jpg - if thumb.mode != "RGB": - thumb = thumb.convert("RGB") - thumb_filepath = create_pub_filepath(entry, 'thumbnail.jpg') - thumb_file = mgg.public_store.get_file(thumb_filepath, 'w') - - with thumb_file: - thumb.save(thumb_file, "JPEG", quality=90) + # Copy the thumb to the conversion subdir, then remotely. + thumb_filename = 'thumbnail' + extension + thumb_filepath = create_pub_filepath(entry, thumb_filename) + tmp_thumb_filename = os.path.join( + conversions_subdir, thumb_filename) + with file(tmp_thumb_filename, 'w') as thumb_file: + thumb.save(thumb_file) + mgg.public_store.copy_local_to_storage( + tmp_thumb_filename, thumb_filepath) # If the size of the original file exceeds the specified size of a `medium` # file, a `medium.jpg` files is created and later associated with the media @@ -148,15 +111,18 @@ def process_image(entry): if medium.size[0] > MEDIUM_SIZE[0] or medium.size[1] > MEDIUM_SIZE[1]: medium.thumbnail(MEDIUM_SIZE, Image.ANTIALIAS) - if medium.mode != "RGB": - medium = medium.convert("RGB") + medium_filename = 'medium' + extension + medium_filepath = create_pub_filepath(entry, medium_filename) + tmp_medium_filename = os.path.join( + conversions_subdir, medium_filename) - medium_filepath = create_pub_filepath(entry, 'medium.jpg') - medium_file = mgg.public_store.get_file(medium_filepath, 'w') + with file(tmp_medium_filename, 'w') as medium_file: + medium.save(medium_file) - with medium_file: - medium.save(medium_file, "JPEG", quality=90) - medium_processed = True + mgg.public_store.copy_local_to_storage( + tmp_medium_filename, medium_filepath) + + medium_processed = True # we have to re-read because unlike PIL, not everything reads # things in string representation :) @@ -165,7 +131,8 @@ def process_image(entry): with queued_file: original_filepath = create_pub_filepath(entry, queued_filepath[-1]) - with mgg.public_store.get_file(original_filepath, 'wb') as original_file: + with mgg.public_store.get_file(original_filepath, 'wb') \ + as original_file: original_file.write(queued_file.read()) mgg.queue_store.delete_file(queued_filepath) diff --git a/mediagoblin/media_types/video/__init__.py b/mediagoblin/media_types/video/__init__.py index c1910ee2..a970ab01 100644 --- a/mediagoblin/media_types/video/__init__.py +++ b/mediagoblin/media_types/video/__init__.py @@ -14,13 +14,14 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from mediagoblin.media_types.video.processing import process_media +from mediagoblin.media_types.video.processing import process_video MEDIA_MANAGER = { "human_readable": "Video", - "processor": process_media, # alternately a string, + "processor": process_video, # alternately a string, # 'mediagoblin.media_types.image.processing'? "display_template": "mediagoblin/media_displays/video.html", "default_thumb": "images/media_thumbs/video.jpg", - "accepted_extensions": ["mp4", "mov", "webm", "avi", "3gp", "3gpp", "mkv", "ogv", "ogg"]} + "accepted_extensions": [ + "mp4", "mov", "webm", "avi", "3gp", "3gpp", "mkv", "ogv", "ogg"]} diff --git a/mediagoblin/media_types/video/processing.py b/mediagoblin/media_types/video/processing.py index 4e05a71c..6125e49c 100644 --- a/mediagoblin/media_types/video/processing.py +++ b/mediagoblin/media_types/video/processing.py @@ -18,21 +18,15 @@ import tempfile import logging import os -from celery.task import Task -from celery import registry - -from mediagoblin.db.util import ObjectId from mediagoblin import mg_globals as mgg -from mediagoblin.process_media import BaseProcessingFail -from mediagoblin.process_media import mark_entry_failed +from mediagoblin.processing import mark_entry_failed, \ + THUMB_SIZE, MEDIUM_SIZE, create_pub_filepath from . import transcoders -THUMB_SIZE = 180, 180 -MEDIUM_SIZE = 640, 640 - -logger = logging.getLogger(__name__) logging.basicConfig() -logger.setLevel(logging.DEBUG) + +_log = logging.getLogger(__name__) +_log.setLevel(logging.DEBUG) def process_video(entry): @@ -73,8 +67,10 @@ def process_video(entry): transcoder = transcoders.VideoTranscoder(queued_filename, tmp_dst.name) # Push transcoded video to public storage + _log.debug('Saving medium...') mgg.public_store.get_file(medium_filepath, 'wb').write( tmp_dst.read()) + _log.debug('Saved medium') entry['media_files']['webm_640'] = medium_filepath @@ -91,8 +87,10 @@ def process_video(entry): transcoders.VideoThumbnailer(queued_filename, tmp_thumb.name) # Push the thumbnail to public storage + _log.debug('Saving thumbnail...') mgg.public_store.get_file(thumbnail_filepath, 'wb').write( tmp_thumb.read()) + _log.debug('Saved thumbnail') entry['media_files']['thumb'] = thumbnail_filepath @@ -107,7 +105,9 @@ def process_video(entry): with mgg.public_store.get_file(original_filepath, 'wb') as \ original_file: + _log.debug('Saving original...') original_file.write(queued_file.read()) + _log.debug('Saved original') entry['media_files']['original'] = original_filepath @@ -116,50 +116,3 @@ def process_video(entry): # Save the MediaEntry entry.save() - -def create_pub_filepath(entry, filename): - return mgg.public_store.get_unique_filepath( - ['media_entries', - unicode(entry['_id']), - filename]) - - -################################ -# Media processing initial steps -################################ - -class ProcessMedia(Task): - """ - Pass this entry off for processing. - """ - def run(self, media_id): - """ - Pass the media entry off to the appropriate processing function - (for now just process_image...) - """ - entry = mgg.database.MediaEntry.one( - {'_id': ObjectId(media_id)}) - - # Try to process, and handle expected errors. - try: - process_video(entry) - except BaseProcessingFail, exc: - mark_entry_failed(entry[u'_id'], exc) - return - - entry['state'] = u'processed' - entry.save() - - def on_failure(self, exc, task_id, args, kwargs, einfo): - """ - If the processing failed we should mark that in the database. - - Assuming that the exception raised is a subclass of BaseProcessingFail, - we can use that to get more information about the failure and store that - for conveying information to users about the failure, etc. - """ - entry_id = args[0] - mark_entry_failed(entry_id, exc) - - -process_media = registry.tasks[ProcessMedia.name] diff --git a/mediagoblin/media_types/video/transcoders.py b/mediagoblin/media_types/video/transcoders.py index 8b220891..493a837f 100644 --- a/mediagoblin/media_types/video/transcoders.py +++ b/mediagoblin/media_types/video/transcoders.py @@ -195,7 +195,6 @@ class VideoThumbnailer: _log.debug('seek amount: {0}'.format(seek_amount)) - seek_result = self.thumbnail_pipeline.seek( 1.0, gst.FORMAT_TIME, @@ -204,14 +203,6 @@ class VideoThumbnailer: seek_amount, gst.SEEK_TYPE_NONE, 0) - ''' - - seek_result = self.thumbnail_pipeline.seek_simple( - gst.FORMAT_TIME, - gst.SEEK_FLAG_FLUSH | gst.SEEK_FLAG_ACCURATE, - seek_amount) - - ''' if not seek_result: self.errors.append('COULD_NOT_SEEK') @@ -576,17 +567,13 @@ class VideoTranscoder: elif t == gst.MESSAGE_ELEMENT: if message.structure.get_name() == 'progress': - data = { - 'structure': message.structure, - 'percent': message.structure['percent'], - 'total': message.structure['total'], - 'current': message.structure['current']} + data = dict(message.structure) if self._progress_callback: self._progress_callback(data) _log.info('{percent}% done...'.format( - percent=data['percent'])) + percent=data.get('percent'))) _log.debug(data) elif t == gst.MESSAGE_ERROR: diff --git a/mediagoblin/process_media/errors.py b/mediagoblin/process_media/errors.py deleted file mode 100644 index 4224a3e1..00000000 --- a/mediagoblin/process_media/errors.py +++ /dev/null @@ -1,45 +0,0 @@ -# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . - -from mediagoblin.tools.translate import lazy_pass_to_ugettext as _ - - -class BaseProcessingFail(Exception): - """ - Base exception that all other processing failure messages should - subclass from. - - You shouldn't call this itself; instead you should subclass it - and provid the exception_path and general_message applicable to - this error. - """ - general_message = u'' - - @property - def exception_path(self): - return u"%s:%s" % ( - self.__class__.__module__, self.__class__.__name__) - - def __init__(self, **metadata): - self.metadata = metadata or {} - - -class BadMediaFail(BaseProcessingFail): - """ - Error that should be raised when an inappropriate file was given - for the media type specified. - """ - general_message = _(u'Invalid file given for media type.') diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/processing.py similarity index 56% rename from mediagoblin/process_media/__init__.py rename to mediagoblin/processing.py index 346bb479..8738cbe2 100644 --- a/mediagoblin/process_media/__init__.py +++ b/mediagoblin/processing.py @@ -14,15 +14,14 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -import os - -import Image from celery.task import Task -from celery import registry from mediagoblin.db.util import ObjectId from mediagoblin import mg_globals as mgg -from mediagoblin.process_media.errors import BaseProcessingFail, BadMediaFail + +from mediagoblin.util import lazy_pass_to_ugettext as _ + +from mediagoblin.media_types import get_media_manager THUMB_SIZE = 180, 180 @@ -42,6 +41,8 @@ def create_pub_filepath(entry, filename): class ProcessMedia(Task): """ + DEPRECATED -- This now resides in the individual media plugins + Pass this entry off for processing. """ def run(self, media_id): @@ -54,8 +55,9 @@ class ProcessMedia(Task): # Try to process, and handle expected errors. try: - __import__(entry['media_type']) - process_image(entry) + #__import__(entry['media_type']) + manager = get_media_manager(entry['media_type']) + manager['processor'](entry) except BaseProcessingFail, exc: mark_entry_failed(entry._id, exc) return @@ -78,9 +80,6 @@ class ProcessMedia(Task): mark_entry_failed(entry_id, exc) -process_media = registry.tasks[ProcessMedia.name] - - def mark_entry_failed(entry_id, exc): """ Mark a media entry as having failed in its conversion. @@ -116,80 +115,29 @@ def mark_entry_failed(entry_id, exc): u'fail_metadata': {}}}) -def process_image(entry): +class BaseProcessingFail(Exception): """ - Code to process an image + Base exception that all other processing failure messages should + subclass from. + + You shouldn't call this itself; instead you should subclass it + and provid the exception_path and general_message applicable to + this error. """ - workbench = mgg.workbench_manager.create_workbench() - # Conversions subdirectory to avoid collisions - conversions_subdir = os.path.join( - workbench.dir, 'conversions') - os.mkdir(conversions_subdir) + general_message = u'' - queued_filepath = entry['queued_media_file'] - queued_filename = workbench.localized_file( - mgg.queue_store, queued_filepath, - 'source') + @property + def exception_path(self): + return u"%s:%s" % ( + self.__class__.__module__, self.__class__.__name__) - extension = os.path.splitext(queued_filename)[1] + def __init__(self, **metadata): + self.metadata = metadata or {} - try: - thumb = Image.open(queued_filename) - except IOError: - raise BadMediaFail() - thumb.thumbnail(THUMB_SIZE, Image.ANTIALIAS) - - # Copy the thumb to the conversion subdir, then remotely. - thumb_filename = 'thumbnail' + extension - thumb_filepath = create_pub_filepath(entry, thumb_filename) - tmp_thumb_filename = os.path.join( - conversions_subdir, thumb_filename) - with file(tmp_thumb_filename, 'w') as thumb_file: - thumb.save(thumb_file) - mgg.public_store.copy_local_to_storage( - tmp_thumb_filename, thumb_filepath) - - # If the size of the original file exceeds the specified size of a `medium` - # file, a `medium.jpg` files is created and later associated with the media - # entry. - medium = Image.open(queued_filename) - medium_processed = False - - if medium.size[0] > MEDIUM_SIZE[0] or medium.size[1] > MEDIUM_SIZE[1]: - medium.thumbnail(MEDIUM_SIZE, Image.ANTIALIAS) - - medium_filename = 'medium' + extension - medium_filepath = create_pub_filepath(entry, medium_filename) - tmp_medium_filename = os.path.join( - conversions_subdir, medium_filename) - - with file(tmp_medium_filename, 'w') as medium_file: - medium.save(medium_file) - - mgg.public_store.copy_local_to_storage( - tmp_medium_filename, medium_filepath) - - medium_processed = True - - # we have to re-read because unlike PIL, not everything reads - # things in string representation :) - queued_file = file(queued_filename, 'rb') - - with queued_file: - original_filepath = create_pub_filepath(entry, queued_filepath[-1]) - - with mgg.public_store.get_file(original_filepath, 'wb') \ - as original_file: - original_file.write(queued_file.read()) - - mgg.queue_store.delete_file(queued_filepath) - entry['queued_media_file'] = [] - media_files_dict = entry.setdefault('media_files', {}) - media_files_dict['thumb'] = thumb_filepath - media_files_dict['original'] = original_filepath - if medium_processed: - media_files_dict['medium'] = medium_filepath - - # clean up workbench - workbench.destroy_self() +class BadMediaFail(BaseProcessingFail): + """ + Error that should be raised when an inappropriate file was given + for the media type specified. + """ + general_message = _(u'Invalid file given for media type.') diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index dd1c3d1b..21381e39 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -19,6 +19,8 @@ import uuid from os.path import splitext from cgi import FieldStorage +from celery import registry + from werkzeug.utils import secure_filename from mediagoblin.db.util import ObjectId @@ -27,7 +29,7 @@ from mediagoblin.tools.translate import pass_to_ugettext as _ from mediagoblin.tools.response import render_to_response, redirect from mediagoblin.decorators import require_active_login from mediagoblin.submit import forms as submit_forms, security -from mediagoblin.process_media import mark_entry_failed +from mediagoblin.processing import mark_entry_failed, ProcessMedia from mediagoblin.messages import add_message, SUCCESS from mediagoblin.media_types import get_media_type_and_manager @@ -104,8 +106,9 @@ def submit_start(request): # # (... don't change entry after this point to avoid race # conditions with changes to the document via processing code) + process_media = registry.tasks[ProcessMedia.name] try: - media_manager['processor'].apply_async( + process_media.apply_async( [unicode(entry._id)], {}, task_id=task_id) except BaseException as exc: From 0bce749b21595fb0e33e2a109902b71e4611d483 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Mon, 21 Nov 2011 23:38:31 +0100 Subject: [PATCH 1199/2731] Fixes after merging video into master - part 2 - Added handling of InvalidFileType to submit.views - Updated test_celery_setup and test_submission tests to reflect the changes to the media procesing infrastructure --- mediagoblin/submit/views.py | 157 +++++++++++++------------ mediagoblin/tests/test_celery_setup.py | 4 +- mediagoblin/tests/test_submission.py | 6 +- 3 files changed, 85 insertions(+), 82 deletions(-) diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 21381e39..3def44ce 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -31,7 +31,7 @@ from mediagoblin.decorators import require_active_login from mediagoblin.submit import forms as submit_forms, security from mediagoblin.processing import mark_entry_failed, ProcessMedia from mediagoblin.messages import add_message, SUCCESS -from mediagoblin.media_types import get_media_type_and_manager +from mediagoblin.media_types import get_media_type_and_manager, InvalidFileType @require_active_login @@ -48,86 +48,89 @@ def submit_start(request): submit_form.file.errors.append( _(u'You must provide a file.')) else: - filename = request.POST['file'].filename - - media_type, media_manager = get_media_type_and_manager(filename) - - # create entry and save in database - entry = request.db.MediaEntry() - entry['_id'] = ObjectId() - entry['media_type'] = unicode(media_type) - entry['title'] = ( - unicode(request.POST['title']) - or unicode(splitext(filename)[0])) - - entry['description'] = unicode(request.POST.get('description')) - entry['description_html'] = cleaned_markdown_conversion( - entry['description']) - - entry['uploader'] = request.user['_id'] - - # Process the user's folksonomy "tags" - entry['tags'] = convert_to_tag_list_of_dicts( - request.POST.get('tags')) - - # Generate a slug from the title - entry.generate_slug() - - - # Now store generate the queueing related filename - queue_filepath = request.app.queue_store.get_unique_filepath( - ['media_entries', - unicode(entry._id), - secure_filename(filename)]) - - # queue appropriately - queue_file = request.app.queue_store.get_file( - queue_filepath, 'wb') - - with queue_file: - queue_file.write(request.POST['file'].file.read()) - - # Add queued filename to the entry - entry['queued_media_file'] = queue_filepath - - # We generate this ourselves so we know what the taks id is for - # retrieval later. - - # (If we got it off the task's auto-generation, there'd be - # a risk of a race condition when we'd save after sending - # off the task) - task_id = unicode(uuid.uuid4()) - entry['queued_task_id'] = task_id - - # Save now so we have this data before kicking off processing - entry.save(validate=True) - - # Pass off to processing - # - # (... don't change entry after this point to avoid race - # conditions with changes to the document via processing code) - process_media = registry.tasks[ProcessMedia.name] try: - process_media.apply_async( - [unicode(entry._id)], {}, - task_id=task_id) - except BaseException as exc: - # The purpose of this section is because when running in "lazy" - # or always-eager-with-exceptions-propagated celery mode that - # the failure handling won't happen on Celery end. Since we - # expect a lot of users to run things in this way we have to - # capture stuff here. + filename = request.POST['file'].filename + media_type, media_manager = get_media_type_and_manager(filename) + + # create entry and save in database + entry = request.db.MediaEntry() + entry['_id'] = ObjectId() + entry['media_type'] = unicode(media_type) + entry['title'] = ( + unicode(request.POST['title']) + or unicode(splitext(filename)[0])) + + entry['description'] = unicode(request.POST.get('description')) + entry['description_html'] = cleaned_markdown_conversion( + entry['description']) + + entry['uploader'] = request.user['_id'] + + # Process the user's folksonomy "tags" + entry['tags'] = convert_to_tag_list_of_dicts( + request.POST.get('tags')) + + # Generate a slug from the title + entry.generate_slug() + + + # Now store generate the queueing related filename + queue_filepath = request.app.queue_store.get_unique_filepath( + ['media_entries', + unicode(entry._id), + secure_filename(filename)]) + + # queue appropriately + queue_file = request.app.queue_store.get_file( + queue_filepath, 'wb') + + with queue_file: + queue_file.write(request.POST['file'].file.read()) + + # Add queued filename to the entry + entry['queued_media_file'] = queue_filepath + + # We generate this ourselves so we know what the taks id is for + # retrieval later. + + # (If we got it off the task's auto-generation, there'd be + # a risk of a race condition when we'd save after sending + # off the task) + task_id = unicode(uuid.uuid4()) + entry['queued_task_id'] = task_id + + # Save now so we have this data before kicking off processing + entry.save(validate=True) + + # Pass off to processing # - # ... not completely the diaper pattern because the - # exception is re-raised :) - mark_entry_failed(entry._id, exc) - # re-raise the exception - raise + # (... don't change entry after this point to avoid race + # conditions with changes to the document via processing code) + process_media = registry.tasks[ProcessMedia.name] + try: + process_media.apply_async( + [unicode(entry._id)], {}, + task_id=task_id) + except BaseException as exc: + # The purpose of this section is because when running in "lazy" + # or always-eager-with-exceptions-propagated celery mode that + # the failure handling won't happen on Celery end. Since we + # expect a lot of users to run things in this way we have to + # capture stuff here. + # + # ... not completely the diaper pattern because the + # exception is re-raised :) + mark_entry_failed(entry._id, exc) + # re-raise the exception + raise - add_message(request, SUCCESS, _('Woohoo! Submitted!')) + add_message(request, SUCCESS, _('Woohoo! Submitted!')) - return redirect(request, "mediagoblin.user_pages.user_home", - user=request.user['username']) + return redirect(request, "mediagoblin.user_pages.user_home", + user=request.user['username']) + except InvalidFileType, exc: + submit_form.file.errors.append( + _(u'Invalid file type.')) return render_to_response( request, diff --git a/mediagoblin/tests/test_celery_setup.py b/mediagoblin/tests/test_celery_setup.py index 348a4357..19a9b899 100644 --- a/mediagoblin/tests/test_celery_setup.py +++ b/mediagoblin/tests/test_celery_setup.py @@ -50,7 +50,7 @@ def test_setup_celery_from_config(): assert isinstance(fake_celery_module.CELERYD_ETA_SCHEDULER_PRECISION, float) assert fake_celery_module.CELERY_RESULT_PERSISTENT is True assert fake_celery_module.CELERY_IMPORTS == [ - 'foo.bar.baz', 'this.is.an.import', 'mediagoblin.process_media'] + 'foo.bar.baz', 'this.is.an.import', 'mediagoblin.processing'] assert fake_celery_module.CELERY_MONGODB_BACKEND_SETTINGS == { 'database': 'mediagoblin'} assert fake_celery_module.CELERY_RESULT_BACKEND == 'mongodb' @@ -74,7 +74,7 @@ def test_setup_celery_from_config(): assert isinstance(fake_celery_module.CELERYD_ETA_SCHEDULER_PRECISION, float) assert fake_celery_module.CELERY_RESULT_PERSISTENT is False assert fake_celery_module.CELERY_IMPORTS == [ - 'baz.bar.foo', 'import.is.a.this', 'mediagoblin.process_media'] + 'baz.bar.foo', 'import.is.a.this', 'mediagoblin.processing'] assert fake_celery_module.CELERY_MONGODB_BACKEND_SETTINGS == { 'database': 'captain_lollerskates', 'host': 'mongodb.example.org', diff --git a/mediagoblin/tests/test_submission.py b/mediagoblin/tests/test_submission.py index dec7118b..eea5747f 100644 --- a/mediagoblin/tests/test_submission.py +++ b/mediagoblin/tests/test_submission.py @@ -222,7 +222,7 @@ class TestSubmission: context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] form = context['submit_form'] - assert form.file.errors == ['The file doesn\'t seem to be an image!'] + assert form.file.errors == [u'Invalid file type.'] # NOTE: The following 2 tests will ultimately fail, but they # *will* pass the initial form submission step. Instead, @@ -246,7 +246,7 @@ class TestSubmission: assert_equal(entry['state'], 'failed') assert_equal( entry['fail_error'], - u'mediagoblin.process_media.errors:BadMediaFail') + u'mediagoblin.processing:BadMediaFail') # Test non-supported file with .png extension # ------------------------------------------- @@ -266,4 +266,4 @@ class TestSubmission: assert_equal(entry['state'], 'failed') assert_equal( entry['fail_error'], - u'mediagoblin.process_media.errors:BadMediaFail') + u'mediagoblin.processing:BadMediaFail') From 8aeb6738774f6428312bd0889e2aaf4fc9445da0 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Tue, 22 Nov 2011 00:09:41 +0100 Subject: [PATCH 1200/2731] Video support is disabled by default, set enable_video to true to enable --- mediagoblin/config_spec.ini | 3 +++ mediagoblin/media_types/__init__.py | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini index eef6f6e0..e5e059c9 100644 --- a/mediagoblin/config_spec.ini +++ b/mediagoblin/config_spec.ini @@ -50,6 +50,9 @@ allow_attachments = boolean(default=False) # Cookie stuff csrf_cookie_name = string(default='mediagoblin_csrftoken') +# Media types +enable_video = boolean(default=False) + [storage:publicstore] storage_class = string(default="mediagoblin.storage.filestorage:BasicFileStorage") base_dir = string(default="%(here)s/user_dev/media/public") diff --git a/mediagoblin/media_types/__init__.py b/mediagoblin/media_types/__init__.py index 2d13f5a6..a2ea6bcb 100644 --- a/mediagoblin/media_types/__init__.py +++ b/mediagoblin/media_types/__init__.py @@ -17,6 +17,7 @@ import os import sys +from mediagoblin import mg_globals from mediagoblin.util import lazy_pass_to_ugettext as _ @@ -29,8 +30,10 @@ class InvalidFileType(Exception): # This should be more dynamic in the future. Perhaps put it in the .ini? # -- Joar MEDIA_TYPES = [ - 'mediagoblin.media_types.image', - 'mediagoblin.media_types.video'] + 'mediagoblin.media_types.image'] + +if mg_globals.app_config['enable_video']: + MEDIA_TYPES.append('mediagoblin.media_types.video') def get_media_types(): From d0ba62e2e773dbd3cc89bf6f446da45370652360 Mon Sep 17 00:00:00 2001 From: "Pablo J. Urbano Santos" Date: Tue, 22 Nov 2011 20:29:33 +0100 Subject: [PATCH 1201/2731] Fixes #597. Add a visible error when user tries to delete an image without cheking the "I'm sure" checkbox. --- mediagoblin/user_pages/views.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 25fd2ebb..2ccb453b 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -179,6 +179,9 @@ def media_confirm_delete(request, media): return redirect(request, "mediagoblin.user_pages.user_home", user=username) else: + messages.add_message( + request, messages.ERROR, + _("The file was not deleted because you didn't check that you were sure.")) return exc.HTTPFound( location=media.url_for_self(request.urlgen)) From 6506b1e22c70b55a73ee4cb391aebaf73db79ef9 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Tue, 22 Nov 2011 21:06:08 +0100 Subject: [PATCH 1202/2731] Fixes for video branch - Removed superfluous code from media_types.image - Updated lazy_pass_to_ugettext imports --- mediagoblin/media_types/__init__.py | 10 ++---- mediagoblin/media_types/image/processing.py | 36 -------------------- mediagoblin/media_types/video/transcoders.py | 4 +-- mediagoblin/processing.py | 2 +- 4 files changed, 5 insertions(+), 47 deletions(-) diff --git a/mediagoblin/media_types/__init__.py b/mediagoblin/media_types/__init__.py index a2ea6bcb..f56fd942 100644 --- a/mediagoblin/media_types/__init__.py +++ b/mediagoblin/media_types/__init__.py @@ -18,7 +18,7 @@ import os import sys from mediagoblin import mg_globals -from mediagoblin.util import lazy_pass_to_ugettext as _ +from mediagoblin.tools.translate import lazy_pass_to_ugettext as _ class FileTypeNotSupported(Exception): @@ -49,13 +49,7 @@ def get_media_managers(): Generator that returns all available media managers ''' for media_type in get_media_types(): - try: - __import__(media_type) - except ImportError as e: - raise Exception( - _('ERROR: Could not import {media_type}: {exception}').format( - media_type=media_type, - exception=e)) + __import__(media_type) yield media_type, sys.modules[media_type].MEDIA_MANAGER diff --git a/mediagoblin/media_types/image/processing.py b/mediagoblin/media_types/image/processing.py index 5e8e4e0a..2932c455 100644 --- a/mediagoblin/media_types/image/processing.py +++ b/mediagoblin/media_types/image/processing.py @@ -31,42 +31,6 @@ from mediagoblin.processing import BaseProcessingFail, \ # Media processing initial steps ################################ -class ProcessMedia(Task): - """ - Pass this entry off for processing. - """ - def run(self, media_id): - """ - Pass the media entry off to the appropriate processing function - (for now just process_image...) - """ - entry = mgg.database.MediaEntry.one( - {'_id': ObjectId(media_id)}) - - # Try to process, and handle expected errors. - try: - process_image(entry) - except BaseProcessingFail, exc: - mark_entry_failed(entry[u'_id'], exc) - return - - entry['state'] = u'processed' - entry.save() - - def on_failure(self, exc, task_id, args, kwargs, einfo): - """ - If the processing failed we should mark that in the database. - - Assuming that the exception raised is a subclass of BaseProcessingFail, - we can use that to get more information about the failure and store that - for conveying information to users about the failure, etc. - """ - entry_id = args[0] - mark_entry_failed(entry_id, exc) - - -process_media = registry.tasks[ProcessMedia.name] - def process_image(entry): """ diff --git a/mediagoblin/media_types/video/transcoders.py b/mediagoblin/media_types/video/transcoders.py index 493a837f..d7ed14ca 100644 --- a/mediagoblin/media_types/video/transcoders.py +++ b/mediagoblin/media_types/video/transcoders.py @@ -94,8 +94,8 @@ class VideoThumbnailer: self.videosink = gst.element_factory_make('fakesink', 'videosink') self.playbin.set_property('video-sink', self.videosink) - #self.audiosink = gst.element_factory_make('fakesink', 'audiosink') - #self.playbin.set_property('audio-sink', self.audiosink) + self.audiosink = gst.element_factory_make('fakesink', 'audiosink') + self.playbin.set_property('audio-sink', self.audiosink) self.bus = self.playbin.get_bus() self.bus.add_signal_watch() diff --git a/mediagoblin/processing.py b/mediagoblin/processing.py index 8738cbe2..89c4ac89 100644 --- a/mediagoblin/processing.py +++ b/mediagoblin/processing.py @@ -19,7 +19,7 @@ from celery.task import Task from mediagoblin.db.util import ObjectId from mediagoblin import mg_globals as mgg -from mediagoblin.util import lazy_pass_to_ugettext as _ +from mediagoblin.tools.translate import lazy_pass_to_ugettext as _ from mediagoblin.media_types import get_media_manager From 56bfd91ab45c5160bcd65ebe15f44b08f880ed72 Mon Sep 17 00:00:00 2001 From: "Pablo J. Urbano Santos" Date: Tue, 22 Nov 2011 21:07:09 +0100 Subject: [PATCH 1203/2731] Added a message noticing the user the image has been successfully deleted. --- mediagoblin/user_pages/views.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 2ccb453b..b28b68e1 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -175,13 +175,14 @@ def media_confirm_delete(request, media): delete_media_files(media) media.delete() + messages.add_message(request, messages.SUCCESS, _('You deleted the media.')) return redirect(request, "mediagoblin.user_pages.user_home", user=username) else: messages.add_message( request, messages.ERROR, - _("The file was not deleted because you didn't check that you were sure.")) + _("The media was not deleted because you didn't check that you were sure.")) return exc.HTTPFound( location=media.url_for_self(request.urlgen)) From ea33f63635ca0b57f0bc7eca6eb941a9ee99b596 Mon Sep 17 00:00:00 2001 From: Elrond Date: Tue, 22 Nov 2011 21:48:56 +0100 Subject: [PATCH 1204/2731] Wrap long line. Nothing else. --- mediagoblin/user_pages/views.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index b28b68e1..f679be9c 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -175,7 +175,8 @@ def media_confirm_delete(request, media): delete_media_files(media) media.delete() - messages.add_message(request, messages.SUCCESS, _('You deleted the media.')) + messages.add_message( + request, messages.SUCCESS, _('You deleted the media.')) return redirect(request, "mediagoblin.user_pages.user_home", user=username) From 4d4e5b435b54fcf0920786a40e190c1748cc2ed1 Mon Sep 17 00:00:00 2001 From: Elrond Date: Fri, 18 Nov 2011 23:37:25 +0100 Subject: [PATCH 1205/2731] 652: Don't show empty field labels. If the label for a field is empty, don't show it at all. And don't translate it! --- mediagoblin/templates/mediagoblin/utils/wtforms.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/utils/wtforms.html b/mediagoblin/templates/mediagoblin/utils/wtforms.html index 39dca7cc..cc30388f 100644 --- a/mediagoblin/templates/mediagoblin/utils/wtforms.html +++ b/mediagoblin/templates/mediagoblin/utils/wtforms.html @@ -18,7 +18,9 @@ {# Generically render a field #} {% macro render_field_div(field) %} -

+ {% if field.label.text -%} +

+ {%- endif %}
{{ field }} {%- if field.errors -%} From 30188321531e1b0d3c78166498702bbd8c7dc2bc Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 21 Nov 2011 21:40:48 +0100 Subject: [PATCH 1206/2731] Rename MediaEntry.uploader() to .get_uploader() The .uploader() method conflicts with the uploader database field. As we're moving to .FIELD for db field access, this is a relevant conflict. So renaming .uploader() to .get_uploader() --- mediagoblin/db/models.py | 8 ++++---- mediagoblin/decorators.py | 2 +- mediagoblin/listings/views.py | 2 +- .../templates/mediagoblin/edit/attachments.html | 2 +- mediagoblin/templates/mediagoblin/edit/edit.html | 2 +- .../templates/mediagoblin/user_pages/media.html | 16 ++++++++-------- .../user_pages/media_confirm_delete.html | 2 +- mediagoblin/user_pages/views.py | 4 ++-- 8 files changed, 19 insertions(+), 19 deletions(-) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index f13a4457..265fe36d 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -263,7 +263,7 @@ class MediaEntry(Document): Use a slug if we have one, else use our '_id'. """ - uploader = self.uploader() + uploader = self.get_uploader() if self.get('slug'): return urlgen( @@ -286,7 +286,7 @@ class MediaEntry(Document): '_id', ASCENDING).limit(1) if cursor.count(): return urlgen('mediagoblin.user_pages.media_home', - user=self.uploader()['username'], + user=self.get_uploader()['username'], media=unicode(cursor[0]['slug'])) def url_to_next(self, urlgen): @@ -300,10 +300,10 @@ class MediaEntry(Document): if cursor.count(): return urlgen('mediagoblin.user_pages.media_home', - user=self.uploader()['username'], + user=self.get_uploader()['username'], media=unicode(cursor[0]['slug'])) - def uploader(self): + def get_uploader(self): return self.db.User.find_one({'_id': self['uploader']}) def get_fail_exception(self): diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index 8f7532ec..1cdce23a 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -58,7 +58,7 @@ def user_may_delete_media(controller): """ def wrapper(request, *args, **kwargs): uploader = request.db.MediaEntry.find_one( - {'_id': ObjectId(request.matchdict['media'])}).uploader() + {'_id': ObjectId(request.matchdict['media'])}).get_uploader() if not (request.user['is_admin'] or request.user._id == uploader._id): return exc.HTTPForbidden() diff --git a/mediagoblin/listings/views.py b/mediagoblin/listings/views.py index 12e539e7..5a09de43 100644 --- a/mediagoblin/listings/views.py +++ b/mediagoblin/listings/views.py @@ -86,7 +86,7 @@ def tag_atom_feed(request): feed.add(entry.get('title'), entry.get('description_html'), content_type='html', - author=entry.uploader()['username'], + author=entry.get_uploader()['username'], updated=entry.get('created'), url=entry.url_for_self(request.urlgen)) diff --git a/mediagoblin/templates/mediagoblin/edit/attachments.html b/mediagoblin/templates/mediagoblin/edit/attachments.html index 576642cf..6a5ab896 100644 --- a/mediagoblin/templates/mediagoblin/edit/attachments.html +++ b/mediagoblin/templates/mediagoblin/edit/attachments.html @@ -20,7 +20,7 @@ {% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} {% block mediagoblin_content %}
diff --git a/mediagoblin/templates/mediagoblin/edit/edit.html b/mediagoblin/templates/mediagoblin/edit/edit.html index 73c2bada..aa46af3d 100644 --- a/mediagoblin/templates/mediagoblin/edit/edit.html +++ b/mediagoblin/templates/mediagoblin/edit/edit.html @@ -22,7 +22,7 @@ {% block mediagoblin_content %}
diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 7ef64c76..adbb66db 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -56,8 +56,8 @@ {% trans date=media.created.strftime("%Y-%m-%d"), user_url=request.urlgen( 'mediagoblin.user_pages.user_home', - user=media.uploader().username), - username=media.uploader().username -%} + user=media.get_uploader().username), + username=media.get_uploader().username -%} By {{ username }} on {{ date }} {%- endtrans %}

@@ -84,7 +84,7 @@ {% trans %}at{% endtrans %} {{ comment.created.strftime("%I:%M%p %Y-%m-%d") }} @@ -94,7 +94,7 @@ {% if request.user %} {{ wtforms_util.render_divs(comment_form) }}
@@ -106,7 +106,7 @@ {{ render_pagination(request, pagination, request.urlgen('mediagoblin.user_pages.media_home', - user = media.uploader().username, + user = media.get_uploader().username, media = media._id)) }}
{% endif %} @@ -118,13 +118,13 @@ request.user['is_admin'] %}

{% set edit_url = request.urlgen('mediagoblin.edit.edit_media', - user= media.uploader().username, + user= media.get_uploader().username, media= media._id) %} {% trans %}Edit{% endtrans %}

{% set delete_url = request.urlgen('mediagoblin.user_pages.media_confirm_delete', - user= media.uploader().username, + user= media.get_uploader().username, media= media._id) %} {% trans %}Delete{% endtrans %}

@@ -148,7 +148,7 @@ or request.user['is_admin']) %}

Add attachment

{% endif %} diff --git a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html index c3a9d622..058351a5 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html @@ -22,7 +22,7 @@ {% block mediagoblin_content %}
diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index f679be9c..61cae775 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -169,7 +169,7 @@ def media_confirm_delete(request, media): if request.method == 'POST' and form.validate(): if form.confirm.data is True: - username = media.uploader()['username'] + username = media.get_uploader()['username'] # Delete all files on the public storage delete_media_files(media) @@ -188,7 +188,7 @@ def media_confirm_delete(request, media): location=media.url_for_self(request.urlgen)) if ((request.user[u'is_admin'] and - request.user._id != media.uploader()._id)): + request.user._id != media.get_uploader()._id)): messages.add_message( request, messages.WARNING, _("You are about to delete another user's media. " From cfa96da734e633856282fcefb04e1fb231d85053 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 25 Nov 2011 11:41:24 -0600 Subject: [PATCH 1207/2731] Load multiple media types based on the media_types section of the config file --- mediagoblin.ini | 3 +++ mediagoblin/config_spec.ini | 5 +++-- mediagoblin/media_types/__init__.py | 14 +++----------- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/mediagoblin.ini b/mediagoblin.ini index 728ab2f2..dbde6e51 100644 --- a/mediagoblin.ini +++ b/mediagoblin.ini @@ -11,6 +11,9 @@ email_debug_mode = true # Set to false to disable registrations allow_registration = true +## Uncomment this to turn on video or enable other media types +# media_types = mediagoblin.media_types.image, mediagoblin.media_types.video + ## Uncomment this to put some user-overriding templates here #local_templates = %(here)s/user_dev/templates/ diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini index e5e059c9..a17e30f0 100644 --- a/mediagoblin/config_spec.ini +++ b/mediagoblin/config_spec.ini @@ -2,16 +2,17 @@ # HTML title of the pages html_title = string(default="GNU MediaGoblin") +# Enabled media types +media_types = string_list(default=list("mediagoblin.media_types.image")) + # database stuff db_host = string() db_name = string(default="mediagoblin") db_port = integer() - # Where temporary files used in processing and etc are kept workbench_path = string(default="%(here)s/user_dev/media/workbench") - # Where mediagoblin-builtin static assets are kept direct_remote_path = string(default="/mgoblin_static/") diff --git a/mediagoblin/media_types/__init__.py b/mediagoblin/media_types/__init__.py index f56fd942..61786562 100644 --- a/mediagoblin/media_types/__init__.py +++ b/mediagoblin/media_types/__init__.py @@ -27,20 +27,12 @@ class FileTypeNotSupported(Exception): class InvalidFileType(Exception): pass -# This should be more dynamic in the future. Perhaps put it in the .ini? -# -- Joar -MEDIA_TYPES = [ - 'mediagoblin.media_types.image'] - -if mg_globals.app_config['enable_video']: - MEDIA_TYPES.append('mediagoblin.media_types.video') - def get_media_types(): - ''' + """ Generator that returns the available media types - ''' - for media_type in MEDIA_TYPES: + """ + for media_type in mg_globals.app_config['media_types']: yield media_type From f47a7a8c92936dfedd73716a69ba3f0978481aca Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 25 Nov 2011 11:42:03 -0600 Subject: [PATCH 1208/2731] Remove old enable_video config option --- mediagoblin/config_spec.ini | 2 -- 1 file changed, 2 deletions(-) diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini index a17e30f0..c057f432 100644 --- a/mediagoblin/config_spec.ini +++ b/mediagoblin/config_spec.ini @@ -51,8 +51,6 @@ allow_attachments = boolean(default=False) # Cookie stuff csrf_cookie_name = string(default='mediagoblin_csrftoken') -# Media types -enable_video = boolean(default=False) [storage:publicstore] storage_class = string(default="mediagoblin.storage.filestorage:BasicFileStorage") From 4da6efb45956321d831339da0fcdbbb6553c6846 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 25 Nov 2011 11:43:34 -0600 Subject: [PATCH 1209/2731] Removing these video javascript files, which are currently unused --- mediagoblin/templates/mediagoblin/base.html | 5 ----- 1 file changed, 5 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 3dd9c8ff..29639026 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -32,11 +32,6 @@ href="{{ request.staticdirect('/css/video-js.css') }}"/> - - - {% block mediagoblin_head %} {% endblock mediagoblin_head %} From ce5ae8da19707019cd62d42533e591d71071f4fe Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 25 Nov 2011 12:13:56 -0600 Subject: [PATCH 1210/2731] Rename MediaGoblin middleware to meddleware to avoid confusion w/ wsgi middleware hehehehehe, "meddleware" --- mediagoblin/app.py | 16 ++++++++-------- .../{middleware => meddleware}/__init__.py | 6 +++--- mediagoblin/{middleware => meddleware}/csrf.py | 4 ++-- mediagoblin/{middleware => meddleware}/noop.py | 2 +- mediagoblin/tests/tools.py | 10 +++++----- mediagoblin/tools/template.py | 2 +- 6 files changed, 20 insertions(+), 20 deletions(-) rename mediagoblin/{middleware => meddleware}/__init__.py (86%) rename mediagoblin/{middleware => meddleware}/csrf.py (98%) rename mediagoblin/{middleware => meddleware}/noop.py (96%) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index ce4b0bec..aafadd97 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -20,7 +20,7 @@ import urllib import routes from webob import Request, exc -from mediagoblin import routing, middleware +from mediagoblin import routing, meddleware from mediagoblin.tools import common, translate, template from mediagoblin.tools.response import render_404 from mediagoblin.tools import request as mg_request @@ -100,15 +100,15 @@ class MediaGoblinApp(object): # matters in always eager mode :) setup_workbench() - # instantiate application middleware - self.middleware = [common.import_component(m)(self) - for m in middleware.ENABLED_MIDDLEWARE] + # instantiate application meddleware + self.meddleware = [common.import_component(m)(self) + for m in meddleware.ENABLED_MEDDLEWARE] def __call__(self, environ, start_response): request = Request(environ) - # pass the request through our middleware classes - for m in self.middleware: + # pass the request through our meddleware classes + for m in self.meddleware: response = m.process_request(request) if response is not None: return response(environ, start_response) @@ -169,8 +169,8 @@ class MediaGoblinApp(object): # get the response from the controller response = controller(request) - # pass the response through the middleware - for m in self.middleware[::-1]: + # pass the response through the meddleware + for m in self.meddleware[::-1]: m.process_response(request, response) return response(environ, start_response) diff --git a/mediagoblin/middleware/__init__.py b/mediagoblin/meddleware/__init__.py similarity index 86% rename from mediagoblin/middleware/__init__.py rename to mediagoblin/meddleware/__init__.py index 05325ee5..3addc937 100644 --- a/mediagoblin/middleware/__init__.py +++ b/mediagoblin/meddleware/__init__.py @@ -14,7 +14,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -ENABLED_MIDDLEWARE = ( - 'mediagoblin.middleware.noop:NoOpMiddleware', - 'mediagoblin.middleware.csrf:CsrfMiddleware', +ENABLED_MEDDLEWARE = ( + 'mediagoblin.meddleware.noop:NoOpMeddleware', + 'mediagoblin.meddleware.csrf:CsrfMeddleware', ) diff --git a/mediagoblin/middleware/csrf.py b/mediagoblin/meddleware/csrf.py similarity index 98% rename from mediagoblin/middleware/csrf.py rename to mediagoblin/meddleware/csrf.py index 8275c18e..051afe58 100644 --- a/mediagoblin/middleware/csrf.py +++ b/mediagoblin/meddleware/csrf.py @@ -47,8 +47,8 @@ def render_csrf_form_token(request): return form.csrf_token -class CsrfMiddleware(object): - """CSRF Protection Middleware +class CsrfMeddleware(object): + """CSRF Protection Meddleware Adds a CSRF Cookie to responses and verifies that it is present and matches the form token for non-safe requests. diff --git a/mediagoblin/middleware/noop.py b/mediagoblin/meddleware/noop.py similarity index 96% rename from mediagoblin/middleware/noop.py rename to mediagoblin/meddleware/noop.py index 820b5d9e..d11a5b9e 100644 --- a/mediagoblin/middleware/noop.py +++ b/mediagoblin/meddleware/noop.py @@ -15,7 +15,7 @@ # along with this program. If not, see . -class NoOpMiddleware(object): +class NoOpMeddleware(object): def __init__(self, mg_app): self.app = mg_app diff --git a/mediagoblin/tests/tools.py b/mediagoblin/tests/tools.py index 420d9ba8..1a26c6e9 100644 --- a/mediagoblin/tests/tools.py +++ b/mediagoblin/tests/tools.py @@ -50,9 +50,9 @@ $ CELERY_CONFIG_MODULE=mediagoblin.init.celery.from_tests ./bin/nosetests""" class BadCeleryEnviron(Exception): pass -class TestingMiddleware(object): +class TestingMeddleware(object): """ - Middleware for the Unit tests + Meddleware for the Unit tests It might make sense to perform some tests on all requests/responses. Or prepare them in a special @@ -60,7 +60,7 @@ class TestingMiddleware(object): for being valid html *after* being rendered. This module is getting inserted at the front of the - middleware list, which means: requests are handed here + meddleware list, which means: requests are handed here first, responses last. So this wraps up the "normal" app. @@ -149,11 +149,11 @@ def get_test_app(dump_old_app=True): test_app = loadapp( 'config:' + TEST_SERVER_CONFIG) - # Insert the TestingMiddleware, which can do some + # Insert the TestingMeddleware, which can do some # sanity checks on every request/response. # Doing it this way is probably not the cleanest way. # We'll fix it, when we have plugins! - mg_globals.app.middleware.insert(0, TestingMiddleware(mg_globals.app)) + mg_globals.app.meddleware.insert(0, TestingMeddleware(mg_globals.app)) app = TestApp(test_app) MGOBLIN_APP = app diff --git a/mediagoblin/tools/template.py b/mediagoblin/tools/template.py index 0986761b..f48b7c2e 100644 --- a/mediagoblin/tools/template.py +++ b/mediagoblin/tools/template.py @@ -21,7 +21,7 @@ from mediagoblin import mg_globals from mediagoblin import messages from mediagoblin.tools import common from mediagoblin.tools.translate import setup_gettext -from mediagoblin.middleware.csrf import render_csrf_form_token +from mediagoblin.meddleware.csrf import render_csrf_form_token SETUP_JINJA_ENVS = {} From 1b7662012f4f0827d01cc8747ce710b3e4dc6b81 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 25 Nov 2011 12:33:34 -0600 Subject: [PATCH 1211/2731] Uncommenting requires=['gst'] till I figure out why Joar added it there :) --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index c3c2f86f..ec672dd2 100644 --- a/setup.py +++ b/setup.py @@ -66,7 +66,7 @@ setup( ## their package managers. # 'lxml', ], - requires=['gst'], + # requires=['gst'], test_suite='nose.collector', entry_points="""\ [console_scripts] From 56dc1c9d3eb73b86bf8e165ffc79ad4929239603 Mon Sep 17 00:00:00 2001 From: Elrond Date: Fri, 25 Nov 2011 22:16:18 +0100 Subject: [PATCH 1212/2731] Add base class for Meddleware Created a BaseMeddleware which all Meddleware should derive from. This is not strictly needed, but will greatly help. The base class has the common __init__ of all the other Meddlwares and fall backs for all hooks. That way a new Meddlware only needs to override what it actually wants to implement. --- mediagoblin/meddleware/__init__.py | 12 ++++++++++++ mediagoblin/meddleware/csrf.py | 6 ++---- mediagoblin/meddleware/noop.py | 5 ++--- mediagoblin/tests/tools.py | 9 ++------- 4 files changed, 18 insertions(+), 14 deletions(-) diff --git a/mediagoblin/meddleware/__init__.py b/mediagoblin/meddleware/__init__.py index 3addc937..729a020d 100644 --- a/mediagoblin/meddleware/__init__.py +++ b/mediagoblin/meddleware/__init__.py @@ -18,3 +18,15 @@ ENABLED_MEDDLEWARE = ( 'mediagoblin.meddleware.noop:NoOpMeddleware', 'mediagoblin.meddleware.csrf:CsrfMeddleware', ) + + +class BaseMeddleware(object): + + def __init__(self, mg_app): + self.app = mg_app + + def process_request(self, request): + pass + + def process_response(self, request, response): + pass diff --git a/mediagoblin/meddleware/csrf.py b/mediagoblin/meddleware/csrf.py index 051afe58..ca2eca5f 100644 --- a/mediagoblin/meddleware/csrf.py +++ b/mediagoblin/meddleware/csrf.py @@ -21,6 +21,7 @@ from webob.exc import HTTPForbidden from wtforms import Form, HiddenField, validators from mediagoblin import mg_globals +from mediagoblin.meddleware import BaseMeddleware # Use the system (hardware-based) random number generator if it exists. # -- this optimization is lifted from Django @@ -47,7 +48,7 @@ def render_csrf_form_token(request): return form.csrf_token -class CsrfMeddleware(object): +class CsrfMeddleware(BaseMeddleware): """CSRF Protection Meddleware Adds a CSRF Cookie to responses and verifies that it is present @@ -57,9 +58,6 @@ class CsrfMeddleware(object): CSRF_KEYLEN = 64 SAFE_HTTP_METHODS = ("GET", "HEAD", "OPTIONS", "TRACE") - def __init__(self, mg_app): - self.app = mg_app - def process_request(self, request): """For non-safe requests, confirm that the tokens are present and match. diff --git a/mediagoblin/meddleware/noop.py b/mediagoblin/meddleware/noop.py index d11a5b9e..b43053de 100644 --- a/mediagoblin/meddleware/noop.py +++ b/mediagoblin/meddleware/noop.py @@ -15,11 +15,10 @@ # along with this program. If not, see . -class NoOpMeddleware(object): +from mediagoblin.meddleware import BaseMeddleware - def __init__(self, mg_app): - self.app = mg_app +class NoOpMeddleware(BaseMeddleware): def process_request(self, request): pass diff --git a/mediagoblin/tests/tools.py b/mediagoblin/tests/tools.py index 1a26c6e9..01813e96 100644 --- a/mediagoblin/tests/tools.py +++ b/mediagoblin/tests/tools.py @@ -26,6 +26,7 @@ from mediagoblin.tools import testing from mediagoblin.init.config import read_mediagoblin_config from mediagoblin.decorators import _make_safe from mediagoblin.db.open import setup_connection_and_db_from_config +from mediagoblin.meddleware import BaseMeddleware MEDIAGOBLIN_TEST_DB_NAME = u'__mediagoblin_tests__' @@ -50,7 +51,7 @@ $ CELERY_CONFIG_MODULE=mediagoblin.init.celery.from_tests ./bin/nosetests""" class BadCeleryEnviron(Exception): pass -class TestingMeddleware(object): +class TestingMeddleware(BaseMeddleware): """ Meddleware for the Unit tests @@ -69,12 +70,6 @@ class TestingMeddleware(object): create a new method and call it from process_*. """ - def __init__(self, mg_app): - self.app = mg_app - - def process_request(self, request): - pass - def process_response(self, request, response): # All following tests should be for html only! if response.content_type != "text/html": From 5568a014195fa9f39021033a6ba2706125bb13ed Mon Sep 17 00:00:00 2001 From: Elrond Date: Sun, 23 Oct 2011 23:29:15 +0200 Subject: [PATCH 1213/2731] Use setup_global_and_app_config in gmg's migrate. Instead of using read_mediagoblin_config, forgetting to check the validation report and then finding the main app section by hand, just use setup_global_and_app_config. --- mediagoblin/gmg_commands/migrate.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mediagoblin/gmg_commands/migrate.py b/mediagoblin/gmg_commands/migrate.py index beea109d..bd3bcb20 100644 --- a/mediagoblin/gmg_commands/migrate.py +++ b/mediagoblin/gmg_commands/migrate.py @@ -18,7 +18,7 @@ import sys from mediagoblin.db import util as db_util from mediagoblin.db.open import setup_connection_and_db_from_config -from mediagoblin.init.config import read_mediagoblin_config +from mediagoblin.init import setup_global_and_app_config # This MUST be imported so as to set up the appropriate migrations! from mediagoblin.db import migrations @@ -41,9 +41,9 @@ def _print_finished_migration(migration_number, migration_func): def migrate(args): - config, validation_result = read_mediagoblin_config(args.conf_file) + global_config, app_config = setup_global_and_app_config(args.conf_file) connection, db = setup_connection_and_db_from_config( - config['mediagoblin'], use_pymongo=True) + app_config, use_pymongo=True) migration_manager = db_util.MigrationManager(db) # Clear old indexes From 91cf67385a78a59af7874df327b96f7ea0b4259b Mon Sep 17 00:00:00 2001 From: Nathan Yergler Date: Sat, 26 Nov 2011 14:34:36 -0800 Subject: [PATCH 1214/2731] Issue 680: Dispatch meddleware request processing post-routing --- mediagoblin/app.py | 13 +++++++------ mediagoblin/meddleware/__init__.py | 2 +- mediagoblin/meddleware/csrf.py | 2 +- mediagoblin/meddleware/noop.py | 3 ++- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index aafadd97..7f087ed9 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -107,12 +107,6 @@ class MediaGoblinApp(object): def __call__(self, environ, start_response): request = Request(environ) - # pass the request through our meddleware classes - for m in self.meddleware: - response = m.process_request(request) - if response is not None: - return response(environ, start_response) - ## Routing / controller loading stuff path_info = request.path_info route_match = self.routing.match(path_info) @@ -164,6 +158,13 @@ class MediaGoblinApp(object): return render_404(request)(environ, start_response) controller = common.import_component(route_match['controller']) + + # pass the request through our meddleware classes + for m in self.meddleware: + response = m.process_request(request, controller) + if response is not None: + return response(environ, start_response) + request.start_response = start_response # get the response from the controller diff --git a/mediagoblin/meddleware/__init__.py b/mediagoblin/meddleware/__init__.py index 729a020d..7ba70d87 100644 --- a/mediagoblin/meddleware/__init__.py +++ b/mediagoblin/meddleware/__init__.py @@ -25,7 +25,7 @@ class BaseMeddleware(object): def __init__(self, mg_app): self.app = mg_app - def process_request(self, request): + def process_request(self, request, controller): pass def process_response(self, request, response): diff --git a/mediagoblin/meddleware/csrf.py b/mediagoblin/meddleware/csrf.py index ca2eca5f..961fa7a6 100644 --- a/mediagoblin/meddleware/csrf.py +++ b/mediagoblin/meddleware/csrf.py @@ -58,7 +58,7 @@ class CsrfMeddleware(BaseMeddleware): CSRF_KEYLEN = 64 SAFE_HTTP_METHODS = ("GET", "HEAD", "OPTIONS", "TRACE") - def process_request(self, request): + def process_request(self, request, controller): """For non-safe requests, confirm that the tokens are present and match. """ diff --git a/mediagoblin/meddleware/noop.py b/mediagoblin/meddleware/noop.py index b43053de..f5376494 100644 --- a/mediagoblin/meddleware/noop.py +++ b/mediagoblin/meddleware/noop.py @@ -19,7 +19,8 @@ from mediagoblin.meddleware import BaseMeddleware class NoOpMeddleware(BaseMeddleware): - def process_request(self, request): + + def process_request(self, request, controller): pass def process_response(self, request, response): From ca9ebfe2e05c83248d647b442ff29a9758a6a05c Mon Sep 17 00:00:00 2001 From: Nathan Yergler Date: Sat, 26 Nov 2011 15:32:35 -0800 Subject: [PATCH 1215/2731] Issue 680 Allow decorating views to prevent CSRF protection. --- mediagoblin/meddleware/csrf.py | 15 ++++++++++++--- mediagoblin/tests/test_csrf_middleware.py | 21 ++++++++++++++++++++- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/mediagoblin/meddleware/csrf.py b/mediagoblin/meddleware/csrf.py index 961fa7a6..16541bee 100644 --- a/mediagoblin/meddleware/csrf.py +++ b/mediagoblin/meddleware/csrf.py @@ -31,6 +31,13 @@ else: getrandbits = random.getrandbits +def csrf_exempt(func): + """Decorate a Controller to exempt it from CSRF protection.""" + + func.csrf_enabled = False + return func + + class CsrfForm(Form): """Simple form to handle rendering a CSRF token and confirming it is included in the POST.""" @@ -75,9 +82,11 @@ class CsrfMeddleware(BaseMeddleware): # if this is a non-"safe" request (ie, one that could have # side effects), confirm that the CSRF tokens are present and # valid - if request.method not in self.SAFE_HTTP_METHODS \ - and ('gmg.verify_csrf' in request.environ or - 'paste.testing' not in request.environ): + if (getattr(controller, 'csrf_enabled', True) and + request.method not in self.SAFE_HTTP_METHODS and + ('gmg.verify_csrf' in request.environ or + 'paste.testing' not in request.environ) + ): return self.verify_tokens(request) diff --git a/mediagoblin/tests/test_csrf_middleware.py b/mediagoblin/tests/test_csrf_middleware.py index 691f10b9..c8fca23a 100644 --- a/mediagoblin/tests/test_csrf_middleware.py +++ b/mediagoblin/tests/test_csrf_middleware.py @@ -27,7 +27,7 @@ from mediagoblin import mg_globals def test_csrf_cookie_set(test_app): cookie_name = mg_globals.app_config['csrf_cookie_name'] - + # get login page response = test_app.get('/auth/login/') @@ -69,3 +69,22 @@ def test_csrf_token_must_match(test_app): mg_globals.app_config['csrf_cookie_name'])}, extra_environ={'gmg.verify_csrf': True}).\ status_int == 200 + +@setup_fresh_app +def test_csrf_exempt(test_app): + + # monkey with the views to decorate a known endpoint + import mediagoblin.auth.views + from mediagoblin.meddleware.csrf import csrf_exempt + + mediagoblin.auth.views.login = csrf_exempt( + mediagoblin.auth.views.login + ) + + # construct a request with no cookie or form token + assert test_app.post('/auth/login/', + extra_environ={'gmg.verify_csrf': True}, + expect_errors=False).status_int == 200 + + # restore the CSRF protection in case other tests expect it + mediagoblin.auth.views.login.csrf_enabled = True From 3038ba87e4fdc5612f57affeedb643a614e0c9a2 Mon Sep 17 00:00:00 2001 From: Manuel Urbano Santos Date: Sun, 27 Nov 2011 13:49:47 +0100 Subject: [PATCH 1216/2731] * Bug #671: Tags list on Edit page is not seperated by spaces and hard to read : Make 'media_tags_as_string' function put a space after each comma. * Feature #678: Drop custom delimiters in tags : I declare a constant in the begining of text.py file. --- mediagoblin/config_spec.ini | 1 - mediagoblin/tools/text.py | 5 +++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini index eef6f6e0..544f0321 100644 --- a/mediagoblin/config_spec.ini +++ b/mediagoblin/config_spec.ini @@ -27,7 +27,6 @@ email_smtp_pass = string(default=None) allow_registration = boolean(default=True) # tag parsing -tags_delimiter = string(default=",") tags_max_length = integer(default=50) # Whether comments are ascending or descending diff --git a/mediagoblin/tools/text.py b/mediagoblin/tools/text.py index be1adb00..d576224d 100644 --- a/mediagoblin/tools/text.py +++ b/mediagoblin/tools/text.py @@ -43,6 +43,7 @@ HTML_CLEANER = Cleaner( host_whitelist=(), whitelist_tags=set([])) +TAGS_DELIMITER=','; def clean_html(html): # clean_html barfs on an empty string @@ -67,7 +68,7 @@ def convert_to_tag_list_of_dicts(tag_string): # Split the tag string into a list of tags for tag in stripped_tag_string.split( - mg_globals.app_config['tags_delimiter']): + TAGS_DELIMITER): # Ignore empty or duplicate tags if tag.strip() and tag.strip() not in [t['name'] for t in taglist]: @@ -85,7 +86,7 @@ def media_tags_as_string(media_entry_tags): """ media_tag_string = '' if media_entry_tags: - media_tag_string = mg_globals.app_config['tags_delimiter'].join( + media_tag_string = (TAGS_DELIMITER+u' ').join( [tag['name'] for tag in media_entry_tags]) return media_tag_string From d5bb51f9d4871d8b758875fb18be5d8a9fbdb260 Mon Sep 17 00:00:00 2001 From: Manuel Urbano Santos Date: Sun, 27 Nov 2011 13:55:07 +0100 Subject: [PATCH 1217/2731] * Feature #678: Drop custom delimiters in tags * Eliminate the definition of the tag delimiter for tests. * Remove a test that was related to custom tags delimiter. * Bug #671: Tags list on Edit page is not seperated by spaces and hard to read * Modify a test to include this space. --- mediagoblin/tests/test_mgoblin_app.ini | 1 - mediagoblin/tests/test_tags.py | 9 +-------- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/mediagoblin/tests/test_mgoblin_app.ini b/mediagoblin/tests/test_mgoblin_app.ini index f979e810..2525a4f9 100644 --- a/mediagoblin/tests/test_mgoblin_app.ini +++ b/mediagoblin/tests/test_mgoblin_app.ini @@ -5,7 +5,6 @@ email_debug_mode = true db_name = __mediagoblin_tests__ # tag parsing -tags_delimiter = "," tags_max_length = 50 # Celery shouldn't be set up by the application as it's setup via diff --git a/mediagoblin/tests/test_tags.py b/mediagoblin/tests/test_tags.py index a05831c9..583c1a55 100644 --- a/mediagoblin/tests/test_tags.py +++ b/mediagoblin/tests/test_tags.py @@ -39,11 +39,4 @@ def test_list_of_dicts_conversion(test_app): # Make sure converting the list of dicts to a string works assert text.media_tags_as_string([{'name': u'yin', 'slug': u'yin'}, {'name': u'yang', 'slug': u'yang'}]) == \ - u'yin,yang' - - # If the tag delimiter is a space then we expect different results - mg_globals.app_config['tags_delimiter'] = u' ' - assert text.convert_to_tag_list_of_dicts('unicorn ceramic nazi') == [ - {'name': u'unicorn', 'slug': u'unicorn'}, - {'name': u'ceramic', 'slug': u'ceramic'}, - {'name': u'nazi', 'slug': u'nazi'}] + u'yin, yang' From 9382221fe2d3e69b7900cfb7461abfdb443b4d10 Mon Sep 17 00:00:00 2001 From: Manuel Urbano Santos Date: Sun, 27 Nov 2011 14:31:20 +0100 Subject: [PATCH 1218/2731] Fix the text "Seperate tags by commas and spaces" since spaces are not used to seperate anymore. --- mediagoblin/edit/forms.py | 2 +- mediagoblin/submit/forms.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index 93934be7..dd339e08 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -28,7 +28,7 @@ class EditForm(wtforms.Form): _('Tags'), [tag_length_validator], description=_( - "Seperate tags by commas or spaces.")) + "Seperate tags by commas.")) slug = wtforms.TextField( _('Slug'), [wtforms.validators.Required(message=_("The slug can't be empty"))], diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py index 48a21f02..ad420771 100644 --- a/mediagoblin/submit/forms.py +++ b/mediagoblin/submit/forms.py @@ -32,4 +32,4 @@ class SubmitStartForm(wtforms.Form): _('Tags'), [tag_length_validator], description=_( - "Seperate tags by commas or spaces.")) + "Seperate tags by commas.")) From 19e2668b77427a1157984480231023661792fca8 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 27 Nov 2011 15:31:42 -0600 Subject: [PATCH 1219/2731] Updating translations --- .../i18n/ar/LC_MESSAGES/mediagoblin.po | 270 ++++++++------- .../i18n/ca/LC_MESSAGES/mediagoblin.po | 296 +++++++++-------- .../i18n/de/LC_MESSAGES/mediagoblin.po | 312 ++++++++++-------- .../i18n/en/LC_MESSAGES/mediagoblin.po | 242 ++++++++------ .../i18n/eo/LC_MESSAGES/mediagoblin.po | 278 +++++++++------- .../i18n/es/LC_MESSAGES/mediagoblin.po | 278 ++++++++-------- .../i18n/fr/LC_MESSAGES/mediagoblin.po | 280 ++++++++-------- .../i18n/ia/LC_MESSAGES/mediagoblin.po | 254 ++++++++------ .../i18n/it/LC_MESSAGES/mediagoblin.po | 278 +++++++++------- .../i18n/ja/LC_MESSAGES/mediagoblin.po | 256 +++++++------- .../i18n/nl/LC_MESSAGES/mediagoblin.po | 264 ++++++++------- .../i18n/nn_NO/LC_MESSAGES/mediagoblin.po | 282 ++++++++-------- .../i18n/pt_BR/LC_MESSAGES/mediagoblin.po | 278 ++++++++-------- .../i18n/ro/LC_MESSAGES/mediagoblin.po | 279 ++++++++-------- .../i18n/ru/LC_MESSAGES/mediagoblin.po | 292 +++++++++------- .../i18n/sk/LC_MESSAGES/mediagoblin.po | 280 ++++++++-------- .../i18n/sl/LC_MESSAGES/mediagoblin.po | 271 ++++++++------- .../i18n/sr/LC_MESSAGES/mediagoblin.po | 254 ++++++++------ .../i18n/sv/LC_MESSAGES/mediagoblin.po | 282 ++++++++-------- .../i18n/te/LC_MESSAGES/mediagoblin.po | 256 +++++++------- .../i18n/zh_TW/LC_MESSAGES/mediagoblin.po | 275 ++++++++------- 21 files changed, 3155 insertions(+), 2602 deletions(-) diff --git a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po index 548e971f..40e8b1cd 100644 --- a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-01 23:14-0500\n" -"PO-Revision-Date: 2011-11-02 04:13+0000\n" +"POT-Creation-Date: 2011-11-27 15:25-0600\n" +"PO-Revision-Date: 2011-11-27 21:28+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -21,6 +21,10 @@ msgstr "" "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" +#: mediagoblin/processing.py:143 +msgid "Invalid file given for media type." +msgstr "" + #: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "اسم المستخدم" @@ -54,8 +58,8 @@ msgid "Sorry, a user with that name already exists." msgstr "عذرًا، لقد اختار مستخدم آخر هذا الاسم." #: mediagoblin/auth/views.py:77 -msgid "Sorry, that email address has already been taken." -msgstr "عفوًا، هذا العنوان البريدي مستخدم." +msgid "Sorry, a user with that email address already exists." +msgstr "" #: mediagoblin/auth/views.py:179 msgid "" @@ -69,11 +73,19 @@ msgstr "" msgid "The verification key or user id is incorrect" msgstr "مفتاح التحقق أو معرف المستخدم خاطئ" -#: mediagoblin/auth/views.py:207 +#: mediagoblin/auth/views.py:203 +msgid "You must be logged in so we know who to send the email to!" +msgstr "" + +#: mediagoblin/auth/views.py:211 +msgid "You've already verified your email address!" +msgstr "" + +#: mediagoblin/auth/views.py:224 msgid "Resent your verification email." msgstr "أعدنا إرسال رسالة التحقق." -#: mediagoblin/auth/views.py:248 +#: mediagoblin/auth/views.py:265 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -89,43 +101,63 @@ msgstr "العنوان" msgid "Tags" msgstr "الوسوم" -#: mediagoblin/edit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 +msgid "Seperate tags by commas or spaces." +msgstr "" + +#: mediagoblin/edit/forms.py:33 msgid "Slug" msgstr "المسار" -#: mediagoblin/edit/forms.py:32 +#: mediagoblin/edit/forms.py:34 msgid "The slug can't be empty" msgstr "لا يمكن ترك المسار فارغًا" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:35 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" "الجزء الذي يمثل عنوان الملف في المسار. لا حاجة إلى تغيير محتوى هذه الخانة " "عادةً." -#: mediagoblin/edit/forms.py:40 +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "السيرة" -#: mediagoblin/edit/forms.py:43 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "الموقع الإلكتروني" -#: mediagoblin/edit/views.py:64 +#: mediagoblin/edit/forms.py:49 +msgid "Old password" +msgstr "" + +#: mediagoblin/edit/forms.py:52 +msgid "New Password" +msgstr "" + +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "يوجد ملف آخر بهذا المسار لدى هذى المستخدم." -#: mediagoblin/edit/views.py:85 +#: mediagoblin/edit/views.py:86 msgid "You are editing another user's media. Proceed with caution." msgstr "أنت تحرّر وسائط مستخدم آخر. كن حذرًا أثناء العملية." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:156 msgid "You are editing a user's profile. Proceed with caution." msgstr "أنت تحرّر ملف مستخدم آخر. كن حذرًا أثناء العملية." -#: mediagoblin/process_media/errors.py:44 -msgid "Invalid file given for media type." +#: mediagoblin/edit/views.py:171 +msgid "Wrong password" +msgstr "" + +#: mediagoblin/edit/views.py:192 +msgid "Profile edited!" +msgstr "" + +#: mediagoblin/media_types/__init__.py:61 +msgid "Could not find any file extension in \"{filename}\"" msgstr "" #: mediagoblin/submit/forms.py:25 @@ -136,18 +168,18 @@ msgstr "الملف" msgid "Description of this work" msgstr "وصف هذا العمل." -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:49 msgid "You must provide a file." msgstr "يجب أن تضع ملفًا." -#: mediagoblin/submit/views.py:49 -msgid "The file doesn't seem to be an image!" -msgstr "لا يبدو أن هذا الملف صورة!" - -#: mediagoblin/submit/views.py:121 +#: mediagoblin/submit/views.py:127 msgid "Woohoo! Submitted!" msgstr "يا سلام! نُشرَت!" +#: mediagoblin/submit/views.py:133 +msgid "Invalid file type." +msgstr "" + #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" msgstr "ويحي!" @@ -167,29 +199,29 @@ msgstr "" msgid "Image of 404 goblin stressing out" msgstr "صورة قزم مرتبك" -#: mediagoblin/templates/mediagoblin/base.html:22 -msgid "GNU MediaGoblin" -msgstr "غنو ميدياغوبلن" - -#: mediagoblin/templates/mediagoblin/base.html:47 +#: mediagoblin/templates/mediagoblin/base.html:49 msgid "MediaGoblin logo" msgstr "شعار ميدياغوبلن" -#: mediagoblin/templates/mediagoblin/base.html:52 +#: mediagoblin/templates/mediagoblin/base.html:54 msgid "Submit media" msgstr "أرسل وسائط" -#: mediagoblin/templates/mediagoblin/base.html:63 -msgid "verify your email!" -msgstr "أكّد بريدك" +#: mediagoblin/templates/mediagoblin/base.html:65 +msgid "Verify your email!" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "log out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 -#: mediagoblin/templates/mediagoblin/auth/login.html:35 +#: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "لِج" -#: mediagoblin/templates/mediagoblin/base.html:89 +#: mediagoblin/templates/mediagoblin/base.html:91 msgid "" "Powered by MediaGoblin, a GNU project" @@ -200,61 +232,32 @@ msgid "Explore" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:27 -msgid "Hi there, media lover! MediaGoblin is..." -msgstr "مرحبًا بكم يا محبي الوسائط! ميدياغوبلن هو..." +msgid "Hi there, welcome to this MediaGoblin site!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:28 +msgid "Your finest source for all goblin-related media." +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 -msgid "The perfect place for your media!" -msgstr "المكان الأنسب لوسائطك!" - -#: mediagoblin/templates/mediagoblin/root.html:30 msgid "" -"A place for people to collaborate and show off original and derived " -"creations!" -msgstr "مكان يجتمع فيه الناس ليتعاونوا ويعرضوا إبداعاتهم الأصلية والمقتبسة!" +"To add your own media, place comments, save your favourites and more, you " +"can log in with your MediaGoblin account." +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 -msgid "" -"Free, as in freedom. (We’re a GNU project, " -"after all.)" -msgstr "مشروع حر، فنحن أحد مشاريع غنو." +msgid "Don't have one yet? It's easy!" +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:32 -msgid "" -"Aiming to make the world a better place through decentralization and " -"(eventually, coming soon!) federation!" -msgstr "مشروع يحاول جعل عالمنا أفضل عن طريق اللامركزية (قريبًا!)." - -#: mediagoblin/templates/mediagoblin/root.html:33 -msgid "" -"Built for extensibility. (Multiple media types coming soon to the software," -" including video support!)" -msgstr "" -"جاهز للتمدد. (سيُضاف دعم أنساق كثيرة من الوسائط قريبًا، كما سندعم الفيديو!)." - -#: mediagoblin/templates/mediagoblin/root.html:34 -msgid "" -"Powered by people like you. (You can help us improve this" -" software!)" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:38 -msgid "Excited to join us?" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"Create a free account\n" +"Create an account at this site\n" " or\n" -" Set up MediaGoblin on your own server" +" Set up MediaGoblin on your own server" msgstr "" -"أنشئ حسابًا مجانيًا\n" -" أو\n" -" ركّب ميدياغوبلن على خادومك الخاص" -#: mediagoblin/templates/mediagoblin/root.html:53 +#: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" msgstr "أحدث الوسائط" @@ -262,9 +265,13 @@ msgstr "أحدث الوسائط" msgid "Enter your new password" msgstr "أدخل كلمة سرك الجديدة" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 -msgid "Enter your username or email" -msgstr "أدخل اسم المستخدم أو بريدك الإلكتروني" +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Recover password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 +msgid "Send instructions" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." @@ -300,22 +307,18 @@ msgstr "" msgid "Logging in failed!" msgstr "فشل الولوج!" -#: mediagoblin/templates/mediagoblin/auth/login.html:43 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Don't have an account yet?" msgstr "ألا تملك حسابًا بعد؟" -#: mediagoblin/templates/mediagoblin/auth/login.html:46 +#: mediagoblin/templates/mediagoblin/auth/login.html:36 msgid "Create one here!" msgstr "أنشئ حسابًا هنا!" -#: mediagoblin/templates/mediagoblin/auth/login.html:49 +#: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Forgot your password?" msgstr "أنسيت كلمة سرك؟" -#: mediagoblin/templates/mediagoblin/auth/login.html:52 -msgid "Change it!" -msgstr "غيّرها!" - #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "أنشئ حسابًا!" @@ -361,9 +364,15 @@ msgstr "احفظ التغييرات" msgid "Editing %(username)s's profile" msgstr "تحرير ملف %(username)s الشخصي" -#: mediagoblin/templates/mediagoblin/listings/tag.html:31 -msgid "Media tagged with:" -msgstr "الوسائط الموسومة ب‍" +#: mediagoblin/templates/mediagoblin/listings/tag.html:30 +#: mediagoblin/templates/mediagoblin/listings/tag.html:35 +#, python-format +msgid "Media tagged with: %(tag_name)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +msgid "Original" +msgstr "" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" @@ -373,16 +382,16 @@ msgstr "انشر وسائطك" msgid "Submit" msgstr "أرسل" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" msgstr "وسائط %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 -msgid "Sorry, no such user found." -msgstr "عذرًا، تعذر العثور على مستخدم بهذا الاسم." - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -413,35 +422,45 @@ msgstr "لا توجد وسائط تحت المعالجة" msgid "These uploads failed to process:" msgstr "فشلت معالجة هذه الملفات:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:31 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:89 +#, python-format +msgid "%(username)s's profile" +msgstr "ملف %(username)s الشخصي" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:43 +msgid "Sorry, no such user found." +msgstr "عذرًا، تعذر العثور على مستخدم بهذا الاسم." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:50 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:70 msgid "Email verification needed" msgstr "يجب التحقق من البريد الإلكتروني" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:53 msgid "Almost done! Your account still needs to be activated." msgstr "أوشكنا على الانتهاء! ما زال حسابك بحاجة إلى التفعيل." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "ستصلك رسالة إلكترونية خلال لحظات بها التعليمات." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "In case it doesn't:" msgstr "إن لم تصل." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:65 msgid "Resend verification email" msgstr "أعد إرسال رسالة التحقق" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:73 msgid "" "Someone has registered an account with this username, but it still has to be" " activated." msgstr "سجّل أحدهم حسابًا بهذا الاسم، ولكننا بانتظار التفعيل حتى الآن." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:79 #, python-format msgid "" "If you are that person but you've lost your verification email, you can الولوج وإعادة إرسالها." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 -#, python-format -msgid "%(username)s's profile" -msgstr "ملف %(username)s الشخصي" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "Here's a spot to tell others about yourself." msgstr "هذه زاوية لتخبر الآخرين فيها عن نفسك." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 msgid "Edit profile" msgstr "حرِّر الملف الشخصي" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 msgid "This user hasn't filled in their profile (yet)." msgstr "لم يعبئ هذا العضو بيانات ملفه بعد." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 #, python-format msgid "View all of %(username)s's media" msgstr "أظهِر كل وسائط %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "هنا ستظهر وسائطك، ولكن يبدو أنك لم تضف شيئًا بعد." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 msgid "Add media" msgstr "أضف وسائط" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 msgid "There doesn't seem to be any media here yet..." msgstr "لا يبدو أنه توجد أي وسائط هنا حتى الآن..." @@ -503,6 +517,14 @@ msgstr "الأحدث" msgid "Older" msgstr "الأقدم" +#: mediagoblin/templates/mediagoblin/utils/tags.html:20 +msgid "Tagged with" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/tags.html:25 +msgid "and" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "علِّق" @@ -511,15 +533,23 @@ msgstr "علِّق" msgid "I am sure I want to delete this" msgstr "أنا متأكد من رغبتي بحذف هذا العمل" -#: mediagoblin/user_pages/views.py:142 +#: mediagoblin/user_pages/views.py:155 msgid "Empty comments are not allowed." msgstr "" -#: mediagoblin/user_pages/views.py:148 +#: mediagoblin/user_pages/views.py:161 msgid "Comment posted!" msgstr "" -#: mediagoblin/user_pages/views.py:181 +#: mediagoblin/user_pages/views.py:183 +msgid "You deleted the media." +msgstr "" + +#: mediagoblin/user_pages/views.py:190 +msgid "The media was not deleted because you didn't check that you were sure." +msgstr "" + +#: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." msgstr "أنت على وشك حذف وسائط مستخدم آخر. كن حذرًا أثناء العملية." diff --git a/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.po index e2cd8342..f07ab2d6 100644 --- a/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PROJECT project. # # Translators: +# Al fred , 2011. # , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-01 23:14-0500\n" -"PO-Revision-Date: 2011-11-02 04:13+0000\n" +"POT-Creation-Date: 2011-11-27 15:25-0600\n" +"PO-Revision-Date: 2011-11-27 21:28+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -19,6 +20,10 @@ msgstr "" "Language: ca\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" +#: mediagoblin/processing.py:143 +msgid "Invalid file given for media type." +msgstr "Aquest tipus de fitxer no és vàlid." + #: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Nom d'usuari" @@ -52,8 +57,8 @@ msgid "Sorry, a user with that name already exists." msgstr "Lamentablement aquest usuari ja existeix." #: mediagoblin/auth/views.py:77 -msgid "Sorry, that email address has already been taken." -msgstr "Disculpeu, aquesta adreça electrònica ja s'està utilitzant." +msgid "Sorry, a user with that email address already exists." +msgstr "" #: mediagoblin/auth/views.py:179 msgid "" @@ -68,11 +73,19 @@ msgid "The verification key or user id is incorrect" msgstr "" "La clau de verificació o la identificació de l'usuari no són correctes." -#: mediagoblin/auth/views.py:207 +#: mediagoblin/auth/views.py:203 +msgid "You must be logged in so we know who to send the email to!" +msgstr "" + +#: mediagoblin/auth/views.py:211 +msgid "You've already verified your email address!" +msgstr "" + +#: mediagoblin/auth/views.py:224 msgid "Resent your verification email." msgstr "Torna'm a enviar el correu de verificació" -#: mediagoblin/auth/views.py:248 +#: mediagoblin/auth/views.py:265 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -86,42 +99,62 @@ msgstr "Títol" msgid "Tags" msgstr "Etiquetes" -#: mediagoblin/edit/forms.py:31 -msgid "Slug" -msgstr "" - -#: mediagoblin/edit/forms.py:32 -msgid "The slug can't be empty" +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 +msgid "Seperate tags by commas or spaces." msgstr "" #: mediagoblin/edit/forms.py:33 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:34 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:35 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" -#: mediagoblin/edit/forms.py:40 +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "Biografia" -#: mediagoblin/edit/forms.py:43 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Lloc web" -#: mediagoblin/edit/views.py:64 +#: mediagoblin/edit/forms.py:49 +msgid "Old password" +msgstr "" + +#: mediagoblin/edit/forms.py:52 +msgid "New Password" +msgstr "" + +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "" -#: mediagoblin/edit/views.py:85 +#: mediagoblin/edit/views.py:86 msgid "You are editing another user's media. Proceed with caution." msgstr "Esteu editant fitxers d'un altre usuari. Aneu amb compte." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:156 msgid "You are editing a user's profile. Proceed with caution." msgstr "Esteu editant el perfil d'un usuari. Aneu amb compte" -#: mediagoblin/process_media/errors.py:44 -msgid "Invalid file given for media type." -msgstr "Aquest tipus de fitxer no és vàlid." +#: mediagoblin/edit/views.py:171 +msgid "Wrong password" +msgstr "" + +#: mediagoblin/edit/views.py:192 +msgid "Profile edited!" +msgstr "" + +#: mediagoblin/media_types/__init__.py:61 +msgid "Could not find any file extension in \"{filename}\"" +msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" @@ -131,18 +164,18 @@ msgstr "Fitxer" msgid "Description of this work" msgstr "" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:49 msgid "You must provide a file." msgstr "Heu d'escollir un fitxer." -#: mediagoblin/submit/views.py:49 -msgid "The file doesn't seem to be an image!" -msgstr "El fitxer no és una imatge" - -#: mediagoblin/submit/views.py:121 +#: mediagoblin/submit/views.py:127 msgid "Woohoo! Submitted!" msgstr "Visca! S'ha enviat!" +#: mediagoblin/submit/views.py:133 +msgid "Invalid file type." +msgstr "" + #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" msgstr "Ups!" @@ -161,31 +194,31 @@ msgstr "" #: mediagoblin/templates/mediagoblin/404.html:32 msgid "Image of 404 goblin stressing out" -msgstr "" +msgstr "Imatge de la pantalla 404, el goblin no sap què fer..." -#: mediagoblin/templates/mediagoblin/base.html:22 -msgid "GNU MediaGoblin" -msgstr "GNU MediaGoblin" - -#: mediagoblin/templates/mediagoblin/base.html:47 +#: mediagoblin/templates/mediagoblin/base.html:49 msgid "MediaGoblin logo" msgstr "Logo de mediagoblin" -#: mediagoblin/templates/mediagoblin/base.html:52 +#: mediagoblin/templates/mediagoblin/base.html:54 msgid "Submit media" msgstr "Envia fitxers" -#: mediagoblin/templates/mediagoblin/base.html:63 -msgid "verify your email!" -msgstr "verifiqueu el correu electrònic" +#: mediagoblin/templates/mediagoblin/base.html:65 +msgid "Verify your email!" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "log out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 -#: mediagoblin/templates/mediagoblin/auth/login.html:35 +#: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Entra" -#: mediagoblin/templates/mediagoblin/base.html:89 +#: mediagoblin/templates/mediagoblin/base.html:91 msgid "" "Powered by MediaGoblin, a GNU project" @@ -196,66 +229,32 @@ msgid "Explore" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:27 -msgid "Hi there, media lover! MediaGoblin is..." -msgstr "Ei, fanàtic multimèdia! MediaGoblin és..." +msgid "Hi there, welcome to this MediaGoblin site!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:28 +msgid "Your finest source for all goblin-related media." +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 -msgid "The perfect place for your media!" -msgstr "El lloc fitxer pels teus fitxers!" - -#: mediagoblin/templates/mediagoblin/root.html:30 msgid "" -"A place for people to collaborate and show off original and derived " -"creations!" +"To add your own media, place comments, save your favourites and more, you " +"can log in with your MediaGoblin account." msgstr "" -"Un lloc en el qual les persones poden col·laborar i mostrar les seves " -"creacions originals o obres derivades." #: mediagoblin/templates/mediagoblin/root.html:31 -msgid "" -"Free, as in freedom. (We’re a GNU project, " -"after all.)" +msgid "Don't have one yet? It's easy!" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:32 -msgid "" -"Aiming to make the world a better place through decentralization and " -"(eventually, coming soon!) federation!" -msgstr "" -"Amb l'objectiu de fer del món un lloc millor a través de la " -"descentralització i (eventualment, aviat disponible!) La federació!" - -#: mediagoblin/templates/mediagoblin/root.html:33 -msgid "" -"Built for extensibility. (Multiple media types coming soon to the software," -" including video support!)" -msgstr "" -"Construït per l'ampliació. (Múltiples tipus de fitxers en breu amb el " -"programari, incloent el suport de vídeo!)" - -#: mediagoblin/templates/mediagoblin/root.html:34 -msgid "" -"Powered by people like you. (You can help us improve this" -" software!)" -msgstr "" -"Desenvolupat per persones com vostè. ( Podeu ajudar a millorar " -"aquest programari! )" - -#: mediagoblin/templates/mediagoblin/root.html:38 -msgid "Excited to join us?" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"Create a free account\n" +"Create an account at this site\n" " or\n" -" Set up MediaGoblin on your own server" +" Set up MediaGoblin on your own server" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:53 +#: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" msgstr "" @@ -263,8 +262,12 @@ msgstr "" msgid "Enter your new password" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 -msgid "Enter your username or email" +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Recover password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 +msgid "Send instructions" msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 @@ -294,22 +297,18 @@ msgstr "" msgid "Logging in failed!" msgstr "Inici de sessió ha fallat!" -#: mediagoblin/templates/mediagoblin/auth/login.html:43 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Don't have an account yet?" msgstr "Encara no teniu un compte?" -#: mediagoblin/templates/mediagoblin/auth/login.html:46 +#: mediagoblin/templates/mediagoblin/auth/login.html:36 msgid "Create one here!" msgstr "Creeu-ne un aquí!" -#: mediagoblin/templates/mediagoblin/auth/login.html:49 +#: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Forgot your password?" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:52 -msgid "Change it!" -msgstr "" - #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Creeu un compte!" @@ -355,9 +354,15 @@ msgstr "Desa els canvis" msgid "Editing %(username)s's profile" msgstr "" -#: mediagoblin/templates/mediagoblin/listings/tag.html:31 -msgid "Media tagged with:" -msgstr "Etiquetat amb:" +#: mediagoblin/templates/mediagoblin/listings/tag.html:30 +#: mediagoblin/templates/mediagoblin/listings/tag.html:35 +#, python-format +msgid "Media tagged with: %(tag_name)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +msgid "Original" +msgstr "" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" @@ -367,16 +372,16 @@ msgstr "Envieu els vostres fitxers" msgid "Submit" msgstr "Envia" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" msgstr "%(username)s's media" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 -msgid "Sorry, no such user found." -msgstr "Lamentablement no s'ha trobat l'usuari que cercàveu." - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -397,7 +402,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 msgid "Media in-processing" -msgstr "" +msgstr "S'està processant el fitxer" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 msgid "No media in-processing" @@ -405,37 +410,49 @@ msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 msgid "These uploads failed to process:" +msgstr "No s'han pogut penjar els següents fitxers:" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:31 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:89 +#, python-format +msgid "%(username)s's profile" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:43 +msgid "Sorry, no such user found." +msgstr "Lamentablement no s'ha trobat l'usuari que cercàveu." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:50 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:70 msgid "Email verification needed" -msgstr "" +msgstr "Cal que verifiqueu l'adreça electrònica" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:53 msgid "Almost done! Your account still needs to be activated." -msgstr "" +msgstr "Gairebé esteu! Tan sols falta que activeu el vostre compte" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "Us hauria d'arribar un correu amb les instruccions per a fer-ho." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "In case it doesn't:" -msgstr "" +msgstr "Per si no hi fos:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:65 msgid "Resend verification email" msgstr "Torna'm a enviar el correu de verificació" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:73 msgid "" "Someone has registered an account with this username, but it still has to be" " activated." msgstr "" +"Algú ja ha registrat un compte amb aquest nom d'usuari, però encara l'ha " +"d'activar." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:79 #, python-format msgid "" "If you are that person but you've lost your verification email, you can entrar i tornar-lo a enviar." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 -#, python-format -msgid "%(username)s's profile" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "Here's a spot to tell others about yourself." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 msgid "Edit profile" msgstr "Edita el perfil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 msgid "This user hasn't filled in their profile (yet)." -msgstr "" +msgstr "Aquest usuari encara no ha escrit res al seu perfil." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 #, python-format msgid "View all of %(username)s's media" msgstr "View all of %(username)s's media" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 msgid "Add media" -msgstr "" +msgstr "Tots els fitxers" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 msgid "There doesn't seem to be any media here yet..." msgstr "" #: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 msgid "feed icon" -msgstr "" +msgstr "Icona RSS" #: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 msgid "Atom feed" @@ -497,6 +509,14 @@ msgstr "" msgid "Older" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/tags.html:20 +msgid "Tagged with" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/tags.html:25 +msgid "and" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Comentari" @@ -505,15 +525,23 @@ msgstr "Comentari" msgid "I am sure I want to delete this" msgstr "" -#: mediagoblin/user_pages/views.py:142 +#: mediagoblin/user_pages/views.py:155 msgid "Empty comments are not allowed." msgstr "" -#: mediagoblin/user_pages/views.py:148 +#: mediagoblin/user_pages/views.py:161 msgid "Comment posted!" msgstr "" -#: mediagoblin/user_pages/views.py:181 +#: mediagoblin/user_pages/views.py:183 +msgid "You deleted the media." +msgstr "" + +#: mediagoblin/user_pages/views.py:190 +msgid "The media was not deleted because you didn't check that you were sure." +msgstr "" + +#: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po index 5c4ef0d0..f5907eda 100644 --- a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po @@ -6,6 +6,7 @@ # , 2011. # , 2011. # Elrond , 2011. +# , 2011. # Jan-Christoph Borchardt , 2011. # , 2011. # , 2011. @@ -15,9 +16,9 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-01 23:14-0500\n" -"PO-Revision-Date: 2011-11-02 15:18+0000\n" -"Last-Translator: piratenpanda \n" +"POT-Creation-Date: 2011-11-27 15:25-0600\n" +"PO-Revision-Date: 2011-11-27 21:28+0000\n" +"Last-Translator: cwebber \n" "Language-Team: German (http://www.transifex.net/projects/p/mediagoblin/team/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -26,6 +27,10 @@ msgstr "" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" +#: mediagoblin/processing.py:143 +msgid "Invalid file given for media type." +msgstr "Die Datei stimmt nicht mit dem gewählten Medientyp überein." + #: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Benutzername" @@ -48,43 +53,52 @@ msgstr "Hier nochmal eintragen, um Tippfehler zu verhindern." #: mediagoblin/auth/forms.py:42 msgid "Email address" -msgstr "Email-Adresse" +msgstr "E-Mail-Adresse" #: mediagoblin/auth/views.py:55 msgid "Sorry, registration is disabled on this instance." -msgstr "Registrierung ist auf dieser Instanz leider deaktiviert." +msgstr "Das Registrieren ist auf dieser Instanz leider deaktiviert." #: mediagoblin/auth/views.py:73 msgid "Sorry, a user with that name already exists." msgstr "Leider gibt es bereits einen Benutzer mit diesem Namen." #: mediagoblin/auth/views.py:77 -msgid "Sorry, that email address has already been taken." -msgstr "Tut und Leid, aber diese Email-Adresse wird bereits verwendet." +msgid "Sorry, a user with that email address already exists." +msgstr "" #: mediagoblin/auth/views.py:179 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "" -"Deine Email-Adresse wurde bestätigt. Du kannst dich nun anmelden, Dein " +"Deine E-Mail-Adresse wurde bestätigt. Du kannst dich nun anmelden, Dein " "Profil bearbeiten und Bilder hochladen!" #: mediagoblin/auth/views.py:185 msgid "The verification key or user id is incorrect" -msgstr "Der Bestätigungssschlüssel oder die Nutzernummer ist falsch." +msgstr "Der Bestätigungsschlüssel oder die Nutzernummer ist falsch." -#: mediagoblin/auth/views.py:207 +#: mediagoblin/auth/views.py:203 +msgid "You must be logged in so we know who to send the email to!" +msgstr "" + +#: mediagoblin/auth/views.py:211 +msgid "You've already verified your email address!" +msgstr "" + +#: mediagoblin/auth/views.py:224 msgid "Resent your verification email." -msgstr "Bestätigungs-Email wurde erneut versandt." +msgstr "Bestätigungs-E-Mail wurde erneut versandt." -#: mediagoblin/auth/views.py:248 +#: mediagoblin/auth/views.py:265 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" -"Konnte Email zur Wiederherstellung des Passworts nicht senden, weil dein " -"Benutzername inaktiv oder deine Email-Adresse noch nicht verifiziert ist." +"E-Mail zur Wiederherstellung des Passworts konnte nicht gesendet werden, " +"weil dein Benutzername inaktiv oder deine E-Mail-Adresse noch nicht " +"verifiziert ist." #: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" @@ -94,44 +108,64 @@ msgstr "Titel" msgid "Tags" msgstr "Markierungen" -#: mediagoblin/edit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 +msgid "Seperate tags by commas or spaces." +msgstr "" + +#: mediagoblin/edit/forms.py:33 msgid "Slug" msgstr "Kurztitel" -#: mediagoblin/edit/forms.py:32 +#: mediagoblin/edit/forms.py:34 msgid "The slug can't be empty" msgstr "Bitte gib einen Kurztitel ein" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:35 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" "Der Titelteil der Medienadresse. Normalerweise muss hier nichts geändert " "werden." -#: mediagoblin/edit/forms.py:40 +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "Biographie" -#: mediagoblin/edit/forms.py:43 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Webseite" -#: mediagoblin/edit/views.py:64 +#: mediagoblin/edit/forms.py:49 +msgid "Old password" +msgstr "" + +#: mediagoblin/edit/forms.py:52 +msgid "New Password" +msgstr "" + +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "Diesen Kurztitel hast du bereits vergeben." -#: mediagoblin/edit/views.py:85 +#: mediagoblin/edit/views.py:86 msgid "You are editing another user's media. Proceed with caution." msgstr "Du bearbeitest die Medien eines Anderen. Bitte sei vorsichtig." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:156 msgid "You are editing a user's profile. Proceed with caution." msgstr "Du bearbeitest das Profil eines Anderen. Bitte sei vorsichtig." -#: mediagoblin/process_media/errors.py:44 -msgid "Invalid file given for media type." -msgstr "Die Datei stimmt nicht mit dem gewählten Medientyp überein." +#: mediagoblin/edit/views.py:171 +msgid "Wrong password" +msgstr "" + +#: mediagoblin/edit/views.py:192 +msgid "Profile edited!" +msgstr "" + +#: mediagoblin/media_types/__init__.py:61 +msgid "Could not find any file extension in \"{filename}\"" +msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" @@ -141,18 +175,18 @@ msgstr "Datei" msgid "Description of this work" msgstr "Beschreibung des Werkes" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:49 msgid "You must provide a file." msgstr "Du musst eine Datei angeben." -#: mediagoblin/submit/views.py:49 -msgid "The file doesn't seem to be an image!" -msgstr "Diese Datei scheint kein Bild zu sein!" - -#: mediagoblin/submit/views.py:121 +#: mediagoblin/submit/views.py:127 msgid "Woohoo! Submitted!" msgstr "Yeeeaaah! Geschafft!" +#: mediagoblin/submit/views.py:133 +msgid "Invalid file type." +msgstr "" + #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" msgstr "Hoppla!" @@ -173,29 +207,29 @@ msgstr "" msgid "Image of 404 goblin stressing out" msgstr "Bild eines angespannten Goblins" -#: mediagoblin/templates/mediagoblin/base.html:22 -msgid "GNU MediaGoblin" -msgstr "GNU MediaGoblin" - -#: mediagoblin/templates/mediagoblin/base.html:47 +#: mediagoblin/templates/mediagoblin/base.html:49 msgid "MediaGoblin logo" msgstr "MediaGoblin-Logo" -#: mediagoblin/templates/mediagoblin/base.html:52 +#: mediagoblin/templates/mediagoblin/base.html:54 msgid "Submit media" msgstr "Medien hochladen" -#: mediagoblin/templates/mediagoblin/base.html:63 -msgid "verify your email!" -msgstr "Bitte bestätige deine Email-Adresse!" +#: mediagoblin/templates/mediagoblin/base.html:65 +msgid "Verify your email!" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "log out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 -#: mediagoblin/templates/mediagoblin/auth/login.html:35 +#: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Anmelden" -#: mediagoblin/templates/mediagoblin/base.html:89 +#: mediagoblin/templates/mediagoblin/base.html:91 msgid "" "Powered by MediaGoblin, a GNU project" @@ -208,71 +242,32 @@ msgid "Explore" msgstr "Entdecke" #: mediagoblin/templates/mediagoblin/root.html:27 -msgid "Hi there, media lover! MediaGoblin is..." -msgstr "Hallo Medien-Liebhaber! MediaGoblin ist …" +msgid "Hi there, welcome to this MediaGoblin site!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:28 +msgid "Your finest source for all goblin-related media." +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 -msgid "The perfect place for your media!" -msgstr "Der perfekte Platz für deine Medien!" - -#: mediagoblin/templates/mediagoblin/root.html:30 msgid "" -"A place for people to collaborate and show off original and derived " -"creations!" +"To add your own media, place comments, save your favourites and more, you " +"can log in with your MediaGoblin account." msgstr "" -"Ein Platz für Zusammenarbeit und um Originale und abgeleitete Werke zu " -"präsentieren!" #: mediagoblin/templates/mediagoblin/root.html:31 -msgid "" -"Free, as in freedom. (We’re a GNU project, " -"after all.)" +msgid "Don't have one yet? It's easy!" msgstr "" -"Frei, wie in Freiheit. (Wir sind schließlich ein GNU-Projekt.)" #: mediagoblin/templates/mediagoblin/root.html:32 -msgid "" -"Aiming to make the world a better place through decentralization and " -"(eventually, coming soon!) federation!" -msgstr "" -"Weltverbesserer durch Dezentralisierung und (hoffentlich bald!) unabhängige " -"Kommunikation!" - -#: mediagoblin/templates/mediagoblin/root.html:33 -msgid "" -"Built for extensibility. (Multiple media types coming soon to the software," -" including video support!)" -msgstr "" -"Gebaut für Erweiterungen. (Bald mit Unterstützung für verschiedene " -"Medientypen inklusive Videos!)" - -#: mediagoblin/templates/mediagoblin/root.html:34 -msgid "" -"Powered by people like you. (You can help us improve this" -" software!)" -msgstr "" -"Betrieben von Leuten wie dir. (Du kannst uns dabei helfen, " -"die Software zu verbessern!)" - -#: mediagoblin/templates/mediagoblin/root.html:38 -msgid "Excited to join us?" -msgstr "Neugierig dich uns anzuschließen?" - -#: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"Create a free account\n" +"Create an account at this site\n" " or\n" -" Set up MediaGoblin on your own server" +" Set up MediaGoblin on your own server" msgstr "" -"Gratis ein Konto einrichten\n" -" or\n" -" MediaGoblin auf deinem eigenen Server einrichten" -#: mediagoblin/templates/mediagoblin/root.html:53 +#: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" msgstr "Neuste Medien" @@ -280,9 +275,13 @@ msgstr "Neuste Medien" msgid "Enter your new password" msgstr "Neues Passwort eingeben" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 -msgid "Enter your username or email" -msgstr "Benutzername oder Email-Adresse eingeben" +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Recover password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 +msgid "Send instructions" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." @@ -292,8 +291,8 @@ msgstr "Dein Passwort wurde geändert. Versuche dich jetzt einzuloggen." msgid "" "Check your inbox. We sent an email with a URL for changing your password." msgstr "" -"Prüfe deinen Posteingang. Wir haben dir eine Email mit einem Link geschickt," -" mit dem du dein Passwort ändern kannst." +"Überprüfe deinen Posteingang. Wir haben dir eine E-Mail mit einem Link " +"geschickt, mit dem du dein Passwort ändern kannst." #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format @@ -314,28 +313,24 @@ msgstr "" "\n" "%(verification_url)s\n" "\n" -"Wenn du denkst, dass das ein Fehler ist, ignoriere einfach diese Email und bleib ein glücklicher Goblin!" +"Wenn du denkst, dass das ein Fehler ist, ignoriere einfach diese E-Mail und bleib ein glücklicher Goblin!" #: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" msgstr "Anmeldevorgang fehlgeschlagen!" -#: mediagoblin/templates/mediagoblin/auth/login.html:43 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Don't have an account yet?" msgstr "Hast du noch kein Konto?" -#: mediagoblin/templates/mediagoblin/auth/login.html:46 +#: mediagoblin/templates/mediagoblin/auth/login.html:36 msgid "Create one here!" msgstr "Registriere dich hier!" -#: mediagoblin/templates/mediagoblin/auth/login.html:49 +#: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Forgot your password?" msgstr "Passwort vergessen?" -#: mediagoblin/templates/mediagoblin/auth/login.html:52 -msgid "Change it!" -msgstr "Wechsle es!" - #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Neues Konto registrieren!" @@ -356,7 +351,7 @@ msgid "" msgstr "" "Hallo %(username)s,\n" "\n" -"um dein Konto bei GNU MediaGoblin zu aktivieren, musst du folgende Adresse in einem Webbrowser öffnen:\n" +"um dein Konto bei GNU MediaGoblin zu aktivieren, musst du folgende Adresse in deinem Webbrowser öffnen:\n" "\n" "%(verification_url)s" @@ -380,9 +375,15 @@ msgstr "Änderungen speichern" msgid "Editing %(username)s's profile" msgstr "%(username)ss Profil bearbeiten" -#: mediagoblin/templates/mediagoblin/listings/tag.html:31 -msgid "Media tagged with:" -msgstr "Medien markiert mit:" +#: mediagoblin/templates/mediagoblin/listings/tag.html:30 +#: mediagoblin/templates/mediagoblin/listings/tag.html:35 +#, python-format +msgid "Media tagged with: %(tag_name)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +msgid "Original" +msgstr "" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" @@ -392,16 +393,16 @@ msgstr "Medien hochladen" msgid "Submit" msgstr "Bestätigen" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" msgstr "%(username)ss Medien" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 -msgid "Sorry, no such user found." -msgstr "Dieser Benutzer wurde leider nicht gefunden." - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -434,31 +435,41 @@ msgstr "Keine Medien in Bearbeitung" msgid "These uploads failed to process:" msgstr "Die folgenden Uploads sind fehlgeschlagen:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 -msgid "Email verification needed" -msgstr "Email-Bestätigung benötigt" +#: mediagoblin/templates/mediagoblin/user_pages/user.html:31 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:89 +#, python-format +msgid "%(username)s's profile" +msgstr "%(username)ss Profil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:43 +msgid "Sorry, no such user found." +msgstr "Dieser Benutzer konnte leider nicht gefunden werden." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:50 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:70 +msgid "Email verification needed" +msgstr "E-Mail-Bestätigung benötigt" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:53 msgid "Almost done! Your account still needs to be activated." msgstr "Fast fertig! Dein Konto muss noch freigeschaltet werden." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "" -"Gleich solltest du eine Email bekommen, die dir sagt, was du noch machen " -"musst." +"Gleich solltest du eine E-Mail erhalten, die dir erklärt, was du noch machen" +" musst." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "In case it doesn't:" msgstr "Wenn sie nicht ankommt:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:65 msgid "Resend verification email" msgstr "Bestätigung erneut senden" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:73 msgid "" "Someone has registered an account with this username, but it still has to be" " activated." @@ -466,7 +477,7 @@ msgstr "" "Jemand hat bereits ein Konto mit diesem Benutzernamen registriert, aber es " "muss noch aktiviert werden." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:79 #, python-format msgid "" "If you are that person but you've lost your verification email, you can anmelden und sie erneut " "senden." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 -#, python-format -msgid "%(username)s's profile" -msgstr "%(username)ss Profil" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "Here's a spot to tell others about yourself." msgstr "Hier kannst du Anderen etwas über dich erzählen." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 msgid "Edit profile" msgstr "Profil bearbeiten" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 msgid "This user hasn't filled in their profile (yet)." msgstr "Dieser Benutzer hat (noch) keine Daten in seinem Profil." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 #, python-format msgid "View all of %(username)s's media" msgstr "Alle Medien von %(username)s anschauen" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "Hier erscheinen deine Medien. Sobald du etwas hochgeladen hast." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 msgid "Add media" msgstr "Medien hinzufügen" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 msgid "There doesn't seem to be any media here yet..." msgstr "Scheinbar gibt es hier noch nichts …" @@ -529,6 +535,14 @@ msgstr "Neuere" msgid "Older" msgstr "Ältere" +#: mediagoblin/templates/mediagoblin/utils/tags.html:20 +msgid "Tagged with" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/tags.html:25 +msgid "and" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Kommentar" @@ -537,15 +551,23 @@ msgstr "Kommentar" msgid "I am sure I want to delete this" msgstr "Ja, wirklich löschen" -#: mediagoblin/user_pages/views.py:142 +#: mediagoblin/user_pages/views.py:155 msgid "Empty comments are not allowed." msgstr "Leere Kommentare sind nicht erlaubt." -#: mediagoblin/user_pages/views.py:148 +#: mediagoblin/user_pages/views.py:161 msgid "Comment posted!" msgstr "Kommentar hinzugefügt!" -#: mediagoblin/user_pages/views.py:181 +#: mediagoblin/user_pages/views.py:183 +msgid "You deleted the media." +msgstr "" + +#: mediagoblin/user_pages/views.py:190 +msgid "The media was not deleted because you didn't check that you were sure." +msgstr "" + +#: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." msgstr "Du versuchst Medien eines anderen Nutzers zu löschen. Sei vorsichtig." diff --git a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po index f3e0c100..c1f3fd7f 100644 --- a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-11-01 23:14-0500\n" +"POT-Creation-Date: 2011-11-27 15:25-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,6 +17,10 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 0.9.6\n" +#: mediagoblin/processing.py:143 +msgid "Invalid file given for media type." +msgstr "" + #: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "" @@ -50,7 +54,7 @@ msgid "Sorry, a user with that name already exists." msgstr "" #: mediagoblin/auth/views.py:77 -msgid "Sorry, that email address has already been taken." +msgid "Sorry, a user with that email address already exists." msgstr "" #: mediagoblin/auth/views.py:179 @@ -89,40 +93,60 @@ msgstr "" msgid "Tags" msgstr "" -#: mediagoblin/edit/forms.py:31 -msgid "Slug" -msgstr "" - -#: mediagoblin/edit/forms.py:32 -msgid "The slug can't be empty" +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 +msgid "Seperate tags by commas or spaces." msgstr "" #: mediagoblin/edit/forms.py:33 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:34 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:35 msgid "The title part of this media's URL. You usually don't need to change this." msgstr "" -#: mediagoblin/edit/forms.py:40 +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "" -#: mediagoblin/edit/forms.py:43 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "" -#: mediagoblin/edit/views.py:64 +#: mediagoblin/edit/forms.py:49 +msgid "Old password" +msgstr "" + +#: mediagoblin/edit/forms.py:52 +msgid "New Password" +msgstr "" + +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "" -#: mediagoblin/edit/views.py:85 +#: mediagoblin/edit/views.py:86 msgid "You are editing another user's media. Proceed with caution." msgstr "" -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:156 msgid "You are editing a user's profile. Proceed with caution." msgstr "" -#: mediagoblin/process_media/errors.py:44 -msgid "Invalid file given for media type." +#: mediagoblin/edit/views.py:171 +msgid "Wrong password" +msgstr "" + +#: mediagoblin/edit/views.py:192 +msgid "Profile edited!" +msgstr "" + +#: mediagoblin/media_types/__init__.py:61 +msgid "Could not find any file extension in \"{filename}\"" msgstr "" #: mediagoblin/submit/forms.py:25 @@ -133,16 +157,16 @@ msgstr "" msgid "Description of this work" msgstr "" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:49 msgid "You must provide a file." msgstr "" -#: mediagoblin/submit/views.py:49 -msgid "The file doesn't seem to be an image!" +#: mediagoblin/submit/views.py:127 +msgid "Woohoo! Submitted!" msgstr "" -#: mediagoblin/submit/views.py:121 -msgid "Woohoo! Submitted!" +#: mediagoblin/submit/views.py:133 +msgid "Invalid file type." msgstr "" #: mediagoblin/templates/mediagoblin/404.html:21 @@ -163,29 +187,29 @@ msgstr "" msgid "Image of 404 goblin stressing out" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:22 -msgid "GNU MediaGoblin" -msgstr "" - -#: mediagoblin/templates/mediagoblin/base.html:47 +#: mediagoblin/templates/mediagoblin/base.html:49 msgid "MediaGoblin logo" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:52 +#: mediagoblin/templates/mediagoblin/base.html:54 msgid "Submit media" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:63 -msgid "verify your email!" +#: mediagoblin/templates/mediagoblin/base.html:65 +msgid "Verify your email!" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "log out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 -#: mediagoblin/templates/mediagoblin/auth/login.html:35 +#: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:89 +#: mediagoblin/templates/mediagoblin/base.html:91 msgid "" "Powered by MediaGoblin, a GNU project" @@ -196,60 +220,35 @@ msgid "Explore" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:27 -msgid "Hi there, media lover! MediaGoblin is..." +msgid "Hi there, welcome to this MediaGoblin site!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:28 +msgid "Your finest source for all goblin-related media." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 -msgid "The perfect place for your media!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:30 msgid "" -"A place for people to collaborate and show off original and derived " -"creations!" +"To add your own media, place comments, save your favourites and more, you" +" can log in with your MediaGoblin account." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 -msgid "" -"Free, as in freedom. (We’re a GNU project," -" after all.)" +msgid "Don't have one yet? It's easy!" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:32 -msgid "" -"Aiming to make the world a better place through decentralization and " -"(eventually, coming soon!) federation!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:33 -msgid "" -"Built for extensibility. (Multiple media types coming soon to the " -"software, including video support!)" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:34 -msgid "" -"Powered by people like you. (You can help us improve " -"this software!)" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:38 -msgid "Excited to join us?" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"Create a " -"free account\n" +"Create an " +"account at this site\n" " or\n" -" Set up MediaGoblin on " "your own server" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:53 +#: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" msgstr "" @@ -257,8 +256,12 @@ msgstr "" msgid "Enter your new password" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 -msgid "Enter your username or email" +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Recover password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 +msgid "Send instructions" msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 @@ -287,22 +290,18 @@ msgstr "" msgid "Logging in failed!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:43 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Don't have an account yet?" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:46 +#: mediagoblin/templates/mediagoblin/auth/login.html:36 msgid "Create one here!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:49 +#: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Forgot your password?" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:52 -msgid "Change it!" -msgstr "" - #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "" @@ -342,8 +341,14 @@ msgstr "" msgid "Editing %(username)s's profile" msgstr "" -#: mediagoblin/templates/mediagoblin/listings/tag.html:31 -msgid "Media tagged with:" +#: mediagoblin/templates/mediagoblin/listings/tag.html:30 +#: mediagoblin/templates/mediagoblin/listings/tag.html:35 +#, python-format +msgid "Media tagged with: %(tag_name)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +msgid "Original" msgstr "" #: mediagoblin/templates/mediagoblin/submit/start.html:26 @@ -354,14 +359,14 @@ msgstr "" msgid "Submit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format -msgid "%(username)s's media" +msgid "%(username)s's media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 -msgid "Sorry, no such user found." +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 +#, python-format +msgid "%(username)s's media" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 @@ -393,74 +398,79 @@ msgstr "" msgid "These uploads failed to process:" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:31 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:89 +#, python-format +msgid "%(username)s's profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:43 +msgid "Sorry, no such user found." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:50 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:70 msgid "Email verification needed" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:53 msgid "Almost done! Your account still needs to be activated." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "An email should arrive in a few moments with instructions on how to do so." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "In case it doesn't:" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:65 msgid "Resend verification email" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:73 msgid "" "Someone has registered an account with this username, but it still has to" " be activated." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:79 #, python-format msgid "" "If you are that person but you've lost your verification email, you can " "log in and resend it." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 -#, python-format -msgid "%(username)s's profile" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "Here's a spot to tell others about yourself." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 msgid "Edit profile" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 msgid "This user hasn't filled in their profile (yet)." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 #, python-format msgid "View all of %(username)s's media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 msgid "Add media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 msgid "There doesn't seem to be any media here yet..." msgstr "" @@ -480,6 +490,14 @@ msgstr "" msgid "Older" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/tags.html:20 +msgid "Tagged with" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/tags.html:25 +msgid "and" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "" @@ -488,15 +506,23 @@ msgstr "" msgid "I am sure I want to delete this" msgstr "" -#: mediagoblin/user_pages/views.py:142 +#: mediagoblin/user_pages/views.py:155 msgid "Empty comments are not allowed." msgstr "" -#: mediagoblin/user_pages/views.py:148 +#: mediagoblin/user_pages/views.py:161 msgid "Comment posted!" msgstr "" -#: mediagoblin/user_pages/views.py:181 +#: mediagoblin/user_pages/views.py:183 +msgid "You deleted the media." +msgstr "" + +#: mediagoblin/user_pages/views.py:190 +msgid "The media was not deleted because you didn't check that you were sure." +msgstr "" + +#: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po index f6bb1cce..2cffe874 100644 --- a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-01 23:14-0500\n" -"PO-Revision-Date: 2011-11-02 04:13+0000\n" +"POT-Creation-Date: 2011-11-27 15:25-0600\n" +"PO-Revision-Date: 2011-11-27 21:28+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -21,6 +21,10 @@ msgstr "" "Language: eo\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" +#: mediagoblin/processing.py:143 +msgid "Invalid file given for media type." +msgstr "La provizita dosiero ne konformas al la informtipo." + #: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Uzantnomo" @@ -54,8 +58,8 @@ msgid "Sorry, a user with that name already exists." msgstr "Bedaŭrinde, uzanto kun tiu nomo jam ekzistas." #: mediagoblin/auth/views.py:77 -msgid "Sorry, that email address has already been taken." -msgstr "Tiu retpoŝtadreso jam estas uzata." +msgid "Sorry, a user with that email address already exists." +msgstr "" #: mediagoblin/auth/views.py:179 msgid "" @@ -69,11 +73,19 @@ msgstr "" msgid "The verification key or user id is incorrect" msgstr "La kontrol-kodo aŭ la uzantonomo ne estas korekta" -#: mediagoblin/auth/views.py:207 +#: mediagoblin/auth/views.py:203 +msgid "You must be logged in so we know who to send the email to!" +msgstr "" + +#: mediagoblin/auth/views.py:211 +msgid "You've already verified your email address!" +msgstr "" + +#: mediagoblin/auth/views.py:224 msgid "Resent your verification email." msgstr "Resendi vian kontrol-mesaĝon." -#: mediagoblin/auth/views.py:248 +#: mediagoblin/auth/views.py:265 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -89,44 +101,64 @@ msgstr "Titolo" msgid "Tags" msgstr "Etikedoj" -#: mediagoblin/edit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 +msgid "Seperate tags by commas or spaces." +msgstr "" + +#: mediagoblin/edit/forms.py:33 msgid "Slug" msgstr "La distingiga adresparto" -#: mediagoblin/edit/forms.py:32 +#: mediagoblin/edit/forms.py:34 msgid "The slug can't be empty" msgstr "La distingiga adresparto ne povas esti malplena" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:35 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" "La parto de la dosieradreso, bazita sur la dosiertitolo. Ordinare ne necesas" " ĝin ŝanĝi." -#: mediagoblin/edit/forms.py:40 +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "Bio" -#: mediagoblin/edit/forms.py:43 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Retejo" -#: mediagoblin/edit/views.py:64 +#: mediagoblin/edit/forms.py:49 +msgid "Old password" +msgstr "" + +#: mediagoblin/edit/forms.py:52 +msgid "New Password" +msgstr "" + +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "Ĉi tiu uzanto jam havas dosieron kun tiu distingiga adresparto." -#: mediagoblin/edit/views.py:85 +#: mediagoblin/edit/views.py:86 msgid "You are editing another user's media. Proceed with caution." msgstr "Vi priredaktas dosieron de alia uzanto. Agu singardeme." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:156 msgid "You are editing a user's profile. Proceed with caution." msgstr "Vi redaktas profilon de alia uzanto. Agu singardeme." -#: mediagoblin/process_media/errors.py:44 -msgid "Invalid file given for media type." -msgstr "La provizita dosiero ne konformas al la informtipo." +#: mediagoblin/edit/views.py:171 +msgid "Wrong password" +msgstr "" + +#: mediagoblin/edit/views.py:192 +msgid "Profile edited!" +msgstr "" + +#: mediagoblin/media_types/__init__.py:61 +msgid "Could not find any file extension in \"{filename}\"" +msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" @@ -136,18 +168,18 @@ msgstr "Dosiero" msgid "Description of this work" msgstr "Priskribo de ĉi tiu verko" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:49 msgid "You must provide a file." msgstr "Vi devas provizi dosieron." -#: mediagoblin/submit/views.py:49 -msgid "The file doesn't seem to be an image!" -msgstr "La dosiero ŝajnas ne esti bildo!" - -#: mediagoblin/submit/views.py:121 +#: mediagoblin/submit/views.py:127 msgid "Woohoo! Submitted!" msgstr "Hura! Alŝutitas!" +#: mediagoblin/submit/views.py:133 +msgid "Invalid file type." +msgstr "" + #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" msgstr "Oj!" @@ -168,29 +200,29 @@ msgstr "" msgid "Image of 404 goblin stressing out" msgstr "Bildo de 404-koboldo penŝvitanta." -#: mediagoblin/templates/mediagoblin/base.html:22 -msgid "GNU MediaGoblin" -msgstr "GNU MediaGoblin" - -#: mediagoblin/templates/mediagoblin/base.html:47 +#: mediagoblin/templates/mediagoblin/base.html:49 msgid "MediaGoblin logo" msgstr "Emblemo de MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:52 +#: mediagoblin/templates/mediagoblin/base.html:54 msgid "Submit media" msgstr "Alŝuti aŭd-vid-dosieron" -#: mediagoblin/templates/mediagoblin/base.html:63 -msgid "verify your email!" -msgstr "konfirmu vian retpoŝtadreson! " +#: mediagoblin/templates/mediagoblin/base.html:65 +msgid "Verify your email!" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "log out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 -#: mediagoblin/templates/mediagoblin/auth/login.html:35 +#: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Ensaluti" -#: mediagoblin/templates/mediagoblin/base.html:89 +#: mediagoblin/templates/mediagoblin/base.html:91 msgid "" "Powered by MediaGoblin, a GNU project" @@ -203,69 +235,32 @@ msgid "Explore" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:27 -msgid "Hi there, media lover! MediaGoblin is..." -msgstr "Saluton, artemulo! MediaGoblin estas…" +msgid "Hi there, welcome to this MediaGoblin site!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:28 +msgid "Your finest source for all goblin-related media." +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 -msgid "The perfect place for your media!" -msgstr "La perfekta loko por viaj aŭd-vid-dosieroj!" - -#: mediagoblin/templates/mediagoblin/root.html:30 msgid "" -"A place for people to collaborate and show off original and derived " -"creations!" +"To add your own media, place comments, save your favourites and more, you " +"can log in with your MediaGoblin account." msgstr "" -"Loko, kie homoj povas kunlabori, kaj elmeti originalajn kreaĵojn kaj " -"derivaĵojn!" #: mediagoblin/templates/mediagoblin/root.html:31 -msgid "" -"Free, as in freedom. (We’re a GNU project, " -"after all.)" +msgid "Don't have one yet? It's easy!" msgstr "" -"Libera verko. (Ni ja estas projekto de GNU.)" #: mediagoblin/templates/mediagoblin/root.html:32 -msgid "" -"Aiming to make the world a better place through decentralization and " -"(eventually, coming soon!) federation!" -msgstr "" -"Celanta plibonigi la mondon per sencentreco kaj (iam, baldaŭ!) federateco!" - -#: mediagoblin/templates/mediagoblin/root.html:33 -msgid "" -"Built for extensibility. (Multiple media types coming soon to the software," -" including video support!)" -msgstr "" -"Kreita por etendado. (Baldaŭ en la programo aperos subteno de pluraj " -"informspecoj, inkluzive de filmoj!)" - -#: mediagoblin/templates/mediagoblin/root.html:34 -msgid "" -"Powered by people like you. (You can help us improve this" -" software!)" -msgstr "" -"Vivanta per homoj kiel vi. (Vi povas helpi al ni " -"plibonigi la programon!)" - -#: mediagoblin/templates/mediagoblin/root.html:38 -msgid "Excited to join us?" -msgstr "Ĉu vi deziregas aliĝi nin?" - -#: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"Create a free account\n" +"Create an account at this site\n" " or\n" -" Set up MediaGoblin on your own server" +" Set up MediaGoblin on your own server" msgstr "" -"Kreu senpagan" -" konton⏎ aŭ⏎ Kreu senpagan konton" -#: mediagoblin/templates/mediagoblin/root.html:53 +#: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" msgstr "Plej nove aldonitaj dosieroj" @@ -273,9 +268,13 @@ msgstr "Plej nove aldonitaj dosieroj" msgid "Enter your new password" msgstr "Enigu vian novan pasvorton" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 -msgid "Enter your username or email" -msgstr "Enigu vian salutnomon aŭ retpoŝtadreson" +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Recover password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 +msgid "Send instructions" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." @@ -313,22 +312,18 @@ msgstr "" msgid "Logging in failed!" msgstr "Ensaluto malsukcesis!" -#: mediagoblin/templates/mediagoblin/auth/login.html:43 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Don't have an account yet?" msgstr "Ĉu ankoraŭ sen konto?" -#: mediagoblin/templates/mediagoblin/auth/login.html:46 +#: mediagoblin/templates/mediagoblin/auth/login.html:36 msgid "Create one here!" msgstr "Kreu ĝin ĉi tie!" -#: mediagoblin/templates/mediagoblin/auth/login.html:49 +#: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Forgot your password?" msgstr "Ĉu vi forgesis vian pasvorton?" -#: mediagoblin/templates/mediagoblin/auth/login.html:52 -msgid "Change it!" -msgstr "Ŝanĝu ĝin!" - #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Kreu konton!" @@ -373,9 +368,15 @@ msgstr "Konservi ŝanĝojn" msgid "Editing %(username)s's profile" msgstr "Redaktado de l’profilo de %(username)s'" -#: mediagoblin/templates/mediagoblin/listings/tag.html:31 -msgid "Media tagged with:" -msgstr "Dosieroj markitaj per:" +#: mediagoblin/templates/mediagoblin/listings/tag.html:30 +#: mediagoblin/templates/mediagoblin/listings/tag.html:35 +#, python-format +msgid "Media tagged with: %(tag_name)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +msgid "Original" +msgstr "" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" @@ -385,16 +386,16 @@ msgstr "Alŝutu vian aŭd-vid-dosieron" msgid "Submit" msgstr "Alŝuti" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" msgstr "Dosieroj de %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 -msgid "Sorry, no such user found." -msgstr "Uzanto ne trovita." - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -427,30 +428,40 @@ msgstr "Neniu dosieroj preparatas" msgid "These uploads failed to process:" msgstr "Preparado de ĉi tiuj alŝutaĵoj malsukcesis:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:31 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:89 +#, python-format +msgid "%(username)s's profile" +msgstr "Profilo de %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:43 +msgid "Sorry, no such user found." +msgstr "Uzanto ne trovita." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:50 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:70 msgid "Email verification needed" msgstr "Necesas konfirmo de retpoŝtadreso" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:53 msgid "Almost done! Your account still needs to be activated." msgstr "Preskaŭ finite! Restas nur validigi vian konton." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "" "Post kelkaj momentoj devas veni retletero kun instrukcio pri kiel tion fari." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "In case it doesn't:" msgstr "Se tio ne okazas:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:65 msgid "Resend verification email" msgstr "Resendi kontrolmesaĝon" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:73 msgid "" "Someone has registered an account with this username, but it still has to be" " activated." @@ -458,7 +469,7 @@ msgstr "" "Iu registris konton kun tiu ĉi uzantonomo, sed ĝi devas ankoraŭ esti " "aktivigita." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:79 #, python-format msgid "" "If you are that person but you've lost your verification email, you can ensaluti kaj resendi ĝin." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 -#, python-format -msgid "%(username)s's profile" -msgstr "Profilo de %(username)s" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "Here's a spot to tell others about yourself." msgstr "Jen estas spaceto por rakonti pri vi al aliaj." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 msgid "Edit profile" msgstr "Redakti profilon" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 msgid "This user hasn't filled in their profile (yet)." msgstr "Ĉi tiu uzanto ne jam aldonis informojn pri si." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 #, python-format msgid "View all of %(username)s's media" msgstr "Rigardi ĉiujn dosierojn de %(username)s'" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" "Ĝuste ĉi tie aperos viaj dosieroj, sed vi ŝajne ankoraŭ nenion alŝutis." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 msgid "Add media" msgstr "Aldoni dosieron" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 msgid "There doesn't seem to be any media here yet..." msgstr "Ĉi tie ŝajne estas ankoraŭ neniuj dosieroj…" @@ -521,6 +527,14 @@ msgstr "Plinovaj" msgid "Older" msgstr "Malplinovaj" +#: mediagoblin/templates/mediagoblin/utils/tags.html:20 +msgid "Tagged with" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/tags.html:25 +msgid "and" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Komento" @@ -529,15 +543,23 @@ msgstr "Komento" msgid "I am sure I want to delete this" msgstr "Mi estas certa, ke mi volas forigi ĉi tion" -#: mediagoblin/user_pages/views.py:142 +#: mediagoblin/user_pages/views.py:155 msgid "Empty comments are not allowed." -msgstr "" +msgstr "Malplenaj komentoj ne estas afiŝeblaj." -#: mediagoblin/user_pages/views.py:148 +#: mediagoblin/user_pages/views.py:161 msgid "Comment posted!" +msgstr "La komento estas afiŝita!" + +#: mediagoblin/user_pages/views.py:183 +msgid "You deleted the media." msgstr "" -#: mediagoblin/user_pages/views.py:181 +#: mediagoblin/user_pages/views.py:190 +msgid "The media was not deleted because you didn't check that you were sure." +msgstr "" + +#: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." msgstr "Vi estas forigonta dosieron de alia uzanto. Estu singardema." diff --git a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po index a3c9939b..6ab070af 100644 --- a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po @@ -14,8 +14,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-01 23:14-0500\n" -"PO-Revision-Date: 2011-11-02 04:13+0000\n" +"POT-Creation-Date: 2011-11-27 15:25-0600\n" +"PO-Revision-Date: 2011-11-27 21:28+0000\n" "Last-Translator: cwebber \n" "Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mediagoblin/team/es/)\n" "MIME-Version: 1.0\n" @@ -25,6 +25,10 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" +#: mediagoblin/processing.py:143 +msgid "Invalid file given for media type." +msgstr "Archivo inválido para el formato seleccionado." + #: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Nombre de usuario" @@ -59,8 +63,8 @@ msgid "Sorry, a user with that name already exists." msgstr "Lo sentimos, ya existe un usuario con ese nombre." #: mediagoblin/auth/views.py:77 -msgid "Sorry, that email address has already been taken." -msgstr "Lo sentimos, esa dirección de correo electrónico ya ha sido tomada." +msgid "Sorry, a user with that email address already exists." +msgstr "" #: mediagoblin/auth/views.py:179 msgid "" @@ -75,11 +79,19 @@ msgid "The verification key or user id is incorrect" msgstr "" "La clave de verificación o la identificación de usuario son incorrectas" -#: mediagoblin/auth/views.py:207 +#: mediagoblin/auth/views.py:203 +msgid "You must be logged in so we know who to send the email to!" +msgstr "" + +#: mediagoblin/auth/views.py:211 +msgid "You've already verified your email address!" +msgstr "" + +#: mediagoblin/auth/views.py:224 msgid "Resent your verification email." msgstr "Se reenvió tu correo electrónico de verificación." -#: mediagoblin/auth/views.py:248 +#: mediagoblin/auth/views.py:265 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -96,44 +108,64 @@ msgstr "Título" msgid "Tags" msgstr "Etiquetas" -#: mediagoblin/edit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 +msgid "Seperate tags by commas or spaces." +msgstr "" + +#: mediagoblin/edit/forms.py:33 msgid "Slug" msgstr "Ficha" -#: mediagoblin/edit/forms.py:32 +#: mediagoblin/edit/forms.py:34 msgid "The slug can't be empty" msgstr "La ficha no puede estar vacía" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:35 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" "La parte del título de la URL de este contenido. Normalmente no necesitas " "cambiar esto." -#: mediagoblin/edit/forms.py:40 +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "Bio" -#: mediagoblin/edit/forms.py:43 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Sitio web" -#: mediagoblin/edit/views.py:64 +#: mediagoblin/edit/forms.py:49 +msgid "Old password" +msgstr "" + +#: mediagoblin/edit/forms.py:52 +msgid "New Password" +msgstr "" + +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "Una entrada con esa ficha ya existe para este usuario." -#: mediagoblin/edit/views.py:85 +#: mediagoblin/edit/views.py:86 msgid "You are editing another user's media. Proceed with caution." msgstr "Estás editando el contenido de otro usuario. Proceder con precaución." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:156 msgid "You are editing a user's profile. Proceed with caution." msgstr "Estás editando un perfil de usuario. Proceder con precaución." -#: mediagoblin/process_media/errors.py:44 -msgid "Invalid file given for media type." -msgstr "Archivo inválido para el formato seleccionado." +#: mediagoblin/edit/views.py:171 +msgid "Wrong password" +msgstr "" + +#: mediagoblin/edit/views.py:192 +msgid "Profile edited!" +msgstr "" + +#: mediagoblin/media_types/__init__.py:61 +msgid "Could not find any file extension in \"{filename}\"" +msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" @@ -143,18 +175,18 @@ msgstr "Archivo" msgid "Description of this work" msgstr "Descripción de esta obra" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:49 msgid "You must provide a file." msgstr "Debes proporcionar un archivo." -#: mediagoblin/submit/views.py:49 -msgid "The file doesn't seem to be an image!" -msgstr "¡El archivo no parece ser una imagen!" - -#: mediagoblin/submit/views.py:121 +#: mediagoblin/submit/views.py:127 msgid "Woohoo! Submitted!" msgstr "¡Woohoo! ¡Enviado!" +#: mediagoblin/submit/views.py:133 +msgid "Invalid file type." +msgstr "" + #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" msgstr "Ups!" @@ -175,29 +207,29 @@ msgstr "" msgid "Image of 404 goblin stressing out" msgstr "Imagen de 404 goblin estresándose" -#: mediagoblin/templates/mediagoblin/base.html:22 -msgid "GNU MediaGoblin" -msgstr "GNU MediaGoblin" - -#: mediagoblin/templates/mediagoblin/base.html:47 +#: mediagoblin/templates/mediagoblin/base.html:49 msgid "MediaGoblin logo" msgstr "Logo de MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:52 +#: mediagoblin/templates/mediagoblin/base.html:54 msgid "Submit media" msgstr "Enviar contenido" -#: mediagoblin/templates/mediagoblin/base.html:63 -msgid "verify your email!" -msgstr "¡Verifica tu correo electrónico!" +#: mediagoblin/templates/mediagoblin/base.html:65 +msgid "Verify your email!" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "log out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 -#: mediagoblin/templates/mediagoblin/auth/login.html:35 +#: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Conectarse" -#: mediagoblin/templates/mediagoblin/base.html:89 +#: mediagoblin/templates/mediagoblin/base.html:91 msgid "" "Powered by MediaGoblin, a GNU project" @@ -210,71 +242,32 @@ msgid "Explore" msgstr "Explorar" #: mediagoblin/templates/mediagoblin/root.html:27 -msgid "Hi there, media lover! MediaGoblin is..." -msgstr "¡Hola, amante de los contenidos! MediaGoblin es ..." +msgid "Hi there, welcome to this MediaGoblin site!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:28 +msgid "Your finest source for all goblin-related media." +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 -msgid "The perfect place for your media!" -msgstr "¡El lugar ideal para tus contenidos!" - -#: mediagoblin/templates/mediagoblin/root.html:30 msgid "" -"A place for people to collaborate and show off original and derived " -"creations!" +"To add your own media, place comments, save your favourites and more, you " +"can log in with your MediaGoblin account." msgstr "" -"¡Un lugar para colaborar y exhibir tus creaciones originales y derivadas!" #: mediagoblin/templates/mediagoblin/root.html:31 -msgid "" -"Free, as in freedom. (We’re a GNU project, " -"after all.)" +msgid "Don't have one yet? It's easy!" msgstr "" -"Libre, como en la libertad. (Somos parte del proyecto GNU después de todo.)" #: mediagoblin/templates/mediagoblin/root.html:32 -msgid "" -"Aiming to make the world a better place through decentralization and " -"(eventually, coming soon!) federation!" -msgstr "" -"Queriendo hacer del mundo un mejor lugar a través de la descentralización y " -"(eventualmente, muy pronto!) la federalización!" - -#: mediagoblin/templates/mediagoblin/root.html:33 -msgid "" -"Built for extensibility. (Multiple media types coming soon to the software," -" including video support!)" -msgstr "" -"Pensado para ser extensible. (Prontamente soporte para multiples formatos, " -"incluyendo video!)" - -#: mediagoblin/templates/mediagoblin/root.html:34 -msgid "" -"Powered by people like you. (You can help us improve this" -" software!)" -msgstr "" -"Impulsado por gente como vos. ( Vos podés ayudarnos a " -"mejorar este programa)" - -#: mediagoblin/templates/mediagoblin/root.html:38 -msgid "Excited to join us?" -msgstr "Te gustaría unirte a nosotros?" - -#: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"Create a free account\n" +"Create an account at this site\n" " or\n" -" Set up MediaGoblin on your own server" +" Set up MediaGoblin on your own server" msgstr "" -"Crea una " -"cuenta gratuita o Establece MediaGoblin en " -"tu propio servidor" -#: mediagoblin/templates/mediagoblin/root.html:53 +#: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" msgstr "El contenido más reciente" @@ -282,9 +275,13 @@ msgstr "El contenido más reciente" msgid "Enter your new password" msgstr "Ingrese su nueva contraseña" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 -msgid "Enter your username or email" -msgstr "Introduzca su nombre de usuario o correo electrónico" +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Recover password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 +msgid "Send instructions" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." @@ -319,22 +316,18 @@ msgstr "" msgid "Logging in failed!" msgstr "¡Falló el inicio de sesión!" -#: mediagoblin/templates/mediagoblin/auth/login.html:43 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Don't have an account yet?" msgstr "¿No tienes una cuenta?" -#: mediagoblin/templates/mediagoblin/auth/login.html:46 +#: mediagoblin/templates/mediagoblin/auth/login.html:36 msgid "Create one here!" msgstr "¡Crea una aquí!" -#: mediagoblin/templates/mediagoblin/auth/login.html:49 +#: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Forgot your password?" msgstr "¿Olvidaste tu contraseña?" -#: mediagoblin/templates/mediagoblin/auth/login.html:52 -msgid "Change it!" -msgstr "Cambiarlo!" - #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "¡Crea una cuenta!" @@ -379,9 +372,15 @@ msgstr "Guardar cambios" msgid "Editing %(username)s's profile" msgstr "Editando el perfil de %(username)s" -#: mediagoblin/templates/mediagoblin/listings/tag.html:31 -msgid "Media tagged with:" -msgstr "Contenido etiquetado con:" +#: mediagoblin/templates/mediagoblin/listings/tag.html:30 +#: mediagoblin/templates/mediagoblin/listings/tag.html:35 +#, python-format +msgid "Media tagged with: %(tag_name)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +msgid "Original" +msgstr "" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" @@ -391,16 +390,16 @@ msgstr "Envía tu contenido" msgid "Submit" msgstr "Enviar" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" msgstr "Contenido de %(username)s's" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 -msgid "Sorry, no such user found." -msgstr "Lo sentimos, no se encontró ese usuario." - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -433,31 +432,41 @@ msgstr "No hay contenido siendo procesado." msgid "These uploads failed to process:" msgstr "Estos archivos no pudieron ser procesados:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:31 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:89 +#, python-format +msgid "%(username)s's profile" +msgstr "Perfil de %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:43 +msgid "Sorry, no such user found." +msgstr "Lo sentimos, no se encontró ese usuario." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:50 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:70 msgid "Email verification needed" msgstr "Es necesario un correo electrónico de verificación" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:53 msgid "Almost done! Your account still needs to be activated." msgstr "Casi terminas! Solo falta activar la cuenta." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "" "En unos momentos te debería llegar un correo electrónico con las " "instrucciones para hacerlo." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "In case it doesn't:" msgstr "En caso de que no:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:65 msgid "Resend verification email" msgstr "Reenviar correo electrónico de verificación" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:73 msgid "" "Someone has registered an account with this username, but it still has to be" " activated." @@ -465,7 +474,7 @@ msgstr "" "Alguien ya registró una cuenta con ese nombre de usuario, pero todavía no " "fue activada." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:79 #, python-format msgid "" "If you are that person but you've lost your verification email, you can acceder y reenviarlo." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 -#, python-format -msgid "%(username)s's profile" -msgstr "Perfil de %(username)s" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "Here's a spot to tell others about yourself." msgstr "Aquí hay un lugar para que le cuentes a los demás sobre tí." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 msgid "Edit profile" msgstr "Editar perfil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 msgid "This user hasn't filled in their profile (yet)." msgstr "Este usuario (todavia) no ha completado su perfil." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 #, python-format msgid "View all of %(username)s's media" msgstr "Ver todo el contenido de %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" "Aquí es donde tú contenido estará, pero parece que aún no has agregado nada." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 msgid "Add media" msgstr "Añadir contenido" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 msgid "There doesn't seem to be any media here yet..." msgstr "Parece que aún no hay ningún contenido aquí..." @@ -528,6 +532,14 @@ msgstr "Recientes" msgid "Older" msgstr "Antiguas" +#: mediagoblin/templates/mediagoblin/utils/tags.html:20 +msgid "Tagged with" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/tags.html:25 +msgid "and" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Comentario" @@ -536,15 +548,23 @@ msgstr "Comentario" msgid "I am sure I want to delete this" msgstr "Estoy seguro de que quiero borrar esto" -#: mediagoblin/user_pages/views.py:142 +#: mediagoblin/user_pages/views.py:155 msgid "Empty comments are not allowed." msgstr "" -#: mediagoblin/user_pages/views.py:148 +#: mediagoblin/user_pages/views.py:161 msgid "Comment posted!" msgstr "" -#: mediagoblin/user_pages/views.py:181 +#: mediagoblin/user_pages/views.py:183 +msgid "You deleted the media." +msgstr "" + +#: mediagoblin/user_pages/views.py:190 +msgid "The media was not deleted because you didn't check that you were sure." +msgstr "" + +#: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" "Estás a punto de eliminar un contenido de otro usuario. Proceder con " diff --git a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po index 0a6a5a40..b37f5217 100644 --- a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po @@ -13,9 +13,9 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-01 23:14-0500\n" -"PO-Revision-Date: 2011-11-04 10:05+0000\n" -"Last-Translator: chesuidayeur \n" +"POT-Creation-Date: 2011-11-27 15:25-0600\n" +"PO-Revision-Date: 2011-11-27 21:28+0000\n" +"Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -24,6 +24,10 @@ msgstr "" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" +#: mediagoblin/processing.py:143 +msgid "Invalid file given for media type." +msgstr "Le fichier envoyé ne correspond pas au type de média." + #: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Nom d'utilisateur" @@ -59,8 +63,8 @@ msgid "Sorry, a user with that name already exists." msgstr "Un utilisateur existe déjà avec ce nom, désolé." #: mediagoblin/auth/views.py:77 -msgid "Sorry, that email address has already been taken." -msgstr "Désolé, cette adresse courriel a déjà été prise." +msgid "Sorry, a user with that email address already exists." +msgstr "" #: mediagoblin/auth/views.py:179 msgid "" @@ -74,11 +78,19 @@ msgstr "" msgid "The verification key or user id is incorrect" msgstr "La clé de vérification ou le nom d'utilisateur est incorrect." -#: mediagoblin/auth/views.py:207 +#: mediagoblin/auth/views.py:203 +msgid "You must be logged in so we know who to send the email to!" +msgstr "" + +#: mediagoblin/auth/views.py:211 +msgid "You've already verified your email address!" +msgstr "" + +#: mediagoblin/auth/views.py:224 msgid "Resent your verification email." msgstr "E-mail de vérification renvoyé." -#: mediagoblin/auth/views.py:248 +#: mediagoblin/auth/views.py:265 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -94,48 +106,68 @@ msgstr "Titre" msgid "Tags" msgstr "Tags" -#: mediagoblin/edit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 +msgid "Seperate tags by commas or spaces." +msgstr "" + +#: mediagoblin/edit/forms.py:33 msgid "Slug" msgstr "Légende" -#: mediagoblin/edit/forms.py:32 +#: mediagoblin/edit/forms.py:34 msgid "The slug can't be empty" msgstr "La légende ne peut pas être laissée vide." -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:35 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" "Le nom de ce media dans l'URL. Vous n'avez normalement pas besoin de le " "changer" -#: mediagoblin/edit/forms.py:40 +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "Bio" -#: mediagoblin/edit/forms.py:43 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Site web" -#: mediagoblin/edit/views.py:64 +#: mediagoblin/edit/forms.py:49 +msgid "Old password" +msgstr "" + +#: mediagoblin/edit/forms.py:52 +msgid "New Password" +msgstr "" + +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "Une entrée existe déjà pour cet utilisateur avec la même légende." -#: mediagoblin/edit/views.py:85 +#: mediagoblin/edit/views.py:86 msgid "You are editing another user's media. Proceed with caution." msgstr "" "Vous vous apprêtez à modifier le média d'un autre utilisateur. Veuillez " "prendre garde." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:156 msgid "You are editing a user's profile. Proceed with caution." msgstr "" "Vous vous apprêtez à modifier le profil d'un utilisateur. Veuillez prendre " "garde." -#: mediagoblin/process_media/errors.py:44 -msgid "Invalid file given for media type." -msgstr "Le fichier envoyé ne correspond pas au type de média." +#: mediagoblin/edit/views.py:171 +msgid "Wrong password" +msgstr "" + +#: mediagoblin/edit/views.py:192 +msgid "Profile edited!" +msgstr "" + +#: mediagoblin/media_types/__init__.py:61 +msgid "Could not find any file extension in \"{filename}\"" +msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" @@ -145,18 +177,18 @@ msgstr "Fichier" msgid "Description of this work" msgstr "Descriptif pour ce travail" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:49 msgid "You must provide a file." msgstr "Il vous faut fournir un fichier." -#: mediagoblin/submit/views.py:49 -msgid "The file doesn't seem to be an image!" -msgstr "Ce fichier ne semble pas être une image !" - -#: mediagoblin/submit/views.py:121 +#: mediagoblin/submit/views.py:127 msgid "Woohoo! Submitted!" msgstr "Youhou, c'est envoyé !" +#: mediagoblin/submit/views.py:133 +msgid "Invalid file type." +msgstr "" + #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" msgstr "Zut!" @@ -177,29 +209,29 @@ msgstr "" msgid "Image of 404 goblin stressing out" msgstr "Image de 404 gobelin angoissé" -#: mediagoblin/templates/mediagoblin/base.html:22 -msgid "GNU MediaGoblin" -msgstr "GNU MediaGoblin" - -#: mediagoblin/templates/mediagoblin/base.html:47 +#: mediagoblin/templates/mediagoblin/base.html:49 msgid "MediaGoblin logo" msgstr "Logo MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:52 +#: mediagoblin/templates/mediagoblin/base.html:54 msgid "Submit media" msgstr "Soumettre un média" -#: mediagoblin/templates/mediagoblin/base.html:63 -msgid "verify your email!" -msgstr "vérifiez votre adresse e-mail !" +#: mediagoblin/templates/mediagoblin/base.html:65 +msgid "Verify your email!" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "log out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 -#: mediagoblin/templates/mediagoblin/auth/login.html:35 +#: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "S'identifier" -#: mediagoblin/templates/mediagoblin/base.html:89 +#: mediagoblin/templates/mediagoblin/base.html:91 msgid "" "Powered by MediaGoblin, a GNU project" @@ -212,71 +244,32 @@ msgid "Explore" msgstr "Explorer" #: mediagoblin/templates/mediagoblin/root.html:27 -msgid "Hi there, media lover! MediaGoblin is..." -msgstr "Salut à tous, amateur de médias! MediaGoblin est ..." +msgid "Hi there, welcome to this MediaGoblin site!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:28 +msgid "Your finest source for all goblin-related media." +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 -msgid "The perfect place for your media!" -msgstr "L'endroit idéal pour vos médias!" - -#: mediagoblin/templates/mediagoblin/root.html:30 msgid "" -"A place for people to collaborate and show off original and derived " -"creations!" +"To add your own media, place comments, save your favourites and more, you " +"can log in with your MediaGoblin account." msgstr "" -"Un espace de création collaboratif : montrez vos œuvres, originales ou " -"dérivées !" #: mediagoblin/templates/mediagoblin/root.html:31 -msgid "" -"Free, as in freedom. (We’re a GNU project, " -"after all.)" +msgid "Don't have one yet? It's easy!" msgstr "" -"Logiciel libre. (Nous sommes un projet GNU " -"après tout.)" #: mediagoblin/templates/mediagoblin/root.html:32 -msgid "" -"Aiming to make the world a better place through decentralization and " -"(eventually, coming soon!) federation!" -msgstr "" -"Une tentative de rendre le monde meilleur grâce à la décentralisation et (à " -"terme, et pour bientôt !) la fédération !" - -#: mediagoblin/templates/mediagoblin/root.html:33 -msgid "" -"Built for extensibility. (Multiple media types coming soon to the software," -" including video support!)" -msgstr "" -"Construit pour l'extensibilité. (Plusieurs types de médias à venir au " -"logiciel, y compris le support vidéo!)" - -#: mediagoblin/templates/mediagoblin/root.html:34 -msgid "" -"Powered by people like you. (You can help us improve this" -" software!)" -msgstr "" -"Propulsé par des gens comme vous. (Vous pouvez nous aider à " -"améliorer ce logiciel!)" - -#: mediagoblin/templates/mediagoblin/root.html:38 -msgid "Excited to join us?" -msgstr "Envi de vous joindre à nous ?" - -#: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"Create a free account\n" +"Create an account at this site\n" " or\n" -" Set up MediaGoblin on your own server" +" Set up MediaGoblin on your own server" msgstr "" -"Créez gratuitement en compte\n" -" ou\n" -" Installez MediaGoblin sur votre propre serveur" -#: mediagoblin/templates/mediagoblin/root.html:53 +#: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" msgstr "Tout derniers media" @@ -284,9 +277,13 @@ msgstr "Tout derniers media" msgid "Enter your new password" msgstr "Entrez un nouveau mot de passe" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 -msgid "Enter your username or email" -msgstr "Entrez votre nom d'utilisateur ou votre email" +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Recover password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 +msgid "Send instructions" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." @@ -327,22 +324,18 @@ msgstr "" msgid "Logging in failed!" msgstr "La connexion a échoué!" -#: mediagoblin/templates/mediagoblin/auth/login.html:43 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Don't have an account yet?" msgstr "Pas encore de compte?" -#: mediagoblin/templates/mediagoblin/auth/login.html:46 +#: mediagoblin/templates/mediagoblin/auth/login.html:36 msgid "Create one here!" msgstr "Créez-en un ici!" -#: mediagoblin/templates/mediagoblin/auth/login.html:49 +#: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Forgot your password?" msgstr "Vous avez oublié votre mot de passe ?" -#: mediagoblin/templates/mediagoblin/auth/login.html:52 -msgid "Change it!" -msgstr "Changez-le !" - #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Créer un compte!" @@ -387,9 +380,15 @@ msgstr "Enregistrer les modifications" msgid "Editing %(username)s's profile" msgstr "Modification du profil de %(username)s" -#: mediagoblin/templates/mediagoblin/listings/tag.html:31 -msgid "Media tagged with:" -msgstr "Média comportant les tags suivants :" +#: mediagoblin/templates/mediagoblin/listings/tag.html:30 +#: mediagoblin/templates/mediagoblin/listings/tag.html:35 +#, python-format +msgid "Media tagged with: %(tag_name)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +msgid "Original" +msgstr "" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" @@ -399,16 +398,16 @@ msgstr "Soumettez ce média" msgid "Submit" msgstr "Soumettre" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" msgstr "Médias de %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 -msgid "Sorry, no such user found." -msgstr "Impossible de trouver cet utilisateur, désolé." - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -441,31 +440,41 @@ msgstr "Aucun média en transformation" msgid "These uploads failed to process:" msgstr "Le traitement de ces ajouts a échoué :" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:31 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:89 +#, python-format +msgid "%(username)s's profile" +msgstr "profil de %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:43 +msgid "Sorry, no such user found." +msgstr "Impossible de trouver cet utilisateur, désolé." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:50 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:70 msgid "Email verification needed" msgstr "Vérification d'email nécessaire" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:53 msgid "Almost done! Your account still needs to be activated." msgstr "Presque fini ! Votre compte a encore besoin d'être activé." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "" "Un e-mail devrait vous parvenir dans quelques instants ; il vous indiquera " "comment procéder." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "In case it doesn't:" msgstr "Si la vérification n'est pas arrivée à bon port :" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:65 msgid "Resend verification email" msgstr "Renvoyer l'e-mail de vérification" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:73 msgid "" "Someone has registered an account with this username, but it still has to be" " activated." @@ -473,7 +482,7 @@ msgstr "" "Quelqu'un a enregistré un compte avec ce nom, mais il doit encore être " "activé." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:79 #, python-format msgid "" "If you are that person but you've lost your verification email, you can identifier et " "le renvoyer." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 -#, python-format -msgid "%(username)s's profile" -msgstr "profil de %(username)s" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "Here's a spot to tell others about yourself." msgstr "Voici un endroit pour parler aux autres de vous-même." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 msgid "Edit profile" msgstr "Modifier le profil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 msgid "This user hasn't filled in their profile (yet)." msgstr "Cet utilisateur n'a pas (encore) rempli son profil." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 #, python-format msgid "View all of %(username)s's media" msgstr "Voir tous les médias de %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." @@ -514,11 +518,11 @@ msgstr "" "C'est là où vos médias apparaîssent, mais vous ne semblez pas avoir encore " "ajouté quoi que ce soit." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 msgid "Add media" msgstr "Ajouter des médias" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 msgid "There doesn't seem to be any media here yet..." msgstr "Il ne semble pas y avoir de média là, pour l'instant ..." @@ -538,6 +542,14 @@ msgstr "Nouveaux" msgid "Older" msgstr "Anciens" +#: mediagoblin/templates/mediagoblin/utils/tags.html:20 +msgid "Tagged with" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/tags.html:25 +msgid "and" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Commentaire" @@ -546,15 +558,23 @@ msgstr "Commentaire" msgid "I am sure I want to delete this" msgstr "Je suis sûr de vouloir supprimer cela" -#: mediagoblin/user_pages/views.py:142 +#: mediagoblin/user_pages/views.py:155 msgid "Empty comments are not allowed." msgstr "Les commentaires vides ne sont pas autorisés." -#: mediagoblin/user_pages/views.py:148 +#: mediagoblin/user_pages/views.py:161 msgid "Comment posted!" msgstr "Votre commentaire a été posté !" -#: mediagoblin/user_pages/views.py:181 +#: mediagoblin/user_pages/views.py:183 +msgid "You deleted the media." +msgstr "" + +#: mediagoblin/user_pages/views.py:190 +msgid "The media was not deleted because you didn't check that you were sure." +msgstr "" + +#: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" "Vous êtes sur le point de supprimer des médias d'un autre utilisateur. " diff --git a/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.po index d9fdf8d6..a4f1f8d7 100644 --- a/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-01 23:14-0500\n" -"PO-Revision-Date: 2011-11-02 04:13+0000\n" +"POT-Creation-Date: 2011-11-27 15:25-0600\n" +"PO-Revision-Date: 2011-11-27 21:28+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -19,6 +19,10 @@ msgstr "" "Language: ia\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" +#: mediagoblin/processing.py:143 +msgid "Invalid file given for media type." +msgstr "" + #: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Nomine de usator" @@ -52,7 +56,7 @@ msgid "Sorry, a user with that name already exists." msgstr "" #: mediagoblin/auth/views.py:77 -msgid "Sorry, that email address has already been taken." +msgid "Sorry, a user with that email address already exists." msgstr "" #: mediagoblin/auth/views.py:179 @@ -65,11 +69,19 @@ msgstr "" msgid "The verification key or user id is incorrect" msgstr "" -#: mediagoblin/auth/views.py:207 +#: mediagoblin/auth/views.py:203 +msgid "You must be logged in so we know who to send the email to!" +msgstr "" + +#: mediagoblin/auth/views.py:211 +msgid "You've already verified your email address!" +msgstr "" + +#: mediagoblin/auth/views.py:224 msgid "Resent your verification email." msgstr "" -#: mediagoblin/auth/views.py:248 +#: mediagoblin/auth/views.py:265 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -83,41 +95,61 @@ msgstr "Titulo" msgid "Tags" msgstr "" -#: mediagoblin/edit/forms.py:31 -msgid "Slug" -msgstr "" - -#: mediagoblin/edit/forms.py:32 -msgid "The slug can't be empty" +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 +msgid "Seperate tags by commas or spaces." msgstr "" #: mediagoblin/edit/forms.py:33 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:34 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:35 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" -#: mediagoblin/edit/forms.py:40 +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "" -#: mediagoblin/edit/forms.py:43 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Sito web" -#: mediagoblin/edit/views.py:64 +#: mediagoblin/edit/forms.py:49 +msgid "Old password" +msgstr "" + +#: mediagoblin/edit/forms.py:52 +msgid "New Password" +msgstr "" + +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "" -#: mediagoblin/edit/views.py:85 +#: mediagoblin/edit/views.py:86 msgid "You are editing another user's media. Proceed with caution." msgstr "" -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:156 msgid "You are editing a user's profile. Proceed with caution." msgstr "" -#: mediagoblin/process_media/errors.py:44 -msgid "Invalid file given for media type." +#: mediagoblin/edit/views.py:171 +msgid "Wrong password" +msgstr "" + +#: mediagoblin/edit/views.py:192 +msgid "Profile edited!" +msgstr "" + +#: mediagoblin/media_types/__init__.py:61 +msgid "Could not find any file extension in \"{filename}\"" msgstr "" #: mediagoblin/submit/forms.py:25 @@ -128,16 +160,16 @@ msgstr "" msgid "Description of this work" msgstr "" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:49 msgid "You must provide a file." msgstr "" -#: mediagoblin/submit/views.py:49 -msgid "The file doesn't seem to be an image!" +#: mediagoblin/submit/views.py:127 +msgid "Woohoo! Submitted!" msgstr "" -#: mediagoblin/submit/views.py:121 -msgid "Woohoo! Submitted!" +#: mediagoblin/submit/views.py:133 +msgid "Invalid file type." msgstr "" #: mediagoblin/templates/mediagoblin/404.html:21 @@ -158,29 +190,29 @@ msgstr "" msgid "Image of 404 goblin stressing out" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:22 -msgid "GNU MediaGoblin" -msgstr "" - -#: mediagoblin/templates/mediagoblin/base.html:47 +#: mediagoblin/templates/mediagoblin/base.html:49 msgid "MediaGoblin logo" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:52 +#: mediagoblin/templates/mediagoblin/base.html:54 msgid "Submit media" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:63 -msgid "verify your email!" +#: mediagoblin/templates/mediagoblin/base.html:65 +msgid "Verify your email!" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "log out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 -#: mediagoblin/templates/mediagoblin/auth/login.html:35 +#: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Initiar session" -#: mediagoblin/templates/mediagoblin/base.html:89 +#: mediagoblin/templates/mediagoblin/base.html:91 msgid "" "Powered by MediaGoblin, a GNU project" @@ -191,57 +223,32 @@ msgid "Explore" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:27 -msgid "Hi there, media lover! MediaGoblin is..." +msgid "Hi there, welcome to this MediaGoblin site!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:28 +msgid "Your finest source for all goblin-related media." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 -msgid "The perfect place for your media!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:30 msgid "" -"A place for people to collaborate and show off original and derived " -"creations!" +"To add your own media, place comments, save your favourites and more, you " +"can log in with your MediaGoblin account." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 -msgid "" -"Free, as in freedom. (We’re a GNU project, " -"after all.)" +msgid "Don't have one yet? It's easy!" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:32 -msgid "" -"Aiming to make the world a better place through decentralization and " -"(eventually, coming soon!) federation!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:33 -msgid "" -"Built for extensibility. (Multiple media types coming soon to the software," -" including video support!)" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:34 -msgid "" -"Powered by people like you. (You can help us improve this" -" software!)" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:38 -msgid "Excited to join us?" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"Create a free account\n" +"Create an account at this site\n" " or\n" -" Set up MediaGoblin on your own server" +" Set up MediaGoblin on your own server" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:53 +#: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" msgstr "" @@ -249,8 +256,12 @@ msgstr "" msgid "Enter your new password" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 -msgid "Enter your username or email" +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Recover password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 +msgid "Send instructions" msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 @@ -280,22 +291,18 @@ msgstr "" msgid "Logging in failed!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:43 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Don't have an account yet?" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:46 +#: mediagoblin/templates/mediagoblin/auth/login.html:36 msgid "Create one here!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:49 +#: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Forgot your password?" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:52 -msgid "Change it!" -msgstr "" - #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Crear un conto!" @@ -335,8 +342,14 @@ msgstr "" msgid "Editing %(username)s's profile" msgstr "" -#: mediagoblin/templates/mediagoblin/listings/tag.html:31 -msgid "Media tagged with:" +#: mediagoblin/templates/mediagoblin/listings/tag.html:30 +#: mediagoblin/templates/mediagoblin/listings/tag.html:35 +#, python-format +msgid "Media tagged with: %(tag_name)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +msgid "Original" msgstr "" #: mediagoblin/templates/mediagoblin/submit/start.html:26 @@ -347,14 +360,14 @@ msgstr "" msgid "Submit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format -msgid "%(username)s's media" +msgid "%(username)s's media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 -msgid "Sorry, no such user found." +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 +#, python-format +msgid "%(username)s's media" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 @@ -387,75 +400,80 @@ msgstr "" msgid "These uploads failed to process:" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:31 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:89 +#, python-format +msgid "%(username)s's profile" +msgstr "Profilo de %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:43 +msgid "Sorry, no such user found." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:50 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:70 msgid "Email verification needed" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:53 msgid "Almost done! Your account still needs to be activated." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "In case it doesn't:" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:65 msgid "Resend verification email" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:73 msgid "" "Someone has registered an account with this username, but it still has to be" " activated." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:79 #, python-format msgid "" "If you are that person but you've lost your verification email, you can log in and resend it." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 -#, python-format -msgid "%(username)s's profile" -msgstr "Profilo de %(username)s" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "Here's a spot to tell others about yourself." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 msgid "Edit profile" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 msgid "This user hasn't filled in their profile (yet)." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 #, python-format msgid "View all of %(username)s's media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 msgid "Add media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 msgid "There doesn't seem to be any media here yet..." msgstr "" @@ -475,6 +493,14 @@ msgstr "" msgid "Older" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/tags.html:20 +msgid "Tagged with" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/tags.html:25 +msgid "and" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Commento" @@ -483,15 +509,23 @@ msgstr "Commento" msgid "I am sure I want to delete this" msgstr "" -#: mediagoblin/user_pages/views.py:142 +#: mediagoblin/user_pages/views.py:155 msgid "Empty comments are not allowed." msgstr "" -#: mediagoblin/user_pages/views.py:148 +#: mediagoblin/user_pages/views.py:161 msgid "Comment posted!" msgstr "" -#: mediagoblin/user_pages/views.py:181 +#: mediagoblin/user_pages/views.py:183 +msgid "You deleted the media." +msgstr "" + +#: mediagoblin/user_pages/views.py:190 +msgid "The media was not deleted because you didn't check that you were sure." +msgstr "" + +#: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po index 183d09ed..25700f8f 100644 --- a/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-01 23:14-0500\n" -"PO-Revision-Date: 2011-11-02 04:13+0000\n" +"POT-Creation-Date: 2011-11-27 15:25-0600\n" +"PO-Revision-Date: 2011-11-27 21:28+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -19,6 +19,10 @@ msgstr "" "Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" +#: mediagoblin/processing.py:143 +msgid "Invalid file given for media type." +msgstr "documento non valido come tipo multimediale." + #: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Nome utente" @@ -52,8 +56,8 @@ msgid "Sorry, a user with that name already exists." msgstr "Spiacente, esiste già un utente con quel nome" #: mediagoblin/auth/views.py:77 -msgid "Sorry, that email address has already been taken." -msgstr "Spiacente, quell'indirizzo email è già stato preso." +msgid "Sorry, a user with that email address already exists." +msgstr "" #: mediagoblin/auth/views.py:179 msgid "" @@ -67,11 +71,19 @@ msgstr "" msgid "The verification key or user id is incorrect" msgstr "La chiave di verifica o l'id utente è sbagliato" -#: mediagoblin/auth/views.py:207 +#: mediagoblin/auth/views.py:203 +msgid "You must be logged in so we know who to send the email to!" +msgstr "" + +#: mediagoblin/auth/views.py:211 +msgid "You've already verified your email address!" +msgstr "" + +#: mediagoblin/auth/views.py:224 msgid "Resent your verification email." msgstr "Rispedisci email di verifica" -#: mediagoblin/auth/views.py:248 +#: mediagoblin/auth/views.py:265 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -85,44 +97,64 @@ msgstr "Titolo" msgid "Tags" msgstr "Tags" -#: mediagoblin/edit/forms.py:31 -msgid "Slug" -msgstr "" - -#: mediagoblin/edit/forms.py:32 -msgid "The slug can't be empty" +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 +msgid "Seperate tags by commas or spaces." msgstr "" #: mediagoblin/edit/forms.py:33 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:34 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:35 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" -#: mediagoblin/edit/forms.py:40 +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "Bio" -#: mediagoblin/edit/forms.py:43 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Sito web" -#: mediagoblin/edit/views.py:64 +#: mediagoblin/edit/forms.py:49 +msgid "Old password" +msgstr "" + +#: mediagoblin/edit/forms.py:52 +msgid "New Password" +msgstr "" + +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "" -#: mediagoblin/edit/views.py:85 +#: mediagoblin/edit/views.py:86 msgid "You are editing another user's media. Proceed with caution." msgstr "" "Stai modificando documenti multimediale di un altro utente. Procedi con " "attenzione." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:156 msgid "You are editing a user's profile. Proceed with caution." msgstr "Stai modificando il profilo di un utente. Procedi con attenzione." -#: mediagoblin/process_media/errors.py:44 -msgid "Invalid file given for media type." -msgstr "documento non valido come tipo multimediale." +#: mediagoblin/edit/views.py:171 +msgid "Wrong password" +msgstr "" + +#: mediagoblin/edit/views.py:192 +msgid "Profile edited!" +msgstr "" + +#: mediagoblin/media_types/__init__.py:61 +msgid "Could not find any file extension in \"{filename}\"" +msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" @@ -132,18 +164,18 @@ msgstr "Documento" msgid "Description of this work" msgstr "Descrizione di questo lavoro" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:49 msgid "You must provide a file." msgstr "Devi specificare un documento." -#: mediagoblin/submit/views.py:49 -msgid "The file doesn't seem to be an image!" -msgstr "Il documento non sembra essere un'immagine!" - -#: mediagoblin/submit/views.py:121 +#: mediagoblin/submit/views.py:127 msgid "Woohoo! Submitted!" msgstr "Evviva! " +#: mediagoblin/submit/views.py:133 +msgid "Invalid file type." +msgstr "" + #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" msgstr "Oops!" @@ -164,29 +196,29 @@ msgstr "" msgid "Image of 404 goblin stressing out" msgstr "Immagine di 404 folletti che stressano" -#: mediagoblin/templates/mediagoblin/base.html:22 -msgid "GNU MediaGoblin" -msgstr "GNU MediaGoblin" - -#: mediagoblin/templates/mediagoblin/base.html:47 +#: mediagoblin/templates/mediagoblin/base.html:49 msgid "MediaGoblin logo" msgstr "MediaGoblin logo" -#: mediagoblin/templates/mediagoblin/base.html:52 +#: mediagoblin/templates/mediagoblin/base.html:54 msgid "Submit media" msgstr "Inoltra file multimediale" -#: mediagoblin/templates/mediagoblin/base.html:63 -msgid "verify your email!" -msgstr "verifica il tuo indirizzo email!" +#: mediagoblin/templates/mediagoblin/base.html:65 +msgid "Verify your email!" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "log out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 -#: mediagoblin/templates/mediagoblin/auth/login.html:35 +#: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Accedi" -#: mediagoblin/templates/mediagoblin/base.html:89 +#: mediagoblin/templates/mediagoblin/base.html:91 msgid "" "Powered by MediaGoblin, a GNU project" @@ -199,65 +231,32 @@ msgid "Explore" msgstr "Esplora" #: mediagoblin/templates/mediagoblin/root.html:27 -msgid "Hi there, media lover! MediaGoblin is..." -msgstr "Ciao, amante del multimedia! MediaGoblin è..." +msgid "Hi there, welcome to this MediaGoblin site!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:28 +msgid "Your finest source for all goblin-related media." +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 -msgid "The perfect place for your media!" -msgstr "Il posto perfetto per i tuoi documenti multimediali!" - -#: mediagoblin/templates/mediagoblin/root.html:30 msgid "" -"A place for people to collaborate and show off original and derived " -"creations!" +"To add your own media, place comments, save your favourites and more, you " +"can log in with your MediaGoblin account." msgstr "" -"Un posto per collaborare con altri e mostrare le proprie creazioni originali" -" e derivate!" #: mediagoblin/templates/mediagoblin/root.html:31 -msgid "" -"Free, as in freedom. (We’re a GNU project, " -"after all.)" +msgid "Don't have one yet? It's easy!" msgstr "" -"Libero, come in libertà. (Siamo un progetto GNU, dopotutto.)" #: mediagoblin/templates/mediagoblin/root.html:32 -msgid "" -"Aiming to make the world a better place through decentralization and " -"(eventually, coming soon!) federation!" -msgstr "" -"Con l'obbiettivo di rendere il mondo un posto migliore attraverso la " -"decentrelizzazione e (finalmente, presto!) federazione!" - -#: mediagoblin/templates/mediagoblin/root.html:33 -msgid "" -"Built for extensibility. (Multiple media types coming soon to the software," -" including video support!)" -msgstr "" -"Fatto per estensibilità. (Numerosi tipi multimediali saranno presto aggiunti" -" al programma, incluso il supporto video!)" - -#: mediagoblin/templates/mediagoblin/root.html:34 -msgid "" -"Powered by people like you. (You can help us improve this" -" software!)" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:38 -msgid "Excited to join us?" -msgstr "Eccitato di unirti a noi?" - -#: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"Create a free account\n" +"Create an account at this site\n" " or\n" -" Set up MediaGoblin on your own server" +" Set up MediaGoblin on your own server" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:53 +#: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" msgstr "Documenti multimediali più recenti" @@ -265,9 +264,13 @@ msgstr "Documenti multimediali più recenti" msgid "Enter your new password" msgstr "Inserisci la tua nuova password" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 -msgid "Enter your username or email" -msgstr "Inserisci il tuo nome utente o email" +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Recover password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 +msgid "Send instructions" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." @@ -296,22 +299,18 @@ msgstr "" msgid "Logging in failed!" msgstr "Accesso fallito!" -#: mediagoblin/templates/mediagoblin/auth/login.html:43 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Don't have an account yet?" msgstr "Non hai ancora un account?" -#: mediagoblin/templates/mediagoblin/auth/login.html:46 +#: mediagoblin/templates/mediagoblin/auth/login.html:36 msgid "Create one here!" msgstr "Creane uno qui!" -#: mediagoblin/templates/mediagoblin/auth/login.html:49 +#: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Forgot your password?" msgstr "Hai dimenticato la password?" -#: mediagoblin/templates/mediagoblin/auth/login.html:52 -msgid "Change it!" -msgstr "" - #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Crea un account!" @@ -356,9 +355,15 @@ msgstr "Salva i cambiamenti" msgid "Editing %(username)s's profile" msgstr "Stai modificando il profilo di %(username)s" -#: mediagoblin/templates/mediagoblin/listings/tag.html:31 -msgid "Media tagged with:" -msgstr "Media taggata con:" +#: mediagoblin/templates/mediagoblin/listings/tag.html:30 +#: mediagoblin/templates/mediagoblin/listings/tag.html:35 +#, python-format +msgid "Media tagged with: %(tag_name)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +msgid "Original" +msgstr "" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" @@ -368,16 +373,16 @@ msgstr "Inoltra documento multimediale" msgid "Submit" msgstr "Conferma" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" msgstr "Documenti multimediali di %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 -msgid "Sorry, no such user found." -msgstr "Mi dispiace, utente non trovato" - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -408,30 +413,40 @@ msgstr "Nessun documento multimediale in elaborazione" msgid "These uploads failed to process:" msgstr "L'elaborazione di questi upload è fallita:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:31 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:89 +#, python-format +msgid "%(username)s's profile" +msgstr "profilo di %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:43 +msgid "Sorry, no such user found." +msgstr "Mi dispiace, utente non trovato" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:50 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:70 msgid "Email verification needed" msgstr "è necessario verificare email" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:53 msgid "Almost done! Your account still needs to be activated." msgstr "Quasi finito! Il tuo account deve ancora essere attivato." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "" "In breve dovresti ricevere un email contenente istruzioni su come fare." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "In case it doesn't:" msgstr "Nel caso non fosse:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:65 msgid "Resend verification email" msgstr "Rispedisci email di verifica" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:73 msgid "" "Someone has registered an account with this username, but it still has to be" " activated." @@ -439,7 +454,7 @@ msgstr "" "Qualcuno ha registrato un account con questo nome utente, ma deve ancora " "essere attivato." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:79 #, python-format msgid "" "If you are that person but you've lost your verification email, you can accedere e rispedirlo." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 -#, python-format -msgid "%(username)s's profile" -msgstr "profilo di %(username)s" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "Here's a spot to tell others about yourself." msgstr "Ecco un posto dove raccontare agli altri di te." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 msgid "Edit profile" msgstr "Modifica profilo" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 msgid "This user hasn't filled in their profile (yet)." msgstr "Questo utente non ha (ancora) compilato il proprio profilo." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 #, python-format msgid "View all of %(username)s's media" msgstr "Visualizza tutti i file multimediali di %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." @@ -479,11 +489,11 @@ msgstr "" "Questo è dove i tuoi documenti multimediali appariranno, ma sembra che tu " "non abbia ancora aggiunto niente." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 msgid "Add media" msgstr "Aggiungi documenti multimediali" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 msgid "There doesn't seem to be any media here yet..." msgstr "Non sembra ci sia ancora nessun documento multimediali qui.." @@ -503,6 +513,14 @@ msgstr "Più nuovo" msgid "Older" msgstr "Più vecchio" +#: mediagoblin/templates/mediagoblin/utils/tags.html:20 +msgid "Tagged with" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/tags.html:25 +msgid "and" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Commento" @@ -511,15 +529,23 @@ msgstr "Commento" msgid "I am sure I want to delete this" msgstr "Sono sicuro di volerlo cancellare" -#: mediagoblin/user_pages/views.py:142 +#: mediagoblin/user_pages/views.py:155 msgid "Empty comments are not allowed." msgstr "" -#: mediagoblin/user_pages/views.py:148 +#: mediagoblin/user_pages/views.py:161 msgid "Comment posted!" msgstr "" -#: mediagoblin/user_pages/views.py:181 +#: mediagoblin/user_pages/views.py:183 +msgid "You deleted the media." +msgstr "" + +#: mediagoblin/user_pages/views.py:190 +msgid "The media was not deleted because you didn't check that you were sure." +msgstr "" + +#: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" "Stai cancellando un documento multimediale di un altro utente. Procedi con " diff --git a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po index 59262d82..f2989e0e 100644 --- a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-01 23:14-0500\n" -"PO-Revision-Date: 2011-11-02 04:13+0000\n" +"POT-Creation-Date: 2011-11-27 15:25-0600\n" +"PO-Revision-Date: 2011-11-27 21:28+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -19,6 +19,10 @@ msgstr "" "Language: ja\n" "Plural-Forms: nplurals=1; plural=0\n" +#: mediagoblin/processing.py:143 +msgid "Invalid file given for media type." +msgstr "" + #: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "ユーザネーム" @@ -52,7 +56,7 @@ msgid "Sorry, a user with that name already exists." msgstr "申し訳ありませんが、その名前を持つユーザーがすでに存在しています。" #: mediagoblin/auth/views.py:77 -msgid "Sorry, that email address has already been taken." +msgid "Sorry, a user with that email address already exists." msgstr "" #: mediagoblin/auth/views.py:179 @@ -65,11 +69,19 @@ msgstr "メアドが確認されています。これで、ログインしてプ msgid "The verification key or user id is incorrect" msgstr "検証キーまたはユーザーIDが間違っています" -#: mediagoblin/auth/views.py:207 +#: mediagoblin/auth/views.py:203 +msgid "You must be logged in so we know who to send the email to!" +msgstr "" + +#: mediagoblin/auth/views.py:211 +msgid "You've already verified your email address!" +msgstr "" + +#: mediagoblin/auth/views.py:224 msgid "Resent your verification email." msgstr "検証メールを再送しました。" -#: mediagoblin/auth/views.py:248 +#: mediagoblin/auth/views.py:265 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -83,41 +95,61 @@ msgstr "タイトル" msgid "Tags" msgstr "タグ" -#: mediagoblin/edit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 +msgid "Seperate tags by commas or spaces." +msgstr "" + +#: mediagoblin/edit/forms.py:33 msgid "Slug" msgstr "スラグ" -#: mediagoblin/edit/forms.py:32 +#: mediagoblin/edit/forms.py:34 msgid "The slug can't be empty" msgstr "スラグは必要です。" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:35 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" -#: mediagoblin/edit/forms.py:40 +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "自己紹介" -#: mediagoblin/edit/forms.py:43 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "URL" -#: mediagoblin/edit/views.py:64 +#: mediagoblin/edit/forms.py:49 +msgid "Old password" +msgstr "" + +#: mediagoblin/edit/forms.py:52 +msgid "New Password" +msgstr "" + +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "そのスラグを持つエントリは、このユーザーは既に存在します。" -#: mediagoblin/edit/views.py:85 +#: mediagoblin/edit/views.py:86 msgid "You are editing another user's media. Proceed with caution." msgstr "あなたは、他のユーザーのメディアを編集しています。ご注意ください。" -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:156 msgid "You are editing a user's profile. Proceed with caution." msgstr "あなたは、他のユーザーのプロファイルを編集しています。ご注意ください。" -#: mediagoblin/process_media/errors.py:44 -msgid "Invalid file given for media type." +#: mediagoblin/edit/views.py:171 +msgid "Wrong password" +msgstr "" + +#: mediagoblin/edit/views.py:192 +msgid "Profile edited!" +msgstr "" + +#: mediagoblin/media_types/__init__.py:61 +msgid "Could not find any file extension in \"{filename}\"" msgstr "" #: mediagoblin/submit/forms.py:25 @@ -128,18 +160,18 @@ msgstr "ファイル" msgid "Description of this work" msgstr "" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:49 msgid "You must provide a file." msgstr "ファイルを提供する必要があります。" -#: mediagoblin/submit/views.py:49 -msgid "The file doesn't seem to be an image!" -msgstr "ファイルが画像ではないようです!" - -#: mediagoblin/submit/views.py:121 +#: mediagoblin/submit/views.py:127 msgid "Woohoo! Submitted!" msgstr "投稿終了!" +#: mediagoblin/submit/views.py:133 +msgid "Invalid file type." +msgstr "" + #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" msgstr "" @@ -158,29 +190,29 @@ msgstr "" msgid "Image of 404 goblin stressing out" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:22 -msgid "GNU MediaGoblin" -msgstr "GNU MediaGoblin" - -#: mediagoblin/templates/mediagoblin/base.html:47 +#: mediagoblin/templates/mediagoblin/base.html:49 msgid "MediaGoblin logo" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:52 +#: mediagoblin/templates/mediagoblin/base.html:54 msgid "Submit media" msgstr "コンテンツを投稿" -#: mediagoblin/templates/mediagoblin/base.html:63 -msgid "verify your email!" -msgstr "メアドを確認してください!" +#: mediagoblin/templates/mediagoblin/base.html:65 +msgid "Verify your email!" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "log out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 -#: mediagoblin/templates/mediagoblin/auth/login.html:35 +#: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "ログイン" -#: mediagoblin/templates/mediagoblin/base.html:89 +#: mediagoblin/templates/mediagoblin/base.html:91 msgid "" "Powered by MediaGoblin, a GNU project" @@ -191,57 +223,32 @@ msgid "Explore" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:27 -msgid "Hi there, media lover! MediaGoblin is..." +msgid "Hi there, welcome to this MediaGoblin site!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:28 +msgid "Your finest source for all goblin-related media." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 -msgid "The perfect place for your media!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:30 msgid "" -"A place for people to collaborate and show off original and derived " -"creations!" +"To add your own media, place comments, save your favourites and more, you " +"can log in with your MediaGoblin account." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 -msgid "" -"Free, as in freedom. (We’re a GNU project, " -"after all.)" +msgid "Don't have one yet? It's easy!" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:32 -msgid "" -"Aiming to make the world a better place through decentralization and " -"(eventually, coming soon!) federation!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:33 -msgid "" -"Built for extensibility. (Multiple media types coming soon to the software," -" including video support!)" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:34 -msgid "" -"Powered by people like you. (You can help us improve this" -" software!)" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:38 -msgid "Excited to join us?" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"Create a free account\n" +"Create an account at this site\n" " or\n" -" Set up MediaGoblin on your own server" +" Set up MediaGoblin on your own server" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:53 +#: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" msgstr "" @@ -249,8 +256,12 @@ msgstr "" msgid "Enter your new password" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 -msgid "Enter your username or email" +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Recover password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 +msgid "Send instructions" msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 @@ -280,22 +291,18 @@ msgstr "" msgid "Logging in failed!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:43 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Don't have an account yet?" msgstr "まだアカウントを持っていませんか?" -#: mediagoblin/templates/mediagoblin/auth/login.html:46 +#: mediagoblin/templates/mediagoblin/auth/login.html:36 msgid "Create one here!" msgstr "ここで作成!" -#: mediagoblin/templates/mediagoblin/auth/login.html:49 +#: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Forgot your password?" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:52 -msgid "Change it!" -msgstr "" - #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "アカウントを作成!" @@ -340,9 +347,15 @@ msgstr "投稿する" msgid "Editing %(username)s's profile" msgstr "%(username)sさんのプロフィールを編集中" -#: mediagoblin/templates/mediagoblin/listings/tag.html:31 -msgid "Media tagged with:" -msgstr "タグ付けされたコンテンツ:" +#: mediagoblin/templates/mediagoblin/listings/tag.html:30 +#: mediagoblin/templates/mediagoblin/listings/tag.html:35 +#, python-format +msgid "Media tagged with: %(tag_name)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +msgid "Original" +msgstr "" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" @@ -352,16 +365,16 @@ msgstr "コンテンツを投稿" msgid "Submit" msgstr "送信" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" msgstr "%(username)sさんのコンテンツ" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 -msgid "Sorry, no such user found." -msgstr "申し訳ありませんが、そのユーザーは見つかりませんでした。" - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -392,75 +405,80 @@ msgstr "" msgid "These uploads failed to process:" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:31 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:89 +#, python-format +msgid "%(username)s's profile" +msgstr "%(username)sさんのプロフィール" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:43 +msgid "Sorry, no such user found." +msgstr "申し訳ありませんが、そのユーザーは見つかりませんでした。" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:50 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:70 msgid "Email verification needed" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:53 msgid "Almost done! Your account still needs to be activated." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "メールは、その方法の指示でいくつかの瞬間に到着します。" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "In case it doesn't:" msgstr "到着しない場合は、" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:65 msgid "Resend verification email" msgstr "確認メールを再送信" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:73 msgid "" "Someone has registered an account with this username, but it still has to be" " activated." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:79 #, python-format msgid "" "If you are that person but you've lost your verification email, you can log in and resend it." msgstr "あなたの確認メールを紛失した場合、ログインして再送できます。" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 -#, python-format -msgid "%(username)s's profile" -msgstr "%(username)sさんのプロフィール" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "Here's a spot to tell others about yourself." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 msgid "Edit profile" msgstr "プロフィールを編集" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 msgid "This user hasn't filled in their profile (yet)." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 #, python-format msgid "View all of %(username)s's media" msgstr "%(username)sさんのコンテンツをすべて見る" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 msgid "Add media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 msgid "There doesn't seem to be any media here yet..." msgstr "" @@ -480,6 +498,14 @@ msgstr "" msgid "Older" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/tags.html:20 +msgid "Tagged with" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/tags.html:25 +msgid "and" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "" @@ -488,15 +514,23 @@ msgstr "" msgid "I am sure I want to delete this" msgstr "" -#: mediagoblin/user_pages/views.py:142 +#: mediagoblin/user_pages/views.py:155 msgid "Empty comments are not allowed." msgstr "" -#: mediagoblin/user_pages/views.py:148 +#: mediagoblin/user_pages/views.py:161 msgid "Comment posted!" msgstr "" -#: mediagoblin/user_pages/views.py:181 +#: mediagoblin/user_pages/views.py:183 +msgid "You deleted the media." +msgstr "" + +#: mediagoblin/user_pages/views.py:190 +msgid "The media was not deleted because you didn't check that you were sure." +msgstr "" + +#: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po index 618daf6f..84957014 100644 --- a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-01 23:14-0500\n" -"PO-Revision-Date: 2011-11-02 04:13+0000\n" +"POT-Creation-Date: 2011-11-27 15:25-0600\n" +"PO-Revision-Date: 2011-11-27 21:28+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -19,6 +19,10 @@ msgstr "" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" +#: mediagoblin/processing.py:143 +msgid "Invalid file given for media type." +msgstr "" + #: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Gebruikersnaam" @@ -52,8 +56,8 @@ msgid "Sorry, a user with that name already exists." msgstr "Sorry, er bestaat al een gebruiker met die naam." #: mediagoblin/auth/views.py:77 -msgid "Sorry, that email address has already been taken." -msgstr "Sorry, dat e-mailadres is al ingenomen." +msgid "Sorry, a user with that email address already exists." +msgstr "" #: mediagoblin/auth/views.py:179 msgid "" @@ -67,11 +71,19 @@ msgstr "" msgid "The verification key or user id is incorrect" msgstr "De verificatie sleutel of gebruikers-ID is onjuist" -#: mediagoblin/auth/views.py:207 +#: mediagoblin/auth/views.py:203 +msgid "You must be logged in so we know who to send the email to!" +msgstr "" + +#: mediagoblin/auth/views.py:211 +msgid "You've already verified your email address!" +msgstr "" + +#: mediagoblin/auth/views.py:224 msgid "Resent your verification email." msgstr "Verificatie e-mail opnieuw opgestuurd." -#: mediagoblin/auth/views.py:248 +#: mediagoblin/auth/views.py:265 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -85,44 +97,64 @@ msgstr "Titel" msgid "Tags" msgstr "Etiket" -#: mediagoblin/edit/forms.py:31 -msgid "Slug" -msgstr "" - -#: mediagoblin/edit/forms.py:32 -msgid "The slug can't be empty" +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 +msgid "Seperate tags by commas or spaces." msgstr "" #: mediagoblin/edit/forms.py:33 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:34 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:35 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" -#: mediagoblin/edit/forms.py:40 +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "Bio" -#: mediagoblin/edit/forms.py:43 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Website" -#: mediagoblin/edit/views.py:64 +#: mediagoblin/edit/forms.py:49 +msgid "Old password" +msgstr "" + +#: mediagoblin/edit/forms.py:52 +msgid "New Password" +msgstr "" + +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "" -#: mediagoblin/edit/views.py:85 +#: mediagoblin/edit/views.py:86 msgid "You are editing another user's media. Proceed with caution." msgstr "" "U bent de media van een andere gebruiker aan het aanpassen. Ga voorzichtig " "te werk." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:156 msgid "You are editing a user's profile. Proceed with caution." msgstr "" "U bent een gebruikersprofiel aan het aanpassen. Ga voorzichtig te werk." -#: mediagoblin/process_media/errors.py:44 -msgid "Invalid file given for media type." +#: mediagoblin/edit/views.py:171 +msgid "Wrong password" +msgstr "" + +#: mediagoblin/edit/views.py:192 +msgid "Profile edited!" +msgstr "" + +#: mediagoblin/media_types/__init__.py:61 +msgid "Could not find any file extension in \"{filename}\"" msgstr "" #: mediagoblin/submit/forms.py:25 @@ -133,18 +165,18 @@ msgstr "Bestand" msgid "Description of this work" msgstr "" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:49 msgid "You must provide a file." msgstr "U moet een bestand aangeven." -#: mediagoblin/submit/views.py:49 -msgid "The file doesn't seem to be an image!" -msgstr "Het lijkt erop dat dit bestand geen afbeelding is!" - -#: mediagoblin/submit/views.py:121 +#: mediagoblin/submit/views.py:127 msgid "Woohoo! Submitted!" msgstr "Mooizo! Toegevoegd!" +#: mediagoblin/submit/views.py:133 +msgid "Invalid file type." +msgstr "" + #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" msgstr "" @@ -163,29 +195,29 @@ msgstr "" msgid "Image of 404 goblin stressing out" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:22 -msgid "GNU MediaGoblin" -msgstr "GNU MediaGoblin" - -#: mediagoblin/templates/mediagoblin/base.html:47 +#: mediagoblin/templates/mediagoblin/base.html:49 msgid "MediaGoblin logo" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:52 +#: mediagoblin/templates/mediagoblin/base.html:54 msgid "Submit media" msgstr "Voeg media toe" -#: mediagoblin/templates/mediagoblin/base.html:63 -msgid "verify your email!" -msgstr "Controleer uw e-mail!" +#: mediagoblin/templates/mediagoblin/base.html:65 +msgid "Verify your email!" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "log out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 -#: mediagoblin/templates/mediagoblin/auth/login.html:35 +#: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Inloggen" -#: mediagoblin/templates/mediagoblin/base.html:89 +#: mediagoblin/templates/mediagoblin/base.html:91 msgid "" "Powered by MediaGoblin, a GNU project" @@ -196,57 +228,32 @@ msgid "Explore" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:27 -msgid "Hi there, media lover! MediaGoblin is..." +msgid "Hi there, welcome to this MediaGoblin site!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:28 +msgid "Your finest source for all goblin-related media." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 -msgid "The perfect place for your media!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:30 msgid "" -"A place for people to collaborate and show off original and derived " -"creations!" +"To add your own media, place comments, save your favourites and more, you " +"can log in with your MediaGoblin account." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 -msgid "" -"Free, as in freedom. (We’re a GNU project, " -"after all.)" +msgid "Don't have one yet? It's easy!" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:32 -msgid "" -"Aiming to make the world a better place through decentralization and " -"(eventually, coming soon!) federation!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:33 -msgid "" -"Built for extensibility. (Multiple media types coming soon to the software," -" including video support!)" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:34 -msgid "" -"Powered by people like you. (You can help us improve this" -" software!)" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:38 -msgid "Excited to join us?" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"Create a free account\n" +"Create an account at this site\n" " or\n" -" Set up MediaGoblin on your own server" +" Set up MediaGoblin on your own server" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:53 +#: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" msgstr "" @@ -254,8 +261,12 @@ msgstr "" msgid "Enter your new password" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 -msgid "Enter your username or email" +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Recover password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 +msgid "Send instructions" msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 @@ -285,22 +296,18 @@ msgstr "" msgid "Logging in failed!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:43 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Don't have an account yet?" msgstr "Heeft u nog geen account?" -#: mediagoblin/templates/mediagoblin/auth/login.html:46 +#: mediagoblin/templates/mediagoblin/auth/login.html:36 msgid "Create one here!" msgstr "Maak er hier een!" -#: mediagoblin/templates/mediagoblin/auth/login.html:49 +#: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Forgot your password?" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:52 -msgid "Change it!" -msgstr "" - #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Maak een account aan!" @@ -342,9 +349,15 @@ msgstr "Wijzigingen opslaan" msgid "Editing %(username)s's profile" msgstr "Het profiel aanpassen van %(username)s" -#: mediagoblin/templates/mediagoblin/listings/tag.html:31 -msgid "Media tagged with:" -msgstr "Media met het etiket:" +#: mediagoblin/templates/mediagoblin/listings/tag.html:30 +#: mediagoblin/templates/mediagoblin/listings/tag.html:35 +#, python-format +msgid "Media tagged with: %(tag_name)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +msgid "Original" +msgstr "" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" @@ -354,16 +367,16 @@ msgstr "Voeg media toe" msgid "Submit" msgstr "Voeg toe" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" msgstr "Media van %(username)s " -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 -msgid "Sorry, no such user found." -msgstr "Sorry, die gebruiker kon niet worden gevonden." - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -394,37 +407,47 @@ msgstr "" msgid "These uploads failed to process:" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:31 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:89 +#, python-format +msgid "%(username)s's profile" +msgstr "Profiel van %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:43 +msgid "Sorry, no such user found." +msgstr "Sorry, die gebruiker kon niet worden gevonden." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:50 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:70 msgid "Email verification needed" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:53 msgid "Almost done! Your account still needs to be activated." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "" "Een e-mail zou in een paar ogenblikken aan moeten komen met instructies " "hiertoe." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "In case it doesn't:" msgstr "Zoniet:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:65 msgid "Resend verification email" msgstr "Stuur de verificatie e-mail opnieuw op." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:73 msgid "" "Someone has registered an account with this username, but it still has to be" " activated." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:79 #, python-format msgid "" "If you are that person but you've lost your verification email, you can inloggen en hem nogmaals verzenden." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 -#, python-format -msgid "%(username)s's profile" -msgstr "Profiel van %(username)s" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "Here's a spot to tell others about yourself." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 msgid "Edit profile" msgstr "Profiel aanpassen." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 msgid "This user hasn't filled in their profile (yet)." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 #, python-format msgid "View all of %(username)s's media" msgstr "Bekijk alle media van %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 msgid "Add media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 msgid "There doesn't seem to be any media here yet..." msgstr "" @@ -486,6 +504,14 @@ msgstr "" msgid "Older" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/tags.html:20 +msgid "Tagged with" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/tags.html:25 +msgid "and" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Commentaar" @@ -494,15 +520,23 @@ msgstr "Commentaar" msgid "I am sure I want to delete this" msgstr "" -#: mediagoblin/user_pages/views.py:142 +#: mediagoblin/user_pages/views.py:155 msgid "Empty comments are not allowed." msgstr "" -#: mediagoblin/user_pages/views.py:148 +#: mediagoblin/user_pages/views.py:161 msgid "Comment posted!" msgstr "" -#: mediagoblin/user_pages/views.py:181 +#: mediagoblin/user_pages/views.py:183 +msgid "You deleted the media." +msgstr "" + +#: mediagoblin/user_pages/views.py:190 +msgid "The media was not deleted because you didn't check that you were sure." +msgstr "" + +#: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po index c74e1dd0..21cfdda5 100644 --- a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-01 23:14-0500\n" -"PO-Revision-Date: 2011-11-02 04:13+0000\n" +"POT-Creation-Date: 2011-11-27 15:25-0600\n" +"PO-Revision-Date: 2011-11-27 21:28+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -19,6 +19,10 @@ msgstr "" "Language: nn_NO\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" +#: mediagoblin/processing.py:143 +msgid "Invalid file given for media type." +msgstr "Ugyldig fil for mediatypen." + #: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Brukarnamn" @@ -52,8 +56,8 @@ msgid "Sorry, a user with that name already exists." msgstr "Ein konto med dette brukarnamnet finst allereide." #: mediagoblin/auth/views.py:77 -msgid "Sorry, that email address has already been taken." -msgstr "Den epostadressa er allereide teken." +msgid "Sorry, a user with that email address already exists." +msgstr "" #: mediagoblin/auth/views.py:179 msgid "" @@ -67,11 +71,19 @@ msgstr "" msgid "The verification key or user id is incorrect" msgstr "Stadfestingsnykelen eller brukar-ID-en din er feil." -#: mediagoblin/auth/views.py:207 +#: mediagoblin/auth/views.py:203 +msgid "You must be logged in so we know who to send the email to!" +msgstr "" + +#: mediagoblin/auth/views.py:211 +msgid "You've already verified your email address!" +msgstr "" + +#: mediagoblin/auth/views.py:224 msgid "Resent your verification email." msgstr "Send ein ny stadfestingsepost." -#: mediagoblin/auth/views.py:248 +#: mediagoblin/auth/views.py:265 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -86,42 +98,62 @@ msgstr "Tittel" msgid "Tags" msgstr "Merkelappar" -#: mediagoblin/edit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 +msgid "Seperate tags by commas or spaces." +msgstr "" + +#: mediagoblin/edit/forms.py:33 msgid "Slug" msgstr "Nettnamn" -#: mediagoblin/edit/forms.py:32 +#: mediagoblin/edit/forms.py:34 msgid "The slug can't be empty" msgstr "Nettnamnet kan ikkje vera tomt" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:35 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "Nettnamnet (adressetittel) for mediefila di. Trengst ikkje endrast." -#: mediagoblin/edit/forms.py:40 +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "Presentasjon" -#: mediagoblin/edit/forms.py:43 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Heimeside" -#: mediagoblin/edit/views.py:64 +#: mediagoblin/edit/forms.py:49 +msgid "Old password" +msgstr "" + +#: mediagoblin/edit/forms.py:52 +msgid "New Password" +msgstr "" + +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "Eit innlegg med denne adressetittelen finst allereie." -#: mediagoblin/edit/views.py:85 +#: mediagoblin/edit/views.py:86 msgid "You are editing another user's media. Proceed with caution." msgstr "Trå varsamt, du endrar nokon andre sine mediefiler." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:156 msgid "You are editing a user's profile. Proceed with caution." msgstr "Trå varsamt, du endrar nokon andre sin profil." -#: mediagoblin/process_media/errors.py:44 -msgid "Invalid file given for media type." -msgstr "Ugyldig fil for mediatypen." +#: mediagoblin/edit/views.py:171 +msgid "Wrong password" +msgstr "" + +#: mediagoblin/edit/views.py:192 +msgid "Profile edited!" +msgstr "" + +#: mediagoblin/media_types/__init__.py:61 +msgid "Could not find any file extension in \"{filename}\"" +msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" @@ -131,18 +163,18 @@ msgstr "Fil" msgid "Description of this work" msgstr "Skildring av mediefila" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:49 msgid "You must provide a file." msgstr "Du må velja ei fil." -#: mediagoblin/submit/views.py:49 -msgid "The file doesn't seem to be an image!" -msgstr "Fila verkar ikkje å vera ei gyldig biletefil." - -#: mediagoblin/submit/views.py:121 +#: mediagoblin/submit/views.py:127 msgid "Woohoo! Submitted!" msgstr "Johoo! Opplasta!" +#: mediagoblin/submit/views.py:133 +msgid "Invalid file type." +msgstr "" + #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" msgstr "Oops." @@ -163,29 +195,29 @@ msgstr "" msgid "Image of 404 goblin stressing out" msgstr "Bilete av stressa 404-tusse." -#: mediagoblin/templates/mediagoblin/base.html:22 -msgid "GNU MediaGoblin" -msgstr "GNU MediaGoblin" - -#: mediagoblin/templates/mediagoblin/base.html:47 +#: mediagoblin/templates/mediagoblin/base.html:49 msgid "MediaGoblin logo" msgstr "MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:52 +#: mediagoblin/templates/mediagoblin/base.html:54 msgid "Submit media" msgstr "Last opp" -#: mediagoblin/templates/mediagoblin/base.html:63 -msgid "verify your email!" -msgstr "Stadfest epostadressa di" +#: mediagoblin/templates/mediagoblin/base.html:65 +msgid "Verify your email!" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "log out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 -#: mediagoblin/templates/mediagoblin/auth/login.html:35 +#: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Logg inn" -#: mediagoblin/templates/mediagoblin/base.html:89 +#: mediagoblin/templates/mediagoblin/base.html:91 msgid "" "Powered by MediaGoblin, a GNU project" @@ -198,69 +230,32 @@ msgid "Explore" msgstr "Utforsk" #: mediagoblin/templates/mediagoblin/root.html:27 -msgid "Hi there, media lover! MediaGoblin is..." -msgstr "Hei der mediaentusiast, MediaGoblin..." +msgid "Hi there, welcome to this MediaGoblin site!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:28 +msgid "Your finest source for all goblin-related media." +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 -msgid "The perfect place for your media!" -msgstr "Er ein perfekt plass for mediet ditt!" - -#: mediagoblin/templates/mediagoblin/root.html:30 msgid "" -"A place for people to collaborate and show off original and derived " -"creations!" +"To add your own media, place comments, save your favourites and more, you " +"can log in with your MediaGoblin account." msgstr "" -"Er ein plass for folk å samarbeida og visa fram sjølvlaga og vidarebygde " -"verk." #: mediagoblin/templates/mediagoblin/root.html:31 -msgid "" -"Free, as in freedom. (We’re a GNU project, " -"after all.)" -msgstr "Fri som i fridom (me er eit GNU-prosjekt)." +msgid "Don't have one yet? It's easy!" +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:32 -msgid "" -"Aiming to make the world a better place through decentralization and " -"(eventually, coming soon!) federation!" -msgstr "" -"Arbeidar for å gjera verda ein betre stad gjennom desentralisering og (til " -"slutt, kjem snart!) federering, enkelt forklart deling og sending av " -"mediefiler og kommentarar over fleire nettstader." - -#: mediagoblin/templates/mediagoblin/root.html:33 -msgid "" -"Built for extensibility. (Multiple media types coming soon to the software," -" including video support!)" -msgstr "Bygd for utviding (fleire medietypar kjem snart, m.a. video)." - -#: mediagoblin/templates/mediagoblin/root.html:34 -msgid "" -"Powered by people like you. (You can help us improve this" -" software!)" -msgstr "" -"Driven av folk som deg. (Du kan hjelpa med å forbetra" -" MediaGoblin)" - -#: mediagoblin/templates/mediagoblin/root.html:38 -msgid "Excited to join us?" -msgstr "Lyst til å bli med oss?" - -#: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"Create a free account\n" +"Create an account at this site\n" " or\n" -" Set up MediaGoblin on your own server" +" Set up MediaGoblin on your own server" msgstr "" -"Opprett ein " -"gratis konto eller installer MediaGoblin på " -"eigen tenar" -#: mediagoblin/templates/mediagoblin/root.html:53 +#: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" msgstr "Nyaste mediefiler" @@ -268,9 +263,13 @@ msgstr "Nyaste mediefiler" msgid "Enter your new password" msgstr "Fyll inn passord" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 -msgid "Enter your username or email" -msgstr "Fyll inn brukarnamn eller epost" +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Recover password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 +msgid "Send instructions" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." @@ -308,22 +307,18 @@ msgstr "" msgid "Logging in failed!" msgstr "Innlogging feila" -#: mediagoblin/templates/mediagoblin/auth/login.html:43 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Don't have an account yet?" msgstr "Har du ingen konto?" -#: mediagoblin/templates/mediagoblin/auth/login.html:46 +#: mediagoblin/templates/mediagoblin/auth/login.html:36 msgid "Create one here!" msgstr "Lag ein!" -#: mediagoblin/templates/mediagoblin/auth/login.html:49 +#: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Forgot your password?" msgstr "Gløymd passordet?" -#: mediagoblin/templates/mediagoblin/auth/login.html:52 -msgid "Change it!" -msgstr "Endra" - #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Lag ein konto." @@ -368,9 +363,15 @@ msgstr "Lagra" msgid "Editing %(username)s's profile" msgstr "Endrar profilen til %(username)s" -#: mediagoblin/templates/mediagoblin/listings/tag.html:31 -msgid "Media tagged with:" -msgstr "Merkelappar:" +#: mediagoblin/templates/mediagoblin/listings/tag.html:30 +#: mediagoblin/templates/mediagoblin/listings/tag.html:35 +#, python-format +msgid "Media tagged with: %(tag_name)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +msgid "Original" +msgstr "" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" @@ -380,16 +381,16 @@ msgstr "Last opp" msgid "Submit" msgstr "Send" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" msgstr "%(username)s sine mediefiler" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 -msgid "Sorry, no such user found." -msgstr "Fann ingen slik brukar" - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -420,35 +421,45 @@ msgstr "Ingen media under handsaming" msgid "These uploads failed to process:" msgstr "Klarte ikkje handsama desse opplasta filene:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:31 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:89 +#, python-format +msgid "%(username)s's profile" +msgstr "%(username)s sin profil" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:43 +msgid "Sorry, no such user found." +msgstr "Fann ingen slik brukar" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:50 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:70 msgid "Email verification needed" msgstr "Epostverifisering trengst." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:53 msgid "Almost done! Your account still needs to be activated." msgstr "Nesten ferdig. Du treng berre aktivera kontoen." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "Ein epost med instruksjonar kjem straks." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "In case it doesn't:" msgstr "I tilfelle det ikkje skjer:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:65 msgid "Resend verification email" msgstr "Send ein ny epost" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:73 msgid "" "Someone has registered an account with this username, but it still has to be" " activated." msgstr "Dette brukarnamnet finst allereie, men det er ikkje aktivert." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:79 #, python-format msgid "" "If you are that person but you've lost your verification email, you can logga inn for å få " "tilsendt ny epost med stadfestingslenkje." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 -#, python-format -msgid "%(username)s's profile" -msgstr "%(username)s sin profil" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "Here's a spot to tell others about yourself." msgstr "Her kan du fortelja om deg sjølv." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 msgid "Edit profile" msgstr "Endra profil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 msgid "This user hasn't filled in their profile (yet)." msgstr "Brukaren har ikkje fylt ut profilen sin (enno)." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 #, python-format msgid "View all of %(username)s's media" msgstr "Sjå alle %(username)s sine mediefiler" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." -msgstr "Her kjem mediefilene dine. Ser ikkje ut til at du har lagt til noko." +msgstr "Her kjem mediefilene dine." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 msgid "Add media" msgstr "Legg til mediefiler" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 msgid "There doesn't seem to be any media here yet..." msgstr "Ser ikkje ut til at det finst nokon mediefiler her nett no." @@ -510,6 +516,14 @@ msgstr "Nyare" msgid "Older" msgstr "Eldre" +#: mediagoblin/templates/mediagoblin/utils/tags.html:20 +msgid "Tagged with" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/tags.html:25 +msgid "and" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Innspel" @@ -518,15 +532,23 @@ msgstr "Innspel" msgid "I am sure I want to delete this" msgstr "Eg er sikker eg vil sletta dette" -#: mediagoblin/user_pages/views.py:142 +#: mediagoblin/user_pages/views.py:155 msgid "Empty comments are not allowed." -msgstr "" +msgstr "Du må skriva noko i innspelet." -#: mediagoblin/user_pages/views.py:148 +#: mediagoblin/user_pages/views.py:161 msgid "Comment posted!" +msgstr "Innspel lagt til." + +#: mediagoblin/user_pages/views.py:183 +msgid "You deleted the media." msgstr "" -#: mediagoblin/user_pages/views.py:181 +#: mediagoblin/user_pages/views.py:190 +msgid "The media was not deleted because you didn't check that you were sure." +msgstr "" + +#: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" "Du er i ferd med å sletta ein annan brukar sine mediefiler. Trå varsamt." diff --git a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po index 047e598b..c4f77f8a 100644 --- a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-01 23:14-0500\n" -"PO-Revision-Date: 2011-11-02 04:13+0000\n" +"POT-Creation-Date: 2011-11-27 15:25-0600\n" +"PO-Revision-Date: 2011-11-27 21:28+0000\n" "Last-Translator: cwebber \n" "Language-Team: Portuguese (Brazilian) (http://www.transifex.net/projects/p/mediagoblin/team/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -20,6 +20,10 @@ msgstr "" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" +#: mediagoblin/processing.py:143 +msgid "Invalid file given for media type." +msgstr "Arquivo inválido para esse tipo de mídia" + #: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Nome de Usuário" @@ -54,8 +58,8 @@ msgid "Sorry, a user with that name already exists." msgstr "Desculpe, um usuário com este nome já existe." #: mediagoblin/auth/views.py:77 -msgid "Sorry, that email address has already been taken." -msgstr "Desculpe, esse endereço de email já está em uso." +msgid "Sorry, a user with that email address already exists." +msgstr "" #: mediagoblin/auth/views.py:179 msgid "" @@ -69,11 +73,19 @@ msgstr "" msgid "The verification key or user id is incorrect" msgstr "A chave de verificação ou nome usuário estão incorretos." -#: mediagoblin/auth/views.py:207 +#: mediagoblin/auth/views.py:203 +msgid "You must be logged in so we know who to send the email to!" +msgstr "" + +#: mediagoblin/auth/views.py:211 +msgid "You've already verified your email address!" +msgstr "" + +#: mediagoblin/auth/views.py:224 msgid "Resent your verification email." msgstr "O email de verificação foi reenviado." -#: mediagoblin/auth/views.py:248 +#: mediagoblin/auth/views.py:265 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -89,43 +101,63 @@ msgstr "Título" msgid "Tags" msgstr "Etiquetas" -#: mediagoblin/edit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 +msgid "Seperate tags by commas or spaces." +msgstr "" + +#: mediagoblin/edit/forms.py:33 msgid "Slug" msgstr "Arquivo" -#: mediagoblin/edit/forms.py:32 +#: mediagoblin/edit/forms.py:34 msgid "The slug can't be empty" msgstr "O arquivo não pode estar vazio" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:35 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" "A parte título da URL dessa mídia. Geralmente não é necessário alterar isso." -#: mediagoblin/edit/forms.py:40 +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "Biografia" -#: mediagoblin/edit/forms.py:43 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Website" -#: mediagoblin/edit/views.py:64 +#: mediagoblin/edit/forms.py:49 +msgid "Old password" +msgstr "" + +#: mediagoblin/edit/forms.py:52 +msgid "New Password" +msgstr "" + +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "Uma entrada com esse arquivo já existe para esse usuário" -#: mediagoblin/edit/views.py:85 +#: mediagoblin/edit/views.py:86 msgid "You are editing another user's media. Proceed with caution." msgstr "Você está editando a mídia de outro usuário. Tenha cuidado." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:156 msgid "You are editing a user's profile. Proceed with caution." msgstr "Você está editando um perfil de usuário. Tenha cuidado." -#: mediagoblin/process_media/errors.py:44 -msgid "Invalid file given for media type." -msgstr "Arquivo inválido para esse tipo de mídia" +#: mediagoblin/edit/views.py:171 +msgid "Wrong password" +msgstr "" + +#: mediagoblin/edit/views.py:192 +msgid "Profile edited!" +msgstr "" + +#: mediagoblin/media_types/__init__.py:61 +msgid "Could not find any file extension in \"{filename}\"" +msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" @@ -135,18 +167,18 @@ msgstr "Arquivo" msgid "Description of this work" msgstr "Descrição desse trabalho" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:49 msgid "You must provide a file." msgstr "Você deve fornecer um arquivo." -#: mediagoblin/submit/views.py:49 -msgid "The file doesn't seem to be an image!" -msgstr "O arquivo não parece ser uma imagem!" - -#: mediagoblin/submit/views.py:121 +#: mediagoblin/submit/views.py:127 msgid "Woohoo! Submitted!" msgstr "Eba! Enviado!" +#: mediagoblin/submit/views.py:133 +msgid "Invalid file type." +msgstr "" + #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" msgstr "Oops" @@ -167,29 +199,29 @@ msgstr "" msgid "Image of 404 goblin stressing out" msgstr "Imagem do goblin 404 aparecendo" -#: mediagoblin/templates/mediagoblin/base.html:22 -msgid "GNU MediaGoblin" -msgstr "GNU MediaGoblin" - -#: mediagoblin/templates/mediagoblin/base.html:47 +#: mediagoblin/templates/mediagoblin/base.html:49 msgid "MediaGoblin logo" msgstr "Logo MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:52 +#: mediagoblin/templates/mediagoblin/base.html:54 msgid "Submit media" msgstr "Enviar mídia" -#: mediagoblin/templates/mediagoblin/base.html:63 -msgid "verify your email!" -msgstr "Verifique seu email!" +#: mediagoblin/templates/mediagoblin/base.html:65 +msgid "Verify your email!" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "log out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 -#: mediagoblin/templates/mediagoblin/auth/login.html:35 +#: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Entrar" -#: mediagoblin/templates/mediagoblin/base.html:89 +#: mediagoblin/templates/mediagoblin/base.html:91 msgid "" "Powered by MediaGoblin, a GNU project" @@ -202,71 +234,32 @@ msgid "Explore" msgstr "Explorar" #: mediagoblin/templates/mediagoblin/root.html:27 -msgid "Hi there, media lover! MediaGoblin is..." -msgstr "Olá amante de mídias. MediaGoblin é..." +msgid "Hi there, welcome to this MediaGoblin site!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:28 +msgid "Your finest source for all goblin-related media." +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 -msgid "The perfect place for your media!" -msgstr "O lugar perfeito para sua mídia!" - -#: mediagoblin/templates/mediagoblin/root.html:30 msgid "" -"A place for people to collaborate and show off original and derived " -"creations!" +"To add your own media, place comments, save your favourites and more, you " +"can log in with your MediaGoblin account." msgstr "" -"Um lugar para as pessoas colaborarem e mostrarem suas criações originais e " -"derivadas!" #: mediagoblin/templates/mediagoblin/root.html:31 -msgid "" -"Free, as in freedom. (We’re a GNU project, " -"after all.)" +msgid "Don't have one yet? It's easy!" msgstr "" -"Livre como a liberdade. (Afinal, somos um projeto GNU)" #: mediagoblin/templates/mediagoblin/root.html:32 -msgid "" -"Aiming to make the world a better place through decentralization and " -"(eventually, coming soon!) federation!" -msgstr "" -"Com o objetivo de fazer um mundo melhor através da descentralização e " -"(eventualmente, em breve) federação!" - -#: mediagoblin/templates/mediagoblin/root.html:33 -msgid "" -"Built for extensibility. (Multiple media types coming soon to the software," -" including video support!)" -msgstr "" -"Construído para extensibilidade. (Múltiplos tipos de mídia em breve, " -"incluindo suporte a vídeo) " - -#: mediagoblin/templates/mediagoblin/root.html:34 -msgid "" -"Powered by people like you. (You can help us improve this" -" software!)" -msgstr "" -"Desenvolvido por pessoas como você. (Você pode ajudar a melhorar " -"esse software)" - -#: mediagoblin/templates/mediagoblin/root.html:38 -msgid "Excited to join us?" -msgstr "Animado para juntar-se a nós?" - -#: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"Create a free account\n" +"Create an account at this site\n" " or\n" -" Set up MediaGoblin on your own server" +" Set up MediaGoblin on your own server" msgstr "" -" Crie uma conta grátis \n" -" ou Configure seu próprio servidor MediaGoblin\n" -" " -#: mediagoblin/templates/mediagoblin/root.html:53 +#: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" msgstr "Mídia mais recente" @@ -274,9 +267,13 @@ msgstr "Mídia mais recente" msgid "Enter your new password" msgstr "Digite sua nova senha" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 -msgid "Enter your username or email" -msgstr "Digite seu nome de usuário ou email" +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Recover password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 +msgid "Send instructions" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." @@ -315,22 +312,18 @@ msgstr "" msgid "Logging in failed!" msgstr "Autenticação falhou" -#: mediagoblin/templates/mediagoblin/auth/login.html:43 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Don't have an account yet?" msgstr "Ainda não tem conta?" -#: mediagoblin/templates/mediagoblin/auth/login.html:46 +#: mediagoblin/templates/mediagoblin/auth/login.html:36 msgid "Create one here!" msgstr "Crie uma aqui!" -#: mediagoblin/templates/mediagoblin/auth/login.html:49 +#: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Forgot your password?" msgstr "Esqueceu sua senha?" -#: mediagoblin/templates/mediagoblin/auth/login.html:52 -msgid "Change it!" -msgstr "Altere-a" - #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Criar uma conta!" @@ -375,9 +368,15 @@ msgstr "Salvar mudanças" msgid "Editing %(username)s's profile" msgstr "Editando perfil de %(username)s" -#: mediagoblin/templates/mediagoblin/listings/tag.html:31 -msgid "Media tagged with:" -msgstr "Mídia marcada como:" +#: mediagoblin/templates/mediagoblin/listings/tag.html:30 +#: mediagoblin/templates/mediagoblin/listings/tag.html:35 +#, python-format +msgid "Media tagged with: %(tag_name)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +msgid "Original" +msgstr "" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" @@ -387,16 +386,16 @@ msgstr "Envie sua mídia" msgid "Submit" msgstr "Enviar" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" msgstr "Mídia de %(username)s " -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 -msgid "Sorry, no such user found." -msgstr "Desculpe, esse usuário não foi encontrado." - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -428,29 +427,39 @@ msgstr "Nenhuma mídia em processo" msgid "These uploads failed to process:" msgstr "Esses envios não foram processados:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:31 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:89 +#, python-format +msgid "%(username)s's profile" +msgstr "Perfil de %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:43 +msgid "Sorry, no such user found." +msgstr "Desculpe, esse usuário não foi encontrado." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:50 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:70 msgid "Email verification needed" msgstr "Verificação de email necessária" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:53 msgid "Almost done! Your account still needs to be activated." msgstr "Quase pronto! Sua conta ainda precisa ser ativada" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "Um email deve chegar em instantes com instruções de como fazê-lo." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "In case it doesn't:" msgstr "Caso contrário:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:65 msgid "Resend verification email" msgstr "Reenviar email de verificação" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:73 msgid "" "Someone has registered an account with this username, but it still has to be" " activated." @@ -458,7 +467,7 @@ msgstr "" "Alguém registrou uma conta com esse nome de usuário, mas ainda precisa ser " "ativada." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:79 #, python-format msgid "" "If you are that person but you've lost your verification email, you can efetuar login e reenviá-la." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 -#, python-format -msgid "%(username)s's profile" -msgstr "Perfil de %(username)s" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "Here's a spot to tell others about yourself." msgstr "Aqui é o lugar onde você fala de si para os outros." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 msgid "Edit profile" msgstr "Editar perfil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 msgid "This user hasn't filled in their profile (yet)." msgstr "Esse usuário não preencheu seu perfil (ainda)." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 #, python-format msgid "View all of %(username)s's media" msgstr "Ver todas as mídias de %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." @@ -498,11 +502,11 @@ msgstr "" "Aqui é onde sua mídia vai aparecer, mas parece que você não adicionou nada " "ainda." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 msgid "Add media" msgstr "Adicionar mídia" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 msgid "There doesn't seem to be any media here yet..." msgstr "Aparentemente não há nenhuma mídia aqui ainda..." @@ -522,6 +526,14 @@ msgstr "Mais novo" msgid "Older" msgstr "Mais velho" +#: mediagoblin/templates/mediagoblin/utils/tags.html:20 +msgid "Tagged with" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/tags.html:25 +msgid "and" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Comentário" @@ -530,15 +542,23 @@ msgstr "Comentário" msgid "I am sure I want to delete this" msgstr "Eu tenho certeza de que quero pagar isso" -#: mediagoblin/user_pages/views.py:142 +#: mediagoblin/user_pages/views.py:155 msgid "Empty comments are not allowed." msgstr "" -#: mediagoblin/user_pages/views.py:148 +#: mediagoblin/user_pages/views.py:161 msgid "Comment posted!" msgstr "" -#: mediagoblin/user_pages/views.py:181 +#: mediagoblin/user_pages/views.py:183 +msgid "You deleted the media." +msgstr "" + +#: mediagoblin/user_pages/views.py:190 +msgid "The media was not deleted because you didn't check that you were sure." +msgstr "" + +#: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." msgstr "Você vai apagar uma mídia de outro usuário. Tenha cuidado." diff --git a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po index 01fe5c48..96fd46d8 100644 --- a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-01 23:14-0500\n" -"PO-Revision-Date: 2011-11-02 20:49+0000\n" -"Last-Translator: gap \n" +"POT-Creation-Date: 2011-11-27 15:25-0600\n" +"PO-Revision-Date: 2011-11-27 21:28+0000\n" +"Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,6 +19,10 @@ msgstr "" "Language: ro\n" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1))\n" +#: mediagoblin/processing.py:143 +msgid "Invalid file given for media type." +msgstr "Formatul fișierului nu corespunde cu tipul de media selectat." + #: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Nume de utilizator" @@ -52,8 +56,8 @@ msgid "Sorry, a user with that name already exists." msgstr "Ne pare rău, există deja un utilizator cu același nume." #: mediagoblin/auth/views.py:77 -msgid "Sorry, that email address has already been taken." -msgstr "Ne pare rău, această adresă de e-mail este deja rezervată." +msgid "Sorry, a user with that email address already exists." +msgstr "" #: mediagoblin/auth/views.py:179 msgid "" @@ -67,11 +71,19 @@ msgstr "" msgid "The verification key or user id is incorrect" msgstr "Cheie de verificare sau user ID incorect." -#: mediagoblin/auth/views.py:207 +#: mediagoblin/auth/views.py:203 +msgid "You must be logged in so we know who to send the email to!" +msgstr "" + +#: mediagoblin/auth/views.py:211 +msgid "You've already verified your email address!" +msgstr "" + +#: mediagoblin/auth/views.py:224 msgid "Resent your verification email." msgstr "E-mail-ul de verificare a fost retrimis." -#: mediagoblin/auth/views.py:248 +#: mediagoblin/auth/views.py:265 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -87,45 +99,65 @@ msgstr "Titlu" msgid "Tags" msgstr "Etichete" -#: mediagoblin/edit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 +msgid "Seperate tags by commas or spaces." +msgstr "" + +#: mediagoblin/edit/forms.py:33 msgid "Slug" msgstr "Identificator" -#: mediagoblin/edit/forms.py:32 +#: mediagoblin/edit/forms.py:34 msgid "The slug can't be empty" msgstr "Identificatorul nu poate să lipsească" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:35 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" "Partea din adresa acestui fișier corespunzătoare titlului. De regulă nu " "trebuie modificată." -#: mediagoblin/edit/forms.py:40 +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "Biografie" -#: mediagoblin/edit/forms.py:43 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Sit Web" -#: mediagoblin/edit/views.py:64 +#: mediagoblin/edit/forms.py:49 +msgid "Old password" +msgstr "" + +#: mediagoblin/edit/forms.py:52 +msgid "New Password" +msgstr "" + +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "" "Există deja un entry cu același identificator pentru acest utilizator." -#: mediagoblin/edit/views.py:85 +#: mediagoblin/edit/views.py:86 msgid "You are editing another user's media. Proceed with caution." msgstr "Editezi fișierul unui alt utilizator. Se recomandă prudență." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:156 msgid "You are editing a user's profile. Proceed with caution." msgstr "Editezi profilul unui utilizator. Se recomandă prudență." -#: mediagoblin/process_media/errors.py:44 -msgid "Invalid file given for media type." -msgstr "Formatul fișierului nu corespunde cu tipul de media selectat." +#: mediagoblin/edit/views.py:171 +msgid "Wrong password" +msgstr "" + +#: mediagoblin/edit/views.py:192 +msgid "Profile edited!" +msgstr "" + +#: mediagoblin/media_types/__init__.py:61 +msgid "Could not find any file extension in \"{filename}\"" +msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" @@ -135,18 +167,18 @@ msgstr "Fișier" msgid "Description of this work" msgstr "Descrierea acestui fișier" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:49 msgid "You must provide a file." msgstr "Trebuie să selectezi un fișier." -#: mediagoblin/submit/views.py:49 -msgid "The file doesn't seem to be an image!" -msgstr "Fișierul nu pare a fi o imagine!" - -#: mediagoblin/submit/views.py:121 +#: mediagoblin/submit/views.py:127 msgid "Woohoo! Submitted!" msgstr "Gata, trimis!" +#: mediagoblin/submit/views.py:133 +msgid "Invalid file type." +msgstr "" + #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" msgstr "Oops!" @@ -167,29 +199,29 @@ msgstr "" msgid "Image of 404 goblin stressing out" msgstr "Imagine cu elful 404 stresat." -#: mediagoblin/templates/mediagoblin/base.html:22 -msgid "GNU MediaGoblin" -msgstr "GNU MediaGoblin" - -#: mediagoblin/templates/mediagoblin/base.html:47 +#: mediagoblin/templates/mediagoblin/base.html:49 msgid "MediaGoblin logo" msgstr "logo MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:52 +#: mediagoblin/templates/mediagoblin/base.html:54 msgid "Submit media" msgstr "Transmite un fișier media" -#: mediagoblin/templates/mediagoblin/base.html:63 -msgid "verify your email!" -msgstr "verifică e-mail-ul!" +#: mediagoblin/templates/mediagoblin/base.html:65 +msgid "Verify your email!" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "log out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 -#: mediagoblin/templates/mediagoblin/auth/login.html:35 +#: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Autentificare" -#: mediagoblin/templates/mediagoblin/base.html:89 +#: mediagoblin/templates/mediagoblin/base.html:91 msgid "" "Powered by MediaGoblin, a GNU project" @@ -202,70 +234,32 @@ msgid "Explore" msgstr "Explorează" #: mediagoblin/templates/mediagoblin/root.html:27 -msgid "Hi there, media lover! MediaGoblin is..." -msgstr "Bună! MediaGoblin este..." +msgid "Hi there, welcome to this MediaGoblin site!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:28 +msgid "Your finest source for all goblin-related media." +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 -msgid "The perfect place for your media!" -msgstr "Locul perfect pentru fișierele tale media!" - -#: mediagoblin/templates/mediagoblin/root.html:30 msgid "" -"A place for people to collaborate and show off original and derived " -"creations!" +"To add your own media, place comments, save your favourites and more, you " +"can log in with your MediaGoblin account." msgstr "" -"Un loc unde oamenii colaborează și își expun creațiile originale și " -"derivate!" #: mediagoblin/templates/mediagoblin/root.html:31 -msgid "" -"Free, as in freedom. (We’re a GNU project, " -"after all.)" +msgid "Don't have one yet? It's easy!" msgstr "" -"Liber. (Suntem un proiect GNU, până la urmă.)" #: mediagoblin/templates/mediagoblin/root.html:32 -msgid "" -"Aiming to make the world a better place through decentralization and " -"(eventually, coming soon!) federation!" -msgstr "" -"Un pas spre o lume mai bună prin descentralizare și (în curând) " -"federalizare!" - -#: mediagoblin/templates/mediagoblin/root.html:33 -msgid "" -"Built for extensibility. (Multiple media types coming soon to the software," -" including video support!)" -msgstr "" -"Proiectat să fie extensibil. (Software-ul va avea în curând suport pentru " -"mai multe formate de media, inclusiv pentru video!)" - -#: mediagoblin/templates/mediagoblin/root.html:34 -msgid "" -"Powered by people like you. (You can help us improve this" -" software!)" -msgstr "" -"Animat de oameni ca tine. (Ne poți ajuta să îmbunătățim" -" acest software!)" - -#: mediagoblin/templates/mediagoblin/root.html:38 -msgid "Excited to join us?" -msgstr "Vrei să ni te alături?" - -#: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"Create a free account\n" +"Create an account at this site\n" " or\n" -" Set up MediaGoblin on your own server" +" Set up MediaGoblin on your own server" msgstr "" -"Creează gratuit un cont\n" -" sau\n" -" instalează MediaGoblin pe serverul tău" -#: mediagoblin/templates/mediagoblin/root.html:53 +#: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" msgstr "Cele mai recente fișiere" @@ -273,9 +267,13 @@ msgstr "Cele mai recente fișiere" msgid "Enter your new password" msgstr "Introdu noua parolă" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 -msgid "Enter your username or email" -msgstr "Introdu numele de utilizator sau adresa de e-mail" +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Recover password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 +msgid "Send instructions" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." @@ -313,22 +311,18 @@ msgstr "" msgid "Logging in failed!" msgstr "Autentificare eșuată!" -#: mediagoblin/templates/mediagoblin/auth/login.html:43 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Don't have an account yet?" msgstr "Nu ai un cont?" -#: mediagoblin/templates/mediagoblin/auth/login.html:46 +#: mediagoblin/templates/mediagoblin/auth/login.html:36 msgid "Create one here!" msgstr "Creează-l aici!" -#: mediagoblin/templates/mediagoblin/auth/login.html:49 +#: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Forgot your password?" msgstr "Ai uitat parola?" -#: mediagoblin/templates/mediagoblin/auth/login.html:52 -msgid "Change it!" -msgstr "Schimb-o!" - #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Creează un cont!" @@ -373,9 +367,15 @@ msgstr "Salvează modificările" msgid "Editing %(username)s's profile" msgstr "Editare profil %(username)s" -#: mediagoblin/templates/mediagoblin/listings/tag.html:31 -msgid "Media tagged with:" -msgstr "Etichete:" +#: mediagoblin/templates/mediagoblin/listings/tag.html:30 +#: mediagoblin/templates/mediagoblin/listings/tag.html:35 +#, python-format +msgid "Media tagged with: %(tag_name)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +msgid "Original" +msgstr "" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" @@ -385,16 +385,16 @@ msgstr "Trimite fișierele tale media" msgid "Submit" msgstr "Trimite" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" msgstr "Fișierele media ale lui %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 -msgid "Sorry, no such user found." -msgstr "Ne pare rău, nu am găsit utilizatorul căutat." - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -425,29 +425,39 @@ msgstr "Niciun fișier în curs de procesare" msgid "These uploads failed to process:" msgstr "Aceste fișiere nu au putut fi procesate:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:31 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:89 +#, python-format +msgid "%(username)s's profile" +msgstr "Profil %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:43 +msgid "Sorry, no such user found." +msgstr "Ne pare rău, nu am găsit utilizatorul căutat." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:50 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:70 msgid "Email verification needed" msgstr "Este necesară confirmarea adresei de e-mail" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:53 msgid "Almost done! Your account still needs to be activated." msgstr "Aproape gata! Mai trebuie doar să activezi contul." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "Vei primi în scurt timp un e-mail cu instrucțiuni." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "In case it doesn't:" msgstr "Dacă nu-l primești:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:65 msgid "Resend verification email" msgstr "Retrimite mesajul de verificare" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:73 msgid "" "Someone has registered an account with this username, but it still has to be" " activated." @@ -455,7 +465,7 @@ msgstr "" "Cineva a înregistrat un cont cu acest nume de utilizator, dar contul nu a " "fost încă activat." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:79 #, python-format msgid "" "If you are that person but you've lost your verification email, you can autentifici pentru a-l retrimite." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 -#, python-format -msgid "%(username)s's profile" -msgstr "Profil %(username)s" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "Here's a spot to tell others about yourself." msgstr "Aici poți spune altora ceva despre tine." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 msgid "Edit profile" msgstr "Editare profil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 msgid "This user hasn't filled in their profile (yet)." msgstr "Acest utilizator nu și-a completat (încă) profilul." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 #, python-format msgid "View all of %(username)s's media" msgstr "Vezi toate fișierele media ale lui %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." @@ -495,11 +500,11 @@ msgstr "" "Aici vor apărea fișierele tale media, dar se pare că încă nu ai trimis " "nimic." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 msgid "Add media" msgstr "Trimite fișier" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 msgid "There doesn't seem to be any media here yet..." msgstr "Nu pare să existe niciun fișier media deocamdată..." @@ -519,6 +524,14 @@ msgstr "Mai noi" msgid "Older" msgstr "Mai vechi" +#: mediagoblin/templates/mediagoblin/utils/tags.html:20 +msgid "Tagged with" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/tags.html:25 +msgid "and" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Scrie un comentariu" @@ -527,15 +540,23 @@ msgstr "Scrie un comentariu" msgid "I am sure I want to delete this" msgstr "Sunt sigur că doresc să șterg" -#: mediagoblin/user_pages/views.py:142 +#: mediagoblin/user_pages/views.py:155 msgid "Empty comments are not allowed." msgstr "Comentariul trebuie să aibă un conținut." -#: mediagoblin/user_pages/views.py:148 +#: mediagoblin/user_pages/views.py:161 msgid "Comment posted!" msgstr "Comentariul a fost transmis." -#: mediagoblin/user_pages/views.py:181 +#: mediagoblin/user_pages/views.py:183 +msgid "You deleted the media." +msgstr "" + +#: mediagoblin/user_pages/views.py:190 +msgid "The media was not deleted because you didn't check that you were sure." +msgstr "" + +#: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" "Urmează să ștergi fișierele media ale unui alt utilizator. Se recomandă " diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po index f4bfbd67..9fb1ce08 100644 --- a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-01 23:14-0500\n" -"PO-Revision-Date: 2011-11-04 11:13+0000\n" -"Last-Translator: aleksejrs \n" +"POT-Creation-Date: 2011-11-27 15:25-0600\n" +"PO-Revision-Date: 2011-11-27 21:28+0000\n" +"Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,6 +19,10 @@ msgstr "" "Language: ru\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" +#: mediagoblin/processing.py:143 +msgid "Invalid file given for media type." +msgstr "Неправильный формат файла." + #: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Логин" @@ -52,8 +56,8 @@ msgid "Sorry, a user with that name already exists." msgstr "Извините, пользователь с этим именем уже зарегистрирован." #: mediagoblin/auth/views.py:77 -msgid "Sorry, that email address has already been taken." -msgstr "Извините, этот адрес электронной почты уже занят." +msgid "Sorry, a user with that email address already exists." +msgstr "" #: mediagoblin/auth/views.py:179 msgid "" @@ -67,11 +71,19 @@ msgstr "" msgid "The verification key or user id is incorrect" msgstr "Неверный ключ проверки или идентификатор пользователя" -#: mediagoblin/auth/views.py:207 +#: mediagoblin/auth/views.py:203 +msgid "You must be logged in so we know who to send the email to!" +msgstr "" + +#: mediagoblin/auth/views.py:211 +msgid "You've already verified your email address!" +msgstr "" + +#: mediagoblin/auth/views.py:224 msgid "Resent your verification email." msgstr "Переслать сообщение с подтверждением аккаунта." -#: mediagoblin/auth/views.py:248 +#: mediagoblin/auth/views.py:265 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -88,45 +100,65 @@ msgstr "Название" msgid "Tags" msgstr "Метки" -#: mediagoblin/edit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 +msgid "Seperate tags by commas or spaces." +msgstr "" + +#: mediagoblin/edit/forms.py:33 msgid "Slug" msgstr "Отличительная часть адреса" -#: mediagoblin/edit/forms.py:32 +#: mediagoblin/edit/forms.py:34 msgid "The slug can't be empty" msgstr "Отличительная часть адреса необходима" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:35 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" "Часть адреса этого файла, производная от его названия. Её обычно не нужно " "изменять." -#: mediagoblin/edit/forms.py:40 +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "Биография" -#: mediagoblin/edit/forms.py:43 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Сайт" -#: mediagoblin/edit/views.py:64 +#: mediagoblin/edit/forms.py:49 +msgid "Old password" +msgstr "" + +#: mediagoblin/edit/forms.py:52 +msgid "New Password" +msgstr "" + +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "" "У этого пользователя уже есть файл с такой отличительной частью адреса." -#: mediagoblin/edit/views.py:85 +#: mediagoblin/edit/views.py:86 msgid "You are editing another user's media. Proceed with caution." msgstr "Вы редактируете файлы другого пользователя. Будьте осторожны." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:156 msgid "You are editing a user's profile. Proceed with caution." msgstr "Вы редактируете профиль пользователя. Будьте осторожны." -#: mediagoblin/process_media/errors.py:44 -msgid "Invalid file given for media type." -msgstr "Неправильный формат файла." +#: mediagoblin/edit/views.py:171 +msgid "Wrong password" +msgstr "" + +#: mediagoblin/edit/views.py:192 +msgid "Profile edited!" +msgstr "" + +#: mediagoblin/media_types/__init__.py:61 +msgid "Could not find any file extension in \"{filename}\"" +msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" @@ -136,18 +168,18 @@ msgstr "Файл" msgid "Description of this work" msgstr "Описание этого произведения" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:49 msgid "You must provide a file." msgstr "Вы должны загрузить файл." -#: mediagoblin/submit/views.py:49 -msgid "The file doesn't seem to be an image!" -msgstr "Файл, похоже, не является картинкой!" - -#: mediagoblin/submit/views.py:121 +#: mediagoblin/submit/views.py:127 msgid "Woohoo! Submitted!" msgstr "Ура! Файл загружен!" +#: mediagoblin/submit/views.py:133 +msgid "Invalid file type." +msgstr "" + #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" msgstr "Ой!" @@ -160,35 +192,35 @@ msgstr "Кажется, такой страницы не существует. msgid "" "If you're sure the address is correct, maybe the page you're looking for has" " been moved or deleted." -msgstr "Возможно, страница которую вы ищете была удалена или переехала." +msgstr "Возможно, страница, которую вы ищете, была удалена или переехала." #: mediagoblin/templates/mediagoblin/404.html:32 msgid "Image of 404 goblin stressing out" msgstr "Изображение 404 нервничающего гоблина" -#: mediagoblin/templates/mediagoblin/base.html:22 -msgid "GNU MediaGoblin" -msgstr "GNU MediaGoblin" - -#: mediagoblin/templates/mediagoblin/base.html:47 +#: mediagoblin/templates/mediagoblin/base.html:49 msgid "MediaGoblin logo" msgstr "Символ MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:52 +#: mediagoblin/templates/mediagoblin/base.html:54 msgid "Submit media" msgstr "Загрузить файл" -#: mediagoblin/templates/mediagoblin/base.html:63 -msgid "verify your email!" -msgstr "подтвердите ваш адрес электронной почты!" +#: mediagoblin/templates/mediagoblin/base.html:65 +msgid "Verify your email!" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "log out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 -#: mediagoblin/templates/mediagoblin/auth/login.html:35 +#: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Войти" -#: mediagoblin/templates/mediagoblin/base.html:89 +#: mediagoblin/templates/mediagoblin/base.html:91 msgid "" "Powered by MediaGoblin, a GNU project" @@ -201,66 +233,32 @@ msgid "Explore" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:27 -msgid "Hi there, media lover! MediaGoblin is..." -msgstr "Привет, любитель мультимедиа! MediaGoblin…" +msgid "Hi there, welcome to this MediaGoblin site!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:28 +msgid "Your finest source for all goblin-related media." +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 -msgid "The perfect place for your media!" -msgstr "Отличное место для ваших файлов!" - -#: mediagoblin/templates/mediagoblin/root.html:30 msgid "" -"A place for people to collaborate and show off original and derived " -"creations!" +"To add your own media, place comments, save your favourites and more, you " +"can log in with your MediaGoblin account." msgstr "" -"Место для того, чтобы совместно работать или просто показать свои " -"оригинальные и/или заимствованные создания!" #: mediagoblin/templates/mediagoblin/root.html:31 -msgid "" -"Free, as in freedom. (We’re a GNU project, " -"after all.)" -msgstr "Свободное ПО. (Мы же проект GNU.)" +msgid "Don't have one yet? It's easy!" +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:32 -msgid "" -"Aiming to make the world a better place through decentralization and " -"(eventually, coming soon!) federation!" -msgstr "" -"Попытка сделать мир лучше с помощью децентрализации и (надеемся, что скоро!)" -" интеграции!" - -#: mediagoblin/templates/mediagoblin/root.html:33 -msgid "" -"Built for extensibility. (Multiple media types coming soon to the software," -" including video support!)" -msgstr "" -"Рассчитан на расширяемость. (В программе скоро должна появиться поддержка " -"других видов мультимедиа, таких как видео!)" - -#: mediagoblin/templates/mediagoblin/root.html:34 -msgid "" -"Powered by people like you. (You can help us improve this" -" software!)" -msgstr "" -"Поддерживается такими же, как и ты. (Ты можешь помочь сделать это" -" ПО лучше!)" - -#: mediagoblin/templates/mediagoblin/root.html:38 -msgid "Excited to join us?" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"Create a free account\n" +"Create an account at this site\n" " or\n" -" Set up MediaGoblin on your own server" +" Set up MediaGoblin on your own server" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:53 +#: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" msgstr "Самые новые файлы" @@ -268,18 +266,24 @@ msgstr "Самые новые файлы" msgid "Enter your new password" msgstr "Введите свой новый пароль" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 -msgid "Enter your username or email" -msgstr "Введите Ваше имя пользователя или адрес электронной почты" +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Recover password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 +msgid "Send instructions" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." -msgstr "" +msgstr "Ваш пароль изменён. Теперь попробуйте представиться." #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" "Check your inbox. We sent an email with a URL for changing your password." msgstr "" +"Проверьте свой электронный почтовый ящик. Мы отправили сообщение с адресом " +"для изменения Вашего пароля." #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format @@ -294,27 +298,32 @@ msgid "" "If you think this is an error, just ignore this email and continue being\n" "a happy goblin!" msgstr "" +"Привет, %(username)s,\n" +"\n" +"чтобы сменить свой пароль от GNU MediaGoblin, откройте\n" +"следующий URL вашим веб‐браузером:\n" +"\n" +"%(verification_url)s\n" +"\n" +"Если вы думаете, что это какая‐то ошибка, то игнорируйте\n" +"это сообщение и продолжайте быть счастливым гоблином!" #: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" msgstr "Авторизация неуспешна!" -#: mediagoblin/templates/mediagoblin/auth/login.html:43 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Don't have an account yet?" msgstr "Ещё нету аккаунта?" -#: mediagoblin/templates/mediagoblin/auth/login.html:46 +#: mediagoblin/templates/mediagoblin/auth/login.html:36 msgid "Create one here!" msgstr "Создайте здесь!" -#: mediagoblin/templates/mediagoblin/auth/login.html:49 +#: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Forgot your password?" msgstr "Забыли свой пароль?" -#: mediagoblin/templates/mediagoblin/auth/login.html:52 -msgid "Change it!" -msgstr "Смените его!" - #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Создать аккаунт!" @@ -359,9 +368,15 @@ msgstr "Сохранить изменения" msgid "Editing %(username)s's profile" msgstr "Редактирование профиля %(username)s" -#: mediagoblin/templates/mediagoblin/listings/tag.html:31 -msgid "Media tagged with:" -msgstr "Файлы с меткой:" +#: mediagoblin/templates/mediagoblin/listings/tag.html:30 +#: mediagoblin/templates/mediagoblin/listings/tag.html:35 +#, python-format +msgid "Media tagged with: %(tag_name)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +msgid "Original" +msgstr "" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" @@ -371,16 +386,16 @@ msgstr "Загрузить файл(ы)" msgid "Submit" msgstr "Подтвердить" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" msgstr "Файлы пользователя %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 -msgid "Sorry, no such user found." -msgstr "Извините, но такой пользователь не найден." - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -412,38 +427,48 @@ msgstr "Нету файлов для обработки" msgid "These uploads failed to process:" msgstr "Обработка этих файлов вызвала ошибку:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:31 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:89 +#, python-format +msgid "%(username)s's profile" +msgstr "Профиль пользователя %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:43 +msgid "Sorry, no such user found." +msgstr "Извините, но такой пользователь не найден." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:50 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:70 msgid "Email verification needed" msgstr "Нужно подтверждение почтового адреса" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:53 msgid "Almost done! Your account still needs to be activated." msgstr "Почти закончили! Теперь надо активировать ваш аккаунт." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "" "Через пару мгновений на адрес вашей электронной почты должно прийти " "сообщение с дальнейшими инструкциями." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "In case it doesn't:" msgstr "А если нет, то:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:65 msgid "Resend verification email" msgstr "" "Повторно отправить сообщение для подверждения адреса электронной почты" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:73 msgid "" "Someone has registered an account with this username, but it still has to be" " activated." msgstr "Кто‐то создал аккаунт с этим именем, но его еще надо активировать." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:79 #, python-format msgid "" "If you are that person but you've lost your verification email, you can войти и отправить его повторно." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 -#, python-format -msgid "%(username)s's profile" -msgstr "Профиль пользователя %(username)s" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "Here's a spot to tell others about yourself." msgstr "Здесь вы можете рассказать о себе." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 msgid "Edit profile" msgstr "Редактировать профиль" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 msgid "This user hasn't filled in their profile (yet)." msgstr "Это пользователь не заполнил свой профайл (пока)." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 #, python-format msgid "View all of %(username)s's media" msgstr "Смотреть все файлы %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "Ваши файлы появятся здесь, когда вы их добавите." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 msgid "Add media" msgstr "Добавить файлы" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 msgid "There doesn't seem to be any media here yet..." msgstr "Пока что тут файлов нет…" @@ -505,6 +525,14 @@ msgstr "Более новые" msgid "Older" msgstr "Более старые" +#: mediagoblin/templates/mediagoblin/utils/tags.html:20 +msgid "Tagged with" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/tags.html:25 +msgid "and" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Комментарий" @@ -513,15 +541,23 @@ msgstr "Комментарий" msgid "I am sure I want to delete this" msgstr "Я уверен, что хочу удалить это" -#: mediagoblin/user_pages/views.py:142 +#: mediagoblin/user_pages/views.py:155 msgid "Empty comments are not allowed." msgstr "Empty comments are not allowed." -#: mediagoblin/user_pages/views.py:148 +#: mediagoblin/user_pages/views.py:161 msgid "Comment posted!" +msgstr "Комментарий размещён!" + +#: mediagoblin/user_pages/views.py:183 +msgid "You deleted the media." msgstr "" -#: mediagoblin/user_pages/views.py:181 +#: mediagoblin/user_pages/views.py:190 +msgid "The media was not deleted because you didn't check that you were sure." +msgstr "" + +#: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." msgstr "Вы на пороге удаления файла другого пользователя. Будьте осторожны." diff --git a/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.po index d3196b9c..bee7b3b5 100644 --- a/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-01 23:14-0500\n" -"PO-Revision-Date: 2011-11-02 04:13+0000\n" +"POT-Creation-Date: 2011-11-27 15:25-0600\n" +"PO-Revision-Date: 2011-11-27 21:28+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -19,6 +19,10 @@ msgstr "" "Language: sk\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n" +#: mediagoblin/processing.py:143 +msgid "Invalid file given for media type." +msgstr "Odovzdaný nesprávny súbor pre daný typ média." + #: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Prihlasovacie meno" @@ -52,8 +56,8 @@ msgid "Sorry, a user with that name already exists." msgstr "Prepáč, rovnaké prihlasovacie meno už niekto používa." #: mediagoblin/auth/views.py:77 -msgid "Sorry, that email address has already been taken." -msgstr "Prepáč, daná e-mailová adresa už bola pri registrácii využitá." +msgid "Sorry, a user with that email address already exists." +msgstr "" #: mediagoblin/auth/views.py:179 msgid "" @@ -67,11 +71,19 @@ msgstr "" msgid "The verification key or user id is incorrect" msgstr "Nesprávny overovací kľúč alebo používateľské ID" -#: mediagoblin/auth/views.py:207 +#: mediagoblin/auth/views.py:203 +msgid "You must be logged in so we know who to send the email to!" +msgstr "" + +#: mediagoblin/auth/views.py:211 +msgid "You've already verified your email address!" +msgstr "" + +#: mediagoblin/auth/views.py:224 msgid "Resent your verification email." msgstr "Opätovne zaslať overovaciu správu." -#: mediagoblin/auth/views.py:248 +#: mediagoblin/auth/views.py:265 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -87,42 +99,62 @@ msgstr "Nadpis" msgid "Tags" msgstr "Štítky" -#: mediagoblin/edit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 +msgid "Seperate tags by commas or spaces." +msgstr "" + +#: mediagoblin/edit/forms.py:33 msgid "Slug" msgstr "Unikátna časť adresy" -#: mediagoblin/edit/forms.py:32 +#: mediagoblin/edit/forms.py:34 msgid "The slug can't be empty" msgstr "Unikátna časť adresy musí byť vyplnená" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:35 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "Titulná časť URL odkazu média. Zvyčajne to meniť nemusíš." -#: mediagoblin/edit/forms.py:40 +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "Bio" -#: mediagoblin/edit/forms.py:43 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Webstránka" -#: mediagoblin/edit/views.py:64 +#: mediagoblin/edit/forms.py:49 +msgid "Old password" +msgstr "" + +#: mediagoblin/edit/forms.py:52 +msgid "New Password" +msgstr "" + +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "Položku s rovnakou unikátnou časťou adresy už niekde máš." -#: mediagoblin/edit/views.py:85 +#: mediagoblin/edit/views.py:86 msgid "You are editing another user's media. Proceed with caution." msgstr "Upravuješ médiá niekoho iného. Pristupuj opatrne." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:156 msgid "You are editing a user's profile. Proceed with caution." msgstr "Upravuješ používateľský profil. Pristupuj opatrne." -#: mediagoblin/process_media/errors.py:44 -msgid "Invalid file given for media type." -msgstr "Odovzdaný nesprávny súbor pre daný typ média." +#: mediagoblin/edit/views.py:171 +msgid "Wrong password" +msgstr "" + +#: mediagoblin/edit/views.py:192 +msgid "Profile edited!" +msgstr "" + +#: mediagoblin/media_types/__init__.py:61 +msgid "Could not find any file extension in \"{filename}\"" +msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" @@ -132,18 +164,18 @@ msgstr "Súbor" msgid "Description of this work" msgstr "Charakteristika diela" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:49 msgid "You must provide a file." msgstr "Poskytni súbor." -#: mediagoblin/submit/views.py:49 -msgid "The file doesn't seem to be an image!" -msgstr "Súbor najskôr nie je obrázkom!" - -#: mediagoblin/submit/views.py:121 +#: mediagoblin/submit/views.py:127 msgid "Woohoo! Submitted!" msgstr "Juchú! Úspešne vložené!" +#: mediagoblin/submit/views.py:133 +msgid "Invalid file type." +msgstr "" + #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" msgstr "Ajaj!" @@ -164,29 +196,29 @@ msgstr "" msgid "Image of 404 goblin stressing out" msgstr "Obrázok stresujúceho goblina pri chybovom kóde č. 404" -#: mediagoblin/templates/mediagoblin/base.html:22 -msgid "GNU MediaGoblin" -msgstr "GNU MediaGoblin" - -#: mediagoblin/templates/mediagoblin/base.html:47 +#: mediagoblin/templates/mediagoblin/base.html:49 msgid "MediaGoblin logo" msgstr "MediaGoblin logo" -#: mediagoblin/templates/mediagoblin/base.html:52 +#: mediagoblin/templates/mediagoblin/base.html:54 msgid "Submit media" msgstr "Vložiť výtvor" -#: mediagoblin/templates/mediagoblin/base.html:63 -msgid "verify your email!" -msgstr "over si svoj e-mail!" +#: mediagoblin/templates/mediagoblin/base.html:65 +msgid "Verify your email!" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "log out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 -#: mediagoblin/templates/mediagoblin/auth/login.html:35 +#: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Prihlásenie" -#: mediagoblin/templates/mediagoblin/base.html:89 +#: mediagoblin/templates/mediagoblin/base.html:91 msgid "" "Powered by MediaGoblin, a GNU project" @@ -199,71 +231,32 @@ msgid "Explore" msgstr "Preskúmať" #: mediagoblin/templates/mediagoblin/root.html:27 -msgid "Hi there, media lover! MediaGoblin is..." -msgstr "Vitaj medzi nami, kreatívne stvorenie! MediaGoblin je..." +msgid "Hi there, welcome to this MediaGoblin site!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:28 +msgid "Your finest source for all goblin-related media." +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 -msgid "The perfect place for your media!" -msgstr "Parádne miesto pre tvoje výtvory!" - -#: mediagoblin/templates/mediagoblin/root.html:30 msgid "" -"A place for people to collaborate and show off original and derived " -"creations!" +"To add your own media, place comments, save your favourites and more, you " +"can log in with your MediaGoblin account." msgstr "" -"Miesto pre ľudí, vhodné na spoluprácu a vystavovanie tak originálnych, ako " -"aj odvodených kreácií!" #: mediagoblin/templates/mediagoblin/root.html:31 -msgid "" -"Free, as in freedom. (We’re a GNU project, " -"after all.)" +msgid "Don't have one yet? It's easy!" msgstr "" -"Voľné, vo význame slobody. (Koniec-koncov, sme predsa GNU projekt.)" #: mediagoblin/templates/mediagoblin/root.html:32 -msgid "" -"Aiming to make the world a better place through decentralization and " -"(eventually, coming soon!) federation!" -msgstr "" -"Zo snahou spraviť svet lepším miestom vďaka decentralizácii a (eventuálne, " -"už čoskoro!) federácii!" - -#: mediagoblin/templates/mediagoblin/root.html:33 -msgid "" -"Built for extensibility. (Multiple media types coming soon to the software," -" including video support!)" -msgstr "" -"S dôrazom na rozšíriteľnosť. (Podpora pre rozličné typy médií v tomto " -"softvéri už čoskoro, nevynímajúc videá!)" - -#: mediagoblin/templates/mediagoblin/root.html:34 -msgid "" -"Powered by people like you. (You can help us improve this" -" software!)" -msgstr "" -"Existujeme aj vďaka ľudom ako si ty. (Môžeš nám pomôcť softvér " -"vylepšiť!)" - -#: mediagoblin/templates/mediagoblin/root.html:38 -msgid "Excited to join us?" -msgstr "Tak čo, chceš sa pridať?" - -#: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"Create a free account\n" +"Create an account at this site\n" " or\n" -" Set up MediaGoblin on your own server" +" Set up MediaGoblin on your own server" msgstr "" -"Vytvoriť bezplatný účet\n" -" alebo\n" -" Sprevádzkovať MediaGoblin na vlastnom serveri" -#: mediagoblin/templates/mediagoblin/root.html:53 +#: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" msgstr "Najčerstvejšie výtvory" @@ -271,9 +264,13 @@ msgstr "Najčerstvejšie výtvory" msgid "Enter your new password" msgstr "Vlož svoje nové heslo" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 -msgid "Enter your username or email" -msgstr "Vlož svoje používateľské meno alebo e-mailovú adresu" +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Recover password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 +msgid "Send instructions" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." @@ -312,22 +309,18 @@ msgstr "" msgid "Logging in failed!" msgstr "Prihlásenie zlyhalo!" -#: mediagoblin/templates/mediagoblin/auth/login.html:43 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Don't have an account yet?" msgstr "Ešte nemáš účet?" -#: mediagoblin/templates/mediagoblin/auth/login.html:46 +#: mediagoblin/templates/mediagoblin/auth/login.html:36 msgid "Create one here!" msgstr "Vytvoriť jeden tu!" -#: mediagoblin/templates/mediagoblin/auth/login.html:49 +#: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Forgot your password?" msgstr "Zabudnuté heslo?" -#: mediagoblin/templates/mediagoblin/auth/login.html:52 -msgid "Change it!" -msgstr "Zmeniť ho!" - #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Vytvoriť účet!" @@ -373,9 +366,15 @@ msgstr "Uložiť zmeny" msgid "Editing %(username)s's profile" msgstr "Úprava profilu, ktorý vlastní %(username)s" -#: mediagoblin/templates/mediagoblin/listings/tag.html:31 -msgid "Media tagged with:" -msgstr "Výtvor značený štítkami:" +#: mediagoblin/templates/mediagoblin/listings/tag.html:30 +#: mediagoblin/templates/mediagoblin/listings/tag.html:35 +#, python-format +msgid "Media tagged with: %(tag_name)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +msgid "Original" +msgstr "" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" @@ -385,16 +384,16 @@ msgstr "Vlož svoj výtvor" msgid "Submit" msgstr "Vložiť" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" msgstr "Výtvory, ktoré vlastní %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 -msgid "Sorry, no such user found." -msgstr "Prepáč, používateľské meno nenájdené." - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -425,29 +424,39 @@ msgstr "Žiadne médiá v procese spracovania" msgid "These uploads failed to process:" msgstr "Nasledovné vloženia neprešli spracovaním:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:31 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:89 +#, python-format +msgid "%(username)s's profile" +msgstr "Profil, ktorý vlastní %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:43 +msgid "Sorry, no such user found." +msgstr "Prepáč, používateľské meno nenájdené." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:50 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:70 msgid "Email verification needed" msgstr "Potrebné overenie e-mailovej adresy" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:53 msgid "Almost done! Your account still needs to be activated." msgstr "Takmer hotovo! Ešte ti musí byť aktivovaný účet." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "E-mailová správa s popisom ako to spraviť, by mala onedlho doraziť." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "In case it doesn't:" msgstr "V prípade, že sa tak nestalo:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:65 msgid "Resend verification email" msgstr "Opätovne zaslať overovaciu správu" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:73 msgid "" "Someone has registered an account with this username, but it still has to be" " activated." @@ -455,7 +464,7 @@ msgstr "" "Účet s týmto prihlasovacím menom je už registrovaný, avšak ešte stále " "neaktívny." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:79 #, python-format msgid "" "If you are that person but you've lost your verification email, you can prihlásiť a preposlať si ju." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 -#, python-format -msgid "%(username)s's profile" -msgstr "Profil, ktorý vlastní %(username)s" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "Here's a spot to tell others about yourself." msgstr "Povedz tu o sebe ostatným." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 msgid "Edit profile" msgstr "Upraviť profil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 msgid "This user hasn't filled in their profile (yet)." msgstr "Dotyčná osoba ešte nevyplnila svoj profil (zatiaľ)." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 #, python-format msgid "View all of %(username)s's media" msgstr "Zhliadnuť všetky výtvory, ktoré vlastní %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" "Všetky tvoje výtvory sa objavia práve tu, ale zatiaľ nemáš nič pridané." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 msgid "Add media" msgstr "Pridať výtvor" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 msgid "There doesn't seem to be any media here yet..." msgstr "Najskôr tu ešte nebudú žiadne výtvory..." @@ -518,6 +522,14 @@ msgstr "Novšie" msgid "Older" msgstr "Staršie" +#: mediagoblin/templates/mediagoblin/utils/tags.html:20 +msgid "Tagged with" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/tags.html:25 +msgid "and" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Komentár" @@ -526,15 +538,23 @@ msgstr "Komentár" msgid "I am sure I want to delete this" msgstr "Jednoznačne to chcem odstrániť" -#: mediagoblin/user_pages/views.py:142 +#: mediagoblin/user_pages/views.py:155 msgid "Empty comments are not allowed." -msgstr "" +msgstr "Komentáre bez obsahu nepovolené." -#: mediagoblin/user_pages/views.py:148 +#: mediagoblin/user_pages/views.py:161 msgid "Comment posted!" +msgstr "Komentár odoslaný!" + +#: mediagoblin/user_pages/views.py:183 +msgid "You deleted the media." msgstr "" -#: mediagoblin/user_pages/views.py:181 +#: mediagoblin/user_pages/views.py:190 +msgid "The media was not deleted because you didn't check that you were sure." +msgstr "" + +#: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." msgstr "Chystáš sa odstrániť výtvory niekoho iného. Pristupuj opatrne." diff --git a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po index cba4fdd0..77273ebe 100644 --- a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-01 23:14-0500\n" -"PO-Revision-Date: 2011-11-02 04:13+0000\n" +"POT-Creation-Date: 2011-11-27 15:25-0600\n" +"PO-Revision-Date: 2011-11-27 21:28+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -19,6 +19,10 @@ msgstr "" "Language: sl\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3)\n" +#: mediagoblin/processing.py:143 +msgid "Invalid file given for media type." +msgstr "Za vrsto vsebine je bila podana napačna datoteka." + #: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Uporabniško ime" @@ -52,8 +56,8 @@ msgid "Sorry, a user with that name already exists." msgstr "Oprostite, uporabnik s tem imenom že obstaja." #: mediagoblin/auth/views.py:77 -msgid "Sorry, that email address has already been taken." -msgstr "Oprostite, ta e-poštni naslov je že v uporabi." +msgid "Sorry, a user with that email address already exists." +msgstr "" #: mediagoblin/auth/views.py:179 msgid "" @@ -67,11 +71,19 @@ msgstr "" msgid "The verification key or user id is incorrect" msgstr "Potrditveni ključ ali uporabniška identifikacija je napačna" -#: mediagoblin/auth/views.py:207 +#: mediagoblin/auth/views.py:203 +msgid "You must be logged in so we know who to send the email to!" +msgstr "" + +#: mediagoblin/auth/views.py:211 +msgid "You've already verified your email address!" +msgstr "" + +#: mediagoblin/auth/views.py:224 msgid "Resent your verification email." msgstr "Ponovno pošiljanje potrditvene e-pošte." -#: mediagoblin/auth/views.py:248 +#: mediagoblin/auth/views.py:265 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -85,42 +97,62 @@ msgstr "Naslov" msgid "Tags" msgstr "Oznake" -#: mediagoblin/edit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 +msgid "Seperate tags by commas or spaces." +msgstr "" + +#: mediagoblin/edit/forms.py:33 msgid "Slug" msgstr "Oznaka" -#: mediagoblin/edit/forms.py:32 +#: mediagoblin/edit/forms.py:34 msgid "The slug can't be empty" msgstr "Oznaka ne sme biti prazna" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:35 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" -#: mediagoblin/edit/forms.py:40 +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "Biografija" -#: mediagoblin/edit/forms.py:43 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Spletna stran" -#: mediagoblin/edit/views.py:64 +#: mediagoblin/edit/forms.py:49 +msgid "Old password" +msgstr "" + +#: mediagoblin/edit/forms.py:52 +msgid "New Password" +msgstr "" + +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "Vnos s to oznako za tega uporabnika že obstaja." -#: mediagoblin/edit/views.py:85 +#: mediagoblin/edit/views.py:86 msgid "You are editing another user's media. Proceed with caution." msgstr "Urejate vsebino drugega uporabnika. Nadaljujte pazljivo." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:156 msgid "You are editing a user's profile. Proceed with caution." msgstr "Urejate uporabniški profil. Nadaljujte pazljivo." -#: mediagoblin/process_media/errors.py:44 -msgid "Invalid file given for media type." -msgstr "Za vrsto vsebine je bila podana napačna datoteka." +#: mediagoblin/edit/views.py:171 +msgid "Wrong password" +msgstr "" + +#: mediagoblin/edit/views.py:192 +msgid "Profile edited!" +msgstr "" + +#: mediagoblin/media_types/__init__.py:61 +msgid "Could not find any file extension in \"{filename}\"" +msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" @@ -130,18 +162,18 @@ msgstr "Datoteka" msgid "Description of this work" msgstr "" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:49 msgid "You must provide a file." msgstr "Podati morate datoteko." -#: mediagoblin/submit/views.py:49 -msgid "The file doesn't seem to be an image!" -msgstr "Kot kaže datoteka ni slika." - -#: mediagoblin/submit/views.py:121 +#: mediagoblin/submit/views.py:127 msgid "Woohoo! Submitted!" msgstr "Juhej! Poslano." +#: mediagoblin/submit/views.py:133 +msgid "Invalid file type." +msgstr "" + #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" msgstr "Opa!" @@ -162,29 +194,29 @@ msgstr "" msgid "Image of 404 goblin stressing out" msgstr "Slika napake 404 s paničnim škratom" -#: mediagoblin/templates/mediagoblin/base.html:22 -msgid "GNU MediaGoblin" -msgstr "GNU MediaGoblin" - -#: mediagoblin/templates/mediagoblin/base.html:47 +#: mediagoblin/templates/mediagoblin/base.html:49 msgid "MediaGoblin logo" msgstr "Logotip MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:52 +#: mediagoblin/templates/mediagoblin/base.html:54 msgid "Submit media" msgstr "Pošlji vsebino" -#: mediagoblin/templates/mediagoblin/base.html:63 -msgid "verify your email!" -msgstr "Preverite svojo e-pošto." +#: mediagoblin/templates/mediagoblin/base.html:65 +msgid "Verify your email!" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "log out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 -#: mediagoblin/templates/mediagoblin/auth/login.html:35 +#: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Prijava" -#: mediagoblin/templates/mediagoblin/base.html:89 +#: mediagoblin/templates/mediagoblin/base.html:91 msgid "" "Powered by MediaGoblin, a GNU project" @@ -195,66 +227,32 @@ msgid "Explore" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:27 -msgid "Hi there, media lover! MediaGoblin is..." -msgstr "Pozdravljen, ljubitelj večpredstavnostnih vsebin! MediaGoblin je ..." +msgid "Hi there, welcome to this MediaGoblin site!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:28 +msgid "Your finest source for all goblin-related media." +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 -msgid "The perfect place for your media!" -msgstr "Popolno mesto za vaše večpredstavnostne vsebine." - -#: mediagoblin/templates/mediagoblin/root.html:30 msgid "" -"A place for people to collaborate and show off original and derived " -"creations!" +"To add your own media, place comments, save your favourites and more, you " +"can log in with your MediaGoblin account." msgstr "" -"Mesto, kjer ljudje lahko sodelujejo in razkazujejo originalne in predelane " -"stvaritve." #: mediagoblin/templates/mediagoblin/root.html:31 -msgid "" -"Free, as in freedom. (We’re a GNU project, " -"after all.)" +msgid "Don't have one yet? It's easy!" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:32 -msgid "" -"Aiming to make the world a better place through decentralization and " -"(eventually, coming soon!) federation!" -msgstr "" -"Ustvarjen z namenom izboljšati svet, s pomočjo decentralizacije in (kmalu) " -"federacije." - -#: mediagoblin/templates/mediagoblin/root.html:33 -msgid "" -"Built for extensibility. (Multiple media types coming soon to the software," -" including video support!)" -msgstr "" -"Zgrajen za razširjanje. (Kmalu bodo na voljo dodatne vrste vsebin, vključno " -"podpora za video)" - -#: mediagoblin/templates/mediagoblin/root.html:34 -msgid "" -"Powered by people like you. (You can help us improve this" -" software!)" -msgstr "" -"Sad dela ljudi, kot ste vi. (Pri izboljševanju nam lahko " -"pomagate tudi vi.)" - -#: mediagoblin/templates/mediagoblin/root.html:38 -msgid "Excited to join us?" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"Create a free account\n" +"Create an account at this site\n" " or\n" -" Set up MediaGoblin on your own server" +" Set up MediaGoblin on your own server" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:53 +#: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" msgstr "" @@ -262,8 +260,12 @@ msgstr "" msgid "Enter your new password" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 -msgid "Enter your username or email" +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Recover password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 +msgid "Send instructions" msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 @@ -293,22 +295,18 @@ msgstr "" msgid "Logging in failed!" msgstr "Prijava ni uspela." -#: mediagoblin/templates/mediagoblin/auth/login.html:43 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Don't have an account yet?" msgstr "Še nimate računa?" -#: mediagoblin/templates/mediagoblin/auth/login.html:46 +#: mediagoblin/templates/mediagoblin/auth/login.html:36 msgid "Create one here!" msgstr "Ustvarite si ga." -#: mediagoblin/templates/mediagoblin/auth/login.html:49 +#: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Forgot your password?" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:52 -msgid "Change it!" -msgstr "" - #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Ustvarite račun." @@ -354,9 +352,15 @@ msgstr "Shrani spremembe" msgid "Editing %(username)s's profile" msgstr "Urejanje profila – %(username)s" -#: mediagoblin/templates/mediagoblin/listings/tag.html:31 -msgid "Media tagged with:" -msgstr "Vsebina označena z:" +#: mediagoblin/templates/mediagoblin/listings/tag.html:30 +#: mediagoblin/templates/mediagoblin/listings/tag.html:35 +#, python-format +msgid "Media tagged with: %(tag_name)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +msgid "Original" +msgstr "" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" @@ -366,16 +370,16 @@ msgstr "Pošljite svojo vsebino" msgid "Submit" msgstr "Pošlji" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" msgstr "Vsebina uporabnika %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 -msgid "Sorry, no such user found." -msgstr "Oprostite, tega uporabnika ni bilo moč najti." - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -406,29 +410,39 @@ msgstr "V obdelavi ni nobene vsebine" msgid "These uploads failed to process:" msgstr "Teh vsebin ni bilo moč obdelati:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:31 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:89 +#, python-format +msgid "%(username)s's profile" +msgstr "Profil – %(username)s" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:43 +msgid "Sorry, no such user found." +msgstr "Oprostite, tega uporabnika ni bilo moč najti." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:50 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:70 msgid "Email verification needed" msgstr "Potrebna je potrditev prek e-pošte" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:53 msgid "Almost done! Your account still needs to be activated." msgstr "Skoraj ste zaključili. Svoj račun morate le še aktivirati." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "V kratkem bi morali prejeti e-pošto z navodili, kako to storiti." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "In case it doesn't:" msgstr "Če je ne prejmete:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:65 msgid "Resend verification email" msgstr "Ponovno pošlji potrditveno e-pošto" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:73 msgid "" "Someone has registered an account with this username, but it still has to be" " activated." @@ -436,7 +450,7 @@ msgstr "" "Nekdo je s tem uporabniškim imenom že registriral račun, vendar mora biti še" " aktiviran." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:79 #, python-format msgid "" "If you are that person but you've lost your verification email, you can prijavite in jo ponovno pošljete." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 -#, python-format -msgid "%(username)s's profile" -msgstr "Profil – %(username)s" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "Here's a spot to tell others about yourself." msgstr "Na tem mestu lahko drugim poveste nekaj o sebi." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 msgid "Edit profile" msgstr "Uredi profil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 msgid "This user hasn't filled in their profile (yet)." msgstr "Ta uporabnik še ni izpolnil svojega profila." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 #, python-format msgid "View all of %(username)s's media" msgstr "Prikaži vso vsebino uporabnika %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "Tu bo prikazana vaša vsebina, a trenutno še niste dodali nič." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 msgid "Add media" msgstr "Dodaj vsebino" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 msgid "There doesn't seem to be any media here yet..." msgstr "Videti je, da tu še ni nobene vsebine ..." @@ -498,6 +507,14 @@ msgstr "" msgid "Older" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/tags.html:20 +msgid "Tagged with" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/tags.html:25 +msgid "and" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Komentar" @@ -506,15 +523,23 @@ msgstr "Komentar" msgid "I am sure I want to delete this" msgstr "" -#: mediagoblin/user_pages/views.py:142 +#: mediagoblin/user_pages/views.py:155 msgid "Empty comments are not allowed." msgstr "" -#: mediagoblin/user_pages/views.py:148 +#: mediagoblin/user_pages/views.py:161 msgid "Comment posted!" msgstr "" -#: mediagoblin/user_pages/views.py:181 +#: mediagoblin/user_pages/views.py:183 +msgid "You deleted the media." +msgstr "" + +#: mediagoblin/user_pages/views.py:190 +msgid "The media was not deleted because you didn't check that you were sure." +msgstr "" + +#: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po index b4b2fb7b..0bdfc21c 100644 --- a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-01 23:14-0500\n" -"PO-Revision-Date: 2011-11-02 04:13+0000\n" +"POT-Creation-Date: 2011-11-27 15:25-0600\n" +"PO-Revision-Date: 2011-11-27 21:28+0000\n" "Last-Translator: cwebber \n" "Language-Team: Serbian (http://www.transifex.net/projects/p/mediagoblin/team/sr/)\n" "MIME-Version: 1.0\n" @@ -18,6 +18,10 @@ msgstr "" "Language: sr\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" +#: mediagoblin/processing.py:143 +msgid "Invalid file given for media type." +msgstr "" + #: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "" @@ -51,7 +55,7 @@ msgid "Sorry, a user with that name already exists." msgstr "" #: mediagoblin/auth/views.py:77 -msgid "Sorry, that email address has already been taken." +msgid "Sorry, a user with that email address already exists." msgstr "" #: mediagoblin/auth/views.py:179 @@ -64,11 +68,19 @@ msgstr "" msgid "The verification key or user id is incorrect" msgstr "" -#: mediagoblin/auth/views.py:207 +#: mediagoblin/auth/views.py:203 +msgid "You must be logged in so we know who to send the email to!" +msgstr "" + +#: mediagoblin/auth/views.py:211 +msgid "You've already verified your email address!" +msgstr "" + +#: mediagoblin/auth/views.py:224 msgid "Resent your verification email." msgstr "" -#: mediagoblin/auth/views.py:248 +#: mediagoblin/auth/views.py:265 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -82,41 +94,61 @@ msgstr "" msgid "Tags" msgstr "" -#: mediagoblin/edit/forms.py:31 -msgid "Slug" -msgstr "" - -#: mediagoblin/edit/forms.py:32 -msgid "The slug can't be empty" +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 +msgid "Seperate tags by commas or spaces." msgstr "" #: mediagoblin/edit/forms.py:33 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:34 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:35 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" -#: mediagoblin/edit/forms.py:40 +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "" -#: mediagoblin/edit/forms.py:43 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "" -#: mediagoblin/edit/views.py:64 +#: mediagoblin/edit/forms.py:49 +msgid "Old password" +msgstr "" + +#: mediagoblin/edit/forms.py:52 +msgid "New Password" +msgstr "" + +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "" -#: mediagoblin/edit/views.py:85 +#: mediagoblin/edit/views.py:86 msgid "You are editing another user's media. Proceed with caution." msgstr "" -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:156 msgid "You are editing a user's profile. Proceed with caution." msgstr "" -#: mediagoblin/process_media/errors.py:44 -msgid "Invalid file given for media type." +#: mediagoblin/edit/views.py:171 +msgid "Wrong password" +msgstr "" + +#: mediagoblin/edit/views.py:192 +msgid "Profile edited!" +msgstr "" + +#: mediagoblin/media_types/__init__.py:61 +msgid "Could not find any file extension in \"{filename}\"" msgstr "" #: mediagoblin/submit/forms.py:25 @@ -127,16 +159,16 @@ msgstr "" msgid "Description of this work" msgstr "" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:49 msgid "You must provide a file." msgstr "" -#: mediagoblin/submit/views.py:49 -msgid "The file doesn't seem to be an image!" +#: mediagoblin/submit/views.py:127 +msgid "Woohoo! Submitted!" msgstr "" -#: mediagoblin/submit/views.py:121 -msgid "Woohoo! Submitted!" +#: mediagoblin/submit/views.py:133 +msgid "Invalid file type." msgstr "" #: mediagoblin/templates/mediagoblin/404.html:21 @@ -157,29 +189,29 @@ msgstr "" msgid "Image of 404 goblin stressing out" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:22 -msgid "GNU MediaGoblin" -msgstr "" - -#: mediagoblin/templates/mediagoblin/base.html:47 +#: mediagoblin/templates/mediagoblin/base.html:49 msgid "MediaGoblin logo" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:52 +#: mediagoblin/templates/mediagoblin/base.html:54 msgid "Submit media" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:63 -msgid "verify your email!" +#: mediagoblin/templates/mediagoblin/base.html:65 +msgid "Verify your email!" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "log out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 -#: mediagoblin/templates/mediagoblin/auth/login.html:35 +#: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:89 +#: mediagoblin/templates/mediagoblin/base.html:91 msgid "" "Powered by MediaGoblin, a GNU project" @@ -190,57 +222,32 @@ msgid "Explore" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:27 -msgid "Hi there, media lover! MediaGoblin is..." +msgid "Hi there, welcome to this MediaGoblin site!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:28 +msgid "Your finest source for all goblin-related media." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 -msgid "The perfect place for your media!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:30 msgid "" -"A place for people to collaborate and show off original and derived " -"creations!" +"To add your own media, place comments, save your favourites and more, you " +"can log in with your MediaGoblin account." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 -msgid "" -"Free, as in freedom. (We’re a GNU project, " -"after all.)" +msgid "Don't have one yet? It's easy!" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:32 -msgid "" -"Aiming to make the world a better place through decentralization and " -"(eventually, coming soon!) federation!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:33 -msgid "" -"Built for extensibility. (Multiple media types coming soon to the software," -" including video support!)" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:34 -msgid "" -"Powered by people like you. (You can help us improve this" -" software!)" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:38 -msgid "Excited to join us?" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"Create a free account\n" +"Create an account at this site\n" " or\n" -" Set up MediaGoblin on your own server" +" Set up MediaGoblin on your own server" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:53 +#: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" msgstr "" @@ -248,8 +255,12 @@ msgstr "" msgid "Enter your new password" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 -msgid "Enter your username or email" +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Recover password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 +msgid "Send instructions" msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 @@ -279,22 +290,18 @@ msgstr "" msgid "Logging in failed!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:43 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Don't have an account yet?" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:46 +#: mediagoblin/templates/mediagoblin/auth/login.html:36 msgid "Create one here!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:49 +#: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Forgot your password?" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:52 -msgid "Change it!" -msgstr "" - #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "" @@ -334,8 +341,14 @@ msgstr "" msgid "Editing %(username)s's profile" msgstr "" -#: mediagoblin/templates/mediagoblin/listings/tag.html:31 -msgid "Media tagged with:" +#: mediagoblin/templates/mediagoblin/listings/tag.html:30 +#: mediagoblin/templates/mediagoblin/listings/tag.html:35 +#, python-format +msgid "Media tagged with: %(tag_name)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +msgid "Original" msgstr "" #: mediagoblin/templates/mediagoblin/submit/start.html:26 @@ -346,14 +359,14 @@ msgstr "" msgid "Submit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format -msgid "%(username)s's media" +msgid "%(username)s's media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 -msgid "Sorry, no such user found." +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 +#, python-format +msgid "%(username)s's media" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 @@ -386,75 +399,80 @@ msgstr "" msgid "These uploads failed to process:" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:31 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:89 +#, python-format +msgid "%(username)s's profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:43 +msgid "Sorry, no such user found." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:50 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:70 msgid "Email verification needed" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:53 msgid "Almost done! Your account still needs to be activated." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "In case it doesn't:" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:65 msgid "Resend verification email" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:73 msgid "" "Someone has registered an account with this username, but it still has to be" " activated." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:79 #, python-format msgid "" "If you are that person but you've lost your verification email, you can log in and resend it." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 -#, python-format -msgid "%(username)s's profile" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "Here's a spot to tell others about yourself." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 msgid "Edit profile" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 msgid "This user hasn't filled in their profile (yet)." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 #, python-format msgid "View all of %(username)s's media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 msgid "Add media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 msgid "There doesn't seem to be any media here yet..." msgstr "" @@ -474,6 +492,14 @@ msgstr "" msgid "Older" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/tags.html:20 +msgid "Tagged with" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/tags.html:25 +msgid "and" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "" @@ -482,15 +508,23 @@ msgstr "" msgid "I am sure I want to delete this" msgstr "" -#: mediagoblin/user_pages/views.py:142 +#: mediagoblin/user_pages/views.py:155 msgid "Empty comments are not allowed." msgstr "" -#: mediagoblin/user_pages/views.py:148 +#: mediagoblin/user_pages/views.py:161 msgid "Comment posted!" msgstr "" -#: mediagoblin/user_pages/views.py:181 +#: mediagoblin/user_pages/views.py:183 +msgid "You deleted the media." +msgstr "" + +#: mediagoblin/user_pages/views.py:190 +msgid "The media was not deleted because you didn't check that you were sure." +msgstr "" + +#: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po index 3ee44b18..37bd36c1 100644 --- a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-01 23:14-0500\n" -"PO-Revision-Date: 2011-11-02 04:13+0000\n" +"POT-Creation-Date: 2011-11-27 15:25-0600\n" +"PO-Revision-Date: 2011-11-27 21:28+0000\n" "Last-Translator: cwebber \n" "Language-Team: Swedish (http://www.transifex.net/projects/p/mediagoblin/team/sv/)\n" "MIME-Version: 1.0\n" @@ -20,6 +20,10 @@ msgstr "" "Language: sv\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" +#: mediagoblin/processing.py:143 +msgid "Invalid file given for media type." +msgstr "Ogiltig fil för mediatypen." + #: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "Användarnamn" @@ -53,8 +57,8 @@ msgid "Sorry, a user with that name already exists." msgstr "En användare med det användarnamnet finns redan." #: mediagoblin/auth/views.py:77 -msgid "Sorry, that email address has already been taken." -msgstr "Den e-postadressen är redan tagen." +msgid "Sorry, a user with that email address already exists." +msgstr "" #: mediagoblin/auth/views.py:179 msgid "" @@ -68,11 +72,19 @@ msgstr "" msgid "The verification key or user id is incorrect" msgstr "Verifieringsnyckeln eller användar-IDt är fel." -#: mediagoblin/auth/views.py:207 +#: mediagoblin/auth/views.py:203 +msgid "You must be logged in so we know who to send the email to!" +msgstr "" + +#: mediagoblin/auth/views.py:211 +msgid "You've already verified your email address!" +msgstr "" + +#: mediagoblin/auth/views.py:224 msgid "Resent your verification email." msgstr "Skickade ett nytt verifierings-email." -#: mediagoblin/auth/views.py:248 +#: mediagoblin/auth/views.py:265 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -88,42 +100,62 @@ msgstr "Titel" msgid "Tags" msgstr "Taggar" -#: mediagoblin/edit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 +msgid "Seperate tags by commas or spaces." +msgstr "" + +#: mediagoblin/edit/forms.py:33 msgid "Slug" msgstr "Sökvägsnamn" -#: mediagoblin/edit/forms.py:32 +#: mediagoblin/edit/forms.py:34 msgid "The slug can't be empty" msgstr "Sökvägsnamnet kan inte vara tomt" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:35 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "Sökvägstitlen för din media. Du brukar inte behöva ändra denna." -#: mediagoblin/edit/forms.py:40 +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "Presentation" -#: mediagoblin/edit/forms.py:43 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "Hemsida" -#: mediagoblin/edit/views.py:64 +#: mediagoblin/edit/forms.py:49 +msgid "Old password" +msgstr "" + +#: mediagoblin/edit/forms.py:52 +msgid "New Password" +msgstr "" + +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "Ett inlägg med det sökvägsnamnet existerar redan." -#: mediagoblin/edit/views.py:85 +#: mediagoblin/edit/views.py:86 msgid "You are editing another user's media. Proceed with caution." msgstr "Var försiktig, du redigerar någon annans inlägg." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:156 msgid "You are editing a user's profile. Proceed with caution." msgstr "Var försiktig, du redigerar en annan användares profil." -#: mediagoblin/process_media/errors.py:44 -msgid "Invalid file given for media type." -msgstr "Ogiltig fil för mediatypen." +#: mediagoblin/edit/views.py:171 +msgid "Wrong password" +msgstr "" + +#: mediagoblin/edit/views.py:192 +msgid "Profile edited!" +msgstr "" + +#: mediagoblin/media_types/__init__.py:61 +msgid "Could not find any file extension in \"{filename}\"" +msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" @@ -133,18 +165,18 @@ msgstr "Fil" msgid "Description of this work" msgstr "Beskrivning av verket" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:49 msgid "You must provide a file." msgstr "Du måste ange en fil" -#: mediagoblin/submit/views.py:49 -msgid "The file doesn't seem to be an image!" -msgstr "Filen verkar inte vara en giltig bildfil!" - -#: mediagoblin/submit/views.py:121 +#: mediagoblin/submit/views.py:127 msgid "Woohoo! Submitted!" msgstr "Tjohoo! Upladdat!" +#: mediagoblin/submit/views.py:133 +msgid "Invalid file type." +msgstr "" + #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" msgstr "Ojoj!" @@ -165,29 +197,29 @@ msgstr "" msgid "Image of 404 goblin stressing out" msgstr "Bild av stressat 404-troll." -#: mediagoblin/templates/mediagoblin/base.html:22 -msgid "GNU MediaGoblin" -msgstr "GNU MediaGoblin" - -#: mediagoblin/templates/mediagoblin/base.html:47 +#: mediagoblin/templates/mediagoblin/base.html:49 msgid "MediaGoblin logo" msgstr "MediaGoblin-logotyp" -#: mediagoblin/templates/mediagoblin/base.html:52 +#: mediagoblin/templates/mediagoblin/base.html:54 msgid "Submit media" msgstr "Ladda upp" -#: mediagoblin/templates/mediagoblin/base.html:63 -msgid "verify your email!" -msgstr "Verifiera din e-postadress!" +#: mediagoblin/templates/mediagoblin/base.html:65 +msgid "Verify your email!" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "log out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 -#: mediagoblin/templates/mediagoblin/auth/login.html:35 +#: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Logga in" -#: mediagoblin/templates/mediagoblin/base.html:89 +#: mediagoblin/templates/mediagoblin/base.html:91 msgid "" "Powered by MediaGoblin, a GNU project" @@ -200,75 +232,32 @@ msgid "Explore" msgstr "Utforska" #: mediagoblin/templates/mediagoblin/root.html:27 -msgid "Hi there, media lover! MediaGoblin is..." -msgstr "Hej där mediaentusiast, MediaGoblin..." +msgid "Hi there, welcome to this MediaGoblin site!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:28 +msgid "Your finest source for all goblin-related media." +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 -msgid "The perfect place for your media!" -msgstr "Är ett perfekt ställe för din media!" - -#: mediagoblin/templates/mediagoblin/root.html:30 msgid "" -"A place for people to collaborate and show off original and derived " -"creations!" +"To add your own media, place comments, save your favourites and more, you " +"can log in with your MediaGoblin account." msgstr "" -"Är ett ställe för människor att samarbeta och visa upp originella och " -"härrörande verk." #: mediagoblin/templates/mediagoblin/root.html:31 -msgid "" -"Free, as in freedom. (We’re a GNU project, " -"after all.)" +msgid "Don't have one yet? It's easy!" msgstr "" -"Är fritt som i frihet. (Vi är ju ett GNU-projekt.)" #: mediagoblin/templates/mediagoblin/root.html:32 -msgid "" -"Aiming to make the world a better place through decentralization and " -"(eventually, coming soon!) federation!" -msgstr "" -"Arbetar för att göra världen till ett bättre ställe genom decentralisering " -"och (så småningom, kommer snart!) -- Google Translate säger " -"\"sammanslutning\", en: federation" -" " - -#: mediagoblin/templates/mediagoblin/root.html:33 -msgid "" -"Built for extensibility. (Multiple media types coming soon to the software," -" including video support!)" -msgstr "" -"Byggd för utbyggbarhet. (Flera mediatyper kommer snart till MediaGoblin, " -"bland annat video!)" - -#: mediagoblin/templates/mediagoblin/root.html:34 -msgid "" -"Powered by people like you. (You can help us improve this" -" software!)" -msgstr "" -"Drivs av människor som du. (Du kan hjälpa os forbättra " -"MediaGoblin!)" - -#: mediagoblin/templates/mediagoblin/root.html:38 -msgid "Excited to join us?" -msgstr "Nyfiken att gå med oss?" - -#: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"Create a free account\n" +"Create an account at this site\n" " or\n" -" Set up MediaGoblin on your own server" +" Set up MediaGoblin on your own server" msgstr "" -"Skapa ett konto gratis\n" -"\n" -" or\n" -" Installera MediaGoblin på din egen server" -#: mediagoblin/templates/mediagoblin/root.html:53 +#: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" msgstr "Senast medier" @@ -276,9 +265,13 @@ msgstr "Senast medier" msgid "Enter your new password" msgstr "Fyll i ditt lösenord" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 -msgid "Enter your username or email" -msgstr "Fyll i ditt användarnamn eller lösenord" +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Recover password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 +msgid "Send instructions" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." @@ -317,22 +310,18 @@ msgstr "" msgid "Logging in failed!" msgstr "Inloggning misslyckades!" -#: mediagoblin/templates/mediagoblin/auth/login.html:43 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Don't have an account yet?" msgstr "Har du inget konto än?" -#: mediagoblin/templates/mediagoblin/auth/login.html:46 +#: mediagoblin/templates/mediagoblin/auth/login.html:36 msgid "Create one here!" msgstr "Skapa ett här!" -#: mediagoblin/templates/mediagoblin/auth/login.html:49 +#: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Forgot your password?" msgstr "Glömt ditt lösenord?" -#: mediagoblin/templates/mediagoblin/auth/login.html:52 -msgid "Change it!" -msgstr "Ändra!" - #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "Skapa ett konto!" @@ -377,9 +366,15 @@ msgstr "Spara ändringar" msgid "Editing %(username)s's profile" msgstr "Redigerar %(username)ss profil" -#: mediagoblin/templates/mediagoblin/listings/tag.html:31 -msgid "Media tagged with:" -msgstr "Media taggat med:" +#: mediagoblin/templates/mediagoblin/listings/tag.html:30 +#: mediagoblin/templates/mediagoblin/listings/tag.html:35 +#, python-format +msgid "Media tagged with: %(tag_name)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +msgid "Original" +msgstr "" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" @@ -389,16 +384,16 @@ msgstr "Ladda upp" msgid "Submit" msgstr "Skicka" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" msgstr "%(username)ss media" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 -msgid "Sorry, no such user found." -msgstr "Ledsen, hittar ingen sådan användare." - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -429,30 +424,40 @@ msgstr "Ingen media under behandling" msgid "These uploads failed to process:" msgstr "De här behandlingarna misslyckades:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:31 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:89 +#, python-format +msgid "%(username)s's profile" +msgstr "%(username)ss profil" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:43 +msgid "Sorry, no such user found." +msgstr "Ledsen, hittar ingen sådan användare." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:50 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:70 msgid "Email verification needed" msgstr "E-postadressverifiering krävs." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:53 msgid "Almost done! Your account still needs to be activated." msgstr "Nästan klar! Ditt konto behöver bara aktiveras." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "" "Ett e-postmeddelande med instruktioner kommer att hamna hos dig inom kort." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "In case it doesn't:" msgstr "Om det inte skulle göra det:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:65 msgid "Resend verification email" msgstr "Skicka ett nytt e-postmeddelande" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:73 msgid "" "Someone has registered an account with this username, but it still has to be" " activated." @@ -460,7 +465,7 @@ msgstr "" "Någon har redan registrerat ett konto med det här användarnamnet men det har" " inte aktiverats." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:79 #, python-format msgid "" "If you are that person but you've lost your verification email, you can logga in och begära ett nytt." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 -#, python-format -msgid "%(username)s's profile" -msgstr "%(username)ss profil" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "Here's a spot to tell others about yourself." msgstr "Här kan du berätta för andra om dig själv." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 msgid "Edit profile" msgstr "Redigera profil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 msgid "This user hasn't filled in their profile (yet)." msgstr "Den här användaren har inte fyllt i sin profilsida ännu." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 #, python-format msgid "View all of %(username)s's media" msgstr "Se all media från %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." @@ -501,11 +501,11 @@ msgstr "" "Här kommer din media att dyka upp, du verkar inte ha lagt till någonting " "ännu." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 msgid "Add media" msgstr "Lägg till media" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 msgid "There doesn't seem to be any media here yet..." msgstr "Det verkar inte finnas någon media här ännu." @@ -525,6 +525,14 @@ msgstr "Nyare" msgid "Older" msgstr "Äldre" +#: mediagoblin/templates/mediagoblin/utils/tags.html:20 +msgid "Tagged with" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/tags.html:25 +msgid "and" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "Kommentar" @@ -533,15 +541,23 @@ msgstr "Kommentar" msgid "I am sure I want to delete this" msgstr "Jag är säker på att jag vill radera detta" -#: mediagoblin/user_pages/views.py:142 +#: mediagoblin/user_pages/views.py:155 msgid "Empty comments are not allowed." msgstr "" -#: mediagoblin/user_pages/views.py:148 +#: mediagoblin/user_pages/views.py:161 msgid "Comment posted!" msgstr "" -#: mediagoblin/user_pages/views.py:181 +#: mediagoblin/user_pages/views.py:183 +msgid "You deleted the media." +msgstr "" + +#: mediagoblin/user_pages/views.py:190 +msgid "The media was not deleted because you didn't check that you were sure." +msgstr "" + +#: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." msgstr "Du tänker radera en annan användares media. Var försiktig." diff --git a/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.po index 289bddb5..064fa7d1 100644 --- a/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-01 23:14-0500\n" -"PO-Revision-Date: 2011-11-03 14:08+0000\n" -"Last-Translator: veeven \n" +"POT-Creation-Date: 2011-11-27 15:25-0600\n" +"PO-Revision-Date: 2011-11-27 21:28+0000\n" +"Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,6 +19,10 @@ msgstr "" "Language: te\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" +#: mediagoblin/processing.py:143 +msgid "Invalid file given for media type." +msgstr "" + #: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "వాడుకరి పేరు" @@ -52,7 +56,7 @@ msgid "Sorry, a user with that name already exists." msgstr "" #: mediagoblin/auth/views.py:77 -msgid "Sorry, that email address has already been taken." +msgid "Sorry, a user with that email address already exists." msgstr "" #: mediagoblin/auth/views.py:179 @@ -65,11 +69,19 @@ msgstr "" msgid "The verification key or user id is incorrect" msgstr "" -#: mediagoblin/auth/views.py:207 +#: mediagoblin/auth/views.py:203 +msgid "You must be logged in so we know who to send the email to!" +msgstr "" + +#: mediagoblin/auth/views.py:211 +msgid "You've already verified your email address!" +msgstr "" + +#: mediagoblin/auth/views.py:224 msgid "Resent your verification email." msgstr "" -#: mediagoblin/auth/views.py:248 +#: mediagoblin/auth/views.py:265 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -83,41 +95,61 @@ msgstr "శీర్షిక" msgid "Tags" msgstr "" -#: mediagoblin/edit/forms.py:31 -msgid "Slug" -msgstr "" - -#: mediagoblin/edit/forms.py:32 -msgid "The slug can't be empty" +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 +msgid "Seperate tags by commas or spaces." msgstr "" #: mediagoblin/edit/forms.py:33 +msgid "Slug" +msgstr "" + +#: mediagoblin/edit/forms.py:34 +msgid "The slug can't be empty" +msgstr "" + +#: mediagoblin/edit/forms.py:35 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" -#: mediagoblin/edit/forms.py:40 +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "" -#: mediagoblin/edit/forms.py:43 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "" -#: mediagoblin/edit/views.py:64 +#: mediagoblin/edit/forms.py:49 +msgid "Old password" +msgstr "" + +#: mediagoblin/edit/forms.py:52 +msgid "New Password" +msgstr "" + +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "" -#: mediagoblin/edit/views.py:85 +#: mediagoblin/edit/views.py:86 msgid "You are editing another user's media. Proceed with caution." msgstr "" -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:156 msgid "You are editing a user's profile. Proceed with caution." msgstr "" -#: mediagoblin/process_media/errors.py:44 -msgid "Invalid file given for media type." +#: mediagoblin/edit/views.py:171 +msgid "Wrong password" +msgstr "" + +#: mediagoblin/edit/views.py:192 +msgid "Profile edited!" +msgstr "" + +#: mediagoblin/media_types/__init__.py:61 +msgid "Could not find any file extension in \"{filename}\"" msgstr "" #: mediagoblin/submit/forms.py:25 @@ -128,16 +160,16 @@ msgstr "" msgid "Description of this work" msgstr "" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:49 msgid "You must provide a file." msgstr "" -#: mediagoblin/submit/views.py:49 -msgid "The file doesn't seem to be an image!" +#: mediagoblin/submit/views.py:127 +msgid "Woohoo! Submitted!" msgstr "" -#: mediagoblin/submit/views.py:121 -msgid "Woohoo! Submitted!" +#: mediagoblin/submit/views.py:133 +msgid "Invalid file type." msgstr "" #: mediagoblin/templates/mediagoblin/404.html:21 @@ -158,29 +190,29 @@ msgstr "" msgid "Image of 404 goblin stressing out" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:22 -msgid "GNU MediaGoblin" -msgstr "" - -#: mediagoblin/templates/mediagoblin/base.html:47 +#: mediagoblin/templates/mediagoblin/base.html:49 msgid "MediaGoblin logo" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:52 +#: mediagoblin/templates/mediagoblin/base.html:54 msgid "Submit media" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:63 -msgid "verify your email!" +#: mediagoblin/templates/mediagoblin/base.html:65 +msgid "Verify your email!" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "log out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 -#: mediagoblin/templates/mediagoblin/auth/login.html:35 +#: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:89 +#: mediagoblin/templates/mediagoblin/base.html:91 msgid "" "Powered by MediaGoblin, a GNU project" @@ -191,57 +223,32 @@ msgid "Explore" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:27 -msgid "Hi there, media lover! MediaGoblin is..." +msgid "Hi there, welcome to this MediaGoblin site!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:28 +msgid "Your finest source for all goblin-related media." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 -msgid "The perfect place for your media!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:30 msgid "" -"A place for people to collaborate and show off original and derived " -"creations!" +"To add your own media, place comments, save your favourites and more, you " +"can log in with your MediaGoblin account." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 -msgid "" -"Free, as in freedom. (We’re a GNU project, " -"after all.)" +msgid "Don't have one yet? It's easy!" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:32 -msgid "" -"Aiming to make the world a better place through decentralization and " -"(eventually, coming soon!) federation!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:33 -msgid "" -"Built for extensibility. (Multiple media types coming soon to the software," -" including video support!)" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:34 -msgid "" -"Powered by people like you. (You can help us improve this" -" software!)" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:38 -msgid "Excited to join us?" -msgstr "" - -#: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"Create a free account\n" +"Create an account at this site\n" " or\n" -" Set up MediaGoblin on your own server" +" Set up MediaGoblin on your own server" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:53 +#: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" msgstr "" @@ -249,8 +256,12 @@ msgstr "" msgid "Enter your new password" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 -msgid "Enter your username or email" +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Recover password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 +msgid "Send instructions" msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 @@ -280,22 +291,18 @@ msgstr "" msgid "Logging in failed!" msgstr "ప్రవేశం విఫలమయ్యింది!" -#: mediagoblin/templates/mediagoblin/auth/login.html:43 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Don't have an account yet?" msgstr "మీకు ఇంకా ఖాతా లేదా?" -#: mediagoblin/templates/mediagoblin/auth/login.html:46 +#: mediagoblin/templates/mediagoblin/auth/login.html:36 msgid "Create one here!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/login.html:49 +#: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Forgot your password?" msgstr "మీ సంకేతపదాన్ని మర్చిపోయారా?" -#: mediagoblin/templates/mediagoblin/auth/login.html:52 -msgid "Change it!" -msgstr "" - #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "" @@ -335,8 +342,14 @@ msgstr "మార్పులను భద్రపరచు" msgid "Editing %(username)s's profile" msgstr "" -#: mediagoblin/templates/mediagoblin/listings/tag.html:31 -msgid "Media tagged with:" +#: mediagoblin/templates/mediagoblin/listings/tag.html:30 +#: mediagoblin/templates/mediagoblin/listings/tag.html:35 +#, python-format +msgid "Media tagged with: %(tag_name)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +msgid "Original" msgstr "" #: mediagoblin/templates/mediagoblin/submit/start.html:26 @@ -347,14 +360,14 @@ msgstr "" msgid "Submit" msgstr "దాఖలు చెయ్యి" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format -msgid "%(username)s's media" +msgid "%(username)s's media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 -msgid "Sorry, no such user found." +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 +#, python-format +msgid "%(username)s's media" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 @@ -387,75 +400,80 @@ msgstr "" msgid "These uploads failed to process:" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:31 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:89 +#, python-format +msgid "%(username)s's profile" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:43 +msgid "Sorry, no such user found." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:50 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:70 msgid "Email verification needed" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:53 msgid "Almost done! Your account still needs to be activated." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "In case it doesn't:" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:65 msgid "Resend verification email" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:73 msgid "" "Someone has registered an account with this username, but it still has to be" " activated." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:79 #, python-format msgid "" "If you are that person but you've lost your verification email, you can log in and resend it." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 -#, python-format -msgid "%(username)s's profile" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "Here's a spot to tell others about yourself." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 msgid "Edit profile" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 msgid "This user hasn't filled in their profile (yet)." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 #, python-format msgid "View all of %(username)s's media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 msgid "Add media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 msgid "There doesn't seem to be any media here yet..." msgstr "" @@ -475,6 +493,14 @@ msgstr "" msgid "Older" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/tags.html:20 +msgid "Tagged with" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/tags.html:25 +msgid "and" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "వ్యాఖ్య" @@ -483,15 +509,23 @@ msgstr "వ్యాఖ్య" msgid "I am sure I want to delete this" msgstr "" -#: mediagoblin/user_pages/views.py:142 +#: mediagoblin/user_pages/views.py:155 msgid "Empty comments are not allowed." msgstr "" -#: mediagoblin/user_pages/views.py:148 +#: mediagoblin/user_pages/views.py:161 msgid "Comment posted!" msgstr "" -#: mediagoblin/user_pages/views.py:181 +#: mediagoblin/user_pages/views.py:183 +msgid "You deleted the media." +msgstr "" + +#: mediagoblin/user_pages/views.py:190 +msgid "The media was not deleted because you didn't check that you were sure." +msgstr "" + +#: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" diff --git a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po index c664adbe..5e406b41 100644 --- a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-01 23:14-0500\n" -"PO-Revision-Date: 2011-11-02 04:13+0000\n" +"POT-Creation-Date: 2011-11-27 15:25-0600\n" +"PO-Revision-Date: 2011-11-27 21:28+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -20,6 +20,10 @@ msgstr "" "Language: zh_TW\n" "Plural-Forms: nplurals=1; plural=0\n" +#: mediagoblin/processing.py:143 +msgid "Invalid file given for media type." +msgstr "指定錯誤的媒體類別!" + #: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" msgstr "使用者名稱" @@ -53,8 +57,8 @@ msgid "Sorry, a user with that name already exists." msgstr "抱歉, 這個使用者名稱已經存在." #: mediagoblin/auth/views.py:77 -msgid "Sorry, that email address has already been taken." -msgstr "抱歉,這個電子郵件已經被其他人使用了。" +msgid "Sorry, a user with that email address already exists." +msgstr "" #: mediagoblin/auth/views.py:179 msgid "" @@ -66,11 +70,19 @@ msgstr "你的電子郵件位址已被認證. 你現在就可以登入, 編輯 msgid "The verification key or user id is incorrect" msgstr "認證碼或是使用者帳號錯誤" -#: mediagoblin/auth/views.py:207 +#: mediagoblin/auth/views.py:203 +msgid "You must be logged in so we know who to send the email to!" +msgstr "" + +#: mediagoblin/auth/views.py:211 +msgid "You've already verified your email address!" +msgstr "" + +#: mediagoblin/auth/views.py:224 msgid "Resent your verification email." msgstr "重送認證信." -#: mediagoblin/auth/views.py:248 +#: mediagoblin/auth/views.py:265 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -84,42 +96,62 @@ msgstr "標題" msgid "Tags" msgstr "標籤" -#: mediagoblin/edit/forms.py:31 +#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 +msgid "Seperate tags by commas or spaces." +msgstr "" + +#: mediagoblin/edit/forms.py:33 msgid "Slug" msgstr "自訂字串" -#: mediagoblin/edit/forms.py:32 +#: mediagoblin/edit/forms.py:34 msgid "The slug can't be empty" msgstr "自訂字串不能空白" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:35 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "此媒體網址的名稱。你通常不需要變動這個的。" -#: mediagoblin/edit/forms.py:40 +#: mediagoblin/edit/forms.py:42 msgid "Bio" msgstr "自我介紹" -#: mediagoblin/edit/forms.py:43 +#: mediagoblin/edit/forms.py:45 msgid "Website" msgstr "網站" -#: mediagoblin/edit/views.py:64 +#: mediagoblin/edit/forms.py:49 +msgid "Old password" +msgstr "" + +#: mediagoblin/edit/forms.py:52 +msgid "New Password" +msgstr "" + +#: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." msgstr "這個自訂字串已經被其他人用了" -#: mediagoblin/edit/views.py:85 +#: mediagoblin/edit/views.py:86 msgid "You are editing another user's media. Proceed with caution." msgstr "你正在編輯他人的媒體檔案. 請謹慎處理." -#: mediagoblin/edit/views.py:155 +#: mediagoblin/edit/views.py:156 msgid "You are editing a user's profile. Proceed with caution." msgstr "你正在編輯一位用戶的檔案. 請謹慎處理." -#: mediagoblin/process_media/errors.py:44 -msgid "Invalid file given for media type." -msgstr "指定錯誤的媒體類別!" +#: mediagoblin/edit/views.py:171 +msgid "Wrong password" +msgstr "" + +#: mediagoblin/edit/views.py:192 +msgid "Profile edited!" +msgstr "" + +#: mediagoblin/media_types/__init__.py:61 +msgid "Could not find any file extension in \"{filename}\"" +msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" @@ -129,18 +161,18 @@ msgstr "檔案" msgid "Description of this work" msgstr "這個作品的描述" -#: mediagoblin/submit/views.py:46 +#: mediagoblin/submit/views.py:49 msgid "You must provide a file." msgstr "你必須提供一個檔案" -#: mediagoblin/submit/views.py:49 -msgid "The file doesn't seem to be an image!" -msgstr "檔案似乎不是一個圖片喔!" - -#: mediagoblin/submit/views.py:121 +#: mediagoblin/submit/views.py:127 msgid "Woohoo! Submitted!" msgstr "呼呼! 送出去嚕!" +#: mediagoblin/submit/views.py:133 +msgid "Invalid file type." +msgstr "" + #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" msgstr "糟糕!" @@ -159,29 +191,29 @@ msgstr "如果你確定這個位址是正確的,或許你在找的網頁已經 msgid "Image of 404 goblin stressing out" msgstr "Image of 404 goblin stressing out" -#: mediagoblin/templates/mediagoblin/base.html:22 -msgid "GNU MediaGoblin" -msgstr "GNU MediaGoblin" - -#: mediagoblin/templates/mediagoblin/base.html:47 +#: mediagoblin/templates/mediagoblin/base.html:49 msgid "MediaGoblin logo" msgstr "MediaGoblin 標誌" -#: mediagoblin/templates/mediagoblin/base.html:52 +#: mediagoblin/templates/mediagoblin/base.html:54 msgid "Submit media" msgstr "遞交媒體" -#: mediagoblin/templates/mediagoblin/base.html:63 -msgid "verify your email!" -msgstr "確認您的電子郵件!" +#: mediagoblin/templates/mediagoblin/base.html:65 +msgid "Verify your email!" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:73 +#: mediagoblin/templates/mediagoblin/base.html:72 +msgid "log out" +msgstr "" + +#: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 -#: mediagoblin/templates/mediagoblin/auth/login.html:35 +#: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "登入" -#: mediagoblin/templates/mediagoblin/base.html:89 +#: mediagoblin/templates/mediagoblin/base.html:91 msgid "" "Powered by MediaGoblin, a GNU project" @@ -194,62 +226,32 @@ msgid "Explore" msgstr "探索" #: mediagoblin/templates/mediagoblin/root.html:27 -msgid "Hi there, media lover! MediaGoblin is..." -msgstr "嗨!多媒體檔案愛好者!MediaGoblin是..." +msgid "Hi there, welcome to this MediaGoblin site!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/root.html:28 +msgid "Your finest source for all goblin-related media." +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 -msgid "The perfect place for your media!" -msgstr "你的媒體檔案的最佳所在!" - -#: mediagoblin/templates/mediagoblin/root.html:30 msgid "" -"A place for people to collaborate and show off original and derived " -"creations!" -msgstr "這是一個可以讓人們共同展示他們的創作、衍生作品的地方!" +"To add your own media, place comments, save your favourites and more, you " +"can log in with your MediaGoblin account." +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 -msgid "" -"Free, as in freedom. (We’re a GNU project, " -"after all.)" -msgstr "免費但是我們更重視自由 (畢竟我們是個 GNU 專案)" +msgid "Don't have one yet? It's easy!" +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:32 -msgid "" -"Aiming to make the world a better place through decentralization and " -"(eventually, coming soon!) federation!" -msgstr "目的是要透過分散式且自由的方式讓這個世界更美好!(總有一天,它很快會到來的!)" - -#: mediagoblin/templates/mediagoblin/root.html:33 -msgid "" -"Built for extensibility. (Multiple media types coming soon to the software," -" including video support!)" -msgstr "天生的擴充性。(軟體將支援多種多媒體格式, 也支援影音檔案!)" - -#: mediagoblin/templates/mediagoblin/root.html:34 -msgid "" -"Powered by people like you. (You can help us improve this" -" software!)" -msgstr "" -"由像你一樣的人們製作 (你可以幫我們改進軟體!)" - -#: mediagoblin/templates/mediagoblin/root.html:38 -msgid "Excited to join us?" -msgstr "迫不亟待想要加入我們?" - -#: mediagoblin/templates/mediagoblin/root.html:39 #, python-format msgid "" -"Create a free account\n" +"Create an account at this site\n" " or\n" -" Set up MediaGoblin on your own server" +" Set up MediaGoblin on your own server" msgstr "" -"建立一個免費帳號\n" -" 或是\n" -" 在你的伺服器上設立 MediaGoblin" -#: mediagoblin/templates/mediagoblin/root.html:53 +#: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" msgstr "最新的媒體" @@ -257,9 +259,13 @@ msgstr "最新的媒體" msgid "Enter your new password" msgstr "輸入你的新密碼" -#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:29 -msgid "Enter your username or email" -msgstr "輸入你的帳號或是電子郵件" +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 +msgid "Recover password" +msgstr "" + +#: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 +msgid "Send instructions" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." @@ -295,22 +301,18 @@ msgstr "" msgid "Logging in failed!" msgstr "登入失敗!" -#: mediagoblin/templates/mediagoblin/auth/login.html:43 +#: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Don't have an account yet?" msgstr "還沒有帳號嗎?" -#: mediagoblin/templates/mediagoblin/auth/login.html:46 +#: mediagoblin/templates/mediagoblin/auth/login.html:36 msgid "Create one here!" msgstr "在這裡建立一個吧!" -#: mediagoblin/templates/mediagoblin/auth/login.html:49 +#: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Forgot your password?" msgstr "忘了密碼嗎?" -#: mediagoblin/templates/mediagoblin/auth/login.html:52 -msgid "Change it!" -msgstr "變更!" - #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" msgstr "建立一個帳號!" @@ -355,9 +357,15 @@ msgstr "儲存變更" msgid "Editing %(username)s's profile" msgstr "編輯 %(username)s'的檔案中" -#: mediagoblin/templates/mediagoblin/listings/tag.html:31 -msgid "Media tagged with:" -msgstr "媒體檔案被標籤為:" +#: mediagoblin/templates/mediagoblin/listings/tag.html:30 +#: mediagoblin/templates/mediagoblin/listings/tag.html:35 +#, python-format +msgid "Media tagged with: %(tag_name)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +msgid "Original" +msgstr "" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" @@ -367,16 +375,16 @@ msgstr "遞交你的媒體檔案" msgid "Submit" msgstr "送出" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:32 +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 +#, python-format +msgid "%(username)s's media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" msgstr "%(username)s的媒體檔案" -#: mediagoblin/templates/mediagoblin/user_pages/gallery.html:52 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:32 -msgid "Sorry, no such user found." -msgstr "抱歉,找不到這個使用者." - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -407,75 +415,80 @@ msgstr "沒有正在處理中的媒體" msgid "These uploads failed to process:" msgstr "無法處理這些更新" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:39 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:59 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:31 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:89 +#, python-format +msgid "%(username)s's profile" +msgstr "%(username)s的個人檔案" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:43 +msgid "Sorry, no such user found." +msgstr "抱歉,找不到這個使用者." + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:50 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:70 msgid "Email verification needed" msgstr "需要認證電子郵件" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:42 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:53 msgid "Almost done! Your account still needs to be activated." msgstr "幾乎完成了!但你的帳號仍然需要被啟用。" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:47 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "" "An email should arrive in a few moments with instructions on how to do so." msgstr "馬上會有一封電子郵件告訴你如何做." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:51 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "In case it doesn't:" msgstr "假設它無法:" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:54 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:65 msgid "Resend verification email" msgstr "重送認證信" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:62 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:73 msgid "" "Someone has registered an account with this username, but it still has to be" " activated." msgstr "有人用了這個帳號登錄了,但是這個帳號仍需要被啟用。" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:79 #, python-format msgid "" "If you are that person but you've lost your verification email, you can log in and resend it." msgstr "如果你就是那個人, 但是遺失了認證信, 你可以登入 然後重送一次." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:78 -#, python-format -msgid "%(username)s's profile" -msgstr "%(username)s的個人檔案" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:85 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "Here's a spot to tell others about yourself." msgstr "這是一個地方,能讓你向他人介紹自己。" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:90 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:108 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:101 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 msgid "Edit profile" msgstr "編輯個人檔案" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:96 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 msgid "This user hasn't filled in their profile (yet)." msgstr "這個使用者還沒(來得及)填寫個人檔案。" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:122 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 #, python-format msgid "View all of %(username)s's media" msgstr "查看%(username)s的全部媒體檔案" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:135 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "這個地方是你的媒體檔案會出現的地方,但是你似乎還沒有加入任何東西。" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:141 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 msgid "Add media" msgstr "新增媒體檔案" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:147 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 msgid "There doesn't seem to be any media here yet..." msgstr "似乎還沒有任何的媒體檔案..." @@ -495,6 +508,14 @@ msgstr "新一點" msgid "Older" msgstr "舊一點" +#: mediagoblin/templates/mediagoblin/utils/tags.html:20 +msgid "Tagged with" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/tags.html:25 +msgid "and" +msgstr "" + #: mediagoblin/user_pages/forms.py:24 msgid "Comment" msgstr "評論" @@ -503,15 +524,23 @@ msgstr "評論" msgid "I am sure I want to delete this" msgstr "我確定我想要刪除" -#: mediagoblin/user_pages/views.py:142 +#: mediagoblin/user_pages/views.py:155 msgid "Empty comments are not allowed." -msgstr "" +msgstr "評論不能空白。" -#: mediagoblin/user_pages/views.py:148 +#: mediagoblin/user_pages/views.py:161 msgid "Comment posted!" +msgstr "評論已經張貼!" + +#: mediagoblin/user_pages/views.py:183 +msgid "You deleted the media." msgstr "" -#: mediagoblin/user_pages/views.py:181 +#: mediagoblin/user_pages/views.py:190 +msgid "The media was not deleted because you didn't check that you were sure." +msgstr "" + +#: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." msgstr "你在刪除其他人的媒體檔案。請小心處理喔。" From a3663b407997cb8e2d45086641b7eb9f4efd476c Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 28 Nov 2011 09:45:15 +0100 Subject: [PATCH 1220/2731] Mark two strings for translation 1. "Go to page:" in pagination 2. "Submit" in the forget password form --- mediagoblin/templates/mediagoblin/auth/change_fp.html | 2 +- mediagoblin/templates/mediagoblin/utils/pagination.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/auth/change_fp.html b/mediagoblin/templates/mediagoblin/auth/change_fp.html index fa972085..5677949c 100644 --- a/mediagoblin/templates/mediagoblin/auth/change_fp.html +++ b/mediagoblin/templates/mediagoblin/auth/change_fp.html @@ -30,7 +30,7 @@ {{ wtforms_util.render_divs(cp_form) }}
- +
diff --git a/mediagoblin/templates/mediagoblin/utils/pagination.html b/mediagoblin/templates/mediagoblin/utils/pagination.html index 84336103..3c12f93c 100644 --- a/mediagoblin/templates/mediagoblin/utils/pagination.html +++ b/mediagoblin/templates/mediagoblin/utils/pagination.html @@ -47,7 +47,7 @@ Next page {% endif %}
- Go to page: + {% trans %}Go to page:{% endtrans %} {%- for page in pagination.iter_pages() %} {% if page %} {% if page != pagination.page %} From 813be2938ae8036573b04cd6ab7beac06efe8f16 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 1 Dec 2011 15:21:15 -0600 Subject: [PATCH 1221/2731] Don't barf on templates that use the autoescaping extension --- babel.ini | 3 +++ 1 file changed, 3 insertions(+) diff --git a/babel.ini b/babel.ini index a4e3267a..1a8231f5 100644 --- a/babel.ini +++ b/babel.ini @@ -4,9 +4,12 @@ [jinja2: mediagoblin/templates/**.html] # Extract jinja templates (html) encoding = utf-8 +extensions = jinja2.ext.autoescape + [jinja2: mediagoblin/templates/**.txt] # Extract jinja templates (text) encoding = utf-8 +extensions = jinja2.ext.autoescape # # Extraction from JavaScript files # [javascript: mediagoblin/static/js/**.js] From 9754802d4bca036b8fb0b50db948dd2eb8f64bd6 Mon Sep 17 00:00:00 2001 From: Elrond Date: Thu, 1 Dec 2011 23:33:47 +0100 Subject: [PATCH 1222/2731] fixture_add_user: Factoring a unit test tool Some unit tests need a user in the database, especially to act as that user. Some routines did that on their own. So factored this whole thing into a new function and use it around. --- mediagoblin/tests/test_auth.py | 8 ++------ mediagoblin/tests/test_edit.py | 21 ++++----------------- mediagoblin/tests/test_submission.py | 12 +++--------- mediagoblin/tests/tools.py | 17 +++++++++++++++++ 4 files changed, 26 insertions(+), 32 deletions(-) diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py index 153c6e53..acef3d26 100644 --- a/mediagoblin/tests/test_auth.py +++ b/mediagoblin/tests/test_auth.py @@ -20,7 +20,7 @@ import datetime from nose.tools import assert_equal from mediagoblin.auth import lib as auth_lib -from mediagoblin.tests.tools import setup_fresh_app +from mediagoblin.tests.tools import setup_fresh_app, fixture_add_user from mediagoblin import mg_globals from mediagoblin.tools import template, mail @@ -332,11 +332,7 @@ def test_authentication_views(test_app): Test logging in and logging out """ # Make a new user - test_user = mg_globals.database.User() - test_user['username'] = u'chris' - test_user['email'] = u'chris@example.com' - test_user['pw_hash'] = auth_lib.bcrypt_gen_password_hash('toast') - test_user.save() + test_user = fixture_add_user(active_user=False) # Get login # --------- diff --git a/mediagoblin/tests/test_edit.py b/mediagoblin/tests/test_edit.py index 3637b046..c29ddfe9 100644 --- a/mediagoblin/tests/test_edit.py +++ b/mediagoblin/tests/test_edit.py @@ -15,23 +15,16 @@ # along with this program. If not, see . from mediagoblin import mg_globals -from mediagoblin.tests.tools import setup_fresh_app +from mediagoblin.tests.tools import setup_fresh_app, fixture_add_user from mediagoblin.tools import template -from mediagoblin.auth.lib import bcrypt_check_password, \ - bcrypt_gen_password_hash +from mediagoblin.auth.lib import bcrypt_check_password @setup_fresh_app def test_change_password(test_app): """Test changing password correctly and incorrectly""" # set up new user - test_user = mg_globals.database.User() - test_user['username'] = u'chris' - test_user['email'] = u'chris@example.com' - test_user['email_verified'] = True - test_user['status'] = u'active' - test_user['pw_hash'] = bcrypt_gen_password_hash('toast') - test_user.save() + test_user = fixture_add_user() test_app.post( '/auth/login/', { @@ -73,13 +66,7 @@ def test_change_password(test_app): def change_bio_url(test_app): """Test changing bio and URL""" # set up new user - test_user = mg_globals.database.User() - test_user['username'] = u'chris' - test_user['email'] = u'chris@example.com' - test_user['email_verified'] = True - test_user['status'] = u'active' - test_user['pw_hash'] = bcrypt_gen_password_hash('toast') - test_user.save() + test_user = fixture_add_user() # test changing the bio and the URL properly test_app.post( diff --git a/mediagoblin/tests/test_submission.py b/mediagoblin/tests/test_submission.py index eea5747f..7ea6c4bc 100644 --- a/mediagoblin/tests/test_submission.py +++ b/mediagoblin/tests/test_submission.py @@ -19,8 +19,8 @@ import pkg_resources from nose.tools import assert_equal, assert_true, assert_false -from mediagoblin.auth import lib as auth_lib -from mediagoblin.tests.tools import setup_fresh_app, get_test_app +from mediagoblin.tests.tools import setup_fresh_app, get_test_app, \ + fixture_add_user from mediagoblin import mg_globals from mediagoblin.tools import template, common @@ -45,13 +45,7 @@ class TestSubmission: # TODO: Possibly abstract into a decorator like: # @as_authenticated_user('chris') - test_user = mg_globals.database.User() - test_user['username'] = u'chris' - test_user['email'] = u'chris@example.com' - test_user['email_verified'] = True - test_user['status'] = u'active' - test_user['pw_hash'] = auth_lib.bcrypt_gen_password_hash('toast') - test_user.save() + test_user = fixture_add_user() self.test_user = test_user diff --git a/mediagoblin/tests/tools.py b/mediagoblin/tests/tools.py index 01813e96..49a3d33e 100644 --- a/mediagoblin/tests/tools.py +++ b/mediagoblin/tests/tools.py @@ -27,6 +27,7 @@ from mediagoblin.init.config import read_mediagoblin_config from mediagoblin.decorators import _make_safe from mediagoblin.db.open import setup_connection_and_db_from_config from mediagoblin.meddleware import BaseMeddleware +from mediagoblin.auth.lib import bcrypt_gen_password_hash MEDIAGOBLIN_TEST_DB_NAME = u'__mediagoblin_tests__' @@ -200,3 +201,19 @@ def assert_db_meets_expected(db, expected): document = collection.find_one({'_id': expected_document['_id']}) assert document is not None # make sure it exists assert document == expected_document # make sure it matches + + +def fixture_add_user(username = u'chris', password = 'toast', + active_user = True): + test_user = mg_globals.database.User() + test_user.username = username + test_user.email = username + u'@example.com' + if password is not None: + test_user.pw_hash = bcrypt_gen_password_hash(password) + if active_user: + test_user.email_verified = True + test_user.status = u'active' + + test_user.save() + + return test_user From c7e1fee1b8eab3c01266c9a349812db598ca8f07 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 1 Dec 2011 16:58:56 -0600 Subject: [PATCH 1223/2731] Should be 404 for 404s, not 400 :) --- mediagoblin/tools/response.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/tools/response.py b/mediagoblin/tools/response.py index b01d31a2..c905097c 100644 --- a/mediagoblin/tools/response.py +++ b/mediagoblin/tools/response.py @@ -30,7 +30,7 @@ def render_404(request): Render a 404. """ return render_to_response( - request, 'mediagoblin/404.html', {}, status=400) + request, 'mediagoblin/404.html', {}, status=404) def redirect(request, *args, **kwargs): From 93e4622491ff6bed339267cea2a0a98a7af3c8d8 Mon Sep 17 00:00:00 2001 From: Elrond Date: Fri, 2 Dec 2011 00:09:13 +0100 Subject: [PATCH 1224/2731] Expect 404 in unit tests, if we now use 404. Our unit tests for auth were expecting a 400. Well, now we give a 404. So expect that! I'm not completely sure, if the 404 is the right thing here, but that's another topic. --- mediagoblin/tests/test_auth.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py index 153c6e53..ee085761 100644 --- a/mediagoblin/tests/test_auth.py +++ b/mediagoblin/tests/test_auth.py @@ -280,16 +280,16 @@ def test_register_views(test_app): template.clear_test_template_context() response = test_app.get( "/auth/forgot_password/verify/?userid=%s&token=total_bs" % unicode( - new_user._id), status=400) - assert response.status == '400 Bad Request' + new_user._id), status=404) + assert_equal(response.status, '404 Not Found') ## Try using an expired token to change password, shouldn't work template.clear_test_template_context() real_token_expiration = new_user['fp_token_expire'] new_user['fp_token_expire'] = datetime.datetime.now() new_user.save() - response = test_app.get("%s?%s" % (path, get_params), status=400) - assert response.status == '400 Bad Request' + response = test_app.get("%s?%s" % (path, get_params), status=404) + assert_equal(response.status, '404 Not Found') new_user['fp_token_expire'] = real_token_expiration new_user.save() From 92417fc535c32d905957b4f5ef0fd2cfd8d78609 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 2 Dec 2011 21:17:55 +0100 Subject: [PATCH 1225/2731] First push with jQuery library --- extlib/jquery/MIT.txt | 20 ++++++++++++++++++++ extlib/jquery/jquery.js | 4 ++++ mediagoblin/static/js/extlib/jquery.js | 1 + 3 files changed, 25 insertions(+) create mode 100644 extlib/jquery/MIT.txt create mode 100644 extlib/jquery/jquery.js create mode 120000 mediagoblin/static/js/extlib/jquery.js diff --git a/extlib/jquery/MIT.txt b/extlib/jquery/MIT.txt new file mode 100644 index 00000000..5a2aeb47 --- /dev/null +++ b/extlib/jquery/MIT.txt @@ -0,0 +1,20 @@ +Copyright (c) + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/extlib/jquery/jquery.js b/extlib/jquery/jquery.js new file mode 100644 index 00000000..198b3ff0 --- /dev/null +++ b/extlib/jquery/jquery.js @@ -0,0 +1,4 @@ +/*! jQuery v1.7.1 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
"+""+"
",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
t
",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/mediagoblin/static/js/extlib/jquery.js b/mediagoblin/static/js/extlib/jquery.js new file mode 120000 index 00000000..d78f5cc3 --- /dev/null +++ b/mediagoblin/static/js/extlib/jquery.js @@ -0,0 +1 @@ +../../../../extlib/jquery/jquery.js \ No newline at end of file From 1e9d1acc03aa42ff979c8d15162d51441b81ec5d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 2 Dec 2011 16:13:14 -0600 Subject: [PATCH 1226/2731] We should use the variable local_templates instead of user_template_path --- mediagoblin/app.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 7f087ed9..04eb2acc 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -63,7 +63,7 @@ class MediaGoblinApp(object): # Get the template environment self.template_loader = get_jinja_loader( - app_config.get('user_template_path')) + app_config.get('local_templates')) # Set up storage systems self.public_store, self.queue_store = setup_storage() From 0d6e5dddeb38f6af7972485ae186532449719243 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 2 Dec 2011 23:48:40 +0100 Subject: [PATCH 1227/2731] Add show-password checkbox and make it work --- mediagoblin/auth/forms.py | 10 +--------- .../templates/mediagoblin/auth/register.html | 20 +++++++++++++++++++ mediagoblin/templates/mediagoblin/base.html | 3 ++- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/mediagoblin/auth/forms.py b/mediagoblin/auth/forms.py index dcb6766c..4cd3e9d8 100644 --- a/mediagoblin/auth/forms.py +++ b/mediagoblin/auth/forms.py @@ -29,15 +29,7 @@ class RegistrationForm(wtforms.Form): password = wtforms.PasswordField( _('Password'), [wtforms.validators.Required(), - wtforms.validators.Length(min=6, max=30), - wtforms.validators.EqualTo( - 'confirm_password', - _('Passwords must match.'))]) - confirm_password = wtforms.PasswordField( - _('Confirm password'), - [wtforms.validators.Required()], - description=_( - u"Type it again here to make sure there are no spelling mistakes.")) + wtforms.validators.Length(min=6, max=30)]) email = wtforms.TextField( _('Email address'), [wtforms.validators.Required(), diff --git a/mediagoblin/templates/mediagoblin/auth/register.html b/mediagoblin/templates/mediagoblin/auth/register.html index a0d0a277..bded1d7e 100644 --- a/mediagoblin/templates/mediagoblin/auth/register.html +++ b/mediagoblin/templates/mediagoblin/auth/register.html @@ -19,6 +19,26 @@ {% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} +{% block mediagoblin_head %} + +{% endblock mediagoblin_head %} + {% block mediagoblin_content %} + {% block mediagoblin_head %} {% endblock mediagoblin_head %} - {% block mediagoblin_body %}
From eae7d0585fc0348a47087919c04e2372d15d244c Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sat, 3 Dec 2011 01:19:15 +0100 Subject: [PATCH 1228/2731] Changed comment error message wording slightly. Btw, should we translate these things? --- mediagoblin/user_pages/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 3d9735f7..779394c7 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -152,13 +152,13 @@ def media_post_comment(request, media): messages.add_message( request, messages.ERROR, - _("Empty comments are not allowed.")) + _("Oops, your comment was empty.")) else: comment.save() messages.add_message( request, messages.SUCCESS, - _('Comment posted!')) + _('Your comment has been posted!')) return exc.HTTPFound( location=media.url_for_self(request.urlgen)) From d463055317e5518adf7c5a99b4724f4e66830b3c Mon Sep 17 00:00:00 2001 From: Manuel Urbano Santos Date: Sat, 3 Dec 2011 14:29:28 +0100 Subject: [PATCH 1229/2731] Change adduser arguments from positional to --keyword style. --- mediagoblin/gmg_commands/users.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mediagoblin/gmg_commands/users.py b/mediagoblin/gmg_commands/users.py index 4c4b0c1b..a4d85aa4 100644 --- a/mediagoblin/gmg_commands/users.py +++ b/mediagoblin/gmg_commands/users.py @@ -21,14 +21,14 @@ from mediagoblin import mg_globals def adduser_parser_setup(subparser): subparser.add_argument( - 'username', + '--username','-u', help="Username used to login") subparser.add_argument( - 'password', - help="Your supersecret word to login") + '--password','-p', + help="Your supersecret word to login, beware of storing it in bash history") subparser.add_argument( - 'email', - help="Email to recieve notifications") + '--email','-e', + help="Email to receive notifications") def adduser(args): From 7d98005a6b2469134adcf84b7a7417a24968bd8d Mon Sep 17 00:00:00 2001 From: Manuel Urbano Santos Date: Sat, 3 Dec 2011 15:36:02 +0100 Subject: [PATCH 1230/2731] Prompt for arguments in adduser if not present (I created a function in util.py to check and prompt for arguments). --- mediagoblin/gmg_commands/users.py | 5 ++++- mediagoblin/gmg_commands/util.py | 13 +++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/mediagoblin/gmg_commands/users.py b/mediagoblin/gmg_commands/users.py index a4d85aa4..b437e839 100644 --- a/mediagoblin/gmg_commands/users.py +++ b/mediagoblin/gmg_commands/users.py @@ -18,7 +18,6 @@ from mediagoblin.gmg_commands import util as commands_util from mediagoblin.auth import lib as auth_lib from mediagoblin import mg_globals - def adduser_parser_setup(subparser): subparser.add_argument( '--username','-u', @@ -35,6 +34,10 @@ def adduser(args): #TODO: Lets trust admins this do not validate Emails :) commands_util.setup_app(args) + args.username = commands_util.prompt_if_not_set(args.username, "Username:") + args.password = commands_util.prompt_if_not_set(args.password, "Password:",True) + args.email = commands_util.prompt_if_not_set(args.email, "Email:") + db = mg_globals.database users_with_username = \ db.User.find({ diff --git a/mediagoblin/gmg_commands/util.py b/mediagoblin/gmg_commands/util.py index 168a0760..af172105 100644 --- a/mediagoblin/gmg_commands/util.py +++ b/mediagoblin/gmg_commands/util.py @@ -16,6 +16,7 @@ from mediagoblin import app +import getpass def setup_app(args): @@ -25,3 +26,15 @@ def setup_app(args): mgoblin_app = app.MediaGoblinApp(args.conf_file) return mgoblin_app + +def prompt_if_not_set(variable,text,password=False): + """ + Checks if the variable is None and prompt for a value if it is + """ + if (variable==None): + if not password: + variable=raw_input(text+' ') + else: + variable=getpass.getpass(text) + + return variable From 968dd9e735eeeee9da0d1c10735e9bba2817e7c0 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 3 Dec 2011 16:45:33 +0100 Subject: [PATCH 1231/2731] Bug #685: Add failing unit test The simplest way to reproduce Bug #685 is to ask for a non existent page. This should return a proper 404. It currently doesn't. So add a unit test exactly for this. This unit test fails currently! It will fail until the bug gets fixed. --- mediagoblin/tests/test_misc.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 mediagoblin/tests/test_misc.py diff --git a/mediagoblin/tests/test_misc.py b/mediagoblin/tests/test_misc.py new file mode 100644 index 00000000..09623355 --- /dev/null +++ b/mediagoblin/tests/test_misc.py @@ -0,0 +1,26 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from nose.tools import assert_equal + +from mediagoblin.tests.tools import setup_fresh_app + + +@setup_fresh_app +def test_404_for_non_existent(test_app): + assert_equal(test_app.get('/does-not-exist/', + expect_errors=True).status_int, + 404) From 71c6c432a5fe8fe0f96dac284562a8e1b981d669 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 3 Dec 2011 21:20:11 +0100 Subject: [PATCH 1232/2731] Bug #685: only provide CSRF token if it exists This was suggested by Nathan Yergler in the bug logs. Just implementing it. - Let render_csrf_form_token return None, if the CSRF_TOKEN is not available in the environ, because the process_request part of the meddleware has not yet run. - In render_template: If the returned value from above is None, then do not add the csrf_token to the templates context. --- mediagoblin/meddleware/csrf.py | 3 +++ mediagoblin/tools/template.py | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/mediagoblin/meddleware/csrf.py b/mediagoblin/meddleware/csrf.py index 16541bee..a4e4e5c6 100644 --- a/mediagoblin/meddleware/csrf.py +++ b/mediagoblin/meddleware/csrf.py @@ -50,6 +50,9 @@ def render_csrf_form_token(request): """Render the CSRF token in a format suitable for inclusion in a form.""" + if 'CSRF_TOKEN' not in request.environ: + return None + form = CsrfForm(csrf_token=request.environ['CSRF_TOKEN']) return form.csrf_token diff --git a/mediagoblin/tools/template.py b/mediagoblin/tools/template.py index f48b7c2e..d0400347 100644 --- a/mediagoblin/tools/template.py +++ b/mediagoblin/tools/template.py @@ -79,7 +79,9 @@ def render_template(request, template_path, context): template = request.template_env.get_template( template_path) context['request'] = request - context['csrf_token'] = render_csrf_form_token(request) + rendered_csrf_token = render_csrf_form_token(request) + if rendered_csrf_token is not None: + context['csrf_token'] = render_csrf_form_token(request) rendered = template.render(context) if common.TESTS_ENABLED: From a6f065632a8410dc7e032267fd3ef16ae5d9576c Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 3 Dec 2011 16:59:20 -0600 Subject: [PATCH 1233/2731] Updated translations --- .../i18n/ar/LC_MESSAGES/mediagoblin.mo | Bin 12268 -> 12629 bytes .../i18n/ar/LC_MESSAGES/mediagoblin.po | 52 ++++++-- .../i18n/ca/LC_MESSAGES/mediagoblin.mo | Bin 10826 -> 11417 bytes .../i18n/ca/LC_MESSAGES/mediagoblin.po | 52 ++++++-- .../i18n/de/LC_MESSAGES/mediagoblin.mo | Bin 11119 -> 11684 bytes .../i18n/de/LC_MESSAGES/mediagoblin.po | 70 +++++++--- .../i18n/en/LC_MESSAGES/mediagoblin.po | 50 ++++++-- .../i18n/eo/LC_MESSAGES/mediagoblin.mo | Bin 10809 -> 11489 bytes .../i18n/eo/LC_MESSAGES/mediagoblin.po | 70 +++++++--- .../i18n/es/LC_MESSAGES/mediagoblin.mo | Bin 11329 -> 11967 bytes .../i18n/es/LC_MESSAGES/mediagoblin.po | 103 ++++++++++----- .../i18n/fr/LC_MESSAGES/mediagoblin.mo | Bin 11583 -> 12215 bytes .../i18n/fr/LC_MESSAGES/mediagoblin.po | 114 +++++++++++------ .../i18n/ia/LC_MESSAGES/mediagoblin.mo | Bin 10530 -> 11150 bytes .../i18n/ia/LC_MESSAGES/mediagoblin.po | 52 ++++++-- .../i18n/it/LC_MESSAGES/mediagoblin.mo | Bin 11026 -> 11534 bytes .../i18n/it/LC_MESSAGES/mediagoblin.po | 52 ++++++-- .../i18n/ja/LC_MESSAGES/mediagoblin.mo | Bin 11224 -> 11791 bytes .../i18n/ja/LC_MESSAGES/mediagoblin.po | 52 ++++++-- .../i18n/nl/LC_MESSAGES/mediagoblin.mo | Bin 10695 -> 11306 bytes .../i18n/nl/LC_MESSAGES/mediagoblin.po | 52 ++++++-- .../i18n/nn_NO/LC_MESSAGES/mediagoblin.mo | Bin 10287 -> 10845 bytes .../i18n/nn_NO/LC_MESSAGES/mediagoblin.po | 56 ++++++-- .../i18n/pt_BR/LC_MESSAGES/mediagoblin.mo | Bin 10945 -> 11508 bytes .../i18n/pt_BR/LC_MESSAGES/mediagoblin.po | 52 ++++++-- .../i18n/ro/LC_MESSAGES/mediagoblin.mo | Bin 11067 -> 11761 bytes .../i18n/ro/LC_MESSAGES/mediagoblin.po | 121 ++++++++++++------ .../i18n/ru/LC_MESSAGES/mediagoblin.mo | Bin 13899 -> 14235 bytes .../i18n/ru/LC_MESSAGES/mediagoblin.po | 56 ++++++-- .../i18n/sk/LC_MESSAGES/mediagoblin.mo | Bin 11267 -> 11701 bytes .../i18n/sk/LC_MESSAGES/mediagoblin.po | 56 ++++++-- .../i18n/sl/LC_MESSAGES/mediagoblin.mo | Bin 10764 -> 11351 bytes .../i18n/sl/LC_MESSAGES/mediagoblin.po | 52 ++++++-- .../i18n/sr/LC_MESSAGES/mediagoblin.mo | Bin 10627 -> 11247 bytes .../i18n/sr/LC_MESSAGES/mediagoblin.po | 52 ++++++-- .../i18n/sv/LC_MESSAGES/mediagoblin.mo | Bin 11015 -> 11450 bytes .../i18n/sv/LC_MESSAGES/mediagoblin.po | 52 ++++++-- .../i18n/te/LC_MESSAGES/mediagoblin.mo | Bin 10812 -> 11439 bytes .../i18n/te/LC_MESSAGES/mediagoblin.po | 52 ++++++-- .../i18n/zh_TW/LC_MESSAGES/mediagoblin.mo | Bin 10509 -> 11108 bytes .../i18n/zh_TW/LC_MESSAGES/mediagoblin.po | 107 +++++++++++----- 41 files changed, 1056 insertions(+), 319 deletions(-) diff --git a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mo index 4e4e8863d2e81b03e1fec3a2d44ffa6d6ce7016a..aa6eacac22dc24f35dc38b71d9b818a227df36f1 100644 GIT binary patch delta 4318 zcmc)K4Q!Nm9l-JbF0+%i{25-eq%WvIOTKCex{iQNO>tD-L{P zhD1{CbN9dJ{x84Z@Bh2J^Jjg@w@W5}Me*-p{#Ww<@*VQ&AOFrwQ>v7YXR!=_jF<3T zY{mLp%e>eo=7yMR-bN~*jWN^M|Z7BZ*m#UeDY72_zI zdm8zHT9B_)3D%)Jw+dx^V{ZHboXh73R^T42#;@UIJb?vx2FqDry^?$2S2&X|_&c~!q|Wg?!hDYbF5&prT9KB!0JM!5_mU;@gxQ%ZC&teph7ZD)VQVUpBg4&FHr@ByL)Qhq~7iD1|`BP8wBF}#pC1$VUc6=SB zDngvE0e9eh{31%Sj$$kR5GARm54i`&tHSSOHMnZND*@L=(8s9;wiYdfh#%H30P-6!+ zqb%&=$MG0;;w9uyHM84xT#pi|y(rc41WKx2#vPb^hc_*}>ENk0^iVF+QJjRwkh`S5 zg|eZOC|`UZIh6VVan<++Ucx`3%yW^rlMPiu3Cco?a669S{rDy_Z&HQWj-;RsSKw-t zh>YL}CXu_T{(#J_0^ByqVI{tRn^2zr3(Co-P%u2IDp7LWj+{~5ixaL`(NY+3hS~D%ty(22xWpcln`%0*-$Sw;x5eGYs}nhj52;4 zGuN6haVFJ_a=W(SVvL~NmIL*~U+(8w24vziN`1YDveU^SqJqV^9QWZmJdN@@ne9HP z#AO)8JUoKjO!W+Mk<=-al>7)~-ZybQ{(3R-mz^{(QR;ErfvfSi*eT=0RUAdBffw;X zyo`6@ItC>IV<`9f5Pk-y5*`Wp07}Y|$eGk3B>n0%O0B#lU&sVku^;o;jV$2cr|}$a z#agKrd?@G9PccXD;Oz3LvEj=>JzOyf;A zs@l-7YsPJ3&|K`+yL!-!ScZRO>cW|Q!=C5ZJB_esIkx}m)P^!!8{x1sY5O^x{gxfkhMmy;R?O7qL!N27tgS6uFZ`^G$u9RS^jFPz!M`}8t7ffZ*Lyl@jF`-7 z>V)a7)*CzyVH$2CsMbX+&#%k3%WTh#>x45L*S0yThYZ&pb>b2KTK=N^PDgtVLjz{} z_`ZSzf#9ea3p<0RjAl;QE%E4d`eJNCP8%F=DSR+cu)!WNVpb%xQ-ANQ9WyzUXAJDj z#?ikxtG-`v$t|QdnWJW0ZE~`~;5dy#aVKoLu4NCX&9TV!Ey)L--0Tdw!OUwzcH8V| z&?M}m24@=_@)AvIbKDxRY$N6`Em~ONk`bMINNsWWnEMd)Hx}(Gj62zY5)U&H^qYz+ z3&YL`F}WU!&f*P=O@eRPt`{H9WZYHT%po&QqBI9{bzdSgso^&H2Z~23%|XM8X(JMe za}I69;-(QvkTc8mT>m%4cjspcN%vDO5x=}-i+{MJzGuLU=uyjysvc%kJyA0k5jmIb zcsgRnOtz@|%&7R`nUS`(_T?+a z$IH6{rT?-K{dsP~O}*uRXhci=nu=w`si#uM(|dJ#e`-8+H1*BYiShgAR|Y1n$@Hb_ z8~Re}sr0_o>Gb0&^?Z77`g5so`}bB8=c-=+iK_Xn9nLU!R_gUu8`k%#u1sBfT%GTYswliT~b$kUywfZfH^k!SYE2qt9etCI#@rlWZSKG zsmYu=m0ctASV?QLXl gH0ce@dV6}A|3TANTQc45qx7*aG_Rfa@A{bfJGzJu&j0`b delta 4051 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\n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -102,7 +102,7 @@ msgid "Tags" msgstr "الوسوم" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas or spaces." +msgid "Seperate tags by commas." msgstr "" #: mediagoblin/edit/forms.py:33 @@ -265,6 +265,11 @@ msgstr "أحدث الوسائط" msgid "Enter your new password" msgstr "أدخل كلمة سرك الجديدة" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Submit" +msgstr "أرسل" + #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" msgstr "" @@ -378,10 +383,6 @@ msgstr "" msgid "Submit yer media" msgstr "انشر وسائطك" -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "أرسل" - #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" @@ -392,6 +393,35 @@ msgstr "" msgid "%(username)s's media" msgstr "وسائط %(username)s" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#, python-format +msgid "By %(username)s on %(date)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +msgid "Post a comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +msgid "Post comment!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +msgid "Edit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +msgid "Delete" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 +msgid "Sorry, no such media found." +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -517,6 +547,10 @@ msgstr "الأحدث" msgid "Older" msgstr "الأقدم" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +msgid "Go to page:" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" msgstr "" @@ -534,11 +568,11 @@ msgid "I am sure I want to delete this" msgstr "أنا متأكد من رغبتي بحذف هذا العمل" #: mediagoblin/user_pages/views.py:155 -msgid "Empty comments are not allowed." +msgid "Oops, your comment was empty." msgstr "" #: mediagoblin/user_pages/views.py:161 -msgid "Comment posted!" +msgid "Your comment has been posted!" msgstr "" #: mediagoblin/user_pages/views.py:183 diff --git a/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.mo index 9b9e7e3b220d3944625628ab743adf6e86e37b8b..203114fc48eade7f6b1a9e9c36a641e4a9c802e3 100644 GIT binary patch literal 11417 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 GUHuEm@Uz(f diff --git a/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.po index f07ab2d6..a05dc5c0 100644 --- a/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-27 15:25-0600\n" -"PO-Revision-Date: 2011-11-27 21:28+0000\n" +"POT-Creation-Date: 2011-12-03 16:57-0600\n" +"PO-Revision-Date: 2011-12-03 22:56+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -100,7 +100,7 @@ msgid "Tags" msgstr "Etiquetes" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas or spaces." +msgid "Seperate tags by commas." msgstr "" #: mediagoblin/edit/forms.py:33 @@ -262,6 +262,11 @@ msgstr "" msgid "Enter your new password" msgstr "" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Submit" +msgstr "Envia" + #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" msgstr "" @@ -368,10 +373,6 @@ msgstr "" msgid "Submit yer media" msgstr "Envieu els vostres fitxers" -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Envia" - #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" @@ -382,6 +383,35 @@ msgstr "" msgid "%(username)s's media" msgstr "%(username)s's media" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#, python-format +msgid "By %(username)s on %(date)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +msgid "Post a comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +msgid "Post comment!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +msgid "Edit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +msgid "Delete" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 +msgid "Sorry, no such media found." +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -509,6 +539,10 @@ msgstr "" msgid "Older" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +msgid "Go to page:" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" msgstr "" @@ -526,11 +560,11 @@ msgid "I am sure I want to delete this" msgstr "" #: mediagoblin/user_pages/views.py:155 -msgid "Empty comments are not allowed." +msgid "Oops, your comment was empty." msgstr "" #: mediagoblin/user_pages/views.py:161 -msgid "Comment posted!" +msgid "Your comment has been posted!" msgstr "" #: mediagoblin/user_pages/views.py:183 diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo index 056e3ecaac4d6dbbadcfc480f2279b81df03f85c..4747bd76ae93ca162d34495cb36915be3906aa12 100644 GIT binary patch delta 4609 zcmc)M32YqI8Nl(kIUuo#6Fb3<&%CwcBfcF-C@sGz2$2vO8pN&!)XNQG!4)TWJ!DiBvAAti)G}^=j@9^Ed;{Oa zK0Llasf8HhV=b2BcHD?-@OI=^9pyv1ejeq$<9LQr(`rGPQrl=)jP$AY;1YCj00WfC z9Y(&OR+KAMg>5MBosZJKz0|%7mvf)OIy`_)csI_&pW#{fB-Sv#`eo^b*KiRJ5*p`YBg*EqptKK`+P9P(#zxvlko{77OYTQm z%1y{@)FG4*{0K96WC;OcEVY7BC8&MKGqn{ZMte{u7@`bpkzaK`AM*ZBQDSxsuf*S= zWJL$->&9!b9>0OISr6g>K7+EUf2m@Fq~lXG$iNE-lmxvNrQ=o{!cLUU+Kb!qR+Irw z;CUD$hkNmS)R@6hycPTKWt2!(5RMR+;d(qc&4q;QIb;s%IBGnJk`?obyReWYY3-i-7+tsdoqv!@=% zwfKwT19b|&!u@=vD-*a8WuV(o_V59`4}XWUg?l-Lk~3dLiNM_`d;BP}OX>)+R`n}n z?&@`Hk^_2*3)$;BGL8IEE09H~0pwR*#)pJHi;ShNN9pJg%GUh^WpAHA8R%)096Es# z(O1#pQmxcm_#nzwd@IiBnC9XsE)L-dOrXapHnVZkLBNm@B*`z;Vq_wcbVF}0B^%^m(^7%zNw z7pKjPCJb?(a#-8MWR&k!I|4WDdQR4MEorU`*%DoPN$vExE#1WJ_9f#LfnN+L@i3{l z?X7I6Nc#JT$%moXQn_uFA^5HrMnSHy<)IoelO|xJGz$xLB46m#3484wmHQgZgyUwl zlS&1wLp#~PIH^2)=7v#d->O_!UdSXpM!uwMP1R0&sH%N5ZBly5jWTMK9@S{Zlp-SQ z^884rOx7?(oiIs3BNprzPiPrp32Eo&=>c(5puC zlSaElKJB>n@n!2OP2i5@i(e>2CvN|`?4pV*1K&%380ndTv**W#XV)3cMxa;iVNnw~ zb}nILe2J7~oX<-2xaUvlsZ1eNL)j+zUU35=KW+!A8!v5VVY8dS&bnhR9TZmjiH(ZO zIKga0I6CaBF`k|zXGo30Q@ginsZCT5cX1pI6AJkTQ5^FFM#$=P;Vkq7CQE9R4tTG9 zsQTRH1X4MX8Z$EYr0*$-qo0fH2h|4`t?ubRM-QwWTytJe|5|%TP5p(1mes2V*R1X8 z=cnv4CyaVV1IG*L*$)PFa>^tUWa)*ai;GjlC!fsvxzx;?HS=QgWLxZ_rkdsILef9W zal5Gbe=b|QYH)Qzm@8J4U!LB`2aoVrO)!(Twlc=qVw zzz)@4Gk0UL(lvgf(rrj20z(da>gc_!Y0~P3-Z?$Pc1Odm?WH=w@n+NL+o#Z}O@5BT zAcx{KtD@RWcfW7ws2%q`3ZC}dWG2#SBMD>Z+XVK^#(o*|bB*cwg@b1AYaBYQBKmsc zj>^K)do~o#yD1EIaZ|nhTGMiSvZ>|cb<~C{z7tE?GX0(m_IKUU=}N-N0sGIzbw~W` zvC5AZR~>Q8>p0p`iY&`ubFhzj)`T3hWaro0jZ0pDM90tn89_%xxX$969|`droU$->zK# z@5}A?TL%Y5{2<78lQ2}pWTsSC3)Qz*UE-1jf!=7mT(qByLWbCPTWe}1EmFqg6)M4Q zlcstHE@AR)O znVE3xiyh~+ZFD0}PJ*g;^l;>+IopOBs5x02``O%&+sai#l|xQ8b$}keD$1 I&&5;!1Q@MkivR!s delta 4149 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 nO7@EG%LjHc!MhJmm9v4Twz>QtgROM!@mOX\n" "Language-Team: German (http://www.transifex.net/projects/p/mediagoblin/team/de/)\n" "MIME-Version: 1.0\n" @@ -109,7 +109,7 @@ msgid "Tags" msgstr "Markierungen" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas or spaces." +msgid "Seperate tags by commas." msgstr "" #: mediagoblin/edit/forms.py:33 @@ -137,11 +137,11 @@ msgstr "Webseite" #: mediagoblin/edit/forms.py:49 msgid "Old password" -msgstr "" +msgstr "Altes Passwort" #: mediagoblin/edit/forms.py:52 msgid "New Password" -msgstr "" +msgstr "Neues Passwort" #: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." @@ -157,7 +157,7 @@ msgstr "Du bearbeitest das Profil eines Anderen. Bitte sei vorsichtig." #: mediagoblin/edit/views.py:171 msgid "Wrong password" -msgstr "" +msgstr "Falsches Passwort" #: mediagoblin/edit/views.py:192 msgid "Profile edited!" @@ -217,11 +217,11 @@ msgstr "Medien hochladen" #: mediagoblin/templates/mediagoblin/base.html:65 msgid "Verify your email!" -msgstr "" +msgstr "Bitte bestätige deine E-Mail-Adresse!" #: mediagoblin/templates/mediagoblin/base.html:72 msgid "log out" -msgstr "" +msgstr "Abmelden" #: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 @@ -275,6 +275,11 @@ msgstr "Neuste Medien" msgid "Enter your new password" msgstr "Neues Passwort eingeben" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Submit" +msgstr "Bestätigen" + #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" msgstr "" @@ -389,20 +394,45 @@ msgstr "" msgid "Submit yer media" msgstr "Medien hochladen" -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Bestätigen" - #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" -msgstr "" +msgstr "%(username)ss Medien" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" msgstr "%(username)ss Medien" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#, python-format +msgid "By %(username)s on %(date)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +msgid "Post a comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +msgid "Post comment!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +msgid "Edit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +msgid "Delete" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 +msgid "Sorry, no such media found." +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -535,13 +565,17 @@ msgstr "Neuere" msgid "Older" msgstr "Ältere" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +msgid "Go to page:" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" msgstr "" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 msgid "and" -msgstr "" +msgstr "und" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" @@ -552,12 +586,12 @@ msgid "I am sure I want to delete this" msgstr "Ja, wirklich löschen" #: mediagoblin/user_pages/views.py:155 -msgid "Empty comments are not allowed." -msgstr "Leere Kommentare sind nicht erlaubt." +msgid "Oops, your comment was empty." +msgstr "" #: mediagoblin/user_pages/views.py:161 -msgid "Comment posted!" -msgstr "Kommentar hinzugefügt!" +msgid "Your comment has been posted!" +msgstr "" #: mediagoblin/user_pages/views.py:183 msgid "You deleted the media." diff --git a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po index c1f3fd7f..3732705c 100644 --- a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-11-27 15:25-0600\n" +"POT-Creation-Date: 2011-12-03 16:57-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -94,7 +94,7 @@ msgid "Tags" msgstr "" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas or spaces." +msgid "Seperate tags by commas." msgstr "" #: mediagoblin/edit/forms.py:33 @@ -256,6 +256,11 @@ msgstr "" msgid "Enter your new password" msgstr "" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Submit" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" msgstr "" @@ -355,10 +360,6 @@ msgstr "" msgid "Submit yer media" msgstr "" -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "" - #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" @@ -369,6 +370,35 @@ msgstr "" msgid "%(username)s's media" msgstr "" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#, python-format +msgid "By %(username)s on %(date)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +msgid "Post a comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +msgid "Post comment!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +msgid "Edit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +msgid "Delete" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 +msgid "Sorry, no such media found." +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -490,6 +520,10 @@ msgstr "" msgid "Older" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +msgid "Go to page:" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" msgstr "" @@ -507,11 +541,11 @@ msgid "I am sure I want to delete this" msgstr "" #: mediagoblin/user_pages/views.py:155 -msgid "Empty comments are not allowed." +msgid "Oops, your comment was empty." msgstr "" #: mediagoblin/user_pages/views.py:161 -msgid "Comment posted!" +msgid "Your comment has been posted!" msgstr "" #: mediagoblin/user_pages/views.py:183 diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo index c537c65e789f0388ddfed653f85585e3592c9dcf..02d094863da2ae88004e9a0b53efe8247bc186d3 100644 GIT binary patch delta 4345 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\n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -102,7 +102,7 @@ msgid "Tags" msgstr "Etikedoj" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas or spaces." +msgid "Seperate tags by commas." msgstr "" #: mediagoblin/edit/forms.py:33 @@ -130,11 +130,11 @@ msgstr "Retejo" #: mediagoblin/edit/forms.py:49 msgid "Old password" -msgstr "" +msgstr "La malnova pasvorto" #: mediagoblin/edit/forms.py:52 msgid "New Password" -msgstr "" +msgstr "La nova pasvorto" #: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." @@ -150,7 +150,7 @@ msgstr "Vi redaktas profilon de alia uzanto. Agu singardeme." #: mediagoblin/edit/views.py:171 msgid "Wrong password" -msgstr "" +msgstr "Malĝusta pasvorto" #: mediagoblin/edit/views.py:192 msgid "Profile edited!" @@ -214,7 +214,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/base.html:72 msgid "log out" -msgstr "" +msgstr "elsaluti" #: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 @@ -236,7 +236,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, welcome to this MediaGoblin site!" -msgstr "" +msgstr "Saluton, kaj bonvenon al ĉi tiu MediaGoblina retpaĝaro!" #: mediagoblin/templates/mediagoblin/root.html:28 msgid "Your finest source for all goblin-related media." @@ -268,6 +268,11 @@ msgstr "Plej nove aldonitaj dosieroj" msgid "Enter your new password" msgstr "Enigu vian novan pasvorton" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Submit" +msgstr "Alŝuti" + #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" msgstr "" @@ -376,16 +381,12 @@ msgstr "" #: mediagoblin/templates/mediagoblin/media_displays/video.html:19 msgid "Original" -msgstr "" +msgstr "Originalo" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" msgstr "Alŝutu vian aŭd-vid-dosieron" -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Alŝuti" - #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" @@ -396,6 +397,35 @@ msgstr "" msgid "%(username)s's media" msgstr "Dosieroj de %(username)s" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#, python-format +msgid "By %(username)s on %(date)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +msgid "Post a comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +msgid "Post comment!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +msgid "Edit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +msgid "Delete" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 +msgid "Sorry, no such media found." +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -527,13 +557,17 @@ msgstr "Plinovaj" msgid "Older" msgstr "Malplinovaj" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +msgid "Go to page:" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" msgstr "" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 msgid "and" -msgstr "" +msgstr "kaj" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" @@ -544,12 +578,12 @@ msgid "I am sure I want to delete this" msgstr "Mi estas certa, ke mi volas forigi ĉi tion" #: mediagoblin/user_pages/views.py:155 -msgid "Empty comments are not allowed." -msgstr "Malplenaj komentoj ne estas afiŝeblaj." +msgid "Oops, your comment was empty." +msgstr "" #: mediagoblin/user_pages/views.py:161 -msgid "Comment posted!" -msgstr "La komento estas afiŝita!" +msgid "Your comment has been posted!" +msgstr "" #: mediagoblin/user_pages/views.py:183 msgid "You deleted the media." diff --git a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo index 2d2b92430cb5f82160be8bc3b3da0290f3206d86..dba37f0a814c9490904ba6c6914b58c5b74c3298 100644 GIT binary patch delta 4405 zcmb7`du$xl6^HMpdD@8+=i%VsBzNuj5&TZ`P!i$?v#3bgCJ`#;*?%ES}XErml zHcLZYN=2cFNY#k86eJo!1yLFxSfyzTrL7SnrBn^7;18-ms~`jgiMH@ZOV#!}yK9Fa zMAg-LzL`7sanA2N*1x*(*)NZsTR8n*#pf3OYWREibMkcI^YkpG7W4QFtb#AYx8U2b z9iE-7)Et=LvL2Sho$yMy4&DR#stGQ#^-ECZorN=%8dI~&ljA!hb_fQ41KH0hdDwP92o-O{MYP5_iGnjPHZQ zOC2up7AUUV4zWhv2StKM;V^t^0RnNBTFI#*YCGhe+5ttQ{ZI@Hp&T4TzUl{DWd4&- zGga>k-%qe+?z5A1ow5vhha@$icG_N<^=QvT;4!4ljce ztiy08ybH(682p7Yx@Xj%AM6wqkHmI{u!}CzG zVg|a)_&g{QYS<0ip&T5-&F}>5g>ON=svT=L!R=6#x(!OUd>=}vo`(nE*m-U`xanrr z8W=$-q(|U1cmh&O>MwUNgv}P2cCg%!#Ci1_#1R58Y)2wic*W99Jme2 z`v)QWj;U9;kptf-y*Lj=kxMbtg{vU7sg6QyRrkRzcnUrX--jaY6I7un^%RtY&p?Us zYYb0kU}N^aPg{Q;cterZVwb?4nd?>N8p$obVupMaVQ@B98QPNLDW@e zO5<-q@$7vliu?;oQm&{kD%T3rJa2|l){jEI>NFSfS)GI8`3F#xtZgXO{|%Tc9t=T= z)e$%Y-V67``=LnrA?$=}8;eq>;A)<~4!6J`!I|(KDCPWDNQJ6tO+`bipm<&nuY~PQ z=r0lm4BQC64g26b@N&48-Q~c;@G|%i?1#UDQY|YPoCWv7Z^19XtKpkar0#4khOisr zw7MS7fk&V?e8(6!Qa<;?z3@r670#e$dSMUT4ex=HwSR=7$Olji-;JKwqB2lI^<6j$ ze+)OkR=UzgXkY?92&chgupA~I=B9$1Cm_1yLKApa#;gt-L!B{>YsC-DterQQiz44U zXxWkLd-01iTdF*5*|wkaB5g%F8g@e+x{-;e&uaL@y(=|+T0u&FXU|Pdb;*2GA35u zS{rXHI~l)TwxjMU-)oHYur*@X)#$v5w(7nJCyW*5ld8vYqqw2mtMVcf=)9i`v}ZKXBrY%2$>5`a1F%8Zw*4zcKe{A~|Z(wx2OFTJUg}=+WyBrZGaiO^$a|+?bf# z=Z#ot*C|*U-!}iiJe-QGp@T&oRW`ly6ge0(Z#utaRMGpmteEM09DA>i2mpJtX6u z3vQ|i{Gy=fVVq>#R#{VF`y*&FB}H##-)e*St`|l@t`PB1?K4>u5Gajfp&rZ^HnqaG z_-N%wjmcPUT3e12;D@%-fw7!CF>}KxjNhs3Dla6GPLVE7ymVoIeBZ*xfg$7QQ8yY^ z1MH{wsqwc|PxWqa7zHxUvtPeu{c=r9+Uw(&WOewY~Z z#gw90{-{^nwnb;tmTe}r2wQY0sZvOUlr=&=pa-_&cg7D)L2GSWo=*Eil5=8darVcP zpi}~FY9OCA+C}*x%Z-1!xU13xZYp0~P*5isf4F!{#SMY)4NWOM-nnE(V%Maf(WC-x zYCle8azt*>$oZm_WSozu`X`QzjHk2Y45?9g8y{Y{C?2fZ)l4}W3<_C+iYY(fgtQ(i)Iw`u(xgVI zzT4vCRckLnNM%JTWyE&d_mt@9=c4!@Rd>!?)7tTQ-MN0#x(%%z>*J$KFD)yKtXZ>Z z-TLwIrRx$k-9B~dxsD%_2b9x=wxs&wjuln$e=aHeM4x$aW>ef%J$EY}U?~aV(yK0S zx4O#o)W`qW{pD0inyTDVdvSB4U(M^xCR$vdiBfiGii@Mo!HSf;6s*w2ct&|*C4;ndDd3l6YA8&G22a-n%X~?KNLT+VtL%Lvh|`4_R7kK60JM@wAG>q zSw2#blh$xS9Fg{8*_<3dnfz*E>42N{<;|ptt~WAqEbYdPbzl2LV|%2oqjGo7j7Yl? zM?-^D@hf$0+pl-cp^HY<6<*{H<*ZO$_kXmr%2l18)y}rA^5*xOfPSWF%#r1g|Lygw zYwVo#s$#@SR;j&Y_J~Vt61Da5?e*JRdkT+}P0r@0#e7DWd!hcWB^K=`Ft+U$gIFxO zxUpgFvVDFKRai+Cr`?R} zO^j240kdQ@Lli8@W_c!Z)*w|HnxS0aw~gQ3_;zBf-wG^km2x!7g_@s}tV`WY$I-`CO{ NRksNwS4#@3{{m7eC<_1p delta 3826 zcmai#3yfS<8Gz5o0=wImZkN&r?e3o0w%gryclJRSL!m7N+ENNji!Fulkh62o?A-00 zdx!hjG6<|8HmSj2!jS}w)c`RdS|Ti>CMA__2of~JCI&T;Acjy4#E6M8qS5c4SxT!W zPG;_R?z!jw@Bg3Ucf4}T^xN%Ck19T8ek=LievaII`uWCrN-g2`2z(p92nV4%U#T%T z3tM1&vr-4(N_Z(e46lR7;V5k7kes`ci>SB`mXw-SV=R!VegIqHF}M@H29d26vAGZ~ zhi$MA-U~Ov`g^dQ`(ty@-<-RD2QFj(FYsbGe;z-$7A}PwU?=+3^(+>!aR4rdHP{6m zl!G%+BJ&2k5T1f!*gs$sY(nZqum$deT~G|pU_U$r?}snIx8M-UdSUYgoRtH^ENXBM zEW$Tn9u6W!6z+lD(7MNStER=*pR*&ecn2xXZC>7;czj2}*JvgCgKt z5FP4!Pz1dU*T54{Ts;LP)~)z^9qfi8zXCrCzYYuVs`EK*~TJffCB2@Hl)GN@NaoGz@+SiXq>G;^Ft9GRW6c>Q&4K*V<-_?ze+lsutL(W z_CdaCl8bo!Fr=>3GmtE(V^Bi>78JR^gW^Eb>PFEnfb-C=+F4+O>VyHj55YjzLlQ5L^dehP&Y@I07%jit}Lrcfk}&t^5Rv{F8my z-NNE;Y)D8ygOr=#Qn&?9!X5BgI0iq0V$jz0v?#m_UIu>!=fQSbKtkOK-7n7XUQo8i zv+?JXY`o&9k2Lo$(52W~ZHmPx3sZMhbI;jF+~kT8_jL1Z)4Cd%qSd7+)>Ru-1FO?W z7o#9B<56rR0@5 zLWEV!0fd&VJ{ZM;r;Q%BX=+g?im%~G9Ay(_?b)IY)7S+5y>)4I6}@(f&CCQrtskrE zB9kZz^L@Hx(O*BAcdacyozDCqt-E3GNo|<;<9^_$wSv~YH)KKTi)VGqbXu$0+KC z7E~%&tE*9xS}*VJYF+7`Ykkt~pSRT=n^&2rRMVR1l|zX}kq)C&<6CsldIhyDl&I9A zEY_htsH-MPh?sZgewNrcG!;u8w5=FFP}}Y)`Y00@CL=%8S+d1#nZLSYJK68oCc%|@ zC3sP#pnLb*cfa^}Y~2^uTwLhhykl(N6@zB8uEx=%Ev6hVi3J!`=uN?v=K#O@mc4VUs~|rch2RLHFicqf8e~sLM8};-B^_7(68< zKUs?CO=cX@Y^}}<%@Q@ z_b$48W^hSU&K+91%)P(VxZ1M9%96!*zZivz0Q#j`BiZ#t=H2mShew77hKBXXB^!q~ z3=EA94YlsRao{F9)%Kn;-4*MUWJvE9F^`V=WHzv@(ap>T;~AL=v(FokTu`d*~=WIVN@7mGm#LSDzxNqVh%By-NaVXQ{CUnCclm9U;9_#3F|Ll0%z1z9V?df`Q z$F~17FLs6#lri>YI?U{p@eBNM8>hx2E}vsJkx1~OWQ{P_=!VGMzh+tg zrxS%VRkOLQrI8o?k9l&fek!-q$2R}7wtkw{C95r4W+lCy^lg(XvFS@#1u_x!5+ z+{V>I?!MIn3$})-KarV4?UPaSr`5x5)0zWaJ1f;JXr!2FIZ;n#-KnW4!4nxa*ZlXe z(Km~KktfERTIQLU=n$iNRniQW(Jo%oSe1HL^|>Fe={wJcQ)Jl<^{jFEp6%|@p2P0; zwXN>KwdMBf`TIb*PvH7_of>vWx^%m)8LD3=^aI1YLaVq_YcCy3)QKmy@%I`R%l=eE zY9!b+B{E_%W*Va?%r}lT8kD~%{*mj2TyM!w`Yg%M+}-vC>v ppsQ(b)-b~TdSI`!g^kN+j}r5UMzJ1(Z\n" "Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mediagoblin/team/es/)\n" "MIME-Version: 1.0\n" @@ -64,7 +64,7 @@ msgstr "Lo sentimos, ya existe un usuario con ese nombre." #: mediagoblin/auth/views.py:77 msgid "Sorry, a user with that email address already exists." -msgstr "" +msgstr "Lo sentimos, ya existe un usuario con esa dirección de email." #: mediagoblin/auth/views.py:179 msgid "" @@ -82,10 +82,12 @@ msgstr "" #: mediagoblin/auth/views.py:203 msgid "You must be logged in so we know who to send the email to!" msgstr "" +"Debes iniciar sesión para que podamos saber a quién le enviamos el correo " +"electrónico!" #: mediagoblin/auth/views.py:211 msgid "You've already verified your email address!" -msgstr "" +msgstr "Ya haz verificado tu dirección de email!" #: mediagoblin/auth/views.py:224 msgid "Resent your verification email." @@ -109,7 +111,7 @@ msgid "Tags" msgstr "Etiquetas" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas or spaces." +msgid "Seperate tags by commas." msgstr "" #: mediagoblin/edit/forms.py:33 @@ -137,11 +139,11 @@ msgstr "Sitio web" #: mediagoblin/edit/forms.py:49 msgid "Old password" -msgstr "" +msgstr "Vieja contraseña" #: mediagoblin/edit/forms.py:52 msgid "New Password" -msgstr "" +msgstr "Nueva contraseña" #: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." @@ -157,15 +159,15 @@ msgstr "Estás editando un perfil de usuario. Proceder con precaución." #: mediagoblin/edit/views.py:171 msgid "Wrong password" -msgstr "" +msgstr "Contraseña incorrecta" #: mediagoblin/edit/views.py:192 msgid "Profile edited!" -msgstr "" +msgstr "Perfil editado!" #: mediagoblin/media_types/__init__.py:61 msgid "Could not find any file extension in \"{filename}\"" -msgstr "" +msgstr "No se pudo encontrar la extensión del archivo en \"{filename}\"" #: mediagoblin/submit/forms.py:25 msgid "File" @@ -185,7 +187,7 @@ msgstr "¡Woohoo! ¡Enviado!" #: mediagoblin/submit/views.py:133 msgid "Invalid file type." -msgstr "" +msgstr "Tipo de archivo inválido." #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" @@ -217,11 +219,11 @@ msgstr "Enviar contenido" #: mediagoblin/templates/mediagoblin/base.html:65 msgid "Verify your email!" -msgstr "" +msgstr "Verifica tu email!" #: mediagoblin/templates/mediagoblin/base.html:72 msgid "log out" -msgstr "" +msgstr "Cerrar sesión" #: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 @@ -243,21 +245,23 @@ msgstr "Explorar" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, welcome to this MediaGoblin site!" -msgstr "" +msgstr "Hola, bienvenido a este sitio de MediaGoblin!" #: mediagoblin/templates/mediagoblin/root.html:28 msgid "Your finest source for all goblin-related media." -msgstr "" +msgstr "Tu mejor fuente de contenidos relacionados con goblins." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "" "To add your own media, place comments, save your favourites and more, you " "can log in with your MediaGoblin account." msgstr "" +"Para añadir tus propios contenidos, dejar comentarios, guardar tus favoritos" +" y más, puedes iniciar sesión con tu cuenta de MediaGoblin." #: mediagoblin/templates/mediagoblin/root.html:31 msgid "Don't have one yet? It's easy!" -msgstr "" +msgstr "Aún no tienes una? Es fácil!" #: mediagoblin/templates/mediagoblin/root.html:32 #, python-format @@ -266,6 +270,9 @@ msgid "" " or\n" " Set up MediaGoblin on your own server" msgstr "" +"Crea una cuenta en este sitio\n" +" o\n" +" Instala MediaGoblin en tu propio servidor" #: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" @@ -275,13 +282,18 @@ msgstr "El contenido más reciente" msgid "Enter your new password" msgstr "Ingrese su nueva contraseña" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Submit" +msgstr "Enviar" + #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" -msgstr "" +msgstr "Recuperar contraseña" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 msgid "Send instructions" -msgstr "" +msgstr "Enviar instrucciones" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." @@ -376,30 +388,55 @@ msgstr "Editando el perfil de %(username)s" #: mediagoblin/templates/mediagoblin/listings/tag.html:35 #, python-format msgid "Media tagged with: %(tag_name)s" -msgstr "" +msgstr "Contenido etiquetado con: %(tag_name)s" #: mediagoblin/templates/mediagoblin/media_displays/video.html:19 msgid "Original" -msgstr "" +msgstr "Original" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" msgstr "Envía tu contenido" -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Enviar" - #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" -msgstr "" +msgstr "Contenidos de %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" msgstr "Contenido de %(username)s's" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#, python-format +msgid "By %(username)s on %(date)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +msgid "Post a comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +msgid "Post comment!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +msgid "Edit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +msgid "Delete" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 +msgid "Sorry, no such media found." +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -532,13 +569,17 @@ msgstr "Recientes" msgid "Older" msgstr "Antiguas" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +msgid "Go to page:" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" -msgstr "" +msgstr "Etiquetado con" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 msgid "and" -msgstr "" +msgstr "y" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" @@ -549,20 +590,20 @@ msgid "I am sure I want to delete this" msgstr "Estoy seguro de que quiero borrar esto" #: mediagoblin/user_pages/views.py:155 -msgid "Empty comments are not allowed." +msgid "Oops, your comment was empty." msgstr "" #: mediagoblin/user_pages/views.py:161 -msgid "Comment posted!" +msgid "Your comment has been posted!" msgstr "" #: mediagoblin/user_pages/views.py:183 msgid "You deleted the media." -msgstr "" +msgstr "Eliminaste el contenido" #: mediagoblin/user_pages/views.py:190 msgid "The media was not deleted because you didn't check that you were sure." -msgstr "" +msgstr "El contenido no se eliminó porque no marcaste que estabas seguro." #: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." diff --git a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo index 90e833039023edeafae9a63dc03855e1fec26bb7..c7f5701f02702fca61eea8d81fe37ce5f6284fe5 100644 GIT binary patch delta 4516 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 GD*qSCoLVmc delta 3934 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 PV{=||qbl3CR_Xr&DRta# diff --git a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po index b37f5217..0bff6c37 100644 --- a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-27 15:25-0600\n" -"PO-Revision-Date: 2011-11-27 21:28+0000\n" +"POT-Creation-Date: 2011-12-03 16:57-0600\n" +"PO-Revision-Date: 2011-12-03 22:56+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -64,7 +64,7 @@ msgstr "Un utilisateur existe déjà avec ce nom, désolé." #: mediagoblin/auth/views.py:77 msgid "Sorry, a user with that email address already exists." -msgstr "" +msgstr "Désolé, il existe déjà un utilisateur ayant cette adresse e-mail." #: mediagoblin/auth/views.py:179 msgid "" @@ -81,10 +81,11 @@ msgstr "La clé de vérification ou le nom d'utilisateur est incorrect." #: mediagoblin/auth/views.py:203 msgid "You must be logged in so we know who to send the email to!" msgstr "" +"Vous devez être authentifié afin que nous sachions à qui envoyer l'e-mail !" #: mediagoblin/auth/views.py:211 msgid "You've already verified your email address!" -msgstr "" +msgstr "Votre adresse e-mail a déjà été vérifiée !" #: mediagoblin/auth/views.py:224 msgid "Resent your verification email." @@ -107,7 +108,7 @@ msgid "Tags" msgstr "Tags" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas or spaces." +msgid "Seperate tags by commas." msgstr "" #: mediagoblin/edit/forms.py:33 @@ -135,11 +136,11 @@ msgstr "Site web" #: mediagoblin/edit/forms.py:49 msgid "Old password" -msgstr "" +msgstr "Ancien mot de passe." #: mediagoblin/edit/forms.py:52 msgid "New Password" -msgstr "" +msgstr "Nouveau mot de passe" #: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." @@ -159,15 +160,15 @@ msgstr "" #: mediagoblin/edit/views.py:171 msgid "Wrong password" -msgstr "" +msgstr "Mauvais mot de passe" #: mediagoblin/edit/views.py:192 msgid "Profile edited!" -msgstr "" +msgstr "Profile mis à jour !" #: mediagoblin/media_types/__init__.py:61 msgid "Could not find any file extension in \"{filename}\"" -msgstr "" +msgstr "Impossible d'extraire une extension de fichier de \"{nomfichier}\"" #: mediagoblin/submit/forms.py:25 msgid "File" @@ -187,11 +188,11 @@ msgstr "Youhou, c'est envoyé !" #: mediagoblin/submit/views.py:133 msgid "Invalid file type." -msgstr "" +msgstr "Type de fichier invalide." #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" -msgstr "Zut!" +msgstr "Zut !" #: mediagoblin/templates/mediagoblin/404.html:24 msgid "There doesn't seem to be a page at this address. Sorry!" @@ -219,11 +220,11 @@ msgstr "Soumettre un média" #: mediagoblin/templates/mediagoblin/base.html:65 msgid "Verify your email!" -msgstr "" +msgstr "Vérifiez votre adresse e-mail !" #: mediagoblin/templates/mediagoblin/base.html:72 msgid "log out" -msgstr "" +msgstr "déconnexion" #: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 @@ -245,21 +246,23 @@ msgstr "Explorer" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, welcome to this MediaGoblin site!" -msgstr "" +msgstr "Bonjour, et bienvenu sur ce site MediaGoblin !" #: mediagoblin/templates/mediagoblin/root.html:28 msgid "Your finest source for all goblin-related media." -msgstr "" +msgstr "Là où ce trouve tout vos \"goblinesque\" media." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "" "To add your own media, place comments, save your favourites and more, you " "can log in with your MediaGoblin account." msgstr "" +"Ajoutez vos propres medias, commentez ceux des autres, sauvegardez vos " +"préférés et plus encore ! Faites tout cela depuis votre compte MediaGoblin." #: mediagoblin/templates/mediagoblin/root.html:31 msgid "Don't have one yet? It's easy!" -msgstr "" +msgstr "Vous n'en avez pas ? C'est facile !" #: mediagoblin/templates/mediagoblin/root.html:32 #, python-format @@ -268,6 +271,9 @@ msgid "" " or\n" " Set up MediaGoblin on your own server" msgstr "" +"Créez un compte sur ce site\n" +" ou\n" +" Déployez MediaGoblin sur votre propre serveur" #: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" @@ -277,13 +283,18 @@ msgstr "Tout derniers media" msgid "Enter your new password" msgstr "Entrez un nouveau mot de passe" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Submit" +msgstr "Soumettre" + #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" -msgstr "" +msgstr "Récupérer le mot de passe" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 msgid "Send instructions" -msgstr "" +msgstr "Envoyer les instructions" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." @@ -326,11 +337,11 @@ msgstr "La connexion a échoué!" #: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Don't have an account yet?" -msgstr "Pas encore de compte?" +msgstr "Pas encore de compte ?" #: mediagoblin/templates/mediagoblin/auth/login.html:36 msgid "Create one here!" -msgstr "Créez-en un ici!" +msgstr "Créez-en un ici !" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Forgot your password?" @@ -338,7 +349,7 @@ msgstr "Vous avez oublié votre mot de passe ?" #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" -msgstr "Créer un compte!" +msgstr "Créer un compte !" #: mediagoblin/templates/mediagoblin/auth/register.html:31 msgid "Create" @@ -384,30 +395,55 @@ msgstr "Modification du profil de %(username)s" #: mediagoblin/templates/mediagoblin/listings/tag.html:35 #, python-format msgid "Media tagged with: %(tag_name)s" -msgstr "" +msgstr "Médias taggés avec : %(tag_name)s " #: mediagoblin/templates/mediagoblin/media_displays/video.html:19 msgid "Original" -msgstr "" +msgstr "Original" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" msgstr "Soumettez ce média" -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Soumettre" - #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" -msgstr "" +msgstr "Medias de %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" msgstr "Médias de %(username)s" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#, python-format +msgid "By %(username)s on %(date)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +msgid "Post a comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +msgid "Post comment!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +msgid "Edit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +msgid "Delete" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 +msgid "Sorry, no such media found." +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -542,13 +578,17 @@ msgstr "Nouveaux" msgid "Older" msgstr "Anciens" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +msgid "Go to page:" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" -msgstr "" +msgstr "Taggé avec" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 msgid "and" -msgstr "" +msgstr "et" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" @@ -559,20 +599,22 @@ msgid "I am sure I want to delete this" msgstr "Je suis sûr de vouloir supprimer cela" #: mediagoblin/user_pages/views.py:155 -msgid "Empty comments are not allowed." -msgstr "Les commentaires vides ne sont pas autorisés." +msgid "Oops, your comment was empty." +msgstr "" #: mediagoblin/user_pages/views.py:161 -msgid "Comment posted!" -msgstr "Votre commentaire a été posté !" +msgid "Your comment has been posted!" +msgstr "" #: mediagoblin/user_pages/views.py:183 msgid "You deleted the media." -msgstr "" +msgstr "Vous avez supprimé le media." #: mediagoblin/user_pages/views.py:190 msgid "The media was not deleted because you didn't check that you were sure." msgstr "" +"Ce media n'a pas été supprimé car vous n'avez pas confirmer que vous étiez " +"sur." #: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." diff --git a/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.mo index feb156ff5f75ce473a53880a7e26328a15d99f8e..55802ee2a5df92612502e4988b9f870a196212d3 100644 GIT binary patch literal 11150 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 GtbYL1;x`8X literal 10530 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 diff --git a/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.po index a4f1f8d7..7dd3a4f1 100644 --- a/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-27 15:25-0600\n" -"PO-Revision-Date: 2011-11-27 21:28+0000\n" +"POT-Creation-Date: 2011-12-03 16:57-0600\n" +"PO-Revision-Date: 2011-12-03 22:56+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -96,7 +96,7 @@ msgid "Tags" msgstr "" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas or spaces." +msgid "Seperate tags by commas." msgstr "" #: mediagoblin/edit/forms.py:33 @@ -256,6 +256,11 @@ msgstr "" msgid "Enter your new password" msgstr "" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Submit" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" msgstr "" @@ -356,10 +361,6 @@ msgstr "" msgid "Submit yer media" msgstr "" -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "" - #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" @@ -370,6 +371,35 @@ msgstr "" msgid "%(username)s's media" msgstr "" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#, python-format +msgid "By %(username)s on %(date)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +msgid "Post a comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +msgid "Post comment!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +msgid "Edit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +msgid "Delete" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 +msgid "Sorry, no such media found." +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -493,6 +523,10 @@ msgstr "" msgid "Older" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +msgid "Go to page:" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" msgstr "" @@ -510,11 +544,11 @@ msgid "I am sure I want to delete this" msgstr "" #: mediagoblin/user_pages/views.py:155 -msgid "Empty comments are not allowed." +msgid "Oops, your comment was empty." msgstr "" #: mediagoblin/user_pages/views.py:161 -msgid "Comment posted!" +msgid "Your comment has been posted!" msgstr "" #: mediagoblin/user_pages/views.py:183 diff --git a/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.mo index cc0ccbfaef6e730fa8e822b22b9acc626d9c5718..77bfbee9e6ccdac4c0dd271a3cb07c3aaedec425 100644 GIT binary patch delta 4301 zcmc)L4Qy3s8Nl)PGQLKkw57DPwDi6GywESopoB6QU*l_GAZ^$n6Fj~5?d@^5=ah5K zZFdoJC76w6p^2XOfkR!4iVN9{Yh++BE-WrvmT566i7_mgDZ066jKq);+R{T9miF5pz9vTFJarM56I8<|t>#uBu!3q6$0 zeFOP{sw+~e44YBDw*qB+YhnCjIFI`TR^uUDfM3GN_%hDKb6Cmx>W#t|F5@gdkWZ_i z7%MS`vavNN6Kux0xDEMFx79}|iDC0ea@l6G{VJ+jmNWRqmf(KBJ zas=6pI*t;8Z{r}IE+IgyrRrE!g4&6ErZ%I*XgA6ReUybmED4q_iZjh%Q2C6dL2!^d)b0FP$5kdVEO>_J^XjqjjT#T4Q$Ih!JXK}6E6L(47k8lP424#bFl;ko@BJ*a|SGdS6h~0c} z3T2^Rqdd6pqC{vZ+a|qg6-o}b;{iO3lB(+{DU9$mN==oa6I_#KpxO`uG89eJsl97|5t%A0KTA(RO9qAc)nlo~pKlKUs|2%g4^ z*rW6FmPL6$vka`}!o^Qu3Ma4`SMjt`Un+r8Y)_!n!Z%S)b_Qj`KSat!O`vS>x5!#* zN<;qhCgi2Md6Qz_gLFHU#B4hkUg3l13ci3+t=~tYs$M}!!KH#%3gdr5Dazu;{BvE4 zpX9z3C1PJd_M*Opve7qCBJ|6Ge{CfGa>DYad~RbXx$42m*o(XIQIw*23FR^S9a2xK zk}%0h@53JKMcL>WO8@vGN<_Ykl9CCOd4Gi)@p3cqm+FnRc^Gb{{*LE(Zc+5U4}CLB+7#4QBw9}T#A=bHdwJJZ(WuP31JL(;c{GyW7vxm zxCR?pU7l-$a?*n+Cwm!rsbBCWshUKg45LOl$Y)U=>+^UIUd2gx4e!P1buOlHF;xno zDVFw)=U78#q2J=`A(ODJ@Wj;mS^eoCaGiZtJg{9Sd~<4Bg`=%_+)X=ywgMdt+P?Pf zz=S1L&3Alx`Ltux6N$oHPfdS4k_pdL#pY<&(M_?06|j_AZ#i+33R`M+hOrqnEd#cb z(3X?Y19r-2^F&}ApLMnE==x8|nC$RSeR!hg)8W|}?cv)qHaBc=ot8ikS|f&;jn0_h z0lg*Q5XSN|QT1TL4#MUlr@{%0r!#Ka(~cR{! zNOaVs;_i@<(cB5QNjx^W{V6sgr;Uy;E`BsJbBi-#rR+p*x8dR0duMU5z)J4R$1!|+ zcFTa?QCLVlY(|Zz9(MBq;YjVno*Os5Z#zk~J(ak*CAs07+udP5ntN}{Z<`$r8Nxnl zakio1Ak(3?dv?-xtW?-qQeW+p5ncF_+Tn6rxQT{)8&-!$OWKP)Hy>DHViM7?qqL?t z?v44U;e6en$xUqe9pPB%NR1h??3A_=36HaA zE9Dt0ks)`sANb+BrK^i_#iR!)nM7Dwwj(@V*3y?W2|a2DgQ|}iRo|c~L`BZ#xPeZX zlwpgy-^48{Qv#q9c0w{8A2jjDNek5{qXgAxKkb>0@L+Rdd}z+vNY<6@i@1iXZV@CwVj4<6U#7M7G^HYj7h99cniR8%mSG zek1Ekw50M}POBex+)+I`m@8RdQYF93Cn0d7VOK@%LoFQaMk2_rJzz6I?xeRRD=O=F zHzL9#L~f07^f0wUdE`C~_m|BH`zyA!@@N`1kh{& zua%UY_HnEn`WCknozQF$6Yj`?=@QC`=ym1-H7HibQf6|!74>rFS$@cvpx>9f4vq$U{D?6bV`>>|;Vr=uBP3dZ^Gm@1K^j~dEYJ(ZE vwLfg)w4=C1(@r}&;l|VQf0~~_y=x7`Q3vkzL3?TgLQLJKW#mREqgGiPQ_d*`0< zK6aTZS%p+<8fe0iC@PPLL}Ek}7eONiv564S7)%U*7)eDDFc3u)jnTyKZ+2UXG5%rV zrrXcGckY~Xe!ufOzrE+id#{^)rESrDik}L zXW$xKhJAPd$FT7|Y~%jvh0lMsaDNO}^ZZ>r3r}0ZFZSRn+=y$LUtPw&52Nc~@Q-;i8UL zVgX;o91byxOn4=Bq4D=Ot(%otf65cd#W8Hfcksh_3J+zo7Ngwj1veo3paxKux(O?I zDM~J%K*`k*gGmZ5K}o?BvTAiFN~lL#N!TP8pW}fn{VkN_u3=RpxN*S}%I16lWq^l} zIn*~$2KoW6#~-1D`UXm_TZnfzcA<=4#q;rtn8%+lXTvlXO=l`~4R+xW&Y(p6HQbJm zqeT2RYJ3l6(^e5abE!_8z)_S5rg1ZV6EDW!qhw^1bl!rO;wXN7mJ2FV{R(BE*YWWt zrT&f*!DD<&&dCpP93LW|*W<5IQaVPuK7lvl1^6<`gso@KpOYI<#y^5`PVUDUd;leY z*%j0xC9OJ8&Pgvyq%l$k>f^|+sKa;wA3#a@>W=v>=sm)!SUG<-tEuB5LPG+=AVBGfEMC3T4G#LW$@Rl!+e48}S8{g{LAM2 zeRbjUr*Iwj&!c4aEgZzZq7?6XK9t%T#b)MLALWAJ)j00MTTxQ|0`eWTgEUB_l?4x? zEbuG12%p3o@cSqcuHYyTthxxtu!x)RA(XBC1xiL=!C8smZ(PVgs|a8ArX4rpB`8IB z2g)(J4~Ov>Zo$@`dH14x?=VUxpTf=9-8-MT+feSyNS9NOpp5^mUe?{r#cz2azKz%6 zdpM4J`jomFkKl#)81WHZ3jvC)V|I(>lODiTQn)ucvo2uIM-sXX& zx)d9ugF?Y&QR@GE)`kzh;(N}%*}v30GOKH0P%ygWVqG(?78;#8U2tI-Ou0Bn86qm` zq~d0@E0wg1ZP`Xa*m%l>cG?tmAvQs3U6kb1c(JIfrf35-ZmTvb%V5=DKZ90`o^f$l z)PbHdX=<2GCccPIVwaUGx@Za}O5-532O6U_rsy@(Jj{YHtPilN#*m3~QLayy4D&bM z%=wnZ&(CHyOdDaC+fx%IcFKk}t>?Aw-IIl>mB<<^(`mhCl9LCMMaudTS4wAs*bHbJ z6~e42>z}qo<8+eMYA#N5eQF|z3MNz&l^`k`ZPOf=rm$bv{mPa-ORH5@t7|SvO)=+h zYiaj~J2Jm+$)KNHGVY&VQY}|&Xw%+y^L>&VRLT971U zt$6bDEHQBuR1JHfO*OEg+HrfqGNFXA&)G<4$#%c}v~IJL3K-BqLO6|TD7tE1_fDEu zKY2g%26{`NE3qkU?W&|{ZER?$9A$YIm%FxIy!YBIL%}v(i`_m`NExFf%VL%JKE;Q6 zk8JV9ZYs3VTy)w!O>5^f8@g!|=T81q+a#aQ&vl%BeUm?Q#-xAij2^F-bu^n;UG8d0 z&exZ9`N8hZ{@rDR9i$*8jH&wZN(?QPLo#F&{j6Uxj3e>(n^rdCsPN- zVr-H`SIAosQrX2i1#2RmQpS=0Q(OPyL|sF*lx*m?p1G=zDOpsm@vLUz5(zu$Of|N$ zk)7OJZTX{3{7v!KiFls_7BWLrbUHh}n5r#@)=B-Q zOiZd0r^DcQ_b_yi1C7ZIQ}&jmSIJT19Mss>)SYM?vOw12UpxE9vpX4UK1^OY(L0Vl z%xT%1RZZ*?tLY$CSEZ9Qb~Cg(3F07%_+DdR9W2! z3e99ZiZUAQl9SqrKfUFuR!2@g*h;o^bkIsZ@B7wX=^tEscju1(-bZ|YXKvfBh)!XX zf|a?`%+YD+8W{o7)!p&lQJ{AOL{HMQ$i}jMUbNf&?#^L-nVll~M(1TO*e1D88;QBv z236zuLER?)?6IlYi=*POk^1rNx~2Z!N|a0&RV6V8w@W>R)K;lLi0) diff --git a/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po index 25700f8f..dc9ec274 100644 --- a/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-27 15:25-0600\n" -"PO-Revision-Date: 2011-11-27 21:28+0000\n" +"POT-Creation-Date: 2011-12-03 16:57-0600\n" +"PO-Revision-Date: 2011-12-03 22:56+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -98,7 +98,7 @@ msgid "Tags" msgstr "Tags" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas or spaces." +msgid "Seperate tags by commas." msgstr "" #: mediagoblin/edit/forms.py:33 @@ -264,6 +264,11 @@ msgstr "Documenti multimediali più recenti" msgid "Enter your new password" msgstr "Inserisci la tua nuova password" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Submit" +msgstr "Conferma" + #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" msgstr "" @@ -369,10 +374,6 @@ msgstr "" msgid "Submit yer media" msgstr "Inoltra documento multimediale" -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Conferma" - #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" @@ -383,6 +384,35 @@ msgstr "" msgid "%(username)s's media" msgstr "Documenti multimediali di %(username)s" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#, python-format +msgid "By %(username)s on %(date)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +msgid "Post a comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +msgid "Post comment!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +msgid "Edit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +msgid "Delete" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 +msgid "Sorry, no such media found." +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -513,6 +543,10 @@ msgstr "Più nuovo" msgid "Older" msgstr "Più vecchio" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +msgid "Go to page:" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" msgstr "" @@ -530,11 +564,11 @@ msgid "I am sure I want to delete this" msgstr "Sono sicuro di volerlo cancellare" #: mediagoblin/user_pages/views.py:155 -msgid "Empty comments are not allowed." +msgid "Oops, your comment was empty." msgstr "" #: mediagoblin/user_pages/views.py:161 -msgid "Comment posted!" +msgid "Your comment has been posted!" msgstr "" #: mediagoblin/user_pages/views.py:183 diff --git a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo index 5267eddc326e7a290cbda88ce645b5dcc88c5f81..e2a241a8fb244e61c266aea04de80fc49f2c0a9a 100644 GIT binary patch delta 4229 zcmd7S3v5+)9l-H_w*h_7LJRZ(ef)1rpR|Pn1z`wA28B98fzFCCu+w`_+atHgUnmtXJwotUE3On&|V3-KkqfUn_v zJe#Rh7H06Z1aq(*KZvdPF!E8)^CexML3!>hPF89}Wo9e2o`z{ipK2>kM+;jpfik%# zkrz}&j#33!gYw)ml=k*?`z9>rcMNCaZY;;g@D4nRQ}F~AF~0hF`hh=SE;rBN{r$$j7Z2!rztf&nx%*S_;QPgxACt(@N=2W4yFHg6(rQLvKv~NN7OYKa%3uP%| z$ZXW(C?R+n`|!Kd2@qqc3PzQn&PVR4bto~~iZVeTWnhDR)FHm)`6DPXdjY%fS14Ig z$NCy^8_vPcp={Pu*n&Sn+0?%kutC!CKWLDFGYOOgy#%G>YFvvAD4Vqt+i?%d059WG z%pixGaT#jt!%p0T^YI)?B=ZP|k27%A0dlUy~MQ^KZO_YNtBg6MBL@Q)3^kGjhir+l}3G(z2p_CLc0+v>B`F7xpsCNIOza7i1w4!L+)KQ!cOH_5DuS~2t;m?_ zZj_{sBL_q6MtScMlw>@JBl5x%=^Mw>H%_HJjYLZ=P0Oef&5H-Gm zGGJbPc&?);3ot0>`Vg+dnGNCAbf)b^N$y>EJANA_Lf;wTLeBM1aW%e-4i=LkveHp( z!#|>IRdZu_uGgSs@qNfG^&HApy^03kMLE{{n!;oKJj%d-$J_7{W?|$VE~aoXMV47z zH|X05*XpGV}AdCAE3Fq;`h(TwPrkvjWCct1UNb$IYp% zd(6D-lG+}}jcLnG>K-R~&Rld2Vf> z`>Y|Go^749gH?Kcz-nyEPe#<5m=la~}fbrsFyN2cDJ z5gE4QQLo>YJE^s8kVv$7-El^ibwUwv`iaW8?^vwO!w&k*t!0O!|M$o)6 ztu{+{SiV2(C1U2S%E$`F34f`L@tB=Z8@&NPlKO7cNpCQr8MWUgsKXW$?jHz}&1z%9 z>2+KyZstv|ob40u%MYmzkDuu`BBp)%j=Y2yMv6t+v50BTFU^a3Lw4fIxTY~Ql_>vFw7$LzSx6m_>9wa7VH zypB0B*}7<-9o<3L$t!6cwiCAY2NQPlc-D-sWQ=$+l`vS|up4&Us0ZR!)V>@Gzft?L z|EY-fSVIJscrbU?-R~vrRIGK>a&_G6m1L5chEHF;(dh(lR-MTKTRTL)*K*A9nJe?{ zgwvA@Ur0qKVlK{ne_mI@b9=8udc0-Uq>K%h*BM-nK(pG)qWTBfxo%s=mq_fFI?D8hCvrdmg2dR}_vr!Ql=e>ODBcHl$+tmZ) z45^X2YjzgQFx`b4=5fw!Cgk%5QS9*&j1bqoseErr*l|)LeR`YCGlh$b38bi!NnesVs+z7hP8@ zZnCm`@#?B_DP2)Yuc;^#qhFsG`|`xt_{8Ydxn#@Sq;<-0a zTGYPsIp)Q((NuXkUfytZc^O|<@z@QN7PBBPGF}l`ab0=otlVtQOe^@`mY9;Nj{m;I zMCWd9*mC1F=DE31^Ll=9*){2VCB?%!(`Z%^V$I3_hbpw#{IzaI!H5676dfuqGNtvc*OepF oGHcEF{`$g;jI-kQo}&NUpk*@9H^p9+%t7wdfHMgRZ+ delta 3805 zcmciCZE#f883*vQBLxx?NCG4w=H+Y%8xlABMgSXxm;t2_38sa~Fly_~?%C`mckkWa zdw0X)w9D@L5@u8ek5J;sAgIy7(mGx3IFe3U`=RYvt9ClIU#gB*2d1@UtTVR5wA%l3 zH@F47i?*G9$ywA*i|N7kfyRZ@MAHybCwFG~#6E?tJ*oyhtZFs0g z!#G?8v#%jbwLR}9Na1c^0Uw~ArAO@ond<{|wMj@hR1xTqLsYSs?@bD-aDD)2@6?YY)3d7zx zP_|{qP*5jQ;{T`~=dXH6VS=#oFLj7=biF25y2sfZO4pAXOxSa()vI!U#N@ z!vl6E`y-@*F2HFIW0zqk-cRGd=$!ltQXtQwo<_(g`WEZ$s*kg%tT=co3d}v=l8ZjA0Dc0V(jC z=llkw{&Bbt<{uK^;+I{<2SwbBLqg}| zMtsnOcR6`U2C396M>(Jvq=^ne3g}r#d*DS#Yds62umMM554;E74c~xtn!>*F(nTSS zyC3H0p*Z)&<1mExCm~hhcaSRa38Z6GhuJs5yWmDR1?d>Q2|1+t(!^d!rzis{&}rBY zOOPt~F{I79u#4?;Z|}`r<+U4tTk*v(RN*m58GQz~!)SMTQ#}VI-rs={Xx&h*#56=K z?0G2PT-08j5K2s#-?Gx9N!5O2vA>$fO(D1vjT&j)mj7z<{dX4`y1tm}w0Kg)RD})j zl%_-lj~gaW2_vNmZW}ymXqqx=n2L>o^cc4i#soLwac-FEn5rw9+lpz`jEM25DHK~Z zbj!;IVzJK$R+FkeMuR1laSWOee8Mob7+3hH7_x1F`P`Z9glVM55PdRkPhR!~t9AmO83xs+|pRzIIny zvsKE>O_|%-l(6OxMnO`1mJzon6jS)Qsz08n*N0to8nI*}wWXjIc+|<$H zn2hU&&5@rmAz}e`i%x~f8fla3VuGg>%R<#+^V`#wFm)v*e{|s zy2mL31Qh6E_>%9UZL-}M)l|KtS3T@$Ef-NUGQ#xE|CXy(AP|s8z24H6r5inRa@mOd za9OA1H7$#U$#xql%PX@r?ee9XL<_Pt5%FmD^G&Cz*d)lC)=U1ZrfqXDrHlzHNC^cJ zc2aBKvd>8KsG{?P&{D{et4Rc%p{=D_|5-aPWz!`CwaxO5+FRwXYi*gS>ySUL>kk^H ziA`iD6uVqEuEb)duq>WHi4+Z+IF`lU6gs!DV|Dqry6y^#?ZL)~tD4-rqM-{@A}Fuh zmJ((h1)Fz#+*Na{<1M9@Kkbo+SMHD>tlU%z)-UkL`x+YMg$6}t8w1U8f!x)op)(Xw zjc3aX?k=WR&Nfa)!abodkF4tp_x6O=heDON@9z1!$fy<$S;O7lV3dRS9cwp%+1T<+Fb%y?tpDrl`rEGxKUO&zjBQ(0;h1!DL&~GOHSdu zQ+)2qjo|UhrImZXa23Q`I&c-7!!_WO$6I^lUt3RJv#a2AoBvC{3Zz~YC@tjs|KD{` zI_ka4BR#7JJDtL;Q+WRU^Cz7AQ73=QDLm-pPdSAWRj_!!`+4uBnaBS3%J|3X+pp1; z(IgkH8J2}Lqw z|3UGHlYhp^|Io>wb@KN*g-IuWzuPi(X(oRacguU7vvjxg%RSx8<-zVj8LZz{YP_M| zBM_&?ii26SNk2R6fuC4Q;x? ATmS$7 diff --git a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po index f2989e0e..5dcf7377 100644 --- a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-27 15:25-0600\n" -"PO-Revision-Date: 2011-11-27 21:28+0000\n" +"POT-Creation-Date: 2011-12-03 16:57-0600\n" +"PO-Revision-Date: 2011-12-03 22:56+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -96,7 +96,7 @@ msgid "Tags" msgstr "タグ" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas or spaces." +msgid "Seperate tags by commas." msgstr "" #: mediagoblin/edit/forms.py:33 @@ -256,6 +256,11 @@ msgstr "" msgid "Enter your new password" msgstr "" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Submit" +msgstr "送信" + #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" msgstr "" @@ -361,10 +366,6 @@ msgstr "" msgid "Submit yer media" msgstr "コンテンツを投稿" -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "送信" - #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" @@ -375,6 +376,35 @@ msgstr "" msgid "%(username)s's media" msgstr "%(username)sさんのコンテンツ" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#, python-format +msgid "By %(username)s on %(date)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +msgid "Post a comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +msgid "Post comment!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +msgid "Edit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +msgid "Delete" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 +msgid "Sorry, no such media found." +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -498,6 +528,10 @@ msgstr "" msgid "Older" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +msgid "Go to page:" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" msgstr "" @@ -515,11 +549,11 @@ msgid "I am sure I want to delete this" msgstr "" #: mediagoblin/user_pages/views.py:155 -msgid "Empty comments are not allowed." +msgid "Oops, your comment was empty." msgstr "" #: mediagoblin/user_pages/views.py:161 -msgid "Comment posted!" +msgid "Your comment has been posted!" msgstr "" #: mediagoblin/user_pages/views.py:183 diff --git a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.mo index e6d1976b50c6e22408bf3a5a008974fba3a54eb6..d7ba8ef6c2d1b6e9ba18a0af4b68244c134c29d5 100644 GIT binary patch literal 11306 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\n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -98,7 +98,7 @@ msgid "Tags" msgstr "Etiket" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas or spaces." +msgid "Seperate tags by commas." msgstr "" #: mediagoblin/edit/forms.py:33 @@ -261,6 +261,11 @@ msgstr "" msgid "Enter your new password" msgstr "" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Submit" +msgstr "Voeg toe" + #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" msgstr "" @@ -363,10 +368,6 @@ msgstr "" msgid "Submit yer media" msgstr "Voeg media toe" -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Voeg toe" - #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" @@ -377,6 +378,35 @@ msgstr "" msgid "%(username)s's media" msgstr "Media van %(username)s " +#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#, python-format +msgid "By %(username)s on %(date)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +msgid "Post a comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +msgid "Post comment!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +msgid "Edit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +msgid "Delete" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 +msgid "Sorry, no such media found." +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -504,6 +534,10 @@ msgstr "" msgid "Older" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +msgid "Go to page:" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" msgstr "" @@ -521,11 +555,11 @@ msgid "I am sure I want to delete this" msgstr "" #: mediagoblin/user_pages/views.py:155 -msgid "Empty comments are not allowed." +msgid "Oops, your comment was empty." msgstr "" #: mediagoblin/user_pages/views.py:161 -msgid "Comment posted!" +msgid "Your comment has been posted!" msgstr "" #: mediagoblin/user_pages/views.py:183 diff --git a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mo index ba427c291aaebb46cc2323e8daa519590a316c2c..a75d86a72b3bec677f537285bc91700c2029f5c8 100644 GIT binary patch delta 4349 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 X$_-pRv`(w*=!%lXtB(Z0^VNR=;_uE1 diff --git a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po index 21cfdda5..10fad192 100644 --- a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-27 15:25-0600\n" -"PO-Revision-Date: 2011-11-27 21:28+0000\n" +"POT-Creation-Date: 2011-12-03 16:57-0600\n" +"PO-Revision-Date: 2011-12-03 22:56+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -99,7 +99,7 @@ msgid "Tags" msgstr "Merkelappar" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas or spaces." +msgid "Seperate tags by commas." msgstr "" #: mediagoblin/edit/forms.py:33 @@ -263,6 +263,11 @@ msgstr "Nyaste mediefiler" msgid "Enter your new password" msgstr "Fyll inn passord" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Submit" +msgstr "Send" + #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" msgstr "" @@ -377,10 +382,6 @@ msgstr "" msgid "Submit yer media" msgstr "Last opp" -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Send" - #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" @@ -391,6 +392,35 @@ msgstr "" msgid "%(username)s's media" msgstr "%(username)s sine mediefiler" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#, python-format +msgid "By %(username)s on %(date)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +msgid "Post a comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +msgid "Post comment!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +msgid "Edit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +msgid "Delete" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 +msgid "Sorry, no such media found." +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -516,6 +546,10 @@ msgstr "Nyare" msgid "Older" msgstr "Eldre" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +msgid "Go to page:" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" msgstr "" @@ -533,12 +567,12 @@ msgid "I am sure I want to delete this" msgstr "Eg er sikker eg vil sletta dette" #: mediagoblin/user_pages/views.py:155 -msgid "Empty comments are not allowed." -msgstr "Du må skriva noko i innspelet." +msgid "Oops, your comment was empty." +msgstr "" #: mediagoblin/user_pages/views.py:161 -msgid "Comment posted!" -msgstr "Innspel lagt til." +msgid "Your comment has been posted!" +msgstr "" #: mediagoblin/user_pages/views.py:183 msgid "You deleted the media." diff --git a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo index 31cb860cd750b944203723b467ba2fb43fbc860b..e78b8e3b001bb9fc065b7729c43ab0da1a0487e9 100644 GIT binary patch delta 4382 zcmc)LeQZ@{9l-JD^3s-;z5<1o0?+L`rEiqcNoC+DZw1SXEtzZ+a(eI6_Ke$e+H=lr zSClm{gTpCCkD6`SA4a#}vS6ZB+zck0xDB%{8OBA48=DD^pg5Imf9RIQ@9*AQ9L-cT zBsQ1(Irll|JkRg>Jl=!{gZ!)D-<6s2>z{w8vz409&!1u`{t_?Y zWo*H7IZDmJ2w&}(hud%iuEsATA9aQ=>H1}q=gwi4QWGjCSE()<3Xwk5UMxZjSE7d! z++)ZKYFVCAC0L8{+!~bjZJGAnxQO3zEXPB*6d%G__+y-lr*R?Ut6yXu_#NhRL++MA z0WQRPl)yfL(!o|-fZfO|Du#{d;vsw#e~smIwgRu>GF)1q)Htrg7(RtjNqI$~QuE{n zR^q2nW|$10h*V9;t1r_cbNv$*;|Itns))wfxCCW!s!-ZHGVNP3cH?{(4I)@rBqU?&<;|tDKBIzZp7PB0y~QIJE5LUU#J(c zog1&BWMnR3?!*NsOJY#=$_Pq_hw-a8iIUn)oI)9JJ4&YRMp@$nC>imP*wis3x#}@o zDhKo@T*z9VN7DCg&6C>`8|sojo}nS;o7P)AS#{w7K$zK!?d zZ}7LcTc?+zDauBjpkXf;U&JGL6!RH{XVuqHX7odBz~@i``3uU-W>%#G$wg_`NEd1q z%KLjz-cOmyj~3&ZA`HB9dKo8D*x~)#+3hp=78OCDkn` znOlc0eiCJ=P9v+SUP1}vGD={7$2u&pA^&n?LrwZz_n>raP*Qpy?!ludseBDvu%tG9 zt~X%noZ~IDKZsfQ3`#&Rp!EML%96Z=GV`mr8Q-rZ{}NFr;q1m3uEif=Ctk%>*j}#` zL92UE0{RNJ;_opVOP8n5^-`4j@HLcyUq@M*w^81Yu#WP4ElPmR6I@6N*Wzus9p!i& z!}a)c+<~(=yt0dXQ10J@68PiDM?J@vEY)8zfrX?+0{k4x{gXHo&*Kby9rG~yCKnRX z6;w6#N#A&mHDs3ib-o@laoY+X&8p1rO9p}K?6+cp?K)vaS#|j5tejFuTd|m%bOLP! zIvBKl?c0F~XJyw;d*N_dTWDwBl@pI=`usx9*%{+H472OzY1h#;^>Hg;Ox0;QF_Q?N zpR*@iky}>RZ#!{qIpezDP8e1+B~P!35=)5-K3`-Gp2_v-yd_mc=%pkb>0?N2QEzm zrepH+bB{-&V+2Zyk2tuYCoop@mbYyOqGioL5cq-EHaN)juCKXr% z`_st`-zco>*Sj(UsU2p_cxs26&IZ$I8ur|n@qODFP&*UxYaz)Gp4{mU`_a^QV>)ai z8ZzX4%wlds!@+p7+UeN?wqqs26-AZhK1-rA52;-)KQlj~;kKd!1)iHuDETn)XxLm_ zQ4n)S$;q`;Y$@(qZb-iE_<@&9ExWIJ%&_rTD9yxt-8Y`<)bg9d3;T0JX~0^D}1=5u6Mx1^_U$Ds$P0jy@Mu`5t*0c z20CsMh7fh1iCJt-nY@nMaarZqpotw|N!WVQN7Qq?6^2Iq7a2 z^>D(9nWMF4`qAt0YO$YQ_iF+xHQq|QQ zpD4X$5s6e*p!$u(9&;Tfd32LO__xvr^4pqPSLv1Q9jk9`YHbgXFI=3PYH4fhSlvE3 zxv(QL|0Ao>l|@z4ip&34jT*wY%i4=>kJ~XSisk8{Gbg3my!#JeMD1&liQfN10nBVq*_vTbeQ)9P>i3=c zwbQHLh59*>-BRjqZUua6d9;gOZ%z>mvl^V%RGIv53ZUQ6v^Y}$&zz+AQ81~4QzcOS E1IE=9BLDyZ delta 3916 zcmajge{7vq8Nl(=Fk~x?t{r0=YqxW|u0KY5Z(BOi!YH*HgN3k@#AMC4@`*8zGz$y0Qop=X6g}=r@ChNte=ku&QFvLX_ z_hBAi!wlvaMJC*booMXCO&e!rtv~0ELLZVh*Kw0Vott4!ci-))&p}&ig+_gkCgd_77Q8wo&$^hR+ z=1@_i#g$4l`Wn8jbNWWzKUO&2J2J$7Oa52LL3IF8{7 zloh{+8vlW^X{%X2bEyqDfx{>hRPZu<5_jM`C>a?hoj2ny9LC3Ixu7!D?@2 z>Ypepc#luLjc1d`E%;}g#4ge#8Tc%Qcppl}{*Bu(w~ms=1ZDj1&-)x2Ue{0-G}}il z%Ed75#mkUNR9`{LKz)7QrxKZ}x?YdRVM>_rMp-HODlLL>%t7qVz|4COdHi;{t# zpwz-CWWlrQKU_#TwytlyF@o~J>#+-GkYDux|0K{SQBwabvW@CRybfPS3Al&RB~zE; z5%lr5_$Tbcmv!U3yo>k9fn7z#+{GJ@AkU~CqLI|@z|D97rTD&x64*T`TlEO?5jBUD zgZdT9=iWgH>|ZFUZ`n9s)JXGCBPc~XhG#Rs+Qx;XW+%#C=J8ATI+AU5BWaMpj$jWS zMVaWwD495k`|&rJ!yHFJs{Ixm!F%x%dOgHleI+7s|vw z?!)`=a(n|Pu$^dR;9HTo)k7$OJconW(%T5|N|a-GHOhPz<@xXRs)O|v{FECK(MjBj zZ=h6f2OBnq2XGG_MG5FF^za<^=VDAyiuMtdt#|_M$#XiFmyA;|(JgU0<-5s)OZ%7W zVq}bV^7$|g68p(@-5-9$dh2eoCzlS*>ayqLjV^|fE}O9I8J&bWA9|iM6-G|N5J5r5 zrSPy0i$xtq?z9^?Ui~f;x)oE<`N%kl8wPPkjTZ{qHwD*G%QBs``*|7zUX>T{O&J ze==j6m%Tchx?WOWhB=a$AaXGTBS~l_G!6ZnDFAj^zVJ9;E z+70qvT9EiFZoz~)PRr#mN-}+F!U^)mQxhd8m^Ru?GF+PcAzif>Ht$~U`$VhDVVsyk z#@^c8Zl7%aj-5Pr+&+J~}7#hQt95GIwqIxvTI*@V*{(Wfs4y-8h@g&UKuBpvm6dGHKs!>9Kl6$5Ioiy`N;)Y|WLOX%pvUh1pW#d!1Jt3{#zV0$nm* znMG^YC*X?InH!(p$c(I{&t_ZO?TxKh*`Kv0w$j#Rf6z9T3!{jNN=i=BNThZOg~-IQ zE|D|GqoNB{3e^NUp?m}Te%t0{vAUirDY~BBdco>GrX;9L{a)EbMUu7XEY-KMo|(*C zdF7)`_RFiTv4323*<9|zB~A9u)obiqs~uZilWi{=*6!xRK#@SVSZ!25eRnhV#Wi;i z4-E_s>ETO8heielw+s$8e|qo0XH3P7IdKEqIH99@cyMTFfZxGkJvcHtbje(G?P!yI z^`eiog|2Zu5xGXEzC$4fiKC~Z+OdR`Nv4|h=^wI7h2%YIkP=zkTWB1^qZ46Jbf;4) zDK;skQkyGBF2}?~oEK_yQH}i1!1k4Om(K3@wU5=EVkSkHre`r5)ZYvCH z!ahCUh@41`dz?=*;HVpCbIrgcJ=WMk8YI|z^9kbj2 zPgmMT!)Io8fNoWB8Y8HMyX<}t(vJu~jnmpOsRC-J(VNBtj>tk1X80O%qJdZz5!B}5 zFr=nDnIsnWIhitc};Ltd|PkQc<2Nsz)(ula1Z>_{L2wyB%t* zA~jO)S+=E1+iSbZJ=+YKtc0GFJN;h1I~OXLMO4Ck?eT@?HU81&b%VUm$H1Ny3J!o(4o*E*8eCm~@6y*aZ;2fCR@p_Th)30a9 zgozXR@3TAhh3>w6+Y|S;)Fe)<_VNXETPmj_kP7D{^8G6(xZWJ>N9OL JjYfl0{{`;&#&`e# diff --git a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po index c4f77f8a..0512f43d 100644 --- a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-27 15:25-0600\n" -"PO-Revision-Date: 2011-11-27 21:28+0000\n" +"POT-Creation-Date: 2011-12-03 16:57-0600\n" +"PO-Revision-Date: 2011-12-03 22:56+0000\n" "Last-Translator: cwebber \n" "Language-Team: Portuguese (Brazilian) (http://www.transifex.net/projects/p/mediagoblin/team/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -102,7 +102,7 @@ msgid "Tags" msgstr "Etiquetas" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas or spaces." +msgid "Seperate tags by commas." msgstr "" #: mediagoblin/edit/forms.py:33 @@ -267,6 +267,11 @@ msgstr "Mídia mais recente" msgid "Enter your new password" msgstr "Digite sua nova senha" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Submit" +msgstr "Enviar" + #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" msgstr "" @@ -382,10 +387,6 @@ msgstr "" msgid "Submit yer media" msgstr "Envie sua mídia" -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Enviar" - #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" @@ -396,6 +397,35 @@ msgstr "" msgid "%(username)s's media" msgstr "Mídia de %(username)s " +#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#, python-format +msgid "By %(username)s on %(date)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +msgid "Post a comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +msgid "Post comment!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +msgid "Edit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +msgid "Delete" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 +msgid "Sorry, no such media found." +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -526,6 +556,10 @@ msgstr "Mais novo" msgid "Older" msgstr "Mais velho" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +msgid "Go to page:" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" msgstr "" @@ -543,11 +577,11 @@ msgid "I am sure I want to delete this" msgstr "Eu tenho certeza de que quero pagar isso" #: mediagoblin/user_pages/views.py:155 -msgid "Empty comments are not allowed." +msgid "Oops, your comment was empty." msgstr "" #: mediagoblin/user_pages/views.py:161 -msgid "Comment posted!" +msgid "Your comment has been posted!" msgstr "" #: mediagoblin/user_pages/views.py:183 diff --git a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo index 2ab9cf8b6ab09d244718b9c17c0cfccdc88f9e22..c2044ccbb115fd60d7423191b672c46b414a452f 100644 GIT binary patch delta 4583 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 D\n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -57,14 +57,14 @@ msgstr "Ne pare rău, există deja un utilizator cu același nume." #: mediagoblin/auth/views.py:77 msgid "Sorry, a user with that email address already exists." -msgstr "" +msgstr "Există deja un utilizator înregistrat cu această adresă de e-mail." #: mediagoblin/auth/views.py:179 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "" -"Adresa ta de e-mail a fost confirmată. Poți să te autentifici, să îți " +"Adresa ta de e-mail a fost verificată. Poți să te autentifici, să îți " "completezi profilul și să trimiți imagini!" #: mediagoblin/auth/views.py:185 @@ -73,11 +73,11 @@ msgstr "Cheie de verificare sau user ID incorect." #: mediagoblin/auth/views.py:203 msgid "You must be logged in so we know who to send the email to!" -msgstr "" +msgstr "Trebuie să fii autentificat ca să știm cui să trimitem mesajul!" #: mediagoblin/auth/views.py:211 msgid "You've already verified your email address!" -msgstr "" +msgstr "Adresa ta de e-mail a fost deja verificată!" #: mediagoblin/auth/views.py:224 msgid "Resent your verification email." @@ -89,7 +89,7 @@ msgid "" "account's email address has not been verified." msgstr "" "E-mailul pentru recuperarea parolei nu a putut fi trimis deoarece contul tău" -" e inactiv sau adresa ta de e-mail nu a fost confirmată." +" e inactiv sau adresa ta de e-mail nu a fost verificată." #: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" @@ -97,10 +97,10 @@ msgstr "Titlu" #: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 msgid "Tags" -msgstr "Etichete" +msgstr "Tag-uri" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas or spaces." +msgid "Seperate tags by commas." msgstr "" #: mediagoblin/edit/forms.py:33 @@ -128,11 +128,11 @@ msgstr "Sit Web" #: mediagoblin/edit/forms.py:49 msgid "Old password" -msgstr "" +msgstr "Vechea parolă" #: mediagoblin/edit/forms.py:52 msgid "New Password" -msgstr "" +msgstr "Noua parolă" #: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." @@ -149,15 +149,15 @@ msgstr "Editezi profilul unui utilizator. Se recomandă prudență." #: mediagoblin/edit/views.py:171 msgid "Wrong password" -msgstr "" +msgstr "Parolă incorectă" #: mediagoblin/edit/views.py:192 msgid "Profile edited!" -msgstr "" +msgstr "Profilul a fost modificat!" #: mediagoblin/media_types/__init__.py:61 msgid "Could not find any file extension in \"{filename}\"" -msgstr "" +msgstr "Nu pot extrage extensia din „{filename}”" #: mediagoblin/submit/forms.py:25 msgid "File" @@ -173,19 +173,19 @@ msgstr "Trebuie să selectezi un fișier." #: mediagoblin/submit/views.py:127 msgid "Woohoo! Submitted!" -msgstr "Gata, trimis!" +msgstr "Ura! Trimis!" #: mediagoblin/submit/views.py:133 msgid "Invalid file type." -msgstr "" +msgstr "Tip de fișier incompatibil." #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" -msgstr "Oops!" +msgstr "Hopa!" #: mediagoblin/templates/mediagoblin/404.html:24 msgid "There doesn't seem to be a page at this address. Sorry!" -msgstr "Ne pare rău, nu există nicio pagină la această adresă." +msgstr "Nu există nicio pagină la această adresă. Ne pare rău!" #: mediagoblin/templates/mediagoblin/404.html:26 msgid "" @@ -209,11 +209,11 @@ msgstr "Transmite un fișier media" #: mediagoblin/templates/mediagoblin/base.html:65 msgid "Verify your email!" -msgstr "" +msgstr "Verifică adresa de e-mail!" #: mediagoblin/templates/mediagoblin/base.html:72 msgid "log out" -msgstr "" +msgstr "ieșire" #: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 @@ -235,21 +235,23 @@ msgstr "Explorează" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, welcome to this MediaGoblin site!" -msgstr "" +msgstr "Salut, bine ai venit pe acest site MediaGoblin!" #: mediagoblin/templates/mediagoblin/root.html:28 msgid "Your finest source for all goblin-related media." -msgstr "" +msgstr "Locul unde elfii își transmit fișierele media." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "" "To add your own media, place comments, save your favourites and more, you " "can log in with your MediaGoblin account." msgstr "" +"Ca să adăugi propriile tale fișiere, să scrii comentarii, să salvezi " +"favoritele tale și multe altele, autentifică-te cu contul tău MediaGoblin." #: mediagoblin/templates/mediagoblin/root.html:31 msgid "Don't have one yet? It's easy!" -msgstr "" +msgstr "Încă nu ai unul? E simplu!" #: mediagoblin/templates/mediagoblin/root.html:32 #, python-format @@ -258,6 +260,9 @@ msgid "" " or\n" " Set up MediaGoblin on your own server" msgstr "" +"Creează un cont pe acest site\n" +" sau\n" +" Instalează MediaGoblin pe propriul tău server" #: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" @@ -267,13 +272,18 @@ msgstr "Cele mai recente fișiere" msgid "Enter your new password" msgstr "Introdu noua parolă" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Submit" +msgstr "Trimite" + #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" -msgstr "" +msgstr "Recuperează parola" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 msgid "Send instructions" -msgstr "" +msgstr "Trimite instrucțiuni" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." @@ -371,30 +381,55 @@ msgstr "Editare profil %(username)s" #: mediagoblin/templates/mediagoblin/listings/tag.html:35 #, python-format msgid "Media tagged with: %(tag_name)s" -msgstr "" +msgstr "Fișier etichetat cu tag-urile: %(tag_name)s" #: mediagoblin/templates/mediagoblin/media_displays/video.html:19 msgid "Original" -msgstr "" +msgstr "Original" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" msgstr "Trimite fișierele tale media" -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Trimite" - #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" -msgstr "" +msgstr "Fișierele lui %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" msgstr "Fișierele media ale lui %(username)s" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#, python-format +msgid "By %(username)s on %(date)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +msgid "Post a comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +msgid "Post comment!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +msgid "Edit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +msgid "Delete" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 +msgid "Sorry, no such media found." +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -438,7 +473,7 @@ msgstr "Ne pare rău, nu am găsit utilizatorul căutat." #: mediagoblin/templates/mediagoblin/user_pages/user.html:50 #: mediagoblin/templates/mediagoblin/user_pages/user.html:70 msgid "Email verification needed" -msgstr "Este necesară confirmarea adresei de e-mail" +msgstr "Este necesară verificarea adresei de e-mail" #: mediagoblin/templates/mediagoblin/user_pages/user.html:53 msgid "Almost done! Your account still needs to be activated." @@ -524,13 +559,17 @@ msgstr "Mai noi" msgid "Older" msgstr "Mai vechi" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +msgid "Go to page:" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" -msgstr "" +msgstr "Tag-uri" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 msgid "and" -msgstr "" +msgstr "și" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" @@ -541,20 +580,20 @@ msgid "I am sure I want to delete this" msgstr "Sunt sigur că doresc să șterg" #: mediagoblin/user_pages/views.py:155 -msgid "Empty comments are not allowed." -msgstr "Comentariul trebuie să aibă un conținut." +msgid "Oops, your comment was empty." +msgstr "" #: mediagoblin/user_pages/views.py:161 -msgid "Comment posted!" -msgstr "Comentariul a fost transmis." +msgid "Your comment has been posted!" +msgstr "" #: mediagoblin/user_pages/views.py:183 msgid "You deleted the media." -msgstr "" +msgstr "Ai șters acest fișier" #: mediagoblin/user_pages/views.py:190 msgid "The media was not deleted because you didn't check that you were sure." -msgstr "" +msgstr "Fișierul nu a fost șters deoarece nu ai confirmat că ești sigur." #: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo index 4b5481e070c77a113503c11ef4972e86a877f8a4..1976596794ad6bab665cadd747ebad6a558b0dd0 100644 GIT binary patch delta 5006 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 delta 4324 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 diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po index 9fb1ce08..cee135ca 100644 --- a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-27 15:25-0600\n" -"PO-Revision-Date: 2011-11-27 21:28+0000\n" +"POT-Creation-Date: 2011-12-03 16:57-0600\n" +"PO-Revision-Date: 2011-12-03 22:56+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -101,7 +101,7 @@ msgid "Tags" msgstr "Метки" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas or spaces." +msgid "Seperate tags by commas." msgstr "" #: mediagoblin/edit/forms.py:33 @@ -266,6 +266,11 @@ msgstr "Самые новые файлы" msgid "Enter your new password" msgstr "Введите свой новый пароль" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Submit" +msgstr "Подтвердить" + #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" msgstr "" @@ -382,10 +387,6 @@ msgstr "" msgid "Submit yer media" msgstr "Загрузить файл(ы)" -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Подтвердить" - #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" @@ -396,6 +397,35 @@ msgstr "" msgid "%(username)s's media" msgstr "Файлы пользователя %(username)s" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#, python-format +msgid "By %(username)s on %(date)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +msgid "Post a comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +msgid "Post comment!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +msgid "Edit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +msgid "Delete" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 +msgid "Sorry, no such media found." +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -525,6 +555,10 @@ msgstr "Более новые" msgid "Older" msgstr "Более старые" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +msgid "Go to page:" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" msgstr "" @@ -542,12 +576,12 @@ msgid "I am sure I want to delete this" msgstr "Я уверен, что хочу удалить это" #: mediagoblin/user_pages/views.py:155 -msgid "Empty comments are not allowed." -msgstr "Empty comments are not allowed." +msgid "Oops, your comment was empty." +msgstr "" #: mediagoblin/user_pages/views.py:161 -msgid "Comment posted!" -msgstr "Комментарий размещён!" +msgid "Your comment has been posted!" +msgstr "" #: mediagoblin/user_pages/views.py:183 msgid "You deleted the media." diff --git a/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.mo index 684c850afbc149abf4f6fc0d198b4729317ae50e..10699d0b39f87d1e1e9288dd7d4a8cd0dc5fcfc5 100644 GIT binary patch delta 4373 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\n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -100,7 +100,7 @@ msgid "Tags" msgstr "Štítky" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas or spaces." +msgid "Seperate tags by commas." msgstr "" #: mediagoblin/edit/forms.py:33 @@ -264,6 +264,11 @@ msgstr "Najčerstvejšie výtvory" msgid "Enter your new password" msgstr "Vlož svoje nové heslo" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Submit" +msgstr "Vložiť" + #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" msgstr "" @@ -380,10 +385,6 @@ msgstr "" msgid "Submit yer media" msgstr "Vlož svoj výtvor" -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Vložiť" - #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" @@ -394,6 +395,35 @@ msgstr "" msgid "%(username)s's media" msgstr "Výtvory, ktoré vlastní %(username)s" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#, python-format +msgid "By %(username)s on %(date)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +msgid "Post a comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +msgid "Post comment!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +msgid "Edit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +msgid "Delete" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 +msgid "Sorry, no such media found." +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -522,6 +552,10 @@ msgstr "Novšie" msgid "Older" msgstr "Staršie" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +msgid "Go to page:" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" msgstr "" @@ -539,12 +573,12 @@ msgid "I am sure I want to delete this" msgstr "Jednoznačne to chcem odstrániť" #: mediagoblin/user_pages/views.py:155 -msgid "Empty comments are not allowed." -msgstr "Komentáre bez obsahu nepovolené." +msgid "Oops, your comment was empty." +msgstr "" #: mediagoblin/user_pages/views.py:161 -msgid "Comment posted!" -msgstr "Komentár odoslaný!" +msgid "Your comment has been posted!" +msgstr "" #: mediagoblin/user_pages/views.py:183 msgid "You deleted the media." diff --git a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mo index 52e3d632115379f1b744e86a536b022d517b63e9..5d6a0fe2e1955b0ad0a44a5499386808421f793a 100644 GIT binary patch delta 4310 zcmd7UYitzP6~OVkgohv4*v8o4V0_ocPi$k;0L3Yf@HT|tVz-2*fsA*r?ZN9AGc#+~ zZqWu(sX+~V8ATXAyN_f5JjN=&+eK8 zQnjSwLoKtv**i1$an8NRJk@jI;nc;FsZT3@#`!m&e;?i>-#+^}GefCTzP^HG_zqsi zf8b&~m!niJM)+8U`M3qw;!-?}{HoXakgnfGdF~ueS1P4)@|5bNVHVP-+J!}EVLN&# zllwXHf~v|_ss!s$o?C&^z9rlKb)3uhI9A|(T!2S$DxSibcm~TEU;RG&zso8P^ zt8oX)3X|dUk(!je`Zg`H)+<hHREo)7k`M7tmm*DUqeaiwGt8}9e+xL44gxtBy zmt%xI+=?qu;{f*HAzX|XQ6gDLID9O{)%awJ3klg-WDe>aYJ4AMS4<=B(q4cPLXGQi zG0MO`-j6TfCcKRNs>RH<12>{X>Hx}aIfjy|H*hzm-shr?i*-D;1Ot?V^c+sX7m%~0 zUPPJDX?!oD)T_v%)X#`3U8qxd8UKhf@G0UhxxR`kQBMB@unJ|o$B`qKQoqbxs57{X z8*icvcmw6&<}h7}&<>OcJc5$Ly*Q4?Q6^T-DJ1=>3MG~8C^=q>62VSn&g$Dp)>IM~ z$N@dXh2;7K%3e5$^5Cy9ihoAw@MEmO>Fh{ZaTChGYf&b+1<9J~M%hC)O74>w;79uuhbeeG8>t4538o7|H}sq_~g}p2l_fCd%&4XVkCa zN|c$7pq%ShP>$Dml$FimP|LZl=R;D}js3U}+wiX_dnb?4@4=Ng1s}jXjIQTm1{d2= z)ixx3<2lxlY4q!TJ!Imx6&{~nUC^5h0@vAN#RA)P!ndY3mpR&s#oVM5Xe-dcfbDDF z4oo<8M%`@>FQ0KZCmzrC^@E(Vk+Jaa^BQJr*U_~NaVuabwa#*4CK0}o`;Bl>-n{xg z+lgz-8Pk1s!f5lIz&JkRYTMD(-<39*;r{AyMc&EqQr_m8^{!JN=mBfQ(5um7CRnXI z0~TN`e=Mpt#O)xg%Xh--m2<=E`PKQGTphT2*y=YO6W^bCBoZApiI_WNq&2;iZL;u9 zZf}ASWm(aQw!()aGdrCTD`Cge(+UsF+Fig30;_*dCSc*ES@nIo%kuqE*Ndx%%&76y zLvCi}%)MpUb7RK$ZKq#tPsABN`y^j@a=Sb1N7J9pddy9Fni≪yY@wkfGsVtW|CI z?0(y^65*nv>I$FGPd=o&T)t-Ch=yB=1`9nm6FnAh;?eMLH5ElWOw1iI-p!H2O~sv! zhFIH)D8wz4?U`$0h5i1tjuu(9XAQXBz3QeS!_UA zzK+{*Nos7s#0E(Un@m~>snLGYGp!T3v!9KmT$xHHT<)lo>9$!9C#;y6jE3K=ec2i5 znD$vCgqDafch)`RdL|uh9kU#raQkJ8$xJg(e|{TecYCYq85=g*CieZ79llt2(>?Q^C@woR@zn2bWJ+Qq_#lH{+~$Q&eEvhQ40 zs|Ou-RF4j%H>@wIlJ_!62;6AcURJrap2bZjg6!ITHXWo_drPvSGR|kaYJk}H8sq3; zb`BdPeK*`!GCS-o+qQ@kXqb@C8$`0t^%xJXH;cjMMxJ>r{Q+i}A`RGgi%HeG$nZmB+9o*7KozddY+)93fB>2d>4 z&W!Fie!^Aj+$3jJcIlm0rSFB;=C@OsTEeZBrFT@Fc2}m-)oJ5`x?8H#xdlItEZS^K z)@7&u*E$up6-Fn{>#j)g=WCS?*t21E^@COE9W4iY@v?0%{!?hcjK{s6!zgXAq`(FxMxV6#wvh}PYThBTNUB}WRwr5Qi GH1#h4^Z8W( delta 3859 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 A@Bjb+ diff --git a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po index 77273ebe..568a5f73 100644 --- a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-27 15:25-0600\n" -"PO-Revision-Date: 2011-11-27 21:28+0000\n" +"POT-Creation-Date: 2011-12-03 16:57-0600\n" +"PO-Revision-Date: 2011-12-03 22:56+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -98,7 +98,7 @@ msgid "Tags" msgstr "Oznake" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas or spaces." +msgid "Seperate tags by commas." msgstr "" #: mediagoblin/edit/forms.py:33 @@ -260,6 +260,11 @@ msgstr "" msgid "Enter your new password" msgstr "" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Submit" +msgstr "Pošlji" + #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" msgstr "" @@ -366,10 +371,6 @@ msgstr "" msgid "Submit yer media" msgstr "Pošljite svojo vsebino" -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Pošlji" - #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" @@ -380,6 +381,35 @@ msgstr "" msgid "%(username)s's media" msgstr "Vsebina uporabnika %(username)s" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#, python-format +msgid "By %(username)s on %(date)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +msgid "Post a comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +msgid "Post comment!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +msgid "Edit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +msgid "Delete" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 +msgid "Sorry, no such media found." +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -507,6 +537,10 @@ msgstr "" msgid "Older" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +msgid "Go to page:" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" msgstr "" @@ -524,11 +558,11 @@ msgid "I am sure I want to delete this" msgstr "" #: mediagoblin/user_pages/views.py:155 -msgid "Empty comments are not allowed." +msgid "Oops, your comment was empty." msgstr "" #: mediagoblin/user_pages/views.py:161 -msgid "Comment posted!" +msgid "Your comment has been posted!" msgstr "" #: mediagoblin/user_pages/views.py:183 diff --git a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo index d2649938b20f6728a9c874a466ecbca909e98150..deb561048f3c58d4f92653ffdc207718568c5bee 100644 GIT binary patch literal 11247 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\n" "Language-Team: Serbian (http://www.transifex.net/projects/p/mediagoblin/team/sr/)\n" "MIME-Version: 1.0\n" @@ -95,7 +95,7 @@ msgid "Tags" msgstr "" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas or spaces." +msgid "Seperate tags by commas." msgstr "" #: mediagoblin/edit/forms.py:33 @@ -255,6 +255,11 @@ msgstr "" msgid "Enter your new password" msgstr "" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Submit" +msgstr "" + #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" msgstr "" @@ -355,10 +360,6 @@ msgstr "" msgid "Submit yer media" msgstr "" -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "" - #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" @@ -369,6 +370,35 @@ msgstr "" msgid "%(username)s's media" msgstr "" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#, python-format +msgid "By %(username)s on %(date)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +msgid "Post a comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +msgid "Post comment!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +msgid "Edit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +msgid "Delete" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 +msgid "Sorry, no such media found." +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -492,6 +522,10 @@ msgstr "" msgid "Older" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +msgid "Go to page:" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" msgstr "" @@ -509,11 +543,11 @@ msgid "I am sure I want to delete this" msgstr "" #: mediagoblin/user_pages/views.py:155 -msgid "Empty comments are not allowed." +msgid "Oops, your comment was empty." msgstr "" #: mediagoblin/user_pages/views.py:161 -msgid "Comment posted!" +msgid "Your comment has been posted!" msgstr "" #: mediagoblin/user_pages/views.py:183 diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo index 2ae7c510481b42bcd471dbaefc1d40fa70734b6c..b2194da9540dbef606baddad5d7936a50347f5e1 100644 GIT binary patch delta 4325 zcmc)LeQZ_b9l-JDA}^(d(iSK!wDh@@+c)}(0&5wHyn|K{s*ah#PVaqsd+6;s<($)Y z*THTO7d4BR>}=WGG@A~l&d4TR#BJhUnh=dI8=HxLY-*euGNajMbjdg0R85gmWmt#uUMEWXmVEooSiyY)=i`1{h~LJ^cpPWovpA3O)eHF--olwYkf)VU zjPtMoWn!yQI@pABu^ah`ieodnxE~+H*Kj_aEx`}51{W49mBwo^j?Z9JLS8jXsoC-X z7vXl46%L1wM`|NMg2%8QpDrOljHPNARf5`vJX4!cVzd)wf((mzGmEo3-D_woAoGm;BQbi^`kO2NIE`4gA80ipd{#(C>_Ue12&;-)?VC#_o58& zDz3l?Ioyh!sIeb=@Lp`gH&7y3OgMa;gV*6b87?Gb&m(hCr%>ZNC|NOuxJ&y?ln`oM zi)|Rns`KUH#+l3oYB6R>ITfT#`RVQ&5X5QhVor|@+wG;!CgY+m)!Y7ck zq>iFY=ox$~qSUXDMX5)Kt9Tqw<4Y)!_$hIhh`x;y@{dp=S4T=-gL{#FGwO$2$QJwr zm*WY{?hPinKZ7!XIMXKDY7nKv19%9>P(r(gQ<%*il$_d$(vO{QA3}nv4j^k*-@=7* zK!41I?DZ=sKl}qq^1YpXL8*VCOt6Yfw%KgvX( z!+&76&TYlIC^?j&VTg+p_z>>F+c~8~OPxd(r~Zrtf%BKkg=&<6+mT&RohSouN12$7 zjHNOt5&Is>u^U5K$gfc%_6laC<5%+!{*Dr|v-uaMEY3}!2xY)Vl&x5b%t?I~i*Yx~ z01o!!K9oqli*%(vM%kLmST4DnkdL|{M*QW$UhX)$>Q0mueFLS#C-IB;3tWa(b-5(n zjuN4-Vm&^LtMLV#iiI@FL`(B7K-rQQ%JUA~fS;)+{<4w`4eRg`Y{%2sf)x$9^Sc3A zgc`w{@w>PZKfo#2*qA%lZ79d=2Pg~pEz0qI9c4@YhSRX5DYxK?3>Ol@CR~M`*omWf zH9mzhv3F7SxQX87Twjl}*ZWWg{5oHfE6?E<@J}cU>1xhJZUC?1{$ZSiM{qhuALBx1 zbPQFjVc0jGV-1={zuwn_CShCQgHspH>>UmQ*V%2w1KV}N7pFFtJKBoJ-C-xtR-l7^ z+t=;7q{5TaZwZ$a zR@V2~PC{EwTKCy0qs^BBy}__bbC`wLY5jGYcKv>WX5J^#7fzT>`cQ0vv$p7QGu1*oeN_4 z=B)ZYy)8eGy2*?hPu=9^qQP=nhCDZJeBXAGYHKQSZc1{)n_Jx>Kbrk+&P|&c4H{xT zYO%J#p&;F=wt9BbcC1vmq-4>2pY723m((_w+x$&5+)^@7?76vs5)YGzhOMPl#c_9p zn4Am6#?sA=hTz+dA9%yr?e^6UGh{qAO0zIu_olO*T7GMIsC1;t3|e+dTZx3nI<%GY zjFm{UXSN^s;d`am7G<+Y_mL}!a9-KA@PV@Wo}@|WQ9I~YJ@lx0`b|C}vM$FBbi$+z zQ`EgCZjq9*c%85lvdi&)6CYqpNIPjIpho+{o@pJMKKn={hbb7$Ryu4l5b)^W?xDK{xOCo|2xePI&h^S@Q~q=$^QiG0$s z!=KH$w$ylbUpn`LY;>aG$8%N{-{!ea@?50HI_6G^bWf}^n212D+R35@huOJaBjZb? zB;#CGss|i*RFC#&Q`MJklHcVvAaJ8$M|t%P^(<^+6WCe1&!&UyN-x@|sEp%HM1-Tm zz8d4`A##S)$UY7Cmdy@(%e$9w91Rol`2|tzb3H~#>16gSw0I^(YUB@iYxsEiH5CL> zS%K;^GWWRaD2byx9EATYzh~ysmiDW4$MUXaD_Yu@hll1ZD9pAjUD~y5`PkUJWs!n& zmFJHY`jTRDg_Y-Ec($^jQ(l#Vh<} z?c&uJ)u{2iQXG1-!HA0f6*a0cTl8Sh3~~y%-`X9Ub>l0rliFC^F=9Fx@zhM!lQLHx8#E*l`Cm^ zpH}UP);|@=^!y)+*Ny?t9+3)@FyZSBZDqIqXYnd(TzN_H3fDJ&n2|#Dsn##Gj>`SMvxoyX-@;Pdcdn1<2WN{zz? zY=ukbD^-MR;DzvZcsYC$Zia0fl5>~xCn_$7Ii>1qoCPw~Bd`rV4)?&HL1e2XY%YSU z;bPbaZ-gT-ehx0>`tjNO&&*!G09Ud9Pk26Da1KAX9 zCRy7n1E@dh{F9a2~BiwOJ`kt{UtjRix=P$_$E9Pp24Ohs};(%o@Eat52_!EsheQ| zUI8VR4?~Gn8etNG%bewyN*#bnn1)kOJbn;v zgWrPU@!z0^Z$nAiO58`6S_gN)VJHf!@Dg|o?uM^HiO4YFybfLghv7HsET~NNM<{|` zfiJcwbpoP8{eh=mhHpZ#_&MTvEj)`bNdz)*KIcOy5xcp)>G8MWCazCFk)NjIBytzS zkHRr15v@yvrr8dJm;T|ZF`5hDko`;l+`p4|`e<9AQ#cP`> z=z(&76iO|OL%yoO9|qOcZ7ifX?wRGoPz3xI_QBVngl;*9Bn1OdI{rdPkkkm=5BEb+ zbU&0x%|J2uCHOY{n5J1_A>{7YTQbWQuG>gxktGFjVF+jZHoGDhb- zUzd$nc8m@^o$(yUn(%xpM39@+LBX5SUM{CS-_F~v<;1(FwW}tpGrqAx+jE12+Mdmx z6l|AlH!s3URuQ2Eqo+LI$!beanDH<)=!-Rn1>dXW3p#5u#tnVTv2To}#VUGDmCcIf zIJJJPibV#V=O+4e&Y(X&nTXn2e_pTHP8hpkZU~JV*b}y6hqaW}y?ZN8Xp3jD%Q~!; zO)yuO7%BDzUM`%neABOOH{(>YVt>`n8czq6a@q64M4#GWxf$cA9RN2u(H-UEj7QI@b2}=+HUaqsPxFdW)qCzR7J(7Q(PRl1}H{O3L%|$* zUSG66(u+Ih8(;17%0VKkElx(?U0mqEeIFMlY9}kuv8fmWA<2t=w0PatblJ+AAT1uI z3Sr4fjvn?ZI%B!IV4N~eYrBNORjD&Ocqfqw@uV+GEm;$NWXV|c^pY^DF71jQUAisp z`92jD7Ob!tNNr`az6kHt-evz=(`@|At4#Hd8P zS2li*V9n{JIE`^+5;Nsx541#|S+OU2dBr6&>GS5bM7OS76}__3ifXG;YjOtP?TqIt z0%+%I%?gOKn~0uVb^Gwpz~GP`-Z(O}X<%^k;9%Q__6=NRs&+uf4eX>tNA&RE(9i(i z!C^hPX=G^QOl|e%mZ)+5veP^N?)hEqA1+#DOPes%MbD*Z^3peO+oyyRID+DOXGGStZM# zFrlTrOo7%4EKOt04i&@5iT4YQY2W8*29MFiq?l4yHm38;65DZ3PM27W-_#v?%X zS9#XSO4j78*fY_X4ns=*q+NOAdZjtThK`ax7lV2OdT0SA8A0mh`?J z7|^>tFOPEvFfMRpItEzAkz^g;O0roA<>_R<-eO9l#vOT2rx`ajWf$$Tw2`!2TCUP# z?@Y5Jy|&9VF2$qmNN6$z*K@pltuHxxYUD}6wxrRZ)p%o?1Vty>e^Srqv(1Q9!iicw zKVkU=6Vmo$arWYBl;P)}=2$aSdrx(Bzn*Yp=v%H!cfZePG#(8IzMqYbcRUuA*KUh`v$ncr z*ZWMxu^NfA(L^rak)WEp(HkAhd#M{dI(2KjmScRlalz$DC~j*nU@Ts@uG^9-&G{lL zpbBhRH$!yL)|8H(ti(n0e$#Ovo{q)v|BS>t*FDzKVYlw~w} ziDNC%VCUhpi8Dt>qWe0#qGvjj3mQiqrjgn==}ji0p{`VPQh4Ljy7~3j*fM^(N#Sgqp$VYdMB|o z1M*I@;t9#6xW>draA@VDv(|SWuzWRUJKU0fwS3+>^hVX9BiYOIX14R17jl;2nV^Q6 zqavP~#dnPinJIDD5;LDz|DBfT{=Sju4SpAIcyk5b(4D+osZHL#h?Zge`wNal#r_L> YWRMQnj5T#o2B|F*E1pnuj8CZl0nO9=8UO$Q diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po index 37bd36c1..0e48dc53 100644 --- a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-27 15:25-0600\n" -"PO-Revision-Date: 2011-11-27 21:28+0000\n" +"POT-Creation-Date: 2011-12-03 16:57-0600\n" +"PO-Revision-Date: 2011-12-03 22:56+0000\n" "Last-Translator: cwebber \n" "Language-Team: Swedish (http://www.transifex.net/projects/p/mediagoblin/team/sv/)\n" "MIME-Version: 1.0\n" @@ -101,7 +101,7 @@ msgid "Tags" msgstr "Taggar" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas or spaces." +msgid "Seperate tags by commas." msgstr "" #: mediagoblin/edit/forms.py:33 @@ -265,6 +265,11 @@ msgstr "Senast medier" msgid "Enter your new password" msgstr "Fyll i ditt lösenord" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Submit" +msgstr "Skicka" + #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" msgstr "" @@ -380,10 +385,6 @@ msgstr "" msgid "Submit yer media" msgstr "Ladda upp" -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Skicka" - #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" @@ -394,6 +395,35 @@ msgstr "" msgid "%(username)s's media" msgstr "%(username)ss media" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#, python-format +msgid "By %(username)s on %(date)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +msgid "Post a comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +msgid "Post comment!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +msgid "Edit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +msgid "Delete" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 +msgid "Sorry, no such media found." +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -525,6 +555,10 @@ msgstr "Nyare" msgid "Older" msgstr "Äldre" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +msgid "Go to page:" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" msgstr "" @@ -542,11 +576,11 @@ msgid "I am sure I want to delete this" msgstr "Jag är säker på att jag vill radera detta" #: mediagoblin/user_pages/views.py:155 -msgid "Empty comments are not allowed." +msgid "Oops, your comment was empty." msgstr "" #: mediagoblin/user_pages/views.py:161 -msgid "Comment posted!" +msgid "Your comment has been posted!" msgstr "" #: mediagoblin/user_pages/views.py:183 diff --git a/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.mo index b0d8d3fcc54d8d7855f2b529486183e885f8e84d..2ac4c41c8262e9f9cd51a818626de440fa6bdcca 100644 GIT binary patch literal 11439 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≺)BkLEu%Q*s2@WbkdAwbX2eFDE1qE=mpy2F4ps>O-)zD zE`Agyed_93EnnDgA-^ov@}^j{Y4l7K2Q|!BF)3EfHcp#y)M+$XtZKqE_5%NqUCiz< zV5Yg*@q(Z`givAUC9MZ0Izj4-Z>-aF+HIR;zCA<|v2YUA(-|)|Lx@`qIyLdYv|lp_*=e_-g$cl4|U?B@9RijE+R;KBcxs;fjNS)sEPYZmY*g1!CWka$ zV2YH?TGT4(fdl4Gw|xh(JUv&dvO?GhJ5u}l$F}d@FGWghc8jT|tWg)KQKB@c_;P+B zR6B4LzV~#}Mg&O&L&`^_L(JVu)NyhpCa9Ox4j;qk3JxYig#r`ulHlY&W&J!nhIG^> zjwH+KRL5vWoF)0-hXt$mjH&2K9LZ63RhjKL zprlsGWCB%lTk3t;-OBn6Oc$vMu|AfNv%w0WcAFU!tKFRP zr`hScfHPWM7q#gO_GE{|+&^?65^yaqtu{+)59KLl<4X60^RlvFS3c1i^^aLeomk>Z z%ELS6WTj;I9kpcsMp?fT`1B`uQV!a=z&ZWi!{YU1Sc+h&nYM!du^UM!iMXZ-+SEnu zw=gVmY7d6|IPMcM2i0C9jZ7Z!%LlU3zmYF&9KJK6-8W|p_>$Tu=Z&i%iP}fUq4v?V z*b|I6%o|wjI`2%fXStOxFN8xj!w5RpE=dTJm?t+&`$z$rFweFw^V%F~uuo}o5X%h? zrSGUV-IO}rGD(nq^@)-6_#Gt3LSS&G}0>1(8(vkld%Lnq+T zV7sCtf@j60%m5LK7Rk+$*4*k&0C7ljh!~HPC#&z7_PGmOFIA(fA$q%rOOcd)-J(`) zB30~#2PJfw%c9vjQH~2J8WU_d3els!mOm)Ci68a@|Ac~q%)TdqO*+y7=EnB$0g#EMA z&!bUAB>v{jJy`K;uyXQ7IMj zaEJ+`yG+xh_VUNz*5rCi@}}jw(KLTJeW{VB>n6cS+_ZN?#`X0F6!xCZK`kt z|S#vio=4Cbj@^nz_!jI9@B>K#zi7%KDVXv9Q<36IXE}Y529`=1wCiPDW*&9V`{D zOZ6xsVcVt9q{B!ry>2pW?dguYVLwSaCMoQ>Zn9_}PS~fo6}y-9%8}90BEKV}dgYbn z(N)Ef)gvPeEbcYazQ}XxxGVMOs`AL%FOKk2*ySZ@aWeM8B=FKGF7tRKPuhCD=%n@H+7shM-nxm4 z+bDDLXj|56D}GwoZbEqzU@&sGtT%fV6X=oBmr8323-5rWO6JY){8}XqNnU3b-T{5+ z-U0PyXM3{`_m13UKX32NKF~Yz)!yurz1d^$&x@hn>`}WLJG{`Fz2E)+VSG*0n|-2p zM>)tFzze6r&U*O_?Yn+GN#Z%TJ4|DO}yg=&B9=3ab#ksjR%LXFB1NdCR z;RsRih!x-oK0k18n4H~^_qohs60ex*QHfxQsYh%~p}{c*p#mBa-A=nldq=)z)n*)l zk3|<=P1Sw(;&9>B)WWN&_y5(DB&y^i*~dXZ>OMmnlc+~+_4%<>BT3pP-N9gQQWweW zV;`hb;m$Vd+I(tMsg`y7&Fx@5yXY dCw(8ZiA!rsib_vLB2)LJ(Oh_gw(tf`{RbS{tH%HU diff --git a/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.po index 064fa7d1..816f2580 100644 --- a/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-11-27 15:25-0600\n" -"PO-Revision-Date: 2011-11-27 21:28+0000\n" +"POT-Creation-Date: 2011-12-03 16:57-0600\n" +"PO-Revision-Date: 2011-12-03 22:56+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -96,7 +96,7 @@ msgid "Tags" msgstr "" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas or spaces." +msgid "Seperate tags by commas." msgstr "" #: mediagoblin/edit/forms.py:33 @@ -256,6 +256,11 @@ msgstr "" msgid "Enter your new password" msgstr "" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Submit" +msgstr "దాఖలు చెయ్యి" + #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" msgstr "" @@ -356,10 +361,6 @@ msgstr "" msgid "Submit yer media" msgstr "" -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "దాఖలు చెయ్యి" - #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" @@ -370,6 +371,35 @@ msgstr "" msgid "%(username)s's media" msgstr "" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#, python-format +msgid "By %(username)s on %(date)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +msgid "Post a comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +msgid "Post comment!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +msgid "Edit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +msgid "Delete" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 +msgid "Sorry, no such media found." +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -493,6 +523,10 @@ msgstr "" msgid "Older" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +msgid "Go to page:" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" msgstr "" @@ -510,11 +544,11 @@ msgid "I am sure I want to delete this" msgstr "" #: mediagoblin/user_pages/views.py:155 -msgid "Empty comments are not allowed." +msgid "Oops, your comment was empty." msgstr "" #: mediagoblin/user_pages/views.py:161 -msgid "Comment posted!" +msgid "Your comment has been posted!" msgstr "" #: mediagoblin/user_pages/views.py:183 diff --git a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo index e3751aebe21ab7fb42ffdac898f927f8ba14fb52..33400cefa80281d52de193db3839d3e905b7b06e 100644 GIT binary patch delta 4373 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 MgxZOs-QC6h3-$993IG5A delta 3865 zcmajgeQ*@z9S86y1Jw`&LwGkKc`k1xG+c7wZH&AW0Z|Yv7K_xjy1Cm+R_<=Ew|j}F zqdCC9frKDWh$7Jl1`VVH!bO^w3oo@Zbw-^|J9YS{SVwPnFC86f9XoBuPW%1co+XZd zlu7d0efD{N&-47A-!91?w>{kQQQqWZ4F4MOTY%r6PNKV8|GI8tYz}T;g&)B|SPjMP zjBSPQz$q{}{9>6Yv4}TZq_f z1{&{#^Ivi7aG%IL|6S((V>l1(U&6cK9aHfO7s9!4DJ;bN>_J>iL&GjO zA4Xsi6p%W`A!X)0I1{EIE$nMJ8BRvj*>DPc1QtPBa2Qs>R`@Ku2(QB$OjZH2r=u@* zaN!~Xw?Q|24?18qqR@ofU@?@%@vM>-+Uo~spU#xvEAmO2Pe*Qcw@EYPJW`R@-MFVLNcqfd*RoXONORAFFb~r5U}D z4(DY^0lFdPV84VEXbhIYUqjkz3R13fu-{Fv7*c#cTmfH!PWXqJI53WjtXYh0hsCfO zHbdI+TW}3L2WiKjLk|BA>Con4`AV>xcm@f*>jL4eihOLJsAff zE#NnhGH^X}|3&8cWV~dQ`dN_T6lU&MW!wmF!~AR;E-28Wkj`=!48t3cQud<~d*T43 zg*^u;)$JL(;AY&Pfpq3yK@4Ra>7)B~kZL0UX(PRm#-E2Rl=?*G!H19r{t4oT{Re;O zc`4qlHE~pikzy%H68ZC)KMV zNk@o)hii>$GgrM{u7;EbB_R3It(Z`0l0DoVk|kYH1Db=a^?0~n_9zlttN4{b0|oO- zyAZTd=FMuz=iw5smvvpnbTsjLJPE1chDPp@-Eu$=Nj~N2bhPvo6><|A!;;Szsluw# zAvIMEI4ZeU#{B7?4v{nE-IlQ8)6?6KpVH-krqnAwMUOZ+uhS1OSqjNjTnV^+VGpgpN%6=k*TTV|8qyt=Y@HNv%RaWQQ3^E3T+to4l-;{{ zM9j(AGR^PDYI#uAblKw&PvjJc{+v@{$JDhVG1cGT59$$`mpW-26Y+qmbL>rRmOW0k zAwXG)sNoO~$jv+`X&N%-nb;oIS8v?<$jWMIH4lc=CuO&e0bW`ImgKBt zc*wWVS#DJ8eM%r6xZ`kEp`AjX+9Zb@6Q6QLb2^>z1=AnR60tjXh|lg^D0uFIY&pap zQiGa9L~@J8P;TP_>@|e-)_}#I@X_RnG~(rrOG>sZHYYh13y_^GMoHB0MU zOX89FSy|%9U30$uf*;K;%`-+vtiBhLLs298g3;QRx;QGv@2dHBKYR$5ly~(e$6mKy zc|MsKF}vD~*M`_l?Ohkl&f%Mh z-QrsQtQPA;KiUvD_2%yJX#4o?!$xeMdF%}%(ViUYNbNssbqr94&SA7*LaYLNOb&Hg z#}1h%2Cd77jniWYR$&c|nOz5Hc|B)tCJq_>dyUI6<4T{|wbzJUNM7EDDCk$ojN!}4 z;loD%Av1O)DL%BR^vkY*8sMr*4Xee2Wco{H3HH#Tov*l%{6H`@n|o>#2ie*DcO z<@E#>RK=6S-I?cO1LNIsJ6HBR?VaYO7)$jZ#5!raR|`S~>+FxhH(w5Bof=7wIxTojmxd(-Z&C(9DE(Y%-D-Kxtob@W*!#*E-b3GD=9g)4-xE# z*va_*w$z)Q_QCK9>)0u)50lVH^b-9g`Hov(8{nJzN( z`4c$KRJ0Y3CVY_)nZ7xHN9(fTLV4To{>7yUc6AeQ(T#gIv5{) zjal(-D}IcU?<&ckgi;b$b6w)qlGPm7#@=@14?WG^H*olNDW~2TL#5gusO8`NKw*H9 zu6<*;FSF~8;qmB2yI3+`rhk?ch~iSGXexdDXjz$9TekIX^WcDa?f~l2uHT90Vf^Z% zbxB|wM(ZWKJXl6@?26UVn;hAPG8Bi)oLlV;GP}5vi3I8wCy1%e}av%|sc zf|!^eD(kLjax88hh#Fm#^LT#wp)65Uv05}$Y!L5O{6oxKv`9o3{Y=dI{)#gCa2W{L RGm\n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -58,7 +58,7 @@ msgstr "抱歉, 這個使用者名稱已經存在." #: mediagoblin/auth/views.py:77 msgid "Sorry, a user with that email address already exists." -msgstr "" +msgstr "抱歉,此電子郵件已被註冊了。" #: mediagoblin/auth/views.py:179 msgid "" @@ -72,11 +72,11 @@ msgstr "認證碼或是使用者帳號錯誤" #: mediagoblin/auth/views.py:203 msgid "You must be logged in so we know who to send the email to!" -msgstr "" +msgstr "你必須登入,我們才知道信要送給誰!" #: mediagoblin/auth/views.py:211 msgid "You've already verified your email address!" -msgstr "" +msgstr "你的電子郵件已經確認了!" #: mediagoblin/auth/views.py:224 msgid "Resent your verification email." @@ -97,7 +97,7 @@ msgid "Tags" msgstr "標籤" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas or spaces." +msgid "Seperate tags by commas." msgstr "" #: mediagoblin/edit/forms.py:33 @@ -123,11 +123,11 @@ msgstr "網站" #: mediagoblin/edit/forms.py:49 msgid "Old password" -msgstr "" +msgstr "舊的密碼" #: mediagoblin/edit/forms.py:52 msgid "New Password" -msgstr "" +msgstr "新的密碼" #: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." @@ -143,15 +143,15 @@ msgstr "你正在編輯一位用戶的檔案. 請謹慎處理." #: mediagoblin/edit/views.py:171 msgid "Wrong password" -msgstr "" +msgstr "密碼錯誤" #: mediagoblin/edit/views.py:192 msgid "Profile edited!" -msgstr "" +msgstr "個人資料已被編輯了!" #: mediagoblin/media_types/__init__.py:61 msgid "Could not find any file extension in \"{filename}\"" -msgstr "" +msgstr "找不到任何 \"{filename}\" 的附檔名。" #: mediagoblin/submit/forms.py:25 msgid "File" @@ -171,7 +171,7 @@ msgstr "呼呼! 送出去嚕!" #: mediagoblin/submit/views.py:133 msgid "Invalid file type." -msgstr "" +msgstr "不正確的檔案格式" #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" @@ -201,11 +201,11 @@ msgstr "遞交媒體" #: mediagoblin/templates/mediagoblin/base.html:65 msgid "Verify your email!" -msgstr "" +msgstr "確認你的電子郵件" #: mediagoblin/templates/mediagoblin/base.html:72 msgid "log out" -msgstr "" +msgstr "登出" #: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 @@ -227,21 +227,21 @@ msgstr "探索" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, welcome to this MediaGoblin site!" -msgstr "" +msgstr "嘿!歡迎來到 媒體怪獸(MediaGoblin) 網站" #: mediagoblin/templates/mediagoblin/root.html:28 msgid "Your finest source for all goblin-related media." -msgstr "" +msgstr "你是媒體怪獸的相關媒體最珍貴的來源。" #: mediagoblin/templates/mediagoblin/root.html:29 msgid "" "To add your own media, place comments, save your favourites and more, you " "can log in with your MediaGoblin account." -msgstr "" +msgstr "你可以用 媒體怪獸 帳號登入,加入你自己的媒體檔案,加入評語,把你的最愛儲存起來。" #: mediagoblin/templates/mediagoblin/root.html:31 msgid "Don't have one yet? It's easy!" -msgstr "" +msgstr "還沒有嗎?其實非常簡單!" #: mediagoblin/templates/mediagoblin/root.html:32 #, python-format @@ -250,6 +250,9 @@ msgid "" " or\n" " Set up MediaGoblin on your own server" msgstr "" +"在這網站建立帳號\n" +" 或是\n" +" 建立一個自己的媒體怪獸(MedaiGoblin)" #: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" @@ -259,13 +262,18 @@ msgstr "最新的媒體" msgid "Enter your new password" msgstr "輸入你的新密碼" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Submit" +msgstr "送出" + #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" -msgstr "" +msgstr "找回密碼" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 msgid "Send instructions" -msgstr "" +msgstr "送出指示" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." @@ -361,30 +369,55 @@ msgstr "編輯 %(username)s'的檔案中" #: mediagoblin/templates/mediagoblin/listings/tag.html:35 #, python-format msgid "Media tagged with: %(tag_name)s" -msgstr "" +msgstr "此媒體被標識為:%(tag_name)s" #: mediagoblin/templates/mediagoblin/media_displays/video.html:19 msgid "Original" -msgstr "" +msgstr "原始的" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" msgstr "遞交你的媒體檔案" -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "送出" - #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" -msgstr "" +msgstr "%(username)s的媒體" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" msgstr "%(username)s的媒體檔案" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#, python-format +msgid "By %(username)s on %(date)s" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +msgid "Post a comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +msgid "Post comment!" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +msgid "Edit" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +msgid "Delete" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 +msgid "Sorry, no such media found." +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -508,13 +541,17 @@ msgstr "新一點" msgid "Older" msgstr "舊一點" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +msgid "Go to page:" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" -msgstr "" +msgstr "被標籤為" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 msgid "and" -msgstr "" +msgstr "且" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" @@ -525,20 +562,20 @@ msgid "I am sure I want to delete this" msgstr "我確定我想要刪除" #: mediagoblin/user_pages/views.py:155 -msgid "Empty comments are not allowed." -msgstr "評論不能空白。" +msgid "Oops, your comment was empty." +msgstr "" #: mediagoblin/user_pages/views.py:161 -msgid "Comment posted!" -msgstr "評論已經張貼!" +msgid "Your comment has been posted!" +msgstr "" #: mediagoblin/user_pages/views.py:183 msgid "You deleted the media." -msgstr "" +msgstr "你已刪除此媒體檔案。" #: mediagoblin/user_pages/views.py:190 msgid "The media was not deleted because you didn't check that you were sure." -msgstr "" +msgstr "此媒體檔案尚未被刪除因為你還沒有確認你真的要刪除。" #: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." From cc4f83faabda361301210a6ba66c3ae5c7305a6a Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 3 Dec 2011 21:38:45 -0600 Subject: [PATCH 1234/2731] Raise a slightly useful exception when we can't find the media type. --- mediagoblin/media_types/__init__.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mediagoblin/media_types/__init__.py b/mediagoblin/media_types/__init__.py index 61786562..25f3d255 100644 --- a/mediagoblin/media_types/__init__.py +++ b/mediagoblin/media_types/__init__.py @@ -51,6 +51,10 @@ def get_media_manager(_media_type = None): if media_type in _media_type: return manager + # Nope? Then raise an error + raise FileTypeNotSupported( + "MediaManager not in enabled types. Check media_types in config?") + def get_media_type_and_manager(filename): for media_type, manager in get_media_managers(): From bbac7663f4b05430592ac5d39f056029dc11db92 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 3 Dec 2011 21:56:30 -0600 Subject: [PATCH 1235/2731] PEP-8'ifying prompt_if_not_set --- mediagoblin/gmg_commands/util.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mediagoblin/gmg_commands/util.py b/mediagoblin/gmg_commands/util.py index af172105..004f9e49 100644 --- a/mediagoblin/gmg_commands/util.py +++ b/mediagoblin/gmg_commands/util.py @@ -27,13 +27,13 @@ def setup_app(args): return mgoblin_app -def prompt_if_not_set(variable,text,password=False): +def prompt_if_not_set(variable, text, password=False): """ Checks if the variable is None and prompt for a value if it is """ - if (variable==None): + if variable is None: if not password: - variable=raw_input(text+' ') + variable=raw_input(text + u' ') else: variable=getpass.getpass(text) From bb20c179c43cc9aec2cb7a3160dc734e58961609 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 3 Dec 2011 21:59:52 -0600 Subject: [PATCH 1236/2731] Most users won't see this but having space after prompt still nice for passwords. --- mediagoblin/gmg_commands/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/gmg_commands/util.py b/mediagoblin/gmg_commands/util.py index 004f9e49..3e26c53f 100644 --- a/mediagoblin/gmg_commands/util.py +++ b/mediagoblin/gmg_commands/util.py @@ -35,6 +35,6 @@ def prompt_if_not_set(variable, text, password=False): if not password: variable=raw_input(text + u' ') else: - variable=getpass.getpass(text) + variable=getpass.getpass(text + u' ') return variable From 21e84329569a356deab73ed2b98d16b91af16b0f Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 4 Dec 2011 10:21:58 -0600 Subject: [PATCH 1237/2731] Change "Your finest source of goblin related media" to something else We don't want to insist everyone hold a goblin-related gallery :) --- mediagoblin/templates/mediagoblin/root.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index 25ce9e96..0f769f2f 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -25,7 +25,7 @@ {% else %}

{% trans %}Hi there, welcome to this MediaGoblin site!{% endtrans %}

-

{% trans %}Your finest source for all goblin-related media.{% endtrans %}

+

{% trans %}This site is running MediaGoblin, an extraordinarily great piece of media hosting software.{% endtrans %}

{% trans %}To add your own media, place comments, save your favourites and more, you can log in with your MediaGoblin account.{% endtrans %}

{% if allow_registration %}

{% trans %}Don't have one yet? It's easy!{% endtrans %}

From f80f5b58a818dfcbbf984fc3e580df5fbf04917b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 4 Dec 2011 10:24:42 -0600 Subject: [PATCH 1238/2731] Removing the conditional that checks if there's a media in media.html If there isn't a media, we shouldn't hit that template! The view should ensure that. --- .../mediagoblin/user_pages/media.html | 254 +++++++++--------- 1 file changed, 125 insertions(+), 129 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 7434664c..caa99eb7 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -23,143 +23,139 @@ {% block title %}{{ media.title }} — {{ super() }}{% endblock %} {% block mediagoblin_content %} - {% if media %} -
-
- {% block mediagoblin_media %} - {% set display_media = request.app.public_store.file_url( - media.get_display_media(media.media_files)) %} +
+
+ {% block mediagoblin_media %} + {% set display_media = request.app.public_store.file_url( + media.get_display_media(media.media_files)) %} - {# if there's a medium file size, that means the medium size - # isn't the original... so link to the original! - #} - {% if media['media_files'].has_key('medium') %} - - Image for {{ media.title }} - - {% else %} + {# if there's a medium file size, that means the medium size + # isn't the original... so link to the original! + #} + {% if media['media_files'].has_key('medium') %} + Image for {{ media.title }} - {% endif %} - {% endblock %} -
- -

- {{ media.title }} -

- {% autoescape False %} -

{{ media.description_html }}

- {% endautoescape %} -

- {% trans date=media.created.strftime("%Y-%m-%d"), - user_url=request.urlgen( - 'mediagoblin.user_pages.user_home', - user=media.get_uploader().username), - username=media.get_uploader().username -%} - By {{ username }} on {{ date }} - {%- endtrans %} -

-

- {% if request.user and comments.count() %} -

{% trans %}Post a comment{% endtrans %}

- {% endif %} - {% if comments %} - {% for comment in comments %} - {% set comment_author = comment.author() %} - {% if pagination.active_id == comment._id %} -
- - {% else %} -
- {% endif %} - -
{% autoescape False %}{{ comment.content_html }} - {% endautoescape %} - - - {{ comment_author['username'] }} - {% trans %}at{% endtrans %} - - {{ comment.created.strftime("%I:%M%p %Y-%m-%d") }} - -
-
- {% endfor %} - - {% if request.user %} - - {{ wtforms_util.render_divs(comment_form) }} -
- - {{ csrf_token }} -
- + + {% else %} + Image for {{ media.title }} {% endif %} + {% endblock %} +
- {{ render_pagination(request, pagination, - request.urlgen('mediagoblin.user_pages.media_home', - user = media.get_uploader().username, - media = media._id)) }} -
+

+ {{ media.title }} +

+ {% autoescape False %} +

{{ media.description_html }}

+ {% endautoescape %} +

+ {% trans date=media.created.strftime("%Y-%m-%d"), + user_url=request.urlgen( + 'mediagoblin.user_pages.user_home', + user=media.get_uploader().username), + username=media.get_uploader().username -%} + By {{ username }} on {{ date }} + {%- endtrans %} +

+

+ {% if request.user and comments.count() %} +

{% trans %}Post a comment{% endtrans %}

+ {% endif %} + {% if comments %} + {% for comment in comments %} + {% set comment_author = comment.author() %} + {% if pagination.active_id == comment._id %} +
+ + {% else %} +
+ {% endif %} + +
{% autoescape False %}{{ comment.content_html }} + {% endautoescape %} + + + {{ comment_author['username'] }} + {% trans %}at{% endtrans %} + + {{ comment.created.strftime("%I:%M%p %Y-%m-%d") }} + +
+
+ {% endfor %} + + {% if request.user %} +
+ {{ wtforms_util.render_divs(comment_form) }} +
+ + {{ csrf_token }} +
+ + {% endif %} + + {{ render_pagination(request, pagination, + request.urlgen('mediagoblin.user_pages.media_home', + user = media.get_uploader().username, + media = media._id)) }} +
+ {% endif %} + +
+ {% include "mediagoblin/utils/prev_next.html" %} + + {% if media['uploader'] == request.user._id or + request.user['is_admin'] %} +

+ {% set edit_url = request.urlgen('mediagoblin.edit.edit_media', + user= media.get_uploader().username, + media= media._id) %} + {% trans %}Edit{% endtrans %} +

+

+ {% set delete_url = request.urlgen('mediagoblin.user_pages.media_confirm_delete', + user= media.get_uploader().username, + media= media._id) %} + {% trans %}Delete{% endtrans %} +

{% endif %} -
- {% include "mediagoblin/utils/prev_next.html" %} + {% if media.attachment_files|count %} +

Attachments

+ + {% endif %} - {% if media['uploader'] == request.user._id or - request.user['is_admin'] %} -

- {% set edit_url = request.urlgen('mediagoblin.edit.edit_media', - user= media.get_uploader().username, - media= media._id) %} - {% trans %}Edit{% endtrans %} -

-

- {% set delete_url = request.urlgen('mediagoblin.user_pages.media_confirm_delete', - user= media.get_uploader().username, - media= media._id) %} - {% trans %}Delete{% endtrans %} -

- {% endif %} + {% if app_config['allow_attachments'] + and (media['uploader'] == request.user._id + or request.user['is_admin']) %} +

+ Add attachment +

+ {% endif %} - {% if media.attachment_files|count %} -

Attachments

- - {% endif %} - - {% if app_config['allow_attachments'] - and (media['uploader'] == request.user._id - or request.user['is_admin']) %} -

- Add attachment -

- {% endif %} - - {% if media.tags %} - {% include "mediagoblin/utils/tags.html" %} - {% endif %} -
- {% else %} -

{% trans %}Sorry, no such media found.{% endtrans %}

- {% endif %} + {% if media.tags %} + {% include "mediagoblin/utils/tags.html" %} + {% endif %} +

{% endblock %} From b25b00d26e41158591822f5570c15f1baf2bc30b Mon Sep 17 00:00:00 2001 From: tycho garen Date: Sun, 4 Dec 2011 14:51:00 -0500 Subject: [PATCH 1239/2731] DOCS: update to deployment documentation and new production deployments doc --- docs/source/deploying.rst | 10 +++--- docs/source/production-deployments.rst | 48 ++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 5 deletions(-) create mode 100644 docs/source/production-deployments.rst diff --git a/docs/source/deploying.rst b/docs/source/deploying.rst index b944a3d3..9c0acf30 100644 --- a/docs/source/deploying.rst +++ b/docs/source/deploying.rst @@ -244,7 +244,7 @@ Production MediaGoblin Deployments with Paste The instance configured with ``lazyserver`` is not ideal for a production MediaGoblin deployment. Ideally, you should be able to use -a a control script (i.e. init script.) to launch and restart the +a control script (i.e. init script.) to launch and restart the MediaGoblin process. Use the following command as the basis for such a script: :: @@ -252,13 +252,13 @@ Use the following command as the basis for such a script: :: CELERY_ALWAYS_EAGER=true \ /srv/mediagoblin.example.org/mediagoblin/bin/paster serve \ /srv/mediagoblin.example.org/mediagoblin/paste.ini \ - --pid-file=/tmp/mediagoblin.pid \ + --pid-file=/var/run/mediagoblin.pid \ --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543 \ .. note:: The above configuration places MediaGoblin in "always eager" mode with Celery. This is fine for development and smaller - deployments. However, if you're getting into the really large - deployment category, consider reading the section of this manual on - Celery. + deployments. However, for larger production deployments with larger + processing requirements, see the ":doc:`production-deployments`" + documentation. diff --git a/docs/source/production-deployments.rst b/docs/source/production-deployments.rst new file mode 100644 index 00000000..37251734 --- /dev/null +++ b/docs/source/production-deployments.rst @@ -0,0 +1,48 @@ +========================================= +Considerations for Production Deployments +========================================= + +This document contains a number of suggestions for deploying +MediaGoblin in actual production environments. Consider +":doc:`deploying`" for a basic overview of how to deploy Media +Goblin. + +Celery +------ + +While the ``./lazyserer.sh`` configuration provides an efficient way to +start using a MediaGoblin instance, it is not suitable for production +deployments for several reasons: + +1. In nearly every scenario, work on the Celery queue will need to + balance with the demands of other processes, and cannot proceed + synchronously. This is a particularly relevant problem if you use + MediaGoblin to host Video content. + +2. Processing with Celery ought to be operationally separate from the + MediaGoblin application itself, this simplifies management and + support better workload distribution. + +3. ... additional reason here. .... + +Build an :ref:`init script ` around the following +command. + + CELERY_CONFIG_MODULE=mediagoblin.init.celery.from_celery ./bin/celeryd + +Modify your existing MediaGoblin and application init scripts, if +necessary, to prevent them from starting their own ``celeryd`` +processes. + +.. _init-script: + +Use an Init Script +------------------- + +TODO insert init script here + +Other Concerns +-------------- + +TODO What are they? + From b3efea3c79097ab5ea080f4c39ea59c2994fca5c Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 4 Dec 2011 13:56:55 -0600 Subject: [PATCH 1240/2731] Updated translations --- .../i18n/ar/LC_MESSAGES/mediagoblin.po | 26 +++-- .../i18n/ca/LC_MESSAGES/mediagoblin.po | 26 +++-- .../i18n/de/LC_MESSAGES/mediagoblin.po | 42 ++++---- .../i18n/en/LC_MESSAGES/mediagoblin.po | 24 ++--- .../i18n/eo/LC_MESSAGES/mediagoblin.po | 88 ++++++++------- .../i18n/es/LC_MESSAGES/mediagoblin.po | 54 +++++----- .../i18n/fr/LC_MESSAGES/mediagoblin.po | 28 +++-- .../i18n/ia/LC_MESSAGES/mediagoblin.po | 26 +++-- .../i18n/it/LC_MESSAGES/mediagoblin.po | 26 +++-- .../i18n/ja/LC_MESSAGES/mediagoblin.po | 26 +++-- .../i18n/nl/LC_MESSAGES/mediagoblin.po | 26 +++-- .../i18n/nn_NO/LC_MESSAGES/mediagoblin.po | 26 +++-- .../i18n/pt_BR/LC_MESSAGES/mediagoblin.po | 26 +++-- .../i18n/ro/LC_MESSAGES/mediagoblin.po | 53 ++++----- .../i18n/ru/LC_MESSAGES/mediagoblin.po | 102 ++++++++++-------- .../i18n/sk/LC_MESSAGES/mediagoblin.po | 26 +++-- .../i18n/sl/LC_MESSAGES/mediagoblin.po | 26 +++-- .../i18n/sr/LC_MESSAGES/mediagoblin.po | 26 +++-- .../i18n/sv/LC_MESSAGES/mediagoblin.po | 26 +++-- .../i18n/te/LC_MESSAGES/mediagoblin.po | 26 +++-- .../i18n/zh_TW/LC_MESSAGES/mediagoblin.po | 28 +++-- 21 files changed, 371 insertions(+), 386 deletions(-) diff --git a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po index e1188ac9..61abc63f 100644 --- a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-03 16:57-0600\n" -"PO-Revision-Date: 2011-12-03 22:56+0000\n" +"POT-Creation-Date: 2011-12-04 10:24-0600\n" +"PO-Revision-Date: 2011-12-04 16:23+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -156,7 +156,7 @@ msgstr "" msgid "Profile edited!" msgstr "" -#: mediagoblin/media_types/__init__.py:61 +#: mediagoblin/media_types/__init__.py:65 msgid "Could not find any file extension in \"{filename}\"" msgstr "" @@ -236,7 +236,9 @@ msgid "Hi there, welcome to this MediaGoblin site!" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Your finest source for all goblin-related media." +msgid "" +"This site is running MediaGoblin, an " +"extraordinarily great piece of media hosting software." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 @@ -393,35 +395,31 @@ msgstr "" msgid "%(username)s's media" msgstr "وسائط %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 -msgid "Sorry, no such media found." -msgstr "" - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" diff --git a/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.po index a05dc5c0..9609cb34 100644 --- a/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-03 16:57-0600\n" -"PO-Revision-Date: 2011-12-03 22:56+0000\n" +"POT-Creation-Date: 2011-12-04 10:24-0600\n" +"PO-Revision-Date: 2011-12-04 16:23+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -152,7 +152,7 @@ msgstr "" msgid "Profile edited!" msgstr "" -#: mediagoblin/media_types/__init__.py:61 +#: mediagoblin/media_types/__init__.py:65 msgid "Could not find any file extension in \"{filename}\"" msgstr "" @@ -233,7 +233,9 @@ msgid "Hi there, welcome to this MediaGoblin site!" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Your finest source for all goblin-related media." +msgid "" +"This site is running MediaGoblin, an " +"extraordinarily great piece of media hosting software." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 @@ -383,35 +385,31 @@ msgstr "" msgid "%(username)s's media" msgstr "%(username)s's media" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 -msgid "Sorry, no such media found." -msgstr "" - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po index fc78ed7c..7d7e0ee9 100644 --- a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po @@ -16,9 +16,9 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-03 16:57-0600\n" -"PO-Revision-Date: 2011-12-03 22:56+0000\n" -"Last-Translator: cwebber \n" +"POT-Creation-Date: 2011-12-04 10:24-0600\n" +"PO-Revision-Date: 2011-12-04 16:26+0000\n" +"Last-Translator: elrond \n" "Language-Team: German (http://www.transifex.net/projects/p/mediagoblin/team/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -65,7 +65,7 @@ msgstr "Leider gibt es bereits einen Benutzer mit diesem Namen." #: mediagoblin/auth/views.py:77 msgid "Sorry, a user with that email address already exists." -msgstr "" +msgstr "Leider gibt es bereits einen Benutzer mit dieser E-Mail-Adresse." #: mediagoblin/auth/views.py:179 msgid "" @@ -85,7 +85,7 @@ msgstr "" #: mediagoblin/auth/views.py:211 msgid "You've already verified your email address!" -msgstr "" +msgstr "Deine E-Mail-Adresse wurde bereits bestätigt." #: mediagoblin/auth/views.py:224 msgid "Resent your verification email." @@ -161,9 +161,9 @@ msgstr "Falsches Passwort" #: mediagoblin/edit/views.py:192 msgid "Profile edited!" -msgstr "" +msgstr "Das Profil wurde aktualisiert" -#: mediagoblin/media_types/__init__.py:61 +#: mediagoblin/media_types/__init__.py:65 msgid "Could not find any file extension in \"{filename}\"" msgstr "" @@ -246,7 +246,9 @@ msgid "Hi there, welcome to this MediaGoblin site!" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Your finest source for all goblin-related media." +msgid "" +"This site is running MediaGoblin, an " +"extraordinarily great piece of media hosting software." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 @@ -384,7 +386,7 @@ msgstr "%(username)ss Profil bearbeiten" #: mediagoblin/templates/mediagoblin/listings/tag.html:35 #, python-format msgid "Media tagged with: %(tag_name)s" -msgstr "" +msgstr ": %(tag_name)s" #: mediagoblin/templates/mediagoblin/media_displays/video.html:19 msgid "Original" @@ -404,34 +406,30 @@ msgstr "%(username)ss Medien" msgid "%(username)s's media" msgstr "%(username)ss Medien" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" -msgstr "" +msgstr "Bearbeiten" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 -msgid "Sorry, no such media found." -msgstr "" +msgstr "Löschen" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format @@ -571,7 +569,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" -msgstr "" +msgstr "Markiert mit" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 msgid "and" diff --git a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po index 3732705c..17e6873c 100644 --- a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-12-03 16:57-0600\n" +"POT-Creation-Date: 2011-12-04 10:24-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -145,7 +145,7 @@ msgstr "" msgid "Profile edited!" msgstr "" -#: mediagoblin/media_types/__init__.py:61 +#: mediagoblin/media_types/__init__.py:65 msgid "Could not find any file extension in \"{filename}\"" msgstr "" @@ -224,7 +224,9 @@ msgid "Hi there, welcome to this MediaGoblin site!" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Your finest source for all goblin-related media." +msgid "" +"This site is running MediaGoblin, " +"an extraordinarily great piece of media hosting software." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 @@ -370,35 +372,31 @@ msgstr "" msgid "%(username)s's media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 -msgid "Sorry, no such media found." -msgstr "" - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po index cfc81d11..e5c6356e 100644 --- a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po @@ -10,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-03 16:57-0600\n" -"PO-Revision-Date: 2011-12-03 22:56+0000\n" -"Last-Translator: cwebber \n" +"POT-Creation-Date: 2011-12-04 10:24-0600\n" +"PO-Revision-Date: 2011-12-04 19:15+0000\n" +"Last-Translator: aleksejrs \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -59,7 +59,7 @@ msgstr "Bedaŭrinde, uzanto kun tiu nomo jam ekzistas." #: mediagoblin/auth/views.py:77 msgid "Sorry, a user with that email address already exists." -msgstr "" +msgstr "Ni bedaŭras, sed konto kun tiu retpoŝtadreso jam ekzistas." #: mediagoblin/auth/views.py:179 msgid "" @@ -75,11 +75,11 @@ msgstr "La kontrol-kodo aŭ la uzantonomo ne estas korekta" #: mediagoblin/auth/views.py:203 msgid "You must be logged in so we know who to send the email to!" -msgstr "" +msgstr "Vi devas esti ensalutita, por ke ni sciu, al kiu sendi la retleteron!" #: mediagoblin/auth/views.py:211 msgid "You've already verified your email address!" -msgstr "" +msgstr "Vi jam konfirmis vian retpoŝtadreson!" #: mediagoblin/auth/views.py:224 msgid "Resent your verification email." @@ -103,7 +103,7 @@ msgstr "Etikedoj" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 msgid "Seperate tags by commas." -msgstr "" +msgstr "Dividu la etikedojn per komoj." #: mediagoblin/edit/forms.py:33 msgid "Slug" @@ -154,11 +154,11 @@ msgstr "Malĝusta pasvorto" #: mediagoblin/edit/views.py:192 msgid "Profile edited!" -msgstr "" +msgstr "La profilŝanĝo faritas!" -#: mediagoblin/media_types/__init__.py:61 +#: mediagoblin/media_types/__init__.py:65 msgid "Could not find any file extension in \"{filename}\"" -msgstr "" +msgstr "Ŝajnas, ke en «{filename}» mankas dosiernoma finaĵo" #: mediagoblin/submit/forms.py:25 msgid "File" @@ -178,7 +178,7 @@ msgstr "Hura! Alŝutitas!" #: mediagoblin/submit/views.py:133 msgid "Invalid file type." -msgstr "" +msgstr "Netaŭga dosiertipo." #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" @@ -210,7 +210,7 @@ msgstr "Alŝuti aŭd-vid-dosieron" #: mediagoblin/templates/mediagoblin/base.html:65 msgid "Verify your email!" -msgstr "" +msgstr "Konfirmu viecon de la retpoŝtadreso!" #: mediagoblin/templates/mediagoblin/base.html:72 msgid "log out" @@ -232,25 +232,32 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:24 msgid "Explore" -msgstr "" +msgstr "Ĉirkaŭrigardi" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, welcome to this MediaGoblin site!" msgstr "Saluton, kaj bonvenon al ĉi tiu MediaGoblina retpaĝaro!" #: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Your finest source for all goblin-related media." +msgid "" +"This site is running MediaGoblin, an " +"extraordinarily great piece of media hosting software." msgstr "" +"Ĉi tiu retpaĝaro funkcias per MediaGoblin, eksterordinare bonega " +"programaro por gastigado de aŭd‐vid‐dosieroj." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "" "To add your own media, place comments, save your favourites and more, you " "can log in with your MediaGoblin account." msgstr "" +"Por aldoni viajn proprajn dosierojn, fari liston de plej plaĉantaj por vi, " +"ks, vi povas ensaluti je via MediaGoblina konto." #: mediagoblin/templates/mediagoblin/root.html:31 msgid "Don't have one yet? It's easy!" -msgstr "" +msgstr "Ĉu vi ankoraŭ ne havas tian? Ne malĝoju!" #: mediagoblin/templates/mediagoblin/root.html:32 #, python-format @@ -259,6 +266,9 @@ msgid "" " or\n" " Set up MediaGoblin on your own server" msgstr "" +"Kreu konton en ĉi tiu retejo\n" +" aŭ\n" +" Ekfunkciigu MediaGoblin’on en via propra servilo" #: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" @@ -275,11 +285,11 @@ msgstr "Alŝuti" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" -msgstr "" +msgstr "Ekhavo de nova pasvorto" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 msgid "Send instructions" -msgstr "" +msgstr "Sendi instrukcion" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." @@ -377,7 +387,7 @@ msgstr "Redaktado de l’profilo de %(username)s'" #: mediagoblin/templates/mediagoblin/listings/tag.html:35 #, python-format msgid "Media tagged with: %(tag_name)s" -msgstr "" +msgstr "Dosieroj kun etikedo: %(tag_name)s" #: mediagoblin/templates/mediagoblin/media_displays/video.html:19 msgid "Original" @@ -390,41 +400,37 @@ msgstr "Alŝutu vian aŭd-vid-dosieron" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" -msgstr "" +msgstr "Dosieroj de %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" msgstr "Dosieroj de %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" -msgstr "" +msgstr "Afiŝita de %(username)s je %(date)s" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" -msgstr "" +msgstr "Afiŝi komenton" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" -msgstr "" +msgstr "je" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" -msgstr "" +msgstr "Afiŝi la komenton!" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" -msgstr "" +msgstr "Ŝanĝi" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 -msgid "Sorry, no such media found." -msgstr "" +msgstr "Forigi" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format @@ -559,11 +565,11 @@ msgstr "Malplinovaj" #: mediagoblin/templates/mediagoblin/utils/pagination.html:50 msgid "Go to page:" -msgstr "" +msgstr "Iri al paĝo:" #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" -msgstr "" +msgstr "Markita per: " #: mediagoblin/templates/mediagoblin/utils/tags.html:25 msgid "and" @@ -579,19 +585,21 @@ msgstr "Mi estas certa, ke mi volas forigi ĉi tion" #: mediagoblin/user_pages/views.py:155 msgid "Oops, your comment was empty." -msgstr "" +msgstr "Oj, via komento estis malplena." #: mediagoblin/user_pages/views.py:161 msgid "Your comment has been posted!" -msgstr "" +msgstr "Via komento estis afiŝita!" #: mediagoblin/user_pages/views.py:183 msgid "You deleted the media." -msgstr "" +msgstr "Vi forigis la dosieron." #: mediagoblin/user_pages/views.py:190 msgid "The media was not deleted because you didn't check that you were sure." msgstr "" +"La dosiero ne estis forigita, ĉar vi ne konfirmis vian certecon per la " +"markilo." #: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." diff --git a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po index 88bd4da7..460c074c 100644 --- a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po @@ -10,13 +10,14 @@ # , 2011. # , 2011. # Mario Rodriguez , 2011. +# , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-03 16:57-0600\n" -"PO-Revision-Date: 2011-12-03 22:56+0000\n" -"Last-Translator: cwebber \n" +"POT-Creation-Date: 2011-12-04 10:24-0600\n" +"PO-Revision-Date: 2011-12-04 16:49+0000\n" +"Last-Translator: manolinux \n" "Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mediagoblin/team/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -112,7 +113,7 @@ msgstr "Etiquetas" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 msgid "Seperate tags by commas." -msgstr "" +msgstr "Separar etiquetas por comas." #: mediagoblin/edit/forms.py:33 msgid "Slug" @@ -165,7 +166,7 @@ msgstr "Contraseña incorrecta" msgid "Profile edited!" msgstr "Perfil editado!" -#: mediagoblin/media_types/__init__.py:61 +#: mediagoblin/media_types/__init__.py:65 msgid "Could not find any file extension in \"{filename}\"" msgstr "No se pudo encontrar la extensión del archivo en \"{filename}\"" @@ -248,8 +249,13 @@ msgid "Hi there, welcome to this MediaGoblin site!" msgstr "Hola, bienvenido a este sitio de MediaGoblin!" #: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Your finest source for all goblin-related media." -msgstr "Tu mejor fuente de contenidos relacionados con goblins." +msgid "" +"This site is running MediaGoblin, an " +"extraordinarily great piece of media hosting software." +msgstr "" +"Este sitio está montado con MediaGoblin, un programa libre buenísimo" +" para gestionar contenido multimedia." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "" @@ -408,34 +414,30 @@ msgstr "Contenidos de %(username)s" msgid "%(username)s's media" msgstr "Contenido de %(username)s's" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" -msgstr "" +msgstr "Por %(username)s en %(date)s" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" -msgstr "" +msgstr "Pon un comentario." -#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" -msgstr "" +msgstr "en" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" -msgstr "" +msgstr "¡Pon un comentario!" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" -msgstr "" +msgstr "Editar" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 -msgid "Sorry, no such media found." -msgstr "" +msgstr "Borrar" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format @@ -571,7 +573,7 @@ msgstr "Antiguas" #: mediagoblin/templates/mediagoblin/utils/pagination.html:50 msgid "Go to page:" -msgstr "" +msgstr "Ir a la página:" #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" @@ -591,11 +593,11 @@ msgstr "Estoy seguro de que quiero borrar esto" #: mediagoblin/user_pages/views.py:155 msgid "Oops, your comment was empty." -msgstr "" +msgstr "Ups, tu comentario estaba vacío." #: mediagoblin/user_pages/views.py:161 msgid "Your comment has been posted!" -msgstr "" +msgstr "¡Tu comentario ha sido publicado!" #: mediagoblin/user_pages/views.py:183 msgid "You deleted the media." diff --git a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po index 0bff6c37..8d1e2711 100644 --- a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-03 16:57-0600\n" -"PO-Revision-Date: 2011-12-03 22:56+0000\n" +"POT-Creation-Date: 2011-12-04 10:24-0600\n" +"PO-Revision-Date: 2011-12-04 16:23+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -166,7 +166,7 @@ msgstr "Mauvais mot de passe" msgid "Profile edited!" msgstr "Profile mis à jour !" -#: mediagoblin/media_types/__init__.py:61 +#: mediagoblin/media_types/__init__.py:65 msgid "Could not find any file extension in \"{filename}\"" msgstr "Impossible d'extraire une extension de fichier de \"{nomfichier}\"" @@ -249,8 +249,10 @@ msgid "Hi there, welcome to this MediaGoblin site!" msgstr "Bonjour, et bienvenu sur ce site MediaGoblin !" #: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Your finest source for all goblin-related media." -msgstr "Là où ce trouve tout vos \"goblinesque\" media." +msgid "" +"This site is running MediaGoblin, an " +"extraordinarily great piece of media hosting software." +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 msgid "" @@ -415,35 +417,31 @@ msgstr "Medias de %(username)s" msgid "%(username)s's media" msgstr "Médias de %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 -msgid "Sorry, no such media found." -msgstr "" - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" diff --git a/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.po index 7dd3a4f1..512635e3 100644 --- a/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-03 16:57-0600\n" -"PO-Revision-Date: 2011-12-03 22:56+0000\n" +"POT-Creation-Date: 2011-12-04 10:24-0600\n" +"PO-Revision-Date: 2011-12-04 16:23+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -148,7 +148,7 @@ msgstr "" msgid "Profile edited!" msgstr "" -#: mediagoblin/media_types/__init__.py:61 +#: mediagoblin/media_types/__init__.py:65 msgid "Could not find any file extension in \"{filename}\"" msgstr "" @@ -227,7 +227,9 @@ msgid "Hi there, welcome to this MediaGoblin site!" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Your finest source for all goblin-related media." +msgid "" +"This site is running MediaGoblin, an " +"extraordinarily great piece of media hosting software." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 @@ -371,35 +373,31 @@ msgstr "" msgid "%(username)s's media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 -msgid "Sorry, no such media found." -msgstr "" - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" diff --git a/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po index dc9ec274..96d1f0a2 100644 --- a/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-03 16:57-0600\n" -"PO-Revision-Date: 2011-12-03 22:56+0000\n" +"POT-Creation-Date: 2011-12-04 10:24-0600\n" +"PO-Revision-Date: 2011-12-04 16:23+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -152,7 +152,7 @@ msgstr "" msgid "Profile edited!" msgstr "" -#: mediagoblin/media_types/__init__.py:61 +#: mediagoblin/media_types/__init__.py:65 msgid "Could not find any file extension in \"{filename}\"" msgstr "" @@ -235,7 +235,9 @@ msgid "Hi there, welcome to this MediaGoblin site!" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Your finest source for all goblin-related media." +msgid "" +"This site is running MediaGoblin, an " +"extraordinarily great piece of media hosting software." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 @@ -384,35 +386,31 @@ msgstr "" msgid "%(username)s's media" msgstr "Documenti multimediali di %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 -msgid "Sorry, no such media found." -msgstr "" - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" diff --git a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po index 5dcf7377..3198eed9 100644 --- a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-03 16:57-0600\n" -"PO-Revision-Date: 2011-12-03 22:56+0000\n" +"POT-Creation-Date: 2011-12-04 10:24-0600\n" +"PO-Revision-Date: 2011-12-04 16:23+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -148,7 +148,7 @@ msgstr "" msgid "Profile edited!" msgstr "" -#: mediagoblin/media_types/__init__.py:61 +#: mediagoblin/media_types/__init__.py:65 msgid "Could not find any file extension in \"{filename}\"" msgstr "" @@ -227,7 +227,9 @@ msgid "Hi there, welcome to this MediaGoblin site!" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Your finest source for all goblin-related media." +msgid "" +"This site is running MediaGoblin, an " +"extraordinarily great piece of media hosting software." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 @@ -376,35 +378,31 @@ msgstr "" msgid "%(username)s's media" msgstr "%(username)sさんのコンテンツ" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 -msgid "Sorry, no such media found." -msgstr "" - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" diff --git a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po index dad00867..c1778676 100644 --- a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-03 16:57-0600\n" -"PO-Revision-Date: 2011-12-03 22:56+0000\n" +"POT-Creation-Date: 2011-12-04 10:24-0600\n" +"PO-Revision-Date: 2011-12-04 16:23+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -153,7 +153,7 @@ msgstr "" msgid "Profile edited!" msgstr "" -#: mediagoblin/media_types/__init__.py:61 +#: mediagoblin/media_types/__init__.py:65 msgid "Could not find any file extension in \"{filename}\"" msgstr "" @@ -232,7 +232,9 @@ msgid "Hi there, welcome to this MediaGoblin site!" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Your finest source for all goblin-related media." +msgid "" +"This site is running MediaGoblin, an " +"extraordinarily great piece of media hosting software." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 @@ -378,35 +380,31 @@ msgstr "" msgid "%(username)s's media" msgstr "Media van %(username)s " -#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 -msgid "Sorry, no such media found." -msgstr "" - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" diff --git a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po index 10fad192..0b0c2a27 100644 --- a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-03 16:57-0600\n" -"PO-Revision-Date: 2011-12-03 22:56+0000\n" +"POT-Creation-Date: 2011-12-04 10:24-0600\n" +"PO-Revision-Date: 2011-12-04 16:23+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -151,7 +151,7 @@ msgstr "" msgid "Profile edited!" msgstr "" -#: mediagoblin/media_types/__init__.py:61 +#: mediagoblin/media_types/__init__.py:65 msgid "Could not find any file extension in \"{filename}\"" msgstr "" @@ -234,7 +234,9 @@ msgid "Hi there, welcome to this MediaGoblin site!" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Your finest source for all goblin-related media." +msgid "" +"This site is running MediaGoblin, an " +"extraordinarily great piece of media hosting software." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 @@ -392,35 +394,31 @@ msgstr "" msgid "%(username)s's media" msgstr "%(username)s sine mediefiler" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 -msgid "Sorry, no such media found." -msgstr "" - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" diff --git a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po index 0512f43d..daa65e0f 100644 --- a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-03 16:57-0600\n" -"PO-Revision-Date: 2011-12-03 22:56+0000\n" +"POT-Creation-Date: 2011-12-04 10:24-0600\n" +"PO-Revision-Date: 2011-12-04 16:23+0000\n" "Last-Translator: cwebber \n" "Language-Team: Portuguese (Brazilian) (http://www.transifex.net/projects/p/mediagoblin/team/pt_BR/)\n" "MIME-Version: 1.0\n" @@ -155,7 +155,7 @@ msgstr "" msgid "Profile edited!" msgstr "" -#: mediagoblin/media_types/__init__.py:61 +#: mediagoblin/media_types/__init__.py:65 msgid "Could not find any file extension in \"{filename}\"" msgstr "" @@ -238,7 +238,9 @@ msgid "Hi there, welcome to this MediaGoblin site!" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Your finest source for all goblin-related media." +msgid "" +"This site is running MediaGoblin, an " +"extraordinarily great piece of media hosting software." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 @@ -397,35 +399,31 @@ msgstr "" msgid "%(username)s's media" msgstr "Mídia de %(username)s " -#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 -msgid "Sorry, no such media found." -msgstr "" - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" diff --git a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po index 5401c046..b747fc3a 100644 --- a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.po @@ -4,13 +4,14 @@ # # Translators: # , 2011. +# George Pop , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-03 16:57-0600\n" -"PO-Revision-Date: 2011-12-03 22:56+0000\n" -"Last-Translator: cwebber \n" +"POT-Creation-Date: 2011-12-04 10:24-0600\n" +"PO-Revision-Date: 2011-12-04 18:41+0000\n" +"Last-Translator: gap \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -101,7 +102,7 @@ msgstr "Tag-uri" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 msgid "Seperate tags by commas." -msgstr "" +msgstr "Desparte tag-urile prin virgulă." #: mediagoblin/edit/forms.py:33 msgid "Slug" @@ -155,7 +156,7 @@ msgstr "Parolă incorectă" msgid "Profile edited!" msgstr "Profilul a fost modificat!" -#: mediagoblin/media_types/__init__.py:61 +#: mediagoblin/media_types/__init__.py:65 msgid "Could not find any file extension in \"{filename}\"" msgstr "Nu pot extrage extensia din „{filename}”" @@ -238,8 +239,12 @@ msgid "Hi there, welcome to this MediaGoblin site!" msgstr "Salut, bine ai venit pe acest site MediaGoblin!" #: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Your finest source for all goblin-related media." -msgstr "Locul unde elfii își transmit fișierele media." +msgid "" +"This site is running MediaGoblin, an " +"extraordinarily great piece of media hosting software." +msgstr "" +"Acest site folosește MediaGoblin, un " +"software excepțional pentru găzduirea fișierelor media." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "" @@ -401,34 +406,30 @@ msgstr "Fișierele lui %(username)s" msgid "%(username)s's media" msgstr "Fișierele media ale lui %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" -msgstr "" +msgstr "De %(username)s la %(date)s" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" -msgstr "" +msgstr "Scrie un comentariu" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" -msgstr "" +msgstr "la" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" -msgstr "" +msgstr "Trimite comentariul" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" -msgstr "" +msgstr "Editare" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 -msgid "Sorry, no such media found." -msgstr "" +msgstr "Șterge" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format @@ -561,7 +562,7 @@ msgstr "Mai vechi" #: mediagoblin/templates/mediagoblin/utils/pagination.html:50 msgid "Go to page:" -msgstr "" +msgstr "Salt la pagina:" #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" @@ -581,11 +582,11 @@ msgstr "Sunt sigur că doresc să șterg" #: mediagoblin/user_pages/views.py:155 msgid "Oops, your comment was empty." -msgstr "" +msgstr "Hopa, ai uitat să scrii comentariul." #: mediagoblin/user_pages/views.py:161 msgid "Your comment has been posted!" -msgstr "" +msgstr "Comentariul tău a fost trimis!" #: mediagoblin/user_pages/views.py:183 msgid "You deleted the media." diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po index cee135ca..c615cde2 100644 --- a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-03 16:57-0600\n" -"PO-Revision-Date: 2011-12-03 22:56+0000\n" -"Last-Translator: cwebber \n" +"POT-Creation-Date: 2011-12-04 10:24-0600\n" +"PO-Revision-Date: 2011-12-04 17:53+0000\n" +"Last-Translator: aleksejrs \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -58,6 +58,8 @@ msgstr "Извините, пользователь с этим именем уж #: mediagoblin/auth/views.py:77 msgid "Sorry, a user with that email address already exists." msgstr "" +"Сожалеем, но на этот адрес электронной почты уже зарегистрирована другая " +"учётная запись." #: mediagoblin/auth/views.py:179 msgid "" @@ -73,11 +75,11 @@ msgstr "Неверный ключ проверки или идентификат #: mediagoblin/auth/views.py:203 msgid "You must be logged in so we know who to send the email to!" -msgstr "" +msgstr "Вам надо представиться, чтобы мы знали, кому отправлять сообщение!" #: mediagoblin/auth/views.py:211 msgid "You've already verified your email address!" -msgstr "" +msgstr "Вы уже потвердили свой адрес электронной почты!" #: mediagoblin/auth/views.py:224 msgid "Resent your verification email." @@ -102,7 +104,7 @@ msgstr "Метки" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 msgid "Seperate tags by commas." -msgstr "" +msgstr "Разделяйте метки запятыми." #: mediagoblin/edit/forms.py:33 msgid "Slug" @@ -129,11 +131,11 @@ msgstr "Сайт" #: mediagoblin/edit/forms.py:49 msgid "Old password" -msgstr "" +msgstr "Старый пароль" #: mediagoblin/edit/forms.py:52 msgid "New Password" -msgstr "" +msgstr "Новый пароль" #: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." @@ -150,15 +152,15 @@ msgstr "Вы редактируете профиль пользователя. #: mediagoblin/edit/views.py:171 msgid "Wrong password" -msgstr "" +msgstr "Неправильный пароль" #: mediagoblin/edit/views.py:192 msgid "Profile edited!" -msgstr "" +msgstr "Профиль изменён!" -#: mediagoblin/media_types/__init__.py:61 +#: mediagoblin/media_types/__init__.py:65 msgid "Could not find any file extension in \"{filename}\"" -msgstr "" +msgstr "В «{filename}» не обнаружено расширение имени файла" #: mediagoblin/submit/forms.py:25 msgid "File" @@ -178,7 +180,7 @@ msgstr "Ура! Файл загружен!" #: mediagoblin/submit/views.py:133 msgid "Invalid file type." -msgstr "" +msgstr "Неподходящий тип файла." #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" @@ -208,11 +210,11 @@ msgstr "Загрузить файл" #: mediagoblin/templates/mediagoblin/base.html:65 msgid "Verify your email!" -msgstr "" +msgstr "Подтвердите ваш адрес электронной почты!" #: mediagoblin/templates/mediagoblin/base.html:72 msgid "log out" -msgstr "" +msgstr "завершение сеанса" #: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 @@ -230,25 +232,32 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:24 msgid "Explore" -msgstr "" +msgstr "Смотреть" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, welcome to this MediaGoblin site!" -msgstr "" +msgstr "Привет! Добро пожаловать на наш MediaGoblin’овый сайт!" #: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Your finest source for all goblin-related media." +msgid "" +"This site is running MediaGoblin, an " +"extraordinarily great piece of media hosting software." msgstr "" +"Этот сайт работает на MediaGoblin, " +"необыкновенно замечательном ПО для хостинга мультимедийных файлов." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "" "To add your own media, place comments, save your favourites and more, you " "can log in with your MediaGoblin account." msgstr "" +"Для добавления собственных файлов, комментирования, ведения списка любиых " +"файлов и т. п. вы можете представиться с помощью вашей MediaGoblin’овой " +"учётной записи." #: mediagoblin/templates/mediagoblin/root.html:31 msgid "Don't have one yet? It's easy!" -msgstr "" +msgstr "У вас её ещё нет? Не проблема!" #: mediagoblin/templates/mediagoblin/root.html:32 #, python-format @@ -257,6 +266,9 @@ msgid "" " or\n" " Set up MediaGoblin on your own server" msgstr "" +"Создайте учётную запись на этом сайте\n" +" или\n" +" Установите MediaGoblin на собственный сервер" #: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" @@ -273,11 +285,11 @@ msgstr "Подтвердить" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" -msgstr "" +msgstr "Сброс пароля" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 msgid "Send instructions" -msgstr "" +msgstr "Отправить инструкцию" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." @@ -377,11 +389,11 @@ msgstr "Редактирование профиля %(username)s" #: mediagoblin/templates/mediagoblin/listings/tag.html:35 #, python-format msgid "Media tagged with: %(tag_name)s" -msgstr "" +msgstr "Файлы с меткой: %(tag_name)s" #: mediagoblin/templates/mediagoblin/media_displays/video.html:19 msgid "Original" -msgstr "" +msgstr "Оригинал" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" @@ -390,41 +402,37 @@ msgstr "Загрузить файл(ы)" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" -msgstr "" +msgstr "Файлы %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" msgstr "Файлы пользователя %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" -msgstr "" +msgstr "Загружено %(username)s %(date)s" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" -msgstr "" +msgstr "Оставить комментарий" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" -msgstr "" +msgstr "в" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" -msgstr "" +msgstr "Разместить комментарий!" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" -msgstr "" +msgstr "Изменить" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 -msgid "Sorry, no such media found." -msgstr "" +msgstr "Удалить" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format @@ -557,15 +565,15 @@ msgstr "Более старые" #: mediagoblin/templates/mediagoblin/utils/pagination.html:50 msgid "Go to page:" -msgstr "" +msgstr "Перейти к странице:" #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" -msgstr "" +msgstr "Метки:" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 msgid "and" -msgstr "" +msgstr "и" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" @@ -577,19 +585,19 @@ msgstr "Я уверен, что хочу удалить это" #: mediagoblin/user_pages/views.py:155 msgid "Oops, your comment was empty." -msgstr "" +msgstr "Ой, ваш комментарий был пуст." #: mediagoblin/user_pages/views.py:161 msgid "Your comment has been posted!" -msgstr "" +msgstr "Ваш комментарий размещён!" #: mediagoblin/user_pages/views.py:183 msgid "You deleted the media." -msgstr "" +msgstr "Вы удалили файл." #: mediagoblin/user_pages/views.py:190 msgid "The media was not deleted because you didn't check that you were sure." -msgstr "" +msgstr "Файл не удалён, так как вы не подтвердили свою уверенность галочкой." #: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." diff --git a/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.po index 30622dee..a44f7866 100644 --- a/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-03 16:57-0600\n" -"PO-Revision-Date: 2011-12-03 22:56+0000\n" +"POT-Creation-Date: 2011-12-04 10:24-0600\n" +"PO-Revision-Date: 2011-12-04 16:23+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -152,7 +152,7 @@ msgstr "" msgid "Profile edited!" msgstr "" -#: mediagoblin/media_types/__init__.py:61 +#: mediagoblin/media_types/__init__.py:65 msgid "Could not find any file extension in \"{filename}\"" msgstr "" @@ -235,7 +235,9 @@ msgid "Hi there, welcome to this MediaGoblin site!" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Your finest source for all goblin-related media." +msgid "" +"This site is running MediaGoblin, an " +"extraordinarily great piece of media hosting software." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 @@ -395,35 +397,31 @@ msgstr "" msgid "%(username)s's media" msgstr "Výtvory, ktoré vlastní %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 -msgid "Sorry, no such media found." -msgstr "" - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" diff --git a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po index 568a5f73..ffd2c04c 100644 --- a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-03 16:57-0600\n" -"PO-Revision-Date: 2011-12-03 22:56+0000\n" +"POT-Creation-Date: 2011-12-04 10:24-0600\n" +"PO-Revision-Date: 2011-12-04 16:23+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -150,7 +150,7 @@ msgstr "" msgid "Profile edited!" msgstr "" -#: mediagoblin/media_types/__init__.py:61 +#: mediagoblin/media_types/__init__.py:65 msgid "Could not find any file extension in \"{filename}\"" msgstr "" @@ -231,7 +231,9 @@ msgid "Hi there, welcome to this MediaGoblin site!" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Your finest source for all goblin-related media." +msgid "" +"This site is running MediaGoblin, an " +"extraordinarily great piece of media hosting software." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 @@ -381,35 +383,31 @@ msgstr "" msgid "%(username)s's media" msgstr "Vsebina uporabnika %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 -msgid "Sorry, no such media found." -msgstr "" - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" diff --git a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po index 63f92fdc..942f7203 100644 --- a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-03 16:57-0600\n" -"PO-Revision-Date: 2011-12-03 22:56+0000\n" +"POT-Creation-Date: 2011-12-04 10:24-0600\n" +"PO-Revision-Date: 2011-12-04 16:23+0000\n" "Last-Translator: cwebber \n" "Language-Team: Serbian (http://www.transifex.net/projects/p/mediagoblin/team/sr/)\n" "MIME-Version: 1.0\n" @@ -147,7 +147,7 @@ msgstr "" msgid "Profile edited!" msgstr "" -#: mediagoblin/media_types/__init__.py:61 +#: mediagoblin/media_types/__init__.py:65 msgid "Could not find any file extension in \"{filename}\"" msgstr "" @@ -226,7 +226,9 @@ msgid "Hi there, welcome to this MediaGoblin site!" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Your finest source for all goblin-related media." +msgid "" +"This site is running MediaGoblin, an " +"extraordinarily great piece of media hosting software." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 @@ -370,35 +372,31 @@ msgstr "" msgid "%(username)s's media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 -msgid "Sorry, no such media found." -msgstr "" - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po index 0e48dc53..e195ad70 100644 --- a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-03 16:57-0600\n" -"PO-Revision-Date: 2011-12-03 22:56+0000\n" +"POT-Creation-Date: 2011-12-04 10:24-0600\n" +"PO-Revision-Date: 2011-12-04 16:23+0000\n" "Last-Translator: cwebber \n" "Language-Team: Swedish (http://www.transifex.net/projects/p/mediagoblin/team/sv/)\n" "MIME-Version: 1.0\n" @@ -153,7 +153,7 @@ msgstr "" msgid "Profile edited!" msgstr "" -#: mediagoblin/media_types/__init__.py:61 +#: mediagoblin/media_types/__init__.py:65 msgid "Could not find any file extension in \"{filename}\"" msgstr "" @@ -236,7 +236,9 @@ msgid "Hi there, welcome to this MediaGoblin site!" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Your finest source for all goblin-related media." +msgid "" +"This site is running MediaGoblin, an " +"extraordinarily great piece of media hosting software." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 @@ -395,35 +397,31 @@ msgstr "" msgid "%(username)s's media" msgstr "%(username)ss media" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 -msgid "Sorry, no such media found." -msgstr "" - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" diff --git a/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.po index 816f2580..f7bbd6ac 100644 --- a/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-03 16:57-0600\n" -"PO-Revision-Date: 2011-12-03 22:56+0000\n" +"POT-Creation-Date: 2011-12-04 10:24-0600\n" +"PO-Revision-Date: 2011-12-04 16:23+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -148,7 +148,7 @@ msgstr "" msgid "Profile edited!" msgstr "" -#: mediagoblin/media_types/__init__.py:61 +#: mediagoblin/media_types/__init__.py:65 msgid "Could not find any file extension in \"{filename}\"" msgstr "" @@ -227,7 +227,9 @@ msgid "Hi there, welcome to this MediaGoblin site!" msgstr "" #: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Your finest source for all goblin-related media." +msgid "" +"This site is running MediaGoblin, an " +"extraordinarily great piece of media hosting software." msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 @@ -371,35 +373,31 @@ msgstr "" msgid "%(username)s's media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 -msgid "Sorry, no such media found." -msgstr "" - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" diff --git a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po index 6bc7a717..70622590 100644 --- a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-03 16:57-0600\n" -"PO-Revision-Date: 2011-12-03 22:56+0000\n" +"POT-Creation-Date: 2011-12-04 10:24-0600\n" +"PO-Revision-Date: 2011-12-04 16:23+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -149,7 +149,7 @@ msgstr "密碼錯誤" msgid "Profile edited!" msgstr "個人資料已被編輯了!" -#: mediagoblin/media_types/__init__.py:61 +#: mediagoblin/media_types/__init__.py:65 msgid "Could not find any file extension in \"{filename}\"" msgstr "找不到任何 \"{filename}\" 的附檔名。" @@ -230,8 +230,10 @@ msgid "Hi there, welcome to this MediaGoblin site!" msgstr "嘿!歡迎來到 媒體怪獸(MediaGoblin) 網站" #: mediagoblin/templates/mediagoblin/root.html:28 -msgid "Your finest source for all goblin-related media." -msgstr "你是媒體怪獸的相關媒體最珍貴的來源。" +msgid "" +"This site is running MediaGoblin, an " +"extraordinarily great piece of media hosting software." +msgstr "" #: mediagoblin/templates/mediagoblin/root.html:29 msgid "" @@ -389,35 +391,31 @@ msgstr "%(username)s的媒體" msgid "%(username)s's media" msgstr "%(username)s的媒體檔案" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:58 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:68 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:86 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:103 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:125 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:131 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:163 -msgid "Sorry, no such media found." -msgstr "" - #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" From 5b972a192e923dffde4660ca44e8bfbc74aa0c2f Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 4 Dec 2011 13:57:35 -0600 Subject: [PATCH 1241/2731] Compiled the .mo files too --- .../i18n/ar/LC_MESSAGES/mediagoblin.mo | Bin 12629 -> 12717 bytes .../i18n/ca/LC_MESSAGES/mediagoblin.mo | Bin 11417 -> 11505 bytes .../i18n/de/LC_MESSAGES/mediagoblin.mo | Bin 11684 -> 11805 bytes .../i18n/eo/LC_MESSAGES/mediagoblin.mo | Bin 11489 -> 11754 bytes .../i18n/es/LC_MESSAGES/mediagoblin.mo | Bin 11967 -> 12093 bytes .../i18n/fr/LC_MESSAGES/mediagoblin.mo | Bin 12215 -> 12304 bytes .../i18n/ia/LC_MESSAGES/mediagoblin.mo | Bin 11150 -> 11238 bytes .../i18n/it/LC_MESSAGES/mediagoblin.mo | Bin 11534 -> 11622 bytes .../i18n/ja/LC_MESSAGES/mediagoblin.mo | Bin 11791 -> 11879 bytes .../i18n/nl/LC_MESSAGES/mediagoblin.mo | Bin 11306 -> 11394 bytes .../i18n/nn_NO/LC_MESSAGES/mediagoblin.mo | Bin 10845 -> 10933 bytes .../i18n/pt_BR/LC_MESSAGES/mediagoblin.mo | Bin 11508 -> 11596 bytes .../i18n/ro/LC_MESSAGES/mediagoblin.mo | Bin 11761 -> 11882 bytes .../i18n/ru/LC_MESSAGES/mediagoblin.mo | Bin 14235 -> 15455 bytes .../i18n/sk/LC_MESSAGES/mediagoblin.mo | Bin 11701 -> 11789 bytes .../i18n/sl/LC_MESSAGES/mediagoblin.mo | Bin 11351 -> 11439 bytes .../i18n/sr/LC_MESSAGES/mediagoblin.mo | Bin 11247 -> 11335 bytes .../i18n/sv/LC_MESSAGES/mediagoblin.mo | Bin 11450 -> 11538 bytes .../i18n/te/LC_MESSAGES/mediagoblin.mo | Bin 11439 -> 11527 bytes .../i18n/zh_TW/LC_MESSAGES/mediagoblin.mo | Bin 11108 -> 11190 bytes 20 files changed, 0 insertions(+), 0 deletions(-) diff --git a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mo index aa6eacac22dc24f35dc38b71d9b818a227df36f1..02dfa29a8d836b87c0a82d96e257a57d047698c2 100644 GIT binary patch delta 2203 zcmb`{|4-Fb9LMoDUkXIv%9r@6@uASX@mqt*lID|%vI=S+W0A=%`L5^Jzw0r^$&Ch_i@hooX`34 zexGx%bWM1}*E18}H9mvBQHE3h4_unS+oQRD@4EjP==98^Cys=YDR z{y64Q@5BN;gb(8|CgOQa#S56r{Psnx!zE1P!6N44y`>HeMsF>w5;Z^rK7>t37wf<> zd;y2>1YX4y1}nv1un5!BqfxFvFZFROW`0X`nPp)GK7w0NJM^J;HV~_aQT^UQrQ#fF z;7L>@u3-i)AZu7^d;rpTsQy`~_I0TCdJL=3L}3-SBIz?v%$HC*4I+!Rw@?up!yY_` z%w;ZSRmh8wCTl=Nuno09FKXh~kw1HzFZKT@gZL|?U(&D#r%;C`kL{P?Q>YxiidA?T z6_FX#fU~Fx=TNEm4K?0f+=lls7q=3&9k>rQ?l{)tl`P_4K_QJJ?%-zZ#C>=SFXDRK zKo}G$F9y+%&3FwJu~o#ExoizOxDj<`o{P12p(1z$Tk$w*0W)C=nWKZ@hVRbP47lnBWg@w_9 z68I4y3s#4k;0fG==W!R_M-9A-RVW3!u@1ecNW70P4z`19iQQq8o=%x8)*oTIjj$83M?!*!X+kl7N#6OwBSsJ*KHi6tIn?|MLDr)C9aT_k87Er&A9}(=v zX8aSktDXGFFe>-o;4^p|kKvOvHsSZE2&9%1f8FOo;_@P%M1_12m9u1KV{=xB90O}b zofRLZ<7?QBr%)5!!M)hdkH*vZDe7>?kuM#>Jk;UsK-Oe|O%#-?4{#K}!Y$a&T}i-E zjK?uthG#GdKf#fyf}F_Zq?we+=b7d4uAo2UbNoRkaHOx#-*<3iYDGLzhmLvzzQ|m5Z^Fo6-le1( tr>e5Cx@M$3zgXqE#_A1`!TdK}k(F+DLUv~l^ZlRmwwAq-IC8gg@4w%O5k&w1 delta 2187 zcmb8ve@xVM9LMoD0^T7Bf{=ozd{I%9(-YW1UM40Jh@zRe8C$XN?hqDo^A0TB+^x|T zt{F{irPIxt%^I^mx(&(6tlS#WENPW%n&sw3E?rx-nzOZ@uj97-d_SMh_w(cZ z{(SCi@Y~(-8~GV;7=H)&_wauwT~Gi0U2vHd@Hl}F;@3EXx6y~wZnG>*G_bxeuwbCR7C5Pz#KqCLTdPc8V|c|1gjEE2Ljgu?w%D4ox}R_hLIP!B-Us+=vc#;Z8h+KD>d7 zR1V>YVFA|R5GrDm$Qo=K9lV7)GnvF)_482?bg&+MsCi>?3J+5l#YUV#KIUV&0c=2p z>Lt`+I*v-!XV{Lna0AxUsS5j0*X#_=!BOO<*$1cvjiVYqM)qX!Pl&5S;X9nczfc4H zNZiSW<@2MUiB{q+9K_j)K(F75E1}AX`mhmH^!~G%#a2R!XrUCg86f=`Sj!TvZkD*Cb9By^>qp p8i_^+yiRY#iS-A&W?xCowtP)Rdg4p(V8(_vrg8qyl-nzx{TKd90#^V4 diff --git a/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.mo index 203114fc48eade7f6b1a9e9c36a641e4a9c802e3..34179a53d237515f32598f254aa1c01a628f9b06 100644 GIT binary patch delta 2213 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 delta 2306 zcmb8we`u9e9LMqR=H{kLr&HT6-JWI6>73iN`D2z!rqh+-FOr!_+r7`+>bl$R4`iBM zvY-tWqo>H3l7?htCUs$1Xbg+cL~1qg4@I;D%aSNUkb(97cpvERF3+CVdCqh0Ip6a= z=iD9Kc;xBCmAs6%jL$ayCi3_DFg^YEIhAELp2yR8KmLF>@K>zHfo!u8n8s}m=3pZ} zigmaLx$G-$>iPnz-2e_ZOIY?uvlUe2B7IsDj=^TE#Rw|6Bghx5G{-Ct%Tev-qv{*| z`qfy#a}bMg2bSPI%)rm^K0Jl_jBn@s2G?*DFZ8w$Mq@r!paNTr>R>rez?H~XEPyjG zj63iEUc@3gtHi&s6iY^%b>Tt`;7KfFe4ChSHcl__0bGNcVH`EHZvS~Ns@;32rRYO- zd;yh-TR0Z)A~Dz)Dl>5ss{LeCeZ61bfC)8NNnsMMMV8Y#eYc@z`U(=P^`bKL0k&Zu zGM1Gxs#0E!RM~P=2Afa;Mo|NM$YqDPsr{#8$-h#1o{IJOJ!;cbF#Q?035#(TYAugq zEuKMT=5JKTL#TnXNspGK5Y_J#T!zz8OWBEy*n{eSa2)xcOCgOdJ`?AogKfADd$1a> zpfWX@bVPAHF2Zh9#?B%!*Z?|s9kpjN$-C-Dp)%;;60Amz8%M3uCBbb`;a`7;@6=V^lyV@oJh`KQbpv944_e^b31qpf51Fieiv({!A(stt(^?m?)7U;%ip;@kk;|UorqqX! zp=>*esqG>A&+RrGM2V|EjdqL$)~vefDL5_@?b#1`z}4D%Hm zKn?UKK7u1Ar!v}r+A|xlBtaoSf&F4T{RaC`9UMdL>hq{$cNsO4o2bm(K~}}=!BqW3 z)EZa%&PL660cyY|-xlPu=eZ@+;p-GMz`M8wkE70Y@s!m6gi5@3u2HFNLS-O^3j7c% z^?j(NIg48JYuJjvVI8h1Pwo0{RN(#POmFmYU%$8yg(zShu+O)TE5tdC$ZR+M}Le!LJVo#1^ffK%H$w&7>P&!1u8R z^Q%%3FUMhekLkD@b8s&zpm(a0A7))0nX|63AntCIL)DuvpL)nYVW9uxS{5l8+7h{b*A@r!NsiEPVJofy18Dwux$8jXV$Fx zI`2SXL2+QK+tT7joQM6w;$S=)>k5Rz@nG_DVMgZg$J~$`bG=_m+>E8c_E>U#>7ESl zbZ%wx?&PIuxvL`K*7lI=5F+E1C7+#Ak>)*_SK!s;m3ZgM=M}9DMUS$7mGSF A9RL6T diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo index 02d094863da2ae88004e9a0b53efe8247bc186d3..8f37922f516674ff72c9a1ffbc37fb0ece113507 100644 GIT binary patch delta 3397 zcmZA1eQZ_b9l-GiP+%PhQr;`@l$X*%DNw-L0)wiBAqa?NPMn&jz0WPreL3gmoO26B z@Zw7%CR>Ic=GUdsm&mr5m`vHirp!e5{oQjZ+iu$X zIp?|0d0u|M-*eu(_k;UNf0}gNw-lcN{%_*{FQeq{+UMmlN=@eW6`YF4@qPRwF2%RT zD)j~YJKl_+;vLvZ<0?FW@_U&t8Tt*BesAGurAq1(E;iBdIWnf&RHM{HybG6O5AMSw z$OCG^7nPcXQ&IXgp|p2Y+dFYO_uV)X^Eew1;dS^U9EUICH0D=Fs~yhZcz(EqGw`!Y z2L_|JENmId0Jq>2T#Iy3cVja?hzIcNcphsQY%yNMIe5bjNt9c#m;0Bnp83_d2};#s z3(mz`QFdricDA>AUqb2kG)gL7L>c%Elt{dbH{yrL8Y+#~!+3s_{rFCl%MhI{ZBO3_Sb`^~r&C5I2;a(o6QA}3J>JdHBp1(a0$4Q0G5xB)-IY1l>B z?!fy|#(fFf@DH`bzlDqOl(@z<*p2t&LHq?S#TA4>BGro_I$VeEqC{*K@ntU6fEwFT zYGzlpy$2ctsNp0Y8N-j5}gz&2<17%Ti8z5^_ zkD;vi`zVok4P}ChDE&S_DYj3s3G29#kawY+s&15V_MjB)(>O-X{|j93r+&hhRQD;A zns^6GI7Tb=F+PFqSgKDJa1^B${)!gwWfqy}O}=Eu7f~X587U*xI4`M{wMf~h4Jh@e zzQzS}sRGIXhf!*vj6_wPLfPT_D8=>(%JCX8KY1V2p;Z4;9EGb<##@I{0}rA+=TOEA zP$KY6EY))H11|Pp8D-$b3zAo67fQ%eRrgohkD#QgjIz^TSKHq~DXx$4Zk*UaL1PLf zqR*o|_dC25|J*=;C5H_QlZji9^rQ#ag7_{LQJ$Z;D5nJriND7h zJcncPJyh|fDO1X4$DFJwzcy*f$O)l~tahOeik|1ZzWCV0m2IB3d!xYkLCSe1aJd29 z7g!VNg0sC=`)QrGDQEOgFgZ6W9+-Y+%u2m{Sx4*2_^uiCom{tf zEMK*F8K0UhCXAMJ2gVC?Ch~(0ZE`jn+Ds7YH7T33k-a+D`T^sm?B1537{5B>&FQ!M zp|gRX(J8AJG!{b}cqVU~!uZjd-AgwIwy3kd7x}E*(?d@>9l4?o7%tus%_Bz*B)OX5uHu^m|=UqJbon(-HHdqM!LSQtL^}C#3ezx?=|gFkv$Dzq$6wcZ<7G{#Q0fVFDR>fNTFMs}7V^r-{8_}na)mIi0 zxq=^`pSyGNaCoytLKwNMP5JTKdC$$tG_x8*aPyY%YD>mLSwTUz7GIv%IyVW()gGRz z-sgrN^5V|<`=)QHgp-h*7?ef(I!$FoCX9bOzkXU*mOc6sQqS+FqY3-{AoAmX&)>G# zY3GGeP$XBrr*3!sE>+ZwUR`Cz(*+yI^nNDZws2;AXu-~otxosYlte=k653Q!9a?r* zt&DWu`eWwYsl4b_)(5fp5Nk*}aBy_%HCJ9Hn zlD)_@Q+Xzk?C}%jn07&)Xc0e8_u3$`y_A+LmeuEFcxr0f!k>+pMxjcMOh8mBMM=8p z$5~vlk>e3j_{mYUy2tk{>7z3H0>dD_F8G1&<5-dRR3(ILJ9Y8kVdBJhb+MWFpN;LM z?Q}J{l@jQrmRO3HxBX;C|D{KKY>`J0otNRe0K!4!l;B5*As<&Th5*XL%2V)=RnSEb@v8e6Rl6D8!)O?PJX34US)7TFG~YZeV^um=3|+p*&-u#ck}#?N0A5JjHvj+t delta 2538 zcmb8veN0tl9Ki7hQ9)4NkrxFH@+u-A3Me{tB7#g?;@imOcDeTe$1eB4J@=x}92#!P z8f*F3i>8}eO{deXu2WmMUTkJLGaFM|>9V=GT>fFJtXZz_&wIE2jvdbDInQ~{^YVLs z&%M9tPTSz^l<}`C{s#D;&i^mb^7P-|XpB;6Jf6p?_$}VUpRp3J#VR!kqqx;#JhtF6 zticiFQWv;M*H=*5UBih=4XW5UrB+gri1ex2FbQ2a2mL6Mdl&gY<;5$Ng2gE97NFF( zMC#XICeI$s#_gDkZ{c`6i<5B_GZ(9Y01HIF|6pmSmyyTZAjH3}q{Ou?2@w`X5Ur{&f_hNbw3>fChHq zIvmDIyp0m61j6B98ZN=zC=t7a%t2j41Mi~b%mm^t^;1wHXkY_YqKxYdQdmgg1UBJ4 zBGVMp%s*AW8?_w1;(5M;%D97w5j>8kkNmHj#CUg!@Mk)0PvL-d? zBd+wJhVUM~jdSIhxXa$2MG5&AxC;NmrMQA03wBGrj56Rpti^*UTQi26@OzYj>zK8) zUxL!#8XS=GKSV+H>IuqTMsrvtWJxF;6`<^G88SDu5M{y}kW2Zv$@e2D?e?G~-8(oF zFQA0}0m|w68>OE-8pX)@uYX$L7Yn&m3pYukEhstBhlBVYKEfh{Ji(m&@Rn>u$%!E} z@e#^E&vTO%??8#@9+ZV$M9G=&FkL$Si9#y=iHxBp7lbWG$%R!&6qOrgg*#9>cn#&4 z?MM0kG|I#;VKj~*K~*BVgt(Fe}qI!T}B!BK1%2x zN9t3H!YisqS!pAZS88L#9$d@wFxKELl!&GlhmZBLVgf56*-XVU>_thI(&vXKYV+Z|iled1u<@Fk!cDvW|&GwsKSHScbPd}~DZ)V&#~14RxyND} zxAk~!zo`%B&5UcZjeu?RxH`?y^}N>T-94!nYt<^ zS065}%wB8z{r%;J&o-Q(yDPkca7gvn#rx9MxjH)u*H$agr5Xd)3#P~3qW?*04qYud z6{R!FDz%j!(4UtrO5R}lt&V=9pRgNdx6AT|3TLg4(z`NRvo=_U$Lw=CMvvd_vj%vw v9n19FKK&qLm9ClHRn;b6{hy6HFuN|p6;K`CpksBn+g@9lUdQDP1}yb2e(8cb diff --git a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo index dba37f0a814c9490904ba6c6914b58c5b74c3298..bed6aab8a3cc20c7410f280e4435a62226c9a104 100644 GIT binary patch delta 2502 zcmZA1ZERCj9LMpqtuPo5gRwCtY&)C41h&GUZftB!M*s%|hR!G?U~ap+akag--rLF$ zNDcVH$ADA`i6LerAc-uBH6(@*27N<<32sIZ14a>Ign(##j1m0)X%ioswx4rP&pi*n zdrnVoII%JDRgv#4#cK#OLu%SdIK_TeTxgp8#M8C4>$M5@$6lmt6aCKy5)cqj5!yZMs#2PTrgM0%WxCvXsD(@bIc zwYVDP8E(aT+>4UP8I%ssp$vElF*C*hIg8KI;Nv%O?XQOP&I7+*n zD5q#YR^cE9@Cq_#RjM-+4Pd^U|5getS}jG{Oa?AS7q{V2yoP>ytHWY?pNZ}GDq0xA zUy!$2cYkI<+feq-E|kbmq9pPq$^x!oG2<)WbfqY(GL(*6kqxT4QEu!*NhXOB{Xvw0 z-p|$#qeOodeRvaP$IUER@7oVuB5>Hc|+qhjO03M&9Z+UuMHRL~%Lcs%>=qIAAyc*@W zG@z__DYoMpl<4;0lXw(6uz+4$unXmX;tiaQY3#&XxEtH3l+*Gl%BjekL;kN&7{l3G ziF;9^zJe0b&nQXca}-8n9mbev3I+&JN1ON*sgLI3E3|lDA7rQp5RY3R1_4>T(M`D`slT({9|h zExR{4I3dtzYqKxr8jjm-*@kO{x9DEiG-5hxnITg~OWA z!-kHg`+J#fYPsIw(~n2JS{;k)kP|WO7)x-p>BWqop`SBC=>aEsZTh0=wvOBXYT;L> z`#YWgRi>I|EXye|7*m@u>)E&&Gdvw-Rv{<3d*=Dnj+z6xr9_w+AlgWAVJpONRf-1P$^Df&d9ki5Y5H3#Ok1S~=+V(VrrE8Qm=c`!OwUTE GZ1p!^4}N+8 delta 2316 zcmYM!du&rx0LSsuJ=kC}#$!O)qj$g<4z{uho7>n}m@UF$8Fwi-L$6;}ncDDt}-I5(oh$LB+o?#_!KIap~^o+;eZw<9E*K zxz6*?_g@{Cwa@Ukh5usyf6LU}|9@w5jG4ggIh=^!<1M_6ejLs0?gNiXon`R9bU;t|{iW=Nes^JHyj&q4eOX5YfTaJsc619{)xCD2i+W%oZ`PWnMu*Ivf0WDmQt8gd! z@hU2*eBy}V1YCeSP>FqojKK_}g*Q-pCY#(C3Z^&9J_&_v+`w&N}2WBd%a z5f`DNdJ(mmUPmp}m)MCna1OTdQZ2?&$Lttp;0ffUnUkmi4dPvoF`uFm?LWy?9S-4b zyoPo7HMz4I#>0<-q8g9tuod)LK7@+MLT#@4bLJO}$u#hj1=_ zf{fApiMcxe1y(8=FKV-up*B%7wqOVL;SRis*|b)Lzv2w^(#tMvMV;%5sE+4MOHF7c zY7cdxB7YT?$Z0I4e{+@s`^#KGKIR@5H9TQ@>by6hzW5X>nGLAu`%oQiPuIVTivDBF z!Y`0;%}~1j7HVSmP>KAF{o0kK<*DeZFwA`u>Rca3K4y>$8`@k&&HO$p%BhS}@2y5n zU>$0y`Y;>!;Tk-MO7btP!MPQwq`NA}|6wY&QPGU=;|RQiI?ul&N7ZD^OdX$zsF|1J zLiD5dKop>byVk$kk!&YacN9kF9^ zE9NAkL7S&hD-aG_>zuXW?nqVC4hQ0P$olWA)$abumvbJmYU)w>CA8RgpA#(8z_ z8{SDp!OiyCwRY5+pDwh960vx1Fzh5k$&22GO!vab=44yRN1hRn*wZCP$xL4{jVKF8fvP?AiPFZ8(YjGgEX&lsMv(uqcUXIl}+iY0>U zQ)5a`=SaoTjO34%u}rsUa%tA8gcWix_$+sC^{RSqHrgAQR#(D~#BD2NTS13Hq&wuq dEKM-j?L-2)p*}tFShah-x;Y~dcgy_6{{r-lGT8tC diff --git a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo index c7f5701f02702fca61eea8d81fe37ce5f6284fe5..ed1ea35dfd4e7f0fec92acba788e6751ac127783 100644 GIT binary patch delta 2210 zcmb`{|4-Fb9LMo@fMUoO<%>d!elWlA{d)*ENXxW|L8PPFd+`;5ezrE)up%kVq=1AoRMyt2sbQTz)l@B!9g zDV0y)Vbt>w7j=CZ)$R%|Gz;2&3bj(|Z2FB4@9{z@_F)=ZmUewGEM(%^CcJHH> zVhGjoWmG0^;ZmGN#_+Im0VMEH?Nd<$QY`_2~@x-)Kc6<_4f~M!#P}zTS;3THlg|*#*KJAh5Q#%NMMUQSdER?gh%iK z7GW7_P^LT>Kp$?xTd0g>l3!xkdUUV~wP#+9)VH8AcmTKHQPcp&f)t*lpkY1-)ku{c zMHha6O4TH4Gu=Zi)e0(`u?kD^H0pSbV-!vx2gsk8r$E{huJMGB`|On!-1z zjy_)z-ekA2n)_L7!czVml+u1w$2U*`Z({}ijtaDr(Y=XlQA;v}+6xzOGyZ@lF@ZD5 zQU>iT1*PuOh+l^v*aYguNn~s`gBtN-cGTmz2DR4PQ190xUu)*F9{W%!{{*w}3#1F1 zL@n7Y#_IgfQP2wuo$!bYP&2B+k8wXfz+`&SUP3$;me zkStpfs{IS7)3OUUpa+$i;~3O=K0~1chmj3!X^bWp^N{7YUC89jk4ohrD!@h5Os+?q zMg@!|N&_yzt=NKPIE=+Og)U6UCjZ(@&u52cx+7v6YV#bz7(9kM@i^-I{)#VRd`|cn z?#3GKKSXtW6KP^;%%UBi!XtPdHIQtM(gNI_NB##Xv{11F?<4;~R!w=azK&jJuixwLcJ}+c94>oIqDwcaPie4NawXL=W_) xUyUtyN{U^jA3e*x+W72yB? delta 2187 zcmYM!4NR3)9LMoL2wfCGMM+*%9uNfqy@7#xGhjL2NNtF%(H3=stFT?T<6bTem)?=& zw3fMn`I0Sr*>KX@;%-8lY$jXFiY<)Bvdvk!k+mtG z#Mh9^#<{8M2~@jDe84PXDRa!WQ!x+e(;9I;da)dXsKLFDd|-L0W*N8=)ouf-zAj#0 zk6ApoU=AL@Wq1mca0KV#C0tB=yBcrsJ*M$OZ?hpC7h^GMV6~_YwqYjjL_V=*EW-dE zz_U1wIdoQvzhNFOOE>GmYHY?)%qPArnP;|8FR%c2qh=UJ&Fo10`E^vgcTr1m5!LYo zDigop0=$om!RAw$j7w4Nm!s-E@%pV8QG=ZnmSO|4oYon4KWe6jkipt%REExDD_%rm zSsqc9ayL?C+fW&7L=7;63fzxec8;6c4=*79O6eC=JcVDOHcc_pFT*Cx#aB^lIf&(W z1(liKQ61ky1x_J7T9Ry3zbkMHmY|lh6YKCOs{g5lX;2;A`T%Z%|1j8XcRw4FuRP36KN-}D)ix9d=u5t zE99Ll*%)rbNqh#=`H@gc{iu$ksDNWwg`c1T{fWJ((P~LvLhXrTSc~UzKl z4yjW0a@

`XSVZ!^qg|OVog8a5>&bt#tuAP2U$GmwC9Y#HUfI@5OvPj(lRnn4cgm|IEm~-8$xZm%cwwCI?Uhti z`&FpG6WMnCo;8`yru5_B;tmftFn$=NPcDm#(Yvwmbh*++3dM+N*5 z>+ue5#%iLj#XeMjqebLjyLXBT4<;AKHdQTZ#&vOcnEclr|}6)S`|B% zd+<@72T=W9Lz-9`vuVXD)Ii=YA^*t~zNX>?ev7*?z**zB$gZG+Q%ExG4@|*aqH^-A z5Va&5(Tnw{fkm+qU8~KWL@z2+Be)B{K?e)Bvy+s8&8P<5co+vzKRmhI>hN()#5dxe z#x$PK;#|Doj$UxxoRiw_YiaX3djsK)mS|5#bz*dVrf*j1-nI^3sLKfj!og-AZ-b84 z?|1eEp7*zPtPcA8-Y#E@^Y5o?`cGy}yVg48Ri4Uq{o(9<$`uu!%BtvF*){1o4S`^= zr_AXHIH7QJYwVMFwChC^iP7TH7n9sO#?Lu{@sAxsbp-?AZU}_CobEu#DTu}Ng*wB& Lg8w4E=WhQ8fv*MG diff --git a/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.mo index 55802ee2a5df92612502e4988b9f870a196212d3..c0a1ecb61f04c10c70234de6b2f19894caf3dbc9 100644 GIT binary patch delta 2207 zcmb`{|4-Fb9LMo@fPp9i5?_`0P$D42mn(4b0x@IBu-3-H*kbA~aMfE1?cQqwj;<|d z)*5qOYo@EQ+Qc>e#run`xv*biHFGkP+LWy?W^1eDhn&`CK3{z9)<4kQy`RT9=bn4M zyx-^CiQZp&qw_0M-ZfsMd{*=MIa#&;UT0Fx9-(>`^Y9D2h2LW>UQ9DviVN6;|KMiy z(AbFMsPE%EH1q{jzl->=S=8=Q=%V3YWK8QyH_O6qtjB&F!(+$~EOVLJO3Xv`t39!iWP2@YjA-2X)I-aTb^l_gEjaVK84z00JXD`L_Lb?cNCS1 zQ>cM2pdxVtv+)mP4U3ISAcHT}KL^#m4%P0(s0wWqim?MppZOEMgxYBsS**Q*c!)leH7E}tK#W8#h zNoCaTQP3gMB~`~PRE|qgA+10bZ7s+etp|DAFc0N=0(BN*s2xorZ#&OJzn?=L#@|ri zr*I+_k=2-@`@e<)X|zhzA!@A56+hr zahG+SYj|iO-KdQYCh8H?`Lj1EDCZ}UIqV!N60^vKu%A#n{0nsmlOA{br=i+QQ0>(T zJxEZk8I^(;P#fEh+UU!u!}vNzb)Sz=(0%?8wZhajZpiad3#mhea3gAgeW;1|qZW7= zm7)`vf^qD{^QbeERpv%?6Doya)LED)BmTv1haGqbwScd%1(Vjf*ZE0QY7e0gKR`w5JJeZPXr-WB6;s=WEvWl^0+aC) zCgBxaidQie=h0%fb93XfsWa*Ev9c$UGQ+`0zzK$((B7e;;Ly(4bXJ3R$O()@LjK{< zU~tGE3ho|tc7_7}i1SJ?Fc5HtcQ|_jgF(NuYd9R?Cr)^HM`WKr6o^fhH^#Gby~(l8 qs?OMS!P}_~PJNxv(-7+}ELFM5=UE>gExftxf1f%&S^nzcv=0F7f(z&X delta 2182 zcmb8ve`wTo9LMqZetGAn)9L29>D+hP+~wwOyV#}^oH}qeIqZjU7&KVBv#qXO+wF=C z#}Nb3LM3j2_KT3fND}hMMkt1r7$vk}NmQd~HH76KB@)P@=d1fdfAm+!ci+e7`}uyp zpC9kf`?Fue$HS?a75T3izfu0y@;9HSr+*lYy1V=qo(HRIdbWo9e&0@vdss1+trD?8#opFp)cjoOL} zsE)6rBJmrR;9tlbY&n$$Scz)C0af4T)^}n`4MG$u@lj+uZP0ZTwbF59vUUm;p?9zk zFCb%C6{9NT0i??IpdxqxHNgaG;52gCTin$CdRgYaX81EI%EO$LSw}0pV9_DY<9sVN# diff --git a/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.mo index 77bfbee9e6ccdac4c0dd271a3cb07c3aaedec425..1319a6058478deda7a3c86b62aaeb505fd741f87 100644 GIT binary patch delta 2207 zcmbW%e@xVM9LMpufFj5b<%fV|eyJoeM1Fbv5KCfVSmu~4l_u`MLyjTm?r?}@XM;a1 zTx*^&Hyv(m2{rknZfmo~0_PT48`G9lL;on2^AF87{;0K4&lh)F|MXY4yYJ)k`P}C| zKi==p=iY7pwK;eIIn5E%rRKEgL zdv&zE7PF~0;Tk-GkK<{K!x2ovE11Rnb~W1JCMNU6Bh0~t#SRQcZ!N4CH9#e1;x?p< z?ZHAkh$rz3&R`;gJ%c~vI!sB4M7aptsE=YE^IKA?SvnTs6Zkx8haS|pvLu~|I@CCxQ6Az%q9mNX#KArd%QAp;9J6MBFcmPk~ zr??r*2!kTkh5_{Ab9e_8v9-jPxhx+YtU{fc=4g8>DuTzb4hK*RmM;F=N>wh6Em(!6cpi1VzQGurMlO`yLM>z#$Chxtkv-X2!pcw<9HDTJ z!k1W!Be{{B-N!2G3H&K&VRg6#2T=o0;^KtpqCSn9Xc?>1bxuJ=W*?GObE8riz!Uf( zlB%FNTu$Y1J?b#IP&uwg7HhkZv8^3hqxBE|N1v7&b<|$}}iBCpWSb*x#fV{1lhfe#O$e*AM;wBu5wqK8W6Lm=M zBGI)uR0?9Ains#Ro`E`yr5MzGuBFh4yHO$g99fgyKrQ3}DnbiUbJs_9Sc%H*%cxYf zU>x@1etZLUW^SWySrXwPn6?$G@wI&7uN4l_pg)XDs7PEzrQ!$FfOA-n_fe;|`02=f zei4hQhp+~(M_sZZlB#D>sp-U1ID@)v`wAkdI9EXYb)PTLpf6H4Mkam~#kC^IvBD}E|5{8`$jnACu`$K!Ydj{jJ9x3~LnXkuk~MYrQQ-s5-s z{D-{VZojvy&pGV(xO<$VUQe6H@wGcgJcqn)r^6TM;U`YO*WT0X_Itv!8C|iVuL^gB zCbHj&FLz3ct4qs6jX8NLyQ)je!hJczN#U~mi!m8Z9nAS3bG!cE+~IFG+*q9YABpM^ A*8l(j delta 2194 zcmb8ve@I1I*OTxoVc4XcqptsQf*6YDUHn%tYn2Ue10=D~8*drheJR=52@ zTu;3li|{yZ!dEaAuV6OLU;*RXb@zn@T*U)DErc8_Krd=y&8Q9z;5uwWKCv#W!Vn(E z*YPG6(OD(_jwQG$$7~pPV;4?iDdXG5)n;q;05{`9s1**OR(8s*zkqu04OA+oP#xbu zMdDXnga06Nuv{9`uo(6J7F4_6ZQqYkz0gLX7z0Q;?U?HbYNeydWbGU(LhoQNP9bAi z38O0HwMdg4Kt-?}HNgmK;Bn-#3*7YnBB~G317oK zsuOqR?h|anA5ar4;YXqYdr%!u;GF@{M|~1C(D$fg{WB^;JD4@uwOyzbK7b=S|0gIY zSIejzCUID`sXVA0Z$>6-6-ZyU7n!3yj$AgvP2ZnGeSaPud=C||II6#8sSX-3w;)~uqy{CaM?H9l&fTR%G2neR&o|~u4gd?|HNdx zjVo{&GccWvFn+cuKQ^0jZDrO|!S23J=V)kXpgT6~*_|A_XI(I*@@U^cFf!;wLPO!M zAWy?iXMexb6FSo0H&7i8_IC~jyPZ3q){GZcw~a5Ze=cLYQ|I$HG>#7ymQt>-_c!=r o6NTrqHv~fA@Nktg5ON|zUA>9V5+l~c{N)qLu|pM~{qG_F1(F&7vj6}9 diff --git a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo index e2a241a8fb244e61c266aea04de80fc49f2c0a9a..39f3595b0100e5d851603afe8bcd22c4bbe6c03a 100644 GIT binary patch delta 2211 zcmb`{|4-Fb9LMo@fFZ~i1wjzW50%&@LAfBv4Q$1P!4?~4)0#wAyy~^QxXZObv)hIn zm1Wko=GNT8Ir0Z{=G|;rZrBfutxabwT2uU?)!6zX*S5Yd>-qBY+4={%yWGb)=bn4c z`Mlrn!|R)8Hpj0QWV~g(hWJ~;-?!=N{r5VRX||B=`&f*h;tYO`EAir7vn;%c4fq#! zqMyOlxF7X>k`FC?0X6R;-f0%M-)VF(@DH-4b!3~($8M~}Ew~qtAV0ADd1eJzjGE^| zjR(B(hp>eH23(B0@Gg7_Gw?mk!Be=1{p}-f!WGQrixigPt=kh=jM+NaD%1jNun1d_ zDfTF?z+T*sui{sj&0_cCH@Fn@^4uubU?2UHSi%05lW$gtHF!5ZjC#Tl>d6MZejGLL zO;jqzPzzr`MPeEk;0@#qw+H7yE?;VXA!@t|HQtDEHCkwtV=IzA3wrKEJ?Q{)SbG^2 zp`*A1$B?}&pIsI5rO1%2K}E0wb-+H<#>2?l4)dY;#}^QPh4fN!jre6D@votgONl$!j2o~A zU&OPx66*+qBGrcj7{&*28Wpi};>%uEi4HcQYUT-Vd&lzomm$Tb|hgX@hvlN}_i%Q5~g zjTst~s3$s8=Ke5+4fOxSZmi{>!$urNEqoP~g6~lCen!=TkJIToH=#BjM)tIWs1%;S zy*P!WGH%^mPWG@(s1U|bIUe!)hfoWQVjZ4G-gbizV z1kX;R4mN=~y8oAGXyR2=5#2-;$=^7FRgQa~&!STBN`+h1=kQtjQ>gp=2zQsJeSkX9 z7s%UY`Ot$E+~Y=U8LIC`)t{}Sp`1UC>}k7ERecz_5H^YmbrMyCNW#h0C!Gb)X39fcsGM zUqjW#7^+sz;A)&(=|*TR>UJH+r|`E*;;&q9VpT2B>p6%@#T%&ak6|00Kpo@<)P2sp z&%HhCv622E)ODUf2Y*3rSnPAJ^V6v7{3GfCmQ)dc-Dh8wTm8pSxtaD%p{hHb#HV8b z6`{4L5O!fJ_Fx!Cu@C1_K<(I%O4WxLz)Ps&%&K;4sim2Qauvn|j-VgQcnodWg=x4R zv+yy@#9p*Ss;DUO{NkMC^~_JQljjPm)A9$xv5*rUaH4x6k#J;tVtjsmW5fv!#-hRg z=+z&$F0e^j>yR<^>hJe2=IaE3)H!)l3B+pl#{$ICF27L_~Y}@`XMbs1l delta 2191 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 delta 2186 zcma*oe@NVQ9LMqZsq>sRb-LxWZGKJXOwF6FJJT^Y5}e5vE|u~h;nG`5>gAmmD2!_a zGU*o~VZ~M<8~Y(eC7Oe6)QZ>^MoKZFH8vQ@VnWm)Vo^O`yD#)_$N7DHzMt>s`}y&H ze?I4I$4~9?YdI-z8lO@AHu85nS$F?^&U($(aeEH$$0c0GTj;~ZG_%#{;S#_MY{AFS zkFO$M`+|$QUO=^5#8k7mrKOuaPDK{dr*&dB2C*6=sL35eUa-Opvm7i%wW~wbx48BD zaRc`~Sbzs{Grol>_$l6pXEBfQ?ULKz2Cm_Op5{X)=3yCXV!KftG~;^QhrD9lSczdg zh)3`W7SLG*{)UCPIn!(e8?YPav54_)W0qO29^ixcBx;2*)XEOK_phVcO`%dThw69% z6^RvGi+>|?uxu(<;U-l3VpM&-TfYb6YOs&OCTv5}X+y4~sFl8iOxE5;Md&2<;v6!T z6*8(q?nA1q85O}!)C8lbfhUl!z0XDMKUqus71FP%cnZHoZJIKcUx{7#0KSaM-(b?9I(w&OVZ@ER&o znS>*X>u?tyMn&u*G6!2k2XCVG%qrrp`ZcHsI@pLl)VR?&g&h>8aStvdU-L2DdTc_4 z>JVx(y@N{CSJ;I&aT_+$s0N2o$Ls_q;WTp6>_gOq=J6ws*=NX_EIveB>BGiw8Q;ZP z-4l1BWam*4Si&+);zz=d6{t`LQ7IU}0FI&t`WQR#jC-HOtQCPgR0>OxV;{GtDd>eM zx4~&tNY9{hd;zt|E}+7v;JbHIXt@J3l(O7nQmJWNj8j?UmQitMmUJ zg?k}GB_A9Z~Z36hPW20Vs} z^arSv&thCTS)ibEeHHug7gWgGi}{7Z9#qK2P!pL%f?=mn6S?Tte}n8RyN(+0Puz(~ zC5b(=8<)#wJlYn?fGhEb2I2MMdOiR0RJ( z{jj8#B|6@Zk8pnobz0_73%!l?nEX)U_%$?B&}M2wPPnf|`Pha;i>;BctNx%X<-#N>u6-tA6xpx$3Q5z8;4TvJo;56m3R_hl5cg(H!X lN@pOrU#`*t4PK=iC_!pM3{-^)| diff --git a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo index e78b8e3b001bb9fc065b7729c43ab0da1a0487e9..95d6d0ae141c335275f075991429810f61f667ac 100644 GIT binary patch delta 2204 zcmb`{|7+D%9LMo@chlM2+;`nt>StEd>74uitxc&dWk!qPLXtG@=AFAW@0EKuwrh+# zNUBLucAHHC1)(X!5p@3H-9Y{E(K`^R;`Sf1q)9ALn!Kx$pBn z?{m)mEjep^G zET^*y2T`9#c~j^~)VOoF*eq;+(rBUMA0(!=B%7sU8h10FId`AvrJr$8drqs zuaEaXgt)A*Aa)L$k2n2w!z7IkQHS$;9LqW17P zEW@LyicFybPNOEAMQz13RJ@zG74P5*e1x)X$K9y7r?CbvWl{eU8mSy{2OF>*cjFMg zi<_{5GN@9W7(_2_!8ugLR#IQ)vO;vQ4s~XB#rr!@73{+%JcLSMDoo=+8cK5;G$37e z26Mtc0@gRT@`l zB<9CTe-%~IHT)Q;QK5kX)Mmtk(U+mrY&hf-KwWh z-w&e_9l<2s|Kl_`4>pF%_#>>s&v5|%#_zDtiETk!f!R8q2k|hD;R{&CEDW^|Pz(A7 z*W)j!M6&OTEo?0+krK=d(`cqa4BLqc5JCkwhDvN4b=p5cmHs@cBA4R*^T>~*-9}Yp z$^Ef2l8RdC2GrrLL{+FBRp}iVR_Quu`0)U0uf9jN)8N+<(OYi*#xO|XO5gQM{e7Hy2( z=Q4EBUxiDt7L`adT4X*aCwehyDmnUI=0;aq(A(>Ayg?_>=ks}e`yyx4D{Fj?XP`IW z_6PQQeeQs_C*?pQ)(qIlcC&TSI* delta 2188 zcmb8ve@NVQ9LMpuo_6MM-E`A7{o2yprk+3Yw%Kx}<(zAU*@&wcn0HH;d3fhRO6%AH znT;6BYBdUCER04$U9AxY>&I$i4l)``YGPoCU{SKaDn`%O?x4Su^ZWRGKi}_tKJV}A z^ZDM?qt|@V+5D7OjK2~7*YLmO(%FB1lWwz>oPLId_#H0bB6@H-&Fp4O;^4&$?7$Xm z#21l|eaS&XUqanCjW?M^EiK(_2OT-cnC8P=?8Z6_p^7_+e8EaH%<{1Ub>9|Le@CLf z6IXNY$70-%CHNYq;3t@glemic?Ly*)pD~LIx>^L;xC$##h24!BpdAZv7xESB!72>m zetZM3U@?Pj#APhSl5DeKY{niugJsNbYjVt1=mOq~522ngf_kz;iSr|<`%a*i;xuaD zOQ)L^-Ers7)E{p(QuO^N>P7}X8CXspF9WI1gx;RxzUpGS(d*HH<*gS~hf znafIir6>39UcMQxf&9={6r;4OFFnd91}&ZmP#2)N3|@$#@ER)9igzL1%C|$?PohOcsriD`VJsT);VO z)H%5;((9T1_I$X;Y{|7Ey)$g|}mIdAz>`^EmH94IDrv z`W)`YQB;yYp$GFT;;(f}1^M52&*`{>3x`qBoJAG%4Qk@cs3rLo_2kRghX0@nYNeV^ z?7^-0F}C6|HlUYvqGsEND(DE-;xCot@1{|>KK@>ppnf1;LQQ-XwKTt@21sHdb$iRxZ;cxGt!N<;V&|3Y8{g^{6s_Bt#s3*YH zkkj4Y?>rfNqQ7sTIuz*d9t!xK8(*y%KeqacyTPgRHZ^VBuCH%u^v2#Sx{z7i o6%2)jtDJ$L6OQ!s#=nx7&0jH=92;1F%vI}S8t4B^nNr>UFEXeCV*mgE diff --git a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo index c2044ccbb115fd60d7423191b672c46b414a452f..e0a70ea95a5fc3699829d852ad76e992d7380774 100644 GIT binary patch delta 2485 zcmYk-Yiv|S6u|L;MOrGQ(9-g5r_cv|(n5JHtyWqU2+=^R5)jGl_IA0j-MhK>E>Iq> zNqK3M8dv0H_`nCmfMVFhNRR}yiJKTfASfoq7-G;EK;RR`i2hG^4Q#gin>#Z*bLPy< z_TH*LUXA^nJ8ZAw)x+Op{(kkz)1%jk45h~M_z4!^SNI$LgfsAbrcxvD9?rqPaS6_( zayD*5X;1JWL!U+IcOHi;6;lr=ET-aLWK6X_qqhWBhcduC%*Q6A zi)zDaT!Y*2ZTu0l7_16!U=fZQmCAB026#S(#muip<|vhiwKx?QqO8zFS=pxaa}1^5 zdnj9R6lLJED4Dp9WAF|V!(inTkWHiX&qJxNM5&*PF)1`rn1U_H_9-LnI+T^VNU-Wn zlnm|1wRjYnOXV=Dq`U~JQu9zUxELkC0LsL@$XmV3hx9)(hWtxP&rtCSolFWx$Il6Aqwk#ch=F{=(<*A&$dmN!t=!jWX^roQqfU$bT(`Y>v3b zMr_B`_y(TB890kHNTvelqJ>Z6b(D-vA-~L}%24Bclryt3UEhI{!6>%ic9Z~;F$xPP zNSMz2w7sMrMx_bJ@KX1q$P>}df%2D7jX8*n8q!akINucf_#b9lamGSM`mlfbG_CU^^F ziw>it{v__i0VH!V72tBR?J9)Q@pY7e`qK6Lkl576C@Jhm=2BNs`rS>}KR}YBGB|Ov z!XlLM7NAVL6xmJHgK}2(V20fPgA}CW5tNlDumZovt#}(R<2s!>3r)qTJ?_T6)bByL z4JF)N7Ny=nj)gjoPvLo#fYr3r?U{lSXcZR5D6~*uTT};1q+3t|I)-wMPUA?tg0kXY zumpcc$w)R2vL%yI4rv*dVl~R)T#oX+RY)uDY&|f-g{3`aO~abra?HA+wBMLo7hKh8xh2XR!_+U^7;flYfb9U3qF^2M1G# zQhz*c0$X`LgS-c$kO`&}jcnC!lv{KPw!3t<*=ZSit?hbzMZ0#Fx6yFS z#K72)FWxi$QbvQWuk+7rh%cK^+(3DrzoEXWj#t)F!}V&~9V6_949|A_I%q_6BOi98 zd9Cer8&;?`V0R}@PMGTRwVFD9DYM+CLq_7^)sA)m!5SYZm5*3}prEu|yipaN?~bRaWV20+zm*wC6dj=eZv>P!3Tlz#TFI{yv@MZ6gYA{=-@gjh-a0ek^3;#F+5QhTC!d}^)RaX0nrQKuq}Gt8XKI%FG| z9-N17qXNE(Iz@kBVS+-=#MCd8g)EC{LPfd)70^ql*#-gIPaGaD27;wlP?XdSM{=TWJ?jpg_cY7NVIAPHs;PQjI^RKJLt z>3-A%j-mRyfE{=pbqpISQk!}!YH2>KApg@Td`?9(W=&2-*oq3^2^>hJSKs6L3eM;K zUgR=2xoMzGqSBJtI2U)JHsvL+KAo3Kd9Fg$Co0K*CWRAJ?7=?dGRvo?&h1uIq_3g^ zeIK*&7HTQJ!vg#jS6~)rR0DTlGroascmtKGa@Ms4A4Rr{*|v}ZmwAVqW_ktnPvR%k zFI`tPjd4F_;Fp+=H!v5!Mg?@YI{9AqH-qyw*nyzW>U84aK(f1FUV3u&XggzCXE1C> zV^-9ONBlN#BbF}|ver6lLcwr##18plcEB3=YK^;R%=PSk+Te9Ee9_-Tsgh57ao3waJS`6EfU0xedvQC84y;`F6;Txw}g{ z+&@bD2Dds^%(0&Jt+kV9%GM8ZTk{!vbzbh4%H>2Mxj;AMUraqqGjvZ6#E~*~ueo);}x5)9wLl!f(Ej!d13|eQ8p5GU= qVi8|Bx*-^|I)gmgOw;~vjs-O>qkSjn diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo index 1976596794ad6bab665cadd747ebad6a558b0dd0..0e34144d2509f5c2236c8289db8299e66f3a9788 100644 GIT binary patch delta 4217 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 WFH!OHVUt9a5DRX5m>!hIQU3);V>6Bb delta 2620 zcmb8vd2Ccg9Ki9}Ezpx*lwQ*IwNP4mx7Ze1K>~%A5^kh6MsVAGZ5NilvIn#Xu3C*$ zLL`|GL@+_cfFQ)ULK~opM-XGsEtn851SN8)F;NtcX#Dk4cmqpuC_<@7v~j7zXl%sUSc%(_ zk9wDj41Esey&)WUDK(#tIAl!KjPdBea`d1Cw;%a}%8FJh5htU(Hyx$Faio7K zrgHDZblifO_$-dXevH9Wn8N((gOL}m;8-5W(=>?16wF5nY!=D@4LBYbB41IhScDdC z!M%79(;2J~f5I%xj8&=!XJRW3U^ers32{n|lLwfC%TQM6M_Jj{k^5&*-g^qp##veI58ShX7^LkF<~ zk0W!bEM}FImm*!N0VRXYC;@s=Cf3MD?c*Zvzn(z;C8ZzI(S#wCO_R^^i*Oa*h1*bS zc>v4t9hA)6LK*l^l!+rqkCY@0W!zkxhXp95T#t>|hcf;rGf zuoN$$WGa?)crgj@#jPkAJB!4ihS0#PD0^l!d6)jNC>bkZJTrEwVR@fz|` zrG#69^H5Ut7|LdP4y9CQa1~y~GMvLp73f1bW(UxYhmn(}j-muKfVXW*okrHA0t4jr zZW`zC8rsSC0=$Wm`YL`DoVX0%!+z|=%|wxna<*iJIar02D5Y@YTet;fK{MD06LAGf z3A?e(M*R=bkkou`44>1RC_hAzj4m~vjCoj$66k%%M?KAjvDK@1XAj{N?n5ZG{R5|A z9!E;TO~`MVT7w15ulzKo;y%2yE0Lrq8_S_gDjN-~!5Dl1 z*jo6L%qnzs@l$2jV zscAAh@JY9L5(JAPOd6M33vv|W?YH#i`R#h7{;t?a5~D~+Fwlm7t%OQM>EE9 z24%B!pu7-3$;2L%lAOdSd>`dppT~MkBMrOIfhPWr58`T$21BbsoQvO~1YXV#l==F~ z$-k`Z8#?4%-@?_{LHIJ!S(KVxK*m(xqNFmJda-|07RKUi+>A@H9X~=3R*}A5dr5m9>d{w8|_w$+tpd@G2ITI=``+q zwM6eqy%;{#D6guitk(XtY}yqSHI-HR`LvX*){SOMi|H}$8EMRN`n|rMR=4GMmRO$l z;Kj5^TT*Vm-)nk09qY^~-aPN{u=;lTdYu$;BnptPcL18DrBeQ5C_J#%9}? zI@4|XOno`~QN1;Kk`Co02T$c>*uv*_ceyQ(sc%dyiK@2@pJjA8+RfnfNpINo*JF!< z4SALJg!!Et9B!A>Xmhzu!`IVg>H|}D>%llfy9#Pz7MUB3B@VB5qvdhx69x4#i``B} z8R^K_uFR`n+Vtg?$J0|}bXtbj-`X*};NcSJ7fQ$L?6T|0D;(|Zq{-4sHs%_14bUKy8r$YUq g!O&|%PletLoiIWtL&rjcLyr$_Q*Nu>u>3yt4`{`%Qvd(} diff --git a/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.mo index 10699d0b39f87d1e1e9288dd7d4a8cd0dc5fcfc5..4e71eaa73ef7d50018f120429c17906180963b8d 100644 GIT binary patch delta 2204 zcmb`{|4-Fb9LMo@fM6sb-vm_TLn#CS%GWD5oDoXHA8IbPoTcr8SGY`|-FsP3+QniO zOIMRJm%3R^qNP93t(G;H_(Nl>#&B7yu%%Y~WQo~E%Tdo4e76397TE z?XSmd?wfHrcH%005##V3T!N=Ci}me{J75x%cyJwaaBhA8lQCL>twT+)9y4(RGQ=Ln z5_}x@;Q{;>6PfHDyn=a{oV<|bGHm631oK(nmZX@aV;SCw_oKehkNUD+_dbFecL-IA zVbsKDQJJ`esrVZb!+hr=NaCT!r=$9dQT-l_sIh@YE;bPtgNur`Rw&=G9M zVPq{!VO6C(59zY?s0=ot0&GPs{2cOYuW-@$w^GT!Qu-+!kKj4frpe~>OYlKd4WGtx zJdDc7IBLQP)Phr}Qd~pL_ZK$e9A@EW(zXS6pynMx4_-_s|7A3i*y0Y>VKeT)etaL- zVkK!%rdlzC0o;g}P#Mc5zpP~i=wK~s&un-5TTmJ7!3G>a1u!0=aW4&p`2f@*T{eJT zJc>%yH>l0@JE~MG=-i35Sb;}S$LkA>!3pF**#%S}Q#gJb#~b-3J55?wW8^%IX&Td5 zj}t2vYMRPFgBtGhQGsp4`|t#+=9f_m&Y;HqiONI?(fP0%6~ODL@o%C^IEu&dD)KyH z`#GGH-Cjb<}rbJBlj7$$YYclU(-WAJ~CCoZVXd33=6)-?dO0 zFKTaeqBdVpnqZiL3$G|0Yi+KiuLMCbV;jWAwCrE(jyJJ^m2WDt2|Zy>++85d3P3o3Irk$q+H z1q&s}!|mLAuo@4cHu*TJG;xIlj}?XFe?D?Lv`{Z9RfDJ+9YZ}I!A2ZKo!?ok$2E8J z&j#C2sXu{Q;Ct7_MP?6iUxWSlJbEypcwvuiEGGXt&y936;3ud6=3G-LxF%kW3TP*? z(X9iOffsNS9!5?41L}*@iE=YGp^o#*=*3~whh9d8+KoCIs?{pO-iviuiDxhtuc6NK z4C=+3n1GAQxC~v-%#2=07*C9TlvWy(5(mR5PX9Di>(=<5#d z3Uv8`fjxarThQ+dJ5L1st$wF_x6|q074SLj-JvkAIHB&{;U|4Te{?EiPwY@%_GChp tQ@+kyQ8lzRCtvLvZ$)LaFQ+XjdaK~sn2hFj*84x#-COiQ?2xat`Cs|W6_Ee{ delta 2188 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 delta 2184 zcmb8ve@NVQ9LMpux_R!Lzqg#W&95z;yIlSV-L&bP4yVFc&8Tc`XnIbE^YG4#6y&!0 zXHwQ5$H0k2jMj`{QG!Z18XL7mjM4@Yfguc}$e^+Q8cEMrexbiRzW056zMt>sK0n^? z&*wgCS$sLNl)mAj@fqa1o$v2)diw7(=P}#D<8^!t7jOlC#Uh+fFx!MN+{!T#o3Iwk za0I#R7B_W$7u9Yao!=%Bwpxk79?XP7N90pgX*9Gx8hOcC)SRI7{DPM z$3@Jhv#0O@=HSj`vjMEecAUjr#<%S$W*K^cPvCLX3d5+CU2vb@L$$k%O2ss)6yC>TtfNsW_M?v3RgA@J$VszLQ4^ZQhvhuqMh&=zI@SryRuMXmiogj}3eVu6&i^B#^c9WkCUiBnun-!oxGbUVGCB^ zDEe>#$%_4rHJDSdK3;19@sFqCT`EF&5f9=fmZudrqH^{M>JQ^ADpF&p2~MCQIE!_7 z8@0O=8FfEap(gq|>R4Y#ovwSRg{3rbsCBM)b5pLG@ig{fG5&*?;@8}#?I_4_-Ve}5WnEj$oi*f#EY#wjVUEZY|iXXR2ZEv+mopL##*jm_E3fnac; d(CH00p>TWG`mfvpGxA@Io%*d{=zk7)>>qm_{Y?M> diff --git a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo index deb561048f3c58d4f92653ffdc207718568c5bee..ece8989faa31253cf521391d10627404560927f2 100644 GIT binary patch delta 2199 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 F{{V`)`oRDI diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo index b2194da9540dbef606baddad5d7936a50347f5e1..c6cf0df960026e29789893073fcd7f3bcce36f51 100644 GIT binary patch delta 2203 zcmb`{`)`v~9LMpm8&H|Mz&1w9#62508ScKZvBBaHg=~?L#l;KBlrp-lxV74rNj0-1 zBS8}|xQoH?3zIO=;4d^WC@x`;7=k~Ld7H+8foMoH3X-T0Bl`Z(CjJ99?ejX%c}~ye z`#tCR_}SqtvCG+W#*9yt-~If4NY&kcpA#;#Ty8(WJUoln@LR0Fse8@l<8N4pe_<f}_YEEbBhAY|KNoD?!ya zChOOsoBIx2g8ldazK(P77^dS1T+I0PQL@1_X7Jz!dhpKO26RSiO{@~t!D?KDO-K`a z5=-%U9K?M%gK2d3FkZz1%*;$gxg5K=KaPcrZ|PZPIarQG_$X?HKGe!~CGTUXcEhMt zOrScRL`C8fF2rAvIoz$B3mH6A`y5pLN>qJ4##CscuoTxL=`(NA9jKLtk;&Q{s0baz zUYtP2vMfeb$P17vTaAif3u=O0sDX!&uN~l`_U|qv{tD@7DxStOs7>Q$`K8!~%HgY6 zg>R!Gavs&;Mbv<^s8sxd>hCsgz&p4YA17?B*oo@*IM(A=ImEx5LIzvh!L`_dowyrM zVg=R^21Tk1!|2CH@DeIwONlRISur};fZ8)#lJ(nA5!{LEaSv(&=VKJsP|!3t!dj%t z_Fy9(LWSyU)MmPlN>x6U&tU^r<3ZH%`V3R>B66VYbJRp;@yb0MZ)8pODPfhd?S%wmeiVta9Yq#zr;)FH!9}^giTdB4s7>c$$LVI);iw95vIc_y@k^BvQ~@nAk+4I7$5!?!Xvlm*Ck?$l`3? zvcwy8IcjgLLk--4WWhQyFGgX2f@ZcK8Ox5KLUs;y+-6WK`4P1VZz9pQTgm!G%M%eR zLOm}*O`rlb;3iZmoR^&{d?Gq)5XMJxz46mGxQ`~hDt>l>Ujfhz-H76_Tpps zK33v&EJJ5S;<&aUYq8g`9gpB{{2g`L21*ibZP&w;Hr6h_j zdRLK<%wK>NsCOrFt%JA&Qp2hJtdn5j)X`3fVbK#oL&I zf1@I#Woja6I5NJZD1O=XNm~5F?6Q=sus`B+{9z}wGZ63xdPdGHsI3n;zFm=!HyGOP z4|qfVzNpg^@_8f9i+*31&k1%r{l4vfuhSb0NBD~q4t7Ug_J(}%+1$R=k*IsxRqIq$ rHdfb;w0jCwu4}BWiAO!@8S(MrCsJ}ddKvHk9QWrHn^Q+#DBb)oWup%G delta 2188 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 delta 2190 zcmYM!e@xVM9LMnwhx|@XP!tH|i-wSg630Lx=a1NgFqWyyT+`ym8Q{f@JC24MJBrqH zj^U(|h?-@MlvbP9h>V)qa$2#ZbZ)u1xsZb`{i9l2y0xA!?z?q6?(zA2zMt>s^ZvX) zpATburk@VoOkePZ;d6+;9R7ZfRqg-JM1nC(sD6b@@n?+S92VnLqA^Jr!%sP;U@bm| zW!Q&&&A0q$=t)$+DU3HJWD=8&d7K6(GN##!i?AL`(2ol41LOshn_^5lu158%K(*J} z?N4DQ^(M^5Zd`$bxBx%L2XF$HF~7NNcesTMd7!6Rkc!K&5Ea-K)BrV@fpy3$rV)$K zhut`g*D;&HT=)m(;)+ybx^NRV;yC6pzsYeLvse#sCGJG6Fo;^&VY}Xs>i0fsE5=X* zPogq$2h;FhBnGpH#yDJ#>c0xrUTL>iV@Mt9C@jZa$ab1`+e4_8_9DTWw@?}S2%B*X znakudt5RN!G?^My2KS-@44@_+K)&WAKk9!rjr=R6KhUrTub>W1A=J&BI(hVWTD2*$8ER;}I;z zo2X2sl8yi_!OeIWm9a}m3}y-~oJO6QIP$Lcg{TZ#ScS!?c>^H|k5U-LYK$OXQ%ty( zxDA!6mr;jl2(?ugaX(JuBUnWzH+G<|*$6st6uD{U6I4LscsjEftrfF#r*%0aED5Vhye;UxZorTCr|9q=0J`CZh#Zph_*K~fgzpBCn)G%Ka1_yf*SY+DwX$86K4>W0$qt(nH$w!WxE5l!hLqV6Sq_EMV*R0fly!Jxwk3)&XCztts4sq%{o{ From 2ef0679790ca6ee15fea2c8e25449d5c54cf5036 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 4 Dec 2011 14:39:42 -0600 Subject: [PATCH 1242/2731] Fix button word-wrapping issue --- mediagoblin/static/css/base.css | 1 + 1 file changed, 1 insertion(+) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 12d88ffa..961a51fc 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -129,6 +129,7 @@ a.mediagoblin_logo{ font-style: normal; font-weight: bold; font-size: 1em; + display: inline-block; } .button_action_highlight{ From 4752fdcf06764965d2f926d99f3831a968d8ea8d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 4 Dec 2011 15:27:00 -0600 Subject: [PATCH 1243/2731] Filled in reason #3 to submit separate out celery. --- docs/source/production-deployments.rst | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/source/production-deployments.rst b/docs/source/production-deployments.rst index 37251734..75acf9cf 100644 --- a/docs/source/production-deployments.rst +++ b/docs/source/production-deployments.rst @@ -23,7 +23,16 @@ deployments for several reasons: MediaGoblin application itself, this simplifies management and support better workload distribution. -3. ... additional reason here. .... +3. If your user submits something complex and it needs to process, + that's extra time your user has to sit around waiting when they + could get back immediately to doing things on the site. + Furthermore, if that processing step takes a long time, as it + certainly will for video, your user won't just be left waiting, + their connection will probably time out. + +Basically, if you're doing anything other than trivial images for a +small set of users (or something similarly trivial, like ascii art), +you want to switch over to doing a separate celery process. Build an :ref:`init script ` around the following command. From a085dda5d29a1353eaf7df3ddfc3a7c500af9186 Mon Sep 17 00:00:00 2001 From: tycho garen Date: Sun, 4 Dec 2011 17:06:54 -0500 Subject: [PATCH 1244/2731] DOCS:: #675 revision to deployment and production documents --- docs/source/deploying.rst | 25 ++------ docs/source/index.rst | 1 + docs/source/production-deployments.rst | 79 +++++++++++++++++--------- 3 files changed, 57 insertions(+), 48 deletions(-) diff --git a/docs/source/deploying.rst b/docs/source/deploying.rst index 9c0acf30..70b1a6af 100644 --- a/docs/source/deploying.rst +++ b/docs/source/deploying.rst @@ -239,26 +239,9 @@ example: :: Visit the site you've set up in your browser by visiting . You should see MediaGoblin! -Production MediaGoblin Deployments with Paste -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The instance configured with ``lazyserver`` is not ideal for a -production MediaGoblin deployment. Ideally, you should be able to use -a control script (i.e. init script.) to launch and restart the -MediaGoblin process. - -Use the following command as the basis for such a script: :: - - CELERY_ALWAYS_EAGER=true \ - /srv/mediagoblin.example.org/mediagoblin/bin/paster serve \ - /srv/mediagoblin.example.org/mediagoblin/paste.ini \ - --pid-file=/var/run/mediagoblin.pid \ - --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543 \ - .. note:: - The above configuration places MediaGoblin in "always eager" mode - with Celery. This is fine for development and smaller - deployments. However, for larger production deployments with larger - processing requirements, see the ":doc:`production-deployments`" - documentation. + The configuration described above is sufficient for development and + smaller deployments. However, for larger production deployments + with larger processing requirements, see the + ":doc:`production-deployments`" documentation. diff --git a/docs/source/index.rst b/docs/source/index.rst index e9f3993e..6ffe0974 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -14,6 +14,7 @@ Table of Contents: foreword about deploying + production-deployments configuration help theming diff --git a/docs/source/production-deployments.rst b/docs/source/production-deployments.rst index 75acf9cf..7bf26169 100644 --- a/docs/source/production-deployments.rst +++ b/docs/source/production-deployments.rst @@ -7,32 +7,54 @@ MediaGoblin in actual production environments. Consider ":doc:`deploying`" for a basic overview of how to deploy Media Goblin. -Celery ------- +Deploy with Paste +----------------- + +The instance configured with ``./lazyserver.sh`` is not ideal for a +production MediaGoblin deployment. Ideally, you should be able to use +an "init" or "control" script to launch and restart the MediaGoblin +process. + +Use the following command as the basis for such a script: :: + + CELERY_ALWAYS_EAGER=true \ + /srv/mediagoblin.example.org/mediagoblin/bin/paster serve \ + /srv/mediagoblin.example.org/mediagoblin/paste.ini \ + --pid-file=/var/run/mediagoblin.pid \ + --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543 \ + +The above configuration places MediaGoblin in "always eager" mode +with Celery, this means that submissions of content will be processed +synchronously, and the user will advance to the next page only after +processing is complete. If we take Celery out of "always eager mode," +the user will be able to immediately return to the MediaGoblin site +while processing is ongoing. In these cases, use the following command +as the basis for your script: :: + + CELERY_ALWAYS_EAGER=false \ + /srv/mediagoblin.example.org/mediagoblin/bin/paster serve \ + /srv/mediagoblin.example.org/mediagoblin/paste.ini \ + --pid-file=/var/run/mediagoblin.pid \ + --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543 \ + +Separate Celery +--------------- While the ``./lazyserer.sh`` configuration provides an efficient way to start using a MediaGoblin instance, it is not suitable for production deployments for several reasons: -1. In nearly every scenario, work on the Celery queue will need to - balance with the demands of other processes, and cannot proceed - synchronously. This is a particularly relevant problem if you use - MediaGoblin to host Video content. +In nearly every scenario, work on the Celery queue will need to +balance with the demands of other processes, and cannot proceed +synchronously. This is a particularly relevant problem if you use +MediaGoblin to host video content. Processing with Celery ought to be +operationally separate from the MediaGoblin application itself, this +simplifies management and support better workload distribution. -2. Processing with Celery ought to be operationally separate from the - MediaGoblin application itself, this simplifies management and - support better workload distribution. - -3. If your user submits something complex and it needs to process, - that's extra time your user has to sit around waiting when they - could get back immediately to doing things on the site. - Furthermore, if that processing step takes a long time, as it - certainly will for video, your user won't just be left waiting, - their connection will probably time out. - -Basically, if you're doing anything other than trivial images for a -small set of users (or something similarly trivial, like ascii art), -you want to switch over to doing a separate celery process. +Basically, if you're doing anything beyond a trivial workload, such as +image hosting for a small set of users, or have limited media types +such as "ASCII art" or icon sharing, you will need to run ``celeryd`` +as a separate process. Build an :ref:`init script ` around the following command. @@ -46,12 +68,15 @@ processes. .. _init-script: Use an Init Script -------------------- +------------------ -TODO insert init script here - -Other Concerns --------------- - -TODO What are they? +Look in your system's ``/etc/init.d/`` or ``/etc/rc.d/`` directory for +examples of how to build scripts that will start, stop, and restart +MediaGoblin and Celery. These scripts will vary by +distribution/operating system. In the future, MediaGoblin will provide +example scripts as examples. +.. TODO insert init script here +.. TODO are additional concernts ? + .. Other Concerns + .. -------------- From 38f102515a84c1da25a9dab56d2fe7731412f4f5 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 4 Dec 2011 23:58:58 -0600 Subject: [PATCH 1245/2731] Cloudfiles not actually a dependency, removing from setup.py If users want cloudfiles, they can always ./bin/easy_install it. --- setup.py | 1 - 1 file changed, 1 deletion(-) diff --git a/setup.py b/setup.py index ec672dd2..293f3f03 100644 --- a/setup.py +++ b/setup.py @@ -61,7 +61,6 @@ setup( 'webtest', 'ConfigObj', 'Markdown', - 'python-cloudfiles', ## For now we're expecting that users will install this from ## their package managers. # 'lxml', From bcc9ee3205dfc6bc2b5e5dacb09de89121eb3782 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 5 Dec 2011 08:35:42 -0600 Subject: [PATCH 1246/2731] Update the delete item to use the _id after all... it's the safest way. See http://bugs.foocorp.net/issues/695 --- mediagoblin/decorators.py | 2 +- mediagoblin/templates/mediagoblin/user_pages/media.html | 2 +- .../mediagoblin/user_pages/media_confirm_delete.html | 2 +- mediagoblin/tests/test_submission.py | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index 56dddb44..269b0c2e 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -58,7 +58,7 @@ def user_may_delete_media(controller): """ def wrapper(request, *args, **kwargs): uploader = request.db.MediaEntry.find_one( - {'slug': request.matchdict['media']}).get_uploader() + {'_id': ObjectId(request.matchdict['media'])}).get_uploader() if not (request.user['is_admin'] or request.user._id == uploader._id): return exc.HTTPForbidden() diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index c7818012..5039fb30 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -126,7 +126,7 @@

{% set delete_url = request.urlgen('mediagoblin.user_pages.media_confirm_delete', user= media.get_uploader().username, - media= media.slug) %} + media= media._id) %} {% trans %}Delete{% endtrans %}

{% endif %} diff --git a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html index e36891d6..058351a5 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html @@ -23,7 +23,7 @@

diff --git a/mediagoblin/tests/test_submission.py b/mediagoblin/tests/test_submission.py index a3453f2f..7ea6c4bc 100644 --- a/mediagoblin/tests/test_submission.py +++ b/mediagoblin/tests/test_submission.py @@ -171,7 +171,7 @@ class TestSubmission: request.urlgen('mediagoblin.user_pages.media_confirm_delete', # No work: user=media.uploader().username, user=self.test_user['username'], - media=media.slug), + media=media._id), # no value means no confirm {}) @@ -191,7 +191,7 @@ class TestSubmission: request.urlgen('mediagoblin.user_pages.media_confirm_delete', # No work: user=media.uploader().username, user=self.test_user['username'], - media=media.slug), + media=media._id), {'confirm': 'y'}) response.follow() From 5b5b67cd5c82e743f7c656616c92841fae31b36f Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 5 Dec 2011 08:37:20 -0600 Subject: [PATCH 1247/2731] Update comment URLs to use the media slug. --- mediagoblin/templates/mediagoblin/user_pages/media.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 5039fb30..b811d161 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -86,7 +86,7 @@ + media = media.slug) }}#comment"> {{ comment.created.strftime("%I:%M%p %Y-%m-%d") }}

From 5a4e3ff1e2a0f2ed451bc191c1d44bcd694b8e75 Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 14 Nov 2011 15:39:57 +0100 Subject: [PATCH 1248/2731] Dot-Notation for Users.username --- mediagoblin/auth/lib.py | 4 ++-- mediagoblin/auth/views.py | 10 +++++----- mediagoblin/db/models.py | 8 ++++---- mediagoblin/decorators.py | 2 +- mediagoblin/edit/views.py | 2 +- mediagoblin/gmg_commands/users.py | 2 +- mediagoblin/listings/views.py | 2 +- mediagoblin/submit/views.py | 2 +- mediagoblin/templates/mediagoblin/base.html | 6 +++--- .../templates/mediagoblin/edit/edit_profile.html | 4 ++-- .../templates/mediagoblin/user_pages/media.html | 4 ++-- mediagoblin/tests/test_submission.py | 4 ++-- mediagoblin/tests/test_tests.py | 2 +- mediagoblin/user_pages/views.py | 4 ++-- 14 files changed, 28 insertions(+), 28 deletions(-) diff --git a/mediagoblin/auth/lib.py b/mediagoblin/auth/lib.py index cf4a2b83..ee1ce12d 100644 --- a/mediagoblin/auth/lib.py +++ b/mediagoblin/auth/lib.py @@ -105,7 +105,7 @@ def send_verification_email(user, request): """ rendered_email = render_template( request, 'mediagoblin/auth/verification_email.txt', - {'username': user['username'], + {'username': user.username, 'verification_url': EMAIL_VERIFICATION_TEMPLATE.format( host=request.host, uri=request.urlgen('mediagoblin.auth.verify_email'), @@ -140,7 +140,7 @@ def send_fp_verification_email(user, request): """ rendered_email = render_template( request, 'mediagoblin/auth/fp_verification_email.txt', - {'username': user['username'], + {'username': user.username, 'verification_url': EMAIL_FP_VERIFICATION_TEMPLATE.format( host=request.host, uri=request.urlgen('mediagoblin.auth.verify_forgot_password'), diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index d01861d1..dab95b17 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -80,7 +80,7 @@ def register(request): if extra_validation_passes: # Create the user user = request.db.User() - user['username'] = username + user.username = username user['email'] = email user['pw_hash'] = auth_lib.bcrypt_gen_password_hash( request.POST['password']) @@ -98,7 +98,7 @@ def register(request): # message waiting for them to verify their email return redirect( request, 'mediagoblin.user_pages.user_home', - user=user['username']) + user=user.username) return render_to_response( request, @@ -186,7 +186,7 @@ def verify_email(request): return redirect( request, 'mediagoblin.user_pages.user_home', - user=user['username']) + user=user.username) def resend_activation(request): @@ -224,7 +224,7 @@ def resend_activation(request): _('Resent your verification email.')) return redirect( request, 'mediagoblin.user_pages.user_home', - user=request.user['username']) + user=request.user.username) def forgot_password(request): @@ -268,7 +268,7 @@ def forgot_password(request): return redirect( request, 'mediagoblin.user_pages.user_home', - user=user['username']) + user=user.username) # do not reveal whether or not there is a matching user return redirect(request, 'mediagoblin.auth.fp_email_sent') diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 265fe36d..4af996b8 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -268,12 +268,12 @@ class MediaEntry(Document): if self.get('slug'): return urlgen( 'mediagoblin.user_pages.media_home', - user=uploader['username'], + user=uploader.username, media=self['slug']) else: return urlgen( 'mediagoblin.user_pages.media_home', - user=uploader['username'], + user=uploader.username, media=unicode(self._id)) def url_to_prev(self, urlgen): @@ -286,7 +286,7 @@ class MediaEntry(Document): '_id', ASCENDING).limit(1) if cursor.count(): return urlgen('mediagoblin.user_pages.media_home', - user=self.get_uploader()['username'], + user=self.get_uploader().username, media=unicode(cursor[0]['slug'])) def url_to_next(self, urlgen): @@ -300,7 +300,7 @@ class MediaEntry(Document): if cursor.count(): return urlgen('mediagoblin.user_pages.media_home', - user=self.get_uploader()['username'], + user=self.get_uploader().username, media=unicode(cursor[0]['slug'])) def get_uploader(self): diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index 269b0c2e..d6a054f8 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -40,7 +40,7 @@ def require_active_login(controller): request.user.get('status') == u'needs_email_verification': return redirect( request, 'mediagoblin.user_pages.user_home', - user=request.user['username']) + user=request.user.username) elif not request.user or request.user.get('status') != u'active': return exc.HTTPFound( location="%s?next=%s" % ( diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 673409bd..61a61d4c 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -147,7 +147,7 @@ def edit_attachments(request, media): def edit_profile(request): # admins may edit any user profile given a username in the querystring edit_username = request.GET.get('username') - if request.user['is_admin'] and request.user['username'] != edit_username: + if request.user['is_admin'] and request.user.username != edit_username: user = request.db.User.find_one({'username': edit_username}) # No need to warn again if admin just submitted an edited profile if request.method != 'POST': diff --git a/mediagoblin/gmg_commands/users.py b/mediagoblin/gmg_commands/users.py index b437e839..e8426272 100644 --- a/mediagoblin/gmg_commands/users.py +++ b/mediagoblin/gmg_commands/users.py @@ -50,7 +50,7 @@ def adduser(args): else: # Create the user entry = db.User() - entry['username'] = unicode(args.username.lower()) + entry.username = unicode(args.username.lower()) entry['email'] = unicode(args.email) entry['pw_hash'] = auth_lib.bcrypt_gen_password_hash(args.password) entry['status'] = u'active' diff --git a/mediagoblin/listings/views.py b/mediagoblin/listings/views.py index 5a09de43..6b83ffcf 100644 --- a/mediagoblin/listings/views.py +++ b/mediagoblin/listings/views.py @@ -86,7 +86,7 @@ def tag_atom_feed(request): feed.add(entry.get('title'), entry.get('description_html'), content_type='html', - author=entry.get_uploader()['username'], + author=entry.get_uploader().username, updated=entry.get('created'), url=entry.url_for_self(request.urlgen)) diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 3def44ce..6beb6b18 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -127,7 +127,7 @@ def submit_start(request): add_message(request, SUCCESS, _('Woohoo! Submitted!')) return redirect(request, "mediagoblin.user_pages.user_home", - user=request.user['username']) + user=request.user.username) except InvalidFileType, exc: submit_form.file.errors.append( _(u'Invalid file type.')) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 29639026..c06addd0 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -60,14 +60,14 @@ {# the following link should only appear when verification is needed #} {% if request.user.status == "needs_email_verification" %} {% trans %}Verify your email!{% endtrans %} {% endif %} - {{ request.user['username'] }} + user= request.user.username) }}"> + {{ request.user.username }} ({% trans %}log out{% endtrans %}) {% else %} diff --git a/mediagoblin/templates/mediagoblin/edit/edit_profile.html b/mediagoblin/templates/mediagoblin/edit/edit_profile.html index bf8fe5c1..2d5daa95 100644 --- a/mediagoblin/templates/mediagoblin/edit/edit_profile.html +++ b/mediagoblin/templates/mediagoblin/edit/edit_profile.html @@ -22,11 +22,11 @@ {% block mediagoblin_content %}

- {%- trans username=user['username'] -%} + {%- trans username=user.username -%} Editing {{ username }}'s profile {%- endtrans %}

diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index b811d161..7fc60c3f 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -80,8 +80,8 @@ {% endautoescape %} - {{ comment_author['username'] }} + user = comment_author.username) }}"> + {{ comment_author.username }} {% trans %}at{% endtrans %} Date: Mon, 14 Nov 2011 18:54:52 +0100 Subject: [PATCH 1251/2731] Dot-Notation for Users.email_verified --- mediagoblin/auth/views.py | 6 +++--- mediagoblin/gmg_commands/users.py | 2 +- mediagoblin/tests/test_auth.py | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 63bf9a91..2d29d0a5 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -168,7 +168,7 @@ def verify_email(request): if user and user['verification_key'] == unicode(request.GET['token']): user[u'status'] = u'active' - user[u'email_verified'] = True + user.email_verified = True user[u'verification_key'] = None user.save() @@ -249,7 +249,7 @@ def forgot_password(request): {'email': request.POST['username']}) if user: - if user['email_verified'] and user['status'] == 'active': + if user.email_verified and user['status'] == 'active': user[u'fp_verification_key'] = unicode(uuid.uuid4()) user[u'fp_token_expire'] = datetime.datetime.now() + \ datetime.timedelta(days=10) @@ -304,7 +304,7 @@ def verify_forgot_password(request): if ((user and user['fp_verification_key'] and user['fp_verification_key'] == unicode(formdata_token) and datetime.datetime.now() < user['fp_token_expire'] - and user['email_verified'] and user['status'] == 'active')): + and user.email_verified and user['status'] == 'active')): cp_form = auth_forms.ChangePassForm(formdata_vars) diff --git a/mediagoblin/gmg_commands/users.py b/mediagoblin/gmg_commands/users.py index 6084f9d7..88895661 100644 --- a/mediagoblin/gmg_commands/users.py +++ b/mediagoblin/gmg_commands/users.py @@ -54,7 +54,7 @@ def adduser(args): entry.email = unicode(args.email) entry.pw_hash = auth_lib.bcrypt_gen_password_hash(args.password) entry['status'] = u'active' - entry['email_verified'] = True + entry.email_verified = True entry.save(validate=True) print "User created (and email marked as verified)" diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py index 2faf0f25..ad9a5bca 100644 --- a/mediagoblin/tests/test_auth.py +++ b/mediagoblin/tests/test_auth.py @@ -163,7 +163,7 @@ def test_register_views(test_app): {'username': 'happygirl'}) assert new_user assert new_user['status'] == u'needs_email_verification' - assert new_user['email_verified'] == False + assert new_user.email_verified == False ## Make sure user is logged in request = template.TEMPLATE_TEST_CONTEXT[ @@ -203,7 +203,7 @@ def test_register_views(test_app): {'username': 'happygirl'}) assert new_user assert new_user['status'] == u'needs_email_verification' - assert new_user['email_verified'] == False + assert new_user.email_verified == False ## Verify the email activation works template.clear_test_template_context() @@ -217,7 +217,7 @@ def test_register_views(test_app): {'username': 'happygirl'}) assert new_user assert new_user['status'] == u'active' - assert new_user['email_verified'] == True + assert new_user.email_verified == True # Uniqueness checks # ----------------- From 7a3d00ec217cc3fd44788b9d8c63ab9f7b1d05a7 Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 14 Nov 2011 19:01:26 +0100 Subject: [PATCH 1252/2731] Dot-Notation for Users.status --- mediagoblin/auth/views.py | 6 +++--- mediagoblin/gmg_commands/users.py | 2 +- mediagoblin/templates/mediagoblin/base.html | 2 +- mediagoblin/tests/test_auth.py | 6 +++--- mediagoblin/user_pages/views.py | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 2d29d0a5..caf9835a 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -167,7 +167,7 @@ def verify_email(request): {'_id': ObjectId(unicode(request.GET['userid']))}) if user and user['verification_key'] == unicode(request.GET['token']): - user[u'status'] = u'active' + user.status = u'active' user.email_verified = True user[u'verification_key'] = None @@ -249,7 +249,7 @@ def forgot_password(request): {'email': request.POST['username']}) if user: - if user.email_verified and user['status'] == 'active': + if user.email_verified and user.status == 'active': user[u'fp_verification_key'] = unicode(uuid.uuid4()) user[u'fp_token_expire'] = datetime.datetime.now() + \ datetime.timedelta(days=10) @@ -304,7 +304,7 @@ def verify_forgot_password(request): if ((user and user['fp_verification_key'] and user['fp_verification_key'] == unicode(formdata_token) and datetime.datetime.now() < user['fp_token_expire'] - and user.email_verified and user['status'] == 'active')): + and user.email_verified and user.status == 'active')): cp_form = auth_forms.ChangePassForm(formdata_vars) diff --git a/mediagoblin/gmg_commands/users.py b/mediagoblin/gmg_commands/users.py index 88895661..7b23ba34 100644 --- a/mediagoblin/gmg_commands/users.py +++ b/mediagoblin/gmg_commands/users.py @@ -53,7 +53,7 @@ def adduser(args): entry.username = unicode(args.username.lower()) entry.email = unicode(args.email) entry.pw_hash = auth_lib.bcrypt_gen_password_hash(args.password) - entry['status'] = u'active' + entry.status = u'active' entry.email_verified = True entry.save(validate=True) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index c06addd0..16569f03 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -48,7 +48,7 @@ >{% trans %}MediaGoblin logo{% endtrans %} {% endblock %} - {% if request.user and request.user['status'] == 'active' %} + {% if request.user and request.user.status == 'active' %} {% trans %}Submit media{% endtrans %} diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py index ad9a5bca..bd79a407 100644 --- a/mediagoblin/tests/test_auth.py +++ b/mediagoblin/tests/test_auth.py @@ -162,7 +162,7 @@ def test_register_views(test_app): new_user = mg_globals.database.User.find_one( {'username': 'happygirl'}) assert new_user - assert new_user['status'] == u'needs_email_verification' + assert new_user.status == u'needs_email_verification' assert new_user.email_verified == False ## Make sure user is logged in @@ -202,7 +202,7 @@ def test_register_views(test_app): new_user = mg_globals.database.User.find_one( {'username': 'happygirl'}) assert new_user - assert new_user['status'] == u'needs_email_verification' + assert new_user.status == u'needs_email_verification' assert new_user.email_verified == False ## Verify the email activation works @@ -216,7 +216,7 @@ def test_register_views(test_app): new_user = mg_globals.database.User.find_one( {'username': 'happygirl'}) assert new_user - assert new_user['status'] == u'active' + assert new_user.status == u'active' assert new_user.email_verified == True # Uniqueness checks diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index ad33479b..4b311822 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -40,7 +40,7 @@ def user_home(request, page): 'username': request.matchdict['user']}) if not user: return render_404(request) - elif user['status'] != u'active': + elif user.status != u'active': return render_to_response( request, 'mediagoblin/user_pages/user.html', @@ -254,7 +254,7 @@ def processing_panel(request): # Make sure the user exists and is active if not user: return render_404(request) - elif user['status'] != u'active': + elif user.status != u'active': return render_to_response( request, 'mediagoblin/user_pages/user.html', From 00bb95502e01f8c8fcaa5652889a5ed423051d7c Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 14 Nov 2011 19:04:13 +0100 Subject: [PATCH 1253/2731] Dot-Notation for Users.verification_key --- mediagoblin/auth/lib.py | 2 +- mediagoblin/auth/views.py | 6 +++--- mediagoblin/tests/test_auth.py | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mediagoblin/auth/lib.py b/mediagoblin/auth/lib.py index 24992094..d03f7af0 100644 --- a/mediagoblin/auth/lib.py +++ b/mediagoblin/auth/lib.py @@ -110,7 +110,7 @@ def send_verification_email(user, request): host=request.host, uri=request.urlgen('mediagoblin.auth.verify_email'), userid=unicode(user._id), - verification_key=user['verification_key'])}) + verification_key=user.verification_key)}) # TODO: There is no error handling in place send_email( diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index caf9835a..d7e8d1bf 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -166,10 +166,10 @@ def verify_email(request): user = request.db.User.find_one( {'_id': ObjectId(unicode(request.GET['userid']))}) - if user and user['verification_key'] == unicode(request.GET['token']): + if user and user.verification_key == unicode(request.GET['token']): user.status = u'active' user.email_verified = True - user[u'verification_key'] = None + user.verification_key = None user.save() @@ -212,7 +212,7 @@ def resend_activation(request): return redirect(request, "mediagoblin.user_pages.user_home", user=request.user['username']) - request.user[u'verification_key'] = unicode(uuid.uuid4()) + request.user.verification_key = unicode(uuid.uuid4()) request.user.save() email_debug_message(request) diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py index bd79a407..7cb867d7 100644 --- a/mediagoblin/tests/test_auth.py +++ b/mediagoblin/tests/test_auth.py @@ -187,7 +187,7 @@ def test_register_views(test_app): assert parsed_get_params['userid'] == [ unicode(new_user._id)] assert parsed_get_params['token'] == [ - new_user['verification_key']] + new_user.verification_key] ## Try verifying with bs verification key, shouldn't work template.clear_test_template_context() From bec591d85b1e4695024b54bbd902559ec7727ea6 Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 14 Nov 2011 19:08:43 +0100 Subject: [PATCH 1254/2731] Dot-Notation for Users.is_admin --- mediagoblin/decorators.py | 2 +- mediagoblin/edit/lib.py | 2 +- mediagoblin/edit/views.py | 4 ++-- mediagoblin/gmg_commands/users.py | 2 +- mediagoblin/templates/mediagoblin/user_pages/media.html | 4 ++-- mediagoblin/templates/mediagoblin/user_pages/user.html | 2 +- mediagoblin/user_pages/views.py | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index d6a054f8..229664d7 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -59,7 +59,7 @@ def user_may_delete_media(controller): def wrapper(request, *args, **kwargs): uploader = request.db.MediaEntry.find_one( {'_id': ObjectId(request.matchdict['media'])}).get_uploader() - if not (request.user['is_admin'] or + if not (request.user.is_admin or request.user._id == uploader._id): return exc.HTTPForbidden() diff --git a/mediagoblin/edit/lib.py b/mediagoblin/edit/lib.py index 458b704e..4ce2d42f 100644 --- a/mediagoblin/edit/lib.py +++ b/mediagoblin/edit/lib.py @@ -19,6 +19,6 @@ def may_edit_media(request, media): """Check, if the request's user may edit the media details""" if media['uploader'] == request.user._id: return True - if request.user['is_admin']: + if request.user.is_admin: return True return False diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 61a61d4c..e766b6d8 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -78,7 +78,7 @@ def edit_media(request, media): return exc.HTTPFound( location=media.url_for_self(request.urlgen)) - if request.user['is_admin'] \ + if request.user.is_admin \ and media['uploader'] != request.user._id \ and request.method != 'POST': messages.add_message( @@ -147,7 +147,7 @@ def edit_attachments(request, media): def edit_profile(request): # admins may edit any user profile given a username in the querystring edit_username = request.GET.get('username') - if request.user['is_admin'] and request.user.username != edit_username: + if request.user.is_admin and request.user.username != edit_username: user = request.db.User.find_one({'username': edit_username}) # No need to warn again if admin just submitted an edited profile if request.method != 'POST': diff --git a/mediagoblin/gmg_commands/users.py b/mediagoblin/gmg_commands/users.py index 7b23ba34..4bfe30a5 100644 --- a/mediagoblin/gmg_commands/users.py +++ b/mediagoblin/gmg_commands/users.py @@ -73,7 +73,7 @@ def makeadmin(args): user = db.User.one({'username': unicode(args.username.lower())}) if user: - user['is_admin'] = True + user.is_admin = True user.save() print 'The user is now Admin' else: diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 7fc60c3f..89fd104d 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -116,7 +116,7 @@ {% include "mediagoblin/utils/prev_next.html" %} {% if media['uploader'] == request.user._id or - request.user['is_admin'] %} + request.user.is_admin %}

{% set edit_url = request.urlgen('mediagoblin.edit.edit_media', user= media.get_uploader().username, @@ -146,7 +146,7 @@ {% if app_config['allow_attachments'] and (media['uploader'] == request.user._id - or request.user['is_admin']) %} + or request.user.is_admin) %}

{% include "mediagoblin/utils/profile.html" %} - {% if request.user._id == user._id or request.user['is_admin'] %} + {% if request.user._id == user._id or request.user.is_admin %} {%- trans %}Edit profile{% endtrans -%} diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 4b311822..dc549567 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -191,7 +191,7 @@ def media_confirm_delete(request, media): return exc.HTTPFound( location=media.url_for_self(request.urlgen)) - if ((request.user[u'is_admin'] and + if ((request.user.is_admin and request.user._id != media.get_uploader()._id)): messages.add_message( request, messages.WARNING, From a24e5133ed9ee0845e854478da9a88f85e755f70 Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 14 Nov 2011 19:16:02 +0100 Subject: [PATCH 1255/2731] Dot-Notation for Users.url --- mediagoblin/edit/views.py | 2 +- mediagoblin/templates/mediagoblin/user_pages/user.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index e766b6d8..cbae9cc3 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -176,7 +176,7 @@ def edit_profile(request): {'user': user, 'form': form}) - user['url'] = unicode(request.POST['url']) + user.url = unicode(request.POST['url']) user['bio'] = unicode(request.POST['bio']) if password_matches: diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index d0f3bced..b952e88c 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -89,7 +89,7 @@ {%- trans username=user.username %}{{ username }}'s profile{% endtrans -%} - {% if not user['url'] and not user['bio'] %} + {% if not user.url and not user.bio %} {% if request.user._id == user._id %}

From 4b77f86ab46c54a41a250ad1d8cec82214b67545 Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 14 Nov 2011 19:19:54 +0100 Subject: [PATCH 1256/2731] Dot-Notation for Users.bio and .bio_html --- mediagoblin/edit/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index cbae9cc3..4e8c3686 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -177,13 +177,13 @@ def edit_profile(request): 'form': form}) user.url = unicode(request.POST['url']) - user['bio'] = unicode(request.POST['bio']) + user.bio = unicode(request.POST['bio']) if password_matches: user['pw_hash'] = auth_lib.bcrypt_gen_password_hash( request.POST['new_password']) - user['bio_html'] = cleaned_markdown_conversion(user['bio']) + user.bio_html = cleaned_markdown_conversion(user['bio']) user.save() From dc39e4555c9e104ae9d7b38f231a848fe106d1a0 Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 14 Nov 2011 19:21:33 +0100 Subject: [PATCH 1257/2731] Dot-Notation for Users.fp_verification_key --- mediagoblin/auth/lib.py | 2 +- mediagoblin/auth/views.py | 8 ++++---- mediagoblin/tests/test_auth.py | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mediagoblin/auth/lib.py b/mediagoblin/auth/lib.py index d03f7af0..c0af3b5b 100644 --- a/mediagoblin/auth/lib.py +++ b/mediagoblin/auth/lib.py @@ -145,7 +145,7 @@ def send_fp_verification_email(user, request): host=request.host, uri=request.urlgen('mediagoblin.auth.verify_forgot_password'), userid=unicode(user._id), - fp_verification_key=user['fp_verification_key'])}) + fp_verification_key=user.fp_verification_key)}) # TODO: There is no error handling in place send_email( diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index d7e8d1bf..633ceef4 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -250,7 +250,7 @@ def forgot_password(request): if user: if user.email_verified and user.status == 'active': - user[u'fp_verification_key'] = unicode(uuid.uuid4()) + user.fp_verification_key = unicode(uuid.uuid4()) user[u'fp_token_expire'] = datetime.datetime.now() + \ datetime.timedelta(days=10) user.save() @@ -301,8 +301,8 @@ def verify_forgot_password(request): return render_404(request) # check if we have a real user and correct token - if ((user and user['fp_verification_key'] and - user['fp_verification_key'] == unicode(formdata_token) and + if ((user and user.fp_verification_key and + user.fp_verification_key == unicode(formdata_token) and datetime.datetime.now() < user['fp_token_expire'] and user.email_verified and user.status == 'active')): @@ -311,7 +311,7 @@ def verify_forgot_password(request): if request.method == 'POST' and cp_form.validate(): user.pw_hash = auth_lib.bcrypt_gen_password_hash( request.POST['password']) - user[u'fp_verification_key'] = None + user.fp_verification_key = None user[u'fp_token_expire'] = None user.save() diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py index 7cb867d7..2dcb5c14 100644 --- a/mediagoblin/tests/test_auth.py +++ b/mediagoblin/tests/test_auth.py @@ -270,7 +270,7 @@ def test_register_views(test_app): # user should have matching parameters new_user = mg_globals.database.User.find_one({'username': 'happygirl'}) assert parsed_get_params['userid'] == [unicode(new_user._id)] - assert parsed_get_params['token'] == [new_user['fp_verification_key']] + assert parsed_get_params['token'] == [new_user.fp_verification_key] ### The forgotten password token should be set to expire in ~ 10 days # A few ticks have expired so there are only 9 full days left... From 2d540fed8b511c76819a836da3d62875d20b6547 Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 14 Nov 2011 19:24:15 +0100 Subject: [PATCH 1258/2731] Dot-Notation for Users.fp_token_expire --- mediagoblin/auth/views.py | 6 +++--- mediagoblin/tests/test_auth.py | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 633ceef4..919aa3cd 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -251,7 +251,7 @@ def forgot_password(request): if user: if user.email_verified and user.status == 'active': user.fp_verification_key = unicode(uuid.uuid4()) - user[u'fp_token_expire'] = datetime.datetime.now() + \ + user.fp_token_expire = datetime.datetime.now() + \ datetime.timedelta(days=10) user.save() @@ -303,7 +303,7 @@ def verify_forgot_password(request): # check if we have a real user and correct token if ((user and user.fp_verification_key and user.fp_verification_key == unicode(formdata_token) and - datetime.datetime.now() < user['fp_token_expire'] + datetime.datetime.now() < user.fp_token_expire and user.email_verified and user.status == 'active')): cp_form = auth_forms.ChangePassForm(formdata_vars) @@ -312,7 +312,7 @@ def verify_forgot_password(request): user.pw_hash = auth_lib.bcrypt_gen_password_hash( request.POST['password']) user.fp_verification_key = None - user[u'fp_token_expire'] = None + user.fp_token_expire = None user.save() return redirect(request, 'mediagoblin.auth.fp_changed_success') diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py index 2dcb5c14..d3b8caf1 100644 --- a/mediagoblin/tests/test_auth.py +++ b/mediagoblin/tests/test_auth.py @@ -274,7 +274,7 @@ def test_register_views(test_app): ### The forgotten password token should be set to expire in ~ 10 days # A few ticks have expired so there are only 9 full days left... - assert (new_user['fp_token_expire'] - datetime.datetime.now()).days == 9 + assert (new_user.fp_token_expire - datetime.datetime.now()).days == 9 ## Try using a bs password-changing verification key, shouldn't work template.clear_test_template_context() @@ -285,12 +285,12 @@ def test_register_views(test_app): ## Try using an expired token to change password, shouldn't work template.clear_test_template_context() - real_token_expiration = new_user['fp_token_expire'] - new_user['fp_token_expire'] = datetime.datetime.now() + real_token_expiration = new_user.fp_token_expire + new_user.fp_token_expire = datetime.datetime.now() new_user.save() response = test_app.get("%s?%s" % (path, get_params), status=404) assert_equal(response.status, '404 Not Found') - new_user['fp_token_expire'] = real_token_expiration + new_user.fp_token_expire = real_token_expiration new_user.save() ## Verify step 1 of password-change works -- can see form to change password From 4ec5717a173803e6ccebf7fced1e5127c8b52caa Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 21 Nov 2011 12:56:26 +0100 Subject: [PATCH 1259/2731] Dot-Notation: tests/test_edit.py convert tests/test_edit.py over to Dot-Notation. It only accesses the User object. --- mediagoblin/tests/test_edit.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mediagoblin/tests/test_edit.py b/mediagoblin/tests/test_edit.py index c29ddfe9..0cf71e9b 100644 --- a/mediagoblin/tests/test_edit.py +++ b/mediagoblin/tests/test_edit.py @@ -44,7 +44,7 @@ def test_change_password(test_app): # test_user has to be fetched again in order to have the current values test_user = mg_globals.database.User.one({'username': 'chris'}) - assert bcrypt_check_password('123456', test_user['pw_hash']) + assert bcrypt_check_password('123456', test_user.pw_hash) # test that the password cannot be changed if the given old_password # is wrong @@ -59,7 +59,7 @@ def test_change_password(test_app): test_user = mg_globals.database.User.one({'username': 'chris'}) - assert not bcrypt_check_password('098765', test_user['pw_hash']) + assert not bcrypt_check_password('098765', test_user.pw_hash) @setup_fresh_app @@ -76,8 +76,8 @@ def change_bio_url(test_app): test_user = mg_globals.database.User.one({'username': 'chris'}) - assert test_user['bio'] == u'I love toast!' - assert test_user['url'] == u'http://dustycloud.org/' + assert test_user.bio == u'I love toast!' + assert test_user.url == u'http://dustycloud.org/' # test changing the bio and the URL inproperly too_long_bio = 150 * 'T' + 150 * 'o' + 150 * 'a' + 150 * 's' + 150* 't' From 0547843020643febbdcbfa33377fd48f92c568c8 Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 14 Nov 2011 18:39:18 +0100 Subject: [PATCH 1260/2731] Dot-Notation for MediaEntry.created --- .../templates/mediagoblin/user_pages/processing_panel.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/processing_panel.html b/mediagoblin/templates/mediagoblin/user_pages/processing_panel.html index 9b4adeb5..307a0027 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/processing_panel.html +++ b/mediagoblin/templates/mediagoblin/user_pages/processing_panel.html @@ -37,7 +37,7 @@ {% for media_entry in processing_entries %}

- + {% endfor %} From 1ceb4fc8682dd00c15376b75a3d9222cac6fb5bd Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 21 Nov 2011 20:18:38 +0100 Subject: [PATCH 1261/2731] Dot-Notation for MediaEntry.uploader --- mediagoblin/db/models.py | 6 +++--- mediagoblin/edit/lib.py | 2 +- mediagoblin/edit/views.py | 4 ++-- mediagoblin/submit/views.py | 2 +- mediagoblin/templates/mediagoblin/user_pages/media.html | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 795cba6a..f1f56dd1 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -281,7 +281,7 @@ class MediaEntry(Document): Provide a url to the previous entry from this user, if there is one """ cursor = self.db.MediaEntry.find({'_id': {"$gt": self._id}, - 'uploader': self['uploader'], + 'uploader': self.uploader, 'state': 'processed'}).sort( '_id', ASCENDING).limit(1) if cursor.count(): @@ -294,7 +294,7 @@ class MediaEntry(Document): Provide a url to the next entry from this user, if there is one """ cursor = self.db.MediaEntry.find({'_id': {"$lt": self._id}, - 'uploader': self['uploader'], + 'uploader': self.uploader, 'state': 'processed'}).sort( '_id', DESCENDING).limit(1) @@ -304,7 +304,7 @@ class MediaEntry(Document): media=unicode(cursor[0]['slug'])) def get_uploader(self): - return self.db.User.find_one({'_id': self['uploader']}) + return self.db.User.find_one({'_id': self.uploader}) def get_fail_exception(self): """ diff --git a/mediagoblin/edit/lib.py b/mediagoblin/edit/lib.py index 4ce2d42f..a199cbf7 100644 --- a/mediagoblin/edit/lib.py +++ b/mediagoblin/edit/lib.py @@ -17,7 +17,7 @@ def may_edit_media(request, media): """Check, if the request's user may edit the media details""" - if media['uploader'] == request.user._id: + if media.uploader == request.user._id: return True if request.user.is_admin: return True diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 4e8c3686..0b84f639 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -57,7 +57,7 @@ def edit_media(request, media): # and userid. existing_user_slug_entries = request.db.MediaEntry.find( {'slug': request.POST['slug'], - 'uploader': media['uploader'], + 'uploader': media.uploader, '_id': {'$ne': media._id}}).count() if existing_user_slug_entries: @@ -79,7 +79,7 @@ def edit_media(request, media): location=media.url_for_self(request.urlgen)) if request.user.is_admin \ - and media['uploader'] != request.user._id \ + and media.uploader != request.user._id \ and request.method != 'POST': messages.add_message( request, messages.WARNING, diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 6beb6b18..64d4b541 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -64,7 +64,7 @@ def submit_start(request): entry['description_html'] = cleaned_markdown_conversion( entry['description']) - entry['uploader'] = request.user['_id'] + entry.uploader = request.user._id # Process the user's folksonomy "tags" entry['tags'] = convert_to_tag_list_of_dicts( diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 89fd104d..d7d510d4 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -115,7 +115,7 @@ - + @@ -57,7 +57,7 @@ {% for media_entry in failed_entries %} - + diff --git a/mediagoblin/templates/mediagoblin/utils/object_gallery.html b/mediagoblin/templates/mediagoblin/utils/object_gallery.html index e1b8cc9b..65ff09a4 100644 --- a/mediagoblin/templates/mediagoblin/utils/object_gallery.html +++ b/mediagoblin/templates/mediagoblin/utils/object_gallery.html @@ -33,9 +33,9 @@ - {% if entry['title'] %} + {% if entry.title %}
- {{ entry['title'] }} + {{ entry.title }} {% endif %} {% endfor %} From 5da0bf901be7551e9708dd248319ff57d7b29a57 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sun, 4 Dec 2011 19:57:42 +0100 Subject: [PATCH 1263/2731] Dot-Notation for MediaEntry.slug --- mediagoblin/db/models.py | 12 ++++++------ mediagoblin/edit/views.py | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 7af76b9f..aeee69dd 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -249,13 +249,13 @@ class MediaEntry(Document): pass def generate_slug(self): - self['slug'] = url.slugify(self.title) + self.slug = url.slugify(self.title) duplicate = mg_globals.database.media_entries.find_one( - {'slug': self['slug']}) + {'slug': self.slug}) if duplicate: - self['slug'] = "%s-%s" % (self._id, self['slug']) + self.slug = "%s-%s" % (self._id, self.slug) def url_for_self(self, urlgen): """ @@ -269,7 +269,7 @@ class MediaEntry(Document): return urlgen( 'mediagoblin.user_pages.media_home', user=uploader.username, - media=self['slug']) + media=self.slug) else: return urlgen( 'mediagoblin.user_pages.media_home', @@ -287,7 +287,7 @@ class MediaEntry(Document): if cursor.count(): return urlgen('mediagoblin.user_pages.media_home', user=self.get_uploader().username, - media=unicode(cursor[0]['slug'])) + media=unicode(cursor[0].slug)) def url_to_next(self, urlgen): """ @@ -301,7 +301,7 @@ class MediaEntry(Document): if cursor.count(): return urlgen('mediagoblin.user_pages.media_home', user=self.get_uploader().username, - media=unicode(cursor[0]['slug'])) + media=unicode(cursor[0].slug)) def get_uploader(self): return self.db.User.find_one({'_id': self.uploader}) diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index feda397d..51661a21 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -44,7 +44,7 @@ def edit_media(request, media): defaults = dict( title=media.title, - slug=media['slug'], + slug=media.slug, description=media['description'], tags=media_tags_as_string(media['tags'])) @@ -72,7 +72,7 @@ def edit_media(request, media): media['description_html'] = cleaned_markdown_conversion( media['description']) - media['slug'] = unicode(request.POST['slug']) + media.slug = unicode(request.POST['slug']) media.save() return exc.HTTPFound( From 1d9399660416fe5a04d322303986434815bc15f0 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sun, 4 Dec 2011 20:06:42 +0100 Subject: [PATCH 1264/2731] Dot-Notation for MediaEntry.description(_html) --- mediagoblin/edit/views.py | 8 ++++---- mediagoblin/submit/views.py | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 51661a21..4cb98c15 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -45,7 +45,7 @@ def edit_media(request, media): defaults = dict( title=media.title, slug=media.slug, - description=media['description'], + description=media.description, tags=media_tags_as_string(media['tags'])) form = forms.EditForm( @@ -65,12 +65,12 @@ def edit_media(request, media): _(u'An entry with that slug already exists for this user.')) else: media.title = unicode(request.POST['title']) - media['description'] = unicode(request.POST.get('description')) + media.description = unicode(request.POST.get('description')) media['tags'] = convert_to_tag_list_of_dicts( request.POST.get('tags')) - media['description_html'] = cleaned_markdown_conversion( - media['description']) + media.description_html = cleaned_markdown_conversion( + media.description) media.slug = unicode(request.POST['slug']) media.save() diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 1805e293..8da71341 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -60,9 +60,9 @@ def submit_start(request): unicode(request.POST['title']) or unicode(splitext(filename)[0])) - entry['description'] = unicode(request.POST.get('description')) - entry['description_html'] = cleaned_markdown_conversion( - entry['description']) + entry.description = unicode(request.POST.get('description')) + entry.description_html = cleaned_markdown_conversion( + entry.description) entry.uploader = request.user._id From f4ee839939e4215820df3132b62c51f721510f77 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sun, 4 Dec 2011 20:16:01 +0100 Subject: [PATCH 1265/2731] Dot-Notation for MediaEntry.media_type --- mediagoblin/processing.py | 4 ++-- mediagoblin/submit/views.py | 2 +- mediagoblin/user_pages/views.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mediagoblin/processing.py b/mediagoblin/processing.py index 89c4ac89..7dd5cc7d 100644 --- a/mediagoblin/processing.py +++ b/mediagoblin/processing.py @@ -55,8 +55,8 @@ class ProcessMedia(Task): # Try to process, and handle expected errors. try: - #__import__(entry['media_type']) - manager = get_media_manager(entry['media_type']) + #__import__(entry.media_type) + manager = get_media_manager(entry.media_type) manager['processor'](entry) except BaseProcessingFail, exc: mark_entry_failed(entry._id, exc) diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 8da71341..4e4c7c43 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -55,7 +55,7 @@ def submit_start(request): # create entry and save in database entry = request.db.MediaEntry() entry['_id'] = ObjectId() - entry['media_type'] = unicode(media_type) + entry.media_type = unicode(media_type) entry.title = ( unicode(request.POST['title']) or unicode(splitext(filename)[0])) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index dc549567..87b82c74 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -122,7 +122,7 @@ def media_home(request, media, page, **kwargs): comment_form = user_forms.MediaCommentForm(request.POST) - media_template_name = get_media_manager(media['media_type'])['display_template'] + media_template_name = get_media_manager(media.media_type)['display_template'] return render_to_response( request, From ddc1cae9ea4c80415557ec0408a56a3a1c60423b Mon Sep 17 00:00:00 2001 From: Elrond Date: Sun, 4 Dec 2011 20:26:36 +0100 Subject: [PATCH 1266/2731] Dot-Notation for MediaEntry.media_data --- mediagoblin/db/models.py | 4 ++-- mediagoblin/media_types/video/processing.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index aeee69dd..569c3600 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -131,7 +131,7 @@ class MediaEntry(Document): For example, images might contain some EXIF data that's not appropriate to other formats. You might store it like: - mediaentry['media_data']['exif'] = { + mediaentry.media_data['exif'] = { 'manufacturer': 'CASIO', 'model': 'QV-4000', 'exposure_time': .659} @@ -139,7 +139,7 @@ class MediaEntry(Document): Alternately for video you might store: # play length in seconds - mediaentry['media_data']['play_length'] = 340 + mediaentry.media_data['play_length'] = 340 ... so what's appropriate here really depends on the media type. diff --git a/mediagoblin/media_types/video/processing.py b/mediagoblin/media_types/video/processing.py index 6125e49c..93f16e86 100644 --- a/mediagoblin/media_types/video/processing.py +++ b/mediagoblin/media_types/video/processing.py @@ -75,7 +75,7 @@ def process_video(entry): entry['media_files']['webm_640'] = medium_filepath # Save the width and height of the transcoded video - entry['media_data']['video'] = { + entry.media_data['video'] = { u'width': transcoder.dst_data.videowidth, u'height': transcoder.dst_data.videoheight} From 4535f7597f112443d8997bbd6b8a445612c2440d Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Tue, 6 Dec 2011 23:05:47 +0100 Subject: [PATCH 1267/2731] Bug 681 - Comments from reviewing the new video merge in mediagoblin.media_types and submodules - Moved VideoThumbnailer.errors initialization to VideoThumbnailer.__init__ - Cleaned up the image.processing imports - Removed default ``None`` from get_media_manager(_media_type) in mediagoblin.views - Removed media_types import - Removed sys import, and passing of sys to root.html template --- mediagoblin/media_types/__init__.py | 21 +++++++++++++++++--- mediagoblin/media_types/image/processing.py | 9 ++------- mediagoblin/media_types/video/transcoders.py | 4 ++-- mediagoblin/views.py | 6 +----- 4 files changed, 23 insertions(+), 17 deletions(-) diff --git a/mediagoblin/media_types/__init__.py b/mediagoblin/media_types/__init__.py index 61786562..4fa56bc3 100644 --- a/mediagoblin/media_types/__init__.py +++ b/mediagoblin/media_types/__init__.py @@ -30,7 +30,7 @@ class InvalidFileType(Exception): def get_media_types(): """ - Generator that returns the available media types + Generator, yields the available media types """ for media_type in mg_globals.app_config['media_types']: yield media_type @@ -38,7 +38,7 @@ def get_media_types(): def get_media_managers(): ''' - Generator that returns all available media managers + Generator, yields all enabled media managers ''' for media_type in get_media_types(): __import__(media_type) @@ -46,20 +46,35 @@ def get_media_managers(): yield media_type, sys.modules[media_type].MEDIA_MANAGER -def get_media_manager(_media_type = None): +def get_media_manager(_media_type): + ''' + Get the MEDIA_MANAGER based on a media type string + + Example:: + get_media_type('mediagoblin.media_types.image') + ''' + if not _media_type: + return False + for media_type, manager in get_media_managers(): if media_type in _media_type: return manager def get_media_type_and_manager(filename): + ''' + Get the media type and manager based on a filename + ''' for media_type, manager in get_media_managers(): if filename.find('.') > 0: + # Get the file extension ext = os.path.splitext(filename)[1].lower() else: raise InvalidFileType( _('Could not find any file extension in "{filename}"').format( filename=filename)) + # Omit the dot from the extension and match it against + # the media manager if ext[1:] in manager['accepted_extensions']: return media_type, manager diff --git a/mediagoblin/media_types/image/processing.py b/mediagoblin/media_types/image/processing.py index 5b8259fc..e493eb2b 100644 --- a/mediagoblin/media_types/image/processing.py +++ b/mediagoblin/media_types/image/processing.py @@ -17,15 +17,10 @@ import Image import os -from celery.task import Task -from celery import registry - -from mediagoblin.db.util import ObjectId from mediagoblin import mg_globals as mgg -from mediagoblin.processing import BaseProcessingFail, \ - mark_entry_failed, BadMediaFail, create_pub_filepath, THUMB_SIZE, \ - MEDIUM_SIZE +from mediagoblin.processing import BadMediaFail, \ + create_pub_filepath, THUMB_SIZE, MEDIUM_SIZE ################################ # Media processing initial steps diff --git a/mediagoblin/media_types/video/transcoders.py b/mediagoblin/media_types/video/transcoders.py index d7ed14ca..7071b887 100644 --- a/mediagoblin/media_types/video/transcoders.py +++ b/mediagoblin/media_types/video/transcoders.py @@ -74,14 +74,14 @@ class VideoThumbnailer: buffer_probes = {} - errors = [] - def __init__(self, source_path, dest_path): ''' Set up playbin pipeline in order to get video properties. Initializes and runs the gobject.MainLoop() ''' + self.errors = [] + self.source_path = source_path self.dest_path = dest_path diff --git a/mediagoblin/views.py b/mediagoblin/views.py index cd6aba9b..1e1db6c3 100644 --- a/mediagoblin/views.py +++ b/mediagoblin/views.py @@ -14,14 +14,11 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -import sys - from mediagoblin import mg_globals from mediagoblin.tools.pagination import Pagination from mediagoblin.tools.response import render_to_response from mediagoblin.db.util import DESCENDING from mediagoblin.decorators import uses_pagination -from mediagoblin import media_types @@ -36,8 +33,7 @@ def root_view(request, page): request, 'mediagoblin/root.html', {'media_entries': media_entries, 'allow_registration': mg_globals.app_config["allow_registration"], - 'pagination': pagination, - 'sys': sys}) + 'pagination': pagination}) def simple_template_render(request): From 3f45d9fbe8ed8cad2f3fc9a8e2a68a77ace0a958 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Wed, 7 Dec 2011 22:15:48 +0100 Subject: [PATCH 1268/2731] Move author text, "By X", to the sidebar --- .../templates/mediagoblin/user_pages/media.html | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 7434664c..95197c15 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -55,12 +55,8 @@

{{ media.description_html }}

{% endautoescape %}

- {% trans date=media.created.strftime("%Y-%m-%d"), - user_url=request.urlgen( - 'mediagoblin.user_pages.user_home', - user=media.get_uploader().username), - username=media.get_uploader().username -%} - By {{ username }} on {{ date }} + {% trans date=media.created.strftime("%Y-%m-%d") -%} + {{ date }} {%- endtrans %}

@@ -114,6 +110,13 @@ {% endif %}
+ {% trans user_url=request.urlgen( + 'mediagoblin.user_pages.user_home', + user=media.get_uploader().username), + username=media.get_uploader().username -%} +

❖ Browsing media by {{ username }}

+ {%- endtrans %} + {% include "mediagoblin/utils/prev_next.html" %} {% if media['uploader'] == request.user._id or From 75a12d632dd281d4d74b93f9014000a3efdc3169 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 9 Dec 2011 22:37:20 +0100 Subject: [PATCH 1269/2731] Lots of changes to media page; rearranged things, added new styles, added jquery bits, gave the comment section a refresh --- mediagoblin/static/css/base.css | 29 +++++-- .../mediagoblin/user_pages/media.html | 79 +++++++++++-------- mediagoblin/user_pages/forms.py | 2 +- 3 files changed, 69 insertions(+), 41 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 12d88ffa..bbc04342 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -117,7 +117,7 @@ a.mediagoblin_logo{ /* common website elements */ -.button_action, .button_action_highlight{ +.button_action, .button_action_highlight { color: #c3c3c3; background-color: #363636; border: 1px solid; @@ -128,16 +128,16 @@ a.mediagoblin_logo{ text-decoration: none; font-style: normal; font-weight: bold; - font-size: 1em; + font-size: 16px; + cursor: pointer; } -.button_action_highlight{ +.button_action_highlight { background-color: #86D4B1; border-color: #A2DEC3 #6CAA8E #5C9179; color: #283F35; } - .button_form, .cancel_link { height: 32px; min-width: 99px; @@ -171,15 +171,15 @@ a.mediagoblin_logo{ background-image: linear-gradient(top, #D2D2D2, #aaa); } -.pagination{ +.pagination { text-align: center; } -.pagination_arrow{ +.pagination_arrow { margin: 5px; } -.empty_space{ +.empty_space { background-image: url("../images/empty_back.png"); font-style: italic; text-align: center; @@ -187,6 +187,21 @@ text-align: center; padding-top: 70px; } +.right_align { + float: right; +} + +textarea { + border: none; + background-color: #f1f1f1; + padding: 3px; +} + +textarea#comment_content { + width: 634px; + height: 90px; +} + /* forms */ .form_box { diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 95197c15..12039473 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -22,11 +22,25 @@ {% block title %}{{ media.title }} — {{ super() }}{% endblock %} +{% block mediagoblin_head %} + +{% endblock mediagoblin_head %} + {% block mediagoblin_content %} {% if media %}
- {% block mediagoblin_media %} + {% block mediagoblin_media %} {% set display_media = request.app.public_store.file_url( media.get_display_media(media.media_files)) %} @@ -45,7 +59,7 @@ src="{{ display_media }}" alt="Image for {{ media.title }}" /> {% endif %} - {% endblock %} + {% endblock %}

@@ -59,9 +73,36 @@ {{ date }} {%- endtrans %}

-

- {% if request.user and comments.count() %} -

{% trans %}Post a comment{% endtrans %}

+ + {% if media['uploader'] == request.user._id or + request.user['is_admin'] %} +

+ {% set edit_url = request.urlgen('mediagoblin.edit.edit_media', + user= media.get_uploader().username, + media= media._id) %} + {% trans %}Edit{% endtrans %} +

+

+ {% set delete_url = request.urlgen('mediagoblin.user_pages.media_confirm_delete', + user= media.get_uploader().username, + media= media._id) %} + {% trans %}Delete{% endtrans %} +

+ {% endif %} + +

{% trans %}23 comments{% endtrans %}

+ {# 0 comments. Be the first to add one! #} + {% if request.user %} + +

{% trans %}Type your comment here. You can use Markdown for formatting.{% endtrans %}

+ {{ wtforms_util.render_divs(comment_form) }} +
+ + {{ csrf_token }} +
+ {% endif %} {% if comments %} {% for comment in comments %} @@ -90,18 +131,6 @@
{% endfor %} - {% if request.user %} -
- {{ wtforms_util.render_divs(comment_form) }} -
- - {{ csrf_token }} -
- - {% endif %} - {{ render_pagination(request, pagination, request.urlgen('mediagoblin.user_pages.media_home', user = media.get_uploader().username, @@ -119,22 +148,6 @@ {% include "mediagoblin/utils/prev_next.html" %} - {% if media['uploader'] == request.user._id or - request.user['is_admin'] %} -

- {% set edit_url = request.urlgen('mediagoblin.edit.edit_media', - user= media.get_uploader().username, - media= media._id) %} - {% trans %}Edit{% endtrans %} -

-

- {% set delete_url = request.urlgen('mediagoblin.user_pages.media_confirm_delete', - user= media.get_uploader().username, - media= media._id) %} - {% trans %}Delete{% endtrans %} -

- {% endif %} - {% if media.attachment_files|count %}

Attachments

    diff --git a/mediagoblin/user_pages/forms.py b/mediagoblin/user_pages/forms.py index 301f1f0a..e04fd559 100644 --- a/mediagoblin/user_pages/forms.py +++ b/mediagoblin/user_pages/forms.py @@ -21,7 +21,7 @@ from mediagoblin.tools.translate import fake_ugettext_passthrough as _ class MediaCommentForm(wtforms.Form): comment_content = wtforms.TextAreaField( - _('Comment'), + _(''), [wtforms.validators.Required()]) From 9c6d8d77fba60a355b2b60d4c0a48de8bd58f2fa Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 9 Dec 2011 22:45:26 +0100 Subject: [PATCH 1270/2731] Only apply textarea style to comment box --- mediagoblin/static/css/base.css | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index bbc04342..89988c8b 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -191,15 +191,12 @@ text-align: center; float: right; } -textarea { - border: none; - background-color: #f1f1f1; - padding: 3px; -} - textarea#comment_content { width: 634px; height: 90px; + border: none; + background-color: #f1f1f1; + padding: 3px; } /* forms */ From 8f25d91b1ee8672afa2ebdfb9c938dd1e3439149 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 9 Dec 2011 22:48:20 +0100 Subject: [PATCH 1271/2731] Open Markdown link in new windows; I know _blank is sometimes frowned upon but it may be useful here --- mediagoblin/templates/mediagoblin/user_pages/media.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 12039473..000b1b80 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -96,7 +96,7 @@
    -

    {% trans %}Type your comment here. You can use Markdown for formatting.{% endtrans %}

    +

    {% trans %}Type your comment here. You can use Markdown for formatting.{% endtrans %}

    {{ wtforms_util.render_divs(comment_form) }}
    From de73724066d0fb49b77b53332c80d3cbc5f59221 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 9 Dec 2011 23:47:11 +0100 Subject: [PATCH 1272/2731] Change wording in tags.html --- mediagoblin/templates/mediagoblin/utils/tags.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/utils/tags.html b/mediagoblin/templates/mediagoblin/utils/tags.html index c7dfc8eb..1f587411 100644 --- a/mediagoblin/templates/mediagoblin/utils/tags.html +++ b/mediagoblin/templates/mediagoblin/utils/tags.html @@ -17,12 +17,12 @@ #} {% block tags_content -%} -

    {% trans %}Tagged with{% endtrans %} +

    {% trans %}View more media tagged with{% endtrans %} {% for tag in media.tags %} {% if loop.last %} {# the 'and' should only appear if there is more than one tag #} {% if media.tags|length > 1 %} - {% trans %}and{% endtrans %} + {% trans %}or{% endtrans %} {% endif %} Previous page - {% trans %}Newer{% endtrans %} + {% trans %}← Newer{% endtrans %} {% endif %} {% if pagination.has_next %} {% set next_url = pagination.get_page_url_explicit( base_url, get_params, pagination.page + 1) %} - {% trans %}Older{% endtrans %} - Next page + {% trans %}Older →{% endtrans %} {% endif %}
    {% trans %}Go to page:{% endtrans %} From b27067371d6cb99cf21c7c0970b664e970d9a22d Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sat, 10 Dec 2011 21:03:18 +0100 Subject: [PATCH 1274/2731] Style changes for media_uploader (now media_specs); removed margins from button_action buttons --- mediagoblin/static/css/base.css | 16 ++++++++++------ .../templates/mediagoblin/user_pages/media.html | 16 +++++----------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 89988c8b..c1239abb 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -96,6 +96,7 @@ input, textarea { a.mediagoblin_logo{ color: #fff; font-weight: bold; + margin-right: 8px; } .mediagoblin_footer { @@ -123,7 +124,6 @@ a.mediagoblin_logo{ border: 1px solid; border-color: #464646 #2B2B2B #252525; border-radius: 4px; - margin: 8px; padding: 3px 8px; text-decoration: none; font-style: normal; @@ -285,24 +285,28 @@ textarea#comment_content { /* media detail */ -h2.media_title{ +h2.media_title { margin-bottom: 0px; } -p.media_uploader{ +p.media_specs { font-size: 0.9em; + border-top: 1px solid #222; + border-bottom: 1px solid #222; + padding: 10px 0px; + color: #888; } /* icons */ -img.media_icon{ +img.media_icon { margin: 0 4px; vertical-align: sub; } /* navigation */ -.navigation_button{ +.navigation_button { width: 135px; display: block; float: left; @@ -317,7 +321,7 @@ img.media_icon{ margin: 0 0 20px } -.navigation_left{ +.navigation_left { margin-right: 6px; } diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 000b1b80..1a19443c 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -68,28 +68,22 @@ {% autoescape False %}

    {{ media.description_html }}

    {% endautoescape %} -

    +

    {% trans date=media.created.strftime("%Y-%m-%d") -%} - {{ date }} + Added on {{ date }}. Licensed under an X license. {%- endtrans %} -

    - - {% if media['uploader'] == request.user._id or + {% if media['uploader'] == request.user._id or request.user['is_admin'] %} -

    {% set edit_url = request.urlgen('mediagoblin.edit.edit_media', user= media.get_uploader().username, media= media._id) %} {% trans %}Edit{% endtrans %} -

    -

    {% set delete_url = request.urlgen('mediagoblin.user_pages.media_confirm_delete', user= media.get_uploader().username, media= media._id) %} {% trans %}Delete{% endtrans %} -

    - {% endif %} - + {% endif %} +

    {% trans %}23 comments{% endtrans %}

    {# 0 comments. Be the first to add one! #} {% if request.user %} From ed1840ee64eca680581fd764369f81063dd72831 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 12 Dec 2011 07:35:47 -0600 Subject: [PATCH 1275/2731] Mark "newer/older" buttons for translation --- mediagoblin/templates/mediagoblin/utils/prev_next.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/utils/prev_next.html b/mediagoblin/templates/mediagoblin/utils/prev_next.html index 3363891b..b0c01963 100644 --- a/mediagoblin/templates/mediagoblin/utils/prev_next.html +++ b/mediagoblin/templates/mediagoblin/utils/prev_next.html @@ -25,23 +25,23 @@ {# There are no previous entries for the very first media entry #} {% if prev_entry_url %} - ← newer + ← {% trans %}newer{% endtrans %} {% else %} {# This is the first entry. display greyed-out 'previous' image #} {% endif %} {# Likewise, this could be the very last media entry #} {% if next_entry_url %} - older → + {% trans %}older{% endtrans %} → {% else %} {# This is the last entry. display greyed-out 'next' image #} {% endif %}
    From 23caf305f28d1e8baf5196703ac316cfe4e740dc Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 12 Dec 2011 08:10:10 -0600 Subject: [PATCH 1276/2731] Allow administrators to disable keeping the original. That's the new default! --- mediagoblin/config_spec.ini | 5 ++++ mediagoblin/media_types/video/processing.py | 29 +++++++++++---------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini index 13ce925e..eb22bc1b 100644 --- a/mediagoblin/config_spec.ini +++ b/mediagoblin/config_spec.ini @@ -61,6 +61,11 @@ storage_class = string(default="mediagoblin.storage.filestorage:BasicFileStorage base_dir = string(default="%(here)s/user_dev/media/queue") +# Should we keep the original file? +[media_type:mediagoblin.media_types.video] +keep_original = boolean(default=False) + + [beaker.cache] type = string(default="file") data_dir = string(default="%(here)s/user_dev/beaker/cache/data") diff --git a/mediagoblin/media_types/video/processing.py b/mediagoblin/media_types/video/processing.py index 6125e49c..c0a3fb67 100644 --- a/mediagoblin/media_types/video/processing.py +++ b/mediagoblin/media_types/video/processing.py @@ -41,6 +41,8 @@ def process_video(entry): and attaches callbacks to that child process, hopefully, the entry-complete callback will be called when the video is done. """ + video_config = mgg.global_config['media_type:mediagoblin.media_types.video'] + workbench = mgg.workbench_manager.create_workbench() queued_filepath = entry['queued_media_file'] @@ -94,25 +96,24 @@ def process_video(entry): entry['media_files']['thumb'] = thumbnail_filepath + if video_config['keep_original']: + # Push original file to public storage + queued_file = file(queued_filename, 'rb') - # Push original file to public storage - queued_file = file(queued_filename, 'rb') + with queued_file: + original_filepath = create_pub_filepath( + entry, + queued_filepath[-1]) - with queued_file: - original_filepath = create_pub_filepath( - entry, - queued_filepath[-1]) + with mgg.public_store.get_file(original_filepath, 'wb') as \ + original_file: + _log.debug('Saving original...') + original_file.write(queued_file.read()) + _log.debug('Saved original') - with mgg.public_store.get_file(original_filepath, 'wb') as \ - original_file: - _log.debug('Saving original...') - original_file.write(queued_file.read()) - _log.debug('Saved original') - - entry['media_files']['original'] = original_filepath + entry['media_files']['original'] = original_filepath mgg.queue_store.delete_file(queued_filepath) - # Save the MediaEntry entry.save() From 438dd8cd8f79f32609cce15d70ef6a93f1531a3b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 12 Dec 2011 08:13:46 -0600 Subject: [PATCH 1277/2731] Add a note on how to up the upload size limit --- docs/source/deploying.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/source/deploying.rst b/docs/source/deploying.rst index 70b1a6af..14b2c9cf 100644 --- a/docs/source/deploying.rst +++ b/docs/source/deploying.rst @@ -196,6 +196,9 @@ this ``nginx.conf`` file should be modeled on the following: :: # This is the section you should read ##################################### + # Change this to update the upload size limit for your users + client_max_body_size 8m; + server_name mediagoblin.example.org www.mediagoblin.example.org; access_log /var/log/nginx/mediagoblin.example.access.log; error_log /var/log/nginx/mediagoblin.example.error.log; From c36c3782737ef6d27137275ab98dbec49d7cd9ba Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 12 Dec 2011 08:15:16 -0600 Subject: [PATCH 1278/2731] Removed extraneous whitespace from video.html --- mediagoblin/templates/mediagoblin/media_displays/video.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/media_displays/video.html b/mediagoblin/templates/mediagoblin/media_displays/video.html index 5b8ec789..5ef1a782 100644 --- a/mediagoblin/templates/mediagoblin/media_displays/video.html +++ b/mediagoblin/templates/mediagoblin/media_displays/video.html @@ -21,5 +21,5 @@ {%- endtrans -%}

    - {% endif %} + {% endif %} {% endblock %} From 528c8b8fabe7036b63c44d93adc9e7b068bbcd91 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Mon, 12 Dec 2011 09:46:23 -0500 Subject: [PATCH 1279/2731] Tweak runtests to be more helpful If nose isn't installed, then runtests.sh says it can't find nosetests and exits, but doesn't tell you what you need to do to fix the situation. This fixes that. --- runtests.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/runtests.sh b/runtests.sh index 1dfbf093..4265326c 100755 --- a/runtests.sh +++ b/runtests.sh @@ -23,7 +23,8 @@ elif which nosetests > /dev/null; then echo "Using nosetests from \$PATH"; export NOSETESTS="nosetests"; else - echo "No nosetests found, exiting! X_X"; + echo "nosetests not found. X_X"; + echo "Please install 'nose'. Exiting."; exit 1 fi From 5b9ef3d58f7b8f8669c5cfb7c4938e01d297ed10 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Mon, 12 Dec 2011 09:53:41 -0500 Subject: [PATCH 1280/2731] Update README * tweaked some language * fixed some statements that aren't correct anymore --- README | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/README b/README index 0aba179b..07f9a094 100644 --- a/README +++ b/README @@ -8,19 +8,18 @@ What is GNU MediaGoblin? * Initially, a place to store all your photos that’s as awesome as, if not more awesome than, existing network services (Flickr, SmugMug, Picasa, etc) -* Later, a place for all sorts of media, such as video, music, etc hosting. -* Federated with OStatus! * Customizable! * A place for people to collaborate and show off original and derived - creations. Free, as in freedom. We’re a GNU project in the making, - afterall. + creations. Free, as in freedom. We’re a GNU project after all. +* Later, a place for all sorts of media, such as video, music, etc hosting. +* Later, federated with OStatus! Is it ready for me to use? ========================== -Not yet! We're working on it and we hope to have a usable system by -September / October 2011. +Yes! But with caveats. The software is usable and there are instances +running, but it's still in its early stages. Can I help/hang out/participate/whisper sweet nothings in your ear? @@ -33,9 +32,9 @@ hang out, see `our Join page `_ Where is the documentation? =========================== -The beginnings of a user manual is located in the ``docs/`` directory -in HTML, Texinfo, and source (Restructured Text) forms. It's also -available online at http://docs.mediagoblin.org/ in HTML form. +The beginnings of a site administration manual is located in the ``docs/`` +directory in HTML, Texinfo, and source (Restructured Text) forms. It's +also available online at http://docs.mediagoblin.org/ in HTML form. Contributor/developer documentation as well as documentation on the project processes and infrastructure is located on From 78dc055e22b55253ed395d616a6ce5635ef91499 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Mon, 12 Dec 2011 10:17:03 -0500 Subject: [PATCH 1281/2731] Add some documentation to lazyserver.sh I had no idea what it did, so I asked and tossed the answer at the top of the script. --- lazyserver.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lazyserver.sh b/lazyserver.sh index 63818a6a..4ca073b5 100755 --- a/lazyserver.sh +++ b/lazyserver.sh @@ -16,6 +16,10 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +# +# This runs Mediagoblin using Paste with Celery set to always eager mode. +# + if [ "$1" = "-h" ] then echo "$0 [-h] [-c paste.ini] [ARGS_to_paster ...]" From 076bf0cf28bae50dcd0f9e79e5c9e6501f1ad04a Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Mon, 12 Dec 2011 10:20:05 -0500 Subject: [PATCH 1282/2731] Doc updates * fixed some language * fixed some consistency issues * fixed some 80-line-width issues * fixed some typos and markup problems --- docs/source/configuration.rst | 42 +++--- docs/source/deploying.rst | 181 +++++++++++++------------ docs/source/foreword.rst | 8 +- docs/source/production-deployments.rst | 29 ++-- 4 files changed, 135 insertions(+), 125 deletions(-) diff --git a/docs/source/configuration.rst b/docs/source/configuration.rst index 093f492c..1e22ad2d 100644 --- a/docs/source/configuration.rst +++ b/docs/source/configuration.rst @@ -19,13 +19,13 @@ mediagoblin.ini tweak settings for MediaGoblin, you'll usually tweak them here. paste.ini - This is primarily a server configuration file, on the python side - (specifically, on the wsgi side, via `paste deploy + This is primarily a server configuration file, on the Python side + (specifically, on the WSGI side, via `paste deploy `_ / `paste script `_). It also sets up some middleware that you can mostly ignore, except to configure sessions... more on that later. If you are adding a different - python server other than fastcgi / plain http, you might configure + Python server other than fastcgi / plain HTTP, you might configure it here. You probably won't need to change this file very much. @@ -47,19 +47,23 @@ Let's assume you're doing the virtualenv setup described elsewhere in this manual, and you need to make local tweaks to the config files. How do you do that? Let's see. -To make changes to mediagoblin.ini: +To make changes to mediagoblin.ini :: - cp mediagoblin.ini mediagoblin_local.ini + cp mediagoblin.ini mediagoblin_local.ini -To make changes to paste.ini: - cp paste.ini paste_local.ini +To make changes to paste.ini :: + + cp paste.ini paste_local.ini From here you should be able to make direct adjustments to the files, and most of the commands described elsewhere in this manual will "notice" your local config files and use those instead of the non-local version. -(Note that all commands provide a way to pass in a specific config -file also, usually by a -cf flag.) +.. note:: + + Note that all commands provide a way to pass in a specific config + file also, usually by a ``-cf`` flag. + Common changes ============== @@ -69,9 +73,9 @@ Enabling email notifications You'll almost certainly want to enable sending emails. By default, MediaGoblin doesn't really do this... for the sake of developer -convenience, it runs in "email debug mode". Change this: +convenience, it runs in "email debug mode". Change this:: - email_debug_mode = false + email_debug_mode = false You can (and should) change the "from" email address by setting ``email_sender_address``. @@ -82,21 +86,21 @@ If you have more custom SMTP settings, you also have the following options at your disposal, which are all optional, and do exactly what they sound like. - - email_smtp_host - - email_smtp_port - - email_smtp_user - - email_smtp_pass +- email_smtp_host +- email_smtp_port +- email_smtp_user +- email_smtp_pass All other configuration changes ------------------------------- -To be perfectly honest, there are quite a few options and I'm not -going to be able to get to documanting them all in time for 0.1.0. +To be perfectly honest, there are quite a few options and we haven't had +time to document them all So here's a cop-out section saying that if you get into trouble, hop -onto IRC and we'll help you out: +onto IRC and we'll help you out:: - #mediagoblin on irc.freenode.net + #mediagoblin on irc.freenode.net Celery ====== diff --git a/docs/source/deploying.rst b/docs/source/deploying.rst index 14b2c9cf..4aded2e6 100644 --- a/docs/source/deploying.rst +++ b/docs/source/deploying.rst @@ -11,9 +11,11 @@ it simple with some assumptions and use a setup that combines mediagoblin + virtualenv + fastcgi + nginx on a .deb or .rpm based GNU/Linux distro. -Note: these tools are for administrators wanting to deploy a fresh -install. If instead you want to join in as a contributor, see our -`Hacking HOWTO `_ instead. +.. note:: + + These tools are for site administrators wanting to deploy a fresh + install. If instead you want to join in as a contributor, see our + `Hacking HOWTO `_ instead. Prepare System -------------- @@ -33,12 +35,15 @@ MediaGoblin has the following core dependencies: On a DEB-based system (e.g Debian, gNewSense, Trisquel, Ubuntu, and derivatives) issue the following command: :: - sudo apt-get install mongodb git-core python python-dev python-lxml python-imaging python-virtualenv + sudo apt-get install mongodb git-core python python-dev python-lxml \ + python-imaging python-virtualenv On a RPM-based system (e.g. Fedora, RedHat, and derivatives) issue the following command: :: - yum install mongodb-server python-paste-deploy python-paste-script git-core python python-devel python-lxml python-imaging python-virtualenv + yum install mongodb-server python-paste-deploy python-paste-script \ + git-core python python-devel python-lxml python-imaging \ + python-virtualenv Configure MongoDB ~~~~~~~~~~~~~~~~~ @@ -46,10 +51,11 @@ Configure MongoDB After installing MongoDB some preliminary database configuration may be necessary. -Ensure that MongoDB `journaling `_ -is enabled. Journaling is enabled by default in version 2.0 and later -64-bit MongoDB instances. Check your deployment, and consider enabling -journaling if you're running 32-bit systems or earlier version. +Ensure that MongoDB `journaling +`_ is enabled. Journaling +is enabled by default in version 2.0 and later 64-bit MongoDB instances. +Check your deployment, and consider enabling journaling if you're running +32-bit systems or earlier version. .. warning:: @@ -77,41 +83,42 @@ create "system account" or dedicated service user. Ensure that it is not possible to log in to your system with as this user. You should create a working directory for MediaGoblin. This document -assumes your local git repository will be located at ``/srv/mediagoblin.example.org/mediagoblin/`` -for this documentation. Substitute your prefer ed local deployment path -as needed. +assumes your local git repository will be located at +``/srv/mediagoblin.example.org/mediagoblin/`` for this documentation. +Substitute your prefer ed local deployment path as needed. This document assumes that all operations are performed as this user. To drop privileges to this user, run the following command: :: + su - [mediagoblin] - su - [mediagoblin]`` - -Where, "``[mediagoblin]`` is the username of the system user that will +Where, "``[mediagoblin]``" is the username of the system user that will run MediaGoblin. Install MediaGoblin and Virtualenv ---------------------------------- -As of |version|, MediaGoblin has a rapid development pace. As a result -the following instructions recommend installing from the ``master`` -branch of the git repository. Eventually production deployments will -want to transition to running from more consistent releases. +.. note:: + + As of |version|, MediaGoblin has a rapid development pace. As a result + the following instructions recommend installing from the ``master`` + branch of the git repository. Eventually production deployments will + want to transition to running from more consistent releases. Issue the following commands, to create and change the working -directory. Modify these commands to reflect your own environment: :: +directory. Modify these commands to reflect your own environment:: - mkdir -p /srv/mediagoblin.example.org/ - cd /srv/mediagoblin.example.org/ + mkdir -p /srv/mediagoblin.example.org/ + cd /srv/mediagoblin.example.org/ -Clone the MediaGoblin repository: :: +Clone the MediaGoblin repository:: - git clone git://gitorious.org/mediagoblin/mediagoblin.git + git clone git://gitorious.org/mediagoblin/mediagoblin.git -And setup the in-package virtualenv: :: +And setup the in-package virtualenv:: - cd mediagoblin - virtualenv . && ./bin/python setup.py develop + cd mediagoblin + virtualenv . && ./bin/python setup.py develop .. note:: @@ -127,16 +134,16 @@ more reliable and considerably easier to configure and illustrate. If you're familiar with Python packaging you may consider deploying with your preferred the method. -Assuming you are going to deploy with fastcgi, you should also install -flup: :: +Assuming you are going to deploy with FastCGI, you should also install +flup:: - ./bin/easy_install flup + ./bin/easy_install flup This concludes the initial configuration of the development environment. In the future, if at any point you want update your -codebase, you should also run: :: +codebase, you should also run:: - ./bin/python setup.py develop --upgrade && ./bin/gmg migrate. + ./bin/python setup.py develop --upgrade && ./bin/gmg migrate. Deploy MediaGoblin Services --------------------------- @@ -145,9 +152,9 @@ Test the Server ~~~~~~~~~~~~~~~ At this point MediaGoblin should be properly installed. You can -test the deployment with the following command: :: +test the deployment with the following command:: - ./lazyserver.sh --server-name=broadcast + ./lazyserver.sh --server-name=broadcast You should be able to connect to the machine on port 6543 in your browser to confirm that the service is operable. @@ -156,7 +163,7 @@ Connect the Webserver to MediaGoblin with FastCGI ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This section describes how to configure MediaGoblin to work via -fastcgi. Our configuration example will use nginx, however, you may +FastCGI. Our configuration example will use nginx, however, you may use any webserver of your choice as long as it supports the FastCGI protocol. If you do not already have a web server, consider nginx, as the configuration files may be more clear than the @@ -166,78 +173,78 @@ Create a configuration file at ``/srv/mediagoblin.example.org/nginx.conf`` and create a symbolic link into a directory that will be included in your ``nginx`` configuration (e.g. "``/etc/nginx/sites-enabled`` or ``/etc/nginx/conf.d``) with -one of the following commands (as the root user:) :: +one of the following commands (as the root user):: - ln -s /srv/mediagoblin.example.org/nginx.conf /etc/nginx/conf.d/ - ln -s /srv/mediagoblin.example.org/nginx.conf /etc/nginx/sites-enabled/ + ln -s /srv/mediagoblin.example.org/nginx.conf /etc/nginx/conf.d/ + ln -s /srv/mediagoblin.example.org/nginx.conf /etc/nginx/sites-enabled/ Modify these commands and locations depending on your preferences and the existing configuration of your nginx instance. The contents of -this ``nginx.conf`` file should be modeled on the following: :: +this ``nginx.conf`` file should be modeled on the following:: - server { - ################################################# - # Stock useful config options, but ignore them :) - ################################################# - include /etc/nginx/mime.types; + server { + ################################################# + # Stock useful config options, but ignore them :) + ################################################# + include /etc/nginx/mime.types; - autoindex off; - default_type application/octet-stream; - sendfile on; + autoindex off; + default_type application/octet-stream; + sendfile on; - # Gzip - gzip on; - gzip_min_length 1024; - gzip_buffers 4 32k; - gzip_types text/plain text/html application/x-javascript text/javascript text/xml text/css; + # Gzip + gzip on; + gzip_min_length 1024; + gzip_buffers 4 32k; + gzip_types text/plain text/html application/x-javascript text/javascript text/xml text/css; - ##################################### - # Mounting MediaGoblin stuff - # This is the section you should read - ##################################### + ##################################### + # Mounting MediaGoblin stuff + # This is the section you should read + ##################################### - # Change this to update the upload size limit for your users - client_max_body_size 8m; + # Change this to update the upload size limit for your users + client_max_body_size 8m; - server_name mediagoblin.example.org www.mediagoblin.example.org; - access_log /var/log/nginx/mediagoblin.example.access.log; - error_log /var/log/nginx/mediagoblin.example.error.log; + server_name mediagoblin.example.org www.mediagoblin.example.org; + access_log /var/log/nginx/mediagoblin.example.access.log; + error_log /var/log/nginx/mediagoblin.example.error.log; - # MediaGoblin's stock static files: CSS, JS, etc. - location /mgoblin_static/ { - alias /srv/mediagoblin.example.org/mediagoblin/mediagoblin/static/; - } - - # Instance specific media: - location /mgoblin_media/ { - alias /srv/mediagoblin.example.org/mediagoblin/user_dev/media/public/; - } - - # Mounting MediaGoblin itself via fastcgi. - location / { - fastcgi_pass 127.0.0.1:26543; - include /etc/nginx/fastcgi_params; - - # our understanding vs nginx's handling of script_name vs - # path_info don't match :) - fastcgi_param PATH_INFO $fastcgi_script_name; - fastcgi_param SCRIPT_NAME ""; - } + # MediaGoblin's stock static files: CSS, JS, etc. + location /mgoblin_static/ { + alias /srv/mediagoblin.example.org/mediagoblin/mediagoblin/static/; } + # Instance specific media: + location /mgoblin_media/ { + alias /srv/mediagoblin.example.org/mediagoblin/user_dev/media/public/; + } + + # Mounting MediaGoblin itself via FastCGI. + location / { + fastcgi_pass 127.0.0.1:26543; + include /etc/nginx/fastcgi_params; + + # our understanding vs nginx's handling of script_name vs + # path_info don't match :) + fastcgi_param PATH_INFO $fastcgi_script_name; + fastcgi_param SCRIPT_NAME ""; + } + } + Now, nginx instance is configured to serve the MediaGoblin application. Perform a quick test to ensure that this configuration works. Restart nginx so it picks up your changes, with a command that -resembles one of the following (as the root user:) :: +resembles one of the following (as the root user):: - sudo /etc/init.d/nginx restart - sudo /etc/rc.d/nginx restart + sudo /etc/init.d/nginx restart + sudo /etc/rc.d/nginx restart Now start MediaGoblin. Use the following command sequence as an -example: :: +example:: - cd /srv/mediagoblin.example.org/mediagoblin/ - ./lazyserver.sh --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543 + cd /srv/mediagoblin.example.org/mediagoblin/ + ./lazyserver.sh --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543 Visit the site you've set up in your browser by visiting . You should see MediaGoblin! diff --git a/docs/source/foreword.rst b/docs/source/foreword.rst index 835a7e7a..aa27647f 100644 --- a/docs/source/foreword.rst +++ b/docs/source/foreword.rst @@ -5,14 +5,14 @@ Foreword About the MediaGoblin Manual ============================ -This is the user manual for MediaGoblin. It covers how to set up and -configure MediaGoblin and the kind of information that someone running -MediaGoblin would need to know. +This is the site administrator manual for MediaGoblin. It covers how +to set up and configure MediaGoblin and the kind of information that +someone running MediaGoblin would need to know. We have other documentation at: * http://mediagoblin.org/join/ for general "join us" information -* http://wiki.mediagoblin.org/ for our contributor-focused wiki +* http://wiki.mediagoblin.org/ for our contributor/developer-focused wiki Improving the MediaGobiin Manual diff --git a/docs/source/production-deployments.rst b/docs/source/production-deployments.rst index 7bf26169..ef0bcad6 100644 --- a/docs/source/production-deployments.rst +++ b/docs/source/production-deployments.rst @@ -4,8 +4,7 @@ Considerations for Production Deployments This document contains a number of suggestions for deploying MediaGoblin in actual production environments. Consider -":doc:`deploying`" for a basic overview of how to deploy Media -Goblin. +":doc:`deploying`" for a basic overview of how to deploy MediaGoblin. Deploy with Paste ----------------- @@ -17,11 +16,11 @@ process. Use the following command as the basis for such a script: :: - CELERY_ALWAYS_EAGER=true \ - /srv/mediagoblin.example.org/mediagoblin/bin/paster serve \ - /srv/mediagoblin.example.org/mediagoblin/paste.ini \ - --pid-file=/var/run/mediagoblin.pid \ - --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543 \ + CELERY_ALWAYS_EAGER=true \ + /srv/mediagoblin.example.org/mediagoblin/bin/paster serve \ + /srv/mediagoblin.example.org/mediagoblin/paste.ini \ + --pid-file=/var/run/mediagoblin.pid \ + --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543 The above configuration places MediaGoblin in "always eager" mode with Celery, this means that submissions of content will be processed @@ -31,11 +30,11 @@ the user will be able to immediately return to the MediaGoblin site while processing is ongoing. In these cases, use the following command as the basis for your script: :: - CELERY_ALWAYS_EAGER=false \ - /srv/mediagoblin.example.org/mediagoblin/bin/paster serve \ - /srv/mediagoblin.example.org/mediagoblin/paste.ini \ - --pid-file=/var/run/mediagoblin.pid \ - --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543 \ + CELERY_ALWAYS_EAGER=false \ + /srv/mediagoblin.example.org/mediagoblin/bin/paster serve \ + /srv/mediagoblin.example.org/mediagoblin/paste.ini \ + --pid-file=/var/run/mediagoblin.pid \ + --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543 Separate Celery --------------- @@ -57,9 +56,9 @@ such as "ASCII art" or icon sharing, you will need to run ``celeryd`` as a separate process. Build an :ref:`init script ` around the following -command. +command:: - CELERY_CONFIG_MODULE=mediagoblin.init.celery.from_celery ./bin/celeryd + CELERY_CONFIG_MODULE=mediagoblin.init.celery.from_celery ./bin/celeryd Modify your existing MediaGoblin and application init scripts, if necessary, to prevent them from starting their own ``celeryd`` @@ -77,6 +76,6 @@ distribution/operating system. In the future, MediaGoblin will provide example scripts as examples. .. TODO insert init script here -.. TODO are additional concernts ? +.. TODO are additional concerns ? .. Other Concerns .. -------------- From 9bc2fc6c6a327a79ff5ad9d8f11f5b8f968154a6 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 12 Dec 2011 09:44:48 -0600 Subject: [PATCH 1283/2731] Added the "Media types" chapter --- docs/source/index.rst | 1 + docs/source/media-types.rst | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 docs/source/media-types.rst diff --git a/docs/source/index.rst b/docs/source/index.rst index 6ffe0974..f9c9285d 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -16,6 +16,7 @@ Table of Contents: deploying production-deployments configuration + media-types help theming codebase diff --git a/docs/source/media-types.rst b/docs/source/media-types.rst new file mode 100644 index 00000000..809efe07 --- /dev/null +++ b/docs/source/media-types.rst @@ -0,0 +1,34 @@ +.. _media-types-chapter: + +==================== +Enabling Media Types +==================== + +In the future, there will be all sorts of media types you can enable, +but in the meanwhile there's only one additional media type: video. + +First, you should probably read ":doc:`configuration`" to make sure +you know how to modify the mediagoblin config file. + +Video +===== + +To enable video, first install gstreamer and the python-gstreamer +bindings (as well as whatever gstremaer extensions you want, +good/bad/ugly). On Debianoid systems: + + sudo apt-get install python-gst0.10 + +Next, modify (and possibly copy over from mediagoblin.ini) your +mediagoblin_local.ini. Uncomment this line in the [mediagoblin] +section: + + media_types = mediagoblin.media_types.image, mediagoblin.media_types.video + +Now you should be able to submit videos, and mediagoblin should +transcode them. + +Note that you almost certainly want to separate Celery from the normal +paste process or your users will probably find that their connections +time out as the video transcodes. To set that up, check out the +":doc:`production-deployments`" section of this manual. From 57875c83c253e6e6aa08c3dbc92a3eb58664c88b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 12 Dec 2011 09:45:45 -0600 Subject: [PATCH 1284/2731] Updated translations --- .../i18n/de/LC_MESSAGES/mediagoblin.mo | Bin 11805 -> 11802 bytes .../i18n/de/LC_MESSAGES/mediagoblin.po | 10 +-- .../i18n/eo/LC_MESSAGES/mediagoblin.mo | Bin 11754 -> 11749 bytes .../i18n/eo/LC_MESSAGES/mediagoblin.po | 6 +- .../i18n/es/LC_MESSAGES/mediagoblin.mo | Bin 12093 -> 12120 bytes .../i18n/es/LC_MESSAGES/mediagoblin.po | 37 +++++---- .../i18n/pt_BR/LC_MESSAGES/mediagoblin.mo | Bin 11596 -> 11350 bytes .../i18n/pt_BR/LC_MESSAGES/mediagoblin.po | 58 +++++++------- .../i18n/ru/LC_MESSAGES/mediagoblin.mo | Bin 15455 -> 15457 bytes .../i18n/ru/LC_MESSAGES/mediagoblin.po | 4 +- .../i18n/sk/LC_MESSAGES/mediagoblin.mo | Bin 11789 -> 11993 bytes .../i18n/sk/LC_MESSAGES/mediagoblin.po | 75 ++++++++++-------- 12 files changed, 100 insertions(+), 90 deletions(-) diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo index f7562eaa5e8e1995d2c5ddcbca2050a9641d061e..a01abf9ca7c143db31f1a5d96bc8ac2148711350 100644 GIT binary patch delta 1105 zcmXZaUr19?9Ki9P&dsG2S(+|4otoKSMU50o^TGZ>ky6$}5=^`<(`|OQ(kNOFg)dTx z5EThMBvwcTdnihZl7ilng2D)b3`??yAc%y~_s6|(xu0{+J@@>6zjMw=+l{t|GmiM@ z6p@)ck!%rpxyteb&eH#h75F}1WI3jJMQSk@4`MT}$5C8_Z!rU>u?D}{<369rS^8zD z^KPTYyYG{@RMMDaUgneorzBp~ z`L&piyKMKPR(u#W-bvf|IT}1Nz)OD|M-A{4L-+>u$C^?W$5zy%F;Ta65OoK}P%CAo!>fIQzy@xyLKSE6~ zi7n_|Yi)5DchDb4mX_bBm({aQWIHzDdE(0j8hWdpe05?2Ms)&eVvkV+&!aB%&$fuN z-Sl^(-sTq6$~#dL>&FIsZkxmd^y@cTmwE{6_A+pXhHmXwEJxX7RaAk!boZfV{0tqK z#8gaWawa-a6Uj>4O`p$lZShxC)>RJQ^yGPifpAB_jQF=54|GS`%e&1$$S@m&q5kp? zBk{$P<48Lc3Hyg%xXT>=Kqyh{JL<}A4F@MDdSYEc!}K==Vn$c&bZ=s)WIn~y9Ee8y bB4*6r*JX4V<}t&J#*CgGBb>NYdfELSh;*9K delta 1100 zcmXZaT}YE*6u|NGHb17eP@Cz><(8VJ({RWP`?7B$gFd_n@}kYnv6!1}VnosGLW;WZ zV%-!95kypk!U`hk!fryksX<-uVkAjIAQC}F|I=Q0d4K0Td-k65d^{YS8Jx>oQY(f? zzD~q0BH674mvD*v5AMeNHj!$y*Ng1I797A!*oLpM40BkH%jm;3bKK(;xk2tjotHta z_s%IP=_1H7FoQ+gMKti^Stcd2O*A(T$k22NuYUO?6$myt&% zd2PZcNJ)9skScsA%YYVG#$sGWE%X~J(B=~Hq65>|kIR_DcKqn33H*f*(6&P)fKQQ6 zNO@zSP8;qgKa9Gg6Da~MoJL*2H0p=u%?Y1TJI-SzuA&W#nhN99SVHbbPDxtL@uOHu ze%|yV>WYU@>)kR<-6i0WG%qdm2DQKk9KkQBe>~DG!f}cpwUL{sTRVli1J6+#|BAZx zKTwb6FY1}s?i3kDH}>Hj>=Dj?k)WFaqeWyd`cSt#f&UAcPNCk7N2V|FIQd)D28~vc zv)F*T#aHkc&LSmb4fV3t?-DtPCvbxLa+^SJwUu9s@en3;0%~LPsD*!`erVmaiDg^K zPoduC0o0X8P#e3B2k^bA;o&&Q`%o|SeeCTgctN0B`wctM(otBE7e~p@pmw}~7BrZ& z0gJH$t*DLIGtWv_s!F\n" +"PO-Revision-Date: 2011-12-06 21:16+0000\n" +"Last-Translator: gandaro \n" "Language-Team: German (http://www.transifex.net/projects/p/mediagoblin/team/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -185,7 +185,7 @@ msgstr "Yeeeaaah! Geschafft!" #: mediagoblin/submit/views.py:133 msgid "Invalid file type." -msgstr "" +msgstr "Ungültiger Dateityp." #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" @@ -284,7 +284,7 @@ msgstr "Bestätigen" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" -msgstr "" +msgstr "Passwort wiederherstellen" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 msgid "Send instructions" @@ -409,7 +409,7 @@ msgstr "%(username)ss Medien" #: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" -msgstr "" +msgstr "Von %(username)s am %(date)s" #: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo index 8f37922f516674ff72c9a1ffbc37fb0ece113507..3e0a84bf3c263d1fcca55f045823f7aac1023cb0 100644 GIT binary patch delta 610 zcmXZZPbhC{s2zmUQog^o%lmnL&)f4p&+~gfL+_!>qq1bPh}_yl>hKLK@CPmUhYi?d z7pX=U8qkX!IEs}RLRA;WHjH8|?xCtb#Vt&u`mUo(q#eh)Bq>bfWF^j6zz}a?{%$jE$)6&%I5;d0!a=J^)7sVysbyzHQch|uM>qAJ z+$A}fQn*S|ii3kcC%#W}`aI9`_WYjT^Lw8cUl&gg%d*WPa@8i{z!$XPH#)JTU8D}1 zuoAs!!4Yi5F|5EP)V?U{c`2;MeboLuZlZ~LZf}Q33kEwREA<2s3To#6!y(p^n^=Pv z|MdrKApgQybht!DF@hdEM(w-734B5;x;l%4J*b1HunJc?v&EaQQwUMmMlTj{0e^7- z7rI1-aS!|P5_RAYPGeWM$Puoi_B(n+%5fYsIEg+yM}4tRWCxLKuLwQjLTw14Zajy& zNfdR%4Epg52k{+e(A8Ibxh)KmA7CTiBg@MNHlfqawirOYNDlQ^Itv7)1h;6%JG9}W zd18I5vHA_)(6BFH=A3T3EfiZ`HR6d4^SUixZp5N%=|tR!EE`F!Cu8CBop3xICQPJ^ Lji|ZXGjI6=@>^AV diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po index e5c6356e..c3c29b89 100644 --- a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" "POT-Creation-Date: 2011-12-04 10:24-0600\n" -"PO-Revision-Date: 2011-12-04 19:15+0000\n" +"PO-Revision-Date: 2011-12-06 20:04+0000\n" "Last-Translator: aleksejrs \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -252,7 +252,7 @@ msgid "" "To add your own media, place comments, save your favourites and more, you " "can log in with your MediaGoblin account." msgstr "" -"Por aldoni viajn proprajn dosierojn, fari liston de plej plaĉantaj por vi, " +"Por aldoni viajn proprajn dosierojn, fari al vi liston de la plej plaĉaj, " "ks, vi povas ensaluti je via MediaGoblina konto." #: mediagoblin/templates/mediagoblin/root.html:31 @@ -272,7 +272,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" -msgstr "Plej nove aldonitaj dosieroj" +msgstr "Laste aldonitaj dosieroj" #: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 msgid "Enter your new password" diff --git a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo index bed6aab8a3cc20c7410f280e4435a62226c9a104..0f7f4026aafb3f78d9f6d073c48985f57dc924e7 100644 GIT binary patch delta 1247 zcmXZaOK4PQ6u|K_6DMgV8XFyBeAM|Sk1?7tYJ9}{NQ|xV1sXJq#6sXYxs%*5b4Tai zQKG_tpitcicj2am4yB5^v7JKEwuX*H5bUZOp@kx1yQx?oAao)A4{E?XfI z!9Q>TKE@_|jkQ=Cmy)y)%!`XG!6a&;o!E*as0YvBJUoYb?(+NpZ(xG;Z@3YkBfU$z znQe3c>sar{Wq24rL>K$8WJ)4u3GTA-1hiI8l zDLzD<$Un#> zp^n-8Hf&&>Lfzkj+Tc;t26C9ibEtKmqc&0s@wL{}~AIqo-zD1@h_c4Nh z<0$@%I?BP7BJ1%yuEHO12R_DHjCanCK8bqsUTmbk93apeAH`ibjyk$)ID+?aAI8bL z9Uas{S8+8y!Xd0-aT$lP2cKdcwseVHM1u$LCh7#=*nm5* z5%*QD*F9^h+hlq+Z0%WB`EtpXaC5c%iRC$F($3{Q`keW)oFjSg7_%cQN`F~=$xKNw1M1g}hUxabBA ziPpK%=n=;pCx>Tw!QDh>uVrk{w@prWrff59JZGY4^J|loGR7}h-bCJH?5uOTTlVI& zR*J%vrLDh*!!+=${Z*`596U7F)H0JCJ!u!5jFTpz@r!0W_$9tD80>!Y E4g##w$N&HU delta 1226 zcmXZbOGs2v9LMo9>Nu&SX`^L1ddA17HBMNAQlwI0Sw=+<${^!3bFE9`z0x39agCHNZ)(H9b;8~r#Bd(gyGf)D3*V zAQm+XK`ClcuiJwQF`1*#51v3BjfXn=o2WOsGdDkjI{Nomgr87%{%vkP*djz3;}Gik zcGQs%qCUVdrqIO-e1lvf_l56jiW-ikJCCA{azE-DFQ8uFI_hXA(T~q?2w$L%va^*B zrm-DwU=KdQVk~W&jlL3f=Z#p-{-TRQcifNbaXaehF5^DDi<_~ORoCKf)EiyGWjKvH z@H1Y-J|vtii3g6BF2n_iz*b z!fn_~Z2F}=k2;Z?s2li)oJrKjW`D{7JkIziuEuxh(~*XFg9@+#%dip4F_ym__*5B) z%g(Mf@zwe9+N%ZgHz?PX8N(ShE#>C7)Rh+o*G=EIq-D#DX;_9UvzF?UUb>;lpD?HM zR{mPUq_0v&Wm-8(Ce-L5Q#sQ04uo5L%JYS*SGiefsWIcQO4`mE+0r&\n" "Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mediagoblin/team/es/)\n" "MIME-Version: 1.0\n" @@ -83,12 +83,12 @@ msgstr "" #: mediagoblin/auth/views.py:203 msgid "You must be logged in so we know who to send the email to!" msgstr "" -"Debes iniciar sesión para que podamos saber a quién le enviamos el correo " +"¡Debes iniciar sesión para que podamos saber a quién le enviamos el correo " "electrónico!" #: mediagoblin/auth/views.py:211 msgid "You've already verified your email address!" -msgstr "Ya haz verificado tu dirección de email!" +msgstr "¡Ya has verificado tu dirección de correo!" #: mediagoblin/auth/views.py:224 msgid "Resent your verification email." @@ -113,7 +113,7 @@ msgstr "Etiquetas" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 msgid "Seperate tags by commas." -msgstr "Separar etiquetas por comas." +msgstr "Separa las etiquetas con comas." #: mediagoblin/edit/forms.py:33 msgid "Slug" @@ -164,7 +164,7 @@ msgstr "Contraseña incorrecta" #: mediagoblin/edit/views.py:192 msgid "Profile edited!" -msgstr "Perfil editado!" +msgstr "¡Perfil editado!" #: mediagoblin/media_types/__init__.py:65 msgid "Could not find any file extension in \"{filename}\"" @@ -184,7 +184,7 @@ msgstr "Debes proporcionar un archivo." #: mediagoblin/submit/views.py:127 msgid "Woohoo! Submitted!" -msgstr "¡Woohoo! ¡Enviado!" +msgstr "¡Yujú! ¡Enviado!" #: mediagoblin/submit/views.py:133 msgid "Invalid file type." @@ -192,7 +192,7 @@ msgstr "Tipo de archivo inválido." #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" -msgstr "Ups!" +msgstr "¡Ups!" #: mediagoblin/templates/mediagoblin/404.html:24 msgid "There doesn't seem to be a page at this address. Sorry!" @@ -220,7 +220,7 @@ msgstr "Enviar contenido" #: mediagoblin/templates/mediagoblin/base.html:65 msgid "Verify your email!" -msgstr "Verifica tu email!" +msgstr "¡Verifica tu email!" #: mediagoblin/templates/mediagoblin/base.html:72 msgid "log out" @@ -246,7 +246,7 @@ msgstr "Explorar" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, welcome to this MediaGoblin site!" -msgstr "Hola, bienvenido a este sitio de MediaGoblin!" +msgstr "Hola, ¡bienvenido a este sitio de MediaGoblin!" #: mediagoblin/templates/mediagoblin/root.html:28 msgid "" @@ -267,7 +267,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/root.html:31 msgid "Don't have one yet? It's easy!" -msgstr "Aún no tienes una? Es fácil!" +msgstr "¿Aún no tienes una? ¡Es fácil!" #: mediagoblin/templates/mediagoblin/root.html:32 #, python-format @@ -325,10 +325,13 @@ msgid "" "If you think this is an error, just ignore this email and continue being\n" "a happy goblin!" msgstr "" -"Hola %(username)s , para cambiar su contraseña de GNU MediaGoblin, abra la " -"siguiente URL en su navegador: %(verification_url)s Si usted piensa que " -"esto es un error, simplemente ignore este mensaje y siga siendo un duende " -"feliz!" +"Hola %(username)s,\n" +"\n" +"Para cambiar tu contraseña de GNU MediaGoblin, abre la siguiente URL en un navegador:\n" +"\n" +"%(verification_url)s \n" +"\n" +"Si piensas que esto es un error, simplemente ignora este mensaje y sigue siendo un trasgo feliz." #: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" @@ -373,7 +376,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/edit/edit.html:29 #, python-format msgid "Editing %(media_title)s" -msgstr "Edición %(media_title)s " +msgstr "Editando %(media_title)s " #: mediagoblin/templates/mediagoblin/edit/edit.html:36 #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:49 @@ -442,7 +445,7 @@ msgstr "Borrar" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" -msgstr "Realmente deseas eliminar %(title)s ?" +msgstr "¿Realmente deseas eliminar %(title)s?" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 msgid "Delete Permanently" @@ -488,7 +491,7 @@ msgstr "Es necesario un correo electrónico de verificación" #: mediagoblin/templates/mediagoblin/user_pages/user.html:53 msgid "Almost done! Your account still needs to be activated." -msgstr "Casi terminas! Solo falta activar la cuenta." +msgstr "¡Casi hemos terminado! Solo falta activar la cuenta." #: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "" diff --git a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo index 95d6d0ae141c335275f075991429810f61f667ac..87e627644267845f356f4b3163792eb54d3f7bbf 100644 GIT binary patch delta 1566 zcmYk*TWDNG9LMol+ve8Ps;zC)nq<;k+N9f6H@3vkVl}Ojk{Cm(l!}(g?qoBvIkP!u zcM&N>D)ynESk_BXEUra@#Y%Ch5ReL8eUXY{p@NFnii%Ld7oWU*|Jk5I;4^d1?EHW8 zpPWmFt{gmfb=lmnF{Q3eG!%t;ZknC;St4$b6GhH{hmQl)4?`xECMAK|GC( z`1O)M<4)$kV*~cKDm8{lT!}||@OtLMSceC39Uexq zsUqHtCs6j8M_KnKuEKN3+0+GW$ItO5`~x>*Q~O+PgYCSPq(fMbBe(_+plmda(upEI zj&I?Y*sYc7!B~e)Xza||T$7bqwB4i^(5zg110 zwGHAZ8;qa?djy+s7Nzw^P&Pb<%~)P~|28gXzJRjd1(bt+i_+=2Ul>S>enSb+&{ZqY zhMsv6<*r^wu2a3UH2(zUWZ&Qx{2L|UmhRf`2T%fypma2Y52D8b{19)YzWR$noCgW| zcn3a=(vjy-TK^Kt#&4kf^Sq04;){4MUP1}7h7{x2kGt?`9Kws(k9FJ+8Py<4ki+;S z_0@R>xA9tgjXI+Y_A`(Zj36I?%A&OTIA(Dk`BQ6YlLXs?*Wo?568GV99FJGd)L*-CMY4ae zKUsRUW&H*prSz^SNGAgCBD*IuV_Y_o@-vmoEuSrm>C%g?IQIMOD_yNpqz#znel zv(sLU`CO#Nawe`LThPR|LB3jcUfU>d*r8~iaK6;rmFO~|F3kM9B6MCo;8_#?|4}LE zidNZh%4Ica^M)wbx;8f#ayDdPw3w!~`_Q&g6Qp_If+!yrs`J(JHc}HdXJl30WFnpO zp)R^GQ^=N1bx#iLwNa{&&Dpp_C`5&7nfg+gn32_1dafUsJYe-8?wk$F84LYS|0ML>KVG3wRvCQR%WVa>32fu()M`Aowc`8 zp=d)lB>Wt~+fuc~KLKCpVq+O(Q5E>!;jlt(~2 delta 1314 zcmX}rduUU46u|LQ`_gvNwmxdDO|N}uW3=l-%PhW_MX8T=ZVW|4NPBN%SjcUYn`YS< z@edIdipmdP10M(~6ht9{BIq9*iZDSKzSva8P(<*B{xzB6_cYxgYYI*A+jJ^qV-V$u=` z;>I~5P52Y;#WT1ITiJ!L%4O6EKEV0-9JP^Ynflzx=AoXX8TErMq=sxlEs#bna1^z% zQTz-rhGmBX0h&oY6{SE5q`q0He)Vul% zxlVb5+K8_)*O(vY5idv04`4Z_Q0wkNo#-k27DrJhDRV_WXMgEnv4D607oou-youV# zZPdb#P_N<@>WSauYAj%PozObmh~ME-yo#&vJ+|X=?uXtbj@rm!+`<0xl0^%NSRmKw z2}}^5#kE+?g^isI^=eY6h4x}Go=0u;66yr6<1)O1`tPXV2eJY;U=NO<{)iu9XD^F) zEc67;jDe-}px)IF7{w#w`ND-F`NXX_0T*K_eu3IZ7n<9%W@LXUzE@t@+R@q8ZjMz| z*7m2IzCI^zEgfI1w37)h-5+(6cC#A~XKz*go^Sd}+RVwC%SByI)bSj%&EIWymo}M; z{);7RT+4HdF9=);ZQVUTLY1(V|nR8$2_R}xztHnUxgBh zlpD9rkM(nB_eO0V&Lw0+D3Y*-o#=K~dfmZ<`Le9ZJg=`eBV|>ltzpO)cgKo3cEodR zbD^Qm=MK~Qf6tr84O`6q@}LPfZZkaw}hgUAfkr4IZry#cT\n" +"PO-Revision-Date: 2011-12-04 23:32+0000\n" +"Last-Translator: osc \n" "Language-Team: Portuguese (Brazilian) (http://www.transifex.net/projects/p/mediagoblin/team/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -59,7 +59,7 @@ msgstr "Desculpe, um usuário com este nome já existe." #: mediagoblin/auth/views.py:77 msgid "Sorry, a user with that email address already exists." -msgstr "" +msgstr "Desculpe, um usuário com esse email já esta cadastrado" #: mediagoblin/auth/views.py:179 msgid "" @@ -75,11 +75,11 @@ msgstr "A chave de verificação ou nome usuário estão incorretos." #: mediagoblin/auth/views.py:203 msgid "You must be logged in so we know who to send the email to!" -msgstr "" +msgstr " " #: mediagoblin/auth/views.py:211 msgid "You've already verified your email address!" -msgstr "" +msgstr "Você já verifico seu email!" #: mediagoblin/auth/views.py:224 msgid "Resent your verification email." @@ -103,7 +103,7 @@ msgstr "Etiquetas" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 msgid "Seperate tags by commas." -msgstr "" +msgstr "Separar tags por virgulas." #: mediagoblin/edit/forms.py:33 msgid "Slug" @@ -129,11 +129,11 @@ msgstr "Website" #: mediagoblin/edit/forms.py:49 msgid "Old password" -msgstr "" +msgstr "Senha antiga" #: mediagoblin/edit/forms.py:52 msgid "New Password" -msgstr "" +msgstr "Nova Senha" #: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." @@ -149,15 +149,15 @@ msgstr "Você está editando um perfil de usuário. Tenha cuidado." #: mediagoblin/edit/views.py:171 msgid "Wrong password" -msgstr "" +msgstr "Senha errada" #: mediagoblin/edit/views.py:192 msgid "Profile edited!" -msgstr "" +msgstr "Perfil editado!" #: mediagoblin/media_types/__init__.py:65 msgid "Could not find any file extension in \"{filename}\"" -msgstr "" +msgstr " " #: mediagoblin/submit/forms.py:25 msgid "File" @@ -177,7 +177,7 @@ msgstr "Eba! Enviado!" #: mediagoblin/submit/views.py:133 msgid "Invalid file type." -msgstr "" +msgstr "Tipo de arquivo inválido." #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" @@ -209,11 +209,11 @@ msgstr "Enviar mídia" #: mediagoblin/templates/mediagoblin/base.html:65 msgid "Verify your email!" -msgstr "" +msgstr "Verifique seu email!" #: mediagoblin/templates/mediagoblin/base.html:72 msgid "log out" -msgstr "" +msgstr "Sair" #: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 @@ -235,7 +235,7 @@ msgstr "Explorar" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, welcome to this MediaGoblin site!" -msgstr "" +msgstr "Olá, bemvindo ao site de MediaGoblin." #: mediagoblin/templates/mediagoblin/root.html:28 msgid "" @@ -247,11 +247,11 @@ msgstr "" msgid "" "To add your own media, place comments, save your favourites and more, you " "can log in with your MediaGoblin account." -msgstr "" +msgstr " " #: mediagoblin/templates/mediagoblin/root.html:31 msgid "Don't have one yet? It's easy!" -msgstr "" +msgstr " " #: mediagoblin/templates/mediagoblin/root.html:32 #, python-format @@ -276,11 +276,11 @@ msgstr "Enviar" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" -msgstr "" +msgstr "Recuperar senha" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 msgid "Send instructions" -msgstr "" +msgstr "Mandar instruções" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." @@ -383,7 +383,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/media_displays/video.html:19 msgid "Original" -msgstr "" +msgstr "Original" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" @@ -406,7 +406,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" -msgstr "" +msgstr "Postar um comentário" #: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" @@ -414,15 +414,15 @@ msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" -msgstr "" +msgstr "Postar comentário!" #: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" -msgstr "" +msgstr "Editar" #: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" -msgstr "" +msgstr "Apagar" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format @@ -556,7 +556,7 @@ msgstr "Mais velho" #: mediagoblin/templates/mediagoblin/utils/pagination.html:50 msgid "Go to page:" -msgstr "" +msgstr "Ir a página:" #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" @@ -564,7 +564,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 msgid "and" -msgstr "" +msgstr "e" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" @@ -576,15 +576,15 @@ msgstr "Eu tenho certeza de que quero pagar isso" #: mediagoblin/user_pages/views.py:155 msgid "Oops, your comment was empty." -msgstr "" +msgstr "Opa, seu comentáio estava vazio." #: mediagoblin/user_pages/views.py:161 msgid "Your comment has been posted!" -msgstr "" +msgstr "Seu comentário foi postado!" #: mediagoblin/user_pages/views.py:183 msgid "You deleted the media." -msgstr "" +msgstr "Você deletou a mídia." #: mediagoblin/user_pages/views.py:190 msgid "The media was not deleted because you didn't check that you were sure." diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo index 0e34144d2509f5c2236c8289db8299e66f3a9788..7e62de833735c4958ffc9e0b1597f4c2732596b4 100644 GIT binary patch delta 213 zcmXBNzY0MC0L9_sPnT>aDbf{TVY=LVDG#7zlSwRg6QvB2GI;?bC5yVN@(NOHlFexF z0Ddujoim*C7(GXak1;iUQp=LMl7?j|f){My9ZOiKNMY)tN(js_jqvb}ZOPWaD9 I?`kcLFW=cBh5!Hn delta 210 zcmXBNArAoo0LAflX2&$iY;HHV9gSdjID7(vCL*aOoy{iP6u~!;DA#P4eFwoN2&RdG z58yx2Z|{Zop5Y@reay9ONJCE=OPc#q4lmfpJJzwX``5t&*~K#Uk~s6ur<;M-NcP26DY\n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -251,7 +251,7 @@ msgid "" "To add your own media, place comments, save your favourites and more, you " "can log in with your MediaGoblin account." msgstr "" -"Для добавления собственных файлов, комментирования, ведения списка любиых " +"Для добавления собственных файлов, комментирования, ведения списка любимых " "файлов и т. п. вы можете представиться с помощью вашей MediaGoblin’овой " "учётной записи." diff --git a/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.mo index 4e71eaa73ef7d50018f120429c17906180963b8d..5ab7befa15e400d1a9754a72ea90210648fec115 100644 GIT binary patch delta 2451 zcmaLXTWnNC7zglaNograDaxg-rL*)x3)=#%f?UfY1Y(pW+@eG=vwH^i?Cv?UIk&Kl zxFPD3HpCo#Fa~u)e5gqYNxcxXi{x}kNCAx~30^`pXrl1}UyM;7{C~UK0-DGJzcaJv z%zX2G-*out8_%4%H6wSaim_XZ8S7w-oo+6B4bH;+A25RX>IWHXfZO02xDW1tFT*YH zTIKf#S{a*xaR=N0yI~#FpnwLP1wVtd-i=n4W1I2tGbT>L?j_|HF2Y8PKZp0jAK+~G zdu3eR#@GUk7gh|z9*nm_+As}i0~aoWFTq}T64JVpkPiG^Tdw>PuzXCbNH{o2!y2>eRfS6(rL7G1Zsbo6j@ED|%z6B4$ z58U+=_w0^wet1yc3dH4eQk2RoxYcb)&nQ#*3;TMo1byk!EI18z%CLt~S4V(=ZV0T;q z7J?M;X1EPTA+7rwd>CGa+hH}Lp@HtqE$pQExtb%7N zo`dw=Cy)ZUGB#5CYh&H&RlI*-{i=2T$)-iz5SF8xeB+RCEEP}mmB(9-7(!3?#g*Y- zYx=t5Krrrj%F6PLa*Ksv)Dw=JCz zp0(YWp*#NV+V(?TN1P1@vb2<5e3!@MP$n%LGZ^Q=xrt%v(AO&ky;RSq|B1AWsk_Gi zvxTf%y@|fwo3W%936pEKdoCl_ESqk z)r_dd{R?%=>bS=zhJ`KtrL8Ac??NPL#SK*~n864)gM8A)^2LHKG}Gl7D;UivJb2s= z&c&1^{jXZTogLL|#|rW$j_iN5B+|dVn0I9PBZ+vV5#)>cLH?NJj^atFnM!lxiC`qe z_Gc{N(Pu4fla0YJ?S=5mtEJqr+if3Ibw?5^8Rnkuh$Q{!$Rt*|`@ogg$F7Fnu3ETD z+K4jmnOW{+GnFu1|M~Vq3#MzVhD?EK&u9N09)<~Nr=M_5x6 zj0VNLE?FcglA+T7VU8jvc}f}5bb`FakvPgven>O3eJpC}M|7mmKh@FReo)wHs?zk! z>_0R9_Z`RTxl8FlT;u-X&i1*{n5if^m8c4xoqnNn&A`;Rx`{MfZYqwrqMC+w<(LRY zofLJkq2kI#Wp!btvVLoqyLGoEGeLf0IDBu9bDLYrGeruo%U-$^%EP13ENMgB1}=~4 zw&NzHf3fTOf#_YyW5svM8?s7nQEbYCsx$;0C5)n_)I=erIBGr~6KT{CsS`+td04m5 z9C2MB!lto??xR(Uf;`GwDXF*4)+K3C80Ijy37JDi1xDM&C>NaJo`7?M_eI zh+D@uDmGC-|I_g>%HYc2hR77h&C^9Z%x%F9*A7ODdD=3O4)S)03TfkHw1ja_|I(iZ z2Y-joE`O>%itEa49hLBxtkCC8ceAWC!Rssj%uVI`-6(ya>2(jJDPGucauUwx#wy#vM^7sDE-Z}l$7T8~K wOAK*^pz&osRC@1D@=AB2v^ll(`rh|BQ%pzM1sW5Lic6TvGNqLgM0scb0J;&z761SM delta 1416 zcmX}qeP~r>9KiA4ZMr*Md%1IV-RnJb_wL2rY@52-8t7N%DIvQEB}6PWBzhs3e`EzYE&C%O%|N1}@6!&!;e3A2bDo#q z^Lx&>&ra`s|3<<1WuM56H6oQFa;91&jGy97yor7Ib&W_F25LpRumQK@9^8s^sJ~ys z0=$iS+#gtk(K-LHT?h3+kA%jT2Arm&n2veW8-0m-;DXoxGg1V(gRfz! z!AYpx+t^0?L<3d9Z+K1O?>LOvwIUDWkH}Q1ZWQUn9<0F8af15^CQzSf8YzOjgH&JU zQBV9H%keL)!V=Qg^P16*8!>{tUVjXA>1|w&hf%Nlg4aLe^^cz*&>OvrrT7_^;1zW7 zI_kUH!|DbeM4iYK@=1;%k9@*Q&;JQ^J+HLi>;(U4~It;AQN`H&L(q9qJRWBFo2c z2R?vDv1cd2NdkS+Ysgr+gZi%ON&9*1#SQoo7T_(s4{xKMcNhJ*Jb&8%YoMroqtVgT z)44&-Rs}=*$E;Y)a*SRt*c#7f+}!?@osF-zorGGbx>^%y$!07kZH`*4ndXc!YQ>YL z3_A9KWJFVQ?=B8RoHK(EZ0)LP@j6GIIOav z&sT1@4c9gfnF%XDXq@w@#gb^geeH}dup|APnM%eD7PbsGcgRwUjr-KcWgRLTt|_+0 zj6pM#8MB?ZIu?GYdRHpWB1;|eq-#2tjwdbY8#aekUwNylh%~6F@{k&e@YN`N@`}K9#SWP-@*4m0ayAw{3UHGnSJ)kTY_2)-fz~r7c;y+p*J$|1(nq(LdFZ z;1gwoc4j2!rjthI!ugo(s9V9E%D?`DP&zKAE6EW%Z5kJ++0DE-J(81@oiOaIEB^v+ C4-QEH diff --git a/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.po index a44f7866..34cf1679 100644 --- a/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.po @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" "POT-Creation-Date: 2011-12-04 10:24-0600\n" -"PO-Revision-Date: 2011-12-04 16:23+0000\n" -"Last-Translator: cwebber \n" +"PO-Revision-Date: 2011-12-10 23:09+0000\n" +"Last-Translator: martin \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -57,7 +57,7 @@ msgstr "Prepáč, rovnaké prihlasovacie meno už niekto používa." #: mediagoblin/auth/views.py:77 msgid "Sorry, a user with that email address already exists." -msgstr "" +msgstr "Prepáč, používateľ s rovnakou e-mailovou adresou už existuje." #: mediagoblin/auth/views.py:179 msgid "" @@ -73,11 +73,11 @@ msgstr "Nesprávny overovací kľúč alebo používateľské ID" #: mediagoblin/auth/views.py:203 msgid "You must be logged in so we know who to send the email to!" -msgstr "" +msgstr "Aby sme ti mohli zaslať e-mail, je potrebné byť prihláseným!" #: mediagoblin/auth/views.py:211 msgid "You've already verified your email address!" -msgstr "" +msgstr "Tvoja e-mailová adresa už bola raz overená!" #: mediagoblin/auth/views.py:224 msgid "Resent your verification email." @@ -101,7 +101,7 @@ msgstr "Štítky" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 msgid "Seperate tags by commas." -msgstr "" +msgstr "Oddeľ štítky pomocou čiarky." #: mediagoblin/edit/forms.py:33 msgid "Slug" @@ -126,11 +126,11 @@ msgstr "Webstránka" #: mediagoblin/edit/forms.py:49 msgid "Old password" -msgstr "" +msgstr "Staré heslo" #: mediagoblin/edit/forms.py:52 msgid "New Password" -msgstr "" +msgstr "Nové heslo" #: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." @@ -146,15 +146,15 @@ msgstr "Upravuješ používateľský profil. Pristupuj opatrne." #: mediagoblin/edit/views.py:171 msgid "Wrong password" -msgstr "" +msgstr "Nesprávne heslo" #: mediagoblin/edit/views.py:192 msgid "Profile edited!" -msgstr "" +msgstr "Profil upravený!" #: mediagoblin/media_types/__init__.py:65 msgid "Could not find any file extension in \"{filename}\"" -msgstr "" +msgstr "Nebolo možné nájsť žiadnu príponu v súbore \"{filename}\"" #: mediagoblin/submit/forms.py:25 msgid "File" @@ -174,7 +174,7 @@ msgstr "Juchú! Úspešne vložené!" #: mediagoblin/submit/views.py:133 msgid "Invalid file type." -msgstr "" +msgstr "Nesprávny typ súboru." #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" @@ -206,11 +206,11 @@ msgstr "Vložiť výtvor" #: mediagoblin/templates/mediagoblin/base.html:65 msgid "Verify your email!" -msgstr "" +msgstr "Over si e-mail!" #: mediagoblin/templates/mediagoblin/base.html:72 msgid "log out" -msgstr "" +msgstr "odhlásenie" #: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 @@ -232,23 +232,27 @@ msgstr "Preskúmať" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, welcome to this MediaGoblin site!" -msgstr "" +msgstr "Ahoj, vitaj na tejto MediaGoblin stránke!" #: mediagoblin/templates/mediagoblin/root.html:28 msgid "" "This site is running MediaGoblin, an " "extraordinarily great piece of media hosting software." msgstr "" +"Táto stránka používa MediaGoblin, " +"výnimočne skvelý kus softvéru na hostovanie médií." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "" "To add your own media, place comments, save your favourites and more, you " "can log in with your MediaGoblin account." msgstr "" +"Pre pridanie vlastných výtvorov, vloženie komentárov, uloženie svojich " +"obľúbených položiek a viac, sa musíš prihlásiť so svojim MediaGoblin účtom." #: mediagoblin/templates/mediagoblin/root.html:31 msgid "Don't have one yet? It's easy!" -msgstr "" +msgstr "Ešte žiaden nemáš? Je to jednoduché!" #: mediagoblin/templates/mediagoblin/root.html:32 #, python-format @@ -257,6 +261,9 @@ msgid "" " or\n" " Set up MediaGoblin on your own server" msgstr "" +"<a class=\"header_submit_highlight\" href=\"%(register_url)s\">Vytvoriť bezplatný účet</a>\n" +" alebo\n" +" <a class=\"header_submit\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Sprevádzkovať MediaGoblin na vlastnom serveri</a>" #: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" @@ -273,11 +280,11 @@ msgstr "Vložiť" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" -msgstr "" +msgstr "Obnoviť heslo" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 msgid "Send instructions" -msgstr "" +msgstr "Zaslať inštrukcie" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." @@ -377,11 +384,11 @@ msgstr "Úprava profilu, ktorý vlastní %(username)s" #: mediagoblin/templates/mediagoblin/listings/tag.html:35 #, python-format msgid "Media tagged with: %(tag_name)s" -msgstr "" +msgstr "Výtvory označené s: %(tag_name)s" #: mediagoblin/templates/mediagoblin/media_displays/video.html:19 msgid "Original" -msgstr "" +msgstr "Originál" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" @@ -390,7 +397,7 @@ msgstr "Vlož svoj výtvor" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" -msgstr "" +msgstr "Výtvory používateľa %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format @@ -400,27 +407,27 @@ msgstr "Výtvory, ktoré vlastní %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" -msgstr "" +msgstr "Od %(username)s v čase %(date)s" #: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" -msgstr "" +msgstr "Zaslať komentár" #: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" -msgstr "" +msgstr "o" #: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" -msgstr "" +msgstr "Zaslať komentár!" #: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" -msgstr "" +msgstr "Upraviť" #: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" -msgstr "" +msgstr "Odstrániť" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format @@ -552,15 +559,15 @@ msgstr "Staršie" #: mediagoblin/templates/mediagoblin/utils/pagination.html:50 msgid "Go to page:" -msgstr "" +msgstr "Ísť na stránku:" #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" -msgstr "" +msgstr "Označené s" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 msgid "and" -msgstr "" +msgstr "a" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" @@ -572,19 +579,19 @@ msgstr "Jednoznačne to chcem odstrániť" #: mediagoblin/user_pages/views.py:155 msgid "Oops, your comment was empty." -msgstr "" +msgstr "Ajaj, tvoj komentár bol prázdny." #: mediagoblin/user_pages/views.py:161 msgid "Your comment has been posted!" -msgstr "" +msgstr "Tvoj komentár bol zaslaný!" #: mediagoblin/user_pages/views.py:183 msgid "You deleted the media." -msgstr "" +msgstr "Výtvor bol odstránený tebou." #: mediagoblin/user_pages/views.py:190 msgid "The media was not deleted because you didn't check that you were sure." -msgstr "" +msgstr "Výtvor nebol odstránený, nakoľko chýbala tvoja konfirmácia." #: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." From e91a4dcb738f28fe75d0387175e97dc16ea977fb Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Mon, 12 Dec 2011 10:48:24 -0500 Subject: [PATCH 1285/2731] Tweak rest formatting --- docs/source/media-types.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/source/media-types.rst b/docs/source/media-types.rst index 809efe07..76478143 100644 --- a/docs/source/media-types.rst +++ b/docs/source/media-types.rst @@ -15,13 +15,13 @@ Video To enable video, first install gstreamer and the python-gstreamer bindings (as well as whatever gstremaer extensions you want, -good/bad/ugly). On Debianoid systems: +good/bad/ugly). On Debianoid systems:: sudo apt-get install python-gst0.10 -Next, modify (and possibly copy over from mediagoblin.ini) your -mediagoblin_local.ini. Uncomment this line in the [mediagoblin] -section: +Next, modify (and possibly copy over from ``mediagoblin.ini``) your +``mediagoblin_local.ini``. Uncomment this line in the ``[mediagoblin]`` +section:: media_types = mediagoblin.media_types.image, mediagoblin.media_types.video From a46f645e7fc724547979ced22c8f9b7aa4ae0d51 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Mon, 12 Dec 2011 11:12:59 -0500 Subject: [PATCH 1286/2731] Fix doc footer This has the correct copyright statement. --- docs/source/_templates/mg_theme/layout.html | 39 --- .../_templates/mg_theme/static/default.css_t | 299 ------------------ docs/source/_templates/mg_theme/theme.conf | 31 -- docs/source/conf.py | 7 +- docs/source/themes/mg/layout.html | 29 ++ docs/source/themes/mg/theme.conf | 5 + 6 files changed, 38 insertions(+), 372 deletions(-) delete mode 100644 docs/source/_templates/mg_theme/layout.html delete mode 100644 docs/source/_templates/mg_theme/static/default.css_t delete mode 100644 docs/source/_templates/mg_theme/theme.conf create mode 100644 docs/source/themes/mg/layout.html create mode 100644 docs/source/themes/mg/theme.conf diff --git a/docs/source/_templates/mg_theme/layout.html b/docs/source/_templates/mg_theme/layout.html deleted file mode 100644 index eccda14b..00000000 --- a/docs/source/_templates/mg_theme/layout.html +++ /dev/null @@ -1,39 +0,0 @@ -{# - default/layout.html - ~~~~~~~~~~~~~~~~~~~ - - Sphinx layout template for the default theme. - - :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. - :license: BSD, see LICENSE for details. -#} -{% extends "basic/layout.html" %} - -{% if theme_collapsiblesidebar|tobool %} -{% set script_files = script_files + ['_static/sidebar.js'] %} -{% endif %} - -{%- block footer %} - - - -{%- endblock %} diff --git a/docs/source/_templates/mg_theme/static/default.css_t b/docs/source/_templates/mg_theme/static/default.css_t deleted file mode 100644 index f200a0fe..00000000 --- a/docs/source/_templates/mg_theme/static/default.css_t +++ /dev/null @@ -1,299 +0,0 @@ -/* - * default.css_t - * ~~~~~~~~~~~~~ - * - * Sphinx stylesheet -- default theme. - * - * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -@import url("basic.css"); - -/* -- page layout ----------------------------------------------------------- */ - -body { - font-family: {{ theme_bodyfont }}; - font-size: 100%; - background-color: {{ theme_footerbgcolor }}; - color: #000; - margin: 0; - padding: 0; -} - -div.document { - background-color: {{ theme_sidebarbgcolor }}; -} - -div.documentwrapper { - float: left; - width: 100%; -} - -div.bodywrapper { - margin: 0 0 0 230px; -} - -div.body { - background-color: {{ theme_bgcolor }}; - color: {{ theme_textcolor }}; - padding: 0 20px 30px 20px; -} - -{%- if theme_rightsidebar|tobool %} -div.bodywrapper { - margin: 0 230px 0 0; -} -{%- endif %} - -div.footer { - color: {{ theme_footertextcolor }}; - width: 100%; - padding: 9px 0 9px 0; - text-align: center; - font-size: 75%; -} - -div.footer a { - color: {{ theme_footertextcolor }}; - text-decoration: underline; -} - -div.related { - background-color: {{ theme_relbarbgcolor }}; - line-height: 30px; - color: {{ theme_relbartextcolor }}; -} - -div.related a { - color: {{ theme_relbarlinkcolor }}; -} - -div.sphinxsidebar { - {%- if theme_stickysidebar|tobool %} - top: 30px; - bottom: 0; - margin: 0; - position: fixed; - overflow: auto; - height: auto; - {%- endif %} - {%- if theme_rightsidebar|tobool %} - float: right; - {%- if theme_stickysidebar|tobool %} - right: 0; - {%- endif %} - {%- endif %} -} - -{%- if theme_stickysidebar|tobool %} -/* this is nice, but it it leads to hidden headings when jumping - to an anchor */ -/* -div.related { - position: fixed; -} - -div.documentwrapper { - margin-top: 30px; -} -*/ -{%- endif %} - -div.sphinxsidebar h3 { - font-family: {{ theme_headfont }}; - color: {{ theme_sidebartextcolor }}; - font-size: 1.4em; - font-weight: normal; - margin: 0; - padding: 0; -} - -div.sphinxsidebar h3 a { - color: {{ theme_sidebartextcolor }}; -} - -div.sphinxsidebar h4 { - font-family: {{ theme_headfont }}; - color: {{ theme_sidebartextcolor }}; - font-size: 1.3em; - font-weight: normal; - margin: 5px 0 0 0; - padding: 0; -} - -div.sphinxsidebar p { - color: {{ theme_sidebartextcolor }}; -} - -div.sphinxsidebar p.topless { - margin: 5px 10px 10px 10px; -} - -div.sphinxsidebar ul { - margin: 10px; - padding: 0; - color: {{ theme_sidebartextcolor }}; -} - -div.sphinxsidebar a { - color: {{ theme_sidebarlinkcolor }}; -} - -div.sphinxsidebar input { - border: 1px solid {{ theme_sidebarlinkcolor }}; - font-family: sans-serif; - font-size: 1em; -} - - -/* -- hyperlink styles ------------------------------------------------------ */ - -a { - color: {{ theme_linkcolor }}; - text-decoration: none; -} - -a:visited { - color: {{ theme_visitedlinkcolor }}; - text-decoration: none; -} - -a:hover { - text-decoration: underline; -} - -{% if theme_externalrefs|tobool %} -a.external { - text-decoration: none; - border-bottom: 1px dashed {{ theme_linkcolor }}; -} - -a.external:hover { - text-decoration: none; - border-bottom: none; -} -{% endif %} - -/* -- body styles ----------------------------------------------------------- */ - -div.body h1, -div.body h2, -div.body h3, -div.body h4, -div.body h5, -div.body h6 { - font-family: {{ theme_headfont }}; - background-color: {{ theme_headbgcolor }}; - font-weight: normal; - color: {{ theme_headtextcolor }}; - border-bottom: 1px solid #ccc; - margin: 20px -20px 10px -20px; - padding: 3px 0 3px 10px; -} - -div.body h1 { margin-top: 0; font-size: 200%; } -div.body h2 { font-size: 160%; } -div.body h3 { font-size: 140%; } -div.body h4 { font-size: 120%; } -div.body h5 { font-size: 110%; } -div.body h6 { font-size: 100%; } - -a.headerlink { - color: {{ theme_headlinkcolor }}; - font-size: 0.8em; - padding: 0 4px 0 4px; - text-decoration: none; -} - -a.headerlink:hover { - background-color: {{ theme_headlinkcolor }}; - color: white; -} - -div.body p, div.body dd, div.body li { - text-align: justify; - line-height: 130%; -} - -div.admonition p.admonition-title + p { - display: inline; -} - -div.admonition p { - margin-bottom: 5px; -} - -div.admonition pre { - margin-bottom: 5px; -} - -div.admonition ul, div.admonition ol { - margin-bottom: 5px; -} - -div.note { - background-color: #eee; - border: 1px solid #ccc; -} - -div.seealso { - background-color: #ffc; - border: 1px solid #ff6; -} - -div.topic { - background-color: #eee; -} - -div.warning { - background-color: #ffe4e4; - border: 1px solid #f66; -} - -p.admonition-title { - display: inline; -} - -p.admonition-title:after { - content: ":"; -} - -pre { - padding: 5px; - background-color: {{ theme_codebgcolor }}; - color: {{ theme_codetextcolor }}; - line-height: 120%; - border: 1px solid #ac9; - border-left: none; - border-right: none; -} - -tt { - background-color: #ecf0f3; - padding: 0 1px 0 1px; - font-size: 0.95em; -} - -th { - background-color: #ede; -} - -.warning tt { - background: #efc2c2; -} - -.note tt { - background: #d6d6d6; -} - -.viewcode-back { - font-family: {{ theme_bodyfont }}; -} - -div.viewcode-block:target { - background-color: #f4debf; - border-top: 1px solid #ac9; - border-bottom: 1px solid #ac9; -} diff --git a/docs/source/_templates/mg_theme/theme.conf b/docs/source/_templates/mg_theme/theme.conf deleted file mode 100644 index 49442e3b..00000000 --- a/docs/source/_templates/mg_theme/theme.conf +++ /dev/null @@ -1,31 +0,0 @@ -[theme] -inherit = basic -stylesheet = default.css -pygments_style = sphinx - -[options] -rightsidebar = false -stickysidebar = false -collapsiblesidebar = false -externalrefs = false - -footerbgcolor = #b11818 -footertextcolor = #ffffff -sidebarbgcolor = #6a0000 -sidebartextcolor = #ffffff -sidebarlinkcolor = #98dbcc -relbarbgcolor = #b11818 -relbartextcolor = #ffffff -relbarlinkcolor = #ffffff -bgcolor = #ffffff -textcolor = #000000 -headbgcolor = #fdeded -headtextcolor = #20435c -headlinkcolor = #c60f0f -linkcolor = #355f7c -visitedlinkcolor = #355f7c -codebgcolor = #eeffcc -codetextcolor = #333333 - -bodyfont = sans-serif -headfont = 'Trebuchet MS', sans-serif diff --git a/docs/source/conf.py b/docs/source/conf.py index eee9900f..f4d194e6 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -28,7 +28,7 @@ sys.path.insert(0, os.path.abspath('.')) extensions = ["mgext.youcanhelp"] # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ['source/_templates'] # The suffix of source filenames. source_suffix = '.rst' @@ -91,7 +91,8 @@ pygments_style = 'sphinx' # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'default' +# html_theme = 'default' +html_theme = 'mg' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the @@ -99,7 +100,7 @@ html_theme = 'default' #html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +html_theme_path = ['themes'] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". diff --git a/docs/source/themes/mg/layout.html b/docs/source/themes/mg/layout.html new file mode 100644 index 00000000..891ed64c --- /dev/null +++ b/docs/source/themes/mg/layout.html @@ -0,0 +1,29 @@ +{# + default/layout.html + ~~~~~~~~~~~~~~~~~~~ + + Sphinx layout template for the default theme. + + :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. + :license: BSD, see LICENSE for details. +#} +{% extends "basic/layout.html" %} + +{% if theme_collapsiblesidebar|tobool %} +{% set script_files = script_files + ['_static/sidebar.js'] %} +{% endif %} + +{%- block footer %} + +{%- endblock %} diff --git a/docs/source/themes/mg/theme.conf b/docs/source/themes/mg/theme.conf new file mode 100644 index 00000000..f4fbd8cc --- /dev/null +++ b/docs/source/themes/mg/theme.conf @@ -0,0 +1,5 @@ +[theme] +inherit = default +stylesheet = default.css +pygments_style = sphinx + From 449f58e446ff50f9c84a99a123bd0225a4907f52 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Mon, 12 Dec 2011 11:41:29 -0500 Subject: [PATCH 1287/2731] Update version numbers --- docs/source/conf.py | 4 ++-- mediagoblin/_version.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index f4d194e6..829679b1 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -48,9 +48,9 @@ copyright = u'2011, Free Software Foundation, Inc and contributors' # built documents. # # The short X.Y version. -version = '0.1.0' +version = '0.2.0' # The full version, including alpha/beta/rc tags. -release = '0.1.0' +release = '0.2.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/mediagoblin/_version.py b/mediagoblin/_version.py index d6c6e20d..7a41cf7c 100644 --- a/mediagoblin/_version.py +++ b/mediagoblin/_version.py @@ -14,4 +14,4 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -__version__ = "0.1.0" +__version__ = "0.2.0" From 6ae878e730e006ab674f12c581af8447a0994a9f Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Mon, 12 Dec 2011 11:52:24 -0500 Subject: [PATCH 1288/2731] Changer version to -dev --- docs/source/conf.py | 4 ++-- mediagoblin/_version.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 829679b1..dce254a1 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -48,9 +48,9 @@ copyright = u'2011, Free Software Foundation, Inc and contributors' # built documents. # # The short X.Y version. -version = '0.2.0' +version = '0.3.0' # The full version, including alpha/beta/rc tags. -release = '0.2.0' +release = '0.3.0-dev' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/mediagoblin/_version.py b/mediagoblin/_version.py index 7a41cf7c..5e3f4e5a 100644 --- a/mediagoblin/_version.py +++ b/mediagoblin/_version.py @@ -14,4 +14,4 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -__version__ = "0.2.0" +__version__ = "0.3.0-dev" From bb298cde80ce60290607012cc742ebb7b53af716 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Wed, 14 Dec 2011 16:18:26 +0100 Subject: [PATCH 1289/2731] Change wording for change_fp; improved the button text --- mediagoblin/templates/mediagoblin/auth/change_fp.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/auth/change_fp.html b/mediagoblin/templates/mediagoblin/auth/change_fp.html index 5677949c..03a6583b 100644 --- a/mediagoblin/templates/mediagoblin/auth/change_fp.html +++ b/mediagoblin/templates/mediagoblin/auth/change_fp.html @@ -26,11 +26,11 @@ {{ csrf_token }}
    -

    {% trans %}Enter your new password{% endtrans %}

    +

    {% trans %}Set your new password{% endtrans %}

    {{ wtforms_util.render_divs(cp_form) }}
    - +
    From cd4b519a78961e2ec33e696e9ee730d916c1e073 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Wed, 14 Dec 2011 16:36:29 +0100 Subject: [PATCH 1290/2731] Remove "X license" placeholder from media page --- mediagoblin/templates/mediagoblin/user_pages/media.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 5760a68c..2c8c5033 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -67,7 +67,7 @@ {% endautoescape %}

    {% trans date=media.created.strftime("%Y-%m-%d") -%} - Added on {{ date }}. Licensed under an X license. + Added on {{ date }}. {%- endtrans %} {% if media['uploader'] == request.user._id or request.user['is_admin'] %} From 31f5c4567fbe8ec04cf649f00d50611aca67036d Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Wed, 14 Dec 2011 16:42:40 +0100 Subject: [PATCH 1291/2731] Change "Submit" to "Add" for ticket #466 --- mediagoblin/templates/mediagoblin/base.html | 2 +- mediagoblin/templates/mediagoblin/submit/start.html | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index b8061f24..41efbc0d 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -52,7 +52,7 @@ {% if request.user and request.user.status == 'active' %} - {% trans %}Submit media{% endtrans %} + {% trans %}Add media{% endtrans %} {% endif %} {% block mediagoblin_header_title %}{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/submit/start.html b/mediagoblin/templates/mediagoblin/submit/start.html index 1a0dd4b7..47914550 100644 --- a/mediagoblin/templates/mediagoblin/submit/start.html +++ b/mediagoblin/templates/mediagoblin/submit/start.html @@ -23,11 +23,11 @@

    -

    {% trans %}Submit yer media{% endtrans %}

    +

    {% trans %}Add your media{% endtrans %}

    {{ wtforms_util.render_divs(submit_form) }}
    {{ csrf_token }} - +
    From 9c1c6c2a61ad23d5b68eb3794e81c5bee7c7cd46 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Thu, 15 Dec 2011 00:46:10 +0100 Subject: [PATCH 1292/2731] Added *very preliminary* support for webfinger --- mediagoblin/routing.py | 4 ++ .../mediagoblin/webfinger/host-meta.xml | 27 +++++++++++ .../templates/mediagoblin/webfinger/xrd.xml | 26 +++++++++++ mediagoblin/webfinger/__init__.py | 15 ++++++ mediagoblin/webfinger/routing.py | 25 ++++++++++ mediagoblin/webfinger/views.py | 46 +++++++++++++++++++ 6 files changed, 143 insertions(+) create mode 100644 mediagoblin/templates/mediagoblin/webfinger/host-meta.xml create mode 100644 mediagoblin/templates/mediagoblin/webfinger/xrd.xml create mode 100644 mediagoblin/webfinger/__init__.py create mode 100644 mediagoblin/webfinger/routing.py create mode 100644 mediagoblin/webfinger/views.py diff --git a/mediagoblin/routing.py b/mediagoblin/routing.py index ae56f8cb..bd727db5 100644 --- a/mediagoblin/routing.py +++ b/mediagoblin/routing.py @@ -21,6 +21,8 @@ from mediagoblin.submit.routing import submit_routes from mediagoblin.user_pages.routing import user_routes from mediagoblin.edit.routing import edit_routes from mediagoblin.listings.routing import tag_routes +from mediagoblin.webfinger.routing import webfinger_well_known_routes, \ + webfinger_routes def get_mapper(): @@ -36,5 +38,7 @@ def get_mapper(): mapping.extend(user_routes, '/u') mapping.extend(edit_routes, '/edit') mapping.extend(tag_routes, '/tag') + mapping.extend(webfinger_well_known_routes, '/.well-known') + mapping.extend(webfinger_routes, '/api/webfinger') return mapping diff --git a/mediagoblin/templates/mediagoblin/webfinger/host-meta.xml b/mediagoblin/templates/mediagoblin/webfinger/host-meta.xml new file mode 100644 index 00000000..dff2c9aa --- /dev/null +++ b/mediagoblin/templates/mediagoblin/webfinger/host-meta.xml @@ -0,0 +1,27 @@ +{# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +-#} + + + + {{ request.host }} + + + {{ llrd_title }} + + diff --git a/mediagoblin/templates/mediagoblin/webfinger/xrd.xml b/mediagoblin/templates/mediagoblin/webfinger/xrd.xml new file mode 100644 index 00000000..2ef9b814 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/webfinger/xrd.xml @@ -0,0 +1,26 @@ +{# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +-#} + + + + {{ uri }} + http://{{ request.host }}/u/{{ username }} + + + diff --git a/mediagoblin/webfinger/__init__.py b/mediagoblin/webfinger/__init__.py new file mode 100644 index 00000000..ba347c69 --- /dev/null +++ b/mediagoblin/webfinger/__init__.py @@ -0,0 +1,15 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . diff --git a/mediagoblin/webfinger/routing.py b/mediagoblin/webfinger/routing.py new file mode 100644 index 00000000..effb2bf2 --- /dev/null +++ b/mediagoblin/webfinger/routing.py @@ -0,0 +1,25 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from routes.route import Route + +webfinger_well_known_routes = [ + Route('mediagoblin.webfinger.host_meta', '/host-meta', + controller='mediagoblin.webfinger.views:host_meta')] + +webfinger_routes = [ + Route('mediagoblin.webfinger.xrd', '/xrd', + controller='mediagoblin.webfinger.views:xrd')] diff --git a/mediagoblin/webfinger/views.py b/mediagoblin/webfinger/views.py new file mode 100644 index 00000000..f6294da9 --- /dev/null +++ b/mediagoblin/webfinger/views.py @@ -0,0 +1,46 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import re +import mediagoblin.mg_globals as mg_globals + +from mediagoblin.tools.response import render_to_response + +LRDD_TEMPLATE = '{protocol}://{host}/api/webfinger/xrd?uri={{uri}}' + +def host_meta(request): + ''' + Webfinger host-meta + ''' + return render_to_response( + request, + 'mediagoblin/webfinger/host-meta.xml', + {'request': request, + 'lrdd_template': LRDD_TEMPLATE.format( + protocol='http', + host=request.host)}) + +def xrd(request): + ''' + Find user data based on a webfinger URI + ''' + return render_to_response( + request, + 'mediagoblin/webfinger/xrd.xml', + {'request': request, + 'username': re.search( + r'^acct:([^@]*)', + request.GET.get('uri')).group(1)}) From 830a78cdfbb8fc1ee8af770a299f59f26e918aa0 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Thu, 15 Dec 2011 00:58:14 +0100 Subject: [PATCH 1293/2731] Changed some thngs to be compatible with webfinger.org, still *very preliminary* --- mediagoblin/templates/mediagoblin/webfinger/xrd.xml | 3 +++ mediagoblin/webfinger/views.py | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/webfinger/xrd.xml b/mediagoblin/templates/mediagoblin/webfinger/xrd.xml index 2ef9b814..796de89f 100644 --- a/mediagoblin/templates/mediagoblin/webfinger/xrd.xml +++ b/mediagoblin/templates/mediagoblin/webfinger/xrd.xml @@ -20,6 +20,9 @@ {{ uri }} http://{{ request.host }}/u/{{ username }} + + diff --git a/mediagoblin/webfinger/views.py b/mediagoblin/webfinger/views.py index f6294da9..7cbd0913 100644 --- a/mediagoblin/webfinger/views.py +++ b/mediagoblin/webfinger/views.py @@ -42,5 +42,5 @@ def xrd(request): 'mediagoblin/webfinger/xrd.xml', {'request': request, 'username': re.search( - r'^acct:([^@]*)', - request.GET.get('uri')).group(1)}) + r'^(acct:)?([^@]*)', + request.GET.get('uri')).group(2)}) From 8d45c4463bf7bf9dfebe919bb12d588d45d7e30c Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Thu, 15 Dec 2011 09:27:56 -0500 Subject: [PATCH 1294/2731] Fix -dev version and add version number docs Version numbers should adhere to PEP-386. --- mediagoblin/_version.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/mediagoblin/_version.py b/mediagoblin/_version.py index 5e3f4e5a..5e69f21a 100644 --- a/mediagoblin/_version.py +++ b/mediagoblin/_version.py @@ -14,4 +14,13 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -__version__ = "0.3.0-dev" +# valid version formats: +# * x.y - final release +# * x.ya1 - alpha 1 +# * x.yb1 - beta 1 +# * x.yrc1 - release candidate 1 +# * x.y.dev - dev + +# see http://www.python.org/dev/peps/pep-0386/ + +__version__ = "0.3.0.dev" From 9df07e87a8452e47eb594763bb700daf6fb69dbe Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Thu, 15 Dec 2011 19:35:53 +0100 Subject: [PATCH 1295/2731] webfinger fully compliant with webfinger.org! Still *preliminary* solution. --- mediagoblin/templates/mediagoblin/webfinger/xrd.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/webfinger/xrd.xml b/mediagoblin/templates/mediagoblin/webfinger/xrd.xml index 796de89f..9a793637 100644 --- a/mediagoblin/templates/mediagoblin/webfinger/xrd.xml +++ b/mediagoblin/templates/mediagoblin/webfinger/xrd.xml @@ -17,7 +17,7 @@ - {{ uri }} + {{ request.GET.get('uri') }} http://{{ request.host }}/u/{{ username }} Date: Thu, 15 Dec 2011 21:15:21 +0100 Subject: [PATCH 1296/2731] Move sql models into db/sql/ So we can play with the sql models, let's put them in a proper place. --- mediagoblin/db/sql/__init__.py | 15 +++++++++++++++ mediagoblin/db/{sql.py => sql/models.py} | 0 2 files changed, 15 insertions(+) create mode 100644 mediagoblin/db/sql/__init__.py rename mediagoblin/db/{sql.py => sql/models.py} (100%) diff --git a/mediagoblin/db/sql/__init__.py b/mediagoblin/db/sql/__init__.py new file mode 100644 index 00000000..ba347c69 --- /dev/null +++ b/mediagoblin/db/sql/__init__.py @@ -0,0 +1,15 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . diff --git a/mediagoblin/db/sql.py b/mediagoblin/db/sql/models.py similarity index 100% rename from mediagoblin/db/sql.py rename to mediagoblin/db/sql/models.py From e365f980ac21a403a50f61ae687d7dc04760f8bb Mon Sep 17 00:00:00 2001 From: Elrond Date: Thu, 15 Dec 2011 22:11:49 +0100 Subject: [PATCH 1297/2731] SQL: Some toys and little fix Run bin/python mediagoblin/db/sql/models.py and watch the create tables on a memory sqlite db. Also unicode strings need unicode defauls. Warning by sqlalchemy. --- mediagoblin/db/sql/models.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/mediagoblin/db/sql/models.py b/mediagoblin/db/sql/models.py index 31ebfbf4..a38be1cc 100644 --- a/mediagoblin/db/sql/models.py +++ b/mediagoblin/db/sql/models.py @@ -18,7 +18,7 @@ class User(Base): created = Column(DateTime, nullable=False, default=datetime.datetime.now) pw_hash = Column(Unicode, nullable=False) email_verified = Column(Boolean) - status = Column(Unicode, default="needs_email_verification", nullable=False) + status = Column(Unicode, default=u"needs_email_verification", nullable=False) verification_key = Column(Unicode) is_admin = Column(Boolean, default=False, nullable=False) url = Column(Unicode) @@ -93,3 +93,14 @@ class MediaComment(Base): created = Column(DateTime, nullable=False, default=datetime.datetime.now) content = Column(UnicodeText, nullable=False) content_html = Column(UnicodeText) + + +def show_table_init(): + from sqlalchemy import create_engine + engine = create_engine('sqlite:///:memory:', echo=True) + + Base.metadata.create_all(engine) + + +if __name__ == '__main__': + show_table_init() From 8eb216388f0999115d68c33e2fe2460bc9986112 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Thu, 15 Dec 2011 23:49:52 +0100 Subject: [PATCH 1298/2731] Fixed import_export - Mongokit instead of pymongo - db.MediaEntry instead of db.media_entry (pymongo style) --- mediagoblin/gmg_commands/import_export.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mediagoblin/gmg_commands/import_export.py b/mediagoblin/gmg_commands/import_export.py index 1308f09e..eda41f4c 100644 --- a/mediagoblin/gmg_commands/import_export.py +++ b/mediagoblin/gmg_commands/import_export.py @@ -64,7 +64,7 @@ def _import_media(db, args): queue_cache = BasicFileStorage( args._cache_path['queue']) - for entry in db.media_entries.find(): + for entry in db.MediaEntry.find(): for name, path in entry['media_files'].items(): _log.info('Importing: {0} - {1}'.format( entry.title, @@ -107,7 +107,7 @@ def env_import(args): global_config, app_config = setup_global_and_app_config(args.conf_file) connection, db = setup_connection_and_db_from_config( - app_config, use_pymongo=True) + app_config) tf = tarfile.open( args.tar_file, @@ -206,7 +206,7 @@ def _export_media(db, args): queue_cache = BasicFileStorage( args._cache_path['queue']) - for entry in db.media_entries.find(): + for entry in db.MediaEntry.find(): for name, path in entry['media_files'].items(): _log.info(u'Exporting {0} - {1}'.format( entry.title, @@ -215,7 +215,7 @@ def _export_media(db, args): mc_file = media_cache.get_file(path, mode='wb') mc_file.write( mg_globals.public_store.get_file(path, mode='rb').read()) - except e: + except Exception as e: _log.error('Failed: {0}'.format(e)) _log.info('...Media exported') @@ -246,7 +246,7 @@ def env_export(args): setup_storage() connection, db = setup_connection_and_db_from_config( - app_config, use_pymongo=True) + app_config) _export_database(db, args) From 7c2c56a5ff0cb229cd3a64451368bf1e72646bc5 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 17 Dec 2011 17:34:55 +0100 Subject: [PATCH 1299/2731] Little sql model update - Add title to the MediaEntry - Rename fp_verification_expire to fp_token_expire to follow the mongo model. --- mediagoblin/db/sql/models.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mediagoblin/db/sql/models.py b/mediagoblin/db/sql/models.py index a38be1cc..7723a753 100644 --- a/mediagoblin/db/sql/models.py +++ b/mediagoblin/db/sql/models.py @@ -25,7 +25,7 @@ class User(Base): bio = Column(UnicodeText) # ?? bio_html = Column(UnicodeText) # ?? fp_verification_key = Column(Unicode) - fp_verification_expire = Column(DateTime) + fp_token_expire = Column(DateTime) ## TODO # plugin data would be in a separate model @@ -36,6 +36,7 @@ class MediaEntry(Base): id = Column(Integer, primary_key=True) uploader = Column(Integer, ForeignKey('users.id'), nullable=False) + title = Column(Unicode, nullable=False) slug = Column(Unicode, nullable=False) created = Column(DateTime, nullable=False, default=datetime.datetime.now) description = Column(UnicodeText) # ?? From dbcf5289dcc7bcd03a1a92a204fd7c4c8348d318 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 17 Dec 2011 21:37:02 +0100 Subject: [PATCH 1300/2731] Simple Mongo -> SQL migration tool This is just a start at a Migration tool from Mongo to SQL. It fills all currently available SQL models with data from MongoDB. A few fields in the SQL tables are left out, because some data format migrations are needed (notably: queue_file_name). This thing lives in mediagoblin/db/sql/convert.py because it has a lot of stuff hardcoded and is not, repeat not for end users! Hard coded: - output database: ./mediagoblin.db (sqlite) - Mediagoblin config: ./mediagoblin.ini --- mediagoblin/db/sql/convert.py | 143 ++++++++++++++++++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 mediagoblin/db/sql/convert.py diff --git a/mediagoblin/db/sql/convert.py b/mediagoblin/db/sql/convert.py new file mode 100644 index 00000000..2ffa9fd7 --- /dev/null +++ b/mediagoblin/db/sql/convert.py @@ -0,0 +1,143 @@ +from sqlalchemy import create_engine +from sqlalchemy.orm import sessionmaker + +from mediagoblin.init import setup_global_and_app_config, setup_database +from mediagoblin.db.util import ObjectId + +from mediagoblin.db.sql.models import (Base, User, MediaEntry, MediaComment, + Tag, MediaTag) + +Session = sessionmaker() + + +obj_id_table = dict() + +def add_obj_ids(entry, new_entry): + global obj_id_table + print "%r -> %r" % (entry._id, new_entry.id) + obj_id_table[entry._id] = new_entry.id + + +def copy_attrs(entry, new_entry, attr_list): + for a in attr_list: + val = entry[a] + setattr(new_entry, a, val) + +def copy_reference_attr(entry, new_entry, ref_attr): + val = entry[ref_attr] + val = obj_id_table[val] + setattr(new_entry, ref_attr, val) + + +def convert_users(mk_db): + session = Session() + + for entry in mk_db.User.find(): + print entry.username + + new_entry = User() + copy_attrs(entry, new_entry, + ('username', 'email', 'created', 'pw_hash', 'email_verified', + 'status', 'verification_key', 'is_admin', 'url', + 'bio', 'bio_html', + 'fp_verification_key', 'fp_token_expire',)) + # new_entry.fp_verification_expire = entry.fp_token_expire + + session.add(new_entry) + session.flush() + add_obj_ids(entry, new_entry) + + session.commit() + session.close() + + +def convert_media_entries(mk_db): + session = Session() + + for entry in mk_db.MediaEntry.find(): + print repr(entry.title) + + new_entry = MediaEntry() + copy_attrs(entry, new_entry, + ('title', 'slug', 'created', + 'description', 'description_html', + 'media_type', + 'fail_error', + 'queued_task_id',)) + copy_reference_attr(entry, new_entry, "uploader") + + session.add(new_entry) + session.flush() + add_obj_ids(entry, new_entry) + + session.commit() + session.close() + + +def convert_media_tags(mk_db): + session = Session() + session.autoflush = False + + for media in mk_db.MediaEntry.find(): + print repr(media.title) + + for otag in media.tags: + print " ", repr((otag["slug"], otag["name"])) + + nslug = session.query(Tag).filter_by(slug=otag["slug"]).first() + print " ", repr(nslug) + if nslug is None: + nslug = Tag(slug=otag["slug"]) + session.add(nslug) + session.flush() + print " ", repr(nslug), nslug.id + + ntag = MediaTag() + ntag.tag = nslug.id + ntag.name = otag["name"] + ntag.media_entry = obj_id_table[media._id] + session.add(ntag) + + session.commit() + session.close() + + +def convert_media_comments(mk_db): + session = Session() + + for entry in mk_db.MediaComment.find(): + print repr(entry.content) + + new_entry = MediaComment() + copy_attrs(entry, new_entry, + ('created', + 'content', 'content_html',)) + copy_reference_attr(entry, new_entry, "media_entry") + copy_reference_attr(entry, new_entry, "author") + + session.add(new_entry) + session.flush() + add_obj_ids(entry, new_entry) + + session.commit() + session.close() + + +def main(): + engine = create_engine('sqlite:///mediagoblin.db', echo=True) + Session.configure(bind=engine) + + setup_global_and_app_config("mediagoblin.ini") + + mk_conn, mk_db = setup_database() + + Base.metadata.create_all(engine) + + convert_users(mk_db) + convert_media_entries(mk_db) + convert_media_tags(mk_db) + convert_media_comments(mk_db) + + +if __name__ == '__main__': + main() From 18517e888a90bf1c0434dd4da99ef7980d333ed0 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 18 Dec 2011 00:31:39 +0100 Subject: [PATCH 1301/2731] Show actual comment number. Only shows plural for now (ticket #712) --- mediagoblin/templates/mediagoblin/user_pages/media.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 2c8c5033..b9e31667 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -81,7 +81,7 @@ {% trans %}Delete{% endtrans %} {% endif %}

    -

    {% trans %}23 comments{% endtrans %} +

    {% trans comment_count=comments.count() -%}{{ comment_count }} comments{%- endtrans %}
    Date: Sun, 18 Dec 2011 01:04:41 +0100 Subject: [PATCH 1302/2731] First test lines for responsive design --- mediagoblin/static/css/base.css | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 2a78006d..805f0e29 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -389,3 +389,20 @@ table.media_panel th { margin-top: 10px; margin-left: 10px; } + +@media screen and (max-width: 480px) { + .navigation_button { + position: fixed; + bottom: 0px; + right: 0px; + width: 50%; + margin: 0; + } + .navigation_left { + left: 0px; + width: 50%; + } + .media_image { + width: 480px; + } +} From 436b13bb3e2253dc4361333d1260550d343ccfe2 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 18 Dec 2011 01:31:06 +0100 Subject: [PATCH 1303/2731] Remove 960.gs stylesheets, add Eric Meyer's reset.css --- extlib/960.gs/960_16_col.css | 447 ------------------- extlib/960.gs/MIT.txt | 20 - extlib/960.gs/README.txt | 54 --- extlib/960.gs/reset.css | 202 --------- extlib/960.gs/text.css | 86 ---- mediagoblin/static/css/extlib/960_16_col.css | 1 - mediagoblin/static/css/extlib/reset.css | 1 - mediagoblin/static/css/extlib/text.css | 1 - mediagoblin/static/css/reset.css | 49 ++ mediagoblin/templates/mediagoblin/base.html | 6 +- 10 files changed, 50 insertions(+), 817 deletions(-) delete mode 100644 extlib/960.gs/960_16_col.css delete mode 100644 extlib/960.gs/MIT.txt delete mode 100755 extlib/960.gs/README.txt delete mode 100644 extlib/960.gs/reset.css delete mode 100644 extlib/960.gs/text.css delete mode 120000 mediagoblin/static/css/extlib/960_16_col.css delete mode 120000 mediagoblin/static/css/extlib/reset.css delete mode 120000 mediagoblin/static/css/extlib/text.css create mode 100644 mediagoblin/static/css/reset.css diff --git a/extlib/960.gs/960_16_col.css b/extlib/960.gs/960_16_col.css deleted file mode 100644 index faa6d8b2..00000000 --- a/extlib/960.gs/960_16_col.css +++ /dev/null @@ -1,447 +0,0 @@ -/* - 960 Grid System ~ Core CSS. - Learn more ~ http://960.gs/ - - Licensed under GPL and MIT. -*/ - -/* - Forces backgrounds to span full width, - even if there is horizontal scrolling. - Increase this if your layout is wider. - - Note: IE6 works fine without this fix. -*/ - -body { - min-width: 960px; -} - -/* Container -----------------------------------------------------------------------------------------------------*/ - -.container_16 { - margin-left: auto; - margin-right: auto; - width: 960px; -} - -/* Grid >> Global -----------------------------------------------------------------------------------------------------*/ - -.grid_1, -.grid_2, -.grid_3, -.grid_4, -.grid_5, -.grid_6, -.grid_7, -.grid_8, -.grid_9, -.grid_10, -.grid_11, -.grid_12, -.grid_13, -.grid_14, -.grid_15, -.grid_16 { - display: inline; - float: left; - position: relative; - margin-left: 10px; - margin-right: 10px; -} - -.push_1, .pull_1, -.push_2, .pull_2, -.push_3, .pull_3, -.push_4, .pull_4, -.push_5, .pull_5, -.push_6, .pull_6, -.push_7, .pull_7, -.push_8, .pull_8, -.push_9, .pull_9, -.push_10, .pull_10, -.push_11, .pull_11, -.push_12, .pull_12, -.push_13, .pull_13, -.push_14, .pull_14, -.push_15, .pull_15, -.push_16, .pull_16 { - position: relative; -} - -/* Grid >> Children (Alpha ~ First, Omega ~ Last) -----------------------------------------------------------------------------------------------------*/ - -.alpha { - margin-left: 0; -} - -.omega { - margin-right: 0; -} - -/* Grid >> 16 Columns -----------------------------------------------------------------------------------------------------*/ - -.container_16 .grid_1 { - width: 40px; -} - -.container_16 .grid_2 { - width: 100px; -} - -.container_16 .grid_3 { - width: 160px; -} - -.container_16 .grid_4 { - width: 220px; -} - -.container_16 .grid_5 { - width: 280px; -} - -.container_16 .grid_6 { - width: 340px; -} - -.container_16 .grid_7 { - width: 400px; -} - -.container_16 .grid_8 { - width: 460px; -} - -.container_16 .grid_9 { - width: 520px; -} - -.container_16 .grid_10 { - width: 580px; -} - -.container_16 .grid_11 { - width: 640px; -} - -.container_16 .grid_12 { - width: 700px; -} - -.container_16 .grid_13 { - width: 760px; -} - -.container_16 .grid_14 { - width: 820px; -} - -.container_16 .grid_15 { - width: 880px; -} - -.container_16 .grid_16 { - width: 940px; -} - -/* Prefix Extra Space >> 16 Columns -----------------------------------------------------------------------------------------------------*/ - -.container_16 .prefix_1 { - padding-left: 60px; -} - -.container_16 .prefix_2 { - padding-left: 120px; -} - -.container_16 .prefix_3 { - padding-left: 180px; -} - -.container_16 .prefix_4 { - padding-left: 240px; -} - -.container_16 .prefix_5 { - padding-left: 300px; -} - -.container_16 .prefix_6 { - padding-left: 360px; -} - -.container_16 .prefix_7 { - padding-left: 420px; -} - -.container_16 .prefix_8 { - padding-left: 480px; -} - -.container_16 .prefix_9 { - padding-left: 540px; -} - -.container_16 .prefix_10 { - padding-left: 600px; -} - -.container_16 .prefix_11 { - padding-left: 660px; -} - -.container_16 .prefix_12 { - padding-left: 720px; -} - -.container_16 .prefix_13 { - padding-left: 780px; -} - -.container_16 .prefix_14 { - padding-left: 840px; -} - -.container_16 .prefix_15 { - padding-left: 900px; -} - -/* Suffix Extra Space >> 16 Columns -----------------------------------------------------------------------------------------------------*/ - -.container_16 .suffix_1 { - padding-right: 60px; -} - -.container_16 .suffix_2 { - padding-right: 120px; -} - -.container_16 .suffix_3 { - padding-right: 180px; -} - -.container_16 .suffix_4 { - padding-right: 240px; -} - -.container_16 .suffix_5 { - padding-right: 300px; -} - -.container_16 .suffix_6 { - padding-right: 360px; -} - -.container_16 .suffix_7 { - padding-right: 420px; -} - -.container_16 .suffix_8 { - padding-right: 480px; -} - -.container_16 .suffix_9 { - padding-right: 540px; -} - -.container_16 .suffix_10 { - padding-right: 600px; -} - -.container_16 .suffix_11 { - padding-right: 660px; -} - -.container_16 .suffix_12 { - padding-right: 720px; -} - -.container_16 .suffix_13 { - padding-right: 780px; -} - -.container_16 .suffix_14 { - padding-right: 840px; -} - -.container_16 .suffix_15 { - padding-right: 900px; -} - -/* Push Space >> 16 Columns -----------------------------------------------------------------------------------------------------*/ - -.container_16 .push_1 { - left: 60px; -} - -.container_16 .push_2 { - left: 120px; -} - -.container_16 .push_3 { - left: 180px; -} - -.container_16 .push_4 { - left: 240px; -} - -.container_16 .push_5 { - left: 300px; -} - -.container_16 .push_6 { - left: 360px; -} - -.container_16 .push_7 { - left: 420px; -} - -.container_16 .push_8 { - left: 480px; -} - -.container_16 .push_9 { - left: 540px; -} - -.container_16 .push_10 { - left: 600px; -} - -.container_16 .push_11 { - left: 660px; -} - -.container_16 .push_12 { - left: 720px; -} - -.container_16 .push_13 { - left: 780px; -} - -.container_16 .push_14 { - left: 840px; -} - -.container_16 .push_15 { - left: 900px; -} - -/* Pull Space >> 16 Columns -----------------------------------------------------------------------------------------------------*/ - -.container_16 .pull_1 { - left: -60px; -} - -.container_16 .pull_2 { - left: -120px; -} - -.container_16 .pull_3 { - left: -180px; -} - -.container_16 .pull_4 { - left: -240px; -} - -.container_16 .pull_5 { - left: -300px; -} - -.container_16 .pull_6 { - left: -360px; -} - -.container_16 .pull_7 { - left: -420px; -} - -.container_16 .pull_8 { - left: -480px; -} - -.container_16 .pull_9 { - left: -540px; -} - -.container_16 .pull_10 { - left: -600px; -} - -.container_16 .pull_11 { - left: -660px; -} - -.container_16 .pull_12 { - left: -720px; -} - -.container_16 .pull_13 { - left: -780px; -} - -.container_16 .pull_14 { - left: -840px; -} - -.container_16 .pull_15 { - left: -900px; -} - -/* `Clear Floated Elements -----------------------------------------------------------------------------------------------------*/ - -/* http://sonspring.com/journal/clearing-floats */ - -.clear { - clear: both; - display: block; - overflow: hidden; - visibility: hidden; - width: 0; - height: 0; -} - -/* http://www.yuiblog.com/blog/2010/09/27/clearfix-reloaded-overflowhidden-demystified */ - -.clearfix:before, -.clearfix:after, -.container_16:before, -.container_16:after { - content: '.'; - display: block; - overflow: hidden; - visibility: hidden; - font-size: 0; - line-height: 0; - width: 0; - height: 0; -} - -.clearfix:after, -.container_16:after { - clear: both; -} - -/* - The following zoom:1 rule is specifically for IE6 + IE7. - Move to separate stylesheet if invalid CSS is a problem. -*/ - -.clearfix, -.container_16 { - zoom: 1; -} \ No newline at end of file diff --git a/extlib/960.gs/MIT.txt b/extlib/960.gs/MIT.txt deleted file mode 100644 index 5a2aeb47..00000000 --- a/extlib/960.gs/MIT.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/extlib/960.gs/README.txt b/extlib/960.gs/README.txt deleted file mode 100755 index da0ea86f..00000000 --- a/extlib/960.gs/README.txt +++ /dev/null @@ -1,54 +0,0 @@ -=============== -960 GRID SYSTEM -=============== - -Created by Nathan Smith. See the official site for more info: http://960.gs/ - -============================================================================ - -To install the Adobe Fireworks extension, simply double-click the *.mxp file -included in the /fireworks_extension directory. If you are running Windows 7 -you will need admin permissions in order to install this extension properly. - -============================================================================ - -Thank you for downloading the 960 Grid System. I hope it helps to streamline -web development workflow. Enclosed in the bundle are printable sketch sheets -and template files for Adobe Fireworks and Photoshop, OmniGraffle and Visio. - -Also included is a lightweight CSS file, which contains the grid dimensions. -To use this file, simply include the 960.css in the of the HTML page. -You may also use the reset.css and text.css files, or opt to leave them out. -Here is an example of the XHTML code necessary to incorporate the CSS files: - - - - - - - -It is worth noting that these styles do not automatically make up a finished -site design. They are simply a starting point, ideally for rapid prototyping -or as a basis for creating your own designs. You should not feel constrained -by the way I have built the initial code. If you disagree with how something -has been done, feel free to revise it for the needs of your particular site. - -The files in the 960 Grid System are free of charge, licensed under MIT/GPL. - -============================================================================ - -Note that if you are building a site in a language which reads from right to -left, use the CSS files that end in "_rtl.css" instead. Denote the language: - - - -Be sure to replace "..." with the appropriate two-letter abbreviation of the -language you are using. Example: lang="he" for Hebrew, lang="ar" for Arabic. - -============================================================================ - -GPL license: -http://www.gnu.org/licenses/gpl.html - -MIT license: -http://www.opensource.org/licenses/mit-license.php \ No newline at end of file diff --git a/extlib/960.gs/reset.css b/extlib/960.gs/reset.css deleted file mode 100644 index 87b7f368..00000000 --- a/extlib/960.gs/reset.css +++ /dev/null @@ -1,202 +0,0 @@ -/* `XHTML, HTML4, HTML5 Reset -----------------------------------------------------------------------------------------------------*/ - -a, -abbr, -acronym, -address, -applet, -article, -aside, -audio, -b, -big, -blockquote, -body, -canvas, -caption, -center, -cite, -code, -dd, -del, -details, -dfn, -dialog, -div, -dl, -dt, -em, -embed, -fieldset, -figcaption, -figure, -font, -footer, -form, -h1, -h2, -h3, -h4, -h5, -h6, -header, -hgroup, -hr, -html, -i, -iframe, -img, -ins, -kbd, -label, -legend, -li, -mark, -menu, -meter, -nav, -object, -ol, -output, -p, -pre, -progress, -q, -rp, -rt, -ruby, -s, -samp, -section, -small, -span, -strike, -strong, -sub, -summary, -sup, -table, -tbody, -td, -tfoot, -th, -thead, -time, -tr, -tt, -u, -ul, -var, -video, -xmp { - border: 0; - margin: 0; - padding: 0; - font-size: 100%; -} - -html, -body { - height: 100%; -} - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -menu, -nav, -section { -/* - Override the default (display: inline) for - browsers that do not recognize HTML5 tags. - - IE8 (and lower) requires a shiv: - http://ejohn.org/blog/html5-shiv -*/ - display: block; -} - -b, -strong { -/* - Makes browsers agree. - IE + Opera = font-weight: bold. - Gecko + WebKit = font-weight: bolder. -*/ - font-weight: bold; -} - -img { - color: transparent; - font-size: 0; - vertical-align: middle; -/* - For IE. - http://css-tricks.com/ie-fix-bicubic-scaling-for-images -*/ - -ms-interpolation-mode: bicubic; -} - -li { -/* - For IE6 + IE7. -*/ - display: list-item; -} - -table { - border-collapse: collapse; - border-spacing: 0; -} - -th, -td, -caption { - font-weight: normal; - vertical-align: top; - text-align: left; -} - -q { - quotes: none; -} - -q:before, -q:after { - content: ''; - content: none; -} - -sub, -sup, -small { - font-size: 75%; -} - -sub, -sup { - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -svg { -/* - For IE9. -*/ - overflow: hidden; -} \ No newline at end of file diff --git a/extlib/960.gs/text.css b/extlib/960.gs/text.css deleted file mode 100644 index 1a6b302f..00000000 --- a/extlib/960.gs/text.css +++ /dev/null @@ -1,86 +0,0 @@ -/* - 960 Grid System ~ Text CSS. - Learn more ~ http://960.gs/ - - Licensed under GPL and MIT. -*/ - -/* `Basic HTML -----------------------------------------------------------------------------------------------------*/ - -body { - font: 13px/1.5 'Helvetica Neue', Arial, 'Liberation Sans', FreeSans, sans-serif; -} - -pre, -code { - font-family: 'DejaVu Sans Mono', Monaco, Consolas, monospace; -} - -hr { - border: 0 #ccc solid; - border-top-width: 1px; - clear: both; - height: 0; -} - -/* `Headings -----------------------------------------------------------------------------------------------------*/ - -h1 { - font-size: 25px; -} - -h2 { - font-size: 23px; -} - -h3 { - font-size: 21px; -} - -h4 { - font-size: 19px; -} - -h5 { - font-size: 17px; -} - -h6 { - font-size: 15px; -} - -/* `Spacing -----------------------------------------------------------------------------------------------------*/ - -ol { - list-style: decimal; -} - -ul { - list-style: disc; -} - -li { - margin-left: 30px; -} - -p, -dl, -hr, -h1, -h2, -h3, -h4, -h5, -h6, -ol, -ul, -pre, -table, -address, -fieldset, -figure { - margin-bottom: 20px; -} \ No newline at end of file diff --git a/mediagoblin/static/css/extlib/960_16_col.css b/mediagoblin/static/css/extlib/960_16_col.css deleted file mode 120000 index d4e43898..00000000 --- a/mediagoblin/static/css/extlib/960_16_col.css +++ /dev/null @@ -1 +0,0 @@ -../../../../extlib/960.gs/960_16_col.css \ No newline at end of file diff --git a/mediagoblin/static/css/extlib/reset.css b/mediagoblin/static/css/extlib/reset.css deleted file mode 120000 index 65d06d34..00000000 --- a/mediagoblin/static/css/extlib/reset.css +++ /dev/null @@ -1 +0,0 @@ -../../../../extlib/960.gs/reset.css \ No newline at end of file diff --git a/mediagoblin/static/css/extlib/text.css b/mediagoblin/static/css/extlib/text.css deleted file mode 120000 index 2d864de4..00000000 --- a/mediagoblin/static/css/extlib/text.css +++ /dev/null @@ -1 +0,0 @@ -../../../../extlib/960.gs/text.css \ No newline at end of file diff --git a/mediagoblin/static/css/reset.css b/mediagoblin/static/css/reset.css new file mode 100644 index 00000000..6ce25ce7 --- /dev/null +++ b/mediagoblin/static/css/reset.css @@ -0,0 +1,49 @@ +/* http://meyerweb.com/eric/tools/css/reset/ + v2.0 | 20110126 + License: none (public domain) +*/ + +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} +/* HTML5 display-role reset for older browsers */ +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} +body { + line-height: 1; +} +ol, ul { + list-style: none; +} +blockquote, q { + quotes: none; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} +table { + border-collapse: collapse; + border-spacing: 0; +} + diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 41efbc0d..6972fe2f 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -21,11 +21,7 @@ {% block title %}{{ app_config['html_title'] }}{% endblock %} - - + href="{{ request.staticdirect('/css/reset.css') }}"/> Date: Sun, 18 Dec 2011 01:32:13 +0100 Subject: [PATCH 1304/2731] Media query for everything(?) below 960px wide --- mediagoblin/static/css/base.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 805f0e29..effcec69 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -390,7 +390,7 @@ table.media_panel th { margin-left: 10px; } -@media screen and (max-width: 480px) { +@media handheld and (max-width: 480px), screen and (max-device-width: 480px), screen and (max-width: 960px) { .navigation_button { position: fixed; bottom: 0px; From 1bb8eb89c7566cb473c2a7c317420bceaf8e9111 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 18 Dec 2011 01:37:57 +0100 Subject: [PATCH 1305/2731] Remove first 960.gs classes --- mediagoblin/static/css/base.css | 27 +++++++++++++++------ mediagoblin/templates/mediagoblin/base.html | 12 +++------ 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index effcec69..d3136788 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -84,23 +84,43 @@ input, textarea { .mediagoblin_body { position: relative; min-height: 100%; + margin-left: auto; + margin-right: auto; + width: 960px; } .mediagoblin_header { + width: 940px; height: 36px; + margin-left: 10px; + margin-right: 10px; padding-top: 14px; margin-bottom: 20px; border-bottom: 1px solid #333; } +.mediagoblin_header_right { + float: right; +} + a.mediagoblin_logo{ color: #fff; font-weight: bold; margin-right: 8px; } +.mediagoblin_content { + width: 940px; + margin-left: 10px; + margin-right: 10px; + padding-bottom: 74px; +} + .mediagoblin_footer { + width: 940px; height: 30px; + margin-left: 10px; + margin-right: 10px; border-top: 1px solid #333; bottom: 0px; padding-top: 8px; @@ -108,13 +128,6 @@ a.mediagoblin_logo{ font-size: 0.875em; } -.mediagoblin_content { - padding-bottom: 74px; -} - -.mediagoblin_header_right { - float: right; -} /* common website elements */ diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 6972fe2f..870a4861 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -37,8 +37,7 @@ {% block mediagoblin_body %}
    {% block mediagoblin_header %} -
    -
    {% endblock %} {% endblock mediagoblin_body %}
    From 4fe9c9b99fc14f827d87ef803a9a67508591220f Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 18 Dec 2011 01:41:01 +0100 Subject: [PATCH 1306/2731] Move reset.css to extlib and symlink it --- {mediagoblin/static/css => extlib/reset}/reset.css | 0 mediagoblin/static/css/extlib/reset.css | 1 + 2 files changed, 1 insertion(+) rename {mediagoblin/static/css => extlib/reset}/reset.css (100%) create mode 120000 mediagoblin/static/css/extlib/reset.css diff --git a/mediagoblin/static/css/reset.css b/extlib/reset/reset.css similarity index 100% rename from mediagoblin/static/css/reset.css rename to extlib/reset/reset.css diff --git a/mediagoblin/static/css/extlib/reset.css b/mediagoblin/static/css/extlib/reset.css new file mode 120000 index 00000000..6084e137 --- /dev/null +++ b/mediagoblin/static/css/extlib/reset.css @@ -0,0 +1 @@ +../../../../extlib/reset/reset.css \ No newline at end of file From 42a7c010321a01d1abb01d1137cc46cd97d66843 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 18 Dec 2011 01:54:58 +0100 Subject: [PATCH 1307/2731] Add styles to make media.html not fall apart entirely --- mediagoblin/static/css/base.css | 14 ++++++++++++++ .../templates/mediagoblin/user_pages/media.html | 4 ++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index d3136788..2a05e988 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -126,8 +126,22 @@ a.mediagoblin_logo{ padding-top: 8px; text-align: center; font-size: 0.875em; + clear: both; } +.media_pane { + width: 640px; + margin-left: 0px; + margin-right: 10px; + float: left; +} + +.media_sidebar { + width: 280px; + margin-left: 10px; + margin-right: 0px; + float: left; +} /* common website elements */ diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index b9e31667..0c3f373e 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -37,7 +37,7 @@ {% endblock mediagoblin_head %} {% block mediagoblin_content %} -
    +
    {% block mediagoblin_media %} {% set display_media = request.app.public_store.file_url( @@ -141,7 +141,7 @@ media = media._id)) }} {% endif %}
    -
    +
    {% trans user_url=request.urlgen( 'mediagoblin.user_pages.user_home', user=media.get_uploader().username), From 00c1d00771e0db68f7775968c0e33f000c5f36af Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 18 Dec 2011 02:07:49 +0100 Subject: [PATCH 1308/2731] Change widths to percentages for small devices --- mediagoblin/static/css/base.css | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 2a05e988..187d1c7a 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -418,6 +418,9 @@ table.media_panel th { } @media handheld and (max-width: 480px), screen and (max-device-width: 480px), screen and (max-width: 960px) { + html { + padding:10px; + } .navigation_button { position: fixed; bottom: 0px; @@ -427,9 +430,19 @@ table.media_panel th { } .navigation_left { left: 0px; - width: 50%; } .media_image { - width: 480px; + width: 100%; + } + .mediagoblin_body { + width: 100%; + } + .mediagoblin_header, .mediagoblin_content, .mediagoblin_footer, .media_pane { + width: 100%; + margin-left: 0; + margin-right: 0; + } + .mediagoblin_footer { + margin-bottom: 100px; } } From 7b194a79f0ad789309b9c34340f19c5a962b0915 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sun, 18 Dec 2011 17:02:27 +0100 Subject: [PATCH 1309/2731] SQL: mongokit like interface In trying to ease the migration to SQL, created an interface to sqlalchemy that looks a lot like the interface that is currently in use. *WARNING* Work in progress --- mediagoblin/db/sql/base.py | 16 ++++++++++++++++ mediagoblin/db/sql/convert.py | 7 ++++++- mediagoblin/db/sql/models.py | 4 +++- mediagoblin/db/sql/open.py | 29 +++++++++++++++++++++++++++++ 4 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 mediagoblin/db/sql/base.py create mode 100644 mediagoblin/db/sql/open.py diff --git a/mediagoblin/db/sql/base.py b/mediagoblin/db/sql/base.py new file mode 100644 index 00000000..b8d5cc96 --- /dev/null +++ b/mediagoblin/db/sql/base.py @@ -0,0 +1,16 @@ +from sqlalchemy.orm import scoped_session, sessionmaker + + +Session = scoped_session(sessionmaker()) + + +class GMGTableBase(object): + query = Session.query_property() + + @classmethod + def find(cls, query_dict={}): + return cls.query.filter_by(**query_dict) + + @classmethod + def find_one(cls, query_dict={}): + return cls.query.filter_by(**query_dict).first() diff --git a/mediagoblin/db/sql/convert.py b/mediagoblin/db/sql/convert.py index 2ffa9fd7..6de758ed 100644 --- a/mediagoblin/db/sql/convert.py +++ b/mediagoblin/db/sql/convert.py @@ -7,7 +7,8 @@ from mediagoblin.db.util import ObjectId from mediagoblin.db.sql.models import (Base, User, MediaEntry, MediaComment, Tag, MediaTag) -Session = sessionmaker() +# Session = sessionmaker() +from mediagoblin.db.sql.base import Session obj_id_table = dict() @@ -134,9 +135,13 @@ def main(): Base.metadata.create_all(engine) convert_users(mk_db) + Session.remove() convert_media_entries(mk_db) + Session.remove() convert_media_tags(mk_db) + Session.remove() convert_media_comments(mk_db) + Session.remove() if __name__ == '__main__': diff --git a/mediagoblin/db/sql/models.py b/mediagoblin/db/sql/models.py index 7723a753..b87ff3aa 100644 --- a/mediagoblin/db/sql/models.py +++ b/mediagoblin/db/sql/models.py @@ -5,8 +5,10 @@ from sqlalchemy import ( Column, Integer, Unicode, UnicodeText, DateTime, Boolean, ForeignKey, UniqueConstraint) +from mediagoblin.db.sql.base import GMGTableBase -Base = declarative_base() + +Base = declarative_base(cls=GMGTableBase) class User(Base): diff --git a/mediagoblin/db/sql/open.py b/mediagoblin/db/sql/open.py new file mode 100644 index 00000000..57feaf50 --- /dev/null +++ b/mediagoblin/db/sql/open.py @@ -0,0 +1,29 @@ +from sqlalchemy import create_engine + +from mediagoblin.db.sql.base import Session +from mediagoblin.db.sql.models import Base + + +class DatabaseMaster(object): + def __init__(self, engine): + self.engine = engine + + for k,v in Base._decl_class_registry.iteritems(): + setattr(self, k, v) + + def commit(self): + Session.commit() + + def save(self, obj): + Session.add(obj) + Session.flush() + + def reset_after_request(self): + Session.remove() + + +def setup_connection_and_db_from_config(app_config): + engine = create_engine(app_config['sql_engine'], echo=True) + Session.configure(bind=engine) + + return "dummy conn", DatabaseMaster(engine) From 046f9f8481a8950ce18dfc8b4f14e4d14cf59c7a Mon Sep 17 00:00:00 2001 From: Elrond Date: Tue, 20 Dec 2011 19:06:04 +0100 Subject: [PATCH 1310/2731] Move db/open.py to db/mongo/open.py Starting to move the mongo specific stuff into db/mongo. And create thin "from db.mongo.Y import z" wrappers in db/Y.py. Why? 1) Will make it lots easier to switch to sql for testing/developing. 2) The mongo stuff needs to stay around after moving to sql, because the converter needs it. --- mediagoblin/db/mongo/__init__.py | 15 +++++++++ mediagoblin/db/mongo/open.py | 55 ++++++++++++++++++++++++++++++++ mediagoblin/db/open.py | 40 +---------------------- 3 files changed, 71 insertions(+), 39 deletions(-) create mode 100644 mediagoblin/db/mongo/__init__.py create mode 100644 mediagoblin/db/mongo/open.py diff --git a/mediagoblin/db/mongo/__init__.py b/mediagoblin/db/mongo/__init__.py new file mode 100644 index 00000000..ba347c69 --- /dev/null +++ b/mediagoblin/db/mongo/__init__.py @@ -0,0 +1,15 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . diff --git a/mediagoblin/db/mongo/open.py b/mediagoblin/db/mongo/open.py new file mode 100644 index 00000000..e677ba12 --- /dev/null +++ b/mediagoblin/db/mongo/open.py @@ -0,0 +1,55 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import pymongo +import mongokit +from paste.deploy.converters import asint +from mediagoblin.db import models + + +def connect_database_from_config(app_config, use_pymongo=False): + """ + Connect to the main database, take config from app_config + + Optionally use pymongo instead of mongokit for the connection. + """ + port = app_config.get('db_port') + if port: + port = asint(port) + + if use_pymongo: + connection = pymongo.Connection( + app_config.get('db_host'), port) + else: + connection = mongokit.Connection( + app_config.get('db_host'), port) + return connection + + +def setup_connection_and_db_from_config(app_config, use_pymongo=False): + """ + Setup connection and database from config. + + Optionally use pymongo instead of mongokit. + """ + connection = connect_database_from_config(app_config, use_pymongo) + database_path = app_config['db_name'] + db = connection[database_path] + + if not use_pymongo: + models.register_models(connection) + + return (connection, db) diff --git a/mediagoblin/db/open.py b/mediagoblin/db/open.py index e677ba12..a92a6ada 100644 --- a/mediagoblin/db/open.py +++ b/mediagoblin/db/open.py @@ -14,42 +14,4 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -import pymongo -import mongokit -from paste.deploy.converters import asint -from mediagoblin.db import models - - -def connect_database_from_config(app_config, use_pymongo=False): - """ - Connect to the main database, take config from app_config - - Optionally use pymongo instead of mongokit for the connection. - """ - port = app_config.get('db_port') - if port: - port = asint(port) - - if use_pymongo: - connection = pymongo.Connection( - app_config.get('db_host'), port) - else: - connection = mongokit.Connection( - app_config.get('db_host'), port) - return connection - - -def setup_connection_and_db_from_config(app_config, use_pymongo=False): - """ - Setup connection and database from config. - - Optionally use pymongo instead of mongokit. - """ - connection = connect_database_from_config(app_config, use_pymongo) - database_path = app_config['db_name'] - db = connection[database_path] - - if not use_pymongo: - models.register_models(connection) - - return (connection, db) +from mediagoblin.db.mongo.open import setup_connection_and_db_from_config From 4970960f8c8e0a49d44f15853a2929c3e615a015 Mon Sep 17 00:00:00 2001 From: Elrond Date: Tue, 20 Dec 2011 19:20:09 +0100 Subject: [PATCH 1311/2731] Move db/indexes.py to db/mongo/indexes.py And change references (one!). --- mediagoblin/db/{ => mongo}/indexes.py | 0 mediagoblin/db/util.py | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename mediagoblin/db/{ => mongo}/indexes.py (100%) diff --git a/mediagoblin/db/indexes.py b/mediagoblin/db/mongo/indexes.py similarity index 100% rename from mediagoblin/db/indexes.py rename to mediagoblin/db/mongo/indexes.py diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index 52e97f6d..e2065693 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -34,7 +34,7 @@ from pymongo import ASCENDING, DESCENDING from pymongo.errors import InvalidId from mongokit import ObjectId -from mediagoblin.db.indexes import ACTIVE_INDEXES, DEPRECATED_INDEXES +from mediagoblin.db.mongo.indexes import ACTIVE_INDEXES, DEPRECATED_INDEXES ################ From 59bd06aabb0b9a6277d2ad5d1d38c3c8a8da5298 Mon Sep 17 00:00:00 2001 From: Elrond Date: Tue, 20 Dec 2011 19:35:47 +0100 Subject: [PATCH 1312/2731] Move db/util.py -> db/mongo/util.py - Change some reference - Provide a wrapper db/util.py --- mediagoblin/db/migrations.py | 2 +- mediagoblin/db/models.py | 2 +- mediagoblin/db/mongo/util.py | 292 +++++++++++++++++++++++++++ mediagoblin/db/util.py | 278 +------------------------ mediagoblin/tests/test_migrations.py | 2 +- 5 files changed, 297 insertions(+), 279 deletions(-) create mode 100644 mediagoblin/db/mongo/util.py diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py index cfc01287..cf4e94ae 100644 --- a/mediagoblin/db/migrations.py +++ b/mediagoblin/db/migrations.py @@ -14,7 +14,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from mediagoblin.db.util import RegisterMigration +from mediagoblin.db.mongo.util import RegisterMigration from mediagoblin.tools.text import cleaned_markdown_conversion diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 569c3600..51c6e98e 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -22,7 +22,7 @@ from mongokit import Document from mediagoblin.auth import lib as auth_lib from mediagoblin import mg_globals from mediagoblin.db import migrations -from mediagoblin.db.util import ASCENDING, DESCENDING, ObjectId +from mediagoblin.db.mongo.util import ASCENDING, DESCENDING, ObjectId from mediagoblin.tools.pagination import Pagination from mediagoblin.tools import url, common diff --git a/mediagoblin/db/mongo/util.py b/mediagoblin/db/mongo/util.py new file mode 100644 index 00000000..e2065693 --- /dev/null +++ b/mediagoblin/db/mongo/util.py @@ -0,0 +1,292 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +""" +Utilities for database operations. + +Some note on migration and indexing tools: + +We store information about what the state of the database is in the +'mediagoblin' document of the 'app_metadata' collection. Keys in that +document relevant to here: + + - 'migration_number': The integer representing the current state of + the migrations +""" + +import copy + +# Imports that other modules might use +from pymongo import ASCENDING, DESCENDING +from pymongo.errors import InvalidId +from mongokit import ObjectId + +from mediagoblin.db.mongo.indexes import ACTIVE_INDEXES, DEPRECATED_INDEXES + + +################ +# Indexing tools +################ + + +def add_new_indexes(database, active_indexes=ACTIVE_INDEXES): + """ + Add any new indexes to the database. + + Args: + - database: pymongo or mongokit database instance. + - active_indexes: indexes to possibly add in the pattern of: + {'collection_name': { + 'identifier': { + 'index': [index_foo_goes_here], + 'unique': True}} + where 'index' is the index to add and all other options are + arguments for collection.create_index. + + Returns: + A list of indexes added in form ('collection', 'index_name') + """ + indexes_added = [] + + for collection_name, indexes in active_indexes.iteritems(): + collection = database[collection_name] + collection_indexes = collection.index_information().keys() + + for index_name, index_data in indexes.iteritems(): + if not index_name in collection_indexes: + # Get a copy actually so we don't modify the actual + # structure + index_data = copy.copy(index_data) + index = index_data.pop('index') + collection.create_index( + index, name=index_name, **index_data) + + indexes_added.append((collection_name, index_name)) + + return indexes_added + + +def remove_deprecated_indexes(database, deprecated_indexes=DEPRECATED_INDEXES): + """ + Remove any deprecated indexes from the database. + + Args: + - database: pymongo or mongokit database instance. + - deprecated_indexes: the indexes to deprecate in the pattern of: + {'collection_name': { + 'identifier': { + 'index': [index_foo_goes_here], + 'unique': True}} + + (... although we really only need the 'identifier' here, as the + rest of the information isn't used in this case. But it's kept + around so we can remember what it was) + + Returns: + A list of indexes removed in form ('collection', 'index_name') + """ + indexes_removed = [] + + for collection_name, indexes in deprecated_indexes.iteritems(): + collection = database[collection_name] + collection_indexes = collection.index_information().keys() + + for index_name, index_data in indexes.iteritems(): + if index_name in collection_indexes: + collection.drop_index(index_name) + + indexes_removed.append((collection_name, index_name)) + + return indexes_removed + + +################# +# Migration tools +################# + +# The default migration registry... +# +# Don't set this yourself! RegisterMigration will automatically fill +# this with stuff via decorating methods in migrations.py + +class MissingCurrentMigration(Exception): + pass + + +MIGRATIONS = {} + + +class RegisterMigration(object): + """ + Tool for registering migrations + + Call like: + + @RegisterMigration(33) + def update_dwarves(database): + [...] + + This will register your migration with the default migration + registry. Alternately, to specify a very specific + migration_registry, you can pass in that as the second argument. + + Note, the number of your migration should NEVER be 0 or less than + 0. 0 is the default "no migrations" state! + """ + def __init__(self, migration_number, migration_registry=MIGRATIONS): + assert migration_number > 0, "Migration number must be > 0!" + assert migration_number not in migration_registry, \ + "Duplicate migration numbers detected! That's not allowed!" + + self.migration_number = migration_number + self.migration_registry = migration_registry + + def __call__(self, migration): + self.migration_registry[self.migration_number] = migration + return migration + + +class MigrationManager(object): + """ + Migration handling tool. + + Takes information about a database, lets you update the database + to the latest migrations, etc. + """ + def __init__(self, database, migration_registry=MIGRATIONS): + """ + Args: + - database: database we're going to migrate + - migration_registry: where we should find all migrations to + run + """ + self.database = database + self.migration_registry = migration_registry + self._sorted_migrations = None + + def _ensure_current_migration_record(self): + """ + If there isn't a database[u'app_metadata'] mediagoblin entry + with the 'current_migration', throw an error. + """ + if self.database_current_migration() is None: + raise MissingCurrentMigration( + "Tried to call function which requires " + "'current_migration' set in database") + + @property + def sorted_migrations(self): + """ + Sort migrations if necessary and store in self._sorted_migrations + """ + if not self._sorted_migrations: + self._sorted_migrations = sorted( + self.migration_registry.items(), + # sort on the key... the migration number + key=lambda migration_tuple: migration_tuple[0]) + + return self._sorted_migrations + + def latest_migration(self): + """ + Return a migration number for the latest migration, or 0 if + there are no migrations. + """ + if self.sorted_migrations: + return self.sorted_migrations[-1][0] + else: + # If no migrations have been set, we start at 0. + return 0 + + def set_current_migration(self, migration_number): + """ + Set the migration in the database to migration_number + """ + # Add the mediagoblin migration if necessary + self.database[u'app_metadata'].update( + {u'_id': u'mediagoblin'}, + {u'$set': {u'current_migration': migration_number}}, + upsert=True) + + def install_migration_version_if_missing(self): + """ + Sets the migration to the latest version if no migration + version at all is set. + """ + mgoblin_metadata = self.database[u'app_metadata'].find_one( + {u'_id': u'mediagoblin'}) + if not mgoblin_metadata: + latest_migration = self.latest_migration() + self.set_current_migration(latest_migration) + + def database_current_migration(self): + """ + Return the current migration in the database. + """ + mgoblin_metadata = self.database[u'app_metadata'].find_one( + {u'_id': u'mediagoblin'}) + if not mgoblin_metadata: + return None + else: + return mgoblin_metadata[u'current_migration'] + + def database_at_latest_migration(self): + """ + See if the database is at the latest migration. + Returns a boolean. + """ + current_migration = self.database_current_migration() + return current_migration == self.latest_migration() + + def migrations_to_run(self): + """ + Get a list of migrations to run still, if any. + + Note that calling this will set your migration version to the + latest version if it isn't installed to anything yet! + """ + self._ensure_current_migration_record() + + db_current_migration = self.database_current_migration() + + return [ + (migration_number, migration_func) + for migration_number, migration_func in self.sorted_migrations + if migration_number > db_current_migration] + + def migrate_new(self, pre_callback=None, post_callback=None): + """ + Run all migrations. + + Includes two optional args: + - pre_callback: if called, this is a callback on something to + run pre-migration. Takes (migration_number, migration_func) + as arguments + - pre_callback: if called, this is a callback on something to + run post-migration. Takes (migration_number, migration_func) + as arguments + """ + # If we aren't set to any version number, presume we're at the + # latest (which means we'll do nothing here...) + self.install_migration_version_if_missing() + + for migration_number, migration_func in self.migrations_to_run(): + if pre_callback: + pre_callback(migration_number, migration_func) + migration_func(self.database) + self.set_current_migration(migration_number) + if post_callback: + post_callback(migration_number, migration_func) diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index e2065693..3fd96a1d 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -14,279 +14,5 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -""" -Utilities for database operations. - -Some note on migration and indexing tools: - -We store information about what the state of the database is in the -'mediagoblin' document of the 'app_metadata' collection. Keys in that -document relevant to here: - - - 'migration_number': The integer representing the current state of - the migrations -""" - -import copy - -# Imports that other modules might use -from pymongo import ASCENDING, DESCENDING -from pymongo.errors import InvalidId -from mongokit import ObjectId - -from mediagoblin.db.mongo.indexes import ACTIVE_INDEXES, DEPRECATED_INDEXES - - -################ -# Indexing tools -################ - - -def add_new_indexes(database, active_indexes=ACTIVE_INDEXES): - """ - Add any new indexes to the database. - - Args: - - database: pymongo or mongokit database instance. - - active_indexes: indexes to possibly add in the pattern of: - {'collection_name': { - 'identifier': { - 'index': [index_foo_goes_here], - 'unique': True}} - where 'index' is the index to add and all other options are - arguments for collection.create_index. - - Returns: - A list of indexes added in form ('collection', 'index_name') - """ - indexes_added = [] - - for collection_name, indexes in active_indexes.iteritems(): - collection = database[collection_name] - collection_indexes = collection.index_information().keys() - - for index_name, index_data in indexes.iteritems(): - if not index_name in collection_indexes: - # Get a copy actually so we don't modify the actual - # structure - index_data = copy.copy(index_data) - index = index_data.pop('index') - collection.create_index( - index, name=index_name, **index_data) - - indexes_added.append((collection_name, index_name)) - - return indexes_added - - -def remove_deprecated_indexes(database, deprecated_indexes=DEPRECATED_INDEXES): - """ - Remove any deprecated indexes from the database. - - Args: - - database: pymongo or mongokit database instance. - - deprecated_indexes: the indexes to deprecate in the pattern of: - {'collection_name': { - 'identifier': { - 'index': [index_foo_goes_here], - 'unique': True}} - - (... although we really only need the 'identifier' here, as the - rest of the information isn't used in this case. But it's kept - around so we can remember what it was) - - Returns: - A list of indexes removed in form ('collection', 'index_name') - """ - indexes_removed = [] - - for collection_name, indexes in deprecated_indexes.iteritems(): - collection = database[collection_name] - collection_indexes = collection.index_information().keys() - - for index_name, index_data in indexes.iteritems(): - if index_name in collection_indexes: - collection.drop_index(index_name) - - indexes_removed.append((collection_name, index_name)) - - return indexes_removed - - -################# -# Migration tools -################# - -# The default migration registry... -# -# Don't set this yourself! RegisterMigration will automatically fill -# this with stuff via decorating methods in migrations.py - -class MissingCurrentMigration(Exception): - pass - - -MIGRATIONS = {} - - -class RegisterMigration(object): - """ - Tool for registering migrations - - Call like: - - @RegisterMigration(33) - def update_dwarves(database): - [...] - - This will register your migration with the default migration - registry. Alternately, to specify a very specific - migration_registry, you can pass in that as the second argument. - - Note, the number of your migration should NEVER be 0 or less than - 0. 0 is the default "no migrations" state! - """ - def __init__(self, migration_number, migration_registry=MIGRATIONS): - assert migration_number > 0, "Migration number must be > 0!" - assert migration_number not in migration_registry, \ - "Duplicate migration numbers detected! That's not allowed!" - - self.migration_number = migration_number - self.migration_registry = migration_registry - - def __call__(self, migration): - self.migration_registry[self.migration_number] = migration - return migration - - -class MigrationManager(object): - """ - Migration handling tool. - - Takes information about a database, lets you update the database - to the latest migrations, etc. - """ - def __init__(self, database, migration_registry=MIGRATIONS): - """ - Args: - - database: database we're going to migrate - - migration_registry: where we should find all migrations to - run - """ - self.database = database - self.migration_registry = migration_registry - self._sorted_migrations = None - - def _ensure_current_migration_record(self): - """ - If there isn't a database[u'app_metadata'] mediagoblin entry - with the 'current_migration', throw an error. - """ - if self.database_current_migration() is None: - raise MissingCurrentMigration( - "Tried to call function which requires " - "'current_migration' set in database") - - @property - def sorted_migrations(self): - """ - Sort migrations if necessary and store in self._sorted_migrations - """ - if not self._sorted_migrations: - self._sorted_migrations = sorted( - self.migration_registry.items(), - # sort on the key... the migration number - key=lambda migration_tuple: migration_tuple[0]) - - return self._sorted_migrations - - def latest_migration(self): - """ - Return a migration number for the latest migration, or 0 if - there are no migrations. - """ - if self.sorted_migrations: - return self.sorted_migrations[-1][0] - else: - # If no migrations have been set, we start at 0. - return 0 - - def set_current_migration(self, migration_number): - """ - Set the migration in the database to migration_number - """ - # Add the mediagoblin migration if necessary - self.database[u'app_metadata'].update( - {u'_id': u'mediagoblin'}, - {u'$set': {u'current_migration': migration_number}}, - upsert=True) - - def install_migration_version_if_missing(self): - """ - Sets the migration to the latest version if no migration - version at all is set. - """ - mgoblin_metadata = self.database[u'app_metadata'].find_one( - {u'_id': u'mediagoblin'}) - if not mgoblin_metadata: - latest_migration = self.latest_migration() - self.set_current_migration(latest_migration) - - def database_current_migration(self): - """ - Return the current migration in the database. - """ - mgoblin_metadata = self.database[u'app_metadata'].find_one( - {u'_id': u'mediagoblin'}) - if not mgoblin_metadata: - return None - else: - return mgoblin_metadata[u'current_migration'] - - def database_at_latest_migration(self): - """ - See if the database is at the latest migration. - Returns a boolean. - """ - current_migration = self.database_current_migration() - return current_migration == self.latest_migration() - - def migrations_to_run(self): - """ - Get a list of migrations to run still, if any. - - Note that calling this will set your migration version to the - latest version if it isn't installed to anything yet! - """ - self._ensure_current_migration_record() - - db_current_migration = self.database_current_migration() - - return [ - (migration_number, migration_func) - for migration_number, migration_func in self.sorted_migrations - if migration_number > db_current_migration] - - def migrate_new(self, pre_callback=None, post_callback=None): - """ - Run all migrations. - - Includes two optional args: - - pre_callback: if called, this is a callback on something to - run pre-migration. Takes (migration_number, migration_func) - as arguments - - pre_callback: if called, this is a callback on something to - run post-migration. Takes (migration_number, migration_func) - as arguments - """ - # If we aren't set to any version number, presume we're at the - # latest (which means we'll do nothing here...) - self.install_migration_version_if_missing() - - for migration_number, migration_func in self.migrations_to_run(): - if pre_callback: - pre_callback(migration_number, migration_func) - migration_func(self.database) - self.set_current_migration(migration_number) - if post_callback: - post_callback(migration_number, migration_func) +from mediagoblin.db.mongo.util import (MigrationManager, ObjectId, InvalidId, + DESCENDING) diff --git a/mediagoblin/tests/test_migrations.py b/mediagoblin/tests/test_migrations.py index e7cef0a1..3e2e37ee 100644 --- a/mediagoblin/tests/test_migrations.py +++ b/mediagoblin/tests/test_migrations.py @@ -20,7 +20,7 @@ from pymongo import Connection from mediagoblin.tests.tools import ( install_fixtures_simple, assert_db_meets_expected) -from mediagoblin.db.util import ( +from mediagoblin.db.mongo.util import ( RegisterMigration, MigrationManager, ObjectId, MissingCurrentMigration) from mediagoblin.db.migrations import add_table_field From faf74067dae0f6f9d200a30369e9b7a4501b66ab Mon Sep 17 00:00:00 2001 From: Elrond Date: Tue, 20 Dec 2011 20:33:33 +0100 Subject: [PATCH 1313/2731] Move db/migrations.py -> db/mongo/migrations.py And change references. --- mediagoblin/db/models.py | 2 +- mediagoblin/db/{ => mongo}/migrations.py | 0 mediagoblin/init/__init__.py | 2 +- mediagoblin/tests/test_migrations.py | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) rename mediagoblin/db/{ => mongo}/migrations.py (100%) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 51c6e98e..e2ac1b5a 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -21,7 +21,7 @@ from mongokit import Document from mediagoblin.auth import lib as auth_lib from mediagoblin import mg_globals -from mediagoblin.db import migrations +from mediagoblin.db.mongo import migrations from mediagoblin.db.mongo.util import ASCENDING, DESCENDING, ObjectId from mediagoblin.tools.pagination import Pagination from mediagoblin.tools import url, common diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/mongo/migrations.py similarity index 100% rename from mediagoblin/db/migrations.py rename to mediagoblin/db/mongo/migrations.py diff --git a/mediagoblin/init/__init__.py b/mediagoblin/init/__init__.py index 08a0618d..5f7f83d4 100644 --- a/mediagoblin/init/__init__.py +++ b/mediagoblin/init/__init__.py @@ -57,7 +57,7 @@ def setup_database(): app_config = mg_globals.app_config # This MUST be imported so as to set up the appropriate migrations! - from mediagoblin.db import migrations + from mediagoblin.db.mongo import migrations # Set up the database connection, db = setup_connection_and_db_from_config(app_config) diff --git a/mediagoblin/tests/test_migrations.py b/mediagoblin/tests/test_migrations.py index 3e2e37ee..8e573f5a 100644 --- a/mediagoblin/tests/test_migrations.py +++ b/mediagoblin/tests/test_migrations.py @@ -23,7 +23,7 @@ from mediagoblin.tests.tools import ( from mediagoblin.db.mongo.util import ( RegisterMigration, MigrationManager, ObjectId, MissingCurrentMigration) -from mediagoblin.db.migrations import add_table_field +from mediagoblin.db.mongo.migrations import add_table_field # This one will get filled with local migrations TEST_MIGRATION_REGISTRY = {} From 4ae4012dad3f5638ea7b510d40f0b4d0b641fe2a Mon Sep 17 00:00:00 2001 From: Elrond Date: Tue, 20 Dec 2011 20:41:21 +0100 Subject: [PATCH 1314/2731] Move db/models.py -> db/mongo/models.py To my surprise, there was only ONE reference to models.py. From open.py. --- mediagoblin/db/{ => mongo}/models.py | 0 mediagoblin/db/mongo/open.py | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename mediagoblin/db/{ => mongo}/models.py (100%) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/mongo/models.py similarity index 100% rename from mediagoblin/db/models.py rename to mediagoblin/db/mongo/models.py diff --git a/mediagoblin/db/mongo/open.py b/mediagoblin/db/mongo/open.py index e677ba12..63889292 100644 --- a/mediagoblin/db/mongo/open.py +++ b/mediagoblin/db/mongo/open.py @@ -17,7 +17,7 @@ import pymongo import mongokit from paste.deploy.converters import asint -from mediagoblin.db import models +from mediagoblin.db.mongo import models def connect_database_from_config(app_config, use_pymongo=False): From c8cb0ee88f8eb667af77c5741cfb04f95afe66b0 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Tue, 20 Dec 2011 22:06:36 +0100 Subject: [PATCH 1315/2731] Polishing the webfinger implementation - Changed quotes in the templates from " to ' - Changed all link generation to use request.urlgen - Moved xrd links data generation from template to view - Added parsing of the account URI using urlparse --- .../mediagoblin/webfinger/host-meta.xml | 12 +- .../templates/mediagoblin/webfinger/xrd.xml | 20 +- mediagoblin/tools/feed.py | 527 ++++++++++++++++++ mediagoblin/webfinger/views.py | 94 +++- 4 files changed, 623 insertions(+), 30 deletions(-) create mode 100644 mediagoblin/tools/feed.py diff --git a/mediagoblin/templates/mediagoblin/webfinger/host-meta.xml b/mediagoblin/templates/mediagoblin/webfinger/host-meta.xml index dff2c9aa..95a1a176 100644 --- a/mediagoblin/templates/mediagoblin/webfinger/host-meta.xml +++ b/mediagoblin/templates/mediagoblin/webfinger/host-meta.xml @@ -14,14 +14,14 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -#} - - + + {{ request.host }} - - {{ llrd_title }} + + {{ lrdd_title }} diff --git a/mediagoblin/templates/mediagoblin/webfinger/xrd.xml b/mediagoblin/templates/mediagoblin/webfinger/xrd.xml index 9a793637..1fe34577 100644 --- a/mediagoblin/templates/mediagoblin/webfinger/xrd.xml +++ b/mediagoblin/templates/mediagoblin/webfinger/xrd.xml @@ -14,16 +14,14 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -#} - - + + - {{ request.GET.get('uri') }} - http://{{ request.host }}/u/{{ username }} - - - - + {{ subject }} + {{ alias }} + {% for link in links %} + + {%- endfor %} diff --git a/mediagoblin/tools/feed.py b/mediagoblin/tools/feed.py new file mode 100644 index 00000000..7c14a42a --- /dev/null +++ b/mediagoblin/tools/feed.py @@ -0,0 +1,527 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +from lxml import etree +from lxml.builder import ElementMaker +from werkzeug.wrappers import BaseResponse + +import datetime + +""" + Feed engine written for GNU MediaGoblin, + based on werkzeug atom feeds tool (werkzeug.contrib.atom) + + The feed library contains two types of classes: + - Entities that contains the feed data. + - Generators that are injected to the above classes and are able to + generate feeds in a specific format. An atom feed genearator is + provided, but others could be written as well. + + The Werkzeurg library interface have been mimetized, so the replacement can + be done with only switching the import call. + + Example:: + + def atom_feed(request): + feed = AtomFeed("My Blog", feed_url=request.url, + url=request.host_url, + subtitle="My example blog for a feed test.") + for post in Post.query.limit(10).all(): + feed.add(post.title, post.body, content_type='html', + author=post.author, url=post.url, id=post.uid, + updated=post.last_update, published=post.pub_date) + return feed.get_response() +""" + + +## +# Class FeedGenerator +# +class FeedGenerator(object): + def __init__(self): + pass + + def format_iso8601(self, obj): + """Format a datetime object for iso8601""" + return obj.strftime('%Y-%m-%dT%H:%M:%SZ') + + +## +# Class AtomGenerator +# +class AtomGenerator(FeedGenerator): + """ Generator that generate feeds in Atom format """ + NAMESPACE = "http://www.w3.org/2005/Atom" + + def __init__(self): + pass + + def generate(self, data): + """Return an XML tree representation.""" + if isinstance(data, AtomFeed): + return self.generate_feed(data) + elif isinstance(data, FeedEntry): + return self.generate_feedEntry(data) + + def generate_text_block(self, name, content, content_type=None): + """Helper method for the builder that creates an XML text block.""" + root = etree.Element(name) + + if content_type: + root.set('type', content_type) + + if content_type == 'xhtml': + div_ele = etree.Element('div') + div_ele.set('xmlns', XHTML_NAMESPACE) + div_ele.text = content + root.append(div_ele) + else: + root.text = content + + return root + + def generate_feed(self, data): + """Return an XML tree representation of the feed.""" + NSMAP = {None: self.NAMESPACE} + root = etree.Element("feed", nsmap=NSMAP) + + E = ElementMaker() + + # atom demands either an author element in every entry or a global one + if not data.author: + if False in map(lambda e: bool(e.author), data.entries): + data.author = ({'name': 'Unknown author'},) + + if not data.updated: + dates = sorted([entry.updated for entry in data.entries]) + data.updated = dates and dates[-1] or datetime.utcnow() + + title_ele = self.generate_text_block( + 'title', + data.title, + data.title_type) + root.append(title_ele) + + root.append(E.id(data.id)) + root.append(E.updated(self.format_iso8601(data.updated))) + + if data.url: + link_ele = etree.Element("link") + link_ele.set("href", data.url) + root.append(link_ele) + + if data.feed_url: + link_ele = etree.Element("link") + link_ele.set("href", data.feed_url) + link_ele.set("rel", "self") + root.append(link_ele) + + for link in data.links: + link_ele = etree.Element("link") + for name, value in link.items(): + link_ele.set(name, value) + root.append(link_ele) + + for author in data.author: + author_element = etree.Element("author") + author_element.append(E.name(author['name'])) + if 'uri' in author: + author_element.append(E.name(author['uri'])) + if 'email' in author: + author_element.append(E.name(author['email'])) + + root.append(author_element) + + if data.subtitle: + root.append(self.generate_text_block('subtitle', data.subtitle, + data.subtitle_type)) + if data.icon: + root.append(E.icon(data.icon)) + + if data.logo: + root.append(E.logo(data.logo)) + + if data.rights: + root.append(self.generate_text_block('rights', data.rights, + data.rights_type)) + + generator_name, generator_url, generator_version = data.generator + if generator_name or generator_url or generator_version: + generator_ele = etree.Element("generator") + if generator_url: + generator_ele.set("uri", generator_url, True) + if generator_version: + generator_ele.set("version", generator_version) + + generator_ele.text = generator_name + + root.append(generator_ele) + + for entry in data.entries: + root.append(entry.generate()) + + return root + + def generate_feedEntry(self, data): + """Return an XML tree representation of the feed entry.""" + E = ElementMaker() + root = etree.Element("entry") + + if data.xml_base: + root.base = data.xml_base + + title_ele = self.generate_text_block( + 'title', + data.title, + data.title_type) + root.append(title_ele) + + root.append(E.id(data.id)) + root.append(E.updated(self.format_iso8601(data.updated))) + + if data.published: + root.append(E.published(self.format_iso8601(data.published))) + + if data.url: + link_ele = etree.Element("link") + link_ele.set("href", data.url) + root.append(link_ele) + + for author in data.author: + author_element = etree.Element("author") + author_element.append(E.name(author['name'])) + if 'uri' in author: + author_element.append(E.name(author['uri'])) + if 'email' in author: + author_element.append(E.name(author['email'])) + + root.append(author_element) + + for link in data.links: + link_ele = etree.Element("link") + for name, value in link.items(): + link_ele.set(name, value) + root.append(link_ele) + + print data.thumbnail + + if data.thumbnail: + namespace = "http://search.yahoo.com/mrss/" + nsmap = {"media": namespace} + thumbnail_ele = etree.Element( + "{http://search.yahoo.com/mrss/}thumbnail", nsmap=nsmap) + thumbnail_ele.set("url", data.thumbnail) + + root.append(thumbnail_ele) + + if data.summary: + summary_ele = self.generate_text_block('summary', data.summary, + data.summary_type) + root.append(summary_ele) + + if data.content: + content = data.content + + if data.thumbnail: + thumbnail_html = etree.Element("img") + thumbnail_html.set("src", data.thumbnail) + content = etree.tostring(thumbnail_html) + content + + content_ele = self.generate_text_block('content', content, + data.content_type) + root.append(content_ele) + + for name, value in data.custom.items(): + element = etree.Element(name) + element.text = value + root.append(element) + + return root + + +## +# Class AtomFeed +# +class AtomFeed(object): + """ + A helper class that contains feeds. By default, it uses the AtomGenerator + but others could be injected. It has the AtomFeed name to keep the name + it had on werkzeug library + + Following Werkzeurg implementation, the constructor takes a lot of + parameters. As an addition, the class will also store custom parameters for + fields not explicitly supported by the library. + + :param feed_generator: The generator that will be used to generate the feed + defaults to AtomGenerator + :param title: the title of the feed. Required. + :param title_type: the type attribute for the title element. One of + ``'html'``, ``'text'`` or ``'xhtml'``. + :param url: the url for the feed (not the url *of* the feed) + :param id: a globally unique id for the feed. Must be an URI. If + not present the `feed_url` is used, but one of both is + required. + :param updated: the time the feed was modified the last time. Must + be a :class:`datetime.datetime` object. If not + present the latest entry's `updated` is used. + :param feed_url: the URL to the feed. Should be the URL that was + requested. + :param author: the author of the feed. Must be either a string (the + name) or a dict with name (required) and uri or + email (both optional). Can be a list of (may be + mixed, too) strings and dicts, too, if there are + multiple authors. Required if not every entry has an + author element. + :param icon: an icon for the feed. + :param logo: a logo for the feed. + :param rights: copyright information for the feed. + :param rights_type: the type attribute for the rights element. One of + ``'html'``, ``'text'`` or ``'xhtml'``. Default is + ``'text'``. + :param subtitle: a short description of the feed. + :param subtitle_type: the type attribute for the subtitle element. + One of ``'text'``, ``'html'``, ``'text'`` + or ``'xhtml'``. Default is ``'text'``. + :param links: additional links. Must be a list of dictionaries with + href (required) and rel, type, hreflang, title, length + (all optional) + :param generator: the software that generated this feed. This must be + a tuple in the form ``(name, url, version)``. If + you don't want to specify one of them, set the item + to `None`. + :param entries: a list with the entries for the feed. Entries can also + be added later with :meth:`add`. + + For more information on the elements see + http://www.atomenabled.org/developers/syndication/ + + Everywhere where a list is demanded, any iterable can be used. + """ + + default_generator = ('GNU Mediagoblin', None, None) + default_feed_generator = AtomGenerator() + + def __init__(self, title=None, entries=None, feed_generator=None, + **kwargs): + self.feed_generator = feed_generator + self.title = title + self.title_type = kwargs.get('title_type', 'text') + self.url = kwargs.get('url') + self.feed_url = kwargs.get('feed_url', self.url) + self.id = kwargs.get('id', self.feed_url) + self.updated = kwargs.get('updated') + self.author = kwargs.get('author', ()) + self.icon = kwargs.get('icon') + self.logo = kwargs.get('logo') + self.rights = kwargs.get('rights') + self.rights_type = kwargs.get('rights_type') + self.subtitle = kwargs.get('subtitle') + self.subtitle_type = kwargs.get('subtitle_type', 'text') + self.generator = kwargs.get('generator') + if self.generator is None: + self.generator = self.default_generator + self.links = kwargs.get('links', []) + self.entries = entries and list(entries) or [] + + if not hasattr(self.author, '__iter__') \ + or isinstance(self.author, (basestring, dict)): + self.author = [self.author] + for i, author in enumerate(self.author): + if not isinstance(author, dict): + self.author[i] = {'name': author} + + if not self.feed_generator: + self.feed_generator = self.default_feed_generator + if not self.title: + raise ValueError('title is required') + if not self.id: + raise ValueError('id is required') + for author in self.author: + if 'name' not in author: + raise TypeError('author must contain at least a name') + + # Look for arguments that we haven't matched with object members. + # They will be added to the custom dictionary. + # This way we can have custom fields not specified in this class. + self.custom = {} + properties = dir(self) + + for name, value in kwargs.items(): + if (properties.count(name) == 0): + self.custom[name] = value + + def add(self, *args, **kwargs): + """Add a new entry to the feed. This function can either be called + with a :class:`FeedEntry` or some keyword and positional arguments + that are forwarded to the :class:`FeedEntry` constructor. + """ + if len(args) == 1 and not kwargs and isinstance(args[0], FeedEntry): + args[0].generator = self.generator + self.entries.append(args[0]) + else: + kwargs['feed_url'] = self.feed_url + self.entries.append(FeedEntry(feed_generator=self.feed_generator, + *args, **kwargs)) + + def __repr__(self): + return '<%s %r (%d entries)>' % ( + self.__class__.__name__, + self.title, + len(self.entries) + ) + + def generate(self): + """Return an XML tree representation of the feed.""" + return self.feed_generator.generate(self) + + def to_string(self): + """Convert the feed into a string.""" + return etree.tostring(self.generate(), encoding='UTF-8') + + def get_response(self): + """Return a response object for the feed.""" + return BaseResponse(self.to_string(), mimetype='application/atom+xml') + + def __call__(self, environ, start_response): + """Use the class as WSGI response object.""" + return self.get_response()(environ, start_response) + + def __unicode__(self): + return self.to_string() + + def __str__(self): + return self.to_string().encode('utf-8') + + +## +# Class FeedEntry +# +class FeedEntry(object): + """Represents a single entry in a feed. + + Following Werkzeurg implementation, the constructor takes a lot of + parameters. As an addition, the class will also store custom parameters for + fields not explicitly supported by the library. + + :param feed_generator: The generator that will be used to generate the feed. + defaults to AtomGenerator + :param title: the title of the entry. Required. + :param title_type: the type attribute for the title element. One of + ``'html'``, ``'text'`` or ``'xhtml'``. + :param content: the content of the entry. + :param content_type: the type attribute for the content element. One + of ``'html'``, ``'text'`` or ``'xhtml'``. + :param summary: a summary of the entry's content. + :param summary_type: the type attribute for the summary element. One + of ``'html'``, ``'text'`` or ``'xhtml'``. + :param url: the url for the entry. + :param id: a globally unique id for the entry. Must be an URI. If + not present the URL is used, but one of both is required. + :param updated: the time the entry was modified the last time. Must + be a :class:`datetime.datetime` object. Required. + :param author: the author of the feed. Must be either a string (the + name) or a dict with name (required) and uri or + email (both optional). Can be a list of (may be + mixed, too) strings and dicts, too, if there are + multiple authors. Required if not every entry has an + author element. + :param published: the time the entry was initially published. Must + be a :class:`datetime.datetime` object. + :param rights: copyright information for the entry. + :param rights_type: the type attribute for the rights element. One of + ``'html'``, ``'text'`` or ``'xhtml'``. Default is + ``'text'``. + :param links: additional links. Must be a list of dictionaries with + href (required) and rel, type, hreflang, title, length + (all optional) + :param xml_base: The xml base (url) for this feed item. If not provided + it will default to the item url. + + For more information on the elements see + http://www.atomenabled.org/developers/syndication/ + + Everywhere where a list is demanded, any iterable can be used. + """ + + default_feed_generator = AtomGenerator() + + def __init__(self, title=None, content=None, feed_url=None, + feed_generator=None, **kwargs): + self.feed_generator = feed_generator + self.title = title + self.title_type = kwargs.get('title_type', 'text') + self.content = content + self.content_type = kwargs.get('content_type', 'html') + self.url = kwargs.get('url') + self.id = kwargs.get('id', self.url) + self.updated = kwargs.get('updated') + self.summary = kwargs.get('summary') + self.summary_type = kwargs.get('summary_type', 'html') + self.author = kwargs.get('author') + self.published = kwargs.get('published') + self.rights = kwargs.get('rights') + self.links = kwargs.get('links', []) + self.xml_base = kwargs.get('xml_base', feed_url) + self.thumbnail = kwargs.get('thumbnail') + + + if not hasattr(self.author, '__iter__') \ + or isinstance(self.author, (basestring, dict)): + self.author = [self.author] + for i, author in enumerate(self.author): + if not isinstance(author, dict): + self.author[i] = {'name': author} + + if not self.feed_generator: + self.feed_generator = self.default_feed_generator + if not self.title: + raise ValueError('title is required') + if not self.id: + raise ValueError('id is required') + if not self.updated: + raise ValueError('updated is required') + + # Look for arguments that we haven't matched with object members. + # They will be added to the custom dictionary. + # This way we can have custom fields not specified in this class. + self.custom = {} + properties = dir(self) + + for name, value in kwargs.items(): + if ( properties.count(name) == 0 ): + self.custom[name] = value + + + def __repr__(self): + return '<%s %r>' % ( + self.__class__.__name__, + self.title + ) + + def generate(self): + """Returns lxml element tree representation of the feed entry""" + return self.feed_generator.generate(self) + + def to_string(self): + """Convert the feed item into a unicode object.""" + return etree.tostring(self.generate(), encoding='utf-8') + + def __unicode__(self): + return self.to_string() + + def __str__(self): + return self.to_string().encode('utf-8') + + diff --git a/mediagoblin/webfinger/views.py b/mediagoblin/webfinger/views.py index 7cbd0913..e9aa600c 100644 --- a/mediagoblin/webfinger/views.py +++ b/mediagoblin/webfinger/views.py @@ -15,32 +15,100 @@ # along with this program. If not, see . import re -import mediagoblin.mg_globals as mg_globals -from mediagoblin.tools.response import render_to_response +from urlparse import urlparse -LRDD_TEMPLATE = '{protocol}://{host}/api/webfinger/xrd?uri={{uri}}' +from mediagoblin.tools.response import render_to_response, render_404 def host_meta(request): ''' Webfinger host-meta ''' + + placeholder = 'MG_LRDD_PLACEHOLDER' + + lrdd_title = 'GNU MediaGoblin - User lookup' + + lrdd_template = request.urlgen( + 'mediagoblin.webfinger.xrd', + uri=placeholder, + qualified=True) + return render_to_response( request, 'mediagoblin/webfinger/host-meta.xml', {'request': request, - 'lrdd_template': LRDD_TEMPLATE.format( - protocol='http', - host=request.host)}) + 'lrdd_template': lrdd_template, + 'lrdd_title': lrdd_title, + 'placeholder': placeholder}) + +MATCH_SCHEME_PATTERN = re.compile(r'^acct:') def xrd(request): ''' Find user data based on a webfinger URI ''' - return render_to_response( - request, - 'mediagoblin/webfinger/xrd.xml', - {'request': request, - 'username': re.search( - r'^(acct:)?([^@]*)', - request.GET.get('uri')).group(2)}) + param_uri = request.GET.get('uri') + + if not param_uri: + return render_404(request) + + ''' + :py:module:`urlparse` does not recognize usernames in URIs of the + form ``acct:user@example.org`` or ``user@example.org``. + ''' + if not MATCH_SCHEME_PATTERN.search(param_uri): + # Assume the URI is in the form ``user@example.org`` + uri = 'acct://' + param_uri + else: + # Assumes the URI looks like ``acct:user@example.org + uri = MATCH_SCHEME_PATTERN.sub( + 'acct://', param_uri) + + parsed = urlparse(uri) + + xrd_subject = param_uri + + # TODO: Verify that the user exists + # Q: Does webfinger support error handling in this case? + # Returning 404 seems intuitive, need to check. + if parsed.username: + # The user object + # TODO: Fetch from database instead of using the MockUser + user = MockUser() + user.username = parsed.username + + xrd_links = [ + {'attrs': { + 'rel': 'http://microformats.org/profile/hcard', + 'href': request.urlgen( + 'mediagoblin.user_pages.user_home', + user=user.username, + qualified=True)}}, + {'attrs': { + 'rel': 'http://schemas.google.com/g/2010#updates-from', + 'href': request.urlgen( + 'mediagoblin.user_pages.atom_feed', + user=user.username, + qualified=True)}}] + + xrd_alias = request.urlgen( + 'mediagoblin.user_pages.user_home', + user=user.username, + qualified=True) + + return render_to_response( + request, + 'mediagoblin/webfinger/xrd.xml', + {'request': request, + 'subject': xrd_subject, + 'alias': xrd_alias, + 'links': xrd_links }) + else: + return render_404(request) + +class MockUser(object): + ''' + TEMPORARY user object + ''' + username = None From 448a58534f585aac95db9d04f43d73634e96eb4b Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Tue, 20 Dec 2011 22:13:43 +0100 Subject: [PATCH 1316/2731] Removed mediagoblin.tools.feed which was accidentally included --- mediagoblin/tools/feed.py | 527 -------------------------------------- 1 file changed, 527 deletions(-) delete mode 100644 mediagoblin/tools/feed.py diff --git a/mediagoblin/tools/feed.py b/mediagoblin/tools/feed.py deleted file mode 100644 index 7c14a42a..00000000 --- a/mediagoblin/tools/feed.py +++ /dev/null @@ -1,527 +0,0 @@ -# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -from lxml import etree -from lxml.builder import ElementMaker -from werkzeug.wrappers import BaseResponse - -import datetime - -""" - Feed engine written for GNU MediaGoblin, - based on werkzeug atom feeds tool (werkzeug.contrib.atom) - - The feed library contains two types of classes: - - Entities that contains the feed data. - - Generators that are injected to the above classes and are able to - generate feeds in a specific format. An atom feed genearator is - provided, but others could be written as well. - - The Werkzeurg library interface have been mimetized, so the replacement can - be done with only switching the import call. - - Example:: - - def atom_feed(request): - feed = AtomFeed("My Blog", feed_url=request.url, - url=request.host_url, - subtitle="My example blog for a feed test.") - for post in Post.query.limit(10).all(): - feed.add(post.title, post.body, content_type='html', - author=post.author, url=post.url, id=post.uid, - updated=post.last_update, published=post.pub_date) - return feed.get_response() -""" - - -## -# Class FeedGenerator -# -class FeedGenerator(object): - def __init__(self): - pass - - def format_iso8601(self, obj): - """Format a datetime object for iso8601""" - return obj.strftime('%Y-%m-%dT%H:%M:%SZ') - - -## -# Class AtomGenerator -# -class AtomGenerator(FeedGenerator): - """ Generator that generate feeds in Atom format """ - NAMESPACE = "http://www.w3.org/2005/Atom" - - def __init__(self): - pass - - def generate(self, data): - """Return an XML tree representation.""" - if isinstance(data, AtomFeed): - return self.generate_feed(data) - elif isinstance(data, FeedEntry): - return self.generate_feedEntry(data) - - def generate_text_block(self, name, content, content_type=None): - """Helper method for the builder that creates an XML text block.""" - root = etree.Element(name) - - if content_type: - root.set('type', content_type) - - if content_type == 'xhtml': - div_ele = etree.Element('div') - div_ele.set('xmlns', XHTML_NAMESPACE) - div_ele.text = content - root.append(div_ele) - else: - root.text = content - - return root - - def generate_feed(self, data): - """Return an XML tree representation of the feed.""" - NSMAP = {None: self.NAMESPACE} - root = etree.Element("feed", nsmap=NSMAP) - - E = ElementMaker() - - # atom demands either an author element in every entry or a global one - if not data.author: - if False in map(lambda e: bool(e.author), data.entries): - data.author = ({'name': 'Unknown author'},) - - if not data.updated: - dates = sorted([entry.updated for entry in data.entries]) - data.updated = dates and dates[-1] or datetime.utcnow() - - title_ele = self.generate_text_block( - 'title', - data.title, - data.title_type) - root.append(title_ele) - - root.append(E.id(data.id)) - root.append(E.updated(self.format_iso8601(data.updated))) - - if data.url: - link_ele = etree.Element("link") - link_ele.set("href", data.url) - root.append(link_ele) - - if data.feed_url: - link_ele = etree.Element("link") - link_ele.set("href", data.feed_url) - link_ele.set("rel", "self") - root.append(link_ele) - - for link in data.links: - link_ele = etree.Element("link") - for name, value in link.items(): - link_ele.set(name, value) - root.append(link_ele) - - for author in data.author: - author_element = etree.Element("author") - author_element.append(E.name(author['name'])) - if 'uri' in author: - author_element.append(E.name(author['uri'])) - if 'email' in author: - author_element.append(E.name(author['email'])) - - root.append(author_element) - - if data.subtitle: - root.append(self.generate_text_block('subtitle', data.subtitle, - data.subtitle_type)) - if data.icon: - root.append(E.icon(data.icon)) - - if data.logo: - root.append(E.logo(data.logo)) - - if data.rights: - root.append(self.generate_text_block('rights', data.rights, - data.rights_type)) - - generator_name, generator_url, generator_version = data.generator - if generator_name or generator_url or generator_version: - generator_ele = etree.Element("generator") - if generator_url: - generator_ele.set("uri", generator_url, True) - if generator_version: - generator_ele.set("version", generator_version) - - generator_ele.text = generator_name - - root.append(generator_ele) - - for entry in data.entries: - root.append(entry.generate()) - - return root - - def generate_feedEntry(self, data): - """Return an XML tree representation of the feed entry.""" - E = ElementMaker() - root = etree.Element("entry") - - if data.xml_base: - root.base = data.xml_base - - title_ele = self.generate_text_block( - 'title', - data.title, - data.title_type) - root.append(title_ele) - - root.append(E.id(data.id)) - root.append(E.updated(self.format_iso8601(data.updated))) - - if data.published: - root.append(E.published(self.format_iso8601(data.published))) - - if data.url: - link_ele = etree.Element("link") - link_ele.set("href", data.url) - root.append(link_ele) - - for author in data.author: - author_element = etree.Element("author") - author_element.append(E.name(author['name'])) - if 'uri' in author: - author_element.append(E.name(author['uri'])) - if 'email' in author: - author_element.append(E.name(author['email'])) - - root.append(author_element) - - for link in data.links: - link_ele = etree.Element("link") - for name, value in link.items(): - link_ele.set(name, value) - root.append(link_ele) - - print data.thumbnail - - if data.thumbnail: - namespace = "http://search.yahoo.com/mrss/" - nsmap = {"media": namespace} - thumbnail_ele = etree.Element( - "{http://search.yahoo.com/mrss/}thumbnail", nsmap=nsmap) - thumbnail_ele.set("url", data.thumbnail) - - root.append(thumbnail_ele) - - if data.summary: - summary_ele = self.generate_text_block('summary', data.summary, - data.summary_type) - root.append(summary_ele) - - if data.content: - content = data.content - - if data.thumbnail: - thumbnail_html = etree.Element("img") - thumbnail_html.set("src", data.thumbnail) - content = etree.tostring(thumbnail_html) + content - - content_ele = self.generate_text_block('content', content, - data.content_type) - root.append(content_ele) - - for name, value in data.custom.items(): - element = etree.Element(name) - element.text = value - root.append(element) - - return root - - -## -# Class AtomFeed -# -class AtomFeed(object): - """ - A helper class that contains feeds. By default, it uses the AtomGenerator - but others could be injected. It has the AtomFeed name to keep the name - it had on werkzeug library - - Following Werkzeurg implementation, the constructor takes a lot of - parameters. As an addition, the class will also store custom parameters for - fields not explicitly supported by the library. - - :param feed_generator: The generator that will be used to generate the feed - defaults to AtomGenerator - :param title: the title of the feed. Required. - :param title_type: the type attribute for the title element. One of - ``'html'``, ``'text'`` or ``'xhtml'``. - :param url: the url for the feed (not the url *of* the feed) - :param id: a globally unique id for the feed. Must be an URI. If - not present the `feed_url` is used, but one of both is - required. - :param updated: the time the feed was modified the last time. Must - be a :class:`datetime.datetime` object. If not - present the latest entry's `updated` is used. - :param feed_url: the URL to the feed. Should be the URL that was - requested. - :param author: the author of the feed. Must be either a string (the - name) or a dict with name (required) and uri or - email (both optional). Can be a list of (may be - mixed, too) strings and dicts, too, if there are - multiple authors. Required if not every entry has an - author element. - :param icon: an icon for the feed. - :param logo: a logo for the feed. - :param rights: copyright information for the feed. - :param rights_type: the type attribute for the rights element. One of - ``'html'``, ``'text'`` or ``'xhtml'``. Default is - ``'text'``. - :param subtitle: a short description of the feed. - :param subtitle_type: the type attribute for the subtitle element. - One of ``'text'``, ``'html'``, ``'text'`` - or ``'xhtml'``. Default is ``'text'``. - :param links: additional links. Must be a list of dictionaries with - href (required) and rel, type, hreflang, title, length - (all optional) - :param generator: the software that generated this feed. This must be - a tuple in the form ``(name, url, version)``. If - you don't want to specify one of them, set the item - to `None`. - :param entries: a list with the entries for the feed. Entries can also - be added later with :meth:`add`. - - For more information on the elements see - http://www.atomenabled.org/developers/syndication/ - - Everywhere where a list is demanded, any iterable can be used. - """ - - default_generator = ('GNU Mediagoblin', None, None) - default_feed_generator = AtomGenerator() - - def __init__(self, title=None, entries=None, feed_generator=None, - **kwargs): - self.feed_generator = feed_generator - self.title = title - self.title_type = kwargs.get('title_type', 'text') - self.url = kwargs.get('url') - self.feed_url = kwargs.get('feed_url', self.url) - self.id = kwargs.get('id', self.feed_url) - self.updated = kwargs.get('updated') - self.author = kwargs.get('author', ()) - self.icon = kwargs.get('icon') - self.logo = kwargs.get('logo') - self.rights = kwargs.get('rights') - self.rights_type = kwargs.get('rights_type') - self.subtitle = kwargs.get('subtitle') - self.subtitle_type = kwargs.get('subtitle_type', 'text') - self.generator = kwargs.get('generator') - if self.generator is None: - self.generator = self.default_generator - self.links = kwargs.get('links', []) - self.entries = entries and list(entries) or [] - - if not hasattr(self.author, '__iter__') \ - or isinstance(self.author, (basestring, dict)): - self.author = [self.author] - for i, author in enumerate(self.author): - if not isinstance(author, dict): - self.author[i] = {'name': author} - - if not self.feed_generator: - self.feed_generator = self.default_feed_generator - if not self.title: - raise ValueError('title is required') - if not self.id: - raise ValueError('id is required') - for author in self.author: - if 'name' not in author: - raise TypeError('author must contain at least a name') - - # Look for arguments that we haven't matched with object members. - # They will be added to the custom dictionary. - # This way we can have custom fields not specified in this class. - self.custom = {} - properties = dir(self) - - for name, value in kwargs.items(): - if (properties.count(name) == 0): - self.custom[name] = value - - def add(self, *args, **kwargs): - """Add a new entry to the feed. This function can either be called - with a :class:`FeedEntry` or some keyword and positional arguments - that are forwarded to the :class:`FeedEntry` constructor. - """ - if len(args) == 1 and not kwargs and isinstance(args[0], FeedEntry): - args[0].generator = self.generator - self.entries.append(args[0]) - else: - kwargs['feed_url'] = self.feed_url - self.entries.append(FeedEntry(feed_generator=self.feed_generator, - *args, **kwargs)) - - def __repr__(self): - return '<%s %r (%d entries)>' % ( - self.__class__.__name__, - self.title, - len(self.entries) - ) - - def generate(self): - """Return an XML tree representation of the feed.""" - return self.feed_generator.generate(self) - - def to_string(self): - """Convert the feed into a string.""" - return etree.tostring(self.generate(), encoding='UTF-8') - - def get_response(self): - """Return a response object for the feed.""" - return BaseResponse(self.to_string(), mimetype='application/atom+xml') - - def __call__(self, environ, start_response): - """Use the class as WSGI response object.""" - return self.get_response()(environ, start_response) - - def __unicode__(self): - return self.to_string() - - def __str__(self): - return self.to_string().encode('utf-8') - - -## -# Class FeedEntry -# -class FeedEntry(object): - """Represents a single entry in a feed. - - Following Werkzeurg implementation, the constructor takes a lot of - parameters. As an addition, the class will also store custom parameters for - fields not explicitly supported by the library. - - :param feed_generator: The generator that will be used to generate the feed. - defaults to AtomGenerator - :param title: the title of the entry. Required. - :param title_type: the type attribute for the title element. One of - ``'html'``, ``'text'`` or ``'xhtml'``. - :param content: the content of the entry. - :param content_type: the type attribute for the content element. One - of ``'html'``, ``'text'`` or ``'xhtml'``. - :param summary: a summary of the entry's content. - :param summary_type: the type attribute for the summary element. One - of ``'html'``, ``'text'`` or ``'xhtml'``. - :param url: the url for the entry. - :param id: a globally unique id for the entry. Must be an URI. If - not present the URL is used, but one of both is required. - :param updated: the time the entry was modified the last time. Must - be a :class:`datetime.datetime` object. Required. - :param author: the author of the feed. Must be either a string (the - name) or a dict with name (required) and uri or - email (both optional). Can be a list of (may be - mixed, too) strings and dicts, too, if there are - multiple authors. Required if not every entry has an - author element. - :param published: the time the entry was initially published. Must - be a :class:`datetime.datetime` object. - :param rights: copyright information for the entry. - :param rights_type: the type attribute for the rights element. One of - ``'html'``, ``'text'`` or ``'xhtml'``. Default is - ``'text'``. - :param links: additional links. Must be a list of dictionaries with - href (required) and rel, type, hreflang, title, length - (all optional) - :param xml_base: The xml base (url) for this feed item. If not provided - it will default to the item url. - - For more information on the elements see - http://www.atomenabled.org/developers/syndication/ - - Everywhere where a list is demanded, any iterable can be used. - """ - - default_feed_generator = AtomGenerator() - - def __init__(self, title=None, content=None, feed_url=None, - feed_generator=None, **kwargs): - self.feed_generator = feed_generator - self.title = title - self.title_type = kwargs.get('title_type', 'text') - self.content = content - self.content_type = kwargs.get('content_type', 'html') - self.url = kwargs.get('url') - self.id = kwargs.get('id', self.url) - self.updated = kwargs.get('updated') - self.summary = kwargs.get('summary') - self.summary_type = kwargs.get('summary_type', 'html') - self.author = kwargs.get('author') - self.published = kwargs.get('published') - self.rights = kwargs.get('rights') - self.links = kwargs.get('links', []) - self.xml_base = kwargs.get('xml_base', feed_url) - self.thumbnail = kwargs.get('thumbnail') - - - if not hasattr(self.author, '__iter__') \ - or isinstance(self.author, (basestring, dict)): - self.author = [self.author] - for i, author in enumerate(self.author): - if not isinstance(author, dict): - self.author[i] = {'name': author} - - if not self.feed_generator: - self.feed_generator = self.default_feed_generator - if not self.title: - raise ValueError('title is required') - if not self.id: - raise ValueError('id is required') - if not self.updated: - raise ValueError('updated is required') - - # Look for arguments that we haven't matched with object members. - # They will be added to the custom dictionary. - # This way we can have custom fields not specified in this class. - self.custom = {} - properties = dir(self) - - for name, value in kwargs.items(): - if ( properties.count(name) == 0 ): - self.custom[name] = value - - - def __repr__(self): - return '<%s %r>' % ( - self.__class__.__name__, - self.title - ) - - def generate(self): - """Returns lxml element tree representation of the feed entry""" - return self.feed_generator.generate(self) - - def to_string(self): - """Convert the feed item into a unicode object.""" - return etree.tostring(self.generate(), encoding='utf-8') - - def __unicode__(self): - return self.to_string() - - def __str__(self): - return self.to_string().encode('utf-8') - - From 85c916919b1e1fe31472feac74f8c216a5df608f Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Tue, 20 Dec 2011 22:55:13 +0100 Subject: [PATCH 1317/2731] Added references to docstring in mediagoblin.webfinger and mediagoblin.webfinger.views [references mediagoblin.webfinger] --- mediagoblin/webfinger/__init__.py | 10 ++++++++++ mediagoblin/webfinger/views.py | 3 +++ 2 files changed, 13 insertions(+) diff --git a/mediagoblin/webfinger/__init__.py b/mediagoblin/webfinger/__init__.py index ba347c69..ec7ec884 100644 --- a/mediagoblin/webfinger/__init__.py +++ b/mediagoblin/webfinger/__init__.py @@ -13,3 +13,13 @@ # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +''' +mediagoblin.webfinger_ provides an LRDD discovery service and +a web host meta information file + +Links: +- `LRDD Discovery Draft + `_. +- `RFC 6415 - Web Host Metadata + `_. +''' diff --git a/mediagoblin/webfinger/views.py b/mediagoblin/webfinger/views.py index e9aa600c..22086396 100644 --- a/mediagoblin/webfinger/views.py +++ b/mediagoblin/webfinger/views.py @@ -13,6 +13,9 @@ # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +''' +For references, see docstring in mediagoblin/webfinger/__init__.py +''' import re From 871fc591dd2492d2bdca0a530fdffac14f3feece Mon Sep 17 00:00:00 2001 From: Elrond Date: Wed, 21 Dec 2011 00:06:38 +0100 Subject: [PATCH 1318/2731] Workaround for Routes/urlgen bug. This is relevant for fcgi: Some servers (cherokee for example) put "HTTP":"off" in the environ. And the following code in urlgen breaks on this: if environ.get('HTTPS') or environ.get('wsgi.url_scheme') == 'https' \ or environ.get('HTTP_X_FORWARDED_PROTO') == 'https': hostinfo['protocol'] = 'https' workaround is to remove HTTPS:off from the environ. --- mediagoblin/app.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 04eb2acc..49dc8d97 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -122,6 +122,10 @@ class MediaGoblinApp(object): # The other option would be: # request.full_path = environ["SCRIPT_URL"] + # Fix up environ for urlgen + if environ.get('HTTPS', '').lower() == 'off': + environ.pop('HTTPS') + ## Attach utilities to the request object request.matchdict = route_match request.urlgen = routes.URLGenerator(self.routing, environ) From d23d4b23dad2e14e330664f58994dcbbbaa32720 Mon Sep 17 00:00:00 2001 From: Elrond Date: Wed, 21 Dec 2011 00:34:02 +0100 Subject: [PATCH 1319/2731] Note reported bug in workaround So that the workaround can eventually be removed, note the URL for the relevant bug in a comment. --- mediagoblin/app.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 49dc8d97..96b2c8ab 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -123,6 +123,7 @@ class MediaGoblinApp(object): # request.full_path = environ["SCRIPT_URL"] # Fix up environ for urlgen + # See bug: https://bitbucket.org/bbangert/routes/issue/55/cache_hostinfo-breaks-on-https-off if environ.get('HTTPS', '').lower() == 'off': environ.pop('HTTPS') From 6c191eb3de3bbaf3880ef270461422954554683a Mon Sep 17 00:00:00 2001 From: Karen Rustad Date: Sun, 18 Dec 2011 22:50:36 -0800 Subject: [PATCH 1320/2731] Added a 'you don't have HTML5 so this video will not work' warning using just the inherent properties of the
    From fb7dd855de987d4e3dded1e55cad09a9fe6120cc Mon Sep 17 00:00:00 2001 From: Elrond Date: Sun, 18 Dec 2011 22:52:49 +0100 Subject: [PATCH 1322/2731] Turn MediaComment's author() into get_author property 1) MediaComment's author method conflicts with the author field. So rename it to get_author. 2) Turn it from a normal function into a python property. That means you call it by ".get_author" not by ".get_author()". This is exactly what sqlalchemy gives us free of charge. --- mediagoblin/db/mongo/models.py | 3 ++- mediagoblin/templates/mediagoblin/user_pages/media.html | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/mediagoblin/db/mongo/models.py b/mediagoblin/db/mongo/models.py index e2ac1b5a..0e31fc1c 100644 --- a/mediagoblin/db/mongo/models.py +++ b/mediagoblin/db/mongo/models.py @@ -346,7 +346,8 @@ class MediaComment(Document): def media_entry(self): return self.db.MediaEntry.find_one({'_id': self['media_entry']}) - def author(self): + @property + def get_author(self): return self.db.User.find_one({'_id': self['author']}) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index b9e31667..c171dd5a 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -109,7 +109,7 @@ {% endif %} {% if comments %} {% for comment in comments %} - {% set comment_author = comment.author() %} + {% set comment_author = comment.get_author %} {% if pagination.active_id == comment._id %}
    From 2608982885477e2f41579240d24a26864f718123 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 24 Dec 2011 19:08:20 +0100 Subject: [PATCH 1323/2731] Add search level one() method And create a _fix_query_dict which converts '_id' to 'id'. --- mediagoblin/db/sql/base.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/mediagoblin/db/sql/base.py b/mediagoblin/db/sql/base.py index b8d5cc96..38b04334 100644 --- a/mediagoblin/db/sql/base.py +++ b/mediagoblin/db/sql/base.py @@ -4,13 +4,26 @@ from sqlalchemy.orm import scoped_session, sessionmaker Session = scoped_session(sessionmaker()) +def _fix_query_dict(query_dict): + if '_id' in query_dict: + query_dict['id'] = query_dict.pop('_id') + + class GMGTableBase(object): query = Session.query_property() @classmethod def find(cls, query_dict={}): + _fix_query_dict(query_dict) return cls.query.filter_by(**query_dict) @classmethod def find_one(cls, query_dict={}): + _fix_query_dict(query_dict) return cls.query.filter_by(**query_dict).first() + + @classmethod + def one(cls, query_dict): + retval = cls.find_one(query_dict) + assert retval is not None + return retval From 4305580e8538e5523e9f621c3ffbed14a2ddc350 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 24 Dec 2011 18:19:40 +0100 Subject: [PATCH 1324/2731] Improve .one() by using sqlalchemy's .one() --- mediagoblin/db/sql/base.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mediagoblin/db/sql/base.py b/mediagoblin/db/sql/base.py index 38b04334..5e420bdc 100644 --- a/mediagoblin/db/sql/base.py +++ b/mediagoblin/db/sql/base.py @@ -24,6 +24,4 @@ class GMGTableBase(object): @classmethod def one(cls, query_dict): - retval = cls.find_one(query_dict) - assert retval is not None - return retval + return cls.find(query_dict).one() From 4deda94a380dc4217247b49df6e8a5bce0082ddc Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 19 Dec 2011 22:29:40 +0100 Subject: [PATCH 1325/2731] Replace media.get_uploader()._id by media.uploader media.get_uploader()._id loads a complete user object without actually needing it, because media.uploader already has the id! --- mediagoblin/decorators.py | 6 +++--- mediagoblin/user_pages/views.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index 229664d7..4cf14a70 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -57,10 +57,10 @@ def user_may_delete_media(controller): Require user ownership of the MediaEntry to delete. """ def wrapper(request, *args, **kwargs): - uploader = request.db.MediaEntry.find_one( - {'_id': ObjectId(request.matchdict['media'])}).get_uploader() + uploader_id = request.db.MediaEntry.find_one( + {'_id': ObjectId(request.matchdict['media'])}).uploader if not (request.user.is_admin or - request.user._id == uploader._id): + request.user._id == uploader_id): return exc.HTTPForbidden() return controller(request, *args, **kwargs) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 87b82c74..449e3b1c 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -192,7 +192,7 @@ def media_confirm_delete(request, media): location=media.url_for_self(request.urlgen)) if ((request.user.is_admin and - request.user._id != media.get_uploader()._id)): + request.user._id != media.uploader)): messages.add_message( request, messages.WARNING, _("You are about to delete another user's media. " From 0c0ab3227430b3d55ce9d19b37a01cd2a3c90259 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sun, 25 Dec 2011 19:58:37 +0100 Subject: [PATCH 1326/2731] Translate one string "There doesn't seem to be any media here yet..." is now translated also here (it's already in the list from another place). --- mediagoblin/templates/mediagoblin/utils/object_gallery.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/utils/object_gallery.html b/mediagoblin/templates/mediagoblin/utils/object_gallery.html index 65ff09a4..b8155f03 100644 --- a/mediagoblin/templates/mediagoblin/utils/object_gallery.html +++ b/mediagoblin/templates/mediagoblin/utils/object_gallery.html @@ -68,7 +68,11 @@ {% endif %} {% else %}

    - There doesn't seem to be any media here yet... + + {%- trans -%} + There doesn't seem to be any media here yet... + {%- endtrans -%} +

    {% endif %} {% endmacro %} From 479e8a833ba502c976574af77181f60a2a660aec Mon Sep 17 00:00:00 2001 From: Elrond Date: Sun, 25 Dec 2011 20:11:09 +0100 Subject: [PATCH 1327/2731] Move verification key generation to view Instead of creating the email verication key on the db model as a default for the field, create it in the registration view. Now all verification key generation is only in auth/views.py! --- mediagoblin/auth/views.py | 1 + mediagoblin/db/mongo/models.py | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 919aa3cd..66178371 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -84,6 +84,7 @@ def register(request): user.email = email user.pw_hash = auth_lib.bcrypt_gen_password_hash( request.POST['password']) + user.verification_key = unicode(uuid.uuid4()) user.save(validate=True) # log the user in diff --git a/mediagoblin/db/mongo/models.py b/mediagoblin/db/mongo/models.py index 0e31fc1c..b068fb06 100644 --- a/mediagoblin/db/mongo/models.py +++ b/mediagoblin/db/mongo/models.py @@ -15,7 +15,6 @@ # along with this program. If not, see . import datetime -import uuid from mongokit import Document @@ -88,7 +87,6 @@ class User(Document): 'created': datetime.datetime.utcnow, 'email_verified': False, 'status': u'needs_email_verification', - 'verification_key': lambda: unicode(uuid.uuid4()), 'is_admin': False} def check_login(self, password): From 0eb649ff7ac3f1eb71eb1d2cb66019a860b2c5c7 Mon Sep 17 00:00:00 2001 From: Elrond Date: Tue, 20 Dec 2011 18:47:33 +0100 Subject: [PATCH 1328/2731] Use media.url_for_self instead of calling urlgen directly Replace urlgen('ID', user=media.get_uploader().username, media=media.*) by media.url_for_self(urlgen) in a few places. It's just a lot nicer! --- mediagoblin/db/mongo/models.py | 12 ++++-------- .../templates/mediagoblin/user_pages/media.html | 6 ++---- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/mediagoblin/db/mongo/models.py b/mediagoblin/db/mongo/models.py index b068fb06..8cd0da1b 100644 --- a/mediagoblin/db/mongo/models.py +++ b/mediagoblin/db/mongo/models.py @@ -282,10 +282,8 @@ class MediaEntry(Document): 'uploader': self.uploader, 'state': 'processed'}).sort( '_id', ASCENDING).limit(1) - if cursor.count(): - return urlgen('mediagoblin.user_pages.media_home', - user=self.get_uploader().username, - media=unicode(cursor[0].slug)) + for media in cursor: + return media.url_for_self(urlgen) def url_to_next(self, urlgen): """ @@ -296,10 +294,8 @@ class MediaEntry(Document): 'state': 'processed'}).sort( '_id', DESCENDING).limit(1) - if cursor.count(): - return urlgen('mediagoblin.user_pages.media_home', - user=self.get_uploader().username, - media=unicode(cursor[0].slug)) + for media in cursor: + return media.url_for_self(urlgen) def get_uploader(self): return self.db.User.find_one({'_id': self.uploader}) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index c171dd5a..77461983 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -135,10 +135,8 @@
    {% endfor %} - {{ render_pagination(request, pagination, - request.urlgen('mediagoblin.user_pages.media_home', - user = media.get_uploader().username, - media = media._id)) }} + {{ render_pagination(request, pagination, + media.url_for_self(request.urlgen)) }} {% endif %}
    From 05751758469a03835975dd2998aa727fa29c9a16 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 24 Dec 2011 00:08:28 +0100 Subject: [PATCH 1329/2731] Turn media.get_uploader into a property sqlalchemy gives autoloading (hopefully caching) link to other objects as properties. So turn get_uploader on the current mongo based stuff into a property to ease transition. --- mediagoblin/db/mongo/models.py | 3 ++- mediagoblin/listings/views.py | 2 +- .../templates/mediagoblin/edit/attachments.html | 2 +- mediagoblin/templates/mediagoblin/edit/edit.html | 2 +- .../templates/mediagoblin/user_pages/media.html | 14 +++++++------- .../user_pages/media_confirm_delete.html | 2 +- mediagoblin/user_pages/views.py | 2 +- 7 files changed, 14 insertions(+), 13 deletions(-) diff --git a/mediagoblin/db/mongo/models.py b/mediagoblin/db/mongo/models.py index 8cd0da1b..5de59c12 100644 --- a/mediagoblin/db/mongo/models.py +++ b/mediagoblin/db/mongo/models.py @@ -261,7 +261,7 @@ class MediaEntry(Document): Use a slug if we have one, else use our '_id'. """ - uploader = self.get_uploader() + uploader = self.get_uploader if self.get('slug'): return urlgen( @@ -297,6 +297,7 @@ class MediaEntry(Document): for media in cursor: return media.url_for_self(urlgen) + @property def get_uploader(self): return self.db.User.find_one({'_id': self.uploader}) diff --git a/mediagoblin/listings/views.py b/mediagoblin/listings/views.py index 6b83ffcf..3ecf06f4 100644 --- a/mediagoblin/listings/views.py +++ b/mediagoblin/listings/views.py @@ -86,7 +86,7 @@ def tag_atom_feed(request): feed.add(entry.get('title'), entry.get('description_html'), content_type='html', - author=entry.get_uploader().username, + author=entry.get_uploader.username, updated=entry.get('created'), url=entry.url_for_self(request.urlgen)) diff --git a/mediagoblin/templates/mediagoblin/edit/attachments.html b/mediagoblin/templates/mediagoblin/edit/attachments.html index 6a5ab896..124d0313 100644 --- a/mediagoblin/templates/mediagoblin/edit/attachments.html +++ b/mediagoblin/templates/mediagoblin/edit/attachments.html @@ -20,7 +20,7 @@ {% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} {% block mediagoblin_content %}
    diff --git a/mediagoblin/templates/mediagoblin/edit/edit.html b/mediagoblin/templates/mediagoblin/edit/edit.html index aa46af3d..2dfaddc8 100644 --- a/mediagoblin/templates/mediagoblin/edit/edit.html +++ b/mediagoblin/templates/mediagoblin/edit/edit.html @@ -22,7 +22,7 @@ {% block mediagoblin_content %}
    diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 77461983..13fa1baa 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -72,11 +72,11 @@ {% if media['uploader'] == request.user._id or request.user['is_admin'] %} {% set edit_url = request.urlgen('mediagoblin.edit.edit_media', - user= media.get_uploader().username, + user= media.get_uploader.username, media= media._id) %} {% trans %}Edit{% endtrans %} {% set delete_url = request.urlgen('mediagoblin.user_pages.media_confirm_delete', - user= media.get_uploader().username, + user= media.get_uploader.username, media= media._id) %} {% trans %}Delete{% endtrans %} {% endif %} @@ -95,7 +95,7 @@ {# 0 comments. Be the first to add one! #} {% if request.user %}

    {% trans %}Type your comment here. You can use Markdown for formatting.{% endtrans %} @@ -128,7 +128,7 @@ {% trans %}at{% endtrans %} {{ comment.created.strftime("%I:%M%p %Y-%m-%d") }} @@ -142,8 +142,8 @@

    {% trans user_url=request.urlgen( 'mediagoblin.user_pages.user_home', - user=media.get_uploader().username), - username=media.get_uploader().username -%} + user=media.get_uploader.username), + username=media.get_uploader.username -%}

    ❖ Browsing media by {{ username }}

    {%- endtrans %} {% include "mediagoblin/utils/prev_next.html" %} @@ -164,7 +164,7 @@ or request.user.is_admin) %}

    Add attachment

    {% endif %} diff --git a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html index 7c7218ae..6c483769 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html @@ -22,7 +22,7 @@ {% block mediagoblin_content %}
    diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 449e3b1c..f721f012 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -173,7 +173,7 @@ def media_confirm_delete(request, media): if request.method == 'POST' and form.validate(): if form.confirm.data is True: - username = media.get_uploader().username + username = media.get_uploader.username # Delete all files on the public storage delete_media_files(media) From 19ed039ba6d65cecfd6e8ad6e47b5cb008350b04 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sun, 25 Dec 2011 20:03:11 +0100 Subject: [PATCH 1330/2731] Implement _id proxy on sql objects (on User for now) So that the old code can access the primary key still as "._id". Quite simple Python Descriptor thing. Very generic. --- mediagoblin/db/sql/models.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/mediagoblin/db/sql/models.py b/mediagoblin/db/sql/models.py index b87ff3aa..68b078a5 100644 --- a/mediagoblin/db/sql/models.py +++ b/mediagoblin/db/sql/models.py @@ -11,6 +11,18 @@ from mediagoblin.db.sql.base import GMGTableBase Base = declarative_base(cls=GMGTableBase) +class SimpleFieldAlias(object): + """An alias for any field""" + def __init__(self, fieldname): + self.fieldname = fieldname + + def __get__(self, instance, cls): + return getattr(instance, self.fieldname) + + def __set__(self, instance, val): + setattr(instance, self.fieldname, val) + + class User(Base): __tablename__ = "users" @@ -32,6 +44,8 @@ class User(Base): ## TODO # plugin data would be in a separate model + _id = SimpleFieldAlias("id") + class MediaEntry(Base): __tablename__ = "media_entries" From c6263400cfd334a820122bd1b22eaa4d4d6765cd Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 24 Dec 2011 18:12:38 +0100 Subject: [PATCH 1331/2731] SQL Model: Forgot MediaEntry.state field While creating the new SQL model, the "state" field of MediaEntry was left out. Currently using a plain unicode string for it. Maybe should use sqlalchemy.types.Enum? --- mediagoblin/db/sql/convert.py | 2 +- mediagoblin/db/sql/models.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/mediagoblin/db/sql/convert.py b/mediagoblin/db/sql/convert.py index 6de758ed..c6bed1e9 100644 --- a/mediagoblin/db/sql/convert.py +++ b/mediagoblin/db/sql/convert.py @@ -62,7 +62,7 @@ def convert_media_entries(mk_db): copy_attrs(entry, new_entry, ('title', 'slug', 'created', 'description', 'description_html', - 'media_type', + 'media_type', 'state', 'fail_error', 'queued_task_id',)) copy_reference_attr(entry, new_entry, "uploader") diff --git a/mediagoblin/db/sql/models.py b/mediagoblin/db/sql/models.py index 68b078a5..268f5715 100644 --- a/mediagoblin/db/sql/models.py +++ b/mediagoblin/db/sql/models.py @@ -58,6 +58,7 @@ class MediaEntry(Base): description = Column(UnicodeText) # ?? description_html = Column(UnicodeText) # ?? media_type = Column(Unicode, nullable=False) + state = Column(Unicode, nullable=False) # or use sqlalchemy.types.Enum? fail_error = Column(Unicode) fail_metadata = Column(UnicodeText) From 88e90f41eb86b8aa1fcfef1e0585f314afb5180d Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 24 Dec 2011 16:00:05 +0100 Subject: [PATCH 1332/2731] SQL Model: Add relationship properties MediaEntry now has a get_uploader (property) loading the appropiate User object for the MediaEntry (and caches it). MediaComment has the same for author as get_author. --- mediagoblin/db/sql/models.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mediagoblin/db/sql/models.py b/mediagoblin/db/sql/models.py index 268f5715..31a6ed3b 100644 --- a/mediagoblin/db/sql/models.py +++ b/mediagoblin/db/sql/models.py @@ -4,6 +4,7 @@ from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import ( Column, Integer, Unicode, UnicodeText, DateTime, Boolean, ForeignKey, UniqueConstraint) +from sqlalchemy.orm import relationship from mediagoblin.db.sql.base import GMGTableBase @@ -71,6 +72,8 @@ class MediaEntry(Base): UniqueConstraint('uploader', 'slug'), {}) + get_uploader = relationship(User) + ## TODO # media_files # media_data @@ -112,6 +115,8 @@ class MediaComment(Base): content = Column(UnicodeText, nullable=False) content_html = Column(UnicodeText) + get_author = relationship(User) + def show_table_init(): from sqlalchemy import create_engine From 0724930a6880ea9a088785480cfa7803d43a6370 Mon Sep 17 00:00:00 2001 From: Elrond Date: Wed, 28 Dec 2011 23:27:46 +0100 Subject: [PATCH 1333/2731] Show --log-file option in lazyserver help. --- lazyserver.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lazyserver.sh b/lazyserver.sh index 4ca073b5..843993e6 100755 --- a/lazyserver.sh +++ b/lazyserver.sh @@ -26,7 +26,7 @@ then echo "" echo " For example:" echo " $0 -c fcgi.ini port_number=23371" - echo " or: $0 --server-name=fcgi" + echo " or: $0 --server-name=fcgi --log-file=paste.log" echo "" echo " The configfile defaults to paste_local.ini," echo " if that is readable, otherwise paste.ini." From 690672580e333bb6a2dc67466390847a79566045 Mon Sep 17 00:00:00 2001 From: Elrond Date: Wed, 28 Dec 2011 23:46:36 +0100 Subject: [PATCH 1334/2731] Fix "bin/gmg migrate" after mongo move When moving most stuff from db to db/mongo, "gmg migrate" was left out. Fix it now! --- mediagoblin/gmg_commands/migrate.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/gmg_commands/migrate.py b/mediagoblin/gmg_commands/migrate.py index bd3bcb20..0a8ee7dc 100644 --- a/mediagoblin/gmg_commands/migrate.py +++ b/mediagoblin/gmg_commands/migrate.py @@ -16,12 +16,12 @@ import sys -from mediagoblin.db import util as db_util +from mediagoblin.db.mongo import util as db_util from mediagoblin.db.open import setup_connection_and_db_from_config from mediagoblin.init import setup_global_and_app_config # This MUST be imported so as to set up the appropriate migrations! -from mediagoblin.db import migrations +from mediagoblin.db.mongo import migrations def migrate_parser_setup(subparser): From 03c22862322f42a68351e70956e24e512028f0b2 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sun, 25 Dec 2011 16:01:25 +0100 Subject: [PATCH 1335/2731] Support .get(fieldname) on sql db objects Some parts of the code like to call .get("somefield") on the db objects. It's easy to support this on sqlalchemy based objects, so lets do it. --- mediagoblin/db/sql/base.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mediagoblin/db/sql/base.py b/mediagoblin/db/sql/base.py index 5e420bdc..1249bace 100644 --- a/mediagoblin/db/sql/base.py +++ b/mediagoblin/db/sql/base.py @@ -25,3 +25,6 @@ class GMGTableBase(object): @classmethod def one(cls, query_dict): return cls.find(query_dict).one() + + def get(self, key): + return getattr(self, key) From 9f264942d88c563f9d310c3fea4a554731c1bbbc Mon Sep 17 00:00:00 2001 From: Elrond Date: Sun, 25 Dec 2011 19:09:23 +0100 Subject: [PATCH 1336/2731] Add a .save method on the sql db objects This is a shortcut to adding the object to a session (if needed) and giving a commit on the session. In reality, calling code should probably utilize the session on its own and call commit in an appropiate place. --- mediagoblin/db/sql/base.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/mediagoblin/db/sql/base.py b/mediagoblin/db/sql/base.py index 1249bace..40140327 100644 --- a/mediagoblin/db/sql/base.py +++ b/mediagoblin/db/sql/base.py @@ -1,4 +1,4 @@ -from sqlalchemy.orm import scoped_session, sessionmaker +from sqlalchemy.orm import scoped_session, sessionmaker, object_session Session = scoped_session(sessionmaker()) @@ -28,3 +28,11 @@ class GMGTableBase(object): def get(self, key): return getattr(self, key) + + def save(self, validate = True): + assert validate + sess = object_session(self) + if sess is None: + sess = Session() + sess.add(self) + sess.commit() From dab1d70280652049078add60c6c44f675fbe267c Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Thu, 29 Dec 2011 22:40:45 +0100 Subject: [PATCH 1337/2731] Finished #485 and worked out bugs: password fields always update, added margins, fixed Chrome width bug, wrapped checkbox in label element --- mediagoblin/static/css/base.css | 5 +++++ mediagoblin/templates/mediagoblin/auth/register.html | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 625269a2..ecdd0474 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -251,6 +251,11 @@ textarea#comment_content { text-align: right; } +#password_boolean { + margin-top: 4px; + width: 20px; +} + /* comments */ .comment_author { diff --git a/mediagoblin/templates/mediagoblin/auth/register.html b/mediagoblin/templates/mediagoblin/auth/register.html index bded1d7e..73eae0d8 100644 --- a/mediagoblin/templates/mediagoblin/auth/register.html +++ b/mediagoblin/templates/mediagoblin/auth/register.html @@ -22,7 +22,7 @@ {% block mediagoblin_head %} {% endblock mediagoblin_head %} From 4e9d467fc0b3dfc55db15e84d5d988cefa400fa1 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Thu, 29 Dec 2011 22:54:31 +0100 Subject: [PATCH 1338/2731] Isolate JavaScript; add new show_password.js to forgot-password-page as well --- mediagoblin/auth/forms.py | 8 +------ .../templates/mediagoblin/auth/change_fp.html | 5 ++++ .../templates/mediagoblin/auth/register.html | 23 ++----------------- 3 files changed, 8 insertions(+), 28 deletions(-) diff --git a/mediagoblin/auth/forms.py b/mediagoblin/auth/forms.py index 4cd3e9d8..5a707c7b 100644 --- a/mediagoblin/auth/forms.py +++ b/mediagoblin/auth/forms.py @@ -62,13 +62,7 @@ class ChangePassForm(wtforms.Form): password = wtforms.PasswordField( 'Password', [wtforms.validators.Required(), - wtforms.validators.Length(min=6, max=30), - wtforms.validators.EqualTo( - 'confirm_password', - 'Passwords must match.')]) - confirm_password = wtforms.PasswordField( - 'Confirm password', - [wtforms.validators.Required()]) + wtforms.validators.Length(min=6, max=30)]) userid = wtforms.HiddenField( '', [wtforms.validators.Required()]) diff --git a/mediagoblin/templates/mediagoblin/auth/change_fp.html b/mediagoblin/templates/mediagoblin/auth/change_fp.html index 03a6583b..e8e64023 100644 --- a/mediagoblin/templates/mediagoblin/auth/change_fp.html +++ b/mediagoblin/templates/mediagoblin/auth/change_fp.html @@ -19,6 +19,11 @@ {% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} +{% block mediagoblin_head %} + +{% endblock mediagoblin_head %} + {% block mediagoblin_content %} - $(document).ready(function(){ - $("#password").after(''); - $('#password_clear').hide(); - $('#password_boolean').click(function(){ - if($('#password_boolean').prop("checked")) { - $('#password_clear').val($('#password').val()); - $('#password').hide(); - $('#password_clear').show(); - } else { - $('#password').val($('#password_clear').val()); - $('#password_clear').hide(); - $('#password').show(); - }; - }); - $('#password,#password_clear').keyup(function(){ - $('#password').val($(this).val()); - $('#password_clear').val($(this).val()); - }); - }); - + {% endblock mediagoblin_head %} {% block mediagoblin_content %} From 550d48d04059d94894573d93aed98f4faa63e3fb Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Thu, 29 Dec 2011 22:56:42 +0100 Subject: [PATCH 1339/2731] Forgot to include the newly created JS file --- mediagoblin/static/js/show_password.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 mediagoblin/static/js/show_password.js diff --git a/mediagoblin/static/js/show_password.js b/mediagoblin/static/js/show_password.js new file mode 100644 index 00000000..519b29c1 --- /dev/null +++ b/mediagoblin/static/js/show_password.js @@ -0,0 +1,19 @@ +$(document).ready(function(){ + $("#password").after(''); + $('#password_clear').hide(); + $('#password_boolean').click(function(){ + if($('#password_boolean').prop("checked")) { + $('#password_clear').val($('#password').val()); + $('#password').hide(); + $('#password_clear').show(); + } else { + $('#password').val($('#password_clear').val()); + $('#password_clear').hide(); + $('#password').show(); + }; + }); + $('#password,#password_clear').keyup(function(){ + $('#password').val($(this).val()); + $('#password_clear').val($(this).val()); + }); +}); From 3ea6a305ce2addc8c2d6322f0d9bdca957bd972c Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 30 Dec 2011 14:23:12 +0100 Subject: [PATCH 1340/2731] Lots of little fixes and removal of all 960.gs classes: * Removed

    margin-top * Vertically align logo so Add-media button does not fall off * Remove last 960.gs traces (grid_X/container_X) and add custom classes/sizes to css * Add clear class * Update form_box and add form_box_xl for bigger forms * Switch all pages that use forms to new classes * Remove padding from notification messages so they take full width * Other tiny fixes I forgot about --- mediagoblin/static/css/base.css | 60 +++++++++++++++---- mediagoblin/templates/mediagoblin/404.html | 19 +++--- .../templates/mediagoblin/auth/change_fp.html | 6 +- .../mediagoblin/auth/forgot_password.html | 2 +- .../templates/mediagoblin/auth/login.html | 2 +- .../templates/mediagoblin/auth/register.html | 2 +- .../mediagoblin/edit/attachments.html | 2 +- .../templates/mediagoblin/edit/edit.html | 2 +- .../mediagoblin/edit/edit_profile.html | 2 +- .../templates/mediagoblin/listings/tag.html | 13 ++-- mediagoblin/templates/mediagoblin/root.html | 28 ++++----- .../templates/mediagoblin/submit/start.html | 2 +- .../mediagoblin/user_pages/gallery.html | 16 ++--- .../user_pages/media_confirm_delete.html | 2 +- .../mediagoblin/user_pages/user.html | 16 ++--- .../mediagoblin/utils/prev_next.html | 46 +++++++------- 16 files changed, 115 insertions(+), 105 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 187d1c7a..e8924edf 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -44,24 +44,28 @@ form { /* text styles */ -h1{ +h1 { margin-bottom: 15px; margin-top: 15px; color: #fff; font-size: 1.875em; } -h2{ +h2 { font-size: 1.375em; margin-top: 20px; color: #fff; } -h3{ +h3 { border-bottom: 1px solid #333; font-size: 1.125em; } +p { + margin-top: 0px; +} + a { color: #86D4B1; } @@ -103,12 +107,16 @@ input, textarea { float: right; } -a.mediagoblin_logo{ +a.mediagoblin_logo { color: #fff; font-weight: bold; margin-right: 8px; } +.mediagoblin_logo img { + vertical-align: middle; +} + .mediagoblin_content { width: 940px; margin-left: 10px; @@ -143,6 +151,18 @@ a.mediagoblin_logo{ float: left; } +.profile_sidebar { + width: 340px; + margin-right: 10px; + float: left; +} + +.profile_showcase { + width: 580px; + margin-left: 10px; + float: left; +} + /* common website elements */ .button_action, .button_action_highlight { @@ -219,28 +239,33 @@ text-align: center; float: right; } -textarea#comment_content { - width: 634px; - height: 90px; - border: none; - background-color: #f1f1f1; - padding: 3px; +.clear { + clear: both; + display: block; + overflow: hidden; + visibility: hidden; + width: 0; + height: 0; } /* forms */ -.form_box { +.form_box,.form_box_xl { background-color: #222; background-image: url("../images/background_lines.png"); background-repeat: repeat-x; - padding-bottom: 30px; - padding-top: 30px; + width: 340px; + padding: 30px 60px; margin-left: auto; margin-right: auto; display: block; float: none; } +.form_box_xl { + width: 460px; +} + .edit_box { background-image: url("../images/background_edit.png"); } @@ -294,6 +319,14 @@ textarea#comment_content { margin-bottom: 0px; } +textarea#comment_content { + width: 634px; + height: 90px; + border: none; + background-color: #f1f1f1; + padding: 3px; +} + /* media galleries */ .media_thumbnail { @@ -358,6 +391,7 @@ img.media_icon { ul.mediagoblin_messages { list-style: none inside; color: #f7f7f7; + padding: 0; } .mediagoblin_messages li { diff --git a/mediagoblin/templates/mediagoblin/404.html b/mediagoblin/templates/mediagoblin/404.html index 7db68941..392c14f5 100644 --- a/mediagoblin/templates/mediagoblin/404.html +++ b/mediagoblin/templates/mediagoblin/404.html @@ -18,17 +18,12 @@ {% extends "mediagoblin/base.html" %} {% block mediagoblin_content %} + {% trans %}Image of 404 goblin stressing out{% endtrans %}

    {% trans %}Oops!{% endtrans %}

    - -
    -

    {% trans %}There doesn't seem to be a page at this address. Sorry!{% endtrans %}

    -

    - {%- trans %}If you're sure the address is correct, maybe the page you're looking for has been moved or deleted.{% endtrans -%} -

    -
    - -
    - {% trans %}Image of 404 goblin stressing out{% endtrans %} -
    +

    {% trans %}There doesn't seem to be a page at this address. Sorry!{% endtrans %}

    +

    + {%- trans %}If you're sure the address is correct, maybe the page you're looking for has been moved or deleted.{% endtrans -%} +

    +
    {% endblock %} diff --git a/mediagoblin/templates/mediagoblin/auth/change_fp.html b/mediagoblin/templates/mediagoblin/auth/change_fp.html index 03a6583b..9c8c79bf 100644 --- a/mediagoblin/templates/mediagoblin/auth/change_fp.html +++ b/mediagoblin/templates/mediagoblin/auth/change_fp.html @@ -20,19 +20,15 @@ {% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} {% block mediagoblin_content %} - {{ csrf_token }} - -
    +

    {% trans %}Set your new password{% endtrans %}

    - {{ wtforms_util.render_divs(cp_form) }}
    -
    {% endblock %} diff --git a/mediagoblin/templates/mediagoblin/auth/forgot_password.html b/mediagoblin/templates/mediagoblin/auth/forgot_password.html index 41940742..672e9d9a 100644 --- a/mediagoblin/templates/mediagoblin/auth/forgot_password.html +++ b/mediagoblin/templates/mediagoblin/auth/forgot_password.html @@ -23,7 +23,7 @@
    {{ csrf_token }} -
    +

    {% trans %}Recover password{% endtrans %}

    {{ wtforms_util.render_divs(fp_form) }}
    diff --git a/mediagoblin/templates/mediagoblin/auth/login.html b/mediagoblin/templates/mediagoblin/auth/login.html index c3807e5f..993790eb 100644 --- a/mediagoblin/templates/mediagoblin/auth/login.html +++ b/mediagoblin/templates/mediagoblin/auth/login.html @@ -23,7 +23,7 @@ {{ csrf_token }} -
    +

    {% trans %}Log in{% endtrans %}

    {% if login_failed %}
    diff --git a/mediagoblin/templates/mediagoblin/auth/register.html b/mediagoblin/templates/mediagoblin/auth/register.html index bded1d7e..2520ca9b 100644 --- a/mediagoblin/templates/mediagoblin/auth/register.html +++ b/mediagoblin/templates/mediagoblin/auth/register.html @@ -43,7 +43,7 @@ -
    +

    {% trans %}Create an account!{% endtrans %}

    {{ wtforms_util.render_divs(register_form) }} {{ csrf_token }} diff --git a/mediagoblin/templates/mediagoblin/edit/attachments.html b/mediagoblin/templates/mediagoblin/edit/attachments.html index 6a5ab896..ff357a8c 100644 --- a/mediagoblin/templates/mediagoblin/edit/attachments.html +++ b/mediagoblin/templates/mediagoblin/edit/attachments.html @@ -23,7 +23,7 @@ user= media.get_uploader().username, media= media._id) }}" method="POST" enctype="multipart/form-data"> -
    +

    Editing attachments for {{ media.title }}

    -
    +

    {% trans media_title=media.title %}Editing {{ media_title }}{% endtrans %}

    -
    +

    {%- trans username=user.username -%} Editing {{ username }}'s profile diff --git a/mediagoblin/templates/mediagoblin/listings/tag.html b/mediagoblin/templates/mediagoblin/listings/tag.html index f797f72f..a7cbe241 100644 --- a/mediagoblin/templates/mediagoblin/listings/tag.html +++ b/mediagoblin/templates/mediagoblin/listings/tag.html @@ -35,14 +35,9 @@ {% trans %}Media tagged with: {{ tag_name }}{% endtrans %}

    - + {{ object_gallery(request, media_entries, pagination) }} -
    - {% set feed_url = request.urlgen( - 'mediagoblin.listings.tag_atom_feed', - tag=tag_slug) %} - {% include "mediagoblin/utils/feed_link.html" %} -
    + {% set feed_url = request.urlgen('mediagoblin.listings.tag_atom_feed', + tag=tag_slug) %} + {% include "mediagoblin/utils/feed_link.html" %} {% endblock %} diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index 0f769f2f..300570ad 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -23,22 +23,18 @@ {% if request.user %}

    {% trans %}Explore{% endtrans %}

    {% else %} -
    -

    {% trans %}Hi there, welcome to this MediaGoblin site!{% endtrans %}

    -

    {% trans %}This site is running MediaGoblin, an extraordinarily great piece of media hosting software.{% endtrans %}

    -

    {% trans %}To add your own media, place comments, save your favourites and more, you can log in with your MediaGoblin account.{% endtrans %}

    - {% if allow_registration %} -

    {% trans %}Don't have one yet? It's easy!{% endtrans %}

    - {% trans register_url=request.urlgen('mediagoblin.auth.register') -%} - Create an account at this site - or - Set up MediaGoblin on your own server - {%- endtrans %} - {% endif %} -
    -
    - -
    + +

    {% trans %}Hi there, welcome to this MediaGoblin site!{% endtrans %}

    +

    {% trans %}This site is running MediaGoblin, an extraordinarily great piece of media hosting software.{% endtrans %}

    +

    {% trans %}To add your own media, place comments, save your favourites and more, you can log in with your MediaGoblin account.{% endtrans %}

    + {% if allow_registration %} +

    {% trans %}Don't have one yet? It's easy!{% endtrans %}

    + {% trans register_url=request.urlgen('mediagoblin.auth.register') -%} + Create an account at this site + or + Set up MediaGoblin on your own server + {%- endtrans %} + {% endif %}
    {% endif %}

    {% trans %}Most recent media{% endtrans %}

    diff --git a/mediagoblin/templates/mediagoblin/submit/start.html b/mediagoblin/templates/mediagoblin/submit/start.html index 47914550..afae2f1f 100644 --- a/mediagoblin/templates/mediagoblin/submit/start.html +++ b/mediagoblin/templates/mediagoblin/submit/start.html @@ -22,7 +22,7 @@ {% block mediagoblin_content %} -
    +

    {% trans %}Add your media{% endtrans %}

    {{ wtforms_util.render_divs(submit_form) }}
    diff --git a/mediagoblin/templates/mediagoblin/user_pages/gallery.html b/mediagoblin/templates/mediagoblin/user_pages/gallery.html index b066dd71..b0bfacf8 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/gallery.html +++ b/mediagoblin/templates/mediagoblin/user_pages/gallery.html @@ -42,14 +42,10 @@ {%- endtrans %}

    - - -
    - {% set feed_url = request.urlgen( - 'mediagoblin.user_pages.atom_feed', - user=user.username) %} - {% include "mediagoblin/utils/feed_link.html" %} -
    + {{ object_gallery(request, media_entries, pagination) }} + + {% set feed_url = request.urlgen('mediagoblin.user_pages.atom_feed', + user=user.username) %} + {% include "mediagoblin/utils/feed_link.html" %} + {% endblock %} diff --git a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html index 7c7218ae..8e0f2904 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html @@ -25,7 +25,7 @@ user=media.get_uploader().username, media=media._id) }}" method="POST" enctype="multipart/form-data"> -
    +

    {%- trans title=media.title -%} Really delete {{ title }}? diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index b952e88c..8a1d3a76 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -46,7 +46,7 @@ {% elif user.status == "needs_email_verification" %} {% if user == request.user %} {# this should only be visible when you are this user #} -
    +

    {% trans %}Email verification needed{% endtrans %}

    @@ -66,7 +66,7 @@

    {% else %} {# if the user is not you, but still needs to verify their email #} -
    +

    {% trans %}Email verification needed{% endtrans %}

    @@ -91,7 +91,7 @@ {% if not user.url and not user.bio %} {% if request.user._id == user._id %} -

    +

    {% trans %}Here's a spot to tell others about yourself.{% endtrans %}

    @@ -102,7 +102,7 @@
    {% else %} -
    +

    {% trans -%} This user hasn't filled in their profile (yet). @@ -111,7 +111,7 @@

    {% endif %} {% else %} -
    +
    {% include "mediagoblin/utils/profile.html" %} {% if request.user._id == user._id or request.user.is_admin %} +
    {{ object_gallery(request, media_entries, pagination, pagination_base_url=user_gallery_url, col_number=3) }} {% include "mediagoblin/utils/object_gallery.html" %} @@ -141,7 +141,7 @@
    {% else %} {% if request.user._id == user._id %} -
    + {% else %} -
    +

    {% trans -%} There doesn't seem to be any media here yet... diff --git a/mediagoblin/templates/mediagoblin/utils/prev_next.html b/mediagoblin/templates/mediagoblin/utils/prev_next.html index b0c01963..66766555 100644 --- a/mediagoblin/templates/mediagoblin/utils/prev_next.html +++ b/mediagoblin/templates/mediagoblin/utils/prev_next.html @@ -21,28 +21,26 @@ {% set next_entry_url = media.url_to_next(request.urlgen) %} {% if prev_entry_url or next_entry_url %} -

    - {# There are no previous entries for the very first media entry #} - {% if prev_entry_url %} - - ← {% trans %}newer{% endtrans %} - - {% else %} - {# This is the first entry. display greyed-out 'previous' image #} - - {% endif %} - {# Likewise, this could be the very last media entry #} - {% if next_entry_url %} - - {% trans %}older{% endtrans %} → - - {% else %} - {# This is the last entry. display greyed-out 'next' image #} - - {% endif %} -
    + {# There are no previous entries for the very first media entry #} + {% if prev_entry_url %} + + ← {% trans %}newer{% endtrans %} + + {% else %} + {# This is the first entry. display greyed-out 'previous' image #} + + {% endif %} + {# Likewise, this could be the very last media entry #} + {% if next_entry_url %} + + {% trans %}older{% endtrans %} → + + {% else %} + {# This is the last entry. display greyed-out 'next' image #} + + {% endif %} {% endif %} From 426808cc8fe4961e938bc8f6df10ea755980e6c1 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 30 Dec 2011 18:01:28 +0100 Subject: [PATCH 1341/2731] Random changes that break stuff and eat piglets --- mediagoblin/static/css/base.css | 41 +++++++++++++++------------------ 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index e8924edf..8ed94e36 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -29,7 +29,6 @@ body { background-color: #111; background-image: url("../images/background.png"); color: #C3C3C3; - font-family: sans-serif; padding: none; margin: 0px; height: 100%; @@ -94,7 +93,7 @@ input, textarea { } .mediagoblin_header { - width: 940px; + width: 100%; height: 36px; margin-left: 10px; margin-right: 10px; @@ -118,14 +117,14 @@ a.mediagoblin_logo { } .mediagoblin_content { - width: 940px; + width: 100%; margin-left: 10px; margin-right: 10px; padding-bottom: 74px; } .mediagoblin_footer { - width: 940px; + width: 100%; height: 30px; margin-left: 10px; margin-right: 10px; @@ -451,10 +450,22 @@ table.media_panel th { margin-left: 10px; } -@media handheld and (max-width: 480px), screen and (max-device-width: 480px), screen and (max-width: 960px) { - html { - padding:10px; +@media screen and (max-width: 960px) { + .mediagoblin_body { + width: 100%; } + .mediagoblin_footer { + position: fixed; + left: 0px; + top: 100px; + width: 50px; + height: 20px; + background-color: #f00; + } +} + + + /* old code .navigation_button { position: fixed; bottom: 0px; @@ -465,18 +476,4 @@ table.media_panel th { .navigation_left { left: 0px; } - .media_image { - width: 100%; - } - .mediagoblin_body { - width: 100%; - } - .mediagoblin_header, .mediagoblin_content, .mediagoblin_footer, .media_pane { - width: 100%; - margin-left: 0; - margin-right: 0; - } - .mediagoblin_footer { - margin-bottom: 100px; - } -} + */ From 7c7ba01ee3450ded81f3ec9630cde0818865ed03 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Fri, 30 Dec 2011 19:11:47 +0100 Subject: [PATCH 1342/2731] Fixed broken confirm_password test --- mediagoblin/tests/test_auth.py | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py index d3b8caf1..9b0dea66 100644 --- a/mediagoblin/tests/test_auth.py +++ b/mediagoblin/tests/test_auth.py @@ -89,7 +89,6 @@ def test_register_views(test_app): form = context['register_form'] assert form.username.errors == [u'This field is required.'] assert form.password.errors == [u'This field is required.'] - assert form.confirm_password.errors == [u'This field is required.'] assert form.email.errors == [u'This field is required.'] # Try to register with fields that are known to be invalid @@ -101,7 +100,6 @@ def test_register_views(test_app): '/auth/register/', { 'username': 'l', 'password': 'o', - 'confirm_password': 'o', 'email': 'l'}) context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/register.html'] form = context['register_form'] @@ -125,18 +123,6 @@ def test_register_views(test_app): assert form.email.errors == [ u'Invalid email address.'] - ## mismatching passwords - template.clear_test_template_context() - test_app.post( - '/auth/register/', { - 'password': 'herpderp', - 'confirm_password': 'derpherp'}) - context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/auth/register.html'] - form = context['register_form'] - - assert form.password.errors == [ - u'Passwords must match.'] - ## At this point there should be no users in the database ;) assert not mg_globals.database.User.find().count() @@ -147,7 +133,6 @@ def test_register_views(test_app): '/auth/register/', { 'username': 'happygirl', 'password': 'iamsohappy', - 'confirm_password': 'iamsohappy', 'email': 'happygrrl@example.org'}) response.follow() @@ -227,7 +212,6 @@ def test_register_views(test_app): '/auth/register/', { 'username': 'happygirl', 'password': 'iamsohappy2', - 'confirm_password': 'iamsohappy2', 'email': 'happygrrl2@example.org'}) context = template.TEMPLATE_TEST_CONTEXT[ @@ -304,7 +288,6 @@ def test_register_views(test_app): '/auth/forgot_password/verify/', { 'userid': parsed_get_params['userid'], 'password': 'iamveryveryhappy', - 'confirm_password': 'iamveryveryhappy', 'token': parsed_get_params['token']}) response.follow() assert template.TEMPLATE_TEST_CONTEXT.has_key( From 6f559060785270d32a6ca99d2cdb89b5fedfaf9e Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 30 Dec 2011 19:45:00 +0100 Subject: [PATCH 1343/2731] Fix #715: On media submit page, "Separate" is misspelled --- mediagoblin/edit/forms.py | 2 +- mediagoblin/submit/forms.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index dd339e08..f9cc92bf 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -28,7 +28,7 @@ class EditForm(wtforms.Form): _('Tags'), [tag_length_validator], description=_( - "Seperate tags by commas.")) + "Separate tags by commas.")) slug = wtforms.TextField( _('Slug'), [wtforms.validators.Required(message=_("The slug can't be empty"))], diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py index ad420771..e21b00ee 100644 --- a/mediagoblin/submit/forms.py +++ b/mediagoblin/submit/forms.py @@ -32,4 +32,4 @@ class SubmitStartForm(wtforms.Form): _('Tags'), [tag_length_validator], description=_( - "Seperate tags by commas.")) + "Separate tags by commas.")) From 694e965f45b8da0af96e3ae99c85b4f1f4819ee6 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 30 Dec 2011 20:17:59 +0100 Subject: [PATCH 1344/2731] Fix #712: Comment counter always uses plural --- .../mediagoblin/user_pages/media.html | 86 ++++++++++--------- 1 file changed, 46 insertions(+), 40 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 13fa1baa..4c255112 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -81,18 +81,25 @@ {% trans %}Delete{% endtrans %} {% endif %}

    -

    {% trans comment_count=comments.count() -%}{{ comment_count }} comments{%- endtrans %} - -

    - {# 0 comments. Be the first to add one! #} + {% if comments %} +

    + {% if comments.count()==1 %} + {% trans comment_count=comments.count() -%}{{ comment_count }} comment{%- endtrans %} + {% elif comments.count()>1 %} + {% trans comment_count=comments.count() -%}{{ comment_count }} comments{%- endtrans %} + {% else %} + {% trans %}No comments yet.{% endtrans %} + {% endif %} + +

    {% if request.user %} - - {% else %} -
    - {% endif %} -
    - {% autoescape False %} - {{ comment.content_html }} - {% endautoescape %} - - - {{ comment_author.username }} - - {% trans %}at{% endtrans %} - - {{ comment.created.strftime("%I:%M%p %Y-%m-%d") }} - -
    -
    - {% endfor %} + {% for comment in comments %} + {% set comment_author = comment.get_author %} + {% if pagination.active_id == comment._id %} +
    + + {% else %} +
    + {% endif %} +
    + {% autoescape False %} + {{ comment.content_html }} + {% endautoescape %} + + + {{ comment_author.username }} + + {% trans %}at{% endtrans %} + + {{ comment.created.strftime("%I:%M%p %Y-%m-%d") }} + +
    +
    + {% endfor %} {{ render_pagination(request, pagination, media.url_for_self(request.urlgen)) }} {% endif %} From 992e4f80324e5e2d0079fd70cce9d4ad962f7047 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 30 Dec 2011 21:29:15 +0100 Subject: [PATCH 1345/2731] Change forgotten password process: different redirect, added/changed messages --- mediagoblin/auth/views.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 66178371..f707ecbe 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -232,16 +232,12 @@ def forgot_password(request): """ Forgot password view - Sends an email whit an url to renew forgoten password + Sends an email with an url to renew forgotten password """ fp_form = auth_forms.ForgotPassForm(request.POST) if request.method == 'POST' and fp_form.validate(): - # Here, so it doesn't depend on the actual mail being sent - # and thus doesn't reveal, wether mail was sent. - email_debug_message(request) - # '$or' not available till mongodb 1.5.3 user = request.db.User.find_one( {'username': request.POST['username']}) @@ -257,6 +253,14 @@ def forgot_password(request): user.save() send_fp_verification_email(user, request) + + messages.add_message( + request, + messages.INFO, + _("An email has been sent with instructions on how to " + "change your password.")) + email_debug_message(request) + else: # special case... we can't send the email because the # username is inactive / hasn't verified their email @@ -270,9 +274,13 @@ def forgot_password(request): return redirect( request, 'mediagoblin.user_pages.user_home', user=user.username) - - # do not reveal whether or not there is a matching user - return redirect(request, 'mediagoblin.auth.fp_email_sent') + return redirect(request, 'mediagoblin.auth.login') + else: + messages.add_message( + request, + messages.WARNING, + _("Couldn't find someone with that username or email.")) + return redirect(request, 'mediagoblin.auth.forgot_password') return render_to_response( request, From a246ccca69e863904718537f45a17d226b33a123 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Wed, 30 Nov 2011 21:21:39 +0100 Subject: [PATCH 1346/2731] ASCII media type support & fix a bug in file submission error handling * Added ASCII media processing * Added ASCII media display * Added ASCII media type Rebased from Joar Wandborg's ascii art branch (squashed to remove the commits borrowing code of dubious license) Fixed a bug in file submission error handling: - Moved file-extension condition out of loop (what did it do there?) - Updated file submission tests - Changed error handling in file submission, should now report more than absolutely necessary. --- extlib/inconsolata/INFO.txt | 4 + extlib/inconsolata/Inconsolata.otf | Bin 0 -> 58464 bytes extlib/inconsolata/Inconsolata.pfa | 1088 ++++ extlib/inconsolata/Inconsolata.sfd | 5730 +++++++++++++++++ extlib/inconsolata/OFL_1.1.txt | 97 + extlib/inconsolata/textest.pdf | Bin 0 -> 22783 bytes mediagoblin/media_types/__init__.py | 20 +- mediagoblin/media_types/ascii/__init__.py | 27 + mediagoblin/media_types/ascii/asciitoimage.py | 172 + .../media_types/ascii/fonts/Inconsolata.otf | 1 + mediagoblin/media_types/ascii/processing.py | 93 + mediagoblin/static/css/base.css | 12 + mediagoblin/static/fonts/Inconsolata.otf | 1 + mediagoblin/submit/views.py | 8 +- .../mediagoblin/media_displays/ascii.html | 40 + .../mediagoblin/media_displays/image.html | 18 + .../mediagoblin/media_displays/video.html | 18 + mediagoblin/tests/test_submission.py | 5 +- 18 files changed, 7323 insertions(+), 11 deletions(-) create mode 100644 extlib/inconsolata/INFO.txt create mode 100644 extlib/inconsolata/Inconsolata.otf create mode 100644 extlib/inconsolata/Inconsolata.pfa create mode 100644 extlib/inconsolata/Inconsolata.sfd create mode 100644 extlib/inconsolata/OFL_1.1.txt create mode 100644 extlib/inconsolata/textest.pdf create mode 100644 mediagoblin/media_types/ascii/__init__.py create mode 100644 mediagoblin/media_types/ascii/asciitoimage.py create mode 120000 mediagoblin/media_types/ascii/fonts/Inconsolata.otf create mode 100644 mediagoblin/media_types/ascii/processing.py create mode 120000 mediagoblin/static/fonts/Inconsolata.otf create mode 100644 mediagoblin/templates/mediagoblin/media_displays/ascii.html diff --git a/extlib/inconsolata/INFO.txt b/extlib/inconsolata/INFO.txt new file mode 100644 index 00000000..61d3a0f1 --- /dev/null +++ b/extlib/inconsolata/INFO.txt @@ -0,0 +1,4 @@ +Inconsolata +----------- + +This font is found at http://www.levien.com/type/myfonts/inconsolata.html diff --git a/extlib/inconsolata/Inconsolata.otf b/extlib/inconsolata/Inconsolata.otf new file mode 100644 index 0000000000000000000000000000000000000000..348889828d894b9b57fb6435497d5c034448cb1b GIT binary patch literal 58464 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, (), +with Reserved Font Name . +Copyright (c) , (), +with Reserved Font Name . +Copyright (c) , (). + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/extlib/inconsolata/textest.pdf b/extlib/inconsolata/textest.pdf new file mode 100644 index 0000000000000000000000000000000000000000..923aa349f72d4501368af9bb0adbe4696fb8227d GIT binary patch literal 22783 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 literal 0 HcmV?d00001 diff --git a/mediagoblin/media_types/__init__.py b/mediagoblin/media_types/__init__.py index 6f94c714..7b9bf0d7 100644 --- a/mediagoblin/media_types/__init__.py +++ b/mediagoblin/media_types/__init__.py @@ -69,16 +69,20 @@ def get_media_type_and_manager(filename): ''' Get the media type and manager based on a filename ''' - for media_type, manager in get_media_managers(): - if filename.find('.') > 0: - # Get the file extension - ext = os.path.splitext(filename)[1].lower() - else: - raise InvalidFileType( - _('Could not find any file extension in "{filename}"').format( - filename=filename)) + if filename.find('.') > 0: + # Get the file extension + ext = os.path.splitext(filename)[1].lower() + else: + raise Exception( + _(u'Could not extract any file extension from "{filename}"').format( + filename=filename)) + for media_type, manager in get_media_managers(): # Omit the dot from the extension and match it against # the media manager if ext[1:] in manager['accepted_extensions']: return media_type, manager + else: + raise FileTypeNotSupported( + # TODO: Provide information on which file types are supported + _(u'Sorry, I don\'t support that file type :(')) diff --git a/mediagoblin/media_types/ascii/__init__.py b/mediagoblin/media_types/ascii/__init__.py new file mode 100644 index 00000000..21b31d0e --- /dev/null +++ b/mediagoblin/media_types/ascii/__init__.py @@ -0,0 +1,27 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from mediagoblin.media_types.ascii.processing import process_ascii + + +MEDIA_MANAGER = { + "human_readable": "ASCII", + "processor": process_ascii, # alternately a string, + # 'mediagoblin.media_types.image.processing'? + "display_template": "mediagoblin/media_displays/ascii.html", + "default_thumb": "images/media_thumbs/ascii.jpg", + "accepted_extensions": [ + "txt"]} diff --git a/mediagoblin/media_types/ascii/asciitoimage.py b/mediagoblin/media_types/ascii/asciitoimage.py new file mode 100644 index 00000000..39c75a19 --- /dev/null +++ b/mediagoblin/media_types/ascii/asciitoimage.py @@ -0,0 +1,172 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import Image +import ImageFont +import ImageDraw +import logging +import pkg_resources +import os + +_log = logging.getLogger(__name__) + +class AsciiToImage(object): + ''' + Converter of ASCII art into image files, preserving whitespace + + kwargs: + - font: Path to font file + default: fonts/Inconsolata.otf + - font_size: Font size, ``int`` + default: 11 + ''' + + # Font file path + _font = None + + _font_size = 11 + + # ImageFont instance + _if = None + + # ImageFont + _if_dims = None + + # Image instance + _im = None + + def __init__(self, **kw): + if kw.get('font'): + self._font = kw.get('font') + else: + self._font = pkg_resources.resource_filename( + 'mediagoblin.media_types.ascii', + os.path.join('fonts', 'Inconsolata.otf')) + + if kw.get('font_size'): + self._font_size = kw.get('font_size') + + _log.info('Setting font to {0}, size {1}'.format( + self._font, + self._font_size)) + + self._if = ImageFont.truetype( + self._font, + self._font_size) + + # ,-,-^-'-^'^-^'^-'^-. + # ( I am a wall socket )Oo, ___ + # `-.,.-.,.-.-.,.-.--' ' ` + # Get the size, in pixels of the '.' character + self._if_dims = self._if.getsize('.') + # `---' + + def convert(self, text, destination): + # TODO: Detect if text is a file-like, if so, act accordingly + im = self._create_image(text) + + # PIL's Image.save will handle both file-likes and paths + if im.save(destination): + _log.info('Saved image in {0}'.format( + destination)) + + def _create_image(self, text): + ''' + Write characters to a PIL image canvas. + + TODO: + - Character set detection and decoding, + http://pypi.python.org/pypi/chardet + ''' + # TODO: Account for alternative line endings + lines = text.split('\n') + + line_lengths = [len(i) for i in lines] + + # Calculate destination size based on text input and character size + im_dims = ( + max(line_lengths) * self._if_dims[0], + len(line_lengths) * self._if_dims[1]) + + _log.info('Destination image dimensions will be {0}'.format( + im_dims)) + + im = Image.new( + 'RGBA', + im_dims, + (255, 255, 255, 0)) + + draw = ImageDraw.Draw(im) + + char_pos = [0, 0] + + for line in lines: + line_length = len(line) + + _log.debug('Writing line at {0}'.format(char_pos)) + + for _pos in range(0, line_length): + char = line[_pos] + + px_pos = self._px_pos(char_pos) + + _log.debug('Writing character "{0}" at {1} (px pos {2}'.format( + char, + char_pos, + px_pos)) + + draw.text( + px_pos, + char, + font=self._if, + fill=(0, 0, 0, 255)) + + char_pos[0] += 1 + + # Reset X position, increment Y position + char_pos[0] = 0 + char_pos[1] += 1 + + return im + + def _px_pos(self, char_pos): + ''' + Helper function to calculate the pixel position based on + character position and character dimensions + ''' + px_pos = [0, 0] + for index, val in zip(range(0, len(char_pos)), char_pos): + px_pos[index] = char_pos[index] * self._if_dims[index] + + return px_pos + + +if __name__ == "__main__": + import urllib + txt = urllib.urlopen('file:///home/joar/Dropbox/ascii/install-all-the-dependencies.txt') + + _log.setLevel(logging.DEBUG) + logging.basicConfig() + + converter = AsciiToImage() + + converter.convert(txt.read(), '/tmp/test.png') + + ''' + im, x, y, duration = renderImage(h, 10) + print "Rendered image in %.5f seconds" % duration + im.save('tldr.png', "PNG") + ''' diff --git a/mediagoblin/media_types/ascii/fonts/Inconsolata.otf b/mediagoblin/media_types/ascii/fonts/Inconsolata.otf new file mode 120000 index 00000000..4e742b5e --- /dev/null +++ b/mediagoblin/media_types/ascii/fonts/Inconsolata.otf @@ -0,0 +1 @@ +../../../../extlib/inconsolata/Inconsolata.otf \ No newline at end of file diff --git a/mediagoblin/media_types/ascii/processing.py b/mediagoblin/media_types/ascii/processing.py new file mode 100644 index 00000000..a74690c1 --- /dev/null +++ b/mediagoblin/media_types/ascii/processing.py @@ -0,0 +1,93 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +import asciitoimage +import chardet +import os +import Image + +from mediagoblin import mg_globals as mgg +from mediagoblin.processing import create_pub_filepath, THUMB_SIZE + + +def process_ascii(entry): + ''' + Code to process a txt file + ''' + workbench = mgg.workbench_manager.create_workbench() + # Conversions subdirectory to avoid collisions + conversions_subdir = os.path.join( + workbench.dir, 'conversions') + os.mkdir(conversions_subdir) + + queued_filepath = entry['queued_media_file'] + queued_filename = workbench.localized_file( + mgg.queue_store, queued_filepath, + 'source') + + queued_file = file(queued_filename, 'rb') + + with queued_file: + queued_file_charset = chardet.detect(queued_file.read()) + + queued_file.seek(0) # Rewind the queued file + + thumb_filepath = create_pub_filepath( + entry, 'thumbnail.png') + + tmp_thumb_filename = os.path.join( + conversions_subdir, thumb_filepath[-1]) + + converter = asciitoimage.AsciiToImage() + + thumb = converter._create_image( + queued_file.read()) + + with file(tmp_thumb_filename, 'w') as thumb_file: + thumb.thumbnail(THUMB_SIZE, Image.ANTIALIAS) + thumb.save(thumb_file) + + mgg.public_store.copy_local_to_storage( + tmp_thumb_filename, thumb_filepath) + + queued_file.seek(0) + + original_filepath = create_pub_filepath(entry, queued_filepath[-1]) + + with mgg.public_store.get_file(original_filepath, 'wb') \ + as original_file: + original_file.write(queued_file.read()) + + + queued_file.seek(0) # Rewind *again* + + unicode_filepath = create_pub_filepath(entry, 'unicode.txt') + + with mgg.public_store.get_file(unicode_filepath, 'wb') \ + as unicode_file: + unicode_file.write( + unicode(queued_file.read().decode( + queued_file_charset['encoding'])).encode( + 'ascii', + 'xmlcharrefreplace')) + + mgg.queue_store.delete_file(queued_filepath) + entry['queued_media_file'] = [] + media_files_dict = entry.setdefault('media_files', {}) + media_files_dict['thumb'] = thumb_filepath + media_files_dict['unicode'] = unicode_filepath + media_files_dict['original'] = original_filepath + + entry.save() diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index ecdd0474..382ba88a 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -402,3 +402,15 @@ table.media_panel th { margin-top: 10px; margin-left: 10px; } + +/* ASCII art */ + +@font-face { + font-family: Inconsolata; + src: local('Inconsolata'), url('../fonts/Inconsolata.otf') format('opentype') +} + +.ascii-wrapper pre { + font-family: Inconsolata, monospace; + line-height: 1em; +} \ No newline at end of file diff --git a/mediagoblin/static/fonts/Inconsolata.otf b/mediagoblin/static/fonts/Inconsolata.otf new file mode 120000 index 00000000..777be657 --- /dev/null +++ b/mediagoblin/static/fonts/Inconsolata.otf @@ -0,0 +1 @@ +../../../extlib/inconsolata/Inconsolata.otf \ No newline at end of file diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 4e4c7c43..443d0e52 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -128,9 +128,13 @@ def submit_start(request): return redirect(request, "mediagoblin.user_pages.user_home", user=request.user.username) - except InvalidFileType, exc: + except Exception as e: + ''' + This section is intended to catch exceptions raised in + mediagobling.media_types + ''' submit_form.file.errors.append( - _(u'Invalid file type.')) + e) return render_to_response( request, diff --git a/mediagoblin/templates/mediagoblin/media_displays/ascii.html b/mediagoblin/templates/mediagoblin/media_displays/ascii.html new file mode 100644 index 00000000..9e77066a --- /dev/null +++ b/mediagoblin/templates/mediagoblin/media_displays/ascii.html @@ -0,0 +1,40 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} + +{% extends 'mediagoblin/user_pages/media.html' %} + +{% block mediagoblin_media %} +
    +
    +      {%- autoescape False -%}
    +      {{- request.app.public_store.get_file(
    +             media['media_files']['unicode']).read()|string -}}
    +      {%- endautoescape -%}
    +    
    +
    + {% if 'original' in media.media_files %} +

    + + {%- trans -%} + Original + {%- endtrans -%} + +

    + {% endif %} +{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/media_displays/image.html b/mediagoblin/templates/mediagoblin/media_displays/image.html index ad60fa94..94420e89 100644 --- a/mediagoblin/templates/mediagoblin/media_displays/image.html +++ b/mediagoblin/templates/mediagoblin/media_displays/image.html @@ -1 +1,19 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} + {% extends 'mediagoblin/user_pages/media.html' %} diff --git a/mediagoblin/templates/mediagoblin/media_displays/video.html b/mediagoblin/templates/mediagoblin/media_displays/video.html index ada50e28..fc08f963 100644 --- a/mediagoblin/templates/mediagoblin/media_displays/video.html +++ b/mediagoblin/templates/mediagoblin/media_displays/video.html @@ -1,3 +1,21 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} + {% extends 'mediagoblin/user_pages/media.html' %} {% block mediagoblin_media %} diff --git a/mediagoblin/tests/test_submission.py b/mediagoblin/tests/test_submission.py index 7c372745..4a0543a8 100644 --- a/mediagoblin/tests/test_submission.py +++ b/mediagoblin/tests/test_submission.py @@ -1,3 +1,4 @@ + # GNU MediaGoblin -- federated, autonomous media hosting # Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. # @@ -16,6 +17,7 @@ import urlparse import pkg_resources +import re from nose.tools import assert_equal, assert_true, assert_false @@ -216,7 +218,8 @@ class TestSubmission: context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/submit/start.html'] form = context['submit_form'] - assert form.file.errors == [u'Invalid file type.'] + assert re.match(r'^Could not extract any file extension from ".*?"$', str(form.file.errors[0])) + assert len(form.file.errors) == 1 # NOTE: The following 2 tests will ultimately fail, but they # *will* pass the initial form submission step. Instead, From 4601c30c2e80734cf3a18472c2e29a7f920b9604 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Sat, 31 Dec 2011 22:57:08 +0100 Subject: [PATCH 1347/2731] Fixed submission error handling and broken tests - Fixed broken test_auth test - Fixed error handling on submission, it now raises the exception if it is not explicitly relevant to file submission. --- mediagoblin/media_types/__init__.py | 2 +- mediagoblin/submit/views.py | 12 +++++++++--- mediagoblin/tests/test_auth.py | 4 ++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/mediagoblin/media_types/__init__.py b/mediagoblin/media_types/__init__.py index 7b9bf0d7..e7eb1dde 100644 --- a/mediagoblin/media_types/__init__.py +++ b/mediagoblin/media_types/__init__.py @@ -73,7 +73,7 @@ def get_media_type_and_manager(filename): # Get the file extension ext = os.path.splitext(filename)[1].lower() else: - raise Exception( + raise InvalidFileType( _(u'Could not extract any file extension from "{filename}"').format( filename=filename)) diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 443d0e52..60693bd6 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -31,7 +31,8 @@ from mediagoblin.decorators import require_active_login from mediagoblin.submit import forms as submit_forms, security from mediagoblin.processing import mark_entry_failed, ProcessMedia from mediagoblin.messages import add_message, SUCCESS -from mediagoblin.media_types import get_media_type_and_manager, InvalidFileType +from mediagoblin.media_types import get_media_type_and_manager, \ + InvalidFileType, FileTypeNotSupported @require_active_login @@ -133,8 +134,13 @@ def submit_start(request): This section is intended to catch exceptions raised in mediagobling.media_types ''' - submit_form.file.errors.append( - e) + + if isinstance(e, InvalidFileType) or \ + isinstance(e, FileTypeNotSupported): + submit_form.file.errors.append( + e) + else: + raise return render_to_response( request, diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py index 9b0dea66..e54ffa5a 100644 --- a/mediagoblin/tests/test_auth.py +++ b/mediagoblin/tests/test_auth.py @@ -233,9 +233,9 @@ def test_register_views(test_app): ## Did we redirect to the proper page? Use the right template? assert_equal( urlparse.urlsplit(response.location)[2], - '/auth/forgot_password/email_sent/') + '/auth/login/') assert template.TEMPLATE_TEST_CONTEXT.has_key( - 'mediagoblin/auth/fp_email_sent.html') + 'mediagoblin/auth/login.html') ## Make sure link to change password is sent by email assert len(mail.EMAIL_TEST_INBOX) == 1 From 7fc782bb6d63cef234ff1a4dad29175afb6d8be5 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 1 Jan 2012 18:11:39 +0100 Subject: [PATCH 1348/2731] Disable horizontal resize for text areas. --- mediagoblin/static/css/base.css | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 382ba88a..98b77967 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -193,6 +193,7 @@ text-align: center; } textarea#comment_content { + resize: vertical; width: 634px; height: 90px; border: none; @@ -256,6 +257,10 @@ textarea#comment_content { width: 20px; } +textarea#description { + resize: vertical; +} + /* comments */ .comment_author { @@ -413,4 +418,4 @@ table.media_panel th { .ascii-wrapper pre { font-family: Inconsolata, monospace; line-height: 1em; -} \ No newline at end of file +} From ce86b1d5afd21283719146a367b05352d290032f Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 1 Jan 2012 18:12:18 +0100 Subject: [PATCH 1349/2731] Remove border-bottom from media_specs --- mediagoblin/static/css/base.css | 1 - 1 file changed, 1 deletion(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 98b77967..e58a7368 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -303,7 +303,6 @@ h2.media_title { p.media_specs { font-size: 0.9em; border-top: 1px solid #222; - border-bottom: 1px solid #222; padding: 10px 0px; color: #888; } From f5d837fe4a0ad5f08b48e0cd69fddb37e81d1514 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 1 Jan 2012 18:14:39 +0100 Subject: [PATCH 1350/2731] Forgot this one. Also disable horizontal resize for the bio field --- mediagoblin/static/css/base.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index e58a7368..76e37c1b 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -257,7 +257,7 @@ textarea#comment_content { width: 20px; } -textarea#description { +textarea#description, textarea#bio { resize: vertical; } From 415077a743400f9d9fa476b37c5b3aff4683f942 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sun, 1 Jan 2012 17:24:02 +0100 Subject: [PATCH 1351/2731] Factor out check_db_migrations_current When initializing the database connection the current mongo based setup checked for new migrations and warned about them. This was mongo specific so factor'd it out into a more generic check_db_migrations_current function in the mongo backend. Also created a dummy one in the sql backend. --- mediagoblin/db/mongo/open.py | 23 +++++++++++++++++++++++ mediagoblin/db/open.py | 3 ++- mediagoblin/db/sql/open.py | 4 ++++ mediagoblin/init/__init__.py | 24 +++--------------------- 4 files changed, 32 insertions(+), 22 deletions(-) diff --git a/mediagoblin/db/mongo/open.py b/mediagoblin/db/mongo/open.py index 63889292..8016ced9 100644 --- a/mediagoblin/db/mongo/open.py +++ b/mediagoblin/db/mongo/open.py @@ -18,6 +18,7 @@ import pymongo import mongokit from paste.deploy.converters import asint from mediagoblin.db.mongo import models +from mediagoblin.db.util import MigrationManager def connect_database_from_config(app_config, use_pymongo=False): @@ -53,3 +54,25 @@ def setup_connection_and_db_from_config(app_config, use_pymongo=False): models.register_models(connection) return (connection, db) + + +def check_db_migrations_current(db): + # This MUST be imported so as to set up the appropriate migrations! + from mediagoblin.db.mongo import migrations + + # Init the migration number if necessary + migration_manager = MigrationManager(db) + migration_manager.install_migration_version_if_missing() + + # Tiny hack to warn user if our migration is out of date + if not migration_manager.database_at_latest_migration(): + db_migration_num = migration_manager.database_current_migration() + latest_migration_num = migration_manager.latest_migration() + if db_migration_num < latest_migration_num: + print ( + "*WARNING:* Your migrations are out of date, " + "maybe run ./bin/gmg migrate?") + elif db_migration_num > latest_migration_num: + print ( + "*WARNING:* Your migrations are out of date... " + "in fact they appear to be from the future?!") diff --git a/mediagoblin/db/open.py b/mediagoblin/db/open.py index a92a6ada..32827fcb 100644 --- a/mediagoblin/db/open.py +++ b/mediagoblin/db/open.py @@ -14,4 +14,5 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from mediagoblin.db.mongo.open import setup_connection_and_db_from_config +from mediagoblin.db.mongo.open import \ + setup_connection_and_db_from_config, check_db_migrations_current diff --git a/mediagoblin/db/sql/open.py b/mediagoblin/db/sql/open.py index 57feaf50..c682bd3b 100644 --- a/mediagoblin/db/sql/open.py +++ b/mediagoblin/db/sql/open.py @@ -27,3 +27,7 @@ def setup_connection_and_db_from_config(app_config): Session.configure(bind=engine) return "dummy conn", DatabaseMaster(engine) + + +def check_db_migrations_current(db): + pass diff --git a/mediagoblin/init/__init__.py b/mediagoblin/init/__init__.py index 5f7f83d4..23c1c26d 100644 --- a/mediagoblin/init/__init__.py +++ b/mediagoblin/init/__init__.py @@ -23,8 +23,8 @@ from mediagoblin.init.config import ( read_mediagoblin_config, generate_validation_report) from mediagoblin import mg_globals from mediagoblin.mg_globals import setup_globals -from mediagoblin.db.open import setup_connection_and_db_from_config -from mediagoblin.db.util import MigrationManager +from mediagoblin.db.open import setup_connection_and_db_from_config, \ + check_db_migrations_current from mediagoblin.workbench import WorkbenchManager from mediagoblin.storage import storage_system_from_config @@ -56,28 +56,10 @@ def setup_global_and_app_config(config_path): def setup_database(): app_config = mg_globals.app_config - # This MUST be imported so as to set up the appropriate migrations! - from mediagoblin.db.mongo import migrations - # Set up the database connection, db = setup_connection_and_db_from_config(app_config) - # Init the migration number if necessary - migration_manager = MigrationManager(db) - migration_manager.install_migration_version_if_missing() - - # Tiny hack to warn user if our migration is out of date - if not migration_manager.database_at_latest_migration(): - db_migration_num = migration_manager.database_current_migration() - latest_migration_num = migration_manager.latest_migration() - if db_migration_num < latest_migration_num: - print ( - "*WARNING:* Your migrations are out of date, " - "maybe run ./bin/gmg migrate?") - elif db_migration_num > latest_migration_num: - print ( - "*WARNING:* Your migrations are out of date... " - "in fact they appear to be from the future?!") + check_db_migrations_current(db) setup_globals( db_connection=connection, From d8db95e4b72ae30c368aeba41993004b95bc7412 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 1 Jan 2012 19:00:56 +0100 Subject: [PATCH 1352/2731] Remove fp_email_sent.html and refs to it --- mediagoblin/auth/routing.py | 4 --- .../mediagoblin/auth/fp_email_sent.html | 28 ------------------- 2 files changed, 32 deletions(-) delete mode 100644 mediagoblin/templates/mediagoblin/auth/fp_email_sent.html diff --git a/mediagoblin/auth/routing.py b/mediagoblin/auth/routing.py index 365ccfaa..699ecbe1 100644 --- a/mediagoblin/auth/routing.py +++ b/mediagoblin/auth/routing.py @@ -39,8 +39,4 @@ auth_routes = [ Route('mediagoblin.auth.fp_changed_success', '/forgot_password/changed_success/', template='mediagoblin/auth/fp_changed_success.html', - controller='mediagoblin.views:simple_template_render'), - Route('mediagoblin.auth.fp_email_sent', - '/forgot_password/email_sent/', - template='mediagoblin/auth/fp_email_sent.html', controller='mediagoblin.views:simple_template_render')] diff --git a/mediagoblin/templates/mediagoblin/auth/fp_email_sent.html b/mediagoblin/templates/mediagoblin/auth/fp_email_sent.html deleted file mode 100644 index 69aac6b3..00000000 --- a/mediagoblin/templates/mediagoblin/auth/fp_email_sent.html +++ /dev/null @@ -1,28 +0,0 @@ -{# -# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 Free Software Foundation, Inc -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -#} -{% extends "mediagoblin/base.html" %} - -{% block mediagoblin_content %} -

    - {% trans -%} - Check your inbox. We sent an email with a URL for changing your password. - {%- endtrans %} -

    - -{% endblock %} - From 35149b11247846506b31ef3cd6647b659b18f352 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 1 Jan 2012 19:13:23 +0100 Subject: [PATCH 1353/2731] Remove fp_changed_success.html, use log in page + notification message instead --- mediagoblin/auth/routing.py | 6 +---- mediagoblin/auth/views.py | 6 ++++- .../mediagoblin/auth/fp_changed_success.html | 27 ------------------- 3 files changed, 6 insertions(+), 33 deletions(-) delete mode 100644 mediagoblin/templates/mediagoblin/auth/fp_changed_success.html diff --git a/mediagoblin/auth/routing.py b/mediagoblin/auth/routing.py index 699ecbe1..ea9388c5 100644 --- a/mediagoblin/auth/routing.py +++ b/mediagoblin/auth/routing.py @@ -35,8 +35,4 @@ auth_routes = [ controller='mediagoblin.auth.views:forgot_password'), Route('mediagoblin.auth.verify_forgot_password', '/forgot_password/verify/', - controller='mediagoblin.auth.views:verify_forgot_password'), - Route('mediagoblin.auth.fp_changed_success', - '/forgot_password/changed_success/', - template='mediagoblin/auth/fp_changed_success.html', - controller='mediagoblin.views:simple_template_render')] + controller='mediagoblin.auth.views:verify_forgot_password')] diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index f707ecbe..88dc40ad 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -324,7 +324,11 @@ def verify_forgot_password(request): user.fp_token_expire = None user.save() - return redirect(request, 'mediagoblin.auth.fp_changed_success') + messages.add_message( + request, + messages.INFO, + _("You can now log in using your new password.")) + return redirect(request, 'mediagoblin.auth.login') else: return render_to_response( request, diff --git a/mediagoblin/templates/mediagoblin/auth/fp_changed_success.html b/mediagoblin/templates/mediagoblin/auth/fp_changed_success.html deleted file mode 100644 index 7cea312d..00000000 --- a/mediagoblin/templates/mediagoblin/auth/fp_changed_success.html +++ /dev/null @@ -1,27 +0,0 @@ -{# -# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 Free Software Foundation, Inc -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -#} -{% extends "mediagoblin/base.html" %} - -{% block mediagoblin_content %} -

    - {% trans -%} - Your password has been changed. Try to log in now. - {%- endtrans %} -

    -{% endblock %} - From 445d811043c5cb8b801b91604da6e3967d7ba3b7 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sun, 1 Jan 2012 19:20:38 +0100 Subject: [PATCH 1354/2731] Fix unit tests for new forget password flow After changing the password, the login page is now shown. It contains a message. (we can't test for that easily currently. There is a bug open on this problem.) At least for the login page being shown now. --- mediagoblin/tests/test_auth.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py index e54ffa5a..411b4539 100644 --- a/mediagoblin/tests/test_auth.py +++ b/mediagoblin/tests/test_auth.py @@ -291,7 +291,7 @@ def test_register_views(test_app): 'token': parsed_get_params['token']}) response.follow() assert template.TEMPLATE_TEST_CONTEXT.has_key( - 'mediagoblin/auth/fp_changed_success.html') + 'mediagoblin/auth/login.html') ## Verify step 2.2 of password-change works -- login w/ new password success template.clear_test_template_context() From ada0642e5a619a3dce4050db535eb065e0cdc798 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 1 Jan 2012 22:58:32 +0100 Subject: [PATCH 1355/2731] Seperate jQuery bit that was still in media.html --- mediagoblin/static/js/comment_show.js | 9 +++++++++ .../templates/mediagoblin/user_pages/media.html | 13 ++----------- 2 files changed, 11 insertions(+), 11 deletions(-) create mode 100644 mediagoblin/static/js/comment_show.js diff --git a/mediagoblin/static/js/comment_show.js b/mediagoblin/static/js/comment_show.js new file mode 100644 index 00000000..2212b9ad --- /dev/null +++ b/mediagoblin/static/js/comment_show.js @@ -0,0 +1,9 @@ +$(document).ready(function(){ + $('#form_comment').hide(); + $('#button_addcomment').click(function(){ + $(this).fadeOut('fast'); + $('#form_comment').slideDown(function(){ + $('#comment_content').focus(); + }); + }); +}); diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 4c255112..ca650f63 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -23,17 +23,8 @@ {% block title %}{{ media.title }} — {{ super() }}{% endblock %} {% block mediagoblin_head %} - + {% endblock mediagoblin_head %} {% block mediagoblin_content %} From 010fe2d71bf8b1c47c12234466d759561df18355 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 24 Dec 2011 15:55:33 +0100 Subject: [PATCH 1356/2731] sql convert: Use more library functions 1. Use the new setup_connection_and_db_from_config in the sql backend. 2. Use sql and mongo specific functions wherever appropiate instead of the generic "db.X" one. This makes the converter more indepedent of the current backend choice. --- mediagoblin/db/sql/convert.py | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/mediagoblin/db/sql/convert.py b/mediagoblin/db/sql/convert.py index c6bed1e9..6698b767 100644 --- a/mediagoblin/db/sql/convert.py +++ b/mediagoblin/db/sql/convert.py @@ -1,13 +1,12 @@ -from sqlalchemy import create_engine -from sqlalchemy.orm import sessionmaker - from mediagoblin.init import setup_global_and_app_config, setup_database -from mediagoblin.db.util import ObjectId +from mediagoblin.db.mongo.util import ObjectId from mediagoblin.db.sql.models import (Base, User, MediaEntry, MediaComment, Tag, MediaTag) - -# Session = sessionmaker() +from mediagoblin.db.sql.open import setup_connection_and_db_from_config as \ + sql_connect +from mediagoblin.db.mongo.open import setup_connection_and_db_from_config as \ + mongo_connect from mediagoblin.db.sql.base import Session @@ -125,14 +124,13 @@ def convert_media_comments(mk_db): def main(): - engine = create_engine('sqlite:///mediagoblin.db', echo=True) - Session.configure(bind=engine) + global_config, app_config = setup_global_and_app_config("mediagoblin.ini") - setup_global_and_app_config("mediagoblin.ini") + sql_conn, sql_db = sql_connect({'sql_engine': 'sqlite:///mediagoblin.db'}) - mk_conn, mk_db = setup_database() + mk_conn, mk_db = mongo_connect(app_config) - Base.metadata.create_all(engine) + Base.metadata.create_all(sql_db.engine) convert_users(mk_db) Session.remove() From 228c4470f40d66e8b9383321d44d89e2a1c0ecad Mon Sep 17 00:00:00 2001 From: Elrond Date: Wed, 4 Jan 2012 11:57:08 +0100 Subject: [PATCH 1357/2731] Dot-Notation for MediaEntry.media_files --- mediagoblin/gmg_commands/import_export.py | 4 ++-- mediagoblin/media_types/video/processing.py | 6 +++--- mediagoblin/templates/mediagoblin/edit/attachments.html | 2 +- mediagoblin/templates/mediagoblin/edit/edit.html | 2 +- mediagoblin/templates/mediagoblin/media_displays/ascii.html | 4 ++-- mediagoblin/templates/mediagoblin/media_displays/video.html | 4 ++-- mediagoblin/templates/mediagoblin/user_pages/media.html | 4 ++-- .../mediagoblin/user_pages/media_confirm_delete.html | 2 +- mediagoblin/templates/mediagoblin/utils/object_gallery.html | 2 +- mediagoblin/tools/files.py | 2 +- 10 files changed, 16 insertions(+), 16 deletions(-) diff --git a/mediagoblin/gmg_commands/import_export.py b/mediagoblin/gmg_commands/import_export.py index eda41f4c..7f699429 100644 --- a/mediagoblin/gmg_commands/import_export.py +++ b/mediagoblin/gmg_commands/import_export.py @@ -65,7 +65,7 @@ def _import_media(db, args): args._cache_path['queue']) for entry in db.MediaEntry.find(): - for name, path in entry['media_files'].items(): + for name, path in entry.media_files.items(): _log.info('Importing: {0} - {1}'.format( entry.title, name)) @@ -207,7 +207,7 @@ def _export_media(db, args): args._cache_path['queue']) for entry in db.MediaEntry.find(): - for name, path in entry['media_files'].items(): + for name, path in entry.media_files.items(): _log.info(u'Exporting {0} - {1}'.format( entry.title, name)) diff --git a/mediagoblin/media_types/video/processing.py b/mediagoblin/media_types/video/processing.py index 7d261226..c260cfd6 100644 --- a/mediagoblin/media_types/video/processing.py +++ b/mediagoblin/media_types/video/processing.py @@ -74,7 +74,7 @@ def process_video(entry): tmp_dst.read()) _log.debug('Saved medium') - entry['media_files']['webm_640'] = medium_filepath + entry.media_files['webm_640'] = medium_filepath # Save the width and height of the transcoded video entry.media_data['video'] = { @@ -94,7 +94,7 @@ def process_video(entry): tmp_thumb.read()) _log.debug('Saved thumbnail') - entry['media_files']['thumb'] = thumbnail_filepath + entry.media_files['thumb'] = thumbnail_filepath if video_config['keep_original']: # Push original file to public storage @@ -111,7 +111,7 @@ def process_video(entry): original_file.write(queued_file.read()) _log.debug('Saved original') - entry['media_files']['original'] = original_filepath + entry.media_files['original'] = original_filepath mgg.queue_store.delete_file(queued_filepath) diff --git a/mediagoblin/templates/mediagoblin/edit/attachments.html b/mediagoblin/templates/mediagoblin/edit/attachments.html index 124d0313..06062cd3 100644 --- a/mediagoblin/templates/mediagoblin/edit/attachments.html +++ b/mediagoblin/templates/mediagoblin/edit/attachments.html @@ -27,7 +27,7 @@

    Editing attachments for {{ media.title }}

    + media.media_files['thumb']) }}" />
    {% if media.attachment_files|count %} diff --git a/mediagoblin/templates/mediagoblin/edit/edit.html b/mediagoblin/templates/mediagoblin/edit/edit.html index 2dfaddc8..024a2b4d 100644 --- a/mediagoblin/templates/mediagoblin/edit/edit.html +++ b/mediagoblin/templates/mediagoblin/edit/edit.html @@ -29,7 +29,7 @@

    {% trans media_title=media.title %}Editing {{ media_title }}{% endtrans %}

    + media.media_files['thumb']) }}" />
    {{ wtforms_util.render_divs(form) }}
    diff --git a/mediagoblin/templates/mediagoblin/media_displays/ascii.html b/mediagoblin/templates/mediagoblin/media_displays/ascii.html index 9e77066a..6b40bf08 100644 --- a/mediagoblin/templates/mediagoblin/media_displays/ascii.html +++ b/mediagoblin/templates/mediagoblin/media_displays/ascii.html @@ -23,14 +23,14 @@
           {%- autoescape False -%}
           {{- request.app.public_store.get_file(
    -             media['media_files']['unicode']).read()|string -}}
    +             media.media_files['unicode']).read()|string -}}
           {%- endautoescape -%}
         
    {% if 'original' in media.media_files %}

    + media.media_files['original']) }}"> {%- trans -%} Original {%- endtrans -%} diff --git a/mediagoblin/templates/mediagoblin/media_displays/video.html b/mediagoblin/templates/mediagoblin/media_displays/video.html index fc08f963..6b5e7a0e 100644 --- a/mediagoblin/templates/mediagoblin/media_displays/video.html +++ b/mediagoblin/templates/mediagoblin/media_displays/video.html @@ -27,7 +27,7 @@ preload="auto" data-setup="">

    {%- trans -%}Sorry, this video will not work because @@ -42,7 +42,7 @@ {% if 'original' in media.media_files %}

    + media.media_files['original']) }}"> {%- trans -%} Original {%- endtrans -%} diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index ca650f63..d52f544f 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -36,9 +36,9 @@ {# if there's a medium file size, that means the medium size # isn't the original... so link to the original! #} - {% if media['media_files'].has_key('medium') %} + {% if media.media_files.has_key('medium') %} + media.media_files['original']) }}"> Image for {{ media.title }} diff --git a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html index 6c483769..408bca05 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html @@ -34,7 +34,7 @@


    diff --git a/mediagoblin/templates/mediagoblin/utils/object_gallery.html b/mediagoblin/templates/mediagoblin/utils/object_gallery.html index b8155f03..5f628dc7 100644 --- a/mediagoblin/templates/mediagoblin/utils/object_gallery.html +++ b/mediagoblin/templates/mediagoblin/utils/object_gallery.html @@ -31,7 +31,7 @@ {%- elif loop.last %} thumb_entry_last{% endif %}">
    + entry.media_files['thumb']) }}" /> {% if entry.title %}
    diff --git a/mediagoblin/tools/files.py b/mediagoblin/tools/files.py index e0bf0569..10f1d994 100644 --- a/mediagoblin/tools/files.py +++ b/mediagoblin/tools/files.py @@ -23,7 +23,7 @@ def delete_media_files(media): Arguments: - media: A MediaEntry document """ - for listpath in media['media_files'].itervalues(): + for listpath in media.media_files.itervalues(): mg_globals.public_store.delete_file( listpath) From 049284b1da87c1fcb21a8b5585890364eb8e0735 Mon Sep 17 00:00:00 2001 From: Elrond Date: Tue, 13 Dec 2011 10:49:51 +0100 Subject: [PATCH 1358/2731] Dot-Notation for MediaEntry.state --- mediagoblin/processing.py | 2 +- mediagoblin/tests/test_submission.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mediagoblin/processing.py b/mediagoblin/processing.py index 7dd5cc7d..cbac8030 100644 --- a/mediagoblin/processing.py +++ b/mediagoblin/processing.py @@ -64,7 +64,7 @@ class ProcessMedia(Task): except ImportError, exc: mark_entry_failed(entry[u'_id'], exc) - entry['state'] = u'processed' + entry.state = u'processed' entry.save() def on_failure(self, exc, task_id, args, kwargs, einfo): diff --git a/mediagoblin/tests/test_submission.py b/mediagoblin/tests/test_submission.py index 4a0543a8..2b17c515 100644 --- a/mediagoblin/tests/test_submission.py +++ b/mediagoblin/tests/test_submission.py @@ -240,7 +240,7 @@ class TestSubmission: entry = mg_globals.database.MediaEntry.find_one( {'title': 'Malicious Upload 2'}) - assert_equal(entry['state'], 'failed') + assert_equal(entry.state, 'failed') assert_equal( entry['fail_error'], u'mediagoblin.processing:BadMediaFail') @@ -260,7 +260,7 @@ class TestSubmission: entry = mg_globals.database.MediaEntry.find_one( {'title': 'Malicious Upload 3'}) - assert_equal(entry['state'], 'failed') + assert_equal(entry.state, 'failed') assert_equal( entry['fail_error'], u'mediagoblin.processing:BadMediaFail') From 8545cfc97d9336b100881bd3ebafd4a5f4882dd3 Mon Sep 17 00:00:00 2001 From: Elrond Date: Tue, 13 Dec 2011 11:18:39 +0100 Subject: [PATCH 1359/2731] Dot-Notation for MediaEntry.queued_media_file --- mediagoblin/media_types/image/processing.py | 4 ++-- mediagoblin/media_types/video/processing.py | 2 +- mediagoblin/submit/views.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mediagoblin/media_types/image/processing.py b/mediagoblin/media_types/image/processing.py index e493eb2b..cf90388f 100644 --- a/mediagoblin/media_types/image/processing.py +++ b/mediagoblin/media_types/image/processing.py @@ -37,7 +37,7 @@ def process_image(entry): workbench.dir, 'conversions') os.mkdir(conversions_subdir) - queued_filepath = entry['queued_media_file'] + queued_filepath = entry.queued_media_file queued_filename = workbench.localized_file( mgg.queue_store, queued_filepath, 'source') @@ -98,7 +98,7 @@ def process_image(entry): original_file.write(queued_file.read()) mgg.queue_store.delete_file(queued_filepath) - entry['queued_media_file'] = [] + entry.queued_media_file = [] media_files_dict = entry.setdefault('media_files', {}) media_files_dict['thumb'] = thumb_filepath media_files_dict['original'] = original_filepath diff --git a/mediagoblin/media_types/video/processing.py b/mediagoblin/media_types/video/processing.py index c260cfd6..49a50647 100644 --- a/mediagoblin/media_types/video/processing.py +++ b/mediagoblin/media_types/video/processing.py @@ -45,7 +45,7 @@ def process_video(entry): workbench = mgg.workbench_manager.create_workbench() - queued_filepath = entry['queued_media_file'] + queued_filepath = entry.queued_media_file queued_filename = workbench.localized_file( mgg.queue_store, queued_filepath, 'source') diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 60693bd6..dd273c7f 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -89,7 +89,7 @@ def submit_start(request): queue_file.write(request.POST['file'].file.read()) # Add queued filename to the entry - entry['queued_media_file'] = queue_filepath + entry.queued_media_file = queue_filepath # We generate this ourselves so we know what the taks id is for # retrieval later. From 9c196287ad26f52acb38d6c37560848da23151a6 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Wed, 4 Jan 2012 17:48:16 +0100 Subject: [PATCH 1360/2731] Add Markdown for submit page, edit page, profile edit page; thus fixing ticket #690 --- mediagoblin/edit/forms.py | 12 ++++++++++-- mediagoblin/submit/forms.py | 5 ++++- .../templates/mediagoblin/user_pages/media.html | 2 +- mediagoblin/templates/mediagoblin/utils/wtforms.html | 2 +- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index f9cc92bf..406de3f8 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -23,7 +23,11 @@ class EditForm(wtforms.Form): title = wtforms.TextField( _('Title'), [wtforms.validators.Length(min=0, max=500)]) - description = wtforms.TextAreaField('Description of this work') + description = wtforms.TextAreaField( + _('Description of this work'), + description=_("""You can use + + Markdown for formatting.""")) tags = wtforms.TextField( _('Tags'), [tag_length_validator], @@ -40,7 +44,11 @@ class EditForm(wtforms.Form): class EditProfileForm(wtforms.Form): bio = wtforms.TextAreaField( _('Bio'), - [wtforms.validators.Length(min=0, max=500)]) + [wtforms.validators.Length(min=0, max=500)], + description=_( + """You can use + + Markdown for formatting.""")) url = wtforms.TextField( _('Website'), [wtforms.validators.Optional(), diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py index e21b00ee..7ef3638f 100644 --- a/mediagoblin/submit/forms.py +++ b/mediagoblin/submit/forms.py @@ -27,7 +27,10 @@ class SubmitStartForm(wtforms.Form): _('Title'), [wtforms.validators.Length(min=0, max=500)]) description = wtforms.TextAreaField( - _('Description of this work')) + _('Description of this work'), + description=_("""You can use + + Markdown for formatting.""")) tags = wtforms.TextField( _('Tags'), [tag_length_validator], diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index d52f544f..9b331789 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -96,7 +96,7 @@ user= media.get_uploader.username, media=media._id) }}" method="POST" id="form_comment">

    - {% trans %}Type your comment here. You can use Markdown for formatting.{% endtrans %} + {% trans %}Type your comment here. You can use Markdown for formatting.{% endtrans %}

    {{ wtforms_util.render_divs(comment_form) }}
    diff --git a/mediagoblin/templates/mediagoblin/utils/wtforms.html b/mediagoblin/templates/mediagoblin/utils/wtforms.html index cc30388f..3517b5c3 100644 --- a/mediagoblin/templates/mediagoblin/utils/wtforms.html +++ b/mediagoblin/templates/mediagoblin/utils/wtforms.html @@ -29,7 +29,7 @@ {% endfor %} {%- endif %} {% if field.description -%} -

    {{ _(field.description) }}

    +

    {{ _(field.description)|safe }}

    {%- endif %}
    {%- endmacro %} From 6a59a8abd49d921c2316fb4bd4cddf55a322b2fb Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 2 Jan 2012 16:02:02 +0100 Subject: [PATCH 1361/2731] Import MigrationManager from mongo in mongo backend. Inside the mongo db backend, use the mongo MigrationManager. This is hopefully the last reference to the generic MigrationManager reference on db.util. --- mediagoblin/db/mongo/open.py | 2 +- mediagoblin/db/util.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/db/mongo/open.py b/mediagoblin/db/mongo/open.py index 8016ced9..48c909d9 100644 --- a/mediagoblin/db/mongo/open.py +++ b/mediagoblin/db/mongo/open.py @@ -18,7 +18,7 @@ import pymongo import mongokit from paste.deploy.converters import asint from mediagoblin.db.mongo import models -from mediagoblin.db.util import MigrationManager +from mediagoblin.db.mongo.util import MigrationManager def connect_database_from_config(app_config, use_pymongo=False): diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index 3fd96a1d..1df9494c 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -14,5 +14,5 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from mediagoblin.db.mongo.util import (MigrationManager, ObjectId, InvalidId, +from mediagoblin.db.mongo.util import (ObjectId, InvalidId, DESCENDING) From f1cdd278e7cf195e485567ed0d0d8a90cad81e48 Mon Sep 17 00:00:00 2001 From: Elrond Date: Wed, 4 Jan 2012 23:48:55 +0100 Subject: [PATCH 1362/2731] f691: Use StrictUndefined for templates and fix some issues References to undefined variables in templates were silently ignored/converted to None/empty strings. This makes coding lazy stuff easy, but it makes catching typos harder. (It would have catched one of the SQL things earlier!) But on the other hand it might make the current templates error out everywhere. In fact, early testing has shown two instances, that errored out. Those are fixed with this commit too. If this turns out to make things more complex and useless than actually solving any problems, it can easily be dropped again. --- mediagoblin/templates/mediagoblin/user_pages/media.html | 5 +++-- mediagoblin/templates/mediagoblin/user_pages/user.html | 3 ++- mediagoblin/tools/template.py | 3 +++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 9b331789..4b5c9337 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -60,8 +60,9 @@ {% trans date=media.created.strftime("%Y-%m-%d") -%} Added on {{ date }}. {%- endtrans %} - {% if media['uploader'] == request.user._id or - request.user['is_admin'] %} + {% if request.user and + (media.uploader == request.user._id or + request.user.is_admin) %} {% set edit_url = request.urlgen('mediagoblin.edit.edit_media', user= media.get_uploader.username, media= media._id) %} diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index b952e88c..78bbaf8c 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -113,7 +113,8 @@ {% else %}
    {% include "mediagoblin/utils/profile.html" %} - {% if request.user._id == user._id or request.user.is_admin %} + {% if request.user and + (request.user._id == user._id or request.user.is_admin) %} {%- trans %}Edit profile{% endtrans -%} diff --git a/mediagoblin/tools/template.py b/mediagoblin/tools/template.py index d0400347..54a40de6 100644 --- a/mediagoblin/tools/template.py +++ b/mediagoblin/tools/template.py @@ -41,8 +41,11 @@ def get_jinja_env(template_loader, locale): if SETUP_JINJA_ENVS.has_key(locale): return SETUP_JINJA_ENVS[locale] + # jinja2.StrictUndefined will give exceptions on references + # to undefined/unknown variables in templates. template_env = jinja2.Environment( loader=template_loader, autoescape=True, + undefined=jinja2.StrictUndefined, extensions=['jinja2.ext.i18n', 'jinja2.ext.autoescape']) template_env.install_gettext_callables( From c8071fa591ad148fbffdabc4d6dd71f5666c2172 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Thu, 5 Jan 2012 00:17:45 +0100 Subject: [PATCH 1363/2731] Create edit_account.html --- mediagoblin/edit/forms.py | 23 +++++----- mediagoblin/edit/routing.py | 5 ++- mediagoblin/edit/views.py | 40 +++++++++++++---- .../mediagoblin/edit/edit_account.html | 45 +++++++++++++++++++ 4 files changed, 92 insertions(+), 21 deletions(-) create mode 100644 mediagoblin/templates/mediagoblin/edit/edit_account.html diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index 406de3f8..df219011 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -37,7 +37,7 @@ class EditForm(wtforms.Form): _('Slug'), [wtforms.validators.Required(message=_("The slug can't be empty"))], description=_( - "The title part of this media's URL. " + "The title part of this media's address. " "You usually don't need to change this.")) @@ -52,20 +52,19 @@ class EditProfileForm(wtforms.Form): url = wtforms.TextField( _('Website'), [wtforms.validators.Optional(), - wtforms.validators.URL(message='Improperly formed URL')]) + wtforms.validators.URL(message="""This address contains errors""")]) + + +class EditAccountForm(wtforms.Form): old_password = wtforms.PasswordField( _('Old password'), - [wtforms.validators.Optional()]) + [wtforms.validators.Required()], + description=_( + "Enter your old password to prove you own this account.")) new_password = wtforms.PasswordField( - _('New Password'), - [wtforms.validators.Optional(), - wtforms.validators.Length(min=6, max=30), - wtforms.validators.EqualTo( - 'confirm_password', - 'Passwords must match.')]) - confirm_password = wtforms.PasswordField( - 'Confirm password', - [wtforms.validators.Optional()]) + _('New password'), + [wtforms.validators.Required(), + wtforms.validators.Length(min=6, max=30)]) class EditAttachmentsForm(wtforms.Form): diff --git a/mediagoblin/edit/routing.py b/mediagoblin/edit/routing.py index 34e9fd80..5216f7ca 100644 --- a/mediagoblin/edit/routing.py +++ b/mediagoblin/edit/routing.py @@ -20,4 +20,7 @@ from routes.route import Route edit_routes = [ # Media editing view handled in user_pages/routing.py Route('mediagoblin.edit.profile', '/profile/', - controller="mediagoblin.edit.views:edit_profile")] + controller="mediagoblin.edit.views:edit_profile"), + Route('mediagoblin.edit.account', '/account/', + controller="mediagoblin.edit.views:edit_account") + ] diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 4cb98c15..bae85c5d 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -161,6 +161,35 @@ def edit_profile(request): url=user.get('url'), bio=user.get('bio')) + if request.method == 'POST' and form.validate(): + user.url = unicode(request.POST['url']) + user.bio = unicode(request.POST['bio']) + + user.bio_html = cleaned_markdown_conversion(user['bio']) + + user.save() + + messages.add_message(request, + messages.SUCCESS, + _("Profile changes saved")) + return redirect(request, + 'mediagoblin.user_pages.user_home', + user=user['username']) + + return render_to_response( + request, + 'mediagoblin/edit/edit_profile.html', + {'user': user, + 'form': form}) + + +@require_active_login +def edit_account(request): + edit_username = request.GET.get('username') + user = request.user + + form = forms.EditAccountForm(request.POST) + if request.method == 'POST' and form.validate(): password_matches = auth_lib.bcrypt_check_password( request.POST['old_password'], @@ -172,30 +201,25 @@ def edit_profile(request): return render_to_response( request, - 'mediagoblin/edit/edit_profile.html', + 'mediagoblin/edit/edit_account.html', {'user': user, 'form': form}) - user.url = unicode(request.POST['url']) - user.bio = unicode(request.POST['bio']) - if password_matches: user['pw_hash'] = auth_lib.bcrypt_gen_password_hash( request.POST['new_password']) - user.bio_html = cleaned_markdown_conversion(user['bio']) - user.save() messages.add_message(request, messages.SUCCESS, - _("Profile edited!")) + _("Account settings saved")) return redirect(request, 'mediagoblin.user_pages.user_home', user=user['username']) return render_to_response( request, - 'mediagoblin/edit/edit_profile.html', + 'mediagoblin/edit/edit_account.html', {'user': user, 'form': form}) diff --git a/mediagoblin/templates/mediagoblin/edit/edit_account.html b/mediagoblin/templates/mediagoblin/edit/edit_account.html new file mode 100644 index 00000000..0a564161 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/edit/edit_account.html @@ -0,0 +1,45 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} +{% extends "mediagoblin/base.html" %} + +{% import "/mediagoblin/utils/wtforms.html" as wtforms_util %} + +{% block mediagoblin_head %} + +{% endblock mediagoblin_head %} + +{% block mediagoblin_content %} + + +
    +

    + {%- trans username=user.username -%} + Changing {{ username }}'s account settings + {%- endtrans %} +

    + {{ wtforms_util.render_divs(form) }} +
    + + {{ csrf_token }} +
    +
    + +{% endblock %} From 1c53f98c09a5ccd7acd320be8230d8980fc77dea Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Thu, 5 Jan 2012 00:18:29 +0100 Subject: [PATCH 1364/2731] Add change-account-settings link to user.html --- mediagoblin/templates/mediagoblin/user_pages/user.html | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 78bbaf8c..c93db8b0 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -120,6 +120,11 @@ {%- trans %}Edit profile{% endtrans -%}
    {% endif %} + {% if request.user._id == user._id %} + + {%- trans %}Change account settings{% endtrans -%} + + {% endif %}
    {% endif %} From 4a24500aa43fcf5bca59c12049af34b7935977a0 Mon Sep 17 00:00:00 2001 From: Elrond Date: Thu, 5 Jan 2012 14:46:27 +0100 Subject: [PATCH 1365/2731] Fix more StrictUndefined issues --- mediagoblin/templates/mediagoblin/user_pages/user.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index c93db8b0..6b5c2b21 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -90,7 +90,7 @@

    {% if not user.url and not user.bio %} - {% if request.user._id == user._id %} + {% if request.user and (request.user._id == user._id) %}

    {% trans %}Here's a spot to tell others about yourself.{% endtrans %} @@ -120,7 +120,7 @@ {%- trans %}Edit profile{% endtrans -%} {% endif %} - {% if request.user._id == user._id %} + {% if request.user and (request.user._id == user._id) %} {%- trans %}Change account settings{% endtrans -%} From 49af00e491a7ec6b920a3780254f2203ae47fbe5 Mon Sep 17 00:00:00 2001 From: Elrond Date: Thu, 5 Jan 2012 14:47:15 +0100 Subject: [PATCH 1366/2731] Make show-password-js work for change password too The show password js depends on the password field to have an id of "password". So give it a proper id. Also fixed the label generation for the case of field.name and field.id being different. --- mediagoblin/edit/forms.py | 3 ++- mediagoblin/templates/mediagoblin/utils/wtforms.html | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index df219011..09955874 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -64,7 +64,8 @@ class EditAccountForm(wtforms.Form): new_password = wtforms.PasswordField( _('New password'), [wtforms.validators.Required(), - wtforms.validators.Length(min=6, max=30)]) + wtforms.validators.Length(min=6, max=30)], + id="password") class EditAttachmentsForm(wtforms.Form): diff --git a/mediagoblin/templates/mediagoblin/utils/wtforms.html b/mediagoblin/templates/mediagoblin/utils/wtforms.html index 3517b5c3..44b27bb8 100644 --- a/mediagoblin/templates/mediagoblin/utils/wtforms.html +++ b/mediagoblin/templates/mediagoblin/utils/wtforms.html @@ -19,7 +19,7 @@ {# Generically render a field #} {% macro render_field_div(field) %} {% if field.label.text -%} -

    +

    {%- endif %}
    {{ field }} From b48abba3036bb08ad05c469bc37481cc16420ed8 Mon Sep 17 00:00:00 2001 From: Elrond Date: Thu, 5 Jan 2012 14:54:03 +0100 Subject: [PATCH 1367/2731] Fix Unit Tests for new password changing --- mediagoblin/tests/test_edit.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/mediagoblin/tests/test_edit.py b/mediagoblin/tests/test_edit.py index 0cf71e9b..55f34b42 100644 --- a/mediagoblin/tests/test_edit.py +++ b/mediagoblin/tests/test_edit.py @@ -34,12 +34,10 @@ def test_change_password(test_app): # test that the password can be changed # template.clear_test_template_context() test_app.post( - '/edit/profile/', { - 'bio': u'', - 'url': u'', + '/edit/account/', { 'old_password': 'toast', 'new_password': '123456', - 'confirm_password': '123456'}) + }) # test_user has to be fetched again in order to have the current values test_user = mg_globals.database.User.one({'username': 'chris'}) @@ -50,12 +48,10 @@ def test_change_password(test_app): # is wrong # template.clear_test_template_context() test_app.post( - '/edit/profile/', { - 'bio': u'', - 'url': u'', + '/edit/account/', { 'old_password': 'toast', 'new_password': '098765', - 'confirm_password': '098765'}) + }) test_user = mg_globals.database.User.one({'username': 'chris'}) From 34b4090cbf1f6ea62b9127f0ac96e748ad22b668 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Thu, 5 Jan 2012 15:58:03 +0100 Subject: [PATCH 1368/2731] Always show 'Change account settings' link --- .../templates/mediagoblin/user_pages/user.html | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 6b5c2b21..a50849b0 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -100,7 +100,6 @@ class="button_action"> {%- trans %}Edit profile{% endtrans -%} -
    {% else %}

    @@ -108,7 +107,6 @@ This user hasn't filled in their profile (yet). {%- endtrans %}

    -
    {% endif %} {% else %}
    @@ -120,11 +118,12 @@ {%- trans %}Edit profile{% endtrans -%} {% endif %} - {% if request.user and (request.user._id == user._id) %} - - {%- trans %}Change account settings{% endtrans -%} - - {% endif %} + {% endif %} + + {% if request.user and (request.user._id == user._id) %} + + {%- trans %}Change account settings{% endtrans -%} +
    {% endif %} From 7df9f45c32d7fd2ae5ae6c137ebf96437f764323 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Thu, 5 Jan 2012 21:36:24 +0100 Subject: [PATCH 1369/2731] Several changes for mobile layout --- mediagoblin/static/css/base.css | 32 ++++++--------------- mediagoblin/templates/mediagoblin/base.html | 1 + mediagoblin/templates/mediagoblin/root.html | 2 +- 3 files changed, 11 insertions(+), 24 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 8ed94e36..e89ce8a2 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -85,18 +85,14 @@ input, textarea { /* website structure */ .mediagoblin_body { - position: relative; - min-height: 100%; - margin-left: auto; - margin-right: auto; - width: 960px; + margin: auto; + width: 96%; + max-width: 960px; } .mediagoblin_header { width: 100%; height: 36px; - margin-left: 10px; - margin-right: 10px; padding-top: 14px; margin-bottom: 20px; border-bottom: 1px solid #333; @@ -118,16 +114,12 @@ a.mediagoblin_logo { .mediagoblin_content { width: 100%; - margin-left: 10px; - margin-right: 10px; padding-bottom: 74px; } .mediagoblin_footer { width: 100%; height: 30px; - margin-left: 10px; - margin-right: 10px; border-top: 1px solid #333; bottom: 0px; padding-top: 8px; @@ -253,16 +245,17 @@ text-align: center; background-color: #222; background-image: url("../images/background_lines.png"); background-repeat: repeat-x; - width: 340px; - padding: 30px 60px; - margin-left: auto; - margin-right: auto; + padding: 3% 5%; display: block; float: none; + width: 90%; + max-width: 340px; + margin-left: auto; + margin-right: auto; } .form_box_xl { - width: 460px; + max-width: 460px; } .edit_box { @@ -452,15 +445,8 @@ table.media_panel th { @media screen and (max-width: 960px) { .mediagoblin_body { - width: 100%; } .mediagoblin_footer { - position: fixed; - left: 0px; - top: 100px; - width: 50px; - height: 20px; - background-color: #f00; } } diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 870a4861..f3912752 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -19,6 +19,7 @@ + {% block title %}{{ app_config['html_title'] }}{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index 300570ad..3f834572 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -23,8 +23,8 @@ {% if request.user %}

    {% trans %}Explore{% endtrans %}

    {% else %} -

    {% trans %}Hi there, welcome to this MediaGoblin site!{% endtrans %}

    +

    {% trans %}This site is running MediaGoblin, an extraordinarily great piece of media hosting software.{% endtrans %}

    {% trans %}To add your own media, place comments, save your favourites and more, you can log in with your MediaGoblin account.{% endtrans %}

    {% if allow_registration %} From ee0b9ea282cf5d0ee3f8743477ec61e6b408b9da Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Thu, 5 Jan 2012 21:52:28 +0100 Subject: [PATCH 1370/2731] Remove last 960.gs leftover; fix classes for edit forms --- mediagoblin/templates/mediagoblin/edit/edit.html | 4 ++-- mediagoblin/templates/mediagoblin/edit/edit_account.html | 2 +- mediagoblin/templates/mediagoblin/edit/edit_profile.html | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/edit/edit.html b/mediagoblin/templates/mediagoblin/edit/edit.html index 14200466..fc6b1605 100644 --- a/mediagoblin/templates/mediagoblin/edit/edit.html +++ b/mediagoblin/templates/mediagoblin/edit/edit.html @@ -25,7 +25,7 @@ user= media.get_uploader.username, media= media._id) }}" method="POST" enctype="multipart/form-data"> -
    +

    {% trans media_title=media.title %}Editing {{ media_title }}{% endtrans %}

    -
    +

    {%- trans username=user.username -%} Changing {{ username }}'s account settings diff --git a/mediagoblin/templates/mediagoblin/edit/edit_profile.html b/mediagoblin/templates/mediagoblin/edit/edit_profile.html index d6461757..97c03e37 100644 --- a/mediagoblin/templates/mediagoblin/edit/edit_profile.html +++ b/mediagoblin/templates/mediagoblin/edit/edit_profile.html @@ -24,7 +24,7 @@
    -
    +

    {%- trans username=user.username -%} Editing {{ username }}'s profile From a91e4e07e716891b95b5f91b86d123fd9a221525 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Thu, 5 Jan 2012 22:46:21 +0100 Subject: [PATCH 1371/2731] Add closing bracket so the whole thing doesn't break down --- mediagoblin/static/css/base.css | 1 + 1 file changed, 1 insertion(+) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index f4359791..d8fc86bf 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -237,6 +237,7 @@ textarea#comment_content { border: none; background-color: #f1f1f1; padding: 3px; +} .clear { clear: both; From 7945cd21ba6aa7063fc54bc6f91457a3be65ecb3 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Thu, 5 Jan 2012 23:36:16 +0100 Subject: [PATCH 1372/2731] * Rename mediagoblin_header, mediagoblin_body, mediagoblin_footer, mediagoblin_header_right, mediagoblin_logo * Add html5shiv for older browsers * Small size fix (940px instead of 960pgx) --- extlib/html5shiv/MIT.txt | 20 +++++++++++++++++ extlib/html5shiv/html5shiv.js | 3 +++ mediagoblin/static/css/base.css | 14 ++++++------ mediagoblin/static/js/extlib/html5shiv.js | 1 + mediagoblin/templates/mediagoblin/base.html | 24 +++++++++++---------- 5 files changed, 44 insertions(+), 18 deletions(-) create mode 100644 extlib/html5shiv/MIT.txt create mode 100644 extlib/html5shiv/html5shiv.js create mode 120000 mediagoblin/static/js/extlib/html5shiv.js diff --git a/extlib/html5shiv/MIT.txt b/extlib/html5shiv/MIT.txt new file mode 100644 index 00000000..5a2aeb47 --- /dev/null +++ b/extlib/html5shiv/MIT.txt @@ -0,0 +1,20 @@ +Copyright (c) + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/extlib/html5shiv/html5shiv.js b/extlib/html5shiv/html5shiv.js new file mode 100644 index 00000000..8de0ff54 --- /dev/null +++ b/extlib/html5shiv/html5shiv.js @@ -0,0 +1,3 @@ +// HTML5 Shiv v3 | @jon_neal @afarkas @rem | MIT/GPL2 Licensed +// Uncompressed source: https://github.com/aFarkas/html5shiv +(function(a,b){var c=function(a){return a.innerHTML="",a.childNodes.length===1}(b.createElement("a")),d=function(a,b,c){return b.appendChild(a),(c=(c?c(a):a.currentStyle).display)&&b.removeChild(a)&&c==="block"}(b.createElement("nav"),b.documentElement,a.getComputedStyle),e={elements:"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video".split(" "),shivDocument:function(a){a=a||b;if(a.documentShived)return;a.documentShived=!0;var f=a.createElement,g=a.createDocumentFragment,h=a.getElementsByTagName("head")[0],i=function(a){f(a)};c||(e.elements.join(" ").replace(/\w+/g,i),a.createElement=function(a){var b=f(a);return b.canHaveChildren&&e.shivDocument(b.document),b},a.createDocumentFragment=function(){return e.shivDocument(g())});if(!d&&h){var j=f("div");j.innerHTML=["x"].join(""),h.insertBefore(j.lastChild,h.firstChild)}return a}};e.shivDocument(b),a.html5=e})(this,document) \ No newline at end of file diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index d8fc86bf..54de5a5b 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -84,13 +84,13 @@ input, textarea { /* website structure */ -.mediagoblin_body { +.container { margin: auto; width: 96%; - max-width: 960px; + max-width: 940px; } -.mediagoblin_header { +header { width: 100%; height: 36px; padding-top: 14px; @@ -98,17 +98,17 @@ input, textarea { border-bottom: 1px solid #333; } -.mediagoblin_header_right { +.header_right { float: right; } -a.mediagoblin_logo { +a.logo { color: #fff; font-weight: bold; margin-right: 8px; } -.mediagoblin_logo img { +.logo img { vertical-align: middle; } @@ -117,7 +117,7 @@ a.mediagoblin_logo { padding-bottom: 74px; } -.mediagoblin_footer { +footer { width: 100%; height: 30px; border-top: 1px solid #333; diff --git a/mediagoblin/static/js/extlib/html5shiv.js b/mediagoblin/static/js/extlib/html5shiv.js new file mode 120000 index 00000000..ca7358c7 --- /dev/null +++ b/mediagoblin/static/js/extlib/html5shiv.js @@ -0,0 +1 @@ +../../../../extlib/html5shiv/html5shiv.js \ No newline at end of file diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index f3912752..82ee41b7 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -29,22 +29,24 @@ href="{{ request.staticdirect('/css/video-js.css') }}"/> - + + {% block mediagoblin_head %} {% endblock mediagoblin_head %} {% block mediagoblin_body %} -
    +
    {% block mediagoblin_header %} -
    +
    {% block mediagoblin_logo %} - - {% endblock %} + {% endblock mediagoblin_logo %} {% if request.user and request.user.status == 'active' %} @@ -52,7 +54,7 @@ {% endif %} {% block mediagoblin_header_title %}{% endblock %} -
    +
    {% if request.user %} {# the following link should only appear when verification is needed #} {% if request.user.status == "needs_email_verification" %} @@ -72,7 +74,7 @@ {% trans %}Log in{% endtrans %} {% endif %}
    -
    +
    {% endblock %}
    {% include "mediagoblin/utils/messages.html" %} @@ -80,12 +82,12 @@ {% endblock mediagoblin_content %}
    {% block mediagoblin_footer %} - - {% endblock %} + + {% endblock mediagoblin_footer %} {% endblock mediagoblin_body %}
    From 173999a7e44aac11c8a2d4a7bf61f709b3822f79 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 6 Jan 2012 13:34:25 +0100 Subject: [PATCH 1373/2731] Resize image below 660px width --- mediagoblin/static/css/base.css | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 54de5a5b..eac956f1 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -479,3 +479,12 @@ table.media_panel th { font-family: Inconsolata, monospace; line-height: 1em; } + +@media screen and (max-width: 660px) { + .media_pane { + width: 100%; + } + img.media_image { + width: 100%; + } +} From 7646e695bfbfc403deecdf3068abd3b453d6fef0 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 6 Jan 2012 13:44:00 +0100 Subject: [PATCH 1374/2731] Fix div breaking in user.html; add media query bits --- mediagoblin/static/css/base.css | 15 ++++++++++++++- .../templates/mediagoblin/user_pages/user.html | 6 +++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index eac956f1..c2d45a1b 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -480,11 +480,24 @@ table.media_panel th { line-height: 1em; } -@media screen and (max-width: 660px) { +/* Media queries and other responsivisivity */ +@media screen and (max-width: 680px) { .media_pane { width: 100%; + margin: 0px; } img.media_image { width: 100%; } } + +@media screen and (max-width: 960px) { + .profile_sidebar { + width: 100%; + margin: 0px; + } + .profile_showcase { + width: 100%; + margin: 0px; + } +} diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index c8eb9026..0937f97a 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -120,12 +120,12 @@ {% endif %} {% endif %} - {% if request.user and (request.user._id == user._id) %} + {% if request.user and (request.user._id == user._id) %} {%- trans %}Change account settings{% endtrans -%} -
    - {% endif %} + {% endif %} +
    {% if media_entries.count() %}
    From b957cba0cb9b6de33f9d50001a381ea94d9de57a Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 6 Jan 2012 19:56:50 +0100 Subject: [PATCH 1375/2731] First push with new style (includes css file, logo image, fonts) --- docs/source/conf.py | 2 +- .../themes/mg/static/fonts/Lato-Bold.ttf | Bin 0 -> 93224 bytes .../mg/static/fonts/Lato-BoldItalic.ttf | Bin 0 -> 81936 bytes .../themes/mg/static/fonts/Lato-Italic.ttf | Bin 0 -> 83680 bytes .../themes/mg/static/fonts/Lato-Regular.ttf | Bin 0 -> 96044 bytes .../source/themes/mg/static/fonts/OFL_1.1.txt | 97 ++++++++++++ docs/source/themes/mg/static/logo_docs.png | Bin 0 -> 6522 bytes docs/source/themes/mg/static/mg.css | 145 ++++++++++++++++++ docs/source/themes/mg/theme.conf | 4 +- 9 files changed, 245 insertions(+), 3 deletions(-) create mode 100644 docs/source/themes/mg/static/fonts/Lato-Bold.ttf create mode 100644 docs/source/themes/mg/static/fonts/Lato-BoldItalic.ttf create mode 100644 docs/source/themes/mg/static/fonts/Lato-Italic.ttf create mode 100644 docs/source/themes/mg/static/fonts/Lato-Regular.ttf create mode 100644 docs/source/themes/mg/static/fonts/OFL_1.1.txt create mode 100644 docs/source/themes/mg/static/logo_docs.png create mode 100644 docs/source/themes/mg/static/mg.css diff --git a/docs/source/conf.py b/docs/source/conf.py index dce254a1..3014e592 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -111,7 +111,7 @@ html_theme_path = ['themes'] # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +html_logo = 'logo_docs.png' # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 diff --git a/docs/source/themes/mg/static/fonts/Lato-Bold.ttf b/docs/source/themes/mg/static/fonts/Lato-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..bc3529fce3ce3c38c29440908f8a7bdbae99af10 GIT binary patch literal 93224 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 literal 0 HcmV?d00001 diff --git a/docs/source/themes/mg/static/fonts/Lato-BoldItalic.ttf b/docs/source/themes/mg/static/fonts/Lato-BoldItalic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2cf5ae0dda701a339c5d77de841e5385413e02be GIT binary patch literal 81936 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 z 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 z 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 V*IjqL3j^*gz8${pJ^r}a{$CA9G{OJ? literal 0 HcmV?d00001 diff --git a/docs/source/themes/mg/static/fonts/Lato-Italic.ttf b/docs/source/themes/mg/static/fonts/Lato-Italic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..11ca3eb6fe4043aab186d52b9c9c1fb15b567e6e GIT binary patch literal 83680 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 KH=cURZ2B)?SC`ZP literal 0 HcmV?d00001 diff --git a/docs/source/themes/mg/static/fonts/Lato-Regular.ttf b/docs/source/themes/mg/static/fonts/Lato-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..26ce10025a9bb380c268aefa8117357c70fb35a1 GIT binary patch literal 96044 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∾l0B9g!c;{5I!t?L{ENL7+FS)KE;-ue~ct7?bWgs+R%Z>apH@GaH6tux;dzAJoB-@cDF!Dh#hzCv)(OF*Z} zvFP0jAycf62d@@_i-<`&r%33X{5ooUc&b9^hkpk)!`D>^{csf6s`@rvXM=D=R~r@j zg_r9(R|t0t_Xzh2_X+n4Z`GB5ApD`O|EjL=n(%c!+Z!ssDSS&c@2UJgu26(`Tnuyy zUBU!BVG-i4o&y%@oDyNVunMzTMc{w_)+6*nGa$v6&iA3+il7_s2R2U*0$WwH27Frt zy+It&UAF5kqbiT7>{oeQS;hV5#`0RQyva z{z1AJP`p(9Q!4%`75|iqe@dZkUc$HJpHlG;<~_kbrQ)Ab@lUDvr_@6JDYcM)O3|J# z0?9w6(7i)_n*_{wcMPe~<}BS0MkC!isnfNd75> zz9o`>N}*#}CjXS-?fk%a^cqNAElg5P_T=|blOrsE-CKsYsxLdeK zxL3GOxL^3Xe*2d2ebiKgC!Youf@u#;KeFI)ww ztVaL-6mYGsJgD+^U4KkCF1%9LJRrPIc)joj;f=zZg@<(IdxiH2?-xEGd{}r`_^9wP z;p4(1!lS}xbhT$yep%1(itugWJHmH?H5Pl|Eud5A62@bmzXq+;2;_Rg8tAm201LtG zHE1znxzH{22)&d2sP{qYYoN!tM{DzBC9qXBY|k3CC-!kwnJrnPmaIV=9zc1mt~03e zh@ND-o?%qwF_rx)kE?v8&Oac$PI$fW2H}mun}xUPN!YeE7(o!(wlx?*5ZSgh7(o!( zwlx?*5ZSgh7(o!(wlx?*5TDUC*|s&%0DQ-n^*pZ#U)2-7CVXA3_lC-E3g1%A+dA_d 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 literal 0 HcmV?d00001 diff --git a/docs/source/themes/mg/static/fonts/OFL_1.1.txt b/docs/source/themes/mg/static/fonts/OFL_1.1.txt new file mode 100644 index 00000000..f1a20ac1 --- /dev/null +++ b/docs/source/themes/mg/static/fonts/OFL_1.1.txt @@ -0,0 +1,97 @@ +Copyright (c) , (), +with Reserved Font Name . +Copyright (c) , (), +with Reserved Font Name . +Copyright (c) , (). + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/docs/source/themes/mg/static/logo_docs.png b/docs/source/themes/mg/static/logo_docs.png new file mode 100644 index 0000000000000000000000000000000000000000..9287996512ef2daff97880d17b29d9501fb32a68 GIT binary patch literal 6522 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 literal 0 HcmV?d00001 diff --git a/docs/source/themes/mg/static/mg.css b/docs/source/themes/mg/static/mg.css new file mode 100644 index 00000000..3a0a1336 --- /dev/null +++ b/docs/source/themes/mg/static/mg.css @@ -0,0 +1,145 @@ +@import url("basic.css"); + +/* text fonts and styles */ + +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 700; + src: local('Lato Bold'), local('Lato-Bold'), url('fonts/Lato-Bold.ttf') format('truetype'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 400; + src: local('Lato Italic'), local('Lato-Italic'), url('fonts/Lato-Italic.ttf') format('truetype'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 700; + src: local('Lato Bold Italic'), local('Lato-BoldItalic'), url('fonts/Lato-BoldItalic.ttf') format('truetype'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 400; + src: local('Lato Regular'), local('Lato-Regular'), url('fonts/Lato-Regular.ttf') format('truetype'); +} + +body { + font: 16px 'Lato',Helvetica,Arial,sans-serif; + background-color: #FCFCFC; + color: #3C3C3C; + margin: 0; + padding: 0; +} + +h1, h2, h3, h4, h5, h6 { + border-bottom: 1px solid #CCCCCC; + background: none; + color: black; + font-weight: bold; + padding-bottom: 0.17em; + padding-top: 0.5em; +} + +h1 { + font-size: 1.875em; +} + +h2 { + font-size: 1.375em; +} + +h3, h4, h5, h6 { + font-size: 1.125em; +} + +p { + font-weight: normal; + margin: 0.4em 0 0.5em; +} + +a { + color: #499776; +} + +a:visited { + color: #2A5744; +} + +a:active { + color: #65D1A3; +} + +h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { + text-decoration: none; +} + +div.topic, pre { + background-color: #F1F1F1; + border: 1px dashed #ccc; + color: black; + line-height: 1.1em; + padding: 1em; +} + +code, tt { + font: 14px monospace,"Courier New"; + background-color: #FFFFDD; + border: thin solid #bbb; + padding-left: 5px; + padding-right: 5px; +} + +pre { + font: 14px monospace,"Courier New"; +} + +div.related a, div.related a:visited, div.related a:active { + color: #86D4B1; +} + +/* layout */ + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 60px 0 0 230px; +} + +div.body { + padding: 0 20px 30px 20px; +} + +div.footer { + width: 100%; + padding: 9px 0 9px 0; + text-align: center; + font-size: 75%; +} + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 20px; +} + +div.sphinxsidebar ul { + margin: 10px 10px 10px 0; + padding: 0; +} + +div.related { + line-height: 30px; + font-size: 90%; + width: 100%; + background-color: #161616; + color: #C3C3C3; +} + +p.logo { + margin-bottom: 20px; +} diff --git a/docs/source/themes/mg/theme.conf b/docs/source/themes/mg/theme.conf index f4fbd8cc..dd58038a 100644 --- a/docs/source/themes/mg/theme.conf +++ b/docs/source/themes/mg/theme.conf @@ -1,5 +1,5 @@ [theme] -inherit = default -stylesheet = default.css +inherit = basic +stylesheet = mg.css pygments_style = sphinx From 242509239fddf9ebb904dc9c174da522f3bdc8b7 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 6 Jan 2012 23:58:43 +0100 Subject: [PATCH 1376/2731] New docs logo, small css changes --- docs/source/themes/mg/static/logo_docs.png | Bin 6522 -> 6626 bytes docs/source/themes/mg/static/mg.css | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/source/themes/mg/static/logo_docs.png b/docs/source/themes/mg/static/logo_docs.png index 9287996512ef2daff97880d17b29d9501fb32a68..99f04cc7d7794c702e01742749bc64580ff0904f 100644 GIT binary patch delta 6625 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 delta 6520 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 Date: Sat, 7 Jan 2012 00:04:38 +0100 Subject: [PATCH 1377/2731] Increase docs sidebar width --- docs/source/themes/mg/static/mg.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/source/themes/mg/static/mg.css b/docs/source/themes/mg/static/mg.css index 3fa842cd..b9355a5d 100644 --- a/docs/source/themes/mg/static/mg.css +++ b/docs/source/themes/mg/static/mg.css @@ -123,6 +123,10 @@ div.footer { font-size: 75%; } +div.sphinxsidebar { + width: 240px; +} + div.sphinxsidebarwrapper { padding: 10px 5px 0 30px; } From 3a4d8b9713bb55e4ad831ad9da3f0f23d8aaed1c Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 7 Jan 2012 13:47:33 -0600 Subject: [PATCH 1378/2731] Committing present MediaGoblin translations before pushing extracted messages --- .../i18n/fr/LC_MESSAGES/mediagoblin.po | 27 +-- .../i18n/nl/LC_MESSAGES/mediagoblin.po | 170 +++++++++++------- .../i18n/zh_TW/LC_MESSAGES/mediagoblin.po | 28 +-- 3 files changed, 132 insertions(+), 93 deletions(-) diff --git a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po index 8d1e2711..ba5c639d 100644 --- a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.po @@ -3,6 +3,7 @@ # This file is distributed under the same license as the PROJECT project. # # Translators: +# , 2011. # , 2011. # , 2011. # , 2011. @@ -14,8 +15,8 @@ msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" "POT-Creation-Date: 2011-12-04 10:24-0600\n" -"PO-Revision-Date: 2011-12-04 16:23+0000\n" -"Last-Translator: cwebber \n" +"PO-Revision-Date: 2011-12-29 17:39+0000\n" +"Last-Translator: ianux \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -109,7 +110,7 @@ msgstr "Tags" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 msgid "Seperate tags by commas." -msgstr "" +msgstr "Séparez les tags par des virgules." #: mediagoblin/edit/forms.py:33 msgid "Slug" @@ -253,6 +254,8 @@ msgid "" "This site is running MediaGoblin, an " "extraordinarily great piece of media hosting software." msgstr "" +"Ce site fait tourner MediaGoblin, un " +"logiciel d'hébergement de média extraordinairement génial." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "" @@ -420,27 +423,27 @@ msgstr "Médias de %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" -msgstr "" +msgstr "Par %(username)s le %(date)s" #: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" -msgstr "" +msgstr "Poster un commentaire" #: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" -msgstr "" +msgstr "à" #: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" -msgstr "" +msgstr "Poster le commentaire !" #: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" -msgstr "" +msgstr "Éditer" #: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" -msgstr "" +msgstr "Effacer" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format @@ -578,7 +581,7 @@ msgstr "Anciens" #: mediagoblin/templates/mediagoblin/utils/pagination.html:50 msgid "Go to page:" -msgstr "" +msgstr "Aller à la page :" #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" @@ -598,11 +601,11 @@ msgstr "Je suis sûr de vouloir supprimer cela" #: mediagoblin/user_pages/views.py:155 msgid "Oops, your comment was empty." -msgstr "" +msgstr "Oups, votre commentaire était vide." #: mediagoblin/user_pages/views.py:161 msgid "Your comment has been posted!" -msgstr "" +msgstr "Votre commentaire a été posté !" #: mediagoblin/user_pages/views.py:183 msgid "You deleted the media." diff --git a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po index c1778676..7b63a859 100644 --- a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po @@ -3,14 +3,14 @@ # This file is distributed under the same license as the PROJECT project. # # Translators: -# , 2011. +# , 2011, 2012. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" "POT-Creation-Date: 2011-12-04 10:24-0600\n" -"PO-Revision-Date: 2011-12-04 16:23+0000\n" -"Last-Translator: cwebber \n" +"PO-Revision-Date: 2012-01-04 18:42+0000\n" +"Last-Translator: schendje \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,7 +21,7 @@ msgstr "" #: mediagoblin/processing.py:143 msgid "Invalid file given for media type." -msgstr "" +msgstr "Verkeerd bestandsformaat voor mediatype opgegeven." #: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 msgid "Username" @@ -41,7 +41,7 @@ msgstr "Bevestig wachtwoord" #: mediagoblin/auth/forms.py:39 msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "" +msgstr "Typ het hier nog een keer om spelfouten te voorkomen." #: mediagoblin/auth/forms.py:42 msgid "Email address" @@ -57,7 +57,7 @@ msgstr "Sorry, er bestaat al een gebruiker met die naam." #: mediagoblin/auth/views.py:77 msgid "Sorry, a user with that email address already exists." -msgstr "" +msgstr "Sorry, een gebruiker met dat e-mailadres bestaat al." #: mediagoblin/auth/views.py:179 msgid "" @@ -74,10 +74,12 @@ msgstr "De verificatie sleutel of gebruikers-ID is onjuist" #: mediagoblin/auth/views.py:203 msgid "You must be logged in so we know who to send the email to!" msgstr "" +"Je moet ingelogd zijn, anders weten we niet waar we de e-mail naartoe moeten" +" sturen!" #: mediagoblin/auth/views.py:211 msgid "You've already verified your email address!" -msgstr "" +msgstr "Je hebt je e-mailadres al geverifieerd!" #: mediagoblin/auth/views.py:224 msgid "Resent your verification email." @@ -88,6 +90,8 @@ msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" +"Email kon niet verstuurd worden omdat je gebruikersnaam inactief is of omdat" +" je e-mailadres nog niet geverifieerd is." #: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" @@ -99,20 +103,22 @@ msgstr "Etiket" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 msgid "Seperate tags by commas." -msgstr "" +msgstr "Scheidt labels met komma's." #: mediagoblin/edit/forms.py:33 msgid "Slug" -msgstr "" +msgstr "Slug" #: mediagoblin/edit/forms.py:34 msgid "The slug can't be empty" -msgstr "" +msgstr "De slug kan niet leeg zijn" #: mediagoblin/edit/forms.py:35 msgid "" "The title part of this media's URL. You usually don't need to change this." msgstr "" +"Het titeldeel van het adres van deze media. Meestal hoef je dit niet aan te " +"passen." #: mediagoblin/edit/forms.py:42 msgid "Bio" @@ -124,15 +130,15 @@ msgstr "Website" #: mediagoblin/edit/forms.py:49 msgid "Old password" -msgstr "" +msgstr "Oud wachtwoord" #: mediagoblin/edit/forms.py:52 msgid "New Password" -msgstr "" +msgstr "Nieuw wachtwoord" #: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." -msgstr "" +msgstr "Er bestaat al een met die slug voor deze gebruiker." #: mediagoblin/edit/views.py:86 msgid "You are editing another user's media. Proceed with caution." @@ -147,15 +153,15 @@ msgstr "" #: mediagoblin/edit/views.py:171 msgid "Wrong password" -msgstr "" +msgstr "Verkeerd wachtwoord" #: mediagoblin/edit/views.py:192 msgid "Profile edited!" -msgstr "" +msgstr "Profiel aangepast!" #: mediagoblin/media_types/__init__.py:65 msgid "Could not find any file extension in \"{filename}\"" -msgstr "" +msgstr "Kon geen bestandsformaat voor \"{filename}\" vinden" #: mediagoblin/submit/forms.py:25 msgid "File" @@ -163,7 +169,7 @@ msgstr "Bestand" #: mediagoblin/submit/forms.py:30 msgid "Description of this work" -msgstr "" +msgstr "Beschrijving van dit werk" #: mediagoblin/submit/views.py:49 msgid "You must provide a file." @@ -175,29 +181,31 @@ msgstr "Mooizo! Toegevoegd!" #: mediagoblin/submit/views.py:133 msgid "Invalid file type." -msgstr "" +msgstr "Ongeldig bestandstype" #: mediagoblin/templates/mediagoblin/404.html:21 msgid "Oops!" -msgstr "" +msgstr "Oeps!" #: mediagoblin/templates/mediagoblin/404.html:24 msgid "There doesn't seem to be a page at this address. Sorry!" -msgstr "" +msgstr "Het lijkt erop dat er geen pagina bestaat op dit adres. Sorry!" #: mediagoblin/templates/mediagoblin/404.html:26 msgid "" "If you're sure the address is correct, maybe the page you're looking for has" " been moved or deleted." msgstr "" +"Als je zeker weet dat het adres klopt is de pagina misschien verplaatst of " +"verwijderd." #: mediagoblin/templates/mediagoblin/404.html:32 msgid "Image of 404 goblin stressing out" -msgstr "" +msgstr "Afbeelding van de 404 goblin onder stress" #: mediagoblin/templates/mediagoblin/base.html:49 msgid "MediaGoblin logo" -msgstr "" +msgstr "MediaGoblin logo" #: mediagoblin/templates/mediagoblin/base.html:54 msgid "Submit media" @@ -205,11 +213,11 @@ msgstr "Voeg media toe" #: mediagoblin/templates/mediagoblin/base.html:65 msgid "Verify your email!" -msgstr "" +msgstr "Verifieer je e-mailadres!" #: mediagoblin/templates/mediagoblin/base.html:72 msgid "log out" -msgstr "" +msgstr "uitloggen" #: mediagoblin/templates/mediagoblin/base.html:75 #: mediagoblin/templates/mediagoblin/auth/login.html:27 @@ -222,30 +230,37 @@ msgid "" "Powered by MediaGoblin, a GNU project" msgstr "" +"Aangedreven door <a " +"href=\"http://mediagoblin.org\">MediaGoblin</a> , een <a " +"href=\"http://gnu.org/\">GNU-project</a>" #: mediagoblin/templates/mediagoblin/root.html:24 msgid "Explore" -msgstr "" +msgstr "Verkennen" #: mediagoblin/templates/mediagoblin/root.html:27 msgid "Hi there, welcome to this MediaGoblin site!" -msgstr "" +msgstr "Hoi, welkom op deze MediaGoblin website!" #: mediagoblin/templates/mediagoblin/root.html:28 msgid "" "This site is running MediaGoblin, an " "extraordinarily great piece of media hosting software." msgstr "" +"Deze website draait MediaGoblin, een " +"buitengewoon goed stuk software voor mediahosting." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "" "To add your own media, place comments, save your favourites and more, you " "can log in with your MediaGoblin account." msgstr "" +"Om je eigen media toe te voegen, berichten te plaatsen, favorieten op te " +"slaan en meer, kun je inloggen met je MediaGoblin account." #: mediagoblin/templates/mediagoblin/root.html:31 msgid "Don't have one yet? It's easy!" -msgstr "" +msgstr "Heb je er nog geen? Het is heel eenvoudig!" #: mediagoblin/templates/mediagoblin/root.html:32 #, python-format @@ -254,14 +269,17 @@ msgid "" " or\n" " Set up MediaGoblin on your own server" msgstr "" +"Creëer een account op deze website\n" +" of\n" +" Gebruik MediaGoblin op je eigen server" #: mediagoblin/templates/mediagoblin/root.html:44 msgid "Most recent media" -msgstr "" +msgstr "Nieuwste media" #: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 msgid "Enter your new password" -msgstr "" +msgstr "Voer je nieuwe wachtwoord in" #: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 #: mediagoblin/templates/mediagoblin/submit/start.html:30 @@ -270,20 +288,22 @@ msgstr "Voeg toe" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" -msgstr "" +msgstr "Wachtwoord herstellen" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 msgid "Send instructions" -msgstr "" +msgstr "Stuur instructies" #: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 msgid "Your password has been changed. Try to log in now." -msgstr "" +msgstr "Je wachtwoord is veranderd. Probeer om opnieuw in te loggen." #: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 msgid "" "Check your inbox. We sent an email with a URL for changing your password." msgstr "" +"Check je inbox. Er is een e-mail verstuurd waarmee je je wachtwoord kunt " +"veranderen." #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format @@ -298,10 +318,17 @@ msgid "" "If you think this is an error, just ignore this email and continue being\n" "a happy goblin!" msgstr "" +"Hoi %(username)s,\n" +"\n" +"Om je wachtwoord voor GNU MediaGoblin te veranderen, moet je dit adres in je webbrowser openen:\n" +"\n" +"%(verification_url)s\n" +"\n" +"Als je denkt dat dit niet klopt, kun je deze e-mail gewoon negeren." #: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" -msgstr "" +msgstr "Inloggen is mislukt!" #: mediagoblin/templates/mediagoblin/auth/login.html:35 msgid "Don't have an account yet?" @@ -313,7 +340,7 @@ msgstr "Maak er hier een!" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Forgot your password?" -msgstr "" +msgstr "Wachtwoord vergeten?" #: mediagoblin/templates/mediagoblin/auth/register.html:27 msgid "Create an account!" @@ -321,7 +348,7 @@ msgstr "Maak een account aan!" #: mediagoblin/templates/mediagoblin/auth/register.html:31 msgid "Create" -msgstr "" +msgstr "Creëer" #: mediagoblin/templates/mediagoblin/auth/verification_email.txt:19 #, python-format @@ -360,11 +387,11 @@ msgstr "Het profiel aanpassen van %(username)s" #: mediagoblin/templates/mediagoblin/listings/tag.html:35 #, python-format msgid "Media tagged with: %(tag_name)s" -msgstr "" +msgstr "Media met het label: %(tag_name)s" #: mediagoblin/templates/mediagoblin/media_displays/video.html:19 msgid "Original" -msgstr "" +msgstr "Origineel" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Submit yer media" @@ -373,7 +400,7 @@ msgstr "Voeg media toe" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" -msgstr "" +msgstr "Media van %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format @@ -383,57 +410,57 @@ msgstr "Media van %(username)s " #: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" -msgstr "" +msgstr "Door %(username)s op %(date)s" #: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" -msgstr "" +msgstr "Plaats een bericht" #: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" -msgstr "" +msgstr "op" #: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" -msgstr "" +msgstr "Plaats bericht!" #: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" -msgstr "" +msgstr "Pas aan" #: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" -msgstr "" +msgstr "Verwijderen" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" -msgstr "" +msgstr "Zeker weten dat je %(title)s wil verwijderen?" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:50 msgid "Delete Permanently" -msgstr "" +msgstr "Permanent verwijderen" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 msgid "Media processing panel" -msgstr "" +msgstr "Mediaverwerkingspaneel" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 msgid "" "You can track the state of media being processed for your gallery here." -msgstr "" +msgstr "Hier kun je de status zien van de media die verwerkt worden." #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 msgid "Media in-processing" -msgstr "" +msgstr "Media te verwerken" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 msgid "No media in-processing" -msgstr "" +msgstr "Geen media om te verwerken" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 msgid "These uploads failed to process:" -msgstr "" +msgstr "Deze toevoegingen konden niet verwerkt worden:" #: mediagoblin/templates/mediagoblin/user_pages/user.html:31 #: mediagoblin/templates/mediagoblin/user_pages/user.html:89 @@ -448,11 +475,11 @@ msgstr "Sorry, die gebruiker kon niet worden gevonden." #: mediagoblin/templates/mediagoblin/user_pages/user.html:50 #: mediagoblin/templates/mediagoblin/user_pages/user.html:70 msgid "Email verification needed" -msgstr "" +msgstr "Emailverificatie is nodig" #: mediagoblin/templates/mediagoblin/user_pages/user.html:53 msgid "Almost done! Your account still needs to be activated." -msgstr "" +msgstr "Bijna klaar! Je account moet nog geactiveerd worden." #: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "" @@ -474,6 +501,8 @@ msgid "" "Someone has registered an account with this username, but it still has to be" " activated." msgstr "" +"Iemand heeft een account met deze gebruikersnaam gemaakt, maar hij moet nog " +"geactiveerd worden." #: mediagoblin/templates/mediagoblin/user_pages/user.html:79 #, python-format @@ -486,7 +515,7 @@ msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "Here's a spot to tell others about yourself." -msgstr "" +msgstr "Hier is een plekje om anderen over jezelf te vertellen." #: mediagoblin/templates/mediagoblin/user_pages/user.html:101 #: mediagoblin/templates/mediagoblin/user_pages/user.html:119 @@ -495,7 +524,7 @@ msgstr "Profiel aanpassen." #: mediagoblin/templates/mediagoblin/user_pages/user.html:107 msgid "This user hasn't filled in their profile (yet)." -msgstr "" +msgstr "Deze gebruiker heeft zijn of haar profiel (nog) niet ingevuld." #: mediagoblin/templates/mediagoblin/user_pages/user.html:133 #, python-format @@ -507,42 +536,44 @@ msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" +"Dit is waar je nieuwe media zal verschijnen, maar het lijkt erop dat je nog " +"niets heb toegevoegd." #: mediagoblin/templates/mediagoblin/user_pages/user.html:152 msgid "Add media" -msgstr "" +msgstr "Voeg media toe" #: mediagoblin/templates/mediagoblin/user_pages/user.html:158 msgid "There doesn't seem to be any media here yet..." -msgstr "" +msgstr "Het lijkt erop dat er nog geen media is." #: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 msgid "feed icon" -msgstr "" +msgstr "feed icoon" #: mediagoblin/templates/mediagoblin/utils/feed_link.html:23 msgid "Atom feed" -msgstr "" +msgstr "Atom feed" #: mediagoblin/templates/mediagoblin/utils/pagination.html:40 msgid "Newer" -msgstr "" +msgstr "Nieuwer" #: mediagoblin/templates/mediagoblin/utils/pagination.html:46 msgid "Older" -msgstr "" +msgstr "Ouder" #: mediagoblin/templates/mediagoblin/utils/pagination.html:50 msgid "Go to page:" -msgstr "" +msgstr "Ga naar pagina:" #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" -msgstr "" +msgstr "Gelabeld met" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 msgid "and" -msgstr "" +msgstr "en" #: mediagoblin/user_pages/forms.py:24 msgid "Comment" @@ -550,26 +581,29 @@ msgstr "Commentaar" #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" -msgstr "" +msgstr "Ik weet zeker dat ik dit wil verwijderen." #: mediagoblin/user_pages/views.py:155 msgid "Oops, your comment was empty." -msgstr "" +msgstr "Oeps, je bericht was leeg." #: mediagoblin/user_pages/views.py:161 msgid "Your comment has been posted!" -msgstr "" +msgstr "Je bericht is geplaatst!" #: mediagoblin/user_pages/views.py:183 msgid "You deleted the media." -msgstr "" +msgstr "Je hebt deze media verwijderd." #: mediagoblin/user_pages/views.py:190 msgid "The media was not deleted because you didn't check that you were sure." msgstr "" +"Deze media was niet verwijderd omdat je niet hebt aangegeven dat je het " +"zeker weet." #: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." msgstr "" +"Je staat op het punt de media van iemand anders te verwijderen. Pas op." diff --git a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po index 70622590..2864ef8a 100644 --- a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.po @@ -4,14 +4,14 @@ # # Translators: # , 2011. -# Harry Chen , 2011. +# Harry Chen , 2011, 2012. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" "POT-Creation-Date: 2011-12-04 10:24-0600\n" -"PO-Revision-Date: 2011-12-04 16:23+0000\n" -"Last-Translator: cwebber \n" +"PO-Revision-Date: 2012-01-03 16:35+0000\n" +"Last-Translator: Harry Chen \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -98,7 +98,7 @@ msgstr "標籤" #: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 msgid "Seperate tags by commas." -msgstr "" +msgstr "用逗點分開標籤。" #: mediagoblin/edit/forms.py:33 msgid "Slug" @@ -234,6 +234,8 @@ msgid "" "This site is running MediaGoblin, an " "extraordinarily great piece of media hosting software." msgstr "" +"此網站正運行 媒體怪獸(MediaGoblin), " +"他是一個超讚的媒體分享架站軟體." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "" @@ -394,27 +396,27 @@ msgstr "%(username)s的媒體檔案" #: mediagoblin/templates/mediagoblin/user_pages/media.html:57 #, python-format msgid "By %(username)s on %(date)s" -msgstr "" +msgstr "由 %(username)s 於 %(date)s" #: mediagoblin/templates/mediagoblin/user_pages/media.html:67 msgid "Post a comment" -msgstr "" +msgstr "刊登評論" #: mediagoblin/templates/mediagoblin/user_pages/media.html:85 msgid "at" -msgstr "" +msgstr "在" #: mediagoblin/templates/mediagoblin/user_pages/media.html:102 msgid "Post comment!" -msgstr "" +msgstr "刊登評論!" #: mediagoblin/templates/mediagoblin/user_pages/media.html:124 msgid "Edit" -msgstr "" +msgstr "編輯" #: mediagoblin/templates/mediagoblin/user_pages/media.html:130 msgid "Delete" -msgstr "" +msgstr "刪除" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format @@ -541,7 +543,7 @@ msgstr "舊一點" #: mediagoblin/templates/mediagoblin/utils/pagination.html:50 msgid "Go to page:" -msgstr "" +msgstr "跳到頁數:" #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "Tagged with" @@ -561,11 +563,11 @@ msgstr "我確定我想要刪除" #: mediagoblin/user_pages/views.py:155 msgid "Oops, your comment was empty." -msgstr "" +msgstr "啊,你的留言是空的。" #: mediagoblin/user_pages/views.py:161 msgid "Your comment has been posted!" -msgstr "" +msgstr "你的留言已經刊登!" #: mediagoblin/user_pages/views.py:183 msgid "You deleted the media." From bcd50908d2849dff5a466b15db65112779cb85e2 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 7 Jan 2012 13:48:12 -0600 Subject: [PATCH 1379/2731] Committing extracted and compiled translations --- .../i18n/ar/LC_MESSAGES/mediagoblin.mo | Bin 12717 -> 14396 bytes .../i18n/ar/LC_MESSAGES/mediagoblin.po | 327 ++++++++------ .../i18n/ca/LC_MESSAGES/mediagoblin.mo | Bin 11505 -> 13397 bytes .../i18n/ca/LC_MESSAGES/mediagoblin.po | 319 ++++++++----- .../i18n/de/LC_MESSAGES/mediagoblin.mo | Bin 11802 -> 13692 bytes .../i18n/de/LC_MESSAGES/mediagoblin.po | 362 +++++++++------ .../i18n/en/LC_MESSAGES/mediagoblin.po | 312 ++++++++----- .../i18n/eo/LC_MESSAGES/mediagoblin.mo | Bin 11749 -> 13543 bytes .../i18n/eo/LC_MESSAGES/mediagoblin.po | 348 ++++++++------ .../i18n/es/LC_MESSAGES/mediagoblin.mo | Bin 12120 -> 13891 bytes .../i18n/es/LC_MESSAGES/mediagoblin.po | 349 +++++++++------ .../i18n/fr/LC_MESSAGES/mediagoblin.mo | Bin 12304 -> 12357 bytes .../i18n/ia/LC_MESSAGES/mediagoblin.mo | Bin 11238 -> 13161 bytes .../i18n/ia/LC_MESSAGES/mediagoblin.po | 311 ++++++++----- .../i18n/it/LC_MESSAGES/mediagoblin.mo | Bin 11622 -> 13574 bytes .../i18n/it/LC_MESSAGES/mediagoblin.po | 371 +++++++++------ .../i18n/ja/LC_MESSAGES/mediagoblin.mo | Bin 11879 -> 13736 bytes .../i18n/ja/LC_MESSAGES/mediagoblin.po | 317 ++++++++----- .../i18n/nl/LC_MESSAGES/mediagoblin.mo | Bin 11394 -> 11670 bytes .../i18n/nn_NO/LC_MESSAGES/mediagoblin.mo | Bin 10933 -> 12901 bytes .../i18n/nn_NO/LC_MESSAGES/mediagoblin.po | 329 ++++++++------ .../i18n/pt_BR/LC_MESSAGES/mediagoblin.mo | Bin 11350 -> 13279 bytes .../i18n/pt_BR/LC_MESSAGES/mediagoblin.po | 341 ++++++++------ .../i18n/ro/LC_MESSAGES/mediagoblin.mo | Bin 11882 -> 13685 bytes .../i18n/ro/LC_MESSAGES/mediagoblin.po | 348 ++++++++------ .../i18n/ru/LC_MESSAGES/mediagoblin.mo | Bin 15457 -> 16681 bytes .../i18n/ru/LC_MESSAGES/mediagoblin.po | 348 ++++++++------ .../i18n/sk/LC_MESSAGES/mediagoblin.mo | Bin 11993 -> 13900 bytes .../i18n/sk/LC_MESSAGES/mediagoblin.po | 423 ++++++++++-------- .../i18n/sl/LC_MESSAGES/mediagoblin.mo | Bin 11439 -> 13350 bytes .../i18n/sl/LC_MESSAGES/mediagoblin.po | 319 ++++++++----- .../i18n/sr/LC_MESSAGES/mediagoblin.mo | Bin 11335 -> 13259 bytes .../i18n/sr/LC_MESSAGES/mediagoblin.po | 311 ++++++++----- .../i18n/sv/LC_MESSAGES/mediagoblin.mo | Bin 11538 -> 13448 bytes .../i18n/sv/LC_MESSAGES/mediagoblin.po | 329 ++++++++------ .../i18n/te/LC_MESSAGES/mediagoblin.mo | Bin 11527 -> 13409 bytes .../i18n/te/LC_MESSAGES/mediagoblin.po | 313 ++++++++----- .../i18n/zh_TW/LC_MESSAGES/mediagoblin.mo | Bin 11190 -> 11198 bytes 38 files changed, 3686 insertions(+), 2391 deletions(-) diff --git a/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ar/LC_MESSAGES/mediagoblin.mo index 02dfa29a8d836b87c0a82d96e257a57d047698c2..1a7267e52740d231a55fa739a75596c39aed13cc 100644 GIT binary patch delta 5102 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 H{i}ZgQH0rR delta 3531 zcmb8ve@xWp9l-GiumcfMK$MBf!_+Dw$AJZuYEkKrsm%GSI=B8h?!LfH?#|pDA~WQw z9Efy@y07a@n=G}cAO$SmHlx!_&6YJ;SF2C{PUpdW{33o5pTJ_w zmV-G_7Fdb-xCWV`w&QYq9y{^d_%3F$SSkJU)OO68#gzl7^i zZfKy~Y=5#JL7Dd*lvJEWS@8Lz>JG}h3VkM&6U zlq=~sQEnPS4y%r!MCc^8;8|oZHG^Fx2e609N43C=q!JWx<;$8;+x-;!h~+{T-jgPjC)CLD)9pvncBh zVh#Q#kN7)iOsB*(uErhsEWU^rupCzq28om#L+HgiyoD06`NWsK)WfK86-v!~JvrWp z62UgC$0*7H-ipw8l!hGhDOimRsVLUst0YLpGWjJt3E8}L(ui!rHN4{7!mv2u}xELjcYjFgF$oz=XREXTT1bIiTMal7V$Yqs*QcRt=7{7EGsE|P+>g`^30<0*U@dvWEW!~w3OL~tDCVE0gJBZt$=#TKEYpcG5lU#+FV9My_k zLLEnm#288hZlZ+xZqkp?Nk8S`#CT=WI*g|V<^7!~DG8$-s1wWZC`vJ2#fW^*Z_{YO z-=TcZ^~8xwsqHAAS38zqFUr?)0Vx;tKFY%XMyanEOA`lLib48SScQZ51m4C?xQNA8 z;NBAApF!g^1ALNd1o@)Wb(B=Ri*oZ1@JYOna)6p;{1U+?ti!+IQ!-9|#0X06e~w?n zkMKqO3WIC#9h3-Ul@WjWo(qY~3wRVImcedZP8A|$pz2X-#lUPlgiUxHWuuSr z8QjV*jcquJQrs!zONy`nrFgd^XHvmOX-KZVk0D`|KFQ}HBD#aA&M&!BlK z!%WvY5X{ute6Q$$d10z^>N<}{`wWlQW%gvQGiOfgNm*~crb{9^;Ma?ndR$?nB&6zH zez(!8>RSx=9^DaW3u>>wF|gmEcNscl_`}-e*M`sKZPo4GaEo^7r?)lera(};TU`ET zufI9*(q306)E)?W9I8Ix^YI?~o4i4vo_NAQTdPO=1M|YV$?Ny9a0iW6LmT_UhCk%x zR9?TCp4AuoX;xlJmfvW9@NO(MyE-jvgMXi^)$57BWLD&u*;|sEs?A2b5j1b*EHkI& zuB=FohP1CO6xKdh*xlk#TLQFQ+MPUIyqoM4o9l9e=>#flc#6$yxrg(OAi>dLS93@= zcEsOtg&bxi&oJv}<(RLPEihNlI#Ax$=<|lv_Be?^PjotrU~*uGtGU_m#A9a`H<7iTvNe*>;C=`8~=N zR!s&+^tuCnB@Y8_Ve_H+-BlH36_sVqM|6d=w(^lOXSLIrx#g>6+l+l)$yM3ogs4_m zIx8N`tFEnF5&OyfjVb2oj68E|(cwuIIhtejTR*Z7YP;8pSp(Kt>!Mjz{DOJA_)4NG z7ks8Ft$sUdUAB)YYsfxmAF|GyM{5>3qtenWG-k!@sNG`?XlYslOg^WrLHjTxZ1BT) z-;SDvOXfB>ly!;8$L(YGA;r2~_Hh=0sNF4Z$;&Zo>_K_{&+44M@Jj4o3(b@z9OAq+ zYDXt6#3FWAV!dJOyxqrybFrT-u9@=L!u@N>JNXX^H@LaHtwADS_h@T~zZVJRpnYiK6hjh`+E2+=3dKa%J%cq-?Votv`NID@si|7 z?mNs+yevoK`QUD6\n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -25,27 +25,15 @@ msgstr "" msgid "Invalid file given for media type." msgstr "" -#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41 msgid "Username" msgstr "اسم المستخدم" -#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45 msgid "Password" msgstr "كلمة السر" -#: mediagoblin/auth/forms.py:35 -msgid "Passwords must match." -msgstr "يجب أن تتطابق كلمتا السر." - -#: mediagoblin/auth/forms.py:37 -msgid "Confirm password" -msgstr "أكّد كلمة السر" - -#: mediagoblin/auth/forms.py:39 -msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "اكتبها مرة أخرى هنا للتأكد من عدم وجود أخطاء إملائية." - -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:34 msgid "Email address" msgstr "عنوان البريد الإلكتروني" @@ -61,7 +49,7 @@ msgstr "عذرًا، لقد اختار مستخدم آخر هذا الاسم." msgid "Sorry, a user with that email address already exists." msgstr "" -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:180 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -69,23 +57,28 @@ msgstr "" "تم التحقق من بريدك الإلكتروني. يمكنك الآن الولوج، وتحرير ملفك الشخصي، ونشر " "الصور!" -#: mediagoblin/auth/views.py:185 +#: mediagoblin/auth/views.py:186 msgid "The verification key or user id is incorrect" msgstr "مفتاح التحقق أو معرف المستخدم خاطئ" -#: mediagoblin/auth/views.py:203 +#: mediagoblin/auth/views.py:204 msgid "You must be logged in so we know who to send the email to!" msgstr "" -#: mediagoblin/auth/views.py:211 +#: mediagoblin/auth/views.py:212 msgid "You've already verified your email address!" msgstr "" -#: mediagoblin/auth/views.py:224 +#: mediagoblin/auth/views.py:225 msgid "Resent your verification email." msgstr "أعدنا إرسال رسالة التحقق." -#: mediagoblin/auth/views.py:265 +#: mediagoblin/auth/views.py:260 +msgid "" +"An email has been sent with instructions on how to change your password." +msgstr "" + +#: mediagoblin/auth/views.py:270 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -93,47 +86,76 @@ msgstr "" "تعذر إرسال رسالة استعادة كلمة السر لأن اسم المستخدم معطل أو لأننا لم نتحقق " "من بريدك الإلكتروني." +#: mediagoblin/auth/views.py:282 +msgid "Couldn't find someone with that username or email." +msgstr "" + +#: mediagoblin/auth/views.py:330 +msgid "You can now log in using your new password." +msgstr "" + #: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "العنوان" -#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "وصف هذا العمل." + +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35 msgid "Tags" msgstr "الوسوم" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas." +#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37 +msgid "Separate tags by commas." msgstr "" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:37 msgid "Slug" msgstr "المسار" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:38 msgid "The slug can't be empty" msgstr "لا يمكن ترك المسار فارغًا" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:39 msgid "" -"The title part of this media's URL. You usually don't need to change this." +"The title part of this media's address. You usually don't need to change " +"this." msgstr "" -"الجزء الذي يمثل عنوان الملف في المسار. لا حاجة إلى تغيير محتوى هذه الخانة " -"عادةً." -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:46 msgid "Bio" msgstr "السيرة" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:48 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:53 msgid "Website" msgstr "الموقع الإلكتروني" -#: mediagoblin/edit/forms.py:49 +#: mediagoblin/edit/forms.py:60 msgid "Old password" msgstr "" -#: mediagoblin/edit/forms.py:52 -msgid "New Password" +#: mediagoblin/edit/forms.py:62 +msgid "Enter your old password to prove you own this account." +msgstr "" + +#: mediagoblin/edit/forms.py:65 +msgid "New password" msgstr "" #: mediagoblin/edit/views.py:65 @@ -148,39 +170,43 @@ msgstr "أنت تحرّر وسائط مستخدم آخر. كن حذرًا أثن msgid "You are editing a user's profile. Proceed with caution." msgstr "أنت تحرّر ملف مستخدم آخر. كن حذرًا أثناء العملية." -#: mediagoblin/edit/views.py:171 +#: mediagoblin/edit/views.py:174 +msgid "Profile changes saved" +msgstr "" + +#: mediagoblin/edit/views.py:200 msgid "Wrong password" msgstr "" -#: mediagoblin/edit/views.py:192 -msgid "Profile edited!" +#: mediagoblin/edit/views.py:216 +msgid "Account settings saved" msgstr "" -#: mediagoblin/media_types/__init__.py:65 -msgid "Could not find any file extension in \"{filename}\"" +#: mediagoblin/media_types/__init__.py:77 +msgid "Could not extract any file extension from \"{filename}\"" +msgstr "" + +#: mediagoblin/media_types/__init__.py:88 +msgid "Sorry, I don't support that file type :(" msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "الملف" -#: mediagoblin/submit/forms.py:30 -msgid "Description of this work" -msgstr "وصف هذا العمل." - -#: mediagoblin/submit/views.py:49 +#: mediagoblin/submit/views.py:50 msgid "You must provide a file." msgstr "يجب أن تضع ملفًا." -#: mediagoblin/submit/views.py:127 +#: mediagoblin/submit/views.py:128 msgid "Woohoo! Submitted!" msgstr "يا سلام! نُشرَت!" -#: mediagoblin/submit/views.py:133 -msgid "Invalid file type." -msgstr "" +#: mediagoblin/templates/mediagoblin/404.html:22 +msgid "Image of 404 goblin stressing out" +msgstr "صورة قزم مرتبك" -#: mediagoblin/templates/mediagoblin/404.html:21 +#: mediagoblin/templates/mediagoblin/404.html:23 msgid "Oops!" msgstr "ويحي!" @@ -195,33 +221,30 @@ msgid "" msgstr "" "إن كنت متأكدًا من صحة العنوان فربما تكون الصفحة التي تريدها نُقلت أو حُذفت." -#: mediagoblin/templates/mediagoblin/404.html:32 -msgid "Image of 404 goblin stressing out" -msgstr "صورة قزم مرتبك" - -#: mediagoblin/templates/mediagoblin/base.html:49 +#: mediagoblin/templates/mediagoblin/base.html:48 msgid "MediaGoblin logo" msgstr "شعار ميدياغوبلن" -#: mediagoblin/templates/mediagoblin/base.html:54 -msgid "Submit media" -msgstr "أرسل وسائط" +#: mediagoblin/templates/mediagoblin/base.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:157 +msgid "Add media" +msgstr "أضف وسائط" -#: mediagoblin/templates/mediagoblin/base.html:65 +#: mediagoblin/templates/mediagoblin/base.html:64 msgid "Verify your email!" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:72 +#: mediagoblin/templates/mediagoblin/base.html:71 msgid "log out" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:75 +#: mediagoblin/templates/mediagoblin/base.html:74 #: mediagoblin/templates/mediagoblin/auth/login.html:27 #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "لِج" -#: mediagoblin/templates/mediagoblin/base.html:91 +#: mediagoblin/templates/mediagoblin/base.html:86 msgid "" "Powered by MediaGoblin, a GNU project" @@ -231,7 +254,7 @@ msgstr "" msgid "Explore" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:27 +#: mediagoblin/templates/mediagoblin/root.html:26 msgid "Hi there, welcome to this MediaGoblin site!" msgstr "" @@ -255,22 +278,21 @@ msgstr "" #, python-format msgid "" "Create an account at this site\n" -" or\n" -" Set up MediaGoblin on your own server" +" or\n" +" Set up MediaGoblin on your own server" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:44 +#: mediagoblin/templates/mediagoblin/root.html:40 msgid "Most recent media" msgstr "أحدث الوسائط" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 -msgid "Enter your new password" -msgstr "أدخل كلمة سرك الجديدة" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32 +msgid "Set your new password" +msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "أرسل" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35 +msgid "Set password" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" @@ -280,15 +302,6 @@ msgstr "" msgid "Send instructions" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "Your password has been changed. Try to log in now." -msgstr "لقد غُيرت كلمة سرك. جرّب الولوج الآن." - -#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 -msgid "" -"Check your inbox. We sent an email with a URL for changing your password." -msgstr "تفقد بريدك الإلكتروني. لقد أرسلنا رسالة بها وصلة لتغيير كلمة سرك." - #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format msgid "" @@ -326,11 +339,11 @@ msgstr "أنشئ حسابًا هنا!" msgid "Forgot your password?" msgstr "أنسيت كلمة سرك؟" -#: mediagoblin/templates/mediagoblin/auth/register.html:27 +#: mediagoblin/templates/mediagoblin/auth/register.html:32 msgid "Create an account!" msgstr "أنشئ حسابًا!" -#: mediagoblin/templates/mediagoblin/auth/register.html:31 +#: mediagoblin/templates/mediagoblin/auth/register.html:36 msgid "Create" msgstr "أنشئ" @@ -362,10 +375,16 @@ msgid "Cancel" msgstr "ألغِ" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "احفظ التغييرات" +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34 +#, python-format +msgid "Changing %(username)s's account settings" +msgstr "" + #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" @@ -377,13 +396,32 @@ msgstr "تحرير ملف %(username)s الشخصي" msgid "Media tagged with: %(tag_name)s" msgstr "" -#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34 +#: mediagoblin/templates/mediagoblin/media_displays/video.html:46 msgid "Original" msgstr "" +#: mediagoblin/templates/mediagoblin/media_displays/video.html:33 +msgid "" +"Sorry, this video will not work because \n" +"\t your web browser does not support HTML5 \n" +"\t video." +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:36 +msgid "" +"You can get a modern web browser that \n" +"\t can play this video at \n" +"\t http://getfirefox.com!" +msgstr "" + #: mediagoblin/templates/mediagoblin/submit/start.html:26 -msgid "Submit yer media" -msgstr "انشر وسائطك" +msgid "Add your media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Add" +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format @@ -395,31 +433,57 @@ msgstr "" msgid "%(username)s's media" msgstr "وسائط %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:60 #, python-format -msgid "By %(username)s on %(date)s" +msgid "Added on %(date)s." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 -msgid "Post a comment" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 -msgid "at" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 -msgid "Post comment!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:69 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:73 msgid "Delete" msgstr "" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:79 +#, python-format +msgid "%(comment_count)s comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:81 +#, python-format +msgid "%(comment_count)s comments" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:83 +msgid "No comments yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:91 +msgid "Add one" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:100 +msgid "" +"Type your comment here. You can use Markdown for" +" formatting." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:104 +msgid "Add this comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:126 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:141 +#, python-format +msgid "

❖ Browsing media by %(username)s

" +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -502,30 +566,31 @@ msgid "Here's a spot to tell others about yourself." msgstr "هذه زاوية لتخبر الآخرين فيها عن نفسك." #: mediagoblin/templates/mediagoblin/user_pages/user.html:101 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:118 msgid "Edit profile" msgstr "حرِّر الملف الشخصي" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:106 msgid "This user hasn't filled in their profile (yet)." msgstr "لم يعبئ هذا العضو بيانات ملفه بعد." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:125 +msgid "Change account settings" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:138 #, python-format msgid "View all of %(username)s's media" msgstr "أظهِر كل وسائط %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:151 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "هنا ستظهر وسائطك، ولكن يبدو أنك لم تضف شيئًا بعد." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 -msgid "Add media" -msgstr "أضف وسائط" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:163 +#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72 msgid "There doesn't seem to be any media here yet..." msgstr "لا يبدو أنه توجد أي وسائط هنا حتى الآن..." @@ -537,30 +602,36 @@ msgstr "" msgid "Atom feed" msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 -msgid "Newer" -msgstr "الأحدث" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:39 +msgid "← Newer" +msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 -msgid "Older" -msgstr "الأقدم" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:45 +msgid "Older →" +msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +#: mediagoblin/templates/mediagoblin/utils/pagination.html:48 msgid "Go to page:" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32 +msgid "newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43 +msgid "older" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 -msgid "Tagged with" +msgid "View more media tagged with" msgstr "" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 -msgid "and" +msgid "or" msgstr "" -#: mediagoblin/user_pages/forms.py:24 -msgid "Comment" -msgstr "علِّق" - #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" msgstr "أنا متأكد من رغبتي بحذف هذا العمل" diff --git a/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.mo index 34179a53d237515f32598f254aa1c01a628f9b06..45f2331f5aedcfbe40826e4da079e3ab5c49f29a 100644 GIT binary patch literal 13397 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 F{|}{yC>j6& delta 3228 zcmb`{du$X%9Ki8u3$&I}Xe&@D$kZax(#N$xf#W3>)G8{{5+aIbd$(;@@Ak;<9&N#T zsQ5O~IBIym}n)&_anrRXe1g1G=Pc0pe8-FG?!5p)CA5N+b?p8GeVHAv-t{#_&+)SD=j7p^VSNj5HS0n1XFc`ji!V4a%GP z$YIs(C=q%PdvP1Gmm15i67s3YkeZJY!FH4b#!xoC3Hep`@FDY`C?oz7(pMQ+i*KP6 zO(m~ikC&k2a5FaJ11J&MgRCOD+t?#xE^KQXK)^VQbGJ1 zX^f%7H7>$VT#sAu1#H6Egh3(|LmwSniic1lHih`Imzs_m7ogP4x^TP;C4y;e!>uR> z*ps2LkcJ%dd{~4GsjV2rM^Hkw52cvCM@dx`gID1KY{3UnuGf2*k9&~|r9MJA$U)qh z$Mr_uN!?3WWuMH`G>+1E1LaM(Rpmmu59MG-@f@t-pTk^?qb&Sz=#$t=|2gD_sxMKl z^AF+kD5qslwHzgd>v0p_jif50in*MU!?7qK)F?Tg9rmLr3tWtxQFSA~>IOa}*N>qT z;ZrE{b|Js&13u(Uzr|Y2rxFRCsz-^)avUZ1e_DQco<}Lpy(lks0A-&eD8)Ex8ZRLCc{~ld&owBa zybC3ikD{bz7uMmsp~q0>P3HCFfb}Tzm*5Coi)-*ol$v<~B?VuF{qpI#nz>*)0UXJL z3S2~{~13mzo8?zItt=EoSs|QkPPdjc` zs=raMwY6`%fwo+2CoLzT`<$RxTYAmvmAX6S=~%Dj_Bd`&?n@gi-|tI#@kZ5_N+$Up zy4{YK)Wc60NGIajO-&ATx8ufHcz{O2)^>kjyS~Gz9M`Nn>yDw_B^7xkuHAR?yF>Y< ztpz3R?nW!&#Is*A&1I%^Rk*3T#O|{_bEvG&j4q$w9FF=rnf3#nw1QY~qgs`sZRuEe zx@RGVexULk=B?0B_#tNhkH+eGRnm>Vi$=Eu4wv*`5AP3f+r6R3_Xxu6br25c`J z=(Kuz?07a#rgHq&0wQI$*VhicKR%kjz+v|u%W-wD?b$j=ajt8La9TRqA&Zuq(*6cJ zk&v(^9Y0`-Zw4!ungf;J7;n<@p*>aO@-DhuvNRl4-D~-}%eLKILhN{>?(_y^gG8!_ zfU;&^qq5w%vI5m@b3P}Qa+N$xr2{i^%FT0|8=6}hB6DfOZ53pNUhksj!6Km@KP=@X_ub}MIGStDq2HPB- zvGY%AF<-4QrRB5CiJ2u!R@#1e2sr~CE{~4ej5%)1i96musn1#F#oEnbjXHG}HTrIJ zg}c$QRQ7W?_}L!sFZtL=^?Pg^=0%-as#W#3OQ{ZRuYdTzl<8|tZKf)6G+U-cv!~{* S{P$(rPQEO?x}#&bOx16UQ*jIc diff --git a/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.po index 9609cb34..a5d6732b 100644 --- a/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ca/LC_MESSAGES/mediagoblin.po @@ -1,5 +1,5 @@ # Translations template for PROJECT. -# Copyright (C) 2011 ORGANIZATION +# Copyright (C) 2012 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # # Translators: @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-04 10:24-0600\n" -"PO-Revision-Date: 2011-12-04 16:23+0000\n" +"POT-Creation-Date: 2012-01-07 13:47-0600\n" +"PO-Revision-Date: 2012-01-07 19:44+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -24,27 +24,15 @@ msgstr "" msgid "Invalid file given for media type." msgstr "Aquest tipus de fitxer no és vàlid." -#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41 msgid "Username" msgstr "Nom d'usuari" -#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45 msgid "Password" msgstr "Contrasenya" -#: mediagoblin/auth/forms.py:35 -msgid "Passwords must match." -msgstr "Les contrasenyes han de coincidir" - -#: mediagoblin/auth/forms.py:37 -msgid "Confirm password" -msgstr "Confirmeu la contrasenya" - -#: mediagoblin/auth/forms.py:39 -msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "" - -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:34 msgid "Email address" msgstr "Adreça electrònica" @@ -60,7 +48,7 @@ msgstr "Lamentablement aquest usuari ja existeix." msgid "Sorry, a user with that email address already exists." msgstr "" -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:180 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -68,68 +56,104 @@ msgstr "" "Ja s'ha verificat la vostra adreça electrònica. Ara podeu entrar, editar el " "vostre perfil i penjar imatge!" -#: mediagoblin/auth/views.py:185 +#: mediagoblin/auth/views.py:186 msgid "The verification key or user id is incorrect" msgstr "" "La clau de verificació o la identificació de l'usuari no són correctes." -#: mediagoblin/auth/views.py:203 +#: mediagoblin/auth/views.py:204 msgid "You must be logged in so we know who to send the email to!" msgstr "" -#: mediagoblin/auth/views.py:211 +#: mediagoblin/auth/views.py:212 msgid "You've already verified your email address!" msgstr "" -#: mediagoblin/auth/views.py:224 +#: mediagoblin/auth/views.py:225 msgid "Resent your verification email." msgstr "Torna'm a enviar el correu de verificació" -#: mediagoblin/auth/views.py:265 +#: mediagoblin/auth/views.py:260 +msgid "" +"An email has been sent with instructions on how to change your password." +msgstr "" + +#: mediagoblin/auth/views.py:270 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" +#: mediagoblin/auth/views.py:282 +msgid "Couldn't find someone with that username or email." +msgstr "" + +#: mediagoblin/auth/views.py:330 +msgid "You can now log in using your new password." +msgstr "" + #: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Títol" -#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35 msgid "Tags" msgstr "Etiquetes" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas." +#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37 +msgid "Separate tags by commas." msgstr "" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:37 msgid "Slug" msgstr "" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:38 msgid "The slug can't be empty" msgstr "" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:39 msgid "" -"The title part of this media's URL. You usually don't need to change this." +"The title part of this media's address. You usually don't need to change " +"this." msgstr "" -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:46 msgid "Bio" msgstr "Biografia" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:48 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:53 msgid "Website" msgstr "Lloc web" -#: mediagoblin/edit/forms.py:49 +#: mediagoblin/edit/forms.py:60 msgid "Old password" msgstr "" -#: mediagoblin/edit/forms.py:52 -msgid "New Password" +#: mediagoblin/edit/forms.py:62 +msgid "Enter your old password to prove you own this account." +msgstr "" + +#: mediagoblin/edit/forms.py:65 +msgid "New password" msgstr "" #: mediagoblin/edit/views.py:65 @@ -144,39 +168,43 @@ msgstr "Esteu editant fitxers d'un altre usuari. Aneu amb compte." msgid "You are editing a user's profile. Proceed with caution." msgstr "Esteu editant el perfil d'un usuari. Aneu amb compte" -#: mediagoblin/edit/views.py:171 +#: mediagoblin/edit/views.py:174 +msgid "Profile changes saved" +msgstr "" + +#: mediagoblin/edit/views.py:200 msgid "Wrong password" msgstr "" -#: mediagoblin/edit/views.py:192 -msgid "Profile edited!" +#: mediagoblin/edit/views.py:216 +msgid "Account settings saved" msgstr "" -#: mediagoblin/media_types/__init__.py:65 -msgid "Could not find any file extension in \"{filename}\"" +#: mediagoblin/media_types/__init__.py:77 +msgid "Could not extract any file extension from \"{filename}\"" +msgstr "" + +#: mediagoblin/media_types/__init__.py:88 +msgid "Sorry, I don't support that file type :(" msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "Fitxer" -#: mediagoblin/submit/forms.py:30 -msgid "Description of this work" -msgstr "" - -#: mediagoblin/submit/views.py:49 +#: mediagoblin/submit/views.py:50 msgid "You must provide a file." msgstr "Heu d'escollir un fitxer." -#: mediagoblin/submit/views.py:127 +#: mediagoblin/submit/views.py:128 msgid "Woohoo! Submitted!" msgstr "Visca! S'ha enviat!" -#: mediagoblin/submit/views.py:133 -msgid "Invalid file type." -msgstr "" +#: mediagoblin/templates/mediagoblin/404.html:22 +msgid "Image of 404 goblin stressing out" +msgstr "Imatge de la pantalla 404, el goblin no sap què fer..." -#: mediagoblin/templates/mediagoblin/404.html:21 +#: mediagoblin/templates/mediagoblin/404.html:23 msgid "Oops!" msgstr "Ups!" @@ -192,33 +220,30 @@ msgstr "" "Si esteu convençut que l'adreça és correcta, pot ser que la pàgina que " "cerqueu s'hagi canviat d'ubicació o s'hagi eliminat." -#: mediagoblin/templates/mediagoblin/404.html:32 -msgid "Image of 404 goblin stressing out" -msgstr "Imatge de la pantalla 404, el goblin no sap què fer..." - -#: mediagoblin/templates/mediagoblin/base.html:49 +#: mediagoblin/templates/mediagoblin/base.html:48 msgid "MediaGoblin logo" msgstr "Logo de mediagoblin" -#: mediagoblin/templates/mediagoblin/base.html:54 -msgid "Submit media" -msgstr "Envia fitxers" +#: mediagoblin/templates/mediagoblin/base.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:157 +msgid "Add media" +msgstr "Tots els fitxers" -#: mediagoblin/templates/mediagoblin/base.html:65 +#: mediagoblin/templates/mediagoblin/base.html:64 msgid "Verify your email!" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:72 +#: mediagoblin/templates/mediagoblin/base.html:71 msgid "log out" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:75 +#: mediagoblin/templates/mediagoblin/base.html:74 #: mediagoblin/templates/mediagoblin/auth/login.html:27 #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Entra" -#: mediagoblin/templates/mediagoblin/base.html:91 +#: mediagoblin/templates/mediagoblin/base.html:86 msgid "" "Powered by MediaGoblin, a GNU project" @@ -228,7 +253,7 @@ msgstr "" msgid "Explore" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:27 +#: mediagoblin/templates/mediagoblin/root.html:26 msgid "Hi there, welcome to this MediaGoblin site!" msgstr "" @@ -252,22 +277,21 @@ msgstr "" #, python-format msgid "" "Create an account at this site\n" -" or\n" -" Set up MediaGoblin on your own server" +" or\n" +" Set up MediaGoblin on your own server" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:44 +#: mediagoblin/templates/mediagoblin/root.html:40 msgid "Most recent media" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 -msgid "Enter your new password" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32 +msgid "Set your new password" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Envia" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35 +msgid "Set password" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" @@ -277,15 +301,6 @@ msgstr "" msgid "Send instructions" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "Your password has been changed. Try to log in now." -msgstr "" - -#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 -msgid "" -"Check your inbox. We sent an email with a URL for changing your password." -msgstr "" - #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format msgid "" @@ -316,11 +331,11 @@ msgstr "Creeu-ne un aquí!" msgid "Forgot your password?" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/register.html:27 +#: mediagoblin/templates/mediagoblin/auth/register.html:32 msgid "Create an account!" msgstr "Creeu un compte!" -#: mediagoblin/templates/mediagoblin/auth/register.html:31 +#: mediagoblin/templates/mediagoblin/auth/register.html:36 msgid "Create" msgstr "Crea" @@ -352,10 +367,16 @@ msgid "Cancel" msgstr "Cancel·la" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "Desa els canvis" +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34 +#, python-format +msgid "Changing %(username)s's account settings" +msgstr "" + #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" @@ -367,13 +388,32 @@ msgstr "" msgid "Media tagged with: %(tag_name)s" msgstr "" -#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34 +#: mediagoblin/templates/mediagoblin/media_displays/video.html:46 msgid "Original" msgstr "" +#: mediagoblin/templates/mediagoblin/media_displays/video.html:33 +msgid "" +"Sorry, this video will not work because \n" +"\t your web browser does not support HTML5 \n" +"\t video." +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:36 +msgid "" +"You can get a modern web browser that \n" +"\t can play this video at \n" +"\t http://getfirefox.com!" +msgstr "" + #: mediagoblin/templates/mediagoblin/submit/start.html:26 -msgid "Submit yer media" -msgstr "Envieu els vostres fitxers" +msgid "Add your media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Add" +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format @@ -385,31 +425,57 @@ msgstr "" msgid "%(username)s's media" msgstr "%(username)s's media" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:60 #, python-format -msgid "By %(username)s on %(date)s" +msgid "Added on %(date)s." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 -msgid "Post a comment" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 -msgid "at" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 -msgid "Post comment!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:69 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:73 msgid "Delete" msgstr "" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:79 +#, python-format +msgid "%(comment_count)s comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:81 +#, python-format +msgid "%(comment_count)s comments" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:83 +msgid "No comments yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:91 +msgid "Add one" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:100 +msgid "" +"Type your comment here. You can use Markdown for" +" formatting." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:104 +msgid "Add this comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:126 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:141 +#, python-format +msgid "

❖ Browsing media by %(username)s

" +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -494,30 +560,31 @@ msgid "Here's a spot to tell others about yourself." msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:101 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:118 msgid "Edit profile" msgstr "Edita el perfil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:106 msgid "This user hasn't filled in their profile (yet)." msgstr "Aquest usuari encara no ha escrit res al seu perfil." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:125 +msgid "Change account settings" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:138 #, python-format msgid "View all of %(username)s's media" msgstr "View all of %(username)s's media" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:151 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 -msgid "Add media" -msgstr "Tots els fitxers" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:163 +#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72 msgid "There doesn't seem to be any media here yet..." msgstr "" @@ -529,30 +596,36 @@ msgstr "Icona RSS" msgid "Atom feed" msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 -msgid "Newer" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:39 +msgid "← Newer" msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 -msgid "Older" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:45 +msgid "Older →" msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +#: mediagoblin/templates/mediagoblin/utils/pagination.html:48 msgid "Go to page:" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32 +msgid "newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43 +msgid "older" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 -msgid "Tagged with" +msgid "View more media tagged with" msgstr "" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 -msgid "and" +msgid "or" msgstr "" -#: mediagoblin/user_pages/forms.py:24 -msgid "Comment" -msgstr "Comentari" - #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" msgstr "" diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo index a01abf9ca7c143db31f1a5d96bc8ac2148711350..4f4bbfdaa6ca1d9b55b4b0ea53714ff51d5879f1 100644 GIT binary patch literal 13692 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 delta 3622 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�Do)?_5! F{|2Qo6)^w+ diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po index e2765357..1fb472f0 100644 --- a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po @@ -1,5 +1,5 @@ # Translations template for PROJECT. -# Copyright (C) 2011 ORGANIZATION +# Copyright (C) 2012 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # # Translators: @@ -8,6 +8,7 @@ # Elrond , 2011. # , 2011. # Jan-Christoph Borchardt , 2011. +# Jan-Christoph Borchardt , 2011. # , 2011. # , 2011. # Rafael Maguiña , 2011. @@ -16,9 +17,9 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-04 10:24-0600\n" -"PO-Revision-Date: 2011-12-06 21:16+0000\n" -"Last-Translator: gandaro \n" +"POT-Creation-Date: 2012-01-07 13:47-0600\n" +"PO-Revision-Date: 2012-01-07 19:44+0000\n" +"Last-Translator: cwebber \n" "Language-Team: German (http://www.transifex.net/projects/p/mediagoblin/team/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -31,27 +32,15 @@ msgstr "" msgid "Invalid file given for media type." msgstr "Die Datei stimmt nicht mit dem gewählten Medientyp überein." -#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41 msgid "Username" msgstr "Benutzername" -#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45 msgid "Password" msgstr "Passwort" -#: mediagoblin/auth/forms.py:35 -msgid "Passwords must match." -msgstr "Passwörter müssen übereinstimmen." - -#: mediagoblin/auth/forms.py:37 -msgid "Confirm password" -msgstr "Passwort wiederholen" - -#: mediagoblin/auth/forms.py:39 -msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "Hier nochmal eintragen, um Tippfehler zu verhindern." - -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:34 msgid "Email address" msgstr "E-Mail-Adresse" @@ -67,7 +56,7 @@ msgstr "Leider gibt es bereits einen Benutzer mit diesem Namen." msgid "Sorry, a user with that email address already exists." msgstr "Leider gibt es bereits einen Benutzer mit dieser E-Mail-Adresse." -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:180 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -75,23 +64,28 @@ msgstr "" "Deine E-Mail-Adresse wurde bestätigt. Du kannst dich nun anmelden, Dein " "Profil bearbeiten und Bilder hochladen!" -#: mediagoblin/auth/views.py:185 +#: mediagoblin/auth/views.py:186 msgid "The verification key or user id is incorrect" msgstr "Der Bestätigungsschlüssel oder die Nutzernummer ist falsch." -#: mediagoblin/auth/views.py:203 +#: mediagoblin/auth/views.py:204 msgid "You must be logged in so we know who to send the email to!" -msgstr "" +msgstr "Du musst angemeldet sein, damit wir wissen, wer die Email bekommt." -#: mediagoblin/auth/views.py:211 +#: mediagoblin/auth/views.py:212 msgid "You've already verified your email address!" msgstr "Deine E-Mail-Adresse wurde bereits bestätigt." -#: mediagoblin/auth/views.py:224 +#: mediagoblin/auth/views.py:225 msgid "Resent your verification email." msgstr "Bestätigungs-E-Mail wurde erneut versandt." -#: mediagoblin/auth/views.py:265 +#: mediagoblin/auth/views.py:260 +msgid "" +"An email has been sent with instructions on how to change your password." +msgstr "" + +#: mediagoblin/auth/views.py:270 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -100,48 +94,77 @@ msgstr "" "weil dein Benutzername inaktiv oder deine E-Mail-Adresse noch nicht " "verifiziert ist." +#: mediagoblin/auth/views.py:282 +msgid "Couldn't find someone with that username or email." +msgstr "" + +#: mediagoblin/auth/views.py:330 +msgid "You can now log in using your new password." +msgstr "" + #: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Titel" -#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "Beschreibung des Werkes" + +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35 msgid "Tags" msgstr "Markierungen" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas." +#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37 +msgid "Separate tags by commas." msgstr "" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:37 msgid "Slug" msgstr "Kurztitel" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:38 msgid "The slug can't be empty" msgstr "Bitte gib einen Kurztitel ein" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:39 msgid "" -"The title part of this media's URL. You usually don't need to change this." +"The title part of this media's address. You usually don't need to change " +"this." msgstr "" -"Der Titelteil der Medienadresse. Normalerweise muss hier nichts geändert " -"werden." -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:46 msgid "Bio" msgstr "Biographie" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:48 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:53 msgid "Website" msgstr "Webseite" -#: mediagoblin/edit/forms.py:49 +#: mediagoblin/edit/forms.py:60 msgid "Old password" msgstr "Altes Passwort" -#: mediagoblin/edit/forms.py:52 -msgid "New Password" -msgstr "Neues Passwort" +#: mediagoblin/edit/forms.py:62 +msgid "Enter your old password to prove you own this account." +msgstr "" + +#: mediagoblin/edit/forms.py:65 +msgid "New password" +msgstr "" #: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." @@ -155,39 +178,43 @@ msgstr "Du bearbeitest die Medien eines Anderen. Bitte sei vorsichtig." msgid "You are editing a user's profile. Proceed with caution." msgstr "Du bearbeitest das Profil eines Anderen. Bitte sei vorsichtig." -#: mediagoblin/edit/views.py:171 +#: mediagoblin/edit/views.py:174 +msgid "Profile changes saved" +msgstr "" + +#: mediagoblin/edit/views.py:200 msgid "Wrong password" msgstr "Falsches Passwort" -#: mediagoblin/edit/views.py:192 -msgid "Profile edited!" -msgstr "Das Profil wurde aktualisiert" +#: mediagoblin/edit/views.py:216 +msgid "Account settings saved" +msgstr "" -#: mediagoblin/media_types/__init__.py:65 -msgid "Could not find any file extension in \"{filename}\"" +#: mediagoblin/media_types/__init__.py:77 +msgid "Could not extract any file extension from \"{filename}\"" +msgstr "" + +#: mediagoblin/media_types/__init__.py:88 +msgid "Sorry, I don't support that file type :(" msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "Datei" -#: mediagoblin/submit/forms.py:30 -msgid "Description of this work" -msgstr "Beschreibung des Werkes" - -#: mediagoblin/submit/views.py:49 +#: mediagoblin/submit/views.py:50 msgid "You must provide a file." msgstr "Du musst eine Datei angeben." -#: mediagoblin/submit/views.py:127 +#: mediagoblin/submit/views.py:128 msgid "Woohoo! Submitted!" msgstr "Yeeeaaah! Geschafft!" -#: mediagoblin/submit/views.py:133 -msgid "Invalid file type." -msgstr "Ungültiger Dateityp." +#: mediagoblin/templates/mediagoblin/404.html:22 +msgid "Image of 404 goblin stressing out" +msgstr "Bild eines angespannten Goblins" -#: mediagoblin/templates/mediagoblin/404.html:21 +#: mediagoblin/templates/mediagoblin/404.html:23 msgid "Oops!" msgstr "Hoppla!" @@ -203,33 +230,30 @@ msgstr "" "Wenn du sicher bist, dass die Adresse stimmt, wurde die Seite eventuell " "verschoben oder gelöscht." -#: mediagoblin/templates/mediagoblin/404.html:32 -msgid "Image of 404 goblin stressing out" -msgstr "Bild eines angespannten Goblins" - -#: mediagoblin/templates/mediagoblin/base.html:49 +#: mediagoblin/templates/mediagoblin/base.html:48 msgid "MediaGoblin logo" msgstr "MediaGoblin-Logo" -#: mediagoblin/templates/mediagoblin/base.html:54 -msgid "Submit media" -msgstr "Medien hochladen" +#: mediagoblin/templates/mediagoblin/base.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:157 +msgid "Add media" +msgstr "Medien hinzufügen" -#: mediagoblin/templates/mediagoblin/base.html:65 +#: mediagoblin/templates/mediagoblin/base.html:64 msgid "Verify your email!" msgstr "Bitte bestätige deine E-Mail-Adresse!" -#: mediagoblin/templates/mediagoblin/base.html:72 +#: mediagoblin/templates/mediagoblin/base.html:71 msgid "log out" msgstr "Abmelden" -#: mediagoblin/templates/mediagoblin/base.html:75 +#: mediagoblin/templates/mediagoblin/base.html:74 #: mediagoblin/templates/mediagoblin/auth/login.html:27 #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Anmelden" -#: mediagoblin/templates/mediagoblin/base.html:91 +#: mediagoblin/templates/mediagoblin/base.html:86 msgid "" "Powered by MediaGoblin, a GNU project" @@ -241,46 +265,49 @@ msgstr "" msgid "Explore" msgstr "Entdecke" -#: mediagoblin/templates/mediagoblin/root.html:27 +#: mediagoblin/templates/mediagoblin/root.html:26 msgid "Hi there, welcome to this MediaGoblin site!" -msgstr "" +msgstr "Hallo du, willkommen auf dieser MediaGoblin-Seite!" #: mediagoblin/templates/mediagoblin/root.html:28 msgid "" "This site is running MediaGoblin, an " "extraordinarily great piece of media hosting software." msgstr "" +"Diese Seite läuft mit MediaGoblin, " +"einer großartigen Software für Medienhosting." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "" "To add your own media, place comments, save your favourites and more, you " "can log in with your MediaGoblin account." msgstr "" +"Melde dich mit deinem MediaGoblin-Konto an, um eigene Medien hinzuzufügen, " +"zu kommentieren, Favoriten zu speichern und mehr." #: mediagoblin/templates/mediagoblin/root.html:31 msgid "Don't have one yet? It's easy!" -msgstr "" +msgstr "Hast du noch keinen? Das geht ganz einfach!" #: mediagoblin/templates/mediagoblin/root.html:32 #, python-format msgid "" "Create an account at this site\n" -" or\n" -" Set up MediaGoblin on your own server" +" or\n" +" Set up MediaGoblin on your own server" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:44 +#: mediagoblin/templates/mediagoblin/root.html:40 msgid "Most recent media" msgstr "Neuste Medien" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 -msgid "Enter your new password" -msgstr "Neues Passwort eingeben" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32 +msgid "Set your new password" +msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Bestätigen" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35 +msgid "Set password" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" @@ -288,18 +315,7 @@ msgstr "Passwort wiederherstellen" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 msgid "Send instructions" -msgstr "" - -#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "Your password has been changed. Try to log in now." -msgstr "Dein Passwort wurde geändert. Versuche dich jetzt einzuloggen." - -#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 -msgid "" -"Check your inbox. We sent an email with a URL for changing your password." -msgstr "" -"Überprüfe deinen Posteingang. Wir haben dir eine E-Mail mit einem Link " -"geschickt, mit dem du dein Passwort ändern kannst." +msgstr "Anleitung senden" #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format @@ -338,11 +354,11 @@ msgstr "Registriere dich hier!" msgid "Forgot your password?" msgstr "Passwort vergessen?" -#: mediagoblin/templates/mediagoblin/auth/register.html:27 +#: mediagoblin/templates/mediagoblin/auth/register.html:32 msgid "Create an account!" msgstr "Neues Konto registrieren!" -#: mediagoblin/templates/mediagoblin/auth/register.html:31 +#: mediagoblin/templates/mediagoblin/auth/register.html:36 msgid "Create" msgstr "Registrieren" @@ -373,10 +389,16 @@ msgid "Cancel" msgstr "Abbrechen" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "Änderungen speichern" +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34 +#, python-format +msgid "Changing %(username)s's account settings" +msgstr "" + #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" @@ -386,15 +408,34 @@ msgstr "%(username)ss Profil bearbeiten" #: mediagoblin/templates/mediagoblin/listings/tag.html:35 #, python-format msgid "Media tagged with: %(tag_name)s" -msgstr ": %(tag_name)s" +msgstr "Medien markiert mit: %(tag_name)s" -#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34 +#: mediagoblin/templates/mediagoblin/media_displays/video.html:46 msgid "Original" +msgstr "Original" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:33 +msgid "" +"Sorry, this video will not work because \n" +"\t your web browser does not support HTML5 \n" +"\t video." +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:36 +msgid "" +"You can get a modern web browser that \n" +"\t can play this video at \n" +"\t http://getfirefox.com!" msgstr "" #: mediagoblin/templates/mediagoblin/submit/start.html:26 -msgid "Submit yer media" -msgstr "Medien hochladen" +msgid "Add your media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Add" +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format @@ -406,31 +447,57 @@ msgstr "%(username)ss Medien" msgid "%(username)s's media" msgstr "%(username)ss Medien" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:60 #, python-format -msgid "By %(username)s on %(date)s" -msgstr "Von %(username)s am %(date)s" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 -msgid "Post a comment" +msgid "Added on %(date)s." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 -msgid "at" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 -msgid "Post comment!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:69 msgid "Edit" msgstr "Bearbeiten" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:73 msgid "Delete" msgstr "Löschen" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:79 +#, python-format +msgid "%(comment_count)s comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:81 +#, python-format +msgid "%(comment_count)s comments" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:83 +msgid "No comments yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:91 +msgid "Add one" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:100 +msgid "" +"Type your comment here. You can use Markdown for" +" formatting." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:104 +msgid "Add this comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:126 +msgid "at" +msgstr "bei" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:141 +#, python-format +msgid "

❖ Browsing media by %(username)s

" +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -520,30 +587,31 @@ msgid "Here's a spot to tell others about yourself." msgstr "Hier kannst du Anderen etwas über dich erzählen." #: mediagoblin/templates/mediagoblin/user_pages/user.html:101 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:118 msgid "Edit profile" msgstr "Profil bearbeiten" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:106 msgid "This user hasn't filled in their profile (yet)." msgstr "Dieser Benutzer hat (noch) keine Daten in seinem Profil." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:125 +msgid "Change account settings" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:138 #, python-format msgid "View all of %(username)s's media" msgstr "Alle Medien von %(username)s anschauen" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:151 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "Hier erscheinen deine Medien. Sobald du etwas hochgeladen hast." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 -msgid "Add media" -msgstr "Medien hinzufügen" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:163 +#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72 msgid "There doesn't seem to be any media here yet..." msgstr "Scheinbar gibt es hier noch nichts …" @@ -555,29 +623,35 @@ msgstr "Feed-Symbol" msgid "Atom feed" msgstr "Atom-Feed" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 -msgid "Newer" -msgstr "Neuere" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:39 +msgid "← Newer" +msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 -msgid "Older" -msgstr "Ältere" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:45 +msgid "Older →" +msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +#: mediagoblin/templates/mediagoblin/utils/pagination.html:48 msgid "Go to page:" +msgstr "Zu Seite:" + +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32 +msgid "newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43 +msgid "older" msgstr "" #: mediagoblin/templates/mediagoblin/utils/tags.html:20 -msgid "Tagged with" -msgstr "Markiert mit" +msgid "View more media tagged with" +msgstr "" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 -msgid "and" -msgstr "und" - -#: mediagoblin/user_pages/forms.py:24 -msgid "Comment" -msgstr "Kommentar" +msgid "or" +msgstr "" #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" @@ -585,19 +659,21 @@ msgstr "Ja, wirklich löschen" #: mediagoblin/user_pages/views.py:155 msgid "Oops, your comment was empty." -msgstr "" +msgstr "Ohh, der Kommentar war leer." #: mediagoblin/user_pages/views.py:161 msgid "Your comment has been posted!" -msgstr "" +msgstr "Dein Kommentar wurde gesendet!" #: mediagoblin/user_pages/views.py:183 msgid "You deleted the media." -msgstr "" +msgstr "Du hast das Medium gelöscht." #: mediagoblin/user_pages/views.py:190 msgid "The media was not deleted because you didn't check that you were sure." msgstr "" +"Das Medium wurde nicht gelöscht. Du musst ankreuzen, dass du es wirklich " +"löschen möchtest." #: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." diff --git a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po index 17e6873c..3584cd4f 100644 --- a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po @@ -1,14 +1,14 @@ # Translations template for PROJECT. -# Copyright (C) 2011 ORGANIZATION +# Copyright (C) 2012 ORGANIZATION # This file is distributed under the same license as the PROJECT project. -# FIRST AUTHOR , 2011. +# FIRST AUTHOR , 2012. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-12-04 10:24-0600\n" +"POT-Creation-Date: 2012-01-07 13:47-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,27 +21,15 @@ msgstr "" msgid "Invalid file given for media type." msgstr "" -#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41 msgid "Username" msgstr "" -#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45 msgid "Password" msgstr "" -#: mediagoblin/auth/forms.py:35 -msgid "Passwords must match." -msgstr "" - -#: mediagoblin/auth/forms.py:37 -msgid "Confirm password" -msgstr "" - -#: mediagoblin/auth/forms.py:39 -msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "" - -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:34 msgid "Email address" msgstr "" @@ -57,72 +45,110 @@ msgstr "" msgid "Sorry, a user with that email address already exists." msgstr "" -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:180 msgid "" "Your email address has been verified. You may now login, edit your " "profile, and submit images!" msgstr "" -#: mediagoblin/auth/views.py:185 +#: mediagoblin/auth/views.py:186 msgid "The verification key or user id is incorrect" msgstr "" -#: mediagoblin/auth/views.py:203 +#: mediagoblin/auth/views.py:204 msgid "You must be logged in so we know who to send the email to!" msgstr "" -#: mediagoblin/auth/views.py:211 +#: mediagoblin/auth/views.py:212 msgid "You've already verified your email address!" msgstr "" -#: mediagoblin/auth/views.py:224 +#: mediagoblin/auth/views.py:225 msgid "Resent your verification email." msgstr "" -#: mediagoblin/auth/views.py:265 +#: mediagoblin/auth/views.py:260 +msgid "An email has been sent with instructions on how to change your password." +msgstr "" + +#: mediagoblin/auth/views.py:270 msgid "" "Could not send password recovery email as your username is inactive or " "your account's email address has not been verified." msgstr "" +#: mediagoblin/auth/views.py:282 +msgid "Couldn't find someone with that username or email." +msgstr "" + +#: mediagoblin/auth/views.py:330 +msgid "You can now log in using your new password." +msgstr "" + #: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "" -#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35 msgid "Tags" msgstr "" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas." +#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37 +msgid "Separate tags by commas." msgstr "" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:37 msgid "Slug" msgstr "" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:38 msgid "The slug can't be empty" msgstr "" -#: mediagoblin/edit/forms.py:35 -msgid "The title part of this media's URL. You usually don't need to change this." +#: mediagoblin/edit/forms.py:39 +msgid "" +"The title part of this media's address. You usually don't need to change " +"this." msgstr "" -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:46 msgid "Bio" msgstr "" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:48 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:53 msgid "Website" msgstr "" -#: mediagoblin/edit/forms.py:49 +#: mediagoblin/edit/forms.py:60 msgid "Old password" msgstr "" -#: mediagoblin/edit/forms.py:52 -msgid "New Password" +#: mediagoblin/edit/forms.py:62 +msgid "Enter your old password to prove you own this account." +msgstr "" + +#: mediagoblin/edit/forms.py:65 +msgid "New password" msgstr "" #: mediagoblin/edit/views.py:65 @@ -137,39 +163,43 @@ msgstr "" msgid "You are editing a user's profile. Proceed with caution." msgstr "" -#: mediagoblin/edit/views.py:171 +#: mediagoblin/edit/views.py:174 +msgid "Profile changes saved" +msgstr "" + +#: mediagoblin/edit/views.py:200 msgid "Wrong password" msgstr "" -#: mediagoblin/edit/views.py:192 -msgid "Profile edited!" +#: mediagoblin/edit/views.py:216 +msgid "Account settings saved" msgstr "" -#: mediagoblin/media_types/__init__.py:65 -msgid "Could not find any file extension in \"{filename}\"" +#: mediagoblin/media_types/__init__.py:77 +msgid "Could not extract any file extension from \"{filename}\"" +msgstr "" + +#: mediagoblin/media_types/__init__.py:88 +msgid "Sorry, I don't support that file type :(" msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "" -#: mediagoblin/submit/forms.py:30 -msgid "Description of this work" -msgstr "" - -#: mediagoblin/submit/views.py:49 +#: mediagoblin/submit/views.py:50 msgid "You must provide a file." msgstr "" -#: mediagoblin/submit/views.py:127 +#: mediagoblin/submit/views.py:128 msgid "Woohoo! Submitted!" msgstr "" -#: mediagoblin/submit/views.py:133 -msgid "Invalid file type." +#: mediagoblin/templates/mediagoblin/404.html:22 +msgid "Image of 404 goblin stressing out" msgstr "" -#: mediagoblin/templates/mediagoblin/404.html:21 +#: mediagoblin/templates/mediagoblin/404.html:23 msgid "Oops!" msgstr "" @@ -183,33 +213,30 @@ msgid "" "has been moved or deleted." msgstr "" -#: mediagoblin/templates/mediagoblin/404.html:32 -msgid "Image of 404 goblin stressing out" -msgstr "" - -#: mediagoblin/templates/mediagoblin/base.html:49 +#: mediagoblin/templates/mediagoblin/base.html:48 msgid "MediaGoblin logo" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:54 -msgid "Submit media" +#: mediagoblin/templates/mediagoblin/base.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:157 +msgid "Add media" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:65 +#: mediagoblin/templates/mediagoblin/base.html:64 msgid "Verify your email!" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:72 +#: mediagoblin/templates/mediagoblin/base.html:71 msgid "log out" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:75 +#: mediagoblin/templates/mediagoblin/base.html:74 #: mediagoblin/templates/mediagoblin/auth/login.html:27 #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:91 +#: mediagoblin/templates/mediagoblin/base.html:86 msgid "" "Powered by MediaGoblin, a GNU project" @@ -219,7 +246,7 @@ msgstr "" msgid "Explore" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:27 +#: mediagoblin/templates/mediagoblin/root.html:26 msgid "Hi there, welcome to this MediaGoblin site!" msgstr "" @@ -244,23 +271,22 @@ msgstr "" msgid "" "Create an " "account at this site\n" -" or\n" -" Set up MediaGoblin on " "your own server" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:44 +#: mediagoblin/templates/mediagoblin/root.html:40 msgid "Most recent media" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 -msgid "Enter your new password" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32 +msgid "Set your new password" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35 +msgid "Set password" msgstr "" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 @@ -271,14 +297,6 @@ msgstr "" msgid "Send instructions" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "Your password has been changed. Try to log in now." -msgstr "" - -#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 -msgid "Check your inbox. We sent an email with a URL for changing your password." -msgstr "" - #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format msgid "" @@ -309,11 +327,11 @@ msgstr "" msgid "Forgot your password?" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/register.html:27 +#: mediagoblin/templates/mediagoblin/auth/register.html:32 msgid "Create an account!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/register.html:31 +#: mediagoblin/templates/mediagoblin/auth/register.html:36 msgid "Create" msgstr "" @@ -339,10 +357,16 @@ msgid "Cancel" msgstr "" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "" +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34 +#, python-format +msgid "Changing %(username)s's account settings" +msgstr "" + #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" @@ -354,12 +378,31 @@ msgstr "" msgid "Media tagged with: %(tag_name)s" msgstr "" -#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34 +#: mediagoblin/templates/mediagoblin/media_displays/video.html:46 msgid "Original" msgstr "" +#: mediagoblin/templates/mediagoblin/media_displays/video.html:33 +msgid "" +"Sorry, this video will not work because \n" +"\t your web browser does not support HTML5 \n" +"\t video." +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:36 +msgid "" +"You can get a modern web browser that \n" +"\t can play this video at \n" +"\t http://getfirefox.com!" +msgstr "" + #: mediagoblin/templates/mediagoblin/submit/start.html:26 -msgid "Submit yer media" +msgid "Add your media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Add" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 @@ -372,31 +415,57 @@ msgstr "" msgid "%(username)s's media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:60 #, python-format -msgid "By %(username)s on %(date)s" +msgid "Added on %(date)s." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 -msgid "Post a comment" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 -msgid "at" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 -msgid "Post comment!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:69 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:73 msgid "Delete" msgstr "" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:79 +#, python-format +msgid "%(comment_count)s comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:81 +#, python-format +msgid "%(comment_count)s comments" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:83 +msgid "No comments yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:91 +msgid "Add one" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:100 +msgid "" +"Type your comment here. You can use Markdown " +"for formatting." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:104 +msgid "Add this comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:126 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:141 +#, python-format +msgid "

❖ Browsing media by %(username)s

" +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -475,30 +544,31 @@ msgid "Here's a spot to tell others about yourself." msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:101 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:118 msgid "Edit profile" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:106 msgid "This user hasn't filled in their profile (yet)." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:125 +msgid "Change account settings" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:138 #, python-format msgid "View all of %(username)s's media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:151 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 -msgid "Add media" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:163 +#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72 msgid "There doesn't seem to be any media here yet..." msgstr "" @@ -510,28 +580,34 @@ msgstr "" msgid "Atom feed" msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 -msgid "Newer" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:39 +msgid "← Newer" msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 -msgid "Older" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:45 +msgid "Older →" msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +#: mediagoblin/templates/mediagoblin/utils/pagination.html:48 msgid "Go to page:" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32 +msgid "newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43 +msgid "older" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 -msgid "Tagged with" +msgid "View more media tagged with" msgstr "" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 -msgid "and" -msgstr "" - -#: mediagoblin/user_pages/forms.py:24 -msgid "Comment" +msgid "or" msgstr "" #: mediagoblin/user_pages/forms.py:30 diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo index 3e0a84bf3c263d1fcca55f045823f7aac1023cb0..d0c5f2bf0774c5bfeaa2b1782d9179f1eda5bef6 100644 GIT binary patch delta 5109 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 WvQ|cAjOuptp_A)kvC6omd+NX6AP2<& diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po index c3c29b89..6536f4d5 100644 --- a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po @@ -1,5 +1,5 @@ # Translations template for PROJECT. -# Copyright (C) 2011 ORGANIZATION +# Copyright (C) 2012 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # # Translators: @@ -10,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-04 10:24-0600\n" -"PO-Revision-Date: 2011-12-06 20:04+0000\n" -"Last-Translator: aleksejrs \n" +"POT-Creation-Date: 2012-01-07 13:47-0600\n" +"PO-Revision-Date: 2012-01-07 19:44+0000\n" +"Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -25,27 +25,15 @@ msgstr "" msgid "Invalid file given for media type." msgstr "La provizita dosiero ne konformas al la informtipo." -#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41 msgid "Username" msgstr "Uzantnomo" -#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45 msgid "Password" msgstr "Pasvorto" -#: mediagoblin/auth/forms.py:35 -msgid "Passwords must match." -msgstr "Pasvortoj devas esti egalaj." - -#: mediagoblin/auth/forms.py:37 -msgid "Confirm password" -msgstr "Retajpu pasvorton" - -#: mediagoblin/auth/forms.py:39 -msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "Retajpu ĝin por certigi, ke ne okazis mistajpoj." - -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:34 msgid "Email address" msgstr "Retpoŝtadreso" @@ -61,7 +49,7 @@ msgstr "Bedaŭrinde, uzanto kun tiu nomo jam ekzistas." msgid "Sorry, a user with that email address already exists." msgstr "Ni bedaŭras, sed konto kun tiu retpoŝtadreso jam ekzistas." -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:180 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -69,23 +57,28 @@ msgstr "" "Via retpoŝtadreso estas konfirmita. Vi povas nun ensaluti, redakti vian " "profilon, kaj alŝuti bildojn!" -#: mediagoblin/auth/views.py:185 +#: mediagoblin/auth/views.py:186 msgid "The verification key or user id is incorrect" msgstr "La kontrol-kodo aŭ la uzantonomo ne estas korekta" -#: mediagoblin/auth/views.py:203 +#: mediagoblin/auth/views.py:204 msgid "You must be logged in so we know who to send the email to!" msgstr "Vi devas esti ensalutita, por ke ni sciu, al kiu sendi la retleteron!" -#: mediagoblin/auth/views.py:211 +#: mediagoblin/auth/views.py:212 msgid "You've already verified your email address!" msgstr "Vi jam konfirmis vian retpoŝtadreson!" -#: mediagoblin/auth/views.py:224 +#: mediagoblin/auth/views.py:225 msgid "Resent your verification email." msgstr "Resendi vian kontrol-mesaĝon." -#: mediagoblin/auth/views.py:265 +#: mediagoblin/auth/views.py:260 +msgid "" +"An email has been sent with instructions on how to change your password." +msgstr "" + +#: mediagoblin/auth/views.py:270 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -93,48 +86,77 @@ msgstr "" "Ni ne povas sendi pasvortsavan retleteron, ĉar aŭ via konto estas neaktiva, " "aŭ ĝia retpoŝtadreso ne estis konfirmita." +#: mediagoblin/auth/views.py:282 +msgid "Couldn't find someone with that username or email." +msgstr "" + +#: mediagoblin/auth/views.py:330 +msgid "You can now log in using your new password." +msgstr "" + #: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Titolo" -#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "Priskribo de ĉi tiu verko" + +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35 msgid "Tags" msgstr "Etikedoj" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas." -msgstr "Dividu la etikedojn per komoj." +#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37 +msgid "Separate tags by commas." +msgstr "" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:37 msgid "Slug" msgstr "La distingiga adresparto" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:38 msgid "The slug can't be empty" msgstr "La distingiga adresparto ne povas esti malplena" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:39 msgid "" -"The title part of this media's URL. You usually don't need to change this." +"The title part of this media's address. You usually don't need to change " +"this." msgstr "" -"La parto de la dosieradreso, bazita sur la dosiertitolo. Ordinare ne necesas" -" ĝin ŝanĝi." -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:46 msgid "Bio" msgstr "Bio" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:48 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:53 msgid "Website" msgstr "Retejo" -#: mediagoblin/edit/forms.py:49 +#: mediagoblin/edit/forms.py:60 msgid "Old password" msgstr "La malnova pasvorto" -#: mediagoblin/edit/forms.py:52 -msgid "New Password" -msgstr "La nova pasvorto" +#: mediagoblin/edit/forms.py:62 +msgid "Enter your old password to prove you own this account." +msgstr "" + +#: mediagoblin/edit/forms.py:65 +msgid "New password" +msgstr "" #: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." @@ -148,39 +170,43 @@ msgstr "Vi priredaktas dosieron de alia uzanto. Agu singardeme." msgid "You are editing a user's profile. Proceed with caution." msgstr "Vi redaktas profilon de alia uzanto. Agu singardeme." -#: mediagoblin/edit/views.py:171 +#: mediagoblin/edit/views.py:174 +msgid "Profile changes saved" +msgstr "" + +#: mediagoblin/edit/views.py:200 msgid "Wrong password" msgstr "Malĝusta pasvorto" -#: mediagoblin/edit/views.py:192 -msgid "Profile edited!" -msgstr "La profilŝanĝo faritas!" +#: mediagoblin/edit/views.py:216 +msgid "Account settings saved" +msgstr "" -#: mediagoblin/media_types/__init__.py:65 -msgid "Could not find any file extension in \"{filename}\"" -msgstr "Ŝajnas, ke en «{filename}» mankas dosiernoma finaĵo" +#: mediagoblin/media_types/__init__.py:77 +msgid "Could not extract any file extension from \"{filename}\"" +msgstr "" + +#: mediagoblin/media_types/__init__.py:88 +msgid "Sorry, I don't support that file type :(" +msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "Dosiero" -#: mediagoblin/submit/forms.py:30 -msgid "Description of this work" -msgstr "Priskribo de ĉi tiu verko" - -#: mediagoblin/submit/views.py:49 +#: mediagoblin/submit/views.py:50 msgid "You must provide a file." msgstr "Vi devas provizi dosieron." -#: mediagoblin/submit/views.py:127 +#: mediagoblin/submit/views.py:128 msgid "Woohoo! Submitted!" msgstr "Hura! Alŝutitas!" -#: mediagoblin/submit/views.py:133 -msgid "Invalid file type." -msgstr "Netaŭga dosiertipo." +#: mediagoblin/templates/mediagoblin/404.html:22 +msgid "Image of 404 goblin stressing out" +msgstr "Bildo de 404-koboldo penŝvitanta." -#: mediagoblin/templates/mediagoblin/404.html:21 +#: mediagoblin/templates/mediagoblin/404.html:23 msgid "Oops!" msgstr "Oj!" @@ -196,33 +222,30 @@ msgstr "" "Se vi estas certa, ke la adreso estas ĝusta, eble la serĉata de vi paĝo " "estis movita aŭ forigita." -#: mediagoblin/templates/mediagoblin/404.html:32 -msgid "Image of 404 goblin stressing out" -msgstr "Bildo de 404-koboldo penŝvitanta." - -#: mediagoblin/templates/mediagoblin/base.html:49 +#: mediagoblin/templates/mediagoblin/base.html:48 msgid "MediaGoblin logo" msgstr "Emblemo de MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:54 -msgid "Submit media" -msgstr "Alŝuti aŭd-vid-dosieron" +#: mediagoblin/templates/mediagoblin/base.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:157 +msgid "Add media" +msgstr "Aldoni dosieron" -#: mediagoblin/templates/mediagoblin/base.html:65 +#: mediagoblin/templates/mediagoblin/base.html:64 msgid "Verify your email!" msgstr "Konfirmu viecon de la retpoŝtadreso!" -#: mediagoblin/templates/mediagoblin/base.html:72 +#: mediagoblin/templates/mediagoblin/base.html:71 msgid "log out" msgstr "elsaluti" -#: mediagoblin/templates/mediagoblin/base.html:75 +#: mediagoblin/templates/mediagoblin/base.html:74 #: mediagoblin/templates/mediagoblin/auth/login.html:27 #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Ensaluti" -#: mediagoblin/templates/mediagoblin/base.html:91 +#: mediagoblin/templates/mediagoblin/base.html:86 msgid "" "Powered by MediaGoblin, a GNU project" @@ -234,7 +257,7 @@ msgstr "" msgid "Explore" msgstr "Ĉirkaŭrigardi" -#: mediagoblin/templates/mediagoblin/root.html:27 +#: mediagoblin/templates/mediagoblin/root.html:26 msgid "Hi there, welcome to this MediaGoblin site!" msgstr "Saluton, kaj bonvenon al ĉi tiu MediaGoblina retpaĝaro!" @@ -263,25 +286,21 @@ msgstr "Ĉu vi ankoraŭ ne havas tian? Ne malĝoju!" #, python-format msgid "" "Create an account at this site\n" -" or\n" -" Set up MediaGoblin on your own server" +" or\n" +" Set up MediaGoblin on your own server" msgstr "" -"Kreu konton en ĉi tiu retejo\n" -" aŭ\n" -" Ekfunkciigu MediaGoblin’on en via propra servilo" -#: mediagoblin/templates/mediagoblin/root.html:44 +#: mediagoblin/templates/mediagoblin/root.html:40 msgid "Most recent media" msgstr "Laste aldonitaj dosieroj" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 -msgid "Enter your new password" -msgstr "Enigu vian novan pasvorton" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32 +msgid "Set your new password" +msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Alŝuti" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35 +msgid "Set password" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" @@ -291,17 +310,6 @@ msgstr "Ekhavo de nova pasvorto" msgid "Send instructions" msgstr "Sendi instrukcion" -#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "Your password has been changed. Try to log in now." -msgstr "Via pasvorto estis ŝanĝita. Nun provu ensaluti." - -#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 -msgid "" -"Check your inbox. We sent an email with a URL for changing your password." -msgstr "" -"Kontrolu vian retleterujon. Ni sendis retleteron kun retadreso por ŝanĝo de " -"via pasvorto." - #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format msgid "" @@ -339,11 +347,11 @@ msgstr "Kreu ĝin ĉi tie!" msgid "Forgot your password?" msgstr "Ĉu vi forgesis vian pasvorton?" -#: mediagoblin/templates/mediagoblin/auth/register.html:27 +#: mediagoblin/templates/mediagoblin/auth/register.html:32 msgid "Create an account!" msgstr "Kreu konton!" -#: mediagoblin/templates/mediagoblin/auth/register.html:31 +#: mediagoblin/templates/mediagoblin/auth/register.html:36 msgid "Create" msgstr "Krei" @@ -374,10 +382,16 @@ msgid "Cancel" msgstr "Nuligi" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "Konservi ŝanĝojn" +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34 +#, python-format +msgid "Changing %(username)s's account settings" +msgstr "" + #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" @@ -389,13 +403,32 @@ msgstr "Redaktado de l’profilo de %(username)s'" msgid "Media tagged with: %(tag_name)s" msgstr "Dosieroj kun etikedo: %(tag_name)s" -#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34 +#: mediagoblin/templates/mediagoblin/media_displays/video.html:46 msgid "Original" msgstr "Originalo" +#: mediagoblin/templates/mediagoblin/media_displays/video.html:33 +msgid "" +"Sorry, this video will not work because \n" +"\t your web browser does not support HTML5 \n" +"\t video." +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:36 +msgid "" +"You can get a modern web browser that \n" +"\t can play this video at \n" +"\t http://getfirefox.com!" +msgstr "" + #: mediagoblin/templates/mediagoblin/submit/start.html:26 -msgid "Submit yer media" -msgstr "Alŝutu vian aŭd-vid-dosieron" +msgid "Add your media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Add" +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format @@ -407,31 +440,57 @@ msgstr "Dosieroj de %(username)s" msgid "%(username)s's media" msgstr "Dosieroj de %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:60 #, python-format -msgid "By %(username)s on %(date)s" -msgstr "Afiŝita de %(username)s je %(date)s" +msgid "Added on %(date)s." +msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 -msgid "Post a comment" -msgstr "Afiŝi komenton" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 -msgid "at" -msgstr "je" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 -msgid "Post comment!" -msgstr "Afiŝi la komenton!" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:69 msgid "Edit" msgstr "Ŝanĝi" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:73 msgid "Delete" msgstr "Forigi" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:79 +#, python-format +msgid "%(comment_count)s comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:81 +#, python-format +msgid "%(comment_count)s comments" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:83 +msgid "No comments yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:91 +msgid "Add one" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:100 +msgid "" +"Type your comment here. You can use Markdown for" +" formatting." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:104 +msgid "Add this comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:126 +msgid "at" +msgstr "je" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:141 +#, python-format +msgid "

❖ Browsing media by %(username)s

" +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -519,31 +578,32 @@ msgid "Here's a spot to tell others about yourself." msgstr "Jen estas spaceto por rakonti pri vi al aliaj." #: mediagoblin/templates/mediagoblin/user_pages/user.html:101 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:118 msgid "Edit profile" msgstr "Redakti profilon" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:106 msgid "This user hasn't filled in their profile (yet)." msgstr "Ĉi tiu uzanto ne jam aldonis informojn pri si." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:125 +msgid "Change account settings" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:138 #, python-format msgid "View all of %(username)s's media" msgstr "Rigardi ĉiujn dosierojn de %(username)s'" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:151 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" "Ĝuste ĉi tie aperos viaj dosieroj, sed vi ŝajne ankoraŭ nenion alŝutis." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 -msgid "Add media" -msgstr "Aldoni dosieron" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:163 +#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72 msgid "There doesn't seem to be any media here yet..." msgstr "Ĉi tie ŝajne estas ankoraŭ neniuj dosieroj…" @@ -555,29 +615,35 @@ msgstr "flusimbolo" msgid "Atom feed" msgstr "Atom-a informfluo" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 -msgid "Newer" -msgstr "Plinovaj" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:39 +msgid "← Newer" +msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 -msgid "Older" -msgstr "Malplinovaj" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:45 +msgid "Older →" +msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +#: mediagoblin/templates/mediagoblin/utils/pagination.html:48 msgid "Go to page:" msgstr "Iri al paĝo:" +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32 +msgid "newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43 +msgid "older" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 -msgid "Tagged with" -msgstr "Markita per: " +msgid "View more media tagged with" +msgstr "" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 -msgid "and" -msgstr "kaj" - -#: mediagoblin/user_pages/forms.py:24 -msgid "Comment" -msgstr "Komento" +msgid "or" +msgstr "" #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" diff --git a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.mo index 0f7f4026aafb3f78d9f6d073c48985f57dc924e7..b9f8eeed37508b74ebf0fdc0cb3eb07e6df84ac2 100644 GIT binary patch delta 5082 zcmc)L4{TLe9l-JP+OqzELjOQ%S7;A^N?V|Pucfq5yE6WcIVh|{XGa*j@4eghvG?A6 z-g`^w6yC-Lof{^k*KJWp)VXMk%ZxO02{UdBE=GgQKMArCP$5JUoSMuf!#~mQ@4eST zVK7maz4Y~S|D1cy@BGfWzjyNfqtWD_jf9RhWw#ut=$-+QPw9E|^$?F1F$@uE!tYCoy-j zQcJNLrK87DIv&AW@M)Zhhp-M`Lh0uWK7=!-DAkMyQQ9BH62@0QCBBkr*0_q z9+q=GuP{CHIatMc2TGE*B2Cl-CUsW2<_@C-atvkW+00g+pNumYUlnmc zkZJ)g#%A1&+wnJe8W-V9)0C>l-{TPah&qIy!#Vg{ES2lUO3lR?C^KD#lGzm~_q$P+ zrWcda;cgBj1BZ}5^& z7bT;wqm1{qN1D1rSN<@Gv`lF~n+%zV=P^j@k)x=?K>?e0UV3kFI% zOYSqi`T_?8t6snsJdP4bc1=3cc9aaPMwUeC(8A#a-6gtE3Fl-G6- zN?=c-4Dc*Ure4K-{3S{zPN7WrY(4qU;~-~Yx&jtrl=BMYjZ^zkX7Ft0{3teX{uWB6 za@oQZL)C#2=mwOfFi-+|2&JE4oP>w42fvBTN&RaP`Ii(f;AL+@6A4Z|gSX-97{q_0 z%pl0{0<&m*y_6Sx_Dr1>CrqwKA7Ne*&3C<`d{1XiIG zjPIbNu9jY8X3LS~Rb421z(on@Aj(pF1?BB|5xemXT!H0`atD3}AH}aDlUMVXqytZG z=3s;iU&B4vOkOEk>if7Ae~L2G8s0IIpw^(Q?PqZizl2#hg&jK?r{PqrL`nI=i~*E( zttf#nM^#hT9I|3DGwyB=Sp#vm-qD$JZe8P!;pm`g#u+5;dOi8GOGEueyw6NOnlKz^ z(6T*${z%ViBOWrNYIXXyaYbzD>oSj;x&gc2P(!MP+iv80y=ugbQ`^rqJ=s7?EVq2 zqiC7;?V?0sIw_eI@T!W3ml-x$)ULs@1cy?O8&0FT$8^WzNS&lsAZ`whU-ga@n{)2e zVM`|I3?vek?WU*J8;R24P{P#hb>7C33NKLdWy7-Vp~dM5?2Lp>i&R9TsqC>X53+P2 zgOuoke9b2{*q|BILD^KM%_ydmYCJa3`YjtbEX}k|_1EaVU-DS45f0m?|BdztO3CSwp@tBelI7)u&SX#+z5xR{7}&DT`UQnRzY9 zb06DR_JP+^b|KkEo(&p=*=hRn8K*W$IvWyjB5Dj>o;`NZmGRS+1mA1zYGl%LJJSzm zCO7e>L_J55jM`K-;?|&!T75bqiIJ_J%G`v-ZlBqe%p|TrR_N-_mEqh_I=c{R0Yl*z2G5t*z-wZrC4bEibHk^TuoWTUB@YTGz&1mM`@#-AGx# zT_4Ey{xI*ztjmh+)s_8~`K|ezWXq+>`^EVyyuCFsZ(4EQ#1cQU;Mmgtt-POKVAS1{ zuG$}7<=57}9n3UN{YHI6CBCOF=4~sj9xL-+vb27*y8b{`a*O=hq%!?+)cY>){Y4wD zSL#PsFD~{a$LiI`RrAM+{(oEZyBqEvkC`9L2{rao{l9tD_EMkYbvOAzKd)nXyfUVn a7s>eeC0CC>`i+KdKCj(hRdKDlul@tIjkI$B delta 3534 zcmZY9du$ZP9l-H9JG^XTFpuCsz+)2}+u*}zz{UncjCs^RjRUSoh>~jVZhc;Iw`+Fy zY}^!Gl>%wfG(z2^N=5!CX+@$Y{6X%IDx!H1M-f$tP%E`1EwrMqsPsXpBK0NFet&mo z8c_@UnVp@T`OR;B&ZS$GpW@ZY!-+v!|~M^N79`6W}og);6uPFE_Y{z0Rkj{hKYs{RV4=Hi1G!#I8c zpGQ7Wb1IdZhj*ilYewnsF7@|fEzd)^7&EvGzk+w+D_DiE<095qZSC6onBe(UtY>{yHAkuW z7{vzMg0e#kWoL&=&pDKFUq?BL(ZU1~i_2K!M0OrR|MW#pea!7myA zat-;Hl%AtwKfa4nG_`Dh6%L@B;S(6cZ=hu40?LG!P!_y`auk0?neU&t9dF?x+(z1V z;-e_@zKWgrllkO7N@F%9u5lv{;iLE^d;?eG8qy${N}!K6ZpN!98CyzzSxYsd#x9ha zIZ*14qhv6PeRvclfD1Vq8)!(FJ76QyrH*1ZoMiS20P9^}TVH<6gt`?v|O;5)d4J4r@!>K8O5b=Oc9{siTWr&Bout7fAV zQzObm51`zVhfu~nfl`!DqKrFHdjDOl=lMfii#L$i)qT1cXfMu?`@fS0n^t>KipjxE zn8PpP+xQ#Yz-&?rb*$cqd+@6`h6yZNUJPs)WkXM+jDHCw>0gf$ z-~r50;3`8SjZdO1bOR-j2)`(B)r76M2_=W#^qJ*JT&Vjt}4#OroUj6?_Okz<#V_){SUm3{PVV zUdBNz=ivknq1=|=q1=kvmE`{!8k)Pc3tvOYz~51JHjBR&BttF3S-2G?zyXx&6UV(c zft&Fn?!YS2HGo4XMf+`h1ka&tU=e?G7^*rp(2%oC;5Z(~F1&>iTu%j+VK-J{4_0G8 zhNotRGqiTS3a!J=S+C9NO(u25O4=qoUeO!Qtvnvt5`IlL=d|nS6-`MKSk1obGfu)v ztG*E{@wlFFv!1q{xO+IN_gmVxoIo2#TNz`g^|&33Xrn*3cefsPJ)IaaPRe#t#g9gf z?~l7)GOGIAOos2!8MeKQo_a$^Hl5UtJ3Y|Dwv!A`H7qEzop46gGx_(c=0~a=Yy9@$ zd|7ozc~!qNX3}<&;b|+3)r8f9rB&2`HEwy~)tZ*Da^Ct_sn^$;tRLu%2@)ewHR#ed zI#CLz@K}1N4}0f%GssL}CF{d?=RLL1^2mk`Ov=~siNZI=kA}JVR@k?oCS11Qo2#?& zj2)qwpel8I^DjeyS*)ZXX&EajB#9o%^ubpGua0+RwizF z(P4i$e{*ShBy6rbv`S|k4k1fL7)^|pPo8}{u-%QT%_b^!>c=fs?SoDI4%?RQe1#pixjJ6UT?3jFr!`K}eumMhsU43eDpE={il5lM&VUu*ZVv-bkZ9&$ zauA*>Qi!K;&eAb?=5}gJeWi&=EP;onHM4)Wk>jG~B%{IPnIM}kB!_g%QOc=HMan)4 zb42xk>t#$@c2u~Ij+L;eR|&3k;(Xxdmqec{+qun8cy_!{J8~ATHixp4XNvVfJ*2Xp z@i;0LVSjSBN6dsCHffoSPS*?ElxK$7N4O%kCx0R~Hxdr6*^@uJ_L0bjeMBWIPUi2d eG2Ji0a-VF+PDl;i!Ej*yoG@ diff --git a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po index 406e1923..ab8c6b3f 100644 --- a/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/es/LC_MESSAGES/mediagoblin.po @@ -1,5 +1,5 @@ # Translations template for PROJECT. -# Copyright (C) 2011 ORGANIZATION +# Copyright (C) 2012 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # # Translators: @@ -15,9 +15,9 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-04 10:24-0600\n" -"PO-Revision-Date: 2011-12-05 23:20+0000\n" -"Last-Translator: manolinux \n" +"POT-Creation-Date: 2012-01-07 13:47-0600\n" +"PO-Revision-Date: 2012-01-07 19:44+0000\n" +"Last-Translator: cwebber \n" "Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mediagoblin/team/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -30,28 +30,15 @@ msgstr "" msgid "Invalid file given for media type." msgstr "Archivo inválido para el formato seleccionado." -#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41 msgid "Username" msgstr "Nombre de usuario" -#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45 msgid "Password" msgstr "Contraseña" -#: mediagoblin/auth/forms.py:35 -msgid "Passwords must match." -msgstr "Las contraseñas deben coincidir." - -#: mediagoblin/auth/forms.py:37 -msgid "Confirm password" -msgstr "Confirma tu contraseña" - -#: mediagoblin/auth/forms.py:39 -msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "" -"Escriba de nuevo aquí para asegurarse de que no hay faltas de ortografía." - -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:34 msgid "Email address" msgstr "Dirección de correo electrónico" @@ -67,7 +54,7 @@ msgstr "Lo sentimos, ya existe un usuario con ese nombre." msgid "Sorry, a user with that email address already exists." msgstr "Lo sentimos, ya existe un usuario con esa dirección de email." -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:180 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -75,26 +62,31 @@ msgstr "" "Tu dirección de correo electrónico ha sido verificada. ¡Ahora puedes " "ingresar, editar tu perfil, y enviar imágenes!" -#: mediagoblin/auth/views.py:185 +#: mediagoblin/auth/views.py:186 msgid "The verification key or user id is incorrect" msgstr "" "La clave de verificación o la identificación de usuario son incorrectas" -#: mediagoblin/auth/views.py:203 +#: mediagoblin/auth/views.py:204 msgid "You must be logged in so we know who to send the email to!" msgstr "" "¡Debes iniciar sesión para que podamos saber a quién le enviamos el correo " "electrónico!" -#: mediagoblin/auth/views.py:211 +#: mediagoblin/auth/views.py:212 msgid "You've already verified your email address!" msgstr "¡Ya has verificado tu dirección de correo!" -#: mediagoblin/auth/views.py:224 +#: mediagoblin/auth/views.py:225 msgid "Resent your verification email." msgstr "Se reenvió tu correo electrónico de verificación." -#: mediagoblin/auth/views.py:265 +#: mediagoblin/auth/views.py:260 +msgid "" +"An email has been sent with instructions on how to change your password." +msgstr "" + +#: mediagoblin/auth/views.py:270 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -103,48 +95,77 @@ msgstr "" "porque su nombre de usuario está inactivo o la dirección de su cuenta de " "correo electrónico no ha sido verificada." +#: mediagoblin/auth/views.py:282 +msgid "Couldn't find someone with that username or email." +msgstr "" + +#: mediagoblin/auth/views.py:330 +msgid "You can now log in using your new password." +msgstr "" + #: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Título" -#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "Descripción de esta obra" + +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35 msgid "Tags" msgstr "Etiquetas" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas." -msgstr "Separa las etiquetas con comas." +#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37 +msgid "Separate tags by commas." +msgstr "" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:37 msgid "Slug" msgstr "Ficha" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:38 msgid "The slug can't be empty" msgstr "La ficha no puede estar vacía" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:39 msgid "" -"The title part of this media's URL. You usually don't need to change this." +"The title part of this media's address. You usually don't need to change " +"this." msgstr "" -"La parte del título de la URL de este contenido. Normalmente no necesitas " -"cambiar esto." -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:46 msgid "Bio" msgstr "Bio" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:48 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:53 msgid "Website" msgstr "Sitio web" -#: mediagoblin/edit/forms.py:49 +#: mediagoblin/edit/forms.py:60 msgid "Old password" msgstr "Vieja contraseña" -#: mediagoblin/edit/forms.py:52 -msgid "New Password" -msgstr "Nueva contraseña" +#: mediagoblin/edit/forms.py:62 +msgid "Enter your old password to prove you own this account." +msgstr "" + +#: mediagoblin/edit/forms.py:65 +msgid "New password" +msgstr "" #: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." @@ -158,39 +179,43 @@ msgstr "Estás editando el contenido de otro usuario. Proceder con precaución." msgid "You are editing a user's profile. Proceed with caution." msgstr "Estás editando un perfil de usuario. Proceder con precaución." -#: mediagoblin/edit/views.py:171 +#: mediagoblin/edit/views.py:174 +msgid "Profile changes saved" +msgstr "" + +#: mediagoblin/edit/views.py:200 msgid "Wrong password" msgstr "Contraseña incorrecta" -#: mediagoblin/edit/views.py:192 -msgid "Profile edited!" -msgstr "¡Perfil editado!" +#: mediagoblin/edit/views.py:216 +msgid "Account settings saved" +msgstr "" -#: mediagoblin/media_types/__init__.py:65 -msgid "Could not find any file extension in \"{filename}\"" -msgstr "No se pudo encontrar la extensión del archivo en \"{filename}\"" +#: mediagoblin/media_types/__init__.py:77 +msgid "Could not extract any file extension from \"{filename}\"" +msgstr "" + +#: mediagoblin/media_types/__init__.py:88 +msgid "Sorry, I don't support that file type :(" +msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "Archivo" -#: mediagoblin/submit/forms.py:30 -msgid "Description of this work" -msgstr "Descripción de esta obra" - -#: mediagoblin/submit/views.py:49 +#: mediagoblin/submit/views.py:50 msgid "You must provide a file." msgstr "Debes proporcionar un archivo." -#: mediagoblin/submit/views.py:127 +#: mediagoblin/submit/views.py:128 msgid "Woohoo! Submitted!" msgstr "¡Yujú! ¡Enviado!" -#: mediagoblin/submit/views.py:133 -msgid "Invalid file type." -msgstr "Tipo de archivo inválido." +#: mediagoblin/templates/mediagoblin/404.html:22 +msgid "Image of 404 goblin stressing out" +msgstr "Imagen de 404 goblin estresándose" -#: mediagoblin/templates/mediagoblin/404.html:21 +#: mediagoblin/templates/mediagoblin/404.html:23 msgid "Oops!" msgstr "¡Ups!" @@ -206,33 +231,30 @@ msgstr "" "Si estás seguro que la dirección es correcta, puede ser que la pagina haya " "sido movida o borrada." -#: mediagoblin/templates/mediagoblin/404.html:32 -msgid "Image of 404 goblin stressing out" -msgstr "Imagen de 404 goblin estresándose" - -#: mediagoblin/templates/mediagoblin/base.html:49 +#: mediagoblin/templates/mediagoblin/base.html:48 msgid "MediaGoblin logo" msgstr "Logo de MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:54 -msgid "Submit media" -msgstr "Enviar contenido" +#: mediagoblin/templates/mediagoblin/base.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:157 +msgid "Add media" +msgstr "Añadir contenido" -#: mediagoblin/templates/mediagoblin/base.html:65 +#: mediagoblin/templates/mediagoblin/base.html:64 msgid "Verify your email!" msgstr "¡Verifica tu email!" -#: mediagoblin/templates/mediagoblin/base.html:72 +#: mediagoblin/templates/mediagoblin/base.html:71 msgid "log out" msgstr "Cerrar sesión" -#: mediagoblin/templates/mediagoblin/base.html:75 +#: mediagoblin/templates/mediagoblin/base.html:74 #: mediagoblin/templates/mediagoblin/auth/login.html:27 #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Conectarse" -#: mediagoblin/templates/mediagoblin/base.html:91 +#: mediagoblin/templates/mediagoblin/base.html:86 msgid "" "Powered by MediaGoblin, a GNU project" @@ -244,7 +266,7 @@ msgstr "" msgid "Explore" msgstr "Explorar" -#: mediagoblin/templates/mediagoblin/root.html:27 +#: mediagoblin/templates/mediagoblin/root.html:26 msgid "Hi there, welcome to this MediaGoblin site!" msgstr "Hola, ¡bienvenido a este sitio de MediaGoblin!" @@ -273,25 +295,21 @@ msgstr "¿Aún no tienes una? ¡Es fácil!" #, python-format msgid "" "Create an account at this site\n" -" or\n" -" Set up MediaGoblin on your own server" +" or\n" +" Set up MediaGoblin on your own server" msgstr "" -"Crea una cuenta en este sitio\n" -" o\n" -" Instala MediaGoblin en tu propio servidor" -#: mediagoblin/templates/mediagoblin/root.html:44 +#: mediagoblin/templates/mediagoblin/root.html:40 msgid "Most recent media" msgstr "El contenido más reciente" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 -msgid "Enter your new password" -msgstr "Ingrese su nueva contraseña" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32 +msgid "Set your new password" +msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Enviar" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35 +msgid "Set password" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" @@ -301,17 +319,6 @@ msgstr "Recuperar contraseña" msgid "Send instructions" msgstr "Enviar instrucciones" -#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "Your password has been changed. Try to log in now." -msgstr "Se cambió tu contraseña. Intenta iniciar sesión ahora." - -#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 -msgid "" -"Check your inbox. We sent an email with a URL for changing your password." -msgstr "" -"Revisa tu bandeja de entrada. Te enviamos un correo electrónico con una URL " -"para cambiar tu contraseña." - #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format msgid "" @@ -349,11 +356,11 @@ msgstr "¡Crea una aquí!" msgid "Forgot your password?" msgstr "¿Olvidaste tu contraseña?" -#: mediagoblin/templates/mediagoblin/auth/register.html:27 +#: mediagoblin/templates/mediagoblin/auth/register.html:32 msgid "Create an account!" msgstr "¡Crea una cuenta!" -#: mediagoblin/templates/mediagoblin/auth/register.html:31 +#: mediagoblin/templates/mediagoblin/auth/register.html:36 msgid "Create" msgstr "Crear" @@ -384,10 +391,16 @@ msgid "Cancel" msgstr "Cancelar" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "Guardar cambios" +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34 +#, python-format +msgid "Changing %(username)s's account settings" +msgstr "" + #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" @@ -399,13 +412,32 @@ msgstr "Editando el perfil de %(username)s" msgid "Media tagged with: %(tag_name)s" msgstr "Contenido etiquetado con: %(tag_name)s" -#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34 +#: mediagoblin/templates/mediagoblin/media_displays/video.html:46 msgid "Original" msgstr "Original" +#: mediagoblin/templates/mediagoblin/media_displays/video.html:33 +msgid "" +"Sorry, this video will not work because \n" +"\t your web browser does not support HTML5 \n" +"\t video." +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:36 +msgid "" +"You can get a modern web browser that \n" +"\t can play this video at \n" +"\t http://getfirefox.com!" +msgstr "" + #: mediagoblin/templates/mediagoblin/submit/start.html:26 -msgid "Submit yer media" -msgstr "Envía tu contenido" +msgid "Add your media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Add" +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format @@ -417,31 +449,57 @@ msgstr "Contenidos de %(username)s" msgid "%(username)s's media" msgstr "Contenido de %(username)s's" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:60 #, python-format -msgid "By %(username)s on %(date)s" -msgstr "Por %(username)s en %(date)s" +msgid "Added on %(date)s." +msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 -msgid "Post a comment" -msgstr "Pon un comentario." - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 -msgid "at" -msgstr "en" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 -msgid "Post comment!" -msgstr "¡Pon un comentario!" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:69 msgid "Edit" msgstr "Editar" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:73 msgid "Delete" msgstr "Borrar" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:79 +#, python-format +msgid "%(comment_count)s comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:81 +#, python-format +msgid "%(comment_count)s comments" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:83 +msgid "No comments yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:91 +msgid "Add one" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:100 +msgid "" +"Type your comment here. You can use Markdown for" +" formatting." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:104 +msgid "Add this comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:126 +msgid "at" +msgstr "en" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:141 +#, python-format +msgid "

❖ Browsing media by %(username)s

" +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -530,31 +588,32 @@ msgid "Here's a spot to tell others about yourself." msgstr "Aquí hay un lugar para que le cuentes a los demás sobre tí." #: mediagoblin/templates/mediagoblin/user_pages/user.html:101 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:118 msgid "Edit profile" msgstr "Editar perfil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:106 msgid "This user hasn't filled in their profile (yet)." msgstr "Este usuario (todavia) no ha completado su perfil." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:125 +msgid "Change account settings" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:138 #, python-format msgid "View all of %(username)s's media" msgstr "Ver todo el contenido de %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:151 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" "Aquí es donde tú contenido estará, pero parece que aún no has agregado nada." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 -msgid "Add media" -msgstr "Añadir contenido" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:163 +#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72 msgid "There doesn't seem to be any media here yet..." msgstr "Parece que aún no hay ningún contenido aquí..." @@ -566,29 +625,35 @@ msgstr "ícono feed" msgid "Atom feed" msgstr "Atom feed" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 -msgid "Newer" -msgstr "Recientes" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:39 +msgid "← Newer" +msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 -msgid "Older" -msgstr "Antiguas" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:45 +msgid "Older →" +msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +#: mediagoblin/templates/mediagoblin/utils/pagination.html:48 msgid "Go to page:" msgstr "Ir a la página:" +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32 +msgid "newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43 +msgid "older" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 -msgid "Tagged with" -msgstr "Etiquetado con" +msgid "View more media tagged with" +msgstr "" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 -msgid "and" -msgstr "y" - -#: mediagoblin/user_pages/forms.py:24 -msgid "Comment" -msgstr "Comentario" +msgid "or" +msgstr "" #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" diff --git a/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/fr/LC_MESSAGES/mediagoblin.mo index ed1ea35dfd4e7f0fec92acba788e6751ac127783..b805cca5c47437a8b9e7ecc3e200ccb5b3c3c0cc 100644 GIT binary patch delta 1385 zcmZY7U1$_n6u|M5Zqi+CEGDK+qD^v56F1c~iLRR%(MIbBn3mQL6e|c$cPHz#li784 zHwHzPKD45-t#mDvqTmooe)jgB2J7+eBW+R@8BCqs|{j9@))n5gx*q@jNcXa$A8(1k-dx@E_C!|DjH(F_lE!*iU;1 z&)^t7#wN1#U_*Ol{5t%W_D8rMYp6=|AHwB$5?A09>PBW4Iz(y-I*?nCrKlf*?=0Q8)4s*`(BxTo>%aEjWl9Z~|kjFH;14bkuZ- zti*oQpJ^ZJP7lubCF;*}4y*Ay+=ky{H%8tNc^~6AgrDMSyo#DPMD+}nw{S0}@G$Gk z9|Tk)JC{_B>KJ}a`zzdvU1YDrgJ|$`^Ca~y7&R@UvN9l z=ZDdg%HVtN5_~~m@DA!p{EvFHy}crz;Z_{RTlfNYFi4H!99)dGxT0JN->-`-8#GG? zR>lU4rIvi66w+Mjpq7L^=8XA#Ve6$$hda7zU8N? z@P?5QD`ES^>DGPW;7HQR5f8WhS+~}8ZQlf^jcb{Vm9kBF!2Da?p3h{v%~(3;+lHj0 zwwJRU;-G{%Gv*}i;yaz|yO^5yo*f~Z(^*op?6bY5e4%qw6|*yzZy(@e*5s^ImIZy2 zq%r3BsXUcdN6&>C*4ZXYd1gdc%BAzZN2!x@V?(Uurc+MBv0aml?hQ&G+J4H`+DKwX zgHqD5j6I(7t+bzXJT3U?$5c@A9Lp^)T5>DYzT>$)S-PvBWHM9^3yZ(^G!>Wk{@faz Y7AKMRY|TF6=Eo%&lxTbQxRdte3G^-jDF6Tf delta 1130 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 O7m0Ur0!l2b*?(GqZDM z=6v5b{l59z#^|*{$*(DXI{6#U-`7df`{(CSic*i!J&ZZ{5njj7u^dmPD%BrvVkQ28 zv(Urf1nffjzMBtO`WVW*llX{IQFWWfOa}f!)>Jdol*+^fSbW&9$^un5 z7^fgp)FLd!<=BOy_o{Hkqy$ozM*h`)sNLk1f01WM85 z^7^GX7bS;lumWF4iO4CG1<#^vcm*XDKccL62dCp*9D+{~wpq9oW!(cf5ie#Fe;17b zl(@#p*nmrM9Uj4Q97h-=QeF(Bg|&DUC1QERm%Y>&)Hn&HW}b_WH=#tZ4eN0O$^lMA zY1Gh=W6prd$dKBA)wmlaRF_bS>1UKw4P$T_PC^gvM7ds{VIrPIE|fZta*!){IDzYp zyp!5aSXoL%_tUse<2cHj?jII=um>yYe}NLZT>d#sKrhO|Z=h`WF3P<9@$qXY*ZDh? z$apxdq^JfZg>!HKARd;Ae5y>T$iJ2%lEeGT3u5HN)aZGjLlC)8P7)&ynu4zZ%`JziE^KBq2zGNm{?IR#!~uwa3Y>Yxz7E@#;)Obl-;22YBypv zzJ(I0%P6&UvxbJ`Dv#bWtUab}?v|(#AU|4?LZbe$Pp%*Wlqnm>v?QJ#e7RzplJ+#sYhuec8pG(yT0|A~xyV(i_ z^u2EwX!HBD9ULCf&6e$B;Z7QUQ=1(T(+*pl%Ceo5^ex>Vr)MXm+h%*;v)%JXRVAgZ zGW?dW_YtQe%NaO7zNMOLwwod6YF4ph6uN5qhVM1PI?xu5=ztONwz|~(AZl}z0Wt!_2Ky2&){SW--%OE-i%Wdnb(g`l!# zyGt3iPZ<%_Y;r!!8?=>t8ElI<{qkO(P*GOlDRYn474B-!_%e5;+nqLlUfDu(l_iNO zn?|uzYmd94Z(e1!XPk39?>FbY)NJSOh_(N=^87~V;TK=<{?(_Y{2o|+86yWjp!(L1 kee?d+S5pzM$^Svk`4ay_z4f?eIMwAp^wry(hgfgwZ&hnu&;S4c diff --git a/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.po index 512635e3..56f74573 100644 --- a/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ia/LC_MESSAGES/mediagoblin.po @@ -1,5 +1,5 @@ # Translations template for PROJECT. -# Copyright (C) 2011 ORGANIZATION +# Copyright (C) 2012 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # # Translators: @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-04 10:24-0600\n" -"PO-Revision-Date: 2011-12-04 16:23+0000\n" +"POT-Creation-Date: 2012-01-07 13:47-0600\n" +"PO-Revision-Date: 2012-01-07 19:44+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -23,27 +23,15 @@ msgstr "" msgid "Invalid file given for media type." msgstr "" -#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41 msgid "Username" msgstr "Nomine de usator" -#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45 msgid "Password" msgstr "Contrasigno" -#: mediagoblin/auth/forms.py:35 -msgid "Passwords must match." -msgstr "" - -#: mediagoblin/auth/forms.py:37 -msgid "Confirm password" -msgstr "" - -#: mediagoblin/auth/forms.py:39 -msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "" - -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:34 msgid "Email address" msgstr "Adresse de e-posta" @@ -59,73 +47,109 @@ msgstr "" msgid "Sorry, a user with that email address already exists." msgstr "" -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:180 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "" -#: mediagoblin/auth/views.py:185 +#: mediagoblin/auth/views.py:186 msgid "The verification key or user id is incorrect" msgstr "" -#: mediagoblin/auth/views.py:203 +#: mediagoblin/auth/views.py:204 msgid "You must be logged in so we know who to send the email to!" msgstr "" -#: mediagoblin/auth/views.py:211 +#: mediagoblin/auth/views.py:212 msgid "You've already verified your email address!" msgstr "" -#: mediagoblin/auth/views.py:224 +#: mediagoblin/auth/views.py:225 msgid "Resent your verification email." msgstr "" -#: mediagoblin/auth/views.py:265 +#: mediagoblin/auth/views.py:260 +msgid "" +"An email has been sent with instructions on how to change your password." +msgstr "" + +#: mediagoblin/auth/views.py:270 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" +#: mediagoblin/auth/views.py:282 +msgid "Couldn't find someone with that username or email." +msgstr "" + +#: mediagoblin/auth/views.py:330 +msgid "You can now log in using your new password." +msgstr "" + #: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Titulo" -#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35 msgid "Tags" msgstr "" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas." +#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37 +msgid "Separate tags by commas." msgstr "" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:37 msgid "Slug" msgstr "" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:38 msgid "The slug can't be empty" msgstr "" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:39 msgid "" -"The title part of this media's URL. You usually don't need to change this." +"The title part of this media's address. You usually don't need to change " +"this." msgstr "" -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:46 msgid "Bio" msgstr "" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:48 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:53 msgid "Website" msgstr "Sito web" -#: mediagoblin/edit/forms.py:49 +#: mediagoblin/edit/forms.py:60 msgid "Old password" msgstr "" -#: mediagoblin/edit/forms.py:52 -msgid "New Password" +#: mediagoblin/edit/forms.py:62 +msgid "Enter your old password to prove you own this account." +msgstr "" + +#: mediagoblin/edit/forms.py:65 +msgid "New password" msgstr "" #: mediagoblin/edit/views.py:65 @@ -140,39 +164,43 @@ msgstr "" msgid "You are editing a user's profile. Proceed with caution." msgstr "" -#: mediagoblin/edit/views.py:171 +#: mediagoblin/edit/views.py:174 +msgid "Profile changes saved" +msgstr "" + +#: mediagoblin/edit/views.py:200 msgid "Wrong password" msgstr "" -#: mediagoblin/edit/views.py:192 -msgid "Profile edited!" +#: mediagoblin/edit/views.py:216 +msgid "Account settings saved" msgstr "" -#: mediagoblin/media_types/__init__.py:65 -msgid "Could not find any file extension in \"{filename}\"" +#: mediagoblin/media_types/__init__.py:77 +msgid "Could not extract any file extension from \"{filename}\"" +msgstr "" + +#: mediagoblin/media_types/__init__.py:88 +msgid "Sorry, I don't support that file type :(" msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "" -#: mediagoblin/submit/forms.py:30 -msgid "Description of this work" -msgstr "" - -#: mediagoblin/submit/views.py:49 +#: mediagoblin/submit/views.py:50 msgid "You must provide a file." msgstr "" -#: mediagoblin/submit/views.py:127 +#: mediagoblin/submit/views.py:128 msgid "Woohoo! Submitted!" msgstr "" -#: mediagoblin/submit/views.py:133 -msgid "Invalid file type." +#: mediagoblin/templates/mediagoblin/404.html:22 +msgid "Image of 404 goblin stressing out" msgstr "" -#: mediagoblin/templates/mediagoblin/404.html:21 +#: mediagoblin/templates/mediagoblin/404.html:23 msgid "Oops!" msgstr "" @@ -186,33 +214,30 @@ msgid "" " been moved or deleted." msgstr "" -#: mediagoblin/templates/mediagoblin/404.html:32 -msgid "Image of 404 goblin stressing out" -msgstr "" - -#: mediagoblin/templates/mediagoblin/base.html:49 +#: mediagoblin/templates/mediagoblin/base.html:48 msgid "MediaGoblin logo" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:54 -msgid "Submit media" +#: mediagoblin/templates/mediagoblin/base.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:157 +msgid "Add media" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:65 +#: mediagoblin/templates/mediagoblin/base.html:64 msgid "Verify your email!" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:72 +#: mediagoblin/templates/mediagoblin/base.html:71 msgid "log out" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:75 +#: mediagoblin/templates/mediagoblin/base.html:74 #: mediagoblin/templates/mediagoblin/auth/login.html:27 #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Initiar session" -#: mediagoblin/templates/mediagoblin/base.html:91 +#: mediagoblin/templates/mediagoblin/base.html:86 msgid "" "Powered by MediaGoblin, a GNU project" @@ -222,7 +247,7 @@ msgstr "" msgid "Explore" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:27 +#: mediagoblin/templates/mediagoblin/root.html:26 msgid "Hi there, welcome to this MediaGoblin site!" msgstr "" @@ -246,21 +271,20 @@ msgstr "" #, python-format msgid "" "Create an account at this site\n" -" or\n" -" Set up MediaGoblin on your own server" +" or\n" +" Set up MediaGoblin on your own server" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:44 +#: mediagoblin/templates/mediagoblin/root.html:40 msgid "Most recent media" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 -msgid "Enter your new password" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32 +msgid "Set your new password" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35 +msgid "Set password" msgstr "" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 @@ -271,15 +295,6 @@ msgstr "" msgid "Send instructions" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "Your password has been changed. Try to log in now." -msgstr "" - -#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 -msgid "" -"Check your inbox. We sent an email with a URL for changing your password." -msgstr "" - #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format msgid "" @@ -310,11 +325,11 @@ msgstr "" msgid "Forgot your password?" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/register.html:27 +#: mediagoblin/templates/mediagoblin/auth/register.html:32 msgid "Create an account!" msgstr "Crear un conto!" -#: mediagoblin/templates/mediagoblin/auth/register.html:31 +#: mediagoblin/templates/mediagoblin/auth/register.html:36 msgid "Create" msgstr "" @@ -340,10 +355,16 @@ msgid "Cancel" msgstr "Cancellar" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "" +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34 +#, python-format +msgid "Changing %(username)s's account settings" +msgstr "" + #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" @@ -355,12 +376,31 @@ msgstr "" msgid "Media tagged with: %(tag_name)s" msgstr "" -#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34 +#: mediagoblin/templates/mediagoblin/media_displays/video.html:46 msgid "Original" msgstr "" +#: mediagoblin/templates/mediagoblin/media_displays/video.html:33 +msgid "" +"Sorry, this video will not work because \n" +"\t your web browser does not support HTML5 \n" +"\t video." +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:36 +msgid "" +"You can get a modern web browser that \n" +"\t can play this video at \n" +"\t http://getfirefox.com!" +msgstr "" + #: mediagoblin/templates/mediagoblin/submit/start.html:26 -msgid "Submit yer media" +msgid "Add your media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Add" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 @@ -373,31 +413,57 @@ msgstr "" msgid "%(username)s's media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:60 #, python-format -msgid "By %(username)s on %(date)s" +msgid "Added on %(date)s." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 -msgid "Post a comment" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 -msgid "at" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 -msgid "Post comment!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:69 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:73 msgid "Delete" msgstr "" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:79 +#, python-format +msgid "%(comment_count)s comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:81 +#, python-format +msgid "%(comment_count)s comments" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:83 +msgid "No comments yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:91 +msgid "Add one" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:100 +msgid "" +"Type your comment here. You can use Markdown for" +" formatting." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:104 +msgid "Add this comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:126 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:141 +#, python-format +msgid "

❖ Browsing media by %(username)s

" +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -478,30 +544,31 @@ msgid "Here's a spot to tell others about yourself." msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:101 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:118 msgid "Edit profile" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:106 msgid "This user hasn't filled in their profile (yet)." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:125 +msgid "Change account settings" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:138 #, python-format msgid "View all of %(username)s's media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:151 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 -msgid "Add media" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:163 +#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72 msgid "There doesn't seem to be any media here yet..." msgstr "" @@ -513,30 +580,36 @@ msgstr "" msgid "Atom feed" msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 -msgid "Newer" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:39 +msgid "← Newer" msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 -msgid "Older" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:45 +msgid "Older →" msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +#: mediagoblin/templates/mediagoblin/utils/pagination.html:48 msgid "Go to page:" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32 +msgid "newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43 +msgid "older" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 -msgid "Tagged with" +msgid "View more media tagged with" msgstr "" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 -msgid "and" +msgid "or" msgstr "" -#: mediagoblin/user_pages/forms.py:24 -msgid "Comment" -msgstr "Commento" - #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" msgstr "" diff --git a/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.mo index 1319a6058478deda7a3c86b62aaeb505fd741f87..d5fb3eacad7f7934101a5761139174c17951e2b3 100644 GIT binary patch literal 13574 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 diff --git a/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po index 96d1f0a2..6a8b8b65 100644 --- a/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/it/LC_MESSAGES/mediagoblin.po @@ -1,15 +1,16 @@ # Translations template for PROJECT. -# Copyright (C) 2011 ORGANIZATION +# Copyright (C) 2012 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # # Translators: +# , 2011. # , 2011. msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-04 10:24-0600\n" -"PO-Revision-Date: 2011-12-04 16:23+0000\n" +"POT-Creation-Date: 2012-01-07 13:47-0600\n" +"PO-Revision-Date: 2012-01-07 19:44+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -23,27 +24,15 @@ msgstr "" msgid "Invalid file given for media type." msgstr "documento non valido come tipo multimediale." -#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41 msgid "Username" msgstr "Nome utente" -#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45 msgid "Password" msgstr "Password" -#: mediagoblin/auth/forms.py:35 -msgid "Passwords must match." -msgstr "Le password devono coincidere" - -#: mediagoblin/auth/forms.py:37 -msgid "Confirm password" -msgstr "Conferma password" - -#: mediagoblin/auth/forms.py:39 -msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "Scrivilo ancora qui per assicurarti che non ci siano errori" - -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:34 msgid "Email address" msgstr "Indirizzo email" @@ -57,9 +46,9 @@ msgstr "Spiacente, esiste già un utente con quel nome" #: mediagoblin/auth/views.py:77 msgid "Sorry, a user with that email address already exists." -msgstr "" +msgstr "Siamo spiacenti, un utente con quell'indirizzo email esiste già." -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:180 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -67,67 +56,106 @@ msgstr "" "Il tuo indirizzo email è stato verificato. Puoi ora fare login, modificare " "il tuo profilo, e inserire immagini!" -#: mediagoblin/auth/views.py:185 +#: mediagoblin/auth/views.py:186 msgid "The verification key or user id is incorrect" msgstr "La chiave di verifica o l'id utente è sbagliato" -#: mediagoblin/auth/views.py:203 +#: mediagoblin/auth/views.py:204 msgid "You must be logged in so we know who to send the email to!" msgstr "" +"Devi entrare col tuo profilo così possiamo sapere a chi inviare l'email!" -#: mediagoblin/auth/views.py:211 +#: mediagoblin/auth/views.py:212 msgid "You've already verified your email address!" -msgstr "" +msgstr "Hai già verificato il tuo indirizzo email!" -#: mediagoblin/auth/views.py:224 +#: mediagoblin/auth/views.py:225 msgid "Resent your verification email." msgstr "Rispedisci email di verifica" -#: mediagoblin/auth/views.py:265 +#: mediagoblin/auth/views.py:260 +msgid "" +"An email has been sent with instructions on how to change your password." +msgstr "" + +#: mediagoblin/auth/views.py:270 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" +"Impossibile inviare l'email di recupero password perchè il tuo nome utente è" +" inattivo o il tuo account email non è stato verificato." + +#: mediagoblin/auth/views.py:282 +msgid "Couldn't find someone with that username or email." +msgstr "" + +#: mediagoblin/auth/views.py:330 +msgid "You can now log in using your new password." +msgstr "" #: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Titolo" -#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "Descrizione di questo lavoro" + +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35 msgid "Tags" msgstr "Tags" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas." +#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37 +msgid "Separate tags by commas." msgstr "" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:37 msgid "Slug" msgstr "" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:38 msgid "The slug can't be empty" msgstr "" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:39 msgid "" -"The title part of this media's URL. You usually don't need to change this." +"The title part of this media's address. You usually don't need to change " +"this." msgstr "" -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:46 msgid "Bio" msgstr "Bio" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:48 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:53 msgid "Website" msgstr "Sito web" -#: mediagoblin/edit/forms.py:49 +#: mediagoblin/edit/forms.py:60 msgid "Old password" +msgstr "Password vecchia" + +#: mediagoblin/edit/forms.py:62 +msgid "Enter your old password to prove you own this account." msgstr "" -#: mediagoblin/edit/forms.py:52 -msgid "New Password" +#: mediagoblin/edit/forms.py:65 +msgid "New password" msgstr "" #: mediagoblin/edit/views.py:65 @@ -144,39 +172,43 @@ msgstr "" msgid "You are editing a user's profile. Proceed with caution." msgstr "Stai modificando il profilo di un utente. Procedi con attenzione." -#: mediagoblin/edit/views.py:171 +#: mediagoblin/edit/views.py:174 +msgid "Profile changes saved" +msgstr "" + +#: mediagoblin/edit/views.py:200 msgid "Wrong password" +msgstr "Password errata" + +#: mediagoblin/edit/views.py:216 +msgid "Account settings saved" msgstr "" -#: mediagoblin/edit/views.py:192 -msgid "Profile edited!" +#: mediagoblin/media_types/__init__.py:77 +msgid "Could not extract any file extension from \"{filename}\"" msgstr "" -#: mediagoblin/media_types/__init__.py:65 -msgid "Could not find any file extension in \"{filename}\"" +#: mediagoblin/media_types/__init__.py:88 +msgid "Sorry, I don't support that file type :(" msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "Documento" -#: mediagoblin/submit/forms.py:30 -msgid "Description of this work" -msgstr "Descrizione di questo lavoro" - -#: mediagoblin/submit/views.py:49 +#: mediagoblin/submit/views.py:50 msgid "You must provide a file." msgstr "Devi specificare un documento." -#: mediagoblin/submit/views.py:127 +#: mediagoblin/submit/views.py:128 msgid "Woohoo! Submitted!" msgstr "Evviva! " -#: mediagoblin/submit/views.py:133 -msgid "Invalid file type." -msgstr "" +#: mediagoblin/templates/mediagoblin/404.html:22 +msgid "Image of 404 goblin stressing out" +msgstr "Immagine di 404 folletti che stressano" -#: mediagoblin/templates/mediagoblin/404.html:21 +#: mediagoblin/templates/mediagoblin/404.html:23 msgid "Oops!" msgstr "Oops!" @@ -192,33 +224,30 @@ msgstr "" "Se sei sicuro che l'indirizzo è corretto, forse la pagina che stai cercando " "è stata spostata o cancellata." -#: mediagoblin/templates/mediagoblin/404.html:32 -msgid "Image of 404 goblin stressing out" -msgstr "Immagine di 404 folletti che stressano" - -#: mediagoblin/templates/mediagoblin/base.html:49 +#: mediagoblin/templates/mediagoblin/base.html:48 msgid "MediaGoblin logo" msgstr "MediaGoblin logo" -#: mediagoblin/templates/mediagoblin/base.html:54 -msgid "Submit media" -msgstr "Inoltra file multimediale" +#: mediagoblin/templates/mediagoblin/base.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:157 +msgid "Add media" +msgstr "Aggiungi documenti multimediali" -#: mediagoblin/templates/mediagoblin/base.html:65 +#: mediagoblin/templates/mediagoblin/base.html:64 msgid "Verify your email!" -msgstr "" +msgstr "Verifica la tua email!" -#: mediagoblin/templates/mediagoblin/base.html:72 +#: mediagoblin/templates/mediagoblin/base.html:71 msgid "log out" -msgstr "" +msgstr "disconnettiti" -#: mediagoblin/templates/mediagoblin/base.html:75 +#: mediagoblin/templates/mediagoblin/base.html:74 #: mediagoblin/templates/mediagoblin/auth/login.html:27 #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Accedi" -#: mediagoblin/templates/mediagoblin/base.html:91 +#: mediagoblin/templates/mediagoblin/base.html:86 msgid "" "Powered by MediaGoblin, a GNU project" @@ -230,63 +259,58 @@ msgstr "" msgid "Explore" msgstr "Esplora" -#: mediagoblin/templates/mediagoblin/root.html:27 +#: mediagoblin/templates/mediagoblin/root.html:26 msgid "Hi there, welcome to this MediaGoblin site!" -msgstr "" +msgstr "Ciao, benvenuto a questo sito MediaGoblin!" #: mediagoblin/templates/mediagoblin/root.html:28 msgid "" "This site is running MediaGoblin, an " "extraordinarily great piece of media hosting software." msgstr "" +"questo sito sta utilizzando Mediagoblin, un ottimo programma di " +"media hosting." #: mediagoblin/templates/mediagoblin/root.html:29 msgid "" "To add your own media, place comments, save your favourites and more, you " "can log in with your MediaGoblin account." msgstr "" +"Per aggiungere i tuoi file, scrivere commenti, salvare i tuoi preferiti e " +"altro, devi entrare col tuo profilo MediaGoblin." #: mediagoblin/templates/mediagoblin/root.html:31 msgid "Don't have one yet? It's easy!" -msgstr "" +msgstr "Non ne hai già uno? E' semplice!" #: mediagoblin/templates/mediagoblin/root.html:32 #, python-format msgid "" "Create an account at this site\n" -" or\n" -" Set up MediaGoblin on your own server" +" or\n" +" Set up MediaGoblin on your own server" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:44 +#: mediagoblin/templates/mediagoblin/root.html:40 msgid "Most recent media" msgstr "Documenti multimediali più recenti" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 -msgid "Enter your new password" -msgstr "Inserisci la tua nuova password" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32 +msgid "Set your new password" +msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Conferma" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35 +msgid "Set password" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" -msgstr "" +msgstr "Recupera Password" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 msgid "Send instructions" -msgstr "" - -#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "Your password has been changed. Try to log in now." -msgstr "" - -#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 -msgid "" -"Check your inbox. We sent an email with a URL for changing your password." -msgstr "" +msgstr "Invia istruzioni" #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format @@ -301,6 +325,14 @@ msgid "" "If you think this is an error, just ignore this email and continue being\n" "a happy goblin!" msgstr "" +"Ciao %(username)s,\n" +"per cambiare la tua password MediaGoblin apri il seguente URL\n" +"nel tuo web browser:\n" +"\n" +"%(verification_url)s\n" +"\n" +"Se pensi che sia un errore, ignora semplicemente questa email e continua ad essere \n" +"un goblin felice!" #: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" @@ -318,11 +350,11 @@ msgstr "Creane uno qui!" msgid "Forgot your password?" msgstr "Hai dimenticato la password?" -#: mediagoblin/templates/mediagoblin/auth/register.html:27 +#: mediagoblin/templates/mediagoblin/auth/register.html:32 msgid "Create an account!" msgstr "Crea un account!" -#: mediagoblin/templates/mediagoblin/auth/register.html:31 +#: mediagoblin/templates/mediagoblin/auth/register.html:36 msgid "Create" msgstr "Crea" @@ -353,10 +385,16 @@ msgid "Cancel" msgstr "Annulla" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "Salva i cambiamenti" +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34 +#, python-format +msgid "Changing %(username)s's account settings" +msgstr "" + #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" @@ -366,49 +404,94 @@ msgstr "Stai modificando il profilo di %(username)s" #: mediagoblin/templates/mediagoblin/listings/tag.html:35 #, python-format msgid "Media tagged with: %(tag_name)s" +msgstr "file taggato con:%(tag_name)s" + +#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34 +#: mediagoblin/templates/mediagoblin/media_displays/video.html:46 +msgid "Original" +msgstr "Originale" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:33 +msgid "" +"Sorry, this video will not work because \n" +"\t your web browser does not support HTML5 \n" +"\t video." msgstr "" -#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 -msgid "Original" +#: mediagoblin/templates/mediagoblin/media_displays/video.html:36 +msgid "" +"You can get a modern web browser that \n" +"\t can play this video at \n" +"\t http://getfirefox.com!" msgstr "" #: mediagoblin/templates/mediagoblin/submit/start.html:26 -msgid "Submit yer media" -msgstr "Inoltra documento multimediale" +msgid "Add your media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Add" +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" -msgstr "" +msgstr "file di %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" msgstr "Documenti multimediali di %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:60 #, python-format -msgid "By %(username)s on %(date)s" +msgid "Added on %(date)s." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 -msgid "Post a comment" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 -msgid "at" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 -msgid "Post comment!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:69 msgid "Edit" +msgstr "Modifica" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:73 +msgid "Delete" +msgstr "Elimina" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:79 +#, python-format +msgid "%(comment_count)s comment" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 -msgid "Delete" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:81 +#, python-format +msgid "%(comment_count)s comments" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:83 +msgid "No comments yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:91 +msgid "Add one" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:100 +msgid "" +"Type your comment here. You can use Markdown for" +" formatting." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:104 +msgid "Add this comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:126 +msgid "at" +msgstr "a" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:141 +#, python-format +msgid "

❖ Browsing media by %(username)s

" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 @@ -496,20 +579,24 @@ msgid "Here's a spot to tell others about yourself." msgstr "Ecco un posto dove raccontare agli altri di te." #: mediagoblin/templates/mediagoblin/user_pages/user.html:101 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:118 msgid "Edit profile" msgstr "Modifica profilo" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:106 msgid "This user hasn't filled in their profile (yet)." msgstr "Questo utente non ha (ancora) compilato il proprio profilo." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:125 +msgid "Change account settings" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:138 #, python-format msgid "View all of %(username)s's media" msgstr "Visualizza tutti i file multimediali di %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:151 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." @@ -517,11 +604,8 @@ msgstr "" "Questo è dove i tuoi documenti multimediali appariranno, ma sembra che tu " "non abbia ancora aggiunto niente." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 -msgid "Add media" -msgstr "Aggiungi documenti multimediali" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:163 +#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72 msgid "There doesn't seem to be any media here yet..." msgstr "Non sembra ci sia ancora nessun documento multimediali qui.." @@ -533,49 +617,56 @@ msgstr "feed icon" msgid "Atom feed" msgstr "Atom feed" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 -msgid "Newer" -msgstr "Più nuovo" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:39 +msgid "← Newer" +msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 -msgid "Older" -msgstr "Più vecchio" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:45 +msgid "Older →" +msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +#: mediagoblin/templates/mediagoblin/utils/pagination.html:48 msgid "Go to page:" +msgstr "Vai alla pagina:" + +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32 +msgid "newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43 +msgid "older" msgstr "" #: mediagoblin/templates/mediagoblin/utils/tags.html:20 -msgid "Tagged with" +msgid "View more media tagged with" msgstr "" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 -msgid "and" +msgid "or" msgstr "" -#: mediagoblin/user_pages/forms.py:24 -msgid "Comment" -msgstr "Commento" - #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" msgstr "Sono sicuro di volerlo cancellare" #: mediagoblin/user_pages/views.py:155 msgid "Oops, your comment was empty." -msgstr "" +msgstr "Oops, il tuo commento era vuoto." #: mediagoblin/user_pages/views.py:161 msgid "Your comment has been posted!" -msgstr "" +msgstr "Il tuo commento è stato aggiunto!" #: mediagoblin/user_pages/views.py:183 msgid "You deleted the media." -msgstr "" +msgstr "Hai cancellato il file" #: mediagoblin/user_pages/views.py:190 msgid "The media was not deleted because you didn't check that you were sure." msgstr "" +"Il file non è stato eliminato perchè non hai confermato di essere sicuro." #: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." diff --git a/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ja/LC_MESSAGES/mediagoblin.mo index 39f3595b0100e5d851603afe8bcd22c4bbe6c03a..21aeed269a18be785d89a6011b4755121c70ed0f 100644 GIT binary patch literal 13736 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 delta 3284 zcmcK4du&rx9Ki82rjEyWYy+II!I{dVgO;|8F(znmhyis1Vo)QFyY_Co(B6`^V@!i( z>vW2bDA#8Ui9<7qZ>{l#1~7(@Xf$d>4bDF-I^Rwc-|_MNwO1rWV~o0N{hV`p?m6fF ze!sI_8wM{;y;pkNt%{#c{wnx8TqwOiejY4RYCPSCa3a2dgZK{4!F|J(8i8M7E&hbd zG05ON+=B9bh7Vc#d6aqk@C2n&>U$c?82A-gQ!N{*)Hqy;0c^(0@fPF(HFlIzr8p5~ zo(E;T-W^|z<@8tMB#hz|yatcM`>+@v#1q+HJ>yPz4M+3E5T1m;I<34Vc`AvbtDjOI(3UxqSXjWRwTQ_@&OqY@jC^eMx2J<6LV zki)8LQ6h8)wqZZAmm15i67s3Ykg7w8;4+j0hEO(6Bfsh25) z<-GoEY(&Z76&S$VP$F^wWx-cbHhdQ)6`!N5_X94)U+_dci?A)nwJ7WE!uj}S8S(eg z7)^<5T!^c2EpElfaSqNU3=*jjCeXq&Z~!G@mBg35)O6Ii0HtOwamSlcBG`@%*n@I_ z11TD((U4=F4GWPW)r0kT7fPrOq7>7YD5;vv;AOY~gLntZ^?C`1;j74nQm>;N*5R&qJnLtTUt!X!$Ld)@wxC=2xATznS!RbTKSxgJf0 z$@8VIK9qUOk?g1|QHt>vBzWp!l!NWZV!8jX(2$9TP>Sd)lp^^Vd$C&Q@AKm*DcDw( zuj(gp6a9lI_xU{TE=~0q%7NZMe$|(J$cvSpl8@LllztGU{?u7CB!F zP(rSz+rkj#9wlK z5v$4qO|F|!QgJiN_d9SY-ivaOPf_l3(aikqS%vfI--vRZ_oK#dP&SMkVlg;=9*oY0d7A@?<5RRgN&c+x@s-D7n zdsWlG*3LCkcb3jb z=%^XC47E5M&bORFz1SHy>gs|solCSQrDL|9HZyD_O;18K7vt%hamHZ#svG0wSx zh__28H)PPVV>+?Xj6@{NQ7e&TO2XMveundQ`6tec!6nY5nnq`0#S70_K3t^IXm622}CP%bFF#xxP ze|@mV>#z0uN3J;EyUN^TNuIn*2v5BZ`U6Mi)z$~+I(sUIoWoQ4j;hApBaSY@I;X8_ z-=7s>w)>%M`krh$lkMJ}O+WBIRAV-MbGG}LZ2FOG`nhcS+N`&G`{2%JKf3>hBW3xw zRk`kz)?=#j>r>A=rYh@Z-udTM>2sEP##J4AimvMqKfU#%-Y2qMw`aThvt2#T)|!fn ze^9EkoL@aHe^IVGs@J>aIwjLIYf{0IkGFOm-qWYD-5H5=`s&\n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -23,27 +23,15 @@ msgstr "" msgid "Invalid file given for media type." msgstr "" -#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41 msgid "Username" msgstr "ユーザネーム" -#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45 msgid "Password" msgstr "パスワード" -#: mediagoblin/auth/forms.py:35 -msgid "Passwords must match." -msgstr "パスワードが一致している必要があります。" - -#: mediagoblin/auth/forms.py:37 -msgid "Confirm password" -msgstr "パスワードを確認" - -#: mediagoblin/auth/forms.py:39 -msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "" - -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:34 msgid "Email address" msgstr "メールアドレス" @@ -59,73 +47,109 @@ msgstr "申し訳ありませんが、その名前を持つユーザーがすで msgid "Sorry, a user with that email address already exists." msgstr "" -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:180 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "メアドが確認されています。これで、ログインしてプロファイルを編集し、画像を提出することができます!" -#: mediagoblin/auth/views.py:185 +#: mediagoblin/auth/views.py:186 msgid "The verification key or user id is incorrect" msgstr "検証キーまたはユーザーIDが間違っています" -#: mediagoblin/auth/views.py:203 +#: mediagoblin/auth/views.py:204 msgid "You must be logged in so we know who to send the email to!" msgstr "" -#: mediagoblin/auth/views.py:211 +#: mediagoblin/auth/views.py:212 msgid "You've already verified your email address!" msgstr "" -#: mediagoblin/auth/views.py:224 +#: mediagoblin/auth/views.py:225 msgid "Resent your verification email." msgstr "検証メールを再送しました。" -#: mediagoblin/auth/views.py:265 +#: mediagoblin/auth/views.py:260 +msgid "" +"An email has been sent with instructions on how to change your password." +msgstr "" + +#: mediagoblin/auth/views.py:270 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" +#: mediagoblin/auth/views.py:282 +msgid "Couldn't find someone with that username or email." +msgstr "" + +#: mediagoblin/auth/views.py:330 +msgid "You can now log in using your new password." +msgstr "" + #: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "タイトル" -#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35 msgid "Tags" msgstr "タグ" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas." +#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37 +msgid "Separate tags by commas." msgstr "" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:37 msgid "Slug" msgstr "スラグ" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:38 msgid "The slug can't be empty" msgstr "スラグは必要です。" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:39 msgid "" -"The title part of this media's URL. You usually don't need to change this." +"The title part of this media's address. You usually don't need to change " +"this." msgstr "" -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:46 msgid "Bio" msgstr "自己紹介" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:48 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:53 msgid "Website" msgstr "URL" -#: mediagoblin/edit/forms.py:49 +#: mediagoblin/edit/forms.py:60 msgid "Old password" msgstr "" -#: mediagoblin/edit/forms.py:52 -msgid "New Password" +#: mediagoblin/edit/forms.py:62 +msgid "Enter your old password to prove you own this account." +msgstr "" + +#: mediagoblin/edit/forms.py:65 +msgid "New password" msgstr "" #: mediagoblin/edit/views.py:65 @@ -140,39 +164,43 @@ msgstr "あなたは、他のユーザーのメディアを編集しています msgid "You are editing a user's profile. Proceed with caution." msgstr "あなたは、他のユーザーのプロファイルを編集しています。ご注意ください。" -#: mediagoblin/edit/views.py:171 +#: mediagoblin/edit/views.py:174 +msgid "Profile changes saved" +msgstr "" + +#: mediagoblin/edit/views.py:200 msgid "Wrong password" msgstr "" -#: mediagoblin/edit/views.py:192 -msgid "Profile edited!" +#: mediagoblin/edit/views.py:216 +msgid "Account settings saved" msgstr "" -#: mediagoblin/media_types/__init__.py:65 -msgid "Could not find any file extension in \"{filename}\"" +#: mediagoblin/media_types/__init__.py:77 +msgid "Could not extract any file extension from \"{filename}\"" +msgstr "" + +#: mediagoblin/media_types/__init__.py:88 +msgid "Sorry, I don't support that file type :(" msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "ファイル" -#: mediagoblin/submit/forms.py:30 -msgid "Description of this work" -msgstr "" - -#: mediagoblin/submit/views.py:49 +#: mediagoblin/submit/views.py:50 msgid "You must provide a file." msgstr "ファイルを提供する必要があります。" -#: mediagoblin/submit/views.py:127 +#: mediagoblin/submit/views.py:128 msgid "Woohoo! Submitted!" msgstr "投稿終了!" -#: mediagoblin/submit/views.py:133 -msgid "Invalid file type." +#: mediagoblin/templates/mediagoblin/404.html:22 +msgid "Image of 404 goblin stressing out" msgstr "" -#: mediagoblin/templates/mediagoblin/404.html:21 +#: mediagoblin/templates/mediagoblin/404.html:23 msgid "Oops!" msgstr "" @@ -186,33 +214,30 @@ msgid "" " been moved or deleted." msgstr "" -#: mediagoblin/templates/mediagoblin/404.html:32 -msgid "Image of 404 goblin stressing out" -msgstr "" - -#: mediagoblin/templates/mediagoblin/base.html:49 +#: mediagoblin/templates/mediagoblin/base.html:48 msgid "MediaGoblin logo" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:54 -msgid "Submit media" -msgstr "コンテンツを投稿" +#: mediagoblin/templates/mediagoblin/base.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:157 +msgid "Add media" +msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:65 +#: mediagoblin/templates/mediagoblin/base.html:64 msgid "Verify your email!" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:72 +#: mediagoblin/templates/mediagoblin/base.html:71 msgid "log out" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:75 +#: mediagoblin/templates/mediagoblin/base.html:74 #: mediagoblin/templates/mediagoblin/auth/login.html:27 #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "ログイン" -#: mediagoblin/templates/mediagoblin/base.html:91 +#: mediagoblin/templates/mediagoblin/base.html:86 msgid "" "Powered by MediaGoblin, a GNU project" @@ -222,7 +247,7 @@ msgstr "" msgid "Explore" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:27 +#: mediagoblin/templates/mediagoblin/root.html:26 msgid "Hi there, welcome to this MediaGoblin site!" msgstr "" @@ -246,22 +271,21 @@ msgstr "" #, python-format msgid "" "Create an account at this site\n" -" or\n" -" Set up MediaGoblin on your own server" +" or\n" +" Set up MediaGoblin on your own server" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:44 +#: mediagoblin/templates/mediagoblin/root.html:40 msgid "Most recent media" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 -msgid "Enter your new password" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32 +msgid "Set your new password" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "送信" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35 +msgid "Set password" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" @@ -271,15 +295,6 @@ msgstr "" msgid "Send instructions" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "Your password has been changed. Try to log in now." -msgstr "" - -#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 -msgid "" -"Check your inbox. We sent an email with a URL for changing your password." -msgstr "" - #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format msgid "" @@ -310,11 +325,11 @@ msgstr "ここで作成!" msgid "Forgot your password?" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/register.html:27 +#: mediagoblin/templates/mediagoblin/auth/register.html:32 msgid "Create an account!" msgstr "アカウントを作成!" -#: mediagoblin/templates/mediagoblin/auth/register.html:31 +#: mediagoblin/templates/mediagoblin/auth/register.html:36 msgid "Create" msgstr "" @@ -345,10 +360,16 @@ msgid "Cancel" msgstr "キャンセル" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "投稿する" +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34 +#, python-format +msgid "Changing %(username)s's account settings" +msgstr "" + #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" @@ -360,13 +381,32 @@ msgstr "%(username)sさんのプロフィールを編集中" msgid "Media tagged with: %(tag_name)s" msgstr "" -#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34 +#: mediagoblin/templates/mediagoblin/media_displays/video.html:46 msgid "Original" msgstr "" +#: mediagoblin/templates/mediagoblin/media_displays/video.html:33 +msgid "" +"Sorry, this video will not work because \n" +"\t your web browser does not support HTML5 \n" +"\t video." +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:36 +msgid "" +"You can get a modern web browser that \n" +"\t can play this video at \n" +"\t http://getfirefox.com!" +msgstr "" + #: mediagoblin/templates/mediagoblin/submit/start.html:26 -msgid "Submit yer media" -msgstr "コンテンツを投稿" +msgid "Add your media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Add" +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format @@ -378,31 +418,57 @@ msgstr "" msgid "%(username)s's media" msgstr "%(username)sさんのコンテンツ" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:60 #, python-format -msgid "By %(username)s on %(date)s" +msgid "Added on %(date)s." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 -msgid "Post a comment" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 -msgid "at" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 -msgid "Post comment!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:69 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:73 msgid "Delete" msgstr "" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:79 +#, python-format +msgid "%(comment_count)s comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:81 +#, python-format +msgid "%(comment_count)s comments" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:83 +msgid "No comments yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:91 +msgid "Add one" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:100 +msgid "" +"Type your comment here. You can use Markdown for" +" formatting." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:104 +msgid "Add this comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:126 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:141 +#, python-format +msgid "

❖ Browsing media by %(username)s

" +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -483,30 +549,31 @@ msgid "Here's a spot to tell others about yourself." msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:101 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:118 msgid "Edit profile" msgstr "プロフィールを編集" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:106 msgid "This user hasn't filled in their profile (yet)." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:125 +msgid "Change account settings" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:138 #, python-format msgid "View all of %(username)s's media" msgstr "%(username)sさんのコンテンツをすべて見る" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:151 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 -msgid "Add media" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:163 +#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72 msgid "There doesn't seem to be any media here yet..." msgstr "" @@ -518,28 +585,34 @@ msgstr "" msgid "Atom feed" msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 -msgid "Newer" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:39 +msgid "← Newer" msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 -msgid "Older" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:45 +msgid "Older →" msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +#: mediagoblin/templates/mediagoblin/utils/pagination.html:48 msgid "Go to page:" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32 +msgid "newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43 +msgid "older" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 -msgid "Tagged with" +msgid "View more media tagged with" msgstr "" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 -msgid "and" -msgstr "" - -#: mediagoblin/user_pages/forms.py:24 -msgid "Comment" +msgid "or" msgstr "" #: mediagoblin/user_pages/forms.py:30 diff --git a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.mo index 842bfb9b4989511d1c900cf5f80d0c147f5ed7d5..4d03c586116666894bf7768a0089ea53dcda2358 100644 GIT binary patch delta 4284 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 diff --git a/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/nn_NO/LC_MESSAGES/mediagoblin.mo index c07f42beb8bcf379e111623dd567cceb3bb8b78e..11b00041fbae9de695c6fa6b7ba58ab62cfdc86e 100644 GIT binary patch literal 12901 zcmeI2ZH!#kS;vp_o=qqrFD-#m&Ti}2raR-c>%493bz<+@-emnE?>a7uihFnF&g|W} zbMJ8P9dD*3B~?jMAyo>I(l01f;#CzAFA=4sR1qcpP(eUyC1});w50SyRX{)$qzEeb z{m;2~c6J@RPL!xZ)bj4%_sqHHJm-1&KhJr_FI|7xlZHQ!@bgZ7W-rsz`k(kJV{YcL z3;q=N7mkeA}2Ymx41OL*@W@CAa`y2QGnc14Hn7 zumEoZ9|Mno&w%%WS6*Yxt>8&e>wFy4x=(;tfS&~40X_w82R{R9otMB5fj3=i%x>^; zQ1hP!wclTXlH&#q(ZJDtZ89iuoX@eY@r7kAVC&zs)b{ z?P*YQJO}FBmvUIWe+_sOcpZp{<`!@g+zmbio&moGz6ib-{LGIV^RwVTf&*|1LN~w< zgX7>gz#BCF6UIz{H-S3m9iYy+AJpe3LD{7RYQ2X*o&PD2zvd74rE~p7IsP}G=D$>q zzXD4Cm$2yN;I-h-fY*b#fSD@sPH=_i1E9|N`=IpsMNs>F9h82)3rdd55l;JV1=+&v z1~q@S9RC2Qbyh*??_uyX_y{O_zX-}duE05^$GxEZH3D~mzXC3Ue+ugTn_27-_%2ZP z3&CUHL!jP&4!j+F6|951P=W)=m=UjXG7&zGNn6U5}^d*DIv5|ku44uN-p9|1oGejb!x%y7uV;41h8_%!$t zaE`?h&3p-*244VK(!8A@*Lyob+3f-F7r+5{3HUrH`@R55u5W`n*T0nbJy7#r1vT%# z!9Uu9-dPNh%x4J_L@-|gQMLJJ5LK8h82MY^&7jWneQ*}M)p|KU1YXMXuYs7-JPB(5 zPlNK8KL(|jzXYYnuYl6~KY>TU8wmpW!3V%w!AC*G)fYhd)t5o7_jjP=c@fn7SHRoA zcM&x6;3;r7_$g5HzY1#KuY*^C-vJd@{{a$;=2cL7zWUu>ZVPf`vj>!)ErQzr{h;QB zpap*klwO|#rLW%tCC4+M_I(As6#PD@^KN;MKhKRITN(@Yz=Pm7!9M|I*C)67^}h%f zJiiPc15e-L`Tci6T){kB;x|B@>%Tzh`Lbil=04DrNq@J8@gLB01WP~R-VaLd2SBrRdn4_3!=yOVNc%~#Be&)A`9I0|sGo;f5_H2I`L^74!)6q09_(dl zD~dz2H?WO3$n$*@%l)EAlQTi1h=7%-y%O_NOxTqyZ0(!ax;+cqQC@`EnSK`U$R}nF zW?@i-Hb`vHaMIbJu*FK0+dL}5y*q=MFTKtckWz^I#JyT-cFa} zD5LL!=|~X>3&M1 z@PyEzM!n`L>uSIq#T$>uP&4h;?M-yPBd?o#;%=H3w#n<`_UCo#$_jZA#j#Dou$kK; zwab_Yo1W#pCa)zn>;_S6SAv|6LMbXK>{?W;*eJ=1tncifYqOPfO$#(uf}|aKaeBDQ zTAGb6l&_@yxM_ndi_V6uVFTL=*K9YH+vXQsxtZEL^)e+zHt=(c72GI~`)wP%^s)|BQ7Ye$%a)@?$KdBqbcadOf?bOY z#o^xrt5DHEnB)Y9ZDnjd@nMZB${w092Zyhr&Ze!@WV5i5;)a~TDIJ|Vt5)%836>~v z<_Rswb03y6Azk@Wvzdi??kpz3oYhz~YDKcB+dA1+AS65Is2!IWQRQ$i)^`i?ii_M5 zMgn-e8qx|YVHS>?*)R@^umpP|%(_8>UE={mc_WK@VhfwLyk&5Wj+sp*%?j>5va}t9 z#s1Ncw1vj(e4&#D`C#14HKW4)vK2jP#GB0p!kHo}V%*T#L-%5n7WyJuotIUXby=%4?#^>#hI>JV81z> zDs*~5JDfI0(4>6L<~=4dT!aK@TA*P@m(#v~I}c-W)sbj}k4}z_@j?~AewV|?PHmvQ zQm#px_K0VeB~;=#U6X=Nom{}f#+-C(;jsfF3}*x1(XqZ;v~_}aUV62RuYs}o;f zb9=G7kB!Z@oW{|1((xWefRJFqEK9RVyV{5GqIQDr{ikJs;P;I*!BP4l(ZR9DVEmxh z8(5z`#&s^KJDjv@VGPOgK4ws^8qFWdTjOTl23?!?*<;?W1&||Cn=TC88>SR8a6-UU zJK}imrq>*OOO)+V^!2r_Nr}9516tBc-s_f}#bV&YPoSejxl?Q}Q=DT`_fZj8; zr&OOMEkHne8DBN?iERWqRIlt4<^=mRV`qanYI>q(8sYTFkBes&(G||H28DH)A&&z56J*MWUOo3XI z)JW#UGH2cW~wV2&g0{CvnclW zypfwlrNq(Vf{|X3sd&V6lpzDBw}7ffMcvRidT=`=qb6IVG%$;0nv)|}btxJhsYP8y z<08CDfRipn@mgOX=~W_oV|lbl3=Jj;eCjHaSl;jT(o9t?aqfx$`LdnfjsR|AV72;4 zw%wSrH&!ql?>ukGdpDIk!^sInQopg{H)?SUAV|w~{K-+Iaxe_gjPhWakW%sHjxMFE zFdDw$M$bmgFhyoni6kT?ZPd^RIEo#+S|z*F`bfHPf$k<(8ac9bbm7)=wp*`mmawH+ zf^~cVDFn2FpO9_4COQQ?@4wOGd0fDk1UF_McWH}3ouFTpNV z-QjjriuG(*S3!)z`rgrp!*zulQRQXRUXZXra!XN7Am>v?_L-OI&!%j zR)0&P0QYgZfh(20&uJBf(Pqsx(M8g3MOnCvPu7#L*jbWvzOx%-ohHKXTn_T6!NvM$ zIpDZlX_TLC;I5H%a|*r@U6}iI0~mNg9P5mm`y+^w^`+-c7agYp{$Ia<1#a2UJR&c5M@ue%SSyo2@;f_x_D-w)u%eo~AH57Y} zkRch7Rozr;pkU_+o=ABMwTNgh`n}h=rwr64uLPK$ES^9*!=l(Tk!L{7!;1z!q&;Ke z#+&WRQZi~QeXx!*Ow9O~tHiwFLs@g&om*=s+^tJ@>$}RzIn-#P^E%R8-9tr_P-3B^ zIgBD#>sG{oisdVAoivg&7dDgt37t8!Q+Gdg7JVAco z_ElbzUcIY2<8*b$Am3md)tJyvPOc1XM;2RKao0Lmkn264?Tggg)xC=U%3IV0ksE7G zT?wj6z-Jp4c6QoOEx1M2OUPl3-h(R@g{)NG;Hx~h-o&Yv^(@rIZ%YS@l1Zx=^ZS*- zMHLD6N5BGu(~!J2Njo`naWj=7FeIiCLR()*vEv zMW*ehyW!Z$P{mX2Xx@&RwFCWjURz41Z5bTPJl9)kN_OpS;zNUWw>i^`H#Ds_`#qNr~Rgi>lxli+I=)tTMC2jv`vyT$Bx^* z3k!G0k)LoP?q@+UY*}8#8ZBCz)0+Jn1Og5W7EWCGW^x)BD$n6gum%(i zC6{-`PQIE_OWMvV6*sMjphM+82c<cutcy?IlzUgSfp)Y7Y7KrYL>cMtX?DoQj)8F^{UeXMg9MDAZ@? zZR?)9VYv#vhSra+-*ajz^WCwWyQ#0cK{D4+c5YIM#iptv_r6v`d1h>ER_#&F-?v?T zeVE|lYBv(0a^;XXW}L#dGg-EF8FVENUn{h!aOk|XGCHz~a*pkYM_$^FgXSCR@6O@n z8HuaY(f)0F7AMN(+kqF0TN2;43?;;Hla)b-<>}V#R7e|Iw(UTCG`zAQX^S5mRN-7$ zuKMe|#%Y@^C>GCTV`&7(bWu}E)suZ8Bu8g(0pzFVZinVB)u@vmir~vS_|LZDfn@hw z;15#gJ28E4qsa8l+d%!?TG7vQ_L`SmExn*)R2VFjN!{PdK{<@pE=GcHrZ9^)h{#?I`p3}db zceLY#K3ALzbaCm^(#yTbE-v9=X5H7F=y&K77u~{@&u@O~oF=ZC;rS{iKTj9;e(Xa` z5e^+v9o*tQ_(JVm*N0W;RLiW4h*x z3^5)Kic|U2SXLhJc-aAcs~WX)RT?adiwld|B&H4p2|ZZneR&+wP<02RQLg_qkI$Fn@>3=cvpE{BQUlE&;&=OZ)*gG|jxm#YK!6~!Cw&sJ8%ILdY2I*yvD zunM=!o7kpZ9O27kAb+Pybfu5ia&3OLRwhSOEJmu!z4U)TO40akPPIanKa#YQsyRZx zb!dmpbKzh4p7%+;;Jb^yxYou1tO0T2EsWi7Cleu>7dAhNbh}|%U56r#39ZQk!{OFu+>}=ohqr0qCMN*jz z#O%-#0qWyqvjla!lqn==F$7&mb@XXc*~L|dIJ)zG(mI#F^$Y(+&mTSXdN=a_N*C4{ zlK`f68Wuz&HH}KFWmjyKVeEKi*yr8c;9T#!Zms}+)N_5kJy$%x>lj^EEN(cItZ!z& z^*-O-aCa`)zN(J`*AG$FOHwDXEBxuQx|`IHCUsNe{^GfxB;fd;|F%Y()&Ai2>i+^G CC2r6F delta 3264 zcmajg4{TM{9l-I^7A%yu&=zVZFi!c?Kh(bVwNRiGNvYBlYheO$E@8{7?YIheAw$$byb-^E)A#`X2FsYN1+U;btgI|VIfekv-%)7efUf%J>?T{>>=;+b}1M zT{PBWACf+0MIJ>tX$IM>`U*;f9>r073Rz1nXH^OLI;2Z&M~UD7$_5iC3x65;r@qb~ z8UI8T@t2UkK*t^U5=zn3ar_%`2qlMiV;sMM5|Ili6JA7F@G?p&-b0!1BixH0P$IUL__CI2K#e<4 zYUXoM|1e4fC$JAsplskmj>b+Jvdw$@KKcO z^$Hf_MdU)M*HAWc8J{cSdLw62j}TU-Qn?u#@6b4h+i+%ep~$YFocu#YRqkE1N~Iv&Qk=(&^K%E@=4q;Ma~b-xE0pHn}J2K)*olyfLK{v%3py@wK! zeapPTq2x$Z~V$RNtNJ5l2}O3F?lXH(xqsg>tZHhLaQ@xLvnW!{K%KX1TIpAfKjl7Mutgk+# zK^>_IR%H#f0c9h7$c0e*QBG)~oXAC@tAeQiRMh`?WY6fM&3n(YPgp%_&P*QRg zb8?^61}YjVQ9^zU*^{~-Wv4SJ8+icmQaeEsJH8$Bu{N+AR(-Fg~$p14+Q}U9t7UUgu6UucmC=u~cLU#+d6G*#|lrD^@b~!oh;fD4(jHd_FTQG$+iO1oKbz2n=mQWH);}N zI_pjN+Hr@yV=;Y)(HY|g+H$o?TTV((Il-v5^x@kF^@!)|#Hi&a9XDBcY23R_Hikmnz=#*aD-hmh#x= z7!jY4hkTbs%k^|-+@w+x=CqRu7?KI6>vo5~t@~5x-*9u-6CVm|*POfcPD$K+r1hx9 zzKwAUIWl%kAM&%ZM#@VPW2T*oDa*B$6{r!z7M+CWD*4cx2*Sl{@7)@2jd!%RZ_)Ag z?v5?3?OpBdWe4`R-fkux$y4jigr{3~w8t05b#-@ihCg2W_we+Rbz#Li|C&O4BHXB} zY6eX*sRPPLD$+>a{qQXv50BJm|FbCf_*ud;sSX}BV`J=?iX5XDwe7eueVgHcz7(e& zXxk*U;Yem&^2^*jY1agn?VC)-ufb z_OJhJ_}cn+SM1HEQnItc>%Kkv*A1m5Ro9lN4zlAW{HWn;*VJj2tcKrdY*~CuiVcRB z8oRbg5wkl>r_VpBC#gK0a>mU6DcI|pG7ANJvg!DLDcGBu_fxQs)pK$+Xb~T8eEgHf zwdMJ}&6zzzCJ0{Ig$dsV#0j zIOaQ(^I>5!j~hrx`O4sc6Rw*CN_o\n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -23,27 +23,15 @@ msgstr "" msgid "Invalid file given for media type." msgstr "Ugyldig fil for mediatypen." -#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41 msgid "Username" msgstr "Brukarnamn" -#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45 msgid "Password" msgstr "Passord" -#: mediagoblin/auth/forms.py:35 -msgid "Passwords must match." -msgstr "Passorda må vera like." - -#: mediagoblin/auth/forms.py:37 -msgid "Confirm password" -msgstr "Gjenta passord" - -#: mediagoblin/auth/forms.py:39 -msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "Skriv passordet omatt for å unngå stavefeil." - -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:34 msgid "Email address" msgstr "Epost" @@ -59,7 +47,7 @@ msgstr "Ein konto med dette brukarnamnet finst allereide." msgid "Sorry, a user with that email address already exists." msgstr "" -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:180 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -67,68 +55,104 @@ msgstr "" "Kontoen din er stadfesta. Du kan no logga inn, endra profilen din og lasta " "opp filer." -#: mediagoblin/auth/views.py:185 +#: mediagoblin/auth/views.py:186 msgid "The verification key or user id is incorrect" msgstr "Stadfestingsnykelen eller brukar-ID-en din er feil." -#: mediagoblin/auth/views.py:203 +#: mediagoblin/auth/views.py:204 msgid "You must be logged in so we know who to send the email to!" msgstr "" -#: mediagoblin/auth/views.py:211 +#: mediagoblin/auth/views.py:212 msgid "You've already verified your email address!" msgstr "" -#: mediagoblin/auth/views.py:224 +#: mediagoblin/auth/views.py:225 msgid "Resent your verification email." msgstr "Send ein ny stadfestingsepost." -#: mediagoblin/auth/views.py:265 +#: mediagoblin/auth/views.py:260 +msgid "" +"An email has been sent with instructions on how to change your password." +msgstr "" + +#: mediagoblin/auth/views.py:270 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" "Kunne ikkje senda epost. Brukarnamnet ditt er inaktivt eller uverifisert." +#: mediagoblin/auth/views.py:282 +msgid "Couldn't find someone with that username or email." +msgstr "" + +#: mediagoblin/auth/views.py:330 +msgid "You can now log in using your new password." +msgstr "" + #: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Tittel" -#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "Skildring av mediefila" + +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35 msgid "Tags" msgstr "Merkelappar" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas." +#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37 +msgid "Separate tags by commas." msgstr "" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:37 msgid "Slug" msgstr "Nettnamn" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:38 msgid "The slug can't be empty" msgstr "Nettnamnet kan ikkje vera tomt" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:39 msgid "" -"The title part of this media's URL. You usually don't need to change this." -msgstr "Nettnamnet (adressetittel) for mediefila di. Trengst ikkje endrast." +"The title part of this media's address. You usually don't need to change " +"this." +msgstr "" -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:46 msgid "Bio" msgstr "Presentasjon" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:48 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:53 msgid "Website" msgstr "Heimeside" -#: mediagoblin/edit/forms.py:49 +#: mediagoblin/edit/forms.py:60 msgid "Old password" msgstr "" -#: mediagoblin/edit/forms.py:52 -msgid "New Password" +#: mediagoblin/edit/forms.py:62 +msgid "Enter your old password to prove you own this account." +msgstr "" + +#: mediagoblin/edit/forms.py:65 +msgid "New password" msgstr "" #: mediagoblin/edit/views.py:65 @@ -143,39 +167,43 @@ msgstr "Trå varsamt, du endrar nokon andre sine mediefiler." msgid "You are editing a user's profile. Proceed with caution." msgstr "Trå varsamt, du endrar nokon andre sin profil." -#: mediagoblin/edit/views.py:171 +#: mediagoblin/edit/views.py:174 +msgid "Profile changes saved" +msgstr "" + +#: mediagoblin/edit/views.py:200 msgid "Wrong password" msgstr "" -#: mediagoblin/edit/views.py:192 -msgid "Profile edited!" +#: mediagoblin/edit/views.py:216 +msgid "Account settings saved" msgstr "" -#: mediagoblin/media_types/__init__.py:65 -msgid "Could not find any file extension in \"{filename}\"" +#: mediagoblin/media_types/__init__.py:77 +msgid "Could not extract any file extension from \"{filename}\"" +msgstr "" + +#: mediagoblin/media_types/__init__.py:88 +msgid "Sorry, I don't support that file type :(" msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "Fil" -#: mediagoblin/submit/forms.py:30 -msgid "Description of this work" -msgstr "Skildring av mediefila" - -#: mediagoblin/submit/views.py:49 +#: mediagoblin/submit/views.py:50 msgid "You must provide a file." msgstr "Du må velja ei fil." -#: mediagoblin/submit/views.py:127 +#: mediagoblin/submit/views.py:128 msgid "Woohoo! Submitted!" msgstr "Johoo! Opplasta!" -#: mediagoblin/submit/views.py:133 -msgid "Invalid file type." -msgstr "" +#: mediagoblin/templates/mediagoblin/404.html:22 +msgid "Image of 404 goblin stressing out" +msgstr "Bilete av stressa 404-tusse." -#: mediagoblin/templates/mediagoblin/404.html:21 +#: mediagoblin/templates/mediagoblin/404.html:23 msgid "Oops!" msgstr "Oops." @@ -191,33 +219,30 @@ msgstr "" "Er du sikker på at adressa er korrekt, so er sida truleg flytta eller " "sletta." -#: mediagoblin/templates/mediagoblin/404.html:32 -msgid "Image of 404 goblin stressing out" -msgstr "Bilete av stressa 404-tusse." - -#: mediagoblin/templates/mediagoblin/base.html:49 +#: mediagoblin/templates/mediagoblin/base.html:48 msgid "MediaGoblin logo" msgstr "MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:54 -msgid "Submit media" -msgstr "Last opp" +#: mediagoblin/templates/mediagoblin/base.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:157 +msgid "Add media" +msgstr "Legg til mediefiler" -#: mediagoblin/templates/mediagoblin/base.html:65 +#: mediagoblin/templates/mediagoblin/base.html:64 msgid "Verify your email!" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:72 +#: mediagoblin/templates/mediagoblin/base.html:71 msgid "log out" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:75 +#: mediagoblin/templates/mediagoblin/base.html:74 #: mediagoblin/templates/mediagoblin/auth/login.html:27 #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Logg inn" -#: mediagoblin/templates/mediagoblin/base.html:91 +#: mediagoblin/templates/mediagoblin/base.html:86 msgid "" "Powered by MediaGoblin, a GNU project" @@ -229,7 +254,7 @@ msgstr "" msgid "Explore" msgstr "Utforsk" -#: mediagoblin/templates/mediagoblin/root.html:27 +#: mediagoblin/templates/mediagoblin/root.html:26 msgid "Hi there, welcome to this MediaGoblin site!" msgstr "" @@ -253,22 +278,21 @@ msgstr "" #, python-format msgid "" "Create an account at this site\n" -" or\n" -" Set up MediaGoblin on your own server" +" or\n" +" Set up MediaGoblin on your own server" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:44 +#: mediagoblin/templates/mediagoblin/root.html:40 msgid "Most recent media" msgstr "Nyaste mediefiler" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 -msgid "Enter your new password" -msgstr "Fyll inn passord" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32 +msgid "Set your new password" +msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Send" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35 +msgid "Set password" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" @@ -278,17 +302,6 @@ msgstr "" msgid "Send instructions" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "Your password has been changed. Try to log in now." -msgstr "Passordet endra. Prøv å logga inn no." - -#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 -msgid "" -"Check your inbox. We sent an email with a URL for changing your password." -msgstr "" -"Sjekk innboksen din. Me har sendt deg ein epost med ei netadresse for " -"passordendring." - #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format msgid "" @@ -326,11 +339,11 @@ msgstr "Lag ein!" msgid "Forgot your password?" msgstr "Gløymd passordet?" -#: mediagoblin/templates/mediagoblin/auth/register.html:27 +#: mediagoblin/templates/mediagoblin/auth/register.html:32 msgid "Create an account!" msgstr "Lag ein konto." -#: mediagoblin/templates/mediagoblin/auth/register.html:31 +#: mediagoblin/templates/mediagoblin/auth/register.html:36 msgid "Create" msgstr "Opprett" @@ -361,10 +374,16 @@ msgid "Cancel" msgstr "Bryt av" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "Lagra" +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34 +#, python-format +msgid "Changing %(username)s's account settings" +msgstr "" + #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" @@ -376,13 +395,32 @@ msgstr "Endrar profilen til %(username)s" msgid "Media tagged with: %(tag_name)s" msgstr "" -#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34 +#: mediagoblin/templates/mediagoblin/media_displays/video.html:46 msgid "Original" msgstr "" +#: mediagoblin/templates/mediagoblin/media_displays/video.html:33 +msgid "" +"Sorry, this video will not work because \n" +"\t your web browser does not support HTML5 \n" +"\t video." +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:36 +msgid "" +"You can get a modern web browser that \n" +"\t can play this video at \n" +"\t http://getfirefox.com!" +msgstr "" + #: mediagoblin/templates/mediagoblin/submit/start.html:26 -msgid "Submit yer media" -msgstr "Last opp" +msgid "Add your media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Add" +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format @@ -394,31 +432,57 @@ msgstr "" msgid "%(username)s's media" msgstr "%(username)s sine mediefiler" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:60 #, python-format -msgid "By %(username)s on %(date)s" +msgid "Added on %(date)s." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 -msgid "Post a comment" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 -msgid "at" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 -msgid "Post comment!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:69 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:73 msgid "Delete" msgstr "" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:79 +#, python-format +msgid "%(comment_count)s comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:81 +#, python-format +msgid "%(comment_count)s comments" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:83 +msgid "No comments yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:91 +msgid "Add one" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:100 +msgid "" +"Type your comment here. You can use Markdown for" +" formatting." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:104 +msgid "Add this comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:126 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:141 +#, python-format +msgid "

❖ Browsing media by %(username)s

" +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -501,30 +565,31 @@ msgid "Here's a spot to tell others about yourself." msgstr "Her kan du fortelja om deg sjølv." #: mediagoblin/templates/mediagoblin/user_pages/user.html:101 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:118 msgid "Edit profile" msgstr "Endra profil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:106 msgid "This user hasn't filled in their profile (yet)." msgstr "Brukaren har ikkje fylt ut profilen sin (enno)." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:125 +msgid "Change account settings" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:138 #, python-format msgid "View all of %(username)s's media" msgstr "Sjå alle %(username)s sine mediefiler" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:151 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "Her kjem mediefilene dine." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 -msgid "Add media" -msgstr "Legg til mediefiler" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:163 +#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72 msgid "There doesn't seem to be any media here yet..." msgstr "Ser ikkje ut til at det finst nokon mediefiler her nett no." @@ -536,30 +601,36 @@ msgstr " " msgid "Atom feed" msgstr "Atom-kjelde" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 -msgid "Newer" -msgstr "Nyare" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:39 +msgid "← Newer" +msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 -msgid "Older" -msgstr "Eldre" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:45 +msgid "Older →" +msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +#: mediagoblin/templates/mediagoblin/utils/pagination.html:48 msgid "Go to page:" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32 +msgid "newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43 +msgid "older" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 -msgid "Tagged with" +msgid "View more media tagged with" msgstr "" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 -msgid "and" +msgid "or" msgstr "" -#: mediagoblin/user_pages/forms.py:24 -msgid "Comment" -msgstr "Innspel" - #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" msgstr "Eg er sikker eg vil sletta dette" diff --git a/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/pt_BR/LC_MESSAGES/mediagoblin.mo index 87e627644267845f356f4b3163792eb54d3f7bbf..5b7445f7555287cc6230740e289bd8973d84c09f 100644 GIT binary patch delta 5131 zcmc)L4{TLe9l-I^mK9q5thBVy@$a-y+5&y=wc~H;ifsXL8AblgNf6oXd$;Xl@4egI zdtXaob&42S40CG2oFgy+HH&OBaV!zt)bH=T+d}!X z$z)m6_H*yK_nz}Rzw__q&%V}?I#W2}NySe;e^dBdHbU+$|HMWqRmyD~@4($S0iVVa z{63z?Ut=MzsJ)!2M^z_)O0+Hy_iMRVcd>o_!<^T`FN$uu^6SNi%>GV6y^C^l%Z+I zlvLQqg=F9W@~ghfKk3=e{PGu3J~-o-zk@Oa+0=R)j=`x|h)e?&@?DIb+&5z}ej6pD zM^V~)Rq`(>xD(JlnPGZLcD|ltR)Q^@5lA{Fz&>cQD*;rR3aJK zjSlWb8OkhrA(=@beN~U4#;;1jWG;S;GC5xHU-%<3?CNc7!EDkbfvmtKxC0--BPesD zk#2qxx8OcJggbCKl@pu#1=iy!q)Ju7T9@xqK`vzMHsa^87qjsdlrcVq64;+ndiJL8 z+bHi{LV539{CgIur!rzvmsl#qpo$n*vaJG0GE@tm$Bj5&*8ftS*)WnQksiSu{4L5P zIf)X$U;O*GP%`r$lvIvm>dV-c;YwVG%kU|b9-l=Ca0*L8oP{zJA)F}de=!#_dDh?p z+=gGmgII?xGcrBzMhWO4lmPakEU%|f0)Gaj$48LqqE2EKUO;*8O_Y7%BFYeC&t%fm zzM9O1^kfOrrfNkAG~$S;2ZB@=(} z%P*p&KC9Z_`B3UBs3!lTxTvE*Cf5?Qun8rAgUGy6$B|7>{Rt(2i%6_$0#QpK4Jd)E zLP@QG63{l3dUoSTJb?G&H<6gszh;yFMO@5eEy()agtG4U;ygTpZTL6L!?iqIfuBPO z%ZLqQW&1~1`Vm`m+4`-W2UD%4p z&4jx-Y$X$JwWIxe9^K%H z<7Omk=(b+X)5=Igu&Yruh0|?l$8=p@akOJ}n-SF%N&jWOkUMQ9%(QN2^m07%pw~*; zm)|qxObl7KJ;FM2DIAw99au9?SNEdHXiB z7>TeMQ!Sat##OOp%B3R}RY}LR6GogiDjj|8i&iog(Fx1d=2q7>!mihqKVd|>ZN3qIo%U=JGI+sxO%W|ZQ0t48`0Rn*wH0fb1bU#gNr8hjj`U4>1QKS?P^ouhyjk`s9kHa7PO_`Z zvfWJA+M_Wl?CmmjeU-PWu+$3`e#NkCyLWD;1KrVxX_1OpES){Z*P2pQrgr zH`Zge={A{FrcEoRlYV)yp_S`b-80{RJ6&JE`$yrUBaKMJHXUamRTR!nrEBr$vhFl( zGoUwENgXy4l6~D^=uX>gzpK2{b-U_=!H8iq?Cnw8Y%^l9K*Dr`WPghpcAa3{upfvp z0>L)JiH4o>##MenL(pi{?TjIRaU(sw1M1%Nyzyp~ES&tAC@G6uw&|}6^4!7nm3iQ8 zD7ld8AkPLbM3`y%${wdDNhTW-a97Oey)t{upsVAjDha;b+8UtK<&Bw-{mu=4C{dRw zl2Mt?M#AdRF{?vIB{4Gf)0rDK*!2@zQ-0#|WrVK%xjLMiO6Lvg9G2zO)oH$BFo%7A z>mnJ}{ z%t}TAmfbOMqBJ+_!)@YE_#61a_usrzAG~=-!*s%6Yd-cJcK!cj4_9lF25XW9mvF5z zy)J3!u(x!|^pd7TW_#4vZ1Ba`+2A7qZ_|_~H)ghY!~Tdi`SG&J>+JvA;<9nfL?=4uKa2ezDg1ec$zj=CJj`wQ$m#18@BVW7y_s^)#TP^c4eFpqs#zL=d z=7SS#E4@PxKMD@c{QCS4cMh~yY_3|D+1@|+IC!sOs&}^Hdu{#)=>zQ}IuDM{vb{}3 z(+AH4FI7}M&|mpRR%*Q*P3eq(9EU@z_mk?o-}hX|oqakrxVL>==fmIu@xPuAXJ@Y& zikZW8*nWKZthjYM^W{2+_UP30j^e>QULDh|i)5(%qU*Hp)y_HZHP4+;dZRN!{TJhH B)u;df delta 3357 zcmZ|Pe{hsX8Nl%kPy!)9$d3|%z^0To2gxP5K!6kmLZF>sN=Zp=)uGJh?&a>ackdhC z_wGW9cpXcrG99ONQQNWOn4+Z}L2ENQ)6xDS>M&y+sx!7#p;c<9R>xMIaq5qe`hD(R zD*u>C^4WK9-`!`QefHi+zj8+s*%Ujcr~8ExA9ll zi7(DkYA*g2d-3166BBfocH=1C zjmMD})WUg6)#KGD<6^*NSE4xlEFcg0Fx*S-;4aJ2l*%C zA6rEJC8a;0<92)jrD&Sjemm|$Im1KPjbBE|$XS#L&!H@M9_1+hj56Op@kYFai*W~O z+lhNo=6wR!<1ZV?f1JjAN?hY69KpSK4?c~Z*h3m5Q%MZb#VvRNC1Wk*m$lS&sBt4o z&3q#2A4SPv0SE91N&sg|G;W|FVcrCrkS=uu`|ztMsd@#anBGGN23zR_4uEV#MR#Li@F9S(=J8s82Q35)F zGV$w?f52Xz|Avx@7}4E=36vxGEJ}@h0a;&t4IjdQ_fc+D4W06S2TGs=SS|N|hz9kbMo=co zpk$(m2k{jC23Kj$7pq#8YQr`>hQoLi&m%)slGS8G_u^_ijDuFIUNqq}$ z#?{z|8Qg*=a2LLba?KLlU0G)*$_9pz3!t($(2!Ig!z`XeepMrRk{7n(4BUqEa0kx9 zVYHKTY_-;YP@}b7KlfX6`%@{Mb5gFcM{D|R-Mph!+w226R?@zwSGA=~-id{3z<5a~ zs|GSo@-98$7Xs~iqyE9TzTMHG+j5hkVTZi<1KhVjH@zSoBuDmp6 z!f@OVQgJol=W@J<-hMa8>C2zcQOKsW=P%3a{jQf{;t3jAM>_}eju*N_<$AWd_Sn>q zY8$F*J!kyGcc*47=$%OtLjC}$<`w84_?Q)idfRekj1a%z{; ztTTq79mlI2kdun*kzhg=$ogp#%$(zKWxSL!d9~jmJ~!!mNhCSHtL!)CG}wU^pShw&57{lcx2`|sCYjifx9QVTuDZ3yKH7Tx|Cg%? z)W@8_-R~YKNX|G`;~q3RMJ;*xz@$uE-^>yE>3AkEXYTBgyR{N9KWMfb%=rQhY(GAjttkm?Q ztM}QxYnIuqYrfOH!z;REwnB6k<)_MiD~F@5tm@(RV0S;I7szdyKAkUQ$w1{RBISgk zi6)8bo48R~iJF?8KH=->C$;A!8B$KTHrYG_*lQU2Q*|BhR_%=PEIF>cW=N{6#KDo2 zq{EVT8!hKwo-pGVikyBBaN?XnN{-1)pJXk2sB_4^*?HcUx@Ox#_n>__aj|0$HB&x! czRKKad8wL_a)|tsXiVA\n" +"POT-Creation-Date: 2012-01-07 13:47-0600\n" +"PO-Revision-Date: 2012-01-07 19:44+0000\n" +"Last-Translator: cwebber \n" "Language-Team: Portuguese (Brazilian) (http://www.transifex.net/projects/p/mediagoblin/team/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -24,28 +24,15 @@ msgstr "" msgid "Invalid file given for media type." msgstr "Arquivo inválido para esse tipo de mídia" -#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41 msgid "Username" msgstr "Nome de Usuário" -#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45 msgid "Password" msgstr "Senha" -#: mediagoblin/auth/forms.py:35 -msgid "Passwords must match." -msgstr "Senhas devem ser iguais." - -#: mediagoblin/auth/forms.py:37 -msgid "Confirm password" -msgstr "Confirmar senha" - -#: mediagoblin/auth/forms.py:39 -msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "" -"Digite novamente aqui para ter certeza que não houve erros de digitação" - -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:34 msgid "Email address" msgstr "Endereço de email" @@ -61,7 +48,7 @@ msgstr "Desculpe, um usuário com este nome já existe." msgid "Sorry, a user with that email address already exists." msgstr "Desculpe, um usuário com esse email já esta cadastrado" -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:180 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -69,23 +56,28 @@ msgstr "" "O seu endereço de e-mail foi verificado. Você pode agora fazer login, editar" " seu perfil, e enviar imagens!" -#: mediagoblin/auth/views.py:185 +#: mediagoblin/auth/views.py:186 msgid "The verification key or user id is incorrect" msgstr "A chave de verificação ou nome usuário estão incorretos." -#: mediagoblin/auth/views.py:203 +#: mediagoblin/auth/views.py:204 msgid "You must be logged in so we know who to send the email to!" msgstr " " -#: mediagoblin/auth/views.py:211 +#: mediagoblin/auth/views.py:212 msgid "You've already verified your email address!" msgstr "Você já verifico seu email!" -#: mediagoblin/auth/views.py:224 +#: mediagoblin/auth/views.py:225 msgid "Resent your verification email." msgstr "O email de verificação foi reenviado." -#: mediagoblin/auth/views.py:265 +#: mediagoblin/auth/views.py:260 +msgid "" +"An email has been sent with instructions on how to change your password." +msgstr "" + +#: mediagoblin/auth/views.py:270 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -93,47 +85,77 @@ msgstr "" "Não foi possível enviar o email de recuperação de senha, pois seu nome de " "usuário está inativo ou o email da sua conta não foi confirmado." +#: mediagoblin/auth/views.py:282 +msgid "Couldn't find someone with that username or email." +msgstr "" + +#: mediagoblin/auth/views.py:330 +msgid "You can now log in using your new password." +msgstr "" + #: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Título" -#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "Descrição desse trabalho" + +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35 msgid "Tags" msgstr "Etiquetas" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas." -msgstr "Separar tags por virgulas." +#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37 +msgid "Separate tags by commas." +msgstr "" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:37 msgid "Slug" msgstr "Arquivo" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:38 msgid "The slug can't be empty" msgstr "O arquivo não pode estar vazio" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:39 msgid "" -"The title part of this media's URL. You usually don't need to change this." +"The title part of this media's address. You usually don't need to change " +"this." msgstr "" -"A parte título da URL dessa mídia. Geralmente não é necessário alterar isso." -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:46 msgid "Bio" msgstr "Biografia" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:48 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:53 msgid "Website" msgstr "Website" -#: mediagoblin/edit/forms.py:49 +#: mediagoblin/edit/forms.py:60 msgid "Old password" msgstr "Senha antiga" -#: mediagoblin/edit/forms.py:52 -msgid "New Password" -msgstr "Nova Senha" +#: mediagoblin/edit/forms.py:62 +msgid "Enter your old password to prove you own this account." +msgstr "" + +#: mediagoblin/edit/forms.py:65 +msgid "New password" +msgstr "" #: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." @@ -147,39 +169,43 @@ msgstr "Você está editando a mídia de outro usuário. Tenha cuidado." msgid "You are editing a user's profile. Proceed with caution." msgstr "Você está editando um perfil de usuário. Tenha cuidado." -#: mediagoblin/edit/views.py:171 +#: mediagoblin/edit/views.py:174 +msgid "Profile changes saved" +msgstr "" + +#: mediagoblin/edit/views.py:200 msgid "Wrong password" msgstr "Senha errada" -#: mediagoblin/edit/views.py:192 -msgid "Profile edited!" -msgstr "Perfil editado!" +#: mediagoblin/edit/views.py:216 +msgid "Account settings saved" +msgstr "" -#: mediagoblin/media_types/__init__.py:65 -msgid "Could not find any file extension in \"{filename}\"" -msgstr " " +#: mediagoblin/media_types/__init__.py:77 +msgid "Could not extract any file extension from \"{filename}\"" +msgstr "" + +#: mediagoblin/media_types/__init__.py:88 +msgid "Sorry, I don't support that file type :(" +msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "Arquivo" -#: mediagoblin/submit/forms.py:30 -msgid "Description of this work" -msgstr "Descrição desse trabalho" - -#: mediagoblin/submit/views.py:49 +#: mediagoblin/submit/views.py:50 msgid "You must provide a file." msgstr "Você deve fornecer um arquivo." -#: mediagoblin/submit/views.py:127 +#: mediagoblin/submit/views.py:128 msgid "Woohoo! Submitted!" msgstr "Eba! Enviado!" -#: mediagoblin/submit/views.py:133 -msgid "Invalid file type." -msgstr "Tipo de arquivo inválido." +#: mediagoblin/templates/mediagoblin/404.html:22 +msgid "Image of 404 goblin stressing out" +msgstr "Imagem do goblin 404 aparecendo" -#: mediagoblin/templates/mediagoblin/404.html:21 +#: mediagoblin/templates/mediagoblin/404.html:23 msgid "Oops!" msgstr "Oops" @@ -195,33 +221,30 @@ msgstr "" "Se você está certo de que o endereço está correto, talvez a página que " "esteja procurando tenha sido apagada ou mudou de endereço" -#: mediagoblin/templates/mediagoblin/404.html:32 -msgid "Image of 404 goblin stressing out" -msgstr "Imagem do goblin 404 aparecendo" - -#: mediagoblin/templates/mediagoblin/base.html:49 +#: mediagoblin/templates/mediagoblin/base.html:48 msgid "MediaGoblin logo" msgstr "Logo MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:54 -msgid "Submit media" -msgstr "Enviar mídia" +#: mediagoblin/templates/mediagoblin/base.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:157 +msgid "Add media" +msgstr "Adicionar mídia" -#: mediagoblin/templates/mediagoblin/base.html:65 +#: mediagoblin/templates/mediagoblin/base.html:64 msgid "Verify your email!" msgstr "Verifique seu email!" -#: mediagoblin/templates/mediagoblin/base.html:72 +#: mediagoblin/templates/mediagoblin/base.html:71 msgid "log out" msgstr "Sair" -#: mediagoblin/templates/mediagoblin/base.html:75 +#: mediagoblin/templates/mediagoblin/base.html:74 #: mediagoblin/templates/mediagoblin/auth/login.html:27 #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Entrar" -#: mediagoblin/templates/mediagoblin/base.html:91 +#: mediagoblin/templates/mediagoblin/base.html:86 msgid "" "Powered by MediaGoblin, a GNU project" @@ -233,7 +256,7 @@ msgstr "" msgid "Explore" msgstr "Explorar" -#: mediagoblin/templates/mediagoblin/root.html:27 +#: mediagoblin/templates/mediagoblin/root.html:26 msgid "Hi there, welcome to this MediaGoblin site!" msgstr "Olá, bemvindo ao site de MediaGoblin." @@ -257,22 +280,21 @@ msgstr " " #, python-format msgid "" "Create an account at this site\n" -" or\n" -" Set up MediaGoblin on your own server" +" or\n" +" Set up MediaGoblin on your own server" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:44 +#: mediagoblin/templates/mediagoblin/root.html:40 msgid "Most recent media" msgstr "Mídia mais recente" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 -msgid "Enter your new password" -msgstr "Digite sua nova senha" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32 +msgid "Set your new password" +msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Enviar" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35 +msgid "Set password" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" @@ -282,17 +304,6 @@ msgstr "Recuperar senha" msgid "Send instructions" msgstr "Mandar instruções" -#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "Your password has been changed. Try to log in now." -msgstr "Sua senha foi alterada. Tente entrar agora." - -#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 -msgid "" -"Check your inbox. We sent an email with a URL for changing your password." -msgstr "" -"Verifique sua caixa de entrada. Mandamos um email com a URL para troca da " -"senha" - #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format msgid "" @@ -331,11 +342,11 @@ msgstr "Crie uma aqui!" msgid "Forgot your password?" msgstr "Esqueceu sua senha?" -#: mediagoblin/templates/mediagoblin/auth/register.html:27 +#: mediagoblin/templates/mediagoblin/auth/register.html:32 msgid "Create an account!" msgstr "Criar uma conta!" -#: mediagoblin/templates/mediagoblin/auth/register.html:31 +#: mediagoblin/templates/mediagoblin/auth/register.html:36 msgid "Create" msgstr "Criar" @@ -366,10 +377,16 @@ msgid "Cancel" msgstr "Cancelar" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "Salvar mudanças" +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34 +#, python-format +msgid "Changing %(username)s's account settings" +msgstr "" + #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" @@ -381,13 +398,32 @@ msgstr "Editando perfil de %(username)s" msgid "Media tagged with: %(tag_name)s" msgstr "" -#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34 +#: mediagoblin/templates/mediagoblin/media_displays/video.html:46 msgid "Original" msgstr "Original" +#: mediagoblin/templates/mediagoblin/media_displays/video.html:33 +msgid "" +"Sorry, this video will not work because \n" +"\t your web browser does not support HTML5 \n" +"\t video." +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:36 +msgid "" +"You can get a modern web browser that \n" +"\t can play this video at \n" +"\t http://getfirefox.com!" +msgstr "" + #: mediagoblin/templates/mediagoblin/submit/start.html:26 -msgid "Submit yer media" -msgstr "Envie sua mídia" +msgid "Add your media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Add" +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format @@ -399,31 +435,57 @@ msgstr "" msgid "%(username)s's media" msgstr "Mídia de %(username)s " -#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:60 #, python-format -msgid "By %(username)s on %(date)s" +msgid "Added on %(date)s." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 -msgid "Post a comment" -msgstr "Postar um comentário" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 -msgid "at" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 -msgid "Post comment!" -msgstr "Postar comentário!" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:69 msgid "Edit" msgstr "Editar" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:73 msgid "Delete" msgstr "Apagar" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:79 +#, python-format +msgid "%(comment_count)s comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:81 +#, python-format +msgid "%(comment_count)s comments" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:83 +msgid "No comments yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:91 +msgid "Add one" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:100 +msgid "" +"Type your comment here. You can use Markdown for" +" formatting." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:104 +msgid "Add this comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:126 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:141 +#, python-format +msgid "

❖ Browsing media by %(username)s

" +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -509,20 +571,24 @@ msgid "Here's a spot to tell others about yourself." msgstr "Aqui é o lugar onde você fala de si para os outros." #: mediagoblin/templates/mediagoblin/user_pages/user.html:101 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:118 msgid "Edit profile" msgstr "Editar perfil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:106 msgid "This user hasn't filled in their profile (yet)." msgstr "Esse usuário não preencheu seu perfil (ainda)." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:125 +msgid "Change account settings" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:138 #, python-format msgid "View all of %(username)s's media" msgstr "Ver todas as mídias de %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:151 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." @@ -530,11 +596,8 @@ msgstr "" "Aqui é onde sua mídia vai aparecer, mas parece que você não adicionou nada " "ainda." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 -msgid "Add media" -msgstr "Adicionar mídia" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:163 +#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72 msgid "There doesn't seem to be any media here yet..." msgstr "Aparentemente não há nenhuma mídia aqui ainda..." @@ -546,29 +609,35 @@ msgstr "ícone feed" msgid "Atom feed" msgstr "Atom feed" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 -msgid "Newer" -msgstr "Mais novo" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:39 +msgid "← Newer" +msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 -msgid "Older" -msgstr "Mais velho" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:45 +msgid "Older →" +msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +#: mediagoblin/templates/mediagoblin/utils/pagination.html:48 msgid "Go to page:" msgstr "Ir a página:" +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32 +msgid "newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43 +msgid "older" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 -msgid "Tagged with" +msgid "View more media tagged with" msgstr "" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 -msgid "and" -msgstr "e" - -#: mediagoblin/user_pages/forms.py:24 -msgid "Comment" -msgstr "Comentário" +msgid "or" +msgstr "" #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" diff --git a/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ro/LC_MESSAGES/mediagoblin.mo index e0a70ea95a5fc3699829d852ad76e992d7380774..5a71126669d43f3033c43b8c4b1470cbc4bceb0a 100644 GIT binary patch delta 5188 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 nYG5&\n" +"POT-Creation-Date: 2012-01-07 13:47-0600\n" +"PO-Revision-Date: 2012-01-07 19:44+0000\n" +"Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -24,27 +24,15 @@ msgstr "" msgid "Invalid file given for media type." msgstr "Formatul fișierului nu corespunde cu tipul de media selectat." -#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41 msgid "Username" msgstr "Nume de utilizator" -#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45 msgid "Password" msgstr "Parolă" -#: mediagoblin/auth/forms.py:35 -msgid "Passwords must match." -msgstr "Parolele trebuie să fie identice." - -#: mediagoblin/auth/forms.py:37 -msgid "Confirm password" -msgstr "Reintrodu parola" - -#: mediagoblin/auth/forms.py:39 -msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "Introdu parola din nou pentru verificare." - -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:34 msgid "Email address" msgstr "Adresa de e-mail" @@ -60,7 +48,7 @@ msgstr "Ne pare rău, există deja un utilizator cu același nume." msgid "Sorry, a user with that email address already exists." msgstr "Există deja un utilizator înregistrat cu această adresă de e-mail." -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:180 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -68,23 +56,28 @@ msgstr "" "Adresa ta de e-mail a fost verificată. Poți să te autentifici, să îți " "completezi profilul și să trimiți imagini!" -#: mediagoblin/auth/views.py:185 +#: mediagoblin/auth/views.py:186 msgid "The verification key or user id is incorrect" msgstr "Cheie de verificare sau user ID incorect." -#: mediagoblin/auth/views.py:203 +#: mediagoblin/auth/views.py:204 msgid "You must be logged in so we know who to send the email to!" msgstr "Trebuie să fii autentificat ca să știm cui să trimitem mesajul!" -#: mediagoblin/auth/views.py:211 +#: mediagoblin/auth/views.py:212 msgid "You've already verified your email address!" msgstr "Adresa ta de e-mail a fost deja verificată!" -#: mediagoblin/auth/views.py:224 +#: mediagoblin/auth/views.py:225 msgid "Resent your verification email." msgstr "E-mail-ul de verificare a fost retrimis." -#: mediagoblin/auth/views.py:265 +#: mediagoblin/auth/views.py:260 +msgid "" +"An email has been sent with instructions on how to change your password." +msgstr "" + +#: mediagoblin/auth/views.py:270 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -92,48 +85,77 @@ msgstr "" "E-mailul pentru recuperarea parolei nu a putut fi trimis deoarece contul tău" " e inactiv sau adresa ta de e-mail nu a fost verificată." +#: mediagoblin/auth/views.py:282 +msgid "Couldn't find someone with that username or email." +msgstr "" + +#: mediagoblin/auth/views.py:330 +msgid "You can now log in using your new password." +msgstr "" + #: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Titlu" -#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "Descrierea acestui fișier" + +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35 msgid "Tags" msgstr "Tag-uri" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas." -msgstr "Desparte tag-urile prin virgulă." +#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37 +msgid "Separate tags by commas." +msgstr "" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:37 msgid "Slug" msgstr "Identificator" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:38 msgid "The slug can't be empty" msgstr "Identificatorul nu poate să lipsească" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:39 msgid "" -"The title part of this media's URL. You usually don't need to change this." +"The title part of this media's address. You usually don't need to change " +"this." msgstr "" -"Partea din adresa acestui fișier corespunzătoare titlului. De regulă nu " -"trebuie modificată." -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:46 msgid "Bio" msgstr "Biografie" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:48 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:53 msgid "Website" msgstr "Sit Web" -#: mediagoblin/edit/forms.py:49 +#: mediagoblin/edit/forms.py:60 msgid "Old password" msgstr "Vechea parolă" -#: mediagoblin/edit/forms.py:52 -msgid "New Password" -msgstr "Noua parolă" +#: mediagoblin/edit/forms.py:62 +msgid "Enter your old password to prove you own this account." +msgstr "" + +#: mediagoblin/edit/forms.py:65 +msgid "New password" +msgstr "" #: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." @@ -148,39 +170,43 @@ msgstr "Editezi fișierul unui alt utilizator. Se recomandă prudență." msgid "You are editing a user's profile. Proceed with caution." msgstr "Editezi profilul unui utilizator. Se recomandă prudență." -#: mediagoblin/edit/views.py:171 +#: mediagoblin/edit/views.py:174 +msgid "Profile changes saved" +msgstr "" + +#: mediagoblin/edit/views.py:200 msgid "Wrong password" msgstr "Parolă incorectă" -#: mediagoblin/edit/views.py:192 -msgid "Profile edited!" -msgstr "Profilul a fost modificat!" +#: mediagoblin/edit/views.py:216 +msgid "Account settings saved" +msgstr "" -#: mediagoblin/media_types/__init__.py:65 -msgid "Could not find any file extension in \"{filename}\"" -msgstr "Nu pot extrage extensia din „{filename}”" +#: mediagoblin/media_types/__init__.py:77 +msgid "Could not extract any file extension from \"{filename}\"" +msgstr "" + +#: mediagoblin/media_types/__init__.py:88 +msgid "Sorry, I don't support that file type :(" +msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "Fișier" -#: mediagoblin/submit/forms.py:30 -msgid "Description of this work" -msgstr "Descrierea acestui fișier" - -#: mediagoblin/submit/views.py:49 +#: mediagoblin/submit/views.py:50 msgid "You must provide a file." msgstr "Trebuie să selectezi un fișier." -#: mediagoblin/submit/views.py:127 +#: mediagoblin/submit/views.py:128 msgid "Woohoo! Submitted!" msgstr "Ura! Trimis!" -#: mediagoblin/submit/views.py:133 -msgid "Invalid file type." -msgstr "Tip de fișier incompatibil." +#: mediagoblin/templates/mediagoblin/404.html:22 +msgid "Image of 404 goblin stressing out" +msgstr "Imagine cu elful 404 stresat." -#: mediagoblin/templates/mediagoblin/404.html:21 +#: mediagoblin/templates/mediagoblin/404.html:23 msgid "Oops!" msgstr "Hopa!" @@ -196,33 +222,30 @@ msgstr "" "Dacă ești sigur că adresa e corectă, poate că pagina pe care o cauți a fost " "mutată sau ștearsă." -#: mediagoblin/templates/mediagoblin/404.html:32 -msgid "Image of 404 goblin stressing out" -msgstr "Imagine cu elful 404 stresat." - -#: mediagoblin/templates/mediagoblin/base.html:49 +#: mediagoblin/templates/mediagoblin/base.html:48 msgid "MediaGoblin logo" msgstr "logo MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:54 -msgid "Submit media" -msgstr "Transmite un fișier media" +#: mediagoblin/templates/mediagoblin/base.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:157 +msgid "Add media" +msgstr "Trimite fișier" -#: mediagoblin/templates/mediagoblin/base.html:65 +#: mediagoblin/templates/mediagoblin/base.html:64 msgid "Verify your email!" msgstr "Verifică adresa de e-mail!" -#: mediagoblin/templates/mediagoblin/base.html:72 +#: mediagoblin/templates/mediagoblin/base.html:71 msgid "log out" msgstr "ieșire" -#: mediagoblin/templates/mediagoblin/base.html:75 +#: mediagoblin/templates/mediagoblin/base.html:74 #: mediagoblin/templates/mediagoblin/auth/login.html:27 #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Autentificare" -#: mediagoblin/templates/mediagoblin/base.html:91 +#: mediagoblin/templates/mediagoblin/base.html:86 msgid "" "Powered by MediaGoblin, a GNU project" @@ -234,7 +257,7 @@ msgstr "" msgid "Explore" msgstr "Explorează" -#: mediagoblin/templates/mediagoblin/root.html:27 +#: mediagoblin/templates/mediagoblin/root.html:26 msgid "Hi there, welcome to this MediaGoblin site!" msgstr "Salut, bine ai venit pe acest site MediaGoblin!" @@ -262,25 +285,21 @@ msgstr "Încă nu ai unul? E simplu!" #, python-format msgid "" "Create an account at this site\n" -" or\n" -" Set up MediaGoblin on your own server" +" or\n" +" Set up MediaGoblin on your own server" msgstr "" -"Creează un cont pe acest site\n" -" sau\n" -" Instalează MediaGoblin pe propriul tău server" -#: mediagoblin/templates/mediagoblin/root.html:44 +#: mediagoblin/templates/mediagoblin/root.html:40 msgid "Most recent media" msgstr "Cele mai recente fișiere" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 -msgid "Enter your new password" -msgstr "Introdu noua parolă" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32 +msgid "Set your new password" +msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Trimite" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35 +msgid "Set password" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" @@ -290,17 +309,6 @@ msgstr "Recuperează parola" msgid "Send instructions" msgstr "Trimite instrucțiuni" -#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "Your password has been changed. Try to log in now." -msgstr "Parola a fost schimbată. Încearcă să te autentifici acum." - -#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 -msgid "" -"Check your inbox. We sent an email with a URL for changing your password." -msgstr "" -"Verifică-ți căsuța de e-mail. Ți-am trimis un mesaj cu link-ul pentru " -"schimbarea parolei." - #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format msgid "" @@ -338,11 +346,11 @@ msgstr "Creează-l aici!" msgid "Forgot your password?" msgstr "Ai uitat parola?" -#: mediagoblin/templates/mediagoblin/auth/register.html:27 +#: mediagoblin/templates/mediagoblin/auth/register.html:32 msgid "Create an account!" msgstr "Creează un cont!" -#: mediagoblin/templates/mediagoblin/auth/register.html:31 +#: mediagoblin/templates/mediagoblin/auth/register.html:36 msgid "Create" msgstr "Creează" @@ -373,10 +381,16 @@ msgid "Cancel" msgstr "Anulare" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "Salvează modificările" +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34 +#, python-format +msgid "Changing %(username)s's account settings" +msgstr "" + #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" @@ -388,13 +402,32 @@ msgstr "Editare profil %(username)s" msgid "Media tagged with: %(tag_name)s" msgstr "Fișier etichetat cu tag-urile: %(tag_name)s" -#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34 +#: mediagoblin/templates/mediagoblin/media_displays/video.html:46 msgid "Original" msgstr "Original" +#: mediagoblin/templates/mediagoblin/media_displays/video.html:33 +msgid "" +"Sorry, this video will not work because \n" +"\t your web browser does not support HTML5 \n" +"\t video." +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:36 +msgid "" +"You can get a modern web browser that \n" +"\t can play this video at \n" +"\t http://getfirefox.com!" +msgstr "" + #: mediagoblin/templates/mediagoblin/submit/start.html:26 -msgid "Submit yer media" -msgstr "Trimite fișierele tale media" +msgid "Add your media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Add" +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format @@ -406,31 +439,57 @@ msgstr "Fișierele lui %(username)s" msgid "%(username)s's media" msgstr "Fișierele media ale lui %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:60 #, python-format -msgid "By %(username)s on %(date)s" -msgstr "De %(username)s la %(date)s" +msgid "Added on %(date)s." +msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 -msgid "Post a comment" -msgstr "Scrie un comentariu" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 -msgid "at" -msgstr "la" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 -msgid "Post comment!" -msgstr "Trimite comentariul" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:69 msgid "Edit" msgstr "Editare" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:73 msgid "Delete" msgstr "Șterge" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:79 +#, python-format +msgid "%(comment_count)s comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:81 +#, python-format +msgid "%(comment_count)s comments" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:83 +msgid "No comments yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:91 +msgid "Add one" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:100 +msgid "" +"Type your comment here. You can use Markdown for" +" formatting." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:104 +msgid "Add this comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:126 +msgid "at" +msgstr "la" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:141 +#, python-format +msgid "

❖ Browsing media by %(username)s

" +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -515,20 +574,24 @@ msgid "Here's a spot to tell others about yourself." msgstr "Aici poți spune altora ceva despre tine." #: mediagoblin/templates/mediagoblin/user_pages/user.html:101 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:118 msgid "Edit profile" msgstr "Editare profil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:106 msgid "This user hasn't filled in their profile (yet)." msgstr "Acest utilizator nu și-a completat (încă) profilul." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:125 +msgid "Change account settings" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:138 #, python-format msgid "View all of %(username)s's media" msgstr "Vezi toate fișierele media ale lui %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:151 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." @@ -536,11 +599,8 @@ msgstr "" "Aici vor apărea fișierele tale media, dar se pare că încă nu ai trimis " "nimic." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 -msgid "Add media" -msgstr "Trimite fișier" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:163 +#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72 msgid "There doesn't seem to be any media here yet..." msgstr "Nu pare să existe niciun fișier media deocamdată..." @@ -552,29 +612,35 @@ msgstr "icon feed" msgid "Atom feed" msgstr "feed Atom" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 -msgid "Newer" -msgstr "Mai noi" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:39 +msgid "← Newer" +msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 -msgid "Older" -msgstr "Mai vechi" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:45 +msgid "Older →" +msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +#: mediagoblin/templates/mediagoblin/utils/pagination.html:48 msgid "Go to page:" msgstr "Salt la pagina:" +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32 +msgid "newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43 +msgid "older" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 -msgid "Tagged with" -msgstr "Tag-uri" +msgid "View more media tagged with" +msgstr "" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 -msgid "and" -msgstr "și" - -#: mediagoblin/user_pages/forms.py:24 -msgid "Comment" -msgstr "Scrie un comentariu" +msgid "or" +msgstr "" #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.mo index 7e62de833735c4958ffc9e0b1597f4c2732596b4..3ddb0c8eb3322f603a92ddba3134215115322913 100644 GIT binary patch delta 5116 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 diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po index 098ea38c..38748a97 100644 --- a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po @@ -1,5 +1,5 @@ # Translations template for PROJECT. -# Copyright (C) 2011 ORGANIZATION +# Copyright (C) 2012 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # # Translators: @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-04 10:24-0600\n" -"PO-Revision-Date: 2011-12-04 19:58+0000\n" -"Last-Translator: aleksejrs \n" +"POT-Creation-Date: 2012-01-07 13:47-0600\n" +"PO-Revision-Date: 2012-01-07 19:44+0000\n" +"Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -23,27 +23,15 @@ msgstr "" msgid "Invalid file given for media type." msgstr "Неправильный формат файла." -#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41 msgid "Username" msgstr "Логин" -#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45 msgid "Password" msgstr "Пароль" -#: mediagoblin/auth/forms.py:35 -msgid "Passwords must match." -msgstr "Пароли должны совпадать." - -#: mediagoblin/auth/forms.py:37 -msgid "Confirm password" -msgstr "Подтвердите пароль" - -#: mediagoblin/auth/forms.py:39 -msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "Наберите его ещё раз здесь, чтобы избежать опечаток." - -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:34 msgid "Email address" msgstr "Адрес электронной почты" @@ -61,7 +49,7 @@ msgstr "" "Сожалеем, но на этот адрес электронной почты уже зарегистрирована другая " "учётная запись." -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:180 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -69,23 +57,28 @@ msgstr "" "Адрес вашей электронной потвержден. Вы теперь можете войти и начать " "редактировать свой профиль и загружать новые изображения!" -#: mediagoblin/auth/views.py:185 +#: mediagoblin/auth/views.py:186 msgid "The verification key or user id is incorrect" msgstr "Неверный ключ проверки или идентификатор пользователя" -#: mediagoblin/auth/views.py:203 +#: mediagoblin/auth/views.py:204 msgid "You must be logged in so we know who to send the email to!" msgstr "Вам надо представиться, чтобы мы знали, кому отправлять сообщение!" -#: mediagoblin/auth/views.py:211 +#: mediagoblin/auth/views.py:212 msgid "You've already verified your email address!" msgstr "Вы уже потвердили свой адрес электронной почты!" -#: mediagoblin/auth/views.py:224 +#: mediagoblin/auth/views.py:225 msgid "Resent your verification email." msgstr "Переслать сообщение с подтверждением аккаунта." -#: mediagoblin/auth/views.py:265 +#: mediagoblin/auth/views.py:260 +msgid "" +"An email has been sent with instructions on how to change your password." +msgstr "" + +#: mediagoblin/auth/views.py:270 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -94,48 +87,77 @@ msgstr "" "учётная запись неактивна, либо указанный в ней адрес электронной почты не " "был подтверждён." +#: mediagoblin/auth/views.py:282 +msgid "Couldn't find someone with that username or email." +msgstr "" + +#: mediagoblin/auth/views.py:330 +msgid "You can now log in using your new password." +msgstr "" + #: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Название" -#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "Описание этого произведения" + +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35 msgid "Tags" msgstr "Метки" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas." -msgstr "Разделяйте метки запятыми." +#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37 +msgid "Separate tags by commas." +msgstr "" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:37 msgid "Slug" msgstr "Отличительная часть адреса" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:38 msgid "The slug can't be empty" msgstr "Отличительная часть адреса необходима" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:39 msgid "" -"The title part of this media's URL. You usually don't need to change this." +"The title part of this media's address. You usually don't need to change " +"this." msgstr "" -"Часть адреса этого файла, производная от его названия. Её обычно не нужно " -"изменять." -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:46 msgid "Bio" msgstr "Биография" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:48 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:53 msgid "Website" msgstr "Сайт" -#: mediagoblin/edit/forms.py:49 +#: mediagoblin/edit/forms.py:60 msgid "Old password" msgstr "Старый пароль" -#: mediagoblin/edit/forms.py:52 -msgid "New Password" -msgstr "Новый пароль" +#: mediagoblin/edit/forms.py:62 +msgid "Enter your old password to prove you own this account." +msgstr "" + +#: mediagoblin/edit/forms.py:65 +msgid "New password" +msgstr "" #: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." @@ -150,39 +172,43 @@ msgstr "Вы редактируете файлы другого пользова msgid "You are editing a user's profile. Proceed with caution." msgstr "Вы редактируете профиль пользователя. Будьте осторожны." -#: mediagoblin/edit/views.py:171 +#: mediagoblin/edit/views.py:174 +msgid "Profile changes saved" +msgstr "" + +#: mediagoblin/edit/views.py:200 msgid "Wrong password" msgstr "Неправильный пароль" -#: mediagoblin/edit/views.py:192 -msgid "Profile edited!" -msgstr "Профиль изменён!" +#: mediagoblin/edit/views.py:216 +msgid "Account settings saved" +msgstr "" -#: mediagoblin/media_types/__init__.py:65 -msgid "Could not find any file extension in \"{filename}\"" -msgstr "В «{filename}» не обнаружено расширение имени файла" +#: mediagoblin/media_types/__init__.py:77 +msgid "Could not extract any file extension from \"{filename}\"" +msgstr "" + +#: mediagoblin/media_types/__init__.py:88 +msgid "Sorry, I don't support that file type :(" +msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "Файл" -#: mediagoblin/submit/forms.py:30 -msgid "Description of this work" -msgstr "Описание этого произведения" - -#: mediagoblin/submit/views.py:49 +#: mediagoblin/submit/views.py:50 msgid "You must provide a file." msgstr "Вы должны загрузить файл." -#: mediagoblin/submit/views.py:127 +#: mediagoblin/submit/views.py:128 msgid "Woohoo! Submitted!" msgstr "Ура! Файл загружен!" -#: mediagoblin/submit/views.py:133 -msgid "Invalid file type." -msgstr "Неподходящий тип файла." +#: mediagoblin/templates/mediagoblin/404.html:22 +msgid "Image of 404 goblin stressing out" +msgstr "Изображение 404 нервничающего гоблина" -#: mediagoblin/templates/mediagoblin/404.html:21 +#: mediagoblin/templates/mediagoblin/404.html:23 msgid "Oops!" msgstr "Ой!" @@ -196,33 +222,30 @@ msgid "" " been moved or deleted." msgstr "Возможно, страница, которую вы ищете, была удалена или переехала." -#: mediagoblin/templates/mediagoblin/404.html:32 -msgid "Image of 404 goblin stressing out" -msgstr "Изображение 404 нервничающего гоблина" - -#: mediagoblin/templates/mediagoblin/base.html:49 +#: mediagoblin/templates/mediagoblin/base.html:48 msgid "MediaGoblin logo" msgstr "Символ MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:54 -msgid "Submit media" -msgstr "Загрузить файл" +#: mediagoblin/templates/mediagoblin/base.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:157 +msgid "Add media" +msgstr "Добавить файлы" -#: mediagoblin/templates/mediagoblin/base.html:65 +#: mediagoblin/templates/mediagoblin/base.html:64 msgid "Verify your email!" msgstr "Подтвердите ваш адрес электронной почты!" -#: mediagoblin/templates/mediagoblin/base.html:72 +#: mediagoblin/templates/mediagoblin/base.html:71 msgid "log out" msgstr "завершение сеанса" -#: mediagoblin/templates/mediagoblin/base.html:75 +#: mediagoblin/templates/mediagoblin/base.html:74 #: mediagoblin/templates/mediagoblin/auth/login.html:27 #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Войти" -#: mediagoblin/templates/mediagoblin/base.html:91 +#: mediagoblin/templates/mediagoblin/base.html:86 msgid "" "Powered by MediaGoblin, a GNU project" @@ -234,7 +257,7 @@ msgstr "" msgid "Explore" msgstr "Смотреть" -#: mediagoblin/templates/mediagoblin/root.html:27 +#: mediagoblin/templates/mediagoblin/root.html:26 msgid "Hi there, welcome to this MediaGoblin site!" msgstr "Привет! Добро пожаловать на наш MediaGoblin’овый сайт!" @@ -263,25 +286,21 @@ msgstr "У вас её ещё нет? Не проблема!" #, python-format msgid "" "Create an account at this site\n" -" or\n" -" Set up MediaGoblin on your own server" +" or\n" +" Set up MediaGoblin on your own server" msgstr "" -"Создайте учётную запись на этом сайте\n" -" или\n" -" Установите MediaGoblin на собственный сервер" -#: mediagoblin/templates/mediagoblin/root.html:44 +#: mediagoblin/templates/mediagoblin/root.html:40 msgid "Most recent media" msgstr "Самые новые файлы" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 -msgid "Enter your new password" -msgstr "Введите свой новый пароль" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32 +msgid "Set your new password" +msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Подтвердить" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35 +msgid "Set password" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" @@ -291,17 +310,6 @@ msgstr "Сброс пароля" msgid "Send instructions" msgstr "Отправить инструкцию" -#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "Your password has been changed. Try to log in now." -msgstr "Ваш пароль изменён. Теперь попробуйте представиться." - -#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 -msgid "" -"Check your inbox. We sent an email with a URL for changing your password." -msgstr "" -"Проверьте свой электронный почтовый ящик. Мы отправили сообщение с адресом " -"для изменения Вашего пароля." - #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format msgid "" @@ -341,11 +349,11 @@ msgstr "Создайте здесь!" msgid "Forgot your password?" msgstr "Забыли свой пароль?" -#: mediagoblin/templates/mediagoblin/auth/register.html:27 +#: mediagoblin/templates/mediagoblin/auth/register.html:32 msgid "Create an account!" msgstr "Создать аккаунт!" -#: mediagoblin/templates/mediagoblin/auth/register.html:31 +#: mediagoblin/templates/mediagoblin/auth/register.html:36 msgid "Create" msgstr "Создать" @@ -376,10 +384,16 @@ msgid "Cancel" msgstr "Отменить" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "Сохранить изменения" +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34 +#, python-format +msgid "Changing %(username)s's account settings" +msgstr "" + #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" @@ -391,13 +405,32 @@ msgstr "Редактирование профиля %(username)s" msgid "Media tagged with: %(tag_name)s" msgstr "Файлы с меткой: %(tag_name)s" -#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34 +#: mediagoblin/templates/mediagoblin/media_displays/video.html:46 msgid "Original" msgstr "Оригинал" +#: mediagoblin/templates/mediagoblin/media_displays/video.html:33 +msgid "" +"Sorry, this video will not work because \n" +"\t your web browser does not support HTML5 \n" +"\t video." +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:36 +msgid "" +"You can get a modern web browser that \n" +"\t can play this video at \n" +"\t http://getfirefox.com!" +msgstr "" + #: mediagoblin/templates/mediagoblin/submit/start.html:26 -msgid "Submit yer media" -msgstr "Загрузить файл(ы)" +msgid "Add your media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Add" +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format @@ -409,31 +442,57 @@ msgstr "Файлы %(username)s" msgid "%(username)s's media" msgstr "Файлы пользователя %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:60 #, python-format -msgid "By %(username)s on %(date)s" -msgstr "Загружено %(username)s %(date)s" +msgid "Added on %(date)s." +msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 -msgid "Post a comment" -msgstr "Оставить комментарий" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 -msgid "at" -msgstr "в" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 -msgid "Post comment!" -msgstr "Разместить комментарий!" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:69 msgid "Edit" msgstr "Изменить" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:73 msgid "Delete" msgstr "Удалить" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:79 +#, python-format +msgid "%(comment_count)s comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:81 +#, python-format +msgid "%(comment_count)s comments" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:83 +msgid "No comments yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:91 +msgid "Add one" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:100 +msgid "" +"Type your comment here. You can use Markdown for" +" formatting." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:104 +msgid "Add this comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:126 +msgid "at" +msgstr "в" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:141 +#, python-format +msgid "

❖ Browsing media by %(username)s

" +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -520,30 +579,31 @@ msgid "Here's a spot to tell others about yourself." msgstr "Здесь вы можете рассказать о себе." #: mediagoblin/templates/mediagoblin/user_pages/user.html:101 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:118 msgid "Edit profile" msgstr "Редактировать профиль" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:106 msgid "This user hasn't filled in their profile (yet)." msgstr "Это пользователь не заполнил свой профайл (пока)." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:125 +msgid "Change account settings" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:138 #, python-format msgid "View all of %(username)s's media" msgstr "Смотреть все файлы %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:151 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "Ваши файлы появятся здесь, когда вы их добавите." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 -msgid "Add media" -msgstr "Добавить файлы" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:163 +#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72 msgid "There doesn't seem to be any media here yet..." msgstr "Пока что тут файлов нет…" @@ -555,29 +615,35 @@ msgstr "значок ленты" msgid "Atom feed" msgstr "лента в формате Atom" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 -msgid "Newer" -msgstr "Более новые" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:39 +msgid "← Newer" +msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 -msgid "Older" -msgstr "Более старые" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:45 +msgid "Older →" +msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +#: mediagoblin/templates/mediagoblin/utils/pagination.html:48 msgid "Go to page:" msgstr "Перейти к странице:" +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32 +msgid "newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43 +msgid "older" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 -msgid "Tagged with" -msgstr "Метки:" +msgid "View more media tagged with" +msgstr "" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 -msgid "and" -msgstr "и" - -#: mediagoblin/user_pages/forms.py:24 -msgid "Comment" -msgstr "Комментарий" +msgid "or" +msgstr "" #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" diff --git a/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sk/LC_MESSAGES/mediagoblin.mo index 5ab7befa15e400d1a9754a72ea90210648fec115..2d3f505f38f516dc2fab1b7258ad20919df19b9e 100644 GIT binary patch delta 5788 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 gS delta 4182 zcmaLYeQcH09l-I^0+x3u6sTb3l-kmk_Vxv+P(WTGup?pwy`Ph{ARn{*8>Ow$D^*K7Ii^updY8 zUgQNeZQu|h{roIQ4Vj3^Tui;eu3C_kxa0&CPCrcfEgL8QB0bYoo z6gn^%y=7tTCq)kjhKeGBC%9zq#-93>KGu@e7+tfA024d(Dr`Y%LjZ$@dq6i217 zi9!wbAjhYyl0zsv4UomEJ5VBY9}eO}$Xse3vr5R9BTZ@@N(8r~EHI8T@vX=|^-X?B z{~uNoe+lVRG+c|PP?Dya?YH0#lry{uJMcRw5qTD6z!y;_d<*3$-bWelpZGca1ef6D zgzYN44rSbj@lyQlLgF8zFozV^xDof@b@&y09NTa;VUS40F+c}5<5`r5)ev9iQVpna zJxb2(FSYlhL@>f0JdCn{XGbY)pdib<0yZK|>M(ZWQIt@3J2akO?nA*+3&oBob(08f5`5qKx+jUWR|h2e6Sl$@5Y5D+(OD`ZaPa>K&A`{ClZh zP6iQWwYX#pHc{V(GGPj3f(QwYx(!?L0hDpipzQQ)>3O*>j=vNyko(_2K{~dgoZ)6% zhP&}DbWtMoF*Z}5#vQH2cDx05;}E`r>v3~kG3$p>j^=)pg*}gwwC|#9=tHbwepSKp zh`y>v+SC@5tWKa@qX;D;-#|Ibqgam*q73*PN+e!INz%8GwWvR$9Km!tOZx(pd8$!1 zyc$Pk$CpzG@r$JgFQBIWHcHm2hGGckAx&xxO8b74BXdyWA(WkdANS+Wu?H(x7IS1T z%F*0|8}aFt#9vnaFB)XW(;ACMuoz`$O(@U1a4T-c7QCfYe-zhI{{SWQO(cd)5HEQT z?xg-S-iq@$ze~~J1$d^J_~$6RM1!m}*1oeGbjVUiL-DKvvUDdEy{u~!(QBp zGVr~)7N5tmOsPs=J;1CE^qO2p1rVawrd|e_wMoXxm{CcZ+Ej+%1IPnG98s>?yl0LYKMK$_RZPKW;1KSx{gw7 zpwm$h>a-Qc2V-iNN7>Tx(&`G;Ql-{xUEo&`sL)Q-no|qDy2$nkjt;GXK=%(9-m!w1 z8C__bo~lZ7an=28QGePARbPQ(kS8m{wqI)4V+{=0i9*~=^`gU5h}`i97sbohJFH~D za$G%V`%L4p#w5{>q*7?ID7l^vGIlB@Ax=9%NSDAIs@`l~uYS+?OM8z$yKH{h)nAem zn+&lYv{VVDKoVe#IdFVxFPb=+AImb{>64bJS-yH{Ln_?B0i`&; zO)Ca%D`ERL1cd;bf#r4AHw=Uu_6^J1&cu(|HUa=TDqIVu$i}n-Xel(F|kE$=}xx_LR4e7wqcB@3v%jQq$AU^2lb8a$<>1|$0hmIbxf|TXvbEFJU zvX%}C_tZ-ytq~T>p7aQ}GSb9vXwW0^=pR#8d)wu%=5s#xBh2~<39UTyxKjOIip=yT zPP+MHnz4rh9!{KetOVmQ%~-~xkkvu{M8D_T=CKux=G_&C&C$9QQy9mbs@q`7E_rLo zz7%8VfQcokvkX?4!7QwAxF~-_1|_aRSlm%J3(4Av5gkS*Q$Hwo#=KU4WR84w3cJx+ zPn$o~uQK0l*j?$`>?~mYS!;-!%B1f%+;jYnmDiLl-eDI*!AB+>&Xg7znO7R?Yp%&3 zOE|wZ@!Y)%PCs&?Q$$VGUz1=c^Fgs<%kJZ(wjW8 z|7xi<^P6v;r6YEeWv%12=4kU?bEdhzH>UQ=Dai3k9t@uw&2cAkp&upVEPiJq!DZAm zN7aW>w1^bE;*}mcrpmvQ8Ez^S#(mIQDZ* zJ3kdgHSq(P#@yW6R%I2^(qe0cKNr7z+w7RswELrk zc{5g5k(E%{u9@2QkLsNE0CD7-hKbUWSjT zYn#5#m7mdixU>E\n" +"POT-Creation-Date: 2012-01-07 13:47-0600\n" +"PO-Revision-Date: 2012-01-07 19:44+0000\n" +"Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -23,27 +23,15 @@ msgstr "" msgid "Invalid file given for media type." msgstr "Odovzdaný nesprávny súbor pre daný typ média." -#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41 msgid "Username" msgstr "Prihlasovacie meno" -#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45 msgid "Password" msgstr "Heslo" -#: mediagoblin/auth/forms.py:35 -msgid "Passwords must match." -msgstr "Heslá sa musia zhodovať." - -#: mediagoblin/auth/forms.py:37 -msgid "Confirm password" -msgstr "Potvrdiť heslo" - -#: mediagoblin/auth/forms.py:39 -msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "Prepíš ho sem opätovne kvôli uisteniu, že nedošlo k preklepu." - -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:34 msgid "Email address" msgstr "E-mailová adresa" @@ -59,7 +47,7 @@ msgstr "Prepáč, rovnaké prihlasovacie meno už niekto používa." msgid "Sorry, a user with that email address already exists." msgstr "Prepáč, používateľ s rovnakou e-mailovou adresou už existuje." -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:180 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -67,70 +55,108 @@ msgstr "" "Tvoja e-mailová adresa bola úspešne overená. Môžeš sa hneď prihlásiť, " "upraviť svoj profil a vkladať výtvory! " -#: mediagoblin/auth/views.py:185 +#: mediagoblin/auth/views.py:186 msgid "The verification key or user id is incorrect" -msgstr "Nesprávny overovací kľúč alebo používateľské ID" +msgstr "Nesprávny overovací kľúč alebo používateľský identifikátor" -#: mediagoblin/auth/views.py:203 +#: mediagoblin/auth/views.py:204 msgid "You must be logged in so we know who to send the email to!" -msgstr "Aby sme ti mohli zaslať e-mail, je potrebné byť prihláseným!" +msgstr "" +"Aby sme ti mohli zaslať e-mailovú správu, je potrebné byť prihláseným!" -#: mediagoblin/auth/views.py:211 +#: mediagoblin/auth/views.py:212 msgid "You've already verified your email address!" msgstr "Tvoja e-mailová adresa už bola raz overená!" -#: mediagoblin/auth/views.py:224 +#: mediagoblin/auth/views.py:225 msgid "Resent your verification email." -msgstr "Opätovne zaslať overovaciu správu." +msgstr "Opätovne zaslať overovaciu správu na e-mail." -#: mediagoblin/auth/views.py:265 +#: mediagoblin/auth/views.py:260 +msgid "" +"An email has been sent with instructions on how to change your password." +msgstr "" + +#: mediagoblin/auth/views.py:270 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" -"Nebolo ti možné zaslať správu ohľadom obnovy hesla, nakoľko je tvoje " -"používateľské meno buď neaktívne alebo e-mailová adresa účtu neoverená." +"Nebolo ti možné zaslať e-mailovú správu ohľadom obnovy hesla, nakoľko je " +"tvoje používateľské meno buď neaktívne alebo e-mailová adresa účtu " +"neoverená." + +#: mediagoblin/auth/views.py:282 +msgid "Couldn't find someone with that username or email." +msgstr "" + +#: mediagoblin/auth/views.py:330 +msgid "You can now log in using your new password." +msgstr "" #: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Nadpis" -#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "Charakteristika tohto diela" + +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35 msgid "Tags" -msgstr "Štítky" +msgstr "Značky" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas." -msgstr "Oddeľ štítky pomocou čiarky." +#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37 +msgid "Separate tags by commas." +msgstr "" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:37 msgid "Slug" msgstr "Unikátna časť adresy" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:38 msgid "The slug can't be empty" -msgstr "Unikátna časť adresy musí byť vyplnená" +msgstr "Unikátna časť adresy nesmie byť prázdna" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:39 msgid "" -"The title part of this media's URL. You usually don't need to change this." -msgstr "Titulná časť URL odkazu média. Zvyčajne to meniť nemusíš." +"The title part of this media's address. You usually don't need to change " +"this." +msgstr "" -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:46 msgid "Bio" msgstr "Bio" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:48 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:53 msgid "Website" msgstr "Webstránka" -#: mediagoblin/edit/forms.py:49 +#: mediagoblin/edit/forms.py:60 msgid "Old password" msgstr "Staré heslo" -#: mediagoblin/edit/forms.py:52 -msgid "New Password" -msgstr "Nové heslo" +#: mediagoblin/edit/forms.py:62 +msgid "Enter your old password to prove you own this account." +msgstr "" + +#: mediagoblin/edit/forms.py:65 +msgid "New password" +msgstr "" #: mediagoblin/edit/views.py:65 msgid "An entry with that slug already exists for this user." @@ -138,45 +164,49 @@ msgstr "Položku s rovnakou unikátnou časťou adresy už niekde máš." #: mediagoblin/edit/views.py:86 msgid "You are editing another user's media. Proceed with caution." -msgstr "Upravuješ médiá niekoho iného. Pristupuj opatrne." +msgstr "Upravuješ médiá niekoho iného. Dbaj na to." #: mediagoblin/edit/views.py:156 msgid "You are editing a user's profile. Proceed with caution." -msgstr "Upravuješ používateľský profil. Pristupuj opatrne." +msgstr "Upravuješ používateľský profil. Dbaj na to." -#: mediagoblin/edit/views.py:171 +#: mediagoblin/edit/views.py:174 +msgid "Profile changes saved" +msgstr "" + +#: mediagoblin/edit/views.py:200 msgid "Wrong password" msgstr "Nesprávne heslo" -#: mediagoblin/edit/views.py:192 -msgid "Profile edited!" -msgstr "Profil upravený!" +#: mediagoblin/edit/views.py:216 +msgid "Account settings saved" +msgstr "" -#: mediagoblin/media_types/__init__.py:65 -msgid "Could not find any file extension in \"{filename}\"" -msgstr "Nebolo možné nájsť žiadnu príponu v súbore \"{filename}\"" +#: mediagoblin/media_types/__init__.py:77 +msgid "Could not extract any file extension from \"{filename}\"" +msgstr "" + +#: mediagoblin/media_types/__init__.py:88 +msgid "Sorry, I don't support that file type :(" +msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "Súbor" -#: mediagoblin/submit/forms.py:30 -msgid "Description of this work" -msgstr "Charakteristika diela" - -#: mediagoblin/submit/views.py:49 +#: mediagoblin/submit/views.py:50 msgid "You must provide a file." -msgstr "Poskytni súbor." +msgstr "Musíš poskytnúť súbor." -#: mediagoblin/submit/views.py:127 +#: mediagoblin/submit/views.py:128 msgid "Woohoo! Submitted!" msgstr "Juchú! Úspešne vložené!" -#: mediagoblin/submit/views.py:133 -msgid "Invalid file type." -msgstr "Nesprávny typ súboru." +#: mediagoblin/templates/mediagoblin/404.html:22 +msgid "Image of 404 goblin stressing out" +msgstr "Obrázok stresujúceho goblina pri chybovom kóde č. 404" -#: mediagoblin/templates/mediagoblin/404.html:21 +#: mediagoblin/templates/mediagoblin/404.html:23 msgid "Oops!" msgstr "Ajaj!" @@ -192,33 +222,30 @@ msgstr "" "Ak vieš s istotou, že adresa je správna, tak najskôr bola hľadaná stánka " "presunutá alebo zmazaná." -#: mediagoblin/templates/mediagoblin/404.html:32 -msgid "Image of 404 goblin stressing out" -msgstr "Obrázok stresujúceho goblina pri chybovom kóde č. 404" - -#: mediagoblin/templates/mediagoblin/base.html:49 +#: mediagoblin/templates/mediagoblin/base.html:48 msgid "MediaGoblin logo" msgstr "MediaGoblin logo" -#: mediagoblin/templates/mediagoblin/base.html:54 -msgid "Submit media" -msgstr "Vložiť výtvor" +#: mediagoblin/templates/mediagoblin/base.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:157 +msgid "Add media" +msgstr "Pridať výtvor" -#: mediagoblin/templates/mediagoblin/base.html:65 +#: mediagoblin/templates/mediagoblin/base.html:64 msgid "Verify your email!" -msgstr "Over si e-mail!" +msgstr "Over si e-mailovú adresu!" -#: mediagoblin/templates/mediagoblin/base.html:72 +#: mediagoblin/templates/mediagoblin/base.html:71 msgid "log out" -msgstr "odhlásenie" +msgstr "odhlásiť sa" -#: mediagoblin/templates/mediagoblin/base.html:75 +#: mediagoblin/templates/mediagoblin/base.html:74 #: mediagoblin/templates/mediagoblin/auth/login.html:27 #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Prihlásenie" -#: mediagoblin/templates/mediagoblin/base.html:91 +#: mediagoblin/templates/mediagoblin/base.html:86 msgid "" "Powered by MediaGoblin, a GNU project" @@ -230,7 +257,7 @@ msgstr "" msgid "Explore" msgstr "Preskúmať" -#: mediagoblin/templates/mediagoblin/root.html:27 +#: mediagoblin/templates/mediagoblin/root.html:26 msgid "Hi there, welcome to this MediaGoblin site!" msgstr "Ahoj, vitaj na tejto MediaGoblin stránke!" @@ -258,25 +285,21 @@ msgstr "Ešte žiaden nemáš? Je to jednoduché!" #, python-format msgid "" "Create an account at this site\n" -" or\n" -" Set up MediaGoblin on your own server" +" or\n" +" Set up MediaGoblin on your own server" msgstr "" -"<a class=\"header_submit_highlight\" href=\"%(register_url)s\">Vytvoriť bezplatný účet</a>\n" -" alebo\n" -" <a class=\"header_submit\" href=\"http://wiki.mediagoblin.org/HackingHowto\">Sprevádzkovať MediaGoblin na vlastnom serveri</a>" -#: mediagoblin/templates/mediagoblin/root.html:44 +#: mediagoblin/templates/mediagoblin/root.html:40 msgid "Most recent media" msgstr "Najčerstvejšie výtvory" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 -msgid "Enter your new password" -msgstr "Vlož svoje nové heslo" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32 +msgid "Set your new password" +msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Vložiť" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35 +msgid "Set password" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" @@ -284,18 +307,7 @@ msgstr "Obnoviť heslo" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:30 msgid "Send instructions" -msgstr "Zaslať inštrukcie" - -#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "Your password has been changed. Try to log in now." -msgstr "Heslo ti bolo zmenené. Skús sa prihlásiť teraz." - -#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 -msgid "" -"Check your inbox. We sent an email with a URL for changing your password." -msgstr "" -"Skontroluj si e-mailovú schránku. Bol ti zaslaná správa s URL odkazom pre " -"zmenu tvojho hesla." +msgstr "Zaslať postup" #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format @@ -312,12 +324,11 @@ msgid "" msgstr "" "Ahoj %(username)s,\n" "\n" -"pre zmenu svojho hesla k GNU MediaGoblin účtu, otvor nasledujúci URL odkaz vo \n" -"svojom prehliadači:\n" +"pre zmenu svojho hesla k GNU MediaGoblin účtu, otvor nasledujúci odkaz vo svojom prehliadači:\n" "\n" "%(verification_url)s\n" "\n" -"Pokiaľ si myslíš, že došlo k omylu, tak jednoducho ignoruj túto správu a neprestávaj byť šťastným goblinom!" +"Pokiaľ si myslíš, že došlo k omylu, tak jednoducho ignoruj túto správu a buď šťastným goblinom!" #: mediagoblin/templates/mediagoblin/auth/login.html:30 msgid "Logging in failed!" @@ -329,17 +340,17 @@ msgstr "Ešte nemáš účet?" #: mediagoblin/templates/mediagoblin/auth/login.html:36 msgid "Create one here!" -msgstr "Vytvoriť jeden tu!" +msgstr "Vytvor si jeden tu!" #: mediagoblin/templates/mediagoblin/auth/login.html:42 msgid "Forgot your password?" msgstr "Zabudnuté heslo?" -#: mediagoblin/templates/mediagoblin/auth/register.html:27 +#: mediagoblin/templates/mediagoblin/auth/register.html:32 msgid "Create an account!" msgstr "Vytvoriť účet!" -#: mediagoblin/templates/mediagoblin/auth/register.html:31 +#: mediagoblin/templates/mediagoblin/auth/register.html:36 msgid "Create" msgstr "Vytvoriť" @@ -355,7 +366,7 @@ msgid "" msgstr "" "Ahoj %(username)s,\n" "\n" -"pre aktiváciu tvojho GNU MediaGoblin účtu, otvor nasledujúci URL odkaz vo\n" +"pre aktiváciu tvojho GNU MediaGoblin účtu, otvor nasledujúci odkaz vo\n" "svojom prehliadači:\n" "\n" "%(verification_url)s" @@ -371,10 +382,16 @@ msgid "Cancel" msgstr "Zrušiť" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "Uložiť zmeny" +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34 +#, python-format +msgid "Changing %(username)s's account settings" +msgstr "" + #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" @@ -384,51 +401,96 @@ msgstr "Úprava profilu, ktorý vlastní %(username)s" #: mediagoblin/templates/mediagoblin/listings/tag.html:35 #, python-format msgid "Media tagged with: %(tag_name)s" -msgstr "Výtvory označené s: %(tag_name)s" +msgstr "Výtvory označené ako: %(tag_name)s" -#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34 +#: mediagoblin/templates/mediagoblin/media_displays/video.html:46 msgid "Original" msgstr "Originál" +#: mediagoblin/templates/mediagoblin/media_displays/video.html:33 +msgid "" +"Sorry, this video will not work because \n" +"\t your web browser does not support HTML5 \n" +"\t video." +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:36 +msgid "" +"You can get a modern web browser that \n" +"\t can play this video at \n" +"\t http://getfirefox.com!" +msgstr "" + #: mediagoblin/templates/mediagoblin/submit/start.html:26 -msgid "Submit yer media" -msgstr "Vlož svoj výtvor" +msgid "Add your media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Add" +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format msgid "%(username)s's media" -msgstr "Výtvory používateľa %(username)s" +msgstr "Výtvory, ktoré vlastní %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:37 #, python-format msgid "%(username)s's media" -msgstr "Výtvory, ktoré vlastní %(username)s" +msgstr "Výtvory, ktoré vlastní %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:60 #, python-format -msgid "By %(username)s on %(date)s" -msgstr "Od %(username)s v čase %(date)s" +msgid "Added on %(date)s." +msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 -msgid "Post a comment" -msgstr "Zaslať komentár" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 -msgid "at" -msgstr "o" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 -msgid "Post comment!" -msgstr "Zaslať komentár!" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:69 msgid "Edit" msgstr "Upraviť" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:73 msgid "Delete" msgstr "Odstrániť" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:79 +#, python-format +msgid "%(comment_count)s comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:81 +#, python-format +msgid "%(comment_count)s comments" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:83 +msgid "No comments yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:91 +msgid "Add one" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:100 +msgid "" +"Type your comment here. You can use Markdown for" +" formatting." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:104 +msgid "Add this comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:126 +msgid "at" +msgstr "o" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:141 +#, python-format +msgid "

❖ Browsing media by %(username)s

" +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -440,24 +502,24 @@ msgstr "Odstrániť navždy" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:22 msgid "Media processing panel" -msgstr "Sekcia spracovania médií" +msgstr "Sekcia spracovania výtvorov" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:25 msgid "" "You can track the state of media being processed for your gallery here." -msgstr "Tu môžeš sledovať priebeh spracovania médií pre svoju galériu." +msgstr "Tu môžeš sledovať priebeh spracovania výtvorov pre svoju galériu." #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:28 msgid "Media in-processing" -msgstr "Médiá v procese spracovania" +msgstr "Výtvory sa spracúvajú" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:46 msgid "No media in-processing" -msgstr "Žiadne médiá v procese spracovania" +msgstr "Žiadne výtvory sa nespracúvajú" #: mediagoblin/templates/mediagoblin/user_pages/processing_panel.html:50 msgid "These uploads failed to process:" -msgstr "Nasledovné vloženia neprešli spracovaním:" +msgstr "Nasledovné nahratia neprešli spracovaním:" #: mediagoblin/templates/mediagoblin/user_pages/user.html:31 #: mediagoblin/templates/mediagoblin/user_pages/user.html:89 @@ -467,7 +529,7 @@ msgstr "Profil, ktorý vlastní %(username)s" #: mediagoblin/templates/mediagoblin/user_pages/user.html:43 msgid "Sorry, no such user found." -msgstr "Prepáč, používateľské meno nenájdené." +msgstr "Prepáč, zadané používateľské meno nenájdené." #: mediagoblin/templates/mediagoblin/user_pages/user.html:50 #: mediagoblin/templates/mediagoblin/user_pages/user.html:70 @@ -481,7 +543,7 @@ msgstr "Takmer hotovo! Ešte ti musí byť aktivovaný účet." #: mediagoblin/templates/mediagoblin/user_pages/user.html:58 msgid "" "An email should arrive in a few moments with instructions on how to do so." -msgstr "E-mailová správa s popisom ako to spraviť, by mala onedlho doraziť." +msgstr "E-mailová správa s popisom ako to spraviť, by mal zanedlho doraziť." #: mediagoblin/templates/mediagoblin/user_pages/user.html:62 msgid "In case it doesn't:" @@ -489,7 +551,7 @@ msgstr "V prípade, že sa tak nestalo:" #: mediagoblin/templates/mediagoblin/user_pages/user.html:65 msgid "Resend verification email" -msgstr "Opätovne zaslať overovaciu správu" +msgstr "Opätovne zaslať overovaciu správu na e-mail" #: mediagoblin/templates/mediagoblin/user_pages/user.html:73 msgid "" @@ -505,41 +567,42 @@ msgid "" "If you are that person but you've lost your verification email, you can log in and resend it." msgstr "" -"Pokiaľ si to ty, ale už nemáš overovaciu správu, tak sa môžeš prihlásiť a preposlať si ju." #: mediagoblin/templates/mediagoblin/user_pages/user.html:96 msgid "Here's a spot to tell others about yourself." -msgstr "Povedz tu o sebe ostatným." +msgstr "Miesto, kde smieš povedať čo to o sebe ostatným." #: mediagoblin/templates/mediagoblin/user_pages/user.html:101 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:118 msgid "Edit profile" msgstr "Upraviť profil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:106 msgid "This user hasn't filled in their profile (yet)." -msgstr "Dotyčná osoba ešte nevyplnila svoj profil (zatiaľ)." +msgstr "Dotyčný používateľ ešte nevyplnil svoj profil (zatiaľ)." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:125 +msgid "Change account settings" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:138 #, python-format msgid "View all of %(username)s's media" msgstr "Zhliadnuť všetky výtvory, ktoré vlastní %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:151 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" "Všetky tvoje výtvory sa objavia práve tu, ale zatiaľ nemáš nič pridané." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 -msgid "Add media" -msgstr "Pridať výtvor" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:163 +#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72 msgid "There doesn't seem to be any media here yet..." -msgstr "Najskôr tu ešte nebudú žiadne výtvory..." +msgstr "Najskôr sa tu ešte nenachádzajú žiadne výtvory..." #: mediagoblin/templates/mediagoblin/utils/feed_link.html:21 msgid "feed icon" @@ -549,29 +612,35 @@ msgstr "ikona čítačky" msgid "Atom feed" msgstr "Čítačka Atom" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 -msgid "Newer" -msgstr "Novšie" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:39 +msgid "← Newer" +msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 -msgid "Older" -msgstr "Staršie" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:45 +msgid "Older →" +msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +#: mediagoblin/templates/mediagoblin/utils/pagination.html:48 msgid "Go to page:" -msgstr "Ísť na stránku:" +msgstr "Prejsť na stránku:" + +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32 +msgid "newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43 +msgid "older" +msgstr "" #: mediagoblin/templates/mediagoblin/utils/tags.html:20 -msgid "Tagged with" -msgstr "Označené s" +msgid "View more media tagged with" +msgstr "" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 -msgid "and" -msgstr "a" - -#: mediagoblin/user_pages/forms.py:24 -msgid "Comment" -msgstr "Komentár" +msgid "or" +msgstr "" #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" @@ -587,14 +656,14 @@ msgstr "Tvoj komentár bol zaslaný!" #: mediagoblin/user_pages/views.py:183 msgid "You deleted the media." -msgstr "Výtvor bol odstránený tebou." +msgstr "Výtvor bol tebou odstránený." #: mediagoblin/user_pages/views.py:190 msgid "The media was not deleted because you didn't check that you were sure." -msgstr "Výtvor nebol odstránený, nakoľko chýbala tvoja konfirmácia." +msgstr "Výtvor nebol odstránený, nakoľko chýbalo tvoje potvrdenie." #: mediagoblin/user_pages/views.py:198 msgid "You are about to delete another user's media. Proceed with caution." -msgstr "Chystáš sa odstrániť výtvory niekoho iného. Pristupuj opatrne." +msgstr "Chystáš sa odstrániť výtvory niekoho iného. Dbaj na to." diff --git a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.mo index 9ad54a834e25ff6192466cc557cb23a9553b063a..73bb41134a012553df8260edef2902c4c5a0e8e9 100644 GIT binary patch delta 5072 zcmeIzZEO_B8Nl)J3$Zbn7aJQKzzhcCH|#qcFyK0F4GtkG7z#8Ig*NQnt?k2ix5w_< z#vnM-V4zK-B5xWLTBNE%{nCs^|D4BRlE0{{rQKi+=kxlqtxj*D*LAXJQeu3{=o}DRy(d3`_7w zC>ebj<$dQQ|B|A2X^=q15T3la5_yMeM0udyZ~rPvM_W-+xCbA_L6kYafU-vJVTDR2 zTTm8l6c^xL4B-nX&zDL5S8z~HuQG=wcHl0Q4qnH__yIQH0@9#y3vR&2aSy(QvicvT z6UoSabnq#Zsmx*&l9?1TR&@Y1epec%bMRA?#c|fZ;Wx;%tM_p^W|JlfWCeZ>cjFWI z63W_WWtb1*Rvg0PxEmj!b7E7cu^G=JU8+*{x;&Q(a3FKH3BQH|n2l#q=J-5HV825d z+3$VdN4f67dQm$OJcoe`6Io2^0&Dw}yF+iE6~4AqEN@nIyOlxonKf)PcD^f}DI zS5danYbXJnL0L4HP%`relvI9%_hS)TU?r}_HhdO?cpfPsYCKy)oQe`~1x}UyKc9nY z8rrc5NLt?yNa^7-$uFb z8qVhZYQo%1he4!GwV?!JqKy1|n2$%1b*PS^)QeLni|!5d@FP5fUS(!(d*)?!)ggSG z_7`yrF0EpR;bBZkq$fF$k^TzvFpqS|h$i}0AnQggLZ(f93FWzMC>a?<8QCF}%p66Q zgF4~2zloCaOPGuApscy~s>y#o2jgopi>m~?IiHR)(!D6DI*iisFfvGW8u_Ys{PyD7 zOdxYn?r%Z~Xbnm~n^C69#!WbY#Grm%Oa2#e@OK(ye=lTDh+(Y9Aq?S3ln&-l6jop@ z$|~Q69rz@+;yGN3WjsumYCW?4)NcF&ejoSXW#p?uDc&X>A4CTa;VvA<#L9@jfie|` zk-pV2l&Ls}h4?3&h`GVcu9$+$IiG`4@w#vcK8sJ_o5)zyBV3e$q`uC<5C^Z}Zrsd5 zkZpJ#rC|IKW#87{mwE63l)2l6UHEOx#y?{Leu%P$#w^TCX`yd1%6(-x7H6QUtZocj z@wl0A9}8Q(3Ae`4{yCTKaK-U{oag0Oc7eBL`cCiV{9sv2vh~W5XY?}L>UW}vE*&=` zQA39YG*_!4ErDdKY73|P*N*AB+~R1*=rbd#Et39ao{%$bCCs#Lcl1Uqa$&&gwQt;K z%ALBhI%2qHjnm+LnBP{|Z8$n)nh9Q#aJ`LVXBLOMjYOB3c{FJ_PQPV)fw4mymm7(& z8B@zMmyKIu%e2ctDyw@P(@q$1-cjY~+i$dbV-cOOTy1W5Z6oY@$$}}lowgPC_7!|H zC|46zuI`K`BHFRyCWF)cQMX&W-G-}2`qq}M&A1Vb4Hu3p&8oBL(hoMGT}vlzt1mqU zZS^O3lDznVGz(V>@$}qeVJ0d5 z40z>}_b)MQvZ!5yX<^c2+6|{ctvB84aimYuGmtR*ueW+HO*Usgq$8FL(&vs#nRbhUV50iut7?6!C1{F{jz>D zq(ic*Oq;iuPWtAN7p>f|detKT?sR_*-d~FL<{6QQZ92|ysyLjTO84TgW8H1qW`o{n z_3E&ZknHOgLwDO|=lvDkuA6KQ1R{pbw0A~rGi1bK4GGf?ko~P@*mVMN!|sVN1A&m? zM8i%+>uSHDC1AAbPUetb+(<9)2KD9iy7A_eE}s5Kl$6CS+w}JZdG2EQ$~y2imcE;)l?2~uZEs-E6|I?v{lSgCC{fQ=B%>;w zjfB;&V^)`rN@8T`r!zNdvYV%Nr2NDc$PC^7xiy?ml+HW!IV#JkThn~gWR80NKNrcU z_fHu8ey_c5gZI|dSG+f-l}sa7rmfh#^4C^Z_8rt6(&Sy8Hn^y|Y{W`NR>O`$XeLMTFSvLk3T)%H=^TLJ0N6PB5K23do_1>rb`uxJ(Yjf&f z)#i39Vr1s;dp~_eUsc)ju`2qh(E9&=IX^bI K*Hw3_^y(jTRkpAI delta 3265 zcmb`{4{TM{9l-I^7ATbRr>!kjDVzc#E$!=jPbjp7VJX8^X6c~DxP`g<-n)J8()aGg zdv99`VGlMYLUdU?Y9KDlGz3kio2)Ztab`%EahZw1#JMTxHqD6pzbtWoBm4edZy7OL zmi=j7-{;)(&O3j8zu$SMa^JYK_*U(VhZKJk{4eJJ-3od7$KR8cN?pU_Q`mrK@e=+R zJMe|sO3lIFV<-L-L#Ze|$kM+0_8KQP#8{UNn@IHJUtC(yx{tTDm{P|N+j$xYTC$O3IRrLa; z>M(}Oa5KsYZIqMkjh>4r;~qds#VM4DpGS$rMXbT!AbTiv&V+eywp>?Nv>Z;sfF_>iuj4K~m4da*PM5Oq5FWzMU z_VdX4l}feqyk#Zvmyq~$$in+ja&!zO6_4R8{5o#MXHb4v{)Td&8*WtUBWPh4eid8s z4J0dS<|?Ib#vAb<=1>-X4`<<`7UCb!Si-S3;R7fqeibEW@1Xo(ypIy8<;*S{O`wFZ z7yED!rMe%)_4p#nhA*RB=dIjbxm~+Z4tN}Ssi%8*mt0-IEdB+hXi}_Nfe&Fhp1>;n zGFIZ_XdazyDz*0fDy_}BIbWO8o5|>copCI4PgSp3IQO2i&E}wPDQeHvH>}E7q1_Uw zKFdwpdDWM*(<6Gq8}+s0ro6o|eTS_B+YPnlYP(=Lc|GogIc@3NcYItAd%jNREH~@8 z*{Lt>v4UXS^D{Bk=M@Tk58YwMFX-t{=ormswCgPn^|0e+n0SIl-q!Zs&~^idT{*6) ztUfk*uDY(Q+O@~8e0Q>ZerH8>zdL5-olNOVCQ)PN4@Qfs0ejr`&BdBlGq-kqBI*rv zVKfMJ!3xv4m>TqGTRI)>uJjl^G@IU9zmhuxPr);(`_x2FV}aMcRB1P zYdNmY**;5o>~n;OkIF--%cA9aI@n|9^AhHQ6NC&2%z?&D=0}acF#dI0%-hKU)3EsL zwmT(p(~;IWi+$U+JC!3l6VpTfgshSGvc#Ba$79NJGs+6pu+0{owC5`M&>IcS%%(4_ zO|&PH?eR4_5${f}X^(ft<5h#(+jrPwj^wF*3*qV3$#~+*xX$k6O_SekT3u#N&aN}b zrJud368D>!?wPm6%UHYhSYW3d*E2QEo6L#kqyMZT2Yq`a@0`2e`9BurHcx8O@+pJR zmqhEV9pt^JCYQM0zp2TilRK6#`A|(hvLatmb9GJXaAFS?vg+Xv7v{HC#b>DPdn~iC zwx#Em(!%oY=z>R~Svuu}j<#KE#QBfvbhSCxGWsuS_3qXYYW2CzgWmTZ&F^+NcggAa zPd^igV9eX?UFpB7X4Uq6Y{@oF^&c~Lw{=PRPM&VN>whWTBON=<`yCg|=Mvi{-%d7` V-S*$tZU2bpT6)a!t?9y5e+M~}e>?yH diff --git a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po index ffd2c04c..c5d3104c 100644 --- a/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sl/LC_MESSAGES/mediagoblin.po @@ -1,5 +1,5 @@ # Translations template for PROJECT. -# Copyright (C) 2011 ORGANIZATION +# Copyright (C) 2012 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # # Translators: @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-04 10:24-0600\n" -"PO-Revision-Date: 2011-12-04 16:23+0000\n" +"POT-Creation-Date: 2012-01-07 13:47-0600\n" +"PO-Revision-Date: 2012-01-07 19:44+0000\n" "Last-Translator: cwebber \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -23,27 +23,15 @@ msgstr "" msgid "Invalid file given for media type." msgstr "Za vrsto vsebine je bila podana napačna datoteka." -#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41 msgid "Username" msgstr "Uporabniško ime" -#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45 msgid "Password" msgstr "Geslo" -#: mediagoblin/auth/forms.py:35 -msgid "Passwords must match." -msgstr "Gesli morata biti enaki." - -#: mediagoblin/auth/forms.py:37 -msgid "Confirm password" -msgstr "Potrdite geslo" - -#: mediagoblin/auth/forms.py:39 -msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "" - -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:34 msgid "Email address" msgstr "E-poštni naslov" @@ -59,7 +47,7 @@ msgstr "Oprostite, uporabnik s tem imenom že obstaja." msgid "Sorry, a user with that email address already exists." msgstr "" -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:180 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -67,67 +55,103 @@ msgstr "" "Vaš e-poštni naslov je bil potrjen. Sedaj se lahko prijavite, uredite svoj " "profil in pošljete slike." -#: mediagoblin/auth/views.py:185 +#: mediagoblin/auth/views.py:186 msgid "The verification key or user id is incorrect" msgstr "Potrditveni ključ ali uporabniška identifikacija je napačna" -#: mediagoblin/auth/views.py:203 +#: mediagoblin/auth/views.py:204 msgid "You must be logged in so we know who to send the email to!" msgstr "" -#: mediagoblin/auth/views.py:211 +#: mediagoblin/auth/views.py:212 msgid "You've already verified your email address!" msgstr "" -#: mediagoblin/auth/views.py:224 +#: mediagoblin/auth/views.py:225 msgid "Resent your verification email." msgstr "Ponovno pošiljanje potrditvene e-pošte." -#: mediagoblin/auth/views.py:265 +#: mediagoblin/auth/views.py:260 +msgid "" +"An email has been sent with instructions on how to change your password." +msgstr "" + +#: mediagoblin/auth/views.py:270 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" +#: mediagoblin/auth/views.py:282 +msgid "Couldn't find someone with that username or email." +msgstr "" + +#: mediagoblin/auth/views.py:330 +msgid "You can now log in using your new password." +msgstr "" + #: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Naslov" -#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35 msgid "Tags" msgstr "Oznake" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas." +#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37 +msgid "Separate tags by commas." msgstr "" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:37 msgid "Slug" msgstr "Oznaka" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:38 msgid "The slug can't be empty" msgstr "Oznaka ne sme biti prazna" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:39 msgid "" -"The title part of this media's URL. You usually don't need to change this." +"The title part of this media's address. You usually don't need to change " +"this." msgstr "" -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:46 msgid "Bio" msgstr "Biografija" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:48 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:53 msgid "Website" msgstr "Spletna stran" -#: mediagoblin/edit/forms.py:49 +#: mediagoblin/edit/forms.py:60 msgid "Old password" msgstr "" -#: mediagoblin/edit/forms.py:52 -msgid "New Password" +#: mediagoblin/edit/forms.py:62 +msgid "Enter your old password to prove you own this account." +msgstr "" + +#: mediagoblin/edit/forms.py:65 +msgid "New password" msgstr "" #: mediagoblin/edit/views.py:65 @@ -142,39 +166,43 @@ msgstr "Urejate vsebino drugega uporabnika. Nadaljujte pazljivo." msgid "You are editing a user's profile. Proceed with caution." msgstr "Urejate uporabniški profil. Nadaljujte pazljivo." -#: mediagoblin/edit/views.py:171 +#: mediagoblin/edit/views.py:174 +msgid "Profile changes saved" +msgstr "" + +#: mediagoblin/edit/views.py:200 msgid "Wrong password" msgstr "" -#: mediagoblin/edit/views.py:192 -msgid "Profile edited!" +#: mediagoblin/edit/views.py:216 +msgid "Account settings saved" msgstr "" -#: mediagoblin/media_types/__init__.py:65 -msgid "Could not find any file extension in \"{filename}\"" +#: mediagoblin/media_types/__init__.py:77 +msgid "Could not extract any file extension from \"{filename}\"" +msgstr "" + +#: mediagoblin/media_types/__init__.py:88 +msgid "Sorry, I don't support that file type :(" msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "Datoteka" -#: mediagoblin/submit/forms.py:30 -msgid "Description of this work" -msgstr "" - -#: mediagoblin/submit/views.py:49 +#: mediagoblin/submit/views.py:50 msgid "You must provide a file." msgstr "Podati morate datoteko." -#: mediagoblin/submit/views.py:127 +#: mediagoblin/submit/views.py:128 msgid "Woohoo! Submitted!" msgstr "Juhej! Poslano." -#: mediagoblin/submit/views.py:133 -msgid "Invalid file type." -msgstr "" +#: mediagoblin/templates/mediagoblin/404.html:22 +msgid "Image of 404 goblin stressing out" +msgstr "Slika napake 404 s paničnim škratom" -#: mediagoblin/templates/mediagoblin/404.html:21 +#: mediagoblin/templates/mediagoblin/404.html:23 msgid "Oops!" msgstr "Opa!" @@ -190,33 +218,30 @@ msgstr "" "Če ste v točnost naslova prepričani, je bila iskana stran morda premaknjena " "ali pa izbrisana." -#: mediagoblin/templates/mediagoblin/404.html:32 -msgid "Image of 404 goblin stressing out" -msgstr "Slika napake 404 s paničnim škratom" - -#: mediagoblin/templates/mediagoblin/base.html:49 +#: mediagoblin/templates/mediagoblin/base.html:48 msgid "MediaGoblin logo" msgstr "Logotip MediaGoblin" -#: mediagoblin/templates/mediagoblin/base.html:54 -msgid "Submit media" -msgstr "Pošlji vsebino" +#: mediagoblin/templates/mediagoblin/base.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:157 +msgid "Add media" +msgstr "Dodaj vsebino" -#: mediagoblin/templates/mediagoblin/base.html:65 +#: mediagoblin/templates/mediagoblin/base.html:64 msgid "Verify your email!" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:72 +#: mediagoblin/templates/mediagoblin/base.html:71 msgid "log out" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:75 +#: mediagoblin/templates/mediagoblin/base.html:74 #: mediagoblin/templates/mediagoblin/auth/login.html:27 #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Prijava" -#: mediagoblin/templates/mediagoblin/base.html:91 +#: mediagoblin/templates/mediagoblin/base.html:86 msgid "" "Powered by MediaGoblin, a GNU project" @@ -226,7 +251,7 @@ msgstr "" msgid "Explore" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:27 +#: mediagoblin/templates/mediagoblin/root.html:26 msgid "Hi there, welcome to this MediaGoblin site!" msgstr "" @@ -250,22 +275,21 @@ msgstr "" #, python-format msgid "" "Create an account at this site\n" -" or\n" -" Set up MediaGoblin on your own server" +" or\n" +" Set up MediaGoblin on your own server" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:44 +#: mediagoblin/templates/mediagoblin/root.html:40 msgid "Most recent media" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 -msgid "Enter your new password" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32 +msgid "Set your new password" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Pošlji" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35 +msgid "Set password" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" @@ -275,15 +299,6 @@ msgstr "" msgid "Send instructions" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "Your password has been changed. Try to log in now." -msgstr "" - -#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 -msgid "" -"Check your inbox. We sent an email with a URL for changing your password." -msgstr "" - #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format msgid "" @@ -314,11 +329,11 @@ msgstr "Ustvarite si ga." msgid "Forgot your password?" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/register.html:27 +#: mediagoblin/templates/mediagoblin/auth/register.html:32 msgid "Create an account!" msgstr "Ustvarite račun." -#: mediagoblin/templates/mediagoblin/auth/register.html:31 +#: mediagoblin/templates/mediagoblin/auth/register.html:36 msgid "Create" msgstr "Ustvari" @@ -350,10 +365,16 @@ msgid "Cancel" msgstr "Prekliči" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "Shrani spremembe" +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34 +#, python-format +msgid "Changing %(username)s's account settings" +msgstr "" + #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" @@ -365,13 +386,32 @@ msgstr "Urejanje profila – %(username)s" msgid "Media tagged with: %(tag_name)s" msgstr "" -#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34 +#: mediagoblin/templates/mediagoblin/media_displays/video.html:46 msgid "Original" msgstr "" +#: mediagoblin/templates/mediagoblin/media_displays/video.html:33 +msgid "" +"Sorry, this video will not work because \n" +"\t your web browser does not support HTML5 \n" +"\t video." +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:36 +msgid "" +"You can get a modern web browser that \n" +"\t can play this video at \n" +"\t http://getfirefox.com!" +msgstr "" + #: mediagoblin/templates/mediagoblin/submit/start.html:26 -msgid "Submit yer media" -msgstr "Pošljite svojo vsebino" +msgid "Add your media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Add" +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format @@ -383,31 +423,57 @@ msgstr "" msgid "%(username)s's media" msgstr "Vsebina uporabnika %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:60 #, python-format -msgid "By %(username)s on %(date)s" +msgid "Added on %(date)s." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 -msgid "Post a comment" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 -msgid "at" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 -msgid "Post comment!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:69 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:73 msgid "Delete" msgstr "" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:79 +#, python-format +msgid "%(comment_count)s comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:81 +#, python-format +msgid "%(comment_count)s comments" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:83 +msgid "No comments yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:91 +msgid "Add one" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:100 +msgid "" +"Type your comment here. You can use Markdown for" +" formatting." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:104 +msgid "Add this comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:126 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:141 +#, python-format +msgid "

❖ Browsing media by %(username)s

" +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -492,30 +558,31 @@ msgid "Here's a spot to tell others about yourself." msgstr "Na tem mestu lahko drugim poveste nekaj o sebi." #: mediagoblin/templates/mediagoblin/user_pages/user.html:101 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:118 msgid "Edit profile" msgstr "Uredi profil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:106 msgid "This user hasn't filled in their profile (yet)." msgstr "Ta uporabnik še ni izpolnil svojega profila." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:125 +msgid "Change account settings" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:138 #, python-format msgid "View all of %(username)s's media" msgstr "Prikaži vso vsebino uporabnika %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:151 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "Tu bo prikazana vaša vsebina, a trenutno še niste dodali nič." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 -msgid "Add media" -msgstr "Dodaj vsebino" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:163 +#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72 msgid "There doesn't seem to be any media here yet..." msgstr "Videti je, da tu še ni nobene vsebine ..." @@ -527,30 +594,36 @@ msgstr "Ikona vira" msgid "Atom feed" msgstr "Ikona Atom" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 -msgid "Newer" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:39 +msgid "← Newer" msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 -msgid "Older" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:45 +msgid "Older →" msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +#: mediagoblin/templates/mediagoblin/utils/pagination.html:48 msgid "Go to page:" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32 +msgid "newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43 +msgid "older" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 -msgid "Tagged with" +msgid "View more media tagged with" msgstr "" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 -msgid "and" +msgid "or" msgstr "" -#: mediagoblin/user_pages/forms.py:24 -msgid "Comment" -msgstr "Komentar" - #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" msgstr "" diff --git a/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sr/LC_MESSAGES/mediagoblin.mo index ece8989faa31253cf521391d10627404560927f2..2a99cb531b2fd2b39ce21db011e18e458ec1c819 100644 GIT binary patch literal 13259 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 X3kzFsxTlxc6aN)6y~O^1eu@3R3e(en delta 3192 zcmeIy>u*#=7{KA_P1@2@+HzAUOrgb=(rtI4S0JU7O9})F)Zh)w>F#NJq{yi4)d!~Z1yZzM_WpTE8lN{ylV9*)BkIE3F|86HnnDh+?bO1y(h z(MMwi_M$xR=Szk@hSKjiKA==g{YjybhQE+8Rb#qRqj4pAu?3&QH;@-p)<~sta2!g% zVwCn;x4j-GP;bVEFo=`!RZPZrF$4Q>JoBqh+zwx2CJ%na2l4K32L_|JEUX-5fNC6z z^N=oTHO|DRu@|@D6-;Na61 zXW|N!Gu(t;+>H{EvnT^zK$-9=%2E7`GTv=mjCXN7E+TA8aV^TYN3jYoeIEWIlJmSk-YC3AHLCKjX-1Zif2zFruZb4bV*%*a6 z6l9r8U@p?6wqPypMG4hqlw`Vza#Ry(T!%I2!#yb1>l`NH1>{1huTU0p6-#(<1KE=r zJuyB{tdPPG4RcX;TELHhyx5GDxDF+ByRZVkbDxi66*8el=~sYqG*6;j=N6QS`%sSP zLzE*tg>s#5A^l@2%;l8O^`LazhBDB8xBU>ZX!S8lE?h)D>PNohtkcOb$%QN=IBF8g z^VulLx*8=J4fpvbl!ZB%Ecbse1&&c2L`kBLP?F>X_To*vf<>nQoB{-7Xdo;EE$uttf*eB?r?l_)#(qaeEniW)n(8-$yyZYbd#JyO8)xNJ^&12lSy#Sch^H zO_+>N;bJsU&iE)wQVyUDJo4fAb*e_W&Yh_70Lpb9z|AUms;`%v!l9ZW(G+e<_rreOujLh8_YJJoS+P04f;_2IPoKtKo0fMqz#^6Q;T z`7b9da6Z$;F&(mXVNt+{n#B>-VAy`MLp8LU{`I;i)D_m2-4fd9(Q8Z{G3}@}Y;6V& zt3!8N(ROXNFye?oc@3Q4OJBkoVATwZcJt?+FcE9RY2J zCPj6tWd|6zheC&`&5cphj##Y9vYqo&U+X`ak(-cVo89-{?LSjcnUv9JZ!kKn!0=0s zH`^K2b;DJ+lJC^#ghvpl zs2Rw226A2*YlaDqjv8$d-O@AsjuG)Vv0T$hEy;E!k9o7Kt0ibf)#_p5LB3b%F~e>{ zv(eUO28QG243=z3B69uhGyRD*7At8pEL*pmVWtVO#`Q$IODe-n1|>VBBb{bPhlDt2 zMWS?xIK30i;~iE5SLGy5s-Ui{FC(Lh3F57gJCD4dYU18vp\n" "Language-Team: Serbian (http://www.transifex.net/projects/p/mediagoblin/team/sr/)\n" "MIME-Version: 1.0\n" @@ -22,27 +22,15 @@ msgstr "" msgid "Invalid file given for media type." msgstr "" -#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41 msgid "Username" msgstr "" -#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45 msgid "Password" msgstr "" -#: mediagoblin/auth/forms.py:35 -msgid "Passwords must match." -msgstr "" - -#: mediagoblin/auth/forms.py:37 -msgid "Confirm password" -msgstr "" - -#: mediagoblin/auth/forms.py:39 -msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "" - -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:34 msgid "Email address" msgstr "" @@ -58,73 +46,109 @@ msgstr "" msgid "Sorry, a user with that email address already exists." msgstr "" -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:180 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "" -#: mediagoblin/auth/views.py:185 +#: mediagoblin/auth/views.py:186 msgid "The verification key or user id is incorrect" msgstr "" -#: mediagoblin/auth/views.py:203 +#: mediagoblin/auth/views.py:204 msgid "You must be logged in so we know who to send the email to!" msgstr "" -#: mediagoblin/auth/views.py:211 +#: mediagoblin/auth/views.py:212 msgid "You've already verified your email address!" msgstr "" -#: mediagoblin/auth/views.py:224 +#: mediagoblin/auth/views.py:225 msgid "Resent your verification email." msgstr "" -#: mediagoblin/auth/views.py:265 +#: mediagoblin/auth/views.py:260 +msgid "" +"An email has been sent with instructions on how to change your password." +msgstr "" + +#: mediagoblin/auth/views.py:270 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" +#: mediagoblin/auth/views.py:282 +msgid "Couldn't find someone with that username or email." +msgstr "" + +#: mediagoblin/auth/views.py:330 +msgid "You can now log in using your new password." +msgstr "" + #: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "" -#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35 msgid "Tags" msgstr "" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas." +#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37 +msgid "Separate tags by commas." msgstr "" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:37 msgid "Slug" msgstr "" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:38 msgid "The slug can't be empty" msgstr "" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:39 msgid "" -"The title part of this media's URL. You usually don't need to change this." +"The title part of this media's address. You usually don't need to change " +"this." msgstr "" -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:46 msgid "Bio" msgstr "" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:48 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:53 msgid "Website" msgstr "" -#: mediagoblin/edit/forms.py:49 +#: mediagoblin/edit/forms.py:60 msgid "Old password" msgstr "" -#: mediagoblin/edit/forms.py:52 -msgid "New Password" +#: mediagoblin/edit/forms.py:62 +msgid "Enter your old password to prove you own this account." +msgstr "" + +#: mediagoblin/edit/forms.py:65 +msgid "New password" msgstr "" #: mediagoblin/edit/views.py:65 @@ -139,39 +163,43 @@ msgstr "" msgid "You are editing a user's profile. Proceed with caution." msgstr "" -#: mediagoblin/edit/views.py:171 +#: mediagoblin/edit/views.py:174 +msgid "Profile changes saved" +msgstr "" + +#: mediagoblin/edit/views.py:200 msgid "Wrong password" msgstr "" -#: mediagoblin/edit/views.py:192 -msgid "Profile edited!" +#: mediagoblin/edit/views.py:216 +msgid "Account settings saved" msgstr "" -#: mediagoblin/media_types/__init__.py:65 -msgid "Could not find any file extension in \"{filename}\"" +#: mediagoblin/media_types/__init__.py:77 +msgid "Could not extract any file extension from \"{filename}\"" +msgstr "" + +#: mediagoblin/media_types/__init__.py:88 +msgid "Sorry, I don't support that file type :(" msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "" -#: mediagoblin/submit/forms.py:30 -msgid "Description of this work" -msgstr "" - -#: mediagoblin/submit/views.py:49 +#: mediagoblin/submit/views.py:50 msgid "You must provide a file." msgstr "" -#: mediagoblin/submit/views.py:127 +#: mediagoblin/submit/views.py:128 msgid "Woohoo! Submitted!" msgstr "" -#: mediagoblin/submit/views.py:133 -msgid "Invalid file type." +#: mediagoblin/templates/mediagoblin/404.html:22 +msgid "Image of 404 goblin stressing out" msgstr "" -#: mediagoblin/templates/mediagoblin/404.html:21 +#: mediagoblin/templates/mediagoblin/404.html:23 msgid "Oops!" msgstr "" @@ -185,33 +213,30 @@ msgid "" " been moved or deleted." msgstr "" -#: mediagoblin/templates/mediagoblin/404.html:32 -msgid "Image of 404 goblin stressing out" -msgstr "" - -#: mediagoblin/templates/mediagoblin/base.html:49 +#: mediagoblin/templates/mediagoblin/base.html:48 msgid "MediaGoblin logo" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:54 -msgid "Submit media" +#: mediagoblin/templates/mediagoblin/base.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:157 +msgid "Add media" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:65 +#: mediagoblin/templates/mediagoblin/base.html:64 msgid "Verify your email!" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:72 +#: mediagoblin/templates/mediagoblin/base.html:71 msgid "log out" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:75 +#: mediagoblin/templates/mediagoblin/base.html:74 #: mediagoblin/templates/mediagoblin/auth/login.html:27 #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:91 +#: mediagoblin/templates/mediagoblin/base.html:86 msgid "" "Powered by MediaGoblin, a GNU project" @@ -221,7 +246,7 @@ msgstr "" msgid "Explore" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:27 +#: mediagoblin/templates/mediagoblin/root.html:26 msgid "Hi there, welcome to this MediaGoblin site!" msgstr "" @@ -245,21 +270,20 @@ msgstr "" #, python-format msgid "" "Create an account at this site\n" -" or\n" -" Set up MediaGoblin on your own server" +" or\n" +" Set up MediaGoblin on your own server" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:44 +#: mediagoblin/templates/mediagoblin/root.html:40 msgid "Most recent media" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 -msgid "Enter your new password" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32 +msgid "Set your new password" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35 +msgid "Set password" msgstr "" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 @@ -270,15 +294,6 @@ msgstr "" msgid "Send instructions" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "Your password has been changed. Try to log in now." -msgstr "" - -#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 -msgid "" -"Check your inbox. We sent an email with a URL for changing your password." -msgstr "" - #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format msgid "" @@ -309,11 +324,11 @@ msgstr "" msgid "Forgot your password?" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/register.html:27 +#: mediagoblin/templates/mediagoblin/auth/register.html:32 msgid "Create an account!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/register.html:31 +#: mediagoblin/templates/mediagoblin/auth/register.html:36 msgid "Create" msgstr "" @@ -339,10 +354,16 @@ msgid "Cancel" msgstr "" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "" +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34 +#, python-format +msgid "Changing %(username)s's account settings" +msgstr "" + #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" @@ -354,12 +375,31 @@ msgstr "" msgid "Media tagged with: %(tag_name)s" msgstr "" -#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34 +#: mediagoblin/templates/mediagoblin/media_displays/video.html:46 msgid "Original" msgstr "" +#: mediagoblin/templates/mediagoblin/media_displays/video.html:33 +msgid "" +"Sorry, this video will not work because \n" +"\t your web browser does not support HTML5 \n" +"\t video." +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:36 +msgid "" +"You can get a modern web browser that \n" +"\t can play this video at \n" +"\t http://getfirefox.com!" +msgstr "" + #: mediagoblin/templates/mediagoblin/submit/start.html:26 -msgid "Submit yer media" +msgid "Add your media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Add" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 @@ -372,31 +412,57 @@ msgstr "" msgid "%(username)s's media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:60 #, python-format -msgid "By %(username)s on %(date)s" +msgid "Added on %(date)s." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 -msgid "Post a comment" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 -msgid "at" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 -msgid "Post comment!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:69 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:73 msgid "Delete" msgstr "" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:79 +#, python-format +msgid "%(comment_count)s comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:81 +#, python-format +msgid "%(comment_count)s comments" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:83 +msgid "No comments yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:91 +msgid "Add one" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:100 +msgid "" +"Type your comment here. You can use Markdown for" +" formatting." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:104 +msgid "Add this comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:126 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:141 +#, python-format +msgid "

❖ Browsing media by %(username)s

" +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -477,30 +543,31 @@ msgid "Here's a spot to tell others about yourself." msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:101 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:118 msgid "Edit profile" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:106 msgid "This user hasn't filled in their profile (yet)." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:125 +msgid "Change account settings" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:138 #, python-format msgid "View all of %(username)s's media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:151 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 -msgid "Add media" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:163 +#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72 msgid "There doesn't seem to be any media here yet..." msgstr "" @@ -512,28 +579,34 @@ msgstr "" msgid "Atom feed" msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 -msgid "Newer" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:39 +msgid "← Newer" msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 -msgid "Older" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:45 +msgid "Older →" msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +#: mediagoblin/templates/mediagoblin/utils/pagination.html:48 msgid "Go to page:" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32 +msgid "newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43 +msgid "older" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 -msgid "Tagged with" +msgid "View more media tagged with" msgstr "" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 -msgid "and" -msgstr "" - -#: mediagoblin/user_pages/forms.py:24 -msgid "Comment" +msgid "or" msgstr "" #: mediagoblin/user_pages/forms.py:30 diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.mo index c6cf0df960026e29789893073fcd7f3bcce36f51..d647e3739e51ffb7165388b0c7f4a3d6c65c284f 100644 GIT binary patch delta 5114 zcmeIzeN0v79l-Giuqyb5pa{P4fJH>gy?_cx5k=9u&f?~18*Hr}?mfW8d+)h9=KwON z*S1s4vNjDT)g~M1(wS}9mL`?x68GBKtZD0BlC9RP(XCpyWzD)|rd`@J%f7#R4=Orc zHEa6M2=F=gIp;htzu)ux?(o)wk>t6&2~R72_VYKNzt#!z>B>)ZvQkBSjNx1y!ddtn z7T^!?0{#kvcr=?n@I1=>@*JhIuo-DmYjF~8!d#`2s-27JG?InZNaz{}natdYTS*%vxpMtX)U*&Sa zB-LWP3u|!?ZpSz9ELP&N8A=u7TR4ar%sPa-u>}8s`O-d9sZyMcveE{W$gW1YzXc^V zU6_;(_i!N*7(ss3^Zb*Q{mgIwCCUru{Py=yQjkfnci>c9fO*I^P}ROGv4_uVaW;Mr zC895)jQ4wqzl7)=8e}4OFg+Q#3>ib!qP)=Rw{Jt~s23%K`|v^BkCOAVD0^fgJ5(as zgtBQPSc6~2PCSnCev!m~0~ZVFRdQ%z8}32r;1t&52N=K_!k}>nw&SC?4^N}){s-wq zA~J*yK7o?T3|1kLNg``i2T|kKq+uQxKSJ3YXZ#2Lh@@Rz!gZKQm}DXw@NV3TkK+lH zz0u4v@4;Ri#-q3w*V8$3Q!im7zKL|H3OMWXUNXpq8 zdaT18_#__2T3oy+z48u}32jGCph}>0w9juJLbi!|21&bm9tnc_1>(2DdmLXA5YcMqtludIOv+x@z5juiWFMf!GP`!*Y;rH=<++UW??Uxp(H}QAy z$F#qWz37#v_uRiQDY>7^@=2d+KpF6Uluhyo%76nXD|-@Uf=7^(rd~p+bZ1aP`zMqL zT|((^LPfg01SJIlls(jdGH!DP@t@4a!~O#%_VC$48So4eCG{>!$9YTB$7T_-NY#qc z-iuN%cB4%E36u$a3#Fe?l!?BAJMax;j;f)O_^;r?;4Db44PKU#XV6@p4ypMdD%YSTU2u>4Avb!|DuIkM*rBTbnT>5*?j3r68lyqDz0Wgu&7Y z+v-oPL0bdybX@$21V)2X>$1FEGrn3h_JV4&#?t8MLDLO*dAUm`=<^4Ly{6m-@7uYF zY3ZQ&8Soa)9BMFZqNrViw2(B(z2OAZ7fko^JW?N08Hk$$ms`CPGtH9E=&&V=bovqr z%XZUC>xx9_a4=!&#wFhB#r0lW-tI2Twg>M@FQ7jXHZ4LCji#bUUUrhYkU>avPPXPJ zHQ0dJsXJv?nKq-CPU_*Yfi||^w`qm{bgI9AYG(=F>hg`=`uzGyMmTJnjx(Cf4`n7( z-TAv(_n5XB&>dEv4jFMtgKjc(k8O6XD(!LIL}M@*Hf-|W6|v1uBN`3FO*cpydd-mQ z1Y?H1GfXOiorV($Ii=0_`3+4$qgk^``HLB;eI8Kvr#6tcsGxq{0})~uvux8pAOyUd zeJmTo>nM09*-gL=9tgAL^wmpG?Ur;{WWtH4F?e+t*-F>WpRQ!`UDmDui!NY3-+N$cB zs_J@Ov#fD>eN}Z`b#>0?Hdk#i`y)=oidVIA5F2%Eb(57iMSFt&h7DvD9I@ zl>+}*@lUh7_C-(Mq`?1kQRVc_vfHG}tIfSuuh)`Wk-h2UalQvFJM2Asr+rP)FD(1! z?HB#ulns2WqW?SN6EFB)L%Hp3%P$_Q^JFPxf-RN6D F{TnMe#DV|- delta 3279 zcmajfe{7WX9l-H#TcKD=p)IXN?D{PraHV&>woqw>L1~98U_smIBw_RE-P5~=yL+DU z+;dku!%hQ=F1jcWsLQfs$`74!$>Jr%#Sn#C7Q;*o+Z-;FEgBaS6Q^_8rdj6p{@fj< z?4LE)dwrkp^E}@lpU>xek61_d=Kk1l-Eqa=4F5Or|3Q^pUHyBhTB)U6{uG<>JbsA3 z$1Xg#K&k8Tuh@tG!X4N{=LS58azD?P41E^mxpO#Qshs+p#t0q%LB>=gHA*ePJFpuk z@H==6c|k2+s8j|Fu(eF`GJeLh#Q~c zGW@dm0E6+gEG&#Nz(#Ds&B!Ba3_J1Lcn}}MOIX8T>+pSS!@9asltUQd`UPxfepS0z zsYVRp3fzXWLlb3Z_m!`6D9;^5NyTZDfzP5u;xg9bUywBvJLkb7Zp!nGDE%EM{kLFF z8k=df;t-NPWt82IvePuOSoJ7Mgr31To<`DRPMakj)*o{x2MC1*W0pCKI@LiNte2g;Q7q}h2#2fHy zglz}zLmBr4yanHGB>o{9izso8n{XWW;RE%3USgjlvFLJ^IO=DJ@^dD z@%j~3;#*Q6llq@={2v`7w}?x1fY>2d>BC zC<9+WNx^Ti58p#cO$)1wVH?VGN04Z%CsD>bh2O_ZNJMjLlEW!EOrjLiL6m_WFZUlq zqO49Kn^&(QAN3o)B-fvzy!TI(qN}FjH$$mZ79(Gin?~KFTTgA4g8CI*qcUS5U^gi1*^3 za06~#T`JNnuHpJ8xD_w1CjOG^26|k)+sY;8EP;ZEw%iIYXl7<{!|3oOWz|^V+E4 znSrz#GVF+%R6}tylF&0w#?_WR;oKL}cbhtG+MYISZKez>si!S3t_}T-J9p_x$JLRz zVaF^xR(fg5NT;VAHyTnyPAbKFXir*hN?*A{MPY1w{t?f3G( zsBNsMwaw|-hx3(neO0w1cGgH*Q65j4es{fJx2HUd8a1a)*S}of;V*31*j?^r-uw4iaV8J4Z%rfX`?VOXhV0fyC)c4ue-wo zJ?n$vzHqo^&+g!zX4XnujvXAPI0kf2xO?`wzJZ?J{A;c2D*TfR+WfD!Idf|6#U;B6 zCu1?~S;=I%;^wvY`VY20U8=agYbtIqJK@fFYNwM-8am2qEj!`3v5>yYVq>mOC#*=q z@U-dIu4&oJCa2Ab2_x#7>9n3KoN=|`dAe}Yj=J(X?PTE$m0B#mouzCWuG(fM+``F8 z&$xPfwgRs$z(-g7D1Xn&>WZfAGc4cwpE2`Kt$MAher_ddZ)VE$$JRbQryOTUre76U zx3F+H$x7Ak{my=WNkd>{*Oj%Y*%muW6;7o+Q)dmfU`07CRytw)pOUo$S4;Nez=?9n zUg*eBvTt@4W2SZ)(Ws#_Q&V$VbBa_++i?BXrmy=Sbgmp4E1XGW$z0mAyd=viMprUY z{QU^&;f$VeGYN8H*(`U$j2F&ijoH|nwr%9cgIg*)#uBcTmBNdfp0;9FhLS{O>}b|X z7@FG7PMS%7ad^nL!*Bb4>mJFE_SRPH9=;}p4DM<>Q=Y@4uua}9rkwJP5iY7bb4_sv Kt;E&hR{sTq*NX}O diff --git a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po index e195ad70..acace870 100644 --- a/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/sv/LC_MESSAGES/mediagoblin.po @@ -1,5 +1,5 @@ # Translations template for PROJECT. -# Copyright (C) 2011 ORGANIZATION +# Copyright (C) 2012 ORGANIZATION # This file is distributed under the same license as the PROJECT project. # # Translators: @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" "Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2011-12-04 10:24-0600\n" -"PO-Revision-Date: 2011-12-04 16:23+0000\n" +"POT-Creation-Date: 2012-01-07 13:47-0600\n" +"PO-Revision-Date: 2012-01-07 19:44+0000\n" "Last-Translator: cwebber \n" "Language-Team: Swedish (http://www.transifex.net/projects/p/mediagoblin/team/sv/)\n" "MIME-Version: 1.0\n" @@ -24,27 +24,15 @@ msgstr "" msgid "Invalid file given for media type." msgstr "Ogiltig fil för mediatypen." -#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41 msgid "Username" msgstr "Användarnamn" -#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45 msgid "Password" msgstr "Lösenord" -#: mediagoblin/auth/forms.py:35 -msgid "Passwords must match." -msgstr "Lösenorden måste vara identiska." - -#: mediagoblin/auth/forms.py:37 -msgid "Confirm password" -msgstr "Bekräfta lösenord" - -#: mediagoblin/auth/forms.py:39 -msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "Skriv in det igen för att undvika stavfel." - -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:34 msgid "Email address" msgstr "E-postadress" @@ -60,7 +48,7 @@ msgstr "En användare med det användarnamnet finns redan." msgid "Sorry, a user with that email address already exists." msgstr "" -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:180 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" @@ -68,23 +56,28 @@ msgstr "" "Din e-postadress är verifierad. Du kan nu logga in, redigera din profil och " "ladda upp filer!" -#: mediagoblin/auth/views.py:185 +#: mediagoblin/auth/views.py:186 msgid "The verification key or user id is incorrect" msgstr "Verifieringsnyckeln eller användar-IDt är fel." -#: mediagoblin/auth/views.py:203 +#: mediagoblin/auth/views.py:204 msgid "You must be logged in so we know who to send the email to!" msgstr "" -#: mediagoblin/auth/views.py:211 +#: mediagoblin/auth/views.py:212 msgid "You've already verified your email address!" msgstr "" -#: mediagoblin/auth/views.py:224 +#: mediagoblin/auth/views.py:225 msgid "Resent your verification email." msgstr "Skickade ett nytt verifierings-email." -#: mediagoblin/auth/views.py:265 +#: mediagoblin/auth/views.py:260 +msgid "" +"An email has been sent with instructions on how to change your password." +msgstr "" + +#: mediagoblin/auth/views.py:270 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." @@ -92,45 +85,76 @@ msgstr "" "Kunde inte skicka e-poståterställning av lösenord eftersom ditt användarnamn" " är inaktivt eller kontots e-postadress har inte verifierats." +#: mediagoblin/auth/views.py:282 +msgid "Couldn't find someone with that username or email." +msgstr "" + +#: mediagoblin/auth/views.py:330 +msgid "You can now log in using your new password." +msgstr "" + #: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "Titel" -#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "Beskrivning av verket" + +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35 msgid "Tags" msgstr "Taggar" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas." +#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37 +msgid "Separate tags by commas." msgstr "" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:37 msgid "Slug" msgstr "Sökvägsnamn" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:38 msgid "The slug can't be empty" msgstr "Sökvägsnamnet kan inte vara tomt" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:39 msgid "" -"The title part of this media's URL. You usually don't need to change this." -msgstr "Sökvägstitlen för din media. Du brukar inte behöva ändra denna." +"The title part of this media's address. You usually don't need to change " +"this." +msgstr "" -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:46 msgid "Bio" msgstr "Presentation" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:48 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:53 msgid "Website" msgstr "Hemsida" -#: mediagoblin/edit/forms.py:49 +#: mediagoblin/edit/forms.py:60 msgid "Old password" msgstr "" -#: mediagoblin/edit/forms.py:52 -msgid "New Password" +#: mediagoblin/edit/forms.py:62 +msgid "Enter your old password to prove you own this account." +msgstr "" + +#: mediagoblin/edit/forms.py:65 +msgid "New password" msgstr "" #: mediagoblin/edit/views.py:65 @@ -145,39 +169,43 @@ msgstr "Var försiktig, du redigerar någon annans inlägg." msgid "You are editing a user's profile. Proceed with caution." msgstr "Var försiktig, du redigerar en annan användares profil." -#: mediagoblin/edit/views.py:171 +#: mediagoblin/edit/views.py:174 +msgid "Profile changes saved" +msgstr "" + +#: mediagoblin/edit/views.py:200 msgid "Wrong password" msgstr "" -#: mediagoblin/edit/views.py:192 -msgid "Profile edited!" +#: mediagoblin/edit/views.py:216 +msgid "Account settings saved" msgstr "" -#: mediagoblin/media_types/__init__.py:65 -msgid "Could not find any file extension in \"{filename}\"" +#: mediagoblin/media_types/__init__.py:77 +msgid "Could not extract any file extension from \"{filename}\"" +msgstr "" + +#: mediagoblin/media_types/__init__.py:88 +msgid "Sorry, I don't support that file type :(" msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "Fil" -#: mediagoblin/submit/forms.py:30 -msgid "Description of this work" -msgstr "Beskrivning av verket" - -#: mediagoblin/submit/views.py:49 +#: mediagoblin/submit/views.py:50 msgid "You must provide a file." msgstr "Du måste ange en fil" -#: mediagoblin/submit/views.py:127 +#: mediagoblin/submit/views.py:128 msgid "Woohoo! Submitted!" msgstr "Tjohoo! Upladdat!" -#: mediagoblin/submit/views.py:133 -msgid "Invalid file type." -msgstr "" +#: mediagoblin/templates/mediagoblin/404.html:22 +msgid "Image of 404 goblin stressing out" +msgstr "Bild av stressat 404-troll." -#: mediagoblin/templates/mediagoblin/404.html:21 +#: mediagoblin/templates/mediagoblin/404.html:23 msgid "Oops!" msgstr "Ojoj!" @@ -193,33 +221,30 @@ msgstr "" "Om du är säker på att adressen stämmer så kanske sidan du letar efter har " "flyttats eller tagits bort." -#: mediagoblin/templates/mediagoblin/404.html:32 -msgid "Image of 404 goblin stressing out" -msgstr "Bild av stressat 404-troll." - -#: mediagoblin/templates/mediagoblin/base.html:49 +#: mediagoblin/templates/mediagoblin/base.html:48 msgid "MediaGoblin logo" msgstr "MediaGoblin-logotyp" -#: mediagoblin/templates/mediagoblin/base.html:54 -msgid "Submit media" -msgstr "Ladda upp" +#: mediagoblin/templates/mediagoblin/base.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:157 +msgid "Add media" +msgstr "Lägg till media" -#: mediagoblin/templates/mediagoblin/base.html:65 +#: mediagoblin/templates/mediagoblin/base.html:64 msgid "Verify your email!" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:72 +#: mediagoblin/templates/mediagoblin/base.html:71 msgid "log out" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:75 +#: mediagoblin/templates/mediagoblin/base.html:74 #: mediagoblin/templates/mediagoblin/auth/login.html:27 #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "Logga in" -#: mediagoblin/templates/mediagoblin/base.html:91 +#: mediagoblin/templates/mediagoblin/base.html:86 msgid "" "Powered by MediaGoblin, a GNU project" @@ -231,7 +256,7 @@ msgstr "" msgid "Explore" msgstr "Utforska" -#: mediagoblin/templates/mediagoblin/root.html:27 +#: mediagoblin/templates/mediagoblin/root.html:26 msgid "Hi there, welcome to this MediaGoblin site!" msgstr "" @@ -255,22 +280,21 @@ msgstr "" #, python-format msgid "" "Create an account at this site\n" -" or\n" -" Set up MediaGoblin on your own server" +" or\n" +" Set up MediaGoblin on your own server" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:44 +#: mediagoblin/templates/mediagoblin/root.html:40 msgid "Most recent media" msgstr "Senast medier" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 -msgid "Enter your new password" -msgstr "Fyll i ditt lösenord" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32 +msgid "Set your new password" +msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "Skicka" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35 +msgid "Set password" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" @@ -280,17 +304,6 @@ msgstr "" msgid "Send instructions" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "Your password has been changed. Try to log in now." -msgstr "Ditt lösenord är nu ändrat. Testa att logga in nu." - -#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 -msgid "" -"Check your inbox. We sent an email with a URL for changing your password." -msgstr "" -"Kolla din inkorg. Vi har skickat ett e-postmeddelande med en webbadress för " -"att ändra ditt lösenord." - #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format msgid "" @@ -329,11 +342,11 @@ msgstr "Skapa ett här!" msgid "Forgot your password?" msgstr "Glömt ditt lösenord?" -#: mediagoblin/templates/mediagoblin/auth/register.html:27 +#: mediagoblin/templates/mediagoblin/auth/register.html:32 msgid "Create an account!" msgstr "Skapa ett konto!" -#: mediagoblin/templates/mediagoblin/auth/register.html:31 +#: mediagoblin/templates/mediagoblin/auth/register.html:36 msgid "Create" msgstr "Skapa" @@ -364,10 +377,16 @@ msgid "Cancel" msgstr "Avbryt" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "Spara ändringar" +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34 +#, python-format +msgid "Changing %(username)s's account settings" +msgstr "" + #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" @@ -379,13 +398,32 @@ msgstr "Redigerar %(username)ss profil" msgid "Media tagged with: %(tag_name)s" msgstr "" -#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34 +#: mediagoblin/templates/mediagoblin/media_displays/video.html:46 msgid "Original" msgstr "" +#: mediagoblin/templates/mediagoblin/media_displays/video.html:33 +msgid "" +"Sorry, this video will not work because \n" +"\t your web browser does not support HTML5 \n" +"\t video." +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:36 +msgid "" +"You can get a modern web browser that \n" +"\t can play this video at \n" +"\t http://getfirefox.com!" +msgstr "" + #: mediagoblin/templates/mediagoblin/submit/start.html:26 -msgid "Submit yer media" -msgstr "Ladda upp" +msgid "Add your media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Add" +msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format @@ -397,31 +435,57 @@ msgstr "" msgid "%(username)s's media" msgstr "%(username)ss media" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:60 #, python-format -msgid "By %(username)s on %(date)s" +msgid "Added on %(date)s." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 -msgid "Post a comment" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 -msgid "at" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 -msgid "Post comment!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:69 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:73 msgid "Delete" msgstr "" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:79 +#, python-format +msgid "%(comment_count)s comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:81 +#, python-format +msgid "%(comment_count)s comments" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:83 +msgid "No comments yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:91 +msgid "Add one" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:100 +msgid "" +"Type your comment here. You can use Markdown for" +" formatting." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:104 +msgid "Add this comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:126 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:141 +#, python-format +msgid "

❖ Browsing media by %(username)s

" +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -508,20 +572,24 @@ msgid "Here's a spot to tell others about yourself." msgstr "Här kan du berätta för andra om dig själv." #: mediagoblin/templates/mediagoblin/user_pages/user.html:101 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:118 msgid "Edit profile" msgstr "Redigera profil" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:106 msgid "This user hasn't filled in their profile (yet)." msgstr "Den här användaren har inte fyllt i sin profilsida ännu." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:125 +msgid "Change account settings" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:138 #, python-format msgid "View all of %(username)s's media" msgstr "Se all media från %(username)s" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:151 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." @@ -529,11 +597,8 @@ msgstr "" "Här kommer din media att dyka upp, du verkar inte ha lagt till någonting " "ännu." -#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 -msgid "Add media" -msgstr "Lägg till media" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:163 +#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72 msgid "There doesn't seem to be any media here yet..." msgstr "Det verkar inte finnas någon media här ännu." @@ -545,30 +610,36 @@ msgstr "feed-ikon" msgid "Atom feed" msgstr "Atom-feed" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 -msgid "Newer" -msgstr "Nyare" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:39 +msgid "← Newer" +msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 -msgid "Older" -msgstr "Äldre" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:45 +msgid "Older →" +msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +#: mediagoblin/templates/mediagoblin/utils/pagination.html:48 msgid "Go to page:" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32 +msgid "newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43 +msgid "older" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 -msgid "Tagged with" +msgid "View more media tagged with" msgstr "" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 -msgid "and" +msgid "or" msgstr "" -#: mediagoblin/user_pages/forms.py:24 -msgid "Comment" -msgstr "Kommentar" - #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" msgstr "Jag är säker på att jag vill radera detta" diff --git a/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/te/LC_MESSAGES/mediagoblin.mo index cd9fab9fadb90228642594750d6eb0378046f61d..5480404c58fecf345eaee979ae67a755bf11bb31 100644 GIT binary patch literal 13409 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 A5dZ)H delta 3252 zcmb`{du$X%9Ki7@MOv^>+9It8b}CTY(jL761qyG z@{(vmSS9uK2Si%JBNiGH4N}1H2gWGT0BQtt8Y4!757a0j0l&Yyt*>Y>f#!Oj+1c5d z+28Ls_j%*SMX}Ga`#!JuYvq49|6iuc)t`TR)07&*H?sxMgQy)SZcNF_66;r>_sHNiyGN-B?pwwWzAN^R5tMNJH0hM{9QrS2Z zWn3{zf0fr?jd@(x;V=y0t+)yMVkc(cUd&~E^`YdMy66Z=)>D^2Fe?nC~vmP zyN;oZ+lrEk4wQ)xp+w>=X5n|p9ul25z(8)w_#Bk}5|sXl7?Z{wG)7%EEvWUNg^dKDz@CZuL z%j95H(IlshLGye?3YBo3RGhp={uI zjK&livdw#8D$=FaVHLiF5~|ZE#q>Q&s&1ik8BWFuY)3g>?_wW3fgC9HA<9P1;Jy@& zH}XzuD`Ay&Vx2V3(da>W(~et`51z(KuHz`7%jL&m0@kBU+>Wx~4wP{n$WV0_IFLk&pU`FG+1S6)446jdFi6N<MA^uBO#C9EY%p(hG8L0hHW)$~AH%-bjtlS=l$!YkC8A>rlgIgClv;2Ki9bFrylSMfnW#a8P5#LA2dB39MF`R&PT+hd~xCf=k zON*0{SW-;<Yp@e#1K*28|V;m823-N*Cy z^sf#Eb;t}_hWnnbb{7eg^`L|b-! zc$H5tFtuaaQEk}T3>j9FZn2_`+RzU@Fk7z(M|7akup2D9A^Ffs!*N=|k)Ti2ghL^o zLwki43F+QDbTl^wwH+QF)hjGJ$i%HQnoMo3ikh}#u`A1V(=s-9AIr!|$*|3qKc4OG zGpI5(qt<@RXtIKdhg^S_J7}J_sG4K8m=X7ER*8FK_9Va8>*!Fk6V)Lj8ff&Xd12ay z4tTpuTzVG;ZgqAfjX*`sV1auid*e-Jgy86?(ctL%*2FW0<8!-8OgB0v%bh#sg|W@` zAuFmLOppw6??tN_@jB{^h6Xd3h?`qmx-ON-b)PK#GR57P8=Gvgn+C(Ob)y+!sWAI| zl!!OWMWV}~Wrwx1(rjvyFo!HB$`HqG%bV_gocE0z8Fp9q$Z>;HW-XMg^@dqD8f@A$ z?PP+?pikFDT4jNza03Bm&K93C?4UBDYK6)EtU%aSax>fsBa U)8`t>wP)sYSpcUU@\n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" @@ -23,27 +23,15 @@ msgstr "" msgid "Invalid file given for media type." msgstr "" -#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:49 +#: mediagoblin/auth/forms.py:25 mediagoblin/auth/forms.py:41 msgid "Username" msgstr "వాడుకరి పేరు" -#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:53 +#: mediagoblin/auth/forms.py:30 mediagoblin/auth/forms.py:45 msgid "Password" msgstr "సంకేతపదం" -#: mediagoblin/auth/forms.py:35 -msgid "Passwords must match." -msgstr "" - -#: mediagoblin/auth/forms.py:37 -msgid "Confirm password" -msgstr "" - -#: mediagoblin/auth/forms.py:39 -msgid "Type it again here to make sure there are no spelling mistakes." -msgstr "" - -#: mediagoblin/auth/forms.py:42 +#: mediagoblin/auth/forms.py:34 msgid "Email address" msgstr "ఈమెయిలు చిరునామా" @@ -59,73 +47,109 @@ msgstr "" msgid "Sorry, a user with that email address already exists." msgstr "" -#: mediagoblin/auth/views.py:179 +#: mediagoblin/auth/views.py:180 msgid "" "Your email address has been verified. You may now login, edit your profile, " "and submit images!" msgstr "" -#: mediagoblin/auth/views.py:185 +#: mediagoblin/auth/views.py:186 msgid "The verification key or user id is incorrect" msgstr "" -#: mediagoblin/auth/views.py:203 +#: mediagoblin/auth/views.py:204 msgid "You must be logged in so we know who to send the email to!" msgstr "" -#: mediagoblin/auth/views.py:211 +#: mediagoblin/auth/views.py:212 msgid "You've already verified your email address!" msgstr "" -#: mediagoblin/auth/views.py:224 +#: mediagoblin/auth/views.py:225 msgid "Resent your verification email." msgstr "" -#: mediagoblin/auth/views.py:265 +#: mediagoblin/auth/views.py:260 +msgid "" +"An email has been sent with instructions on how to change your password." +msgstr "" + +#: mediagoblin/auth/views.py:270 msgid "" "Could not send password recovery email as your username is inactive or your " "account's email address has not been verified." msgstr "" +#: mediagoblin/auth/views.py:282 +msgid "Couldn't find someone with that username or email." +msgstr "" + +#: mediagoblin/auth/views.py:330 +msgid "You can now log in using your new password." +msgstr "" + #: mediagoblin/edit/forms.py:24 mediagoblin/submit/forms.py:27 msgid "Title" msgstr "శీర్షిక" -#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:32 +#: mediagoblin/edit/forms.py:27 mediagoblin/submit/forms.py:30 +msgid "Description of this work" +msgstr "" + +#: mediagoblin/edit/forms.py:28 mediagoblin/submit/forms.py:31 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:32 mediagoblin/submit/forms.py:35 msgid "Tags" msgstr "" -#: mediagoblin/edit/forms.py:30 mediagoblin/submit/forms.py:34 -msgid "Seperate tags by commas." +#: mediagoblin/edit/forms.py:34 mediagoblin/submit/forms.py:37 +msgid "Separate tags by commas." msgstr "" -#: mediagoblin/edit/forms.py:33 +#: mediagoblin/edit/forms.py:37 msgid "Slug" msgstr "" -#: mediagoblin/edit/forms.py:34 +#: mediagoblin/edit/forms.py:38 msgid "The slug can't be empty" msgstr "" -#: mediagoblin/edit/forms.py:35 +#: mediagoblin/edit/forms.py:39 msgid "" -"The title part of this media's URL. You usually don't need to change this." +"The title part of this media's address. You usually don't need to change " +"this." msgstr "" -#: mediagoblin/edit/forms.py:42 +#: mediagoblin/edit/forms.py:46 msgid "Bio" msgstr "" -#: mediagoblin/edit/forms.py:45 +#: mediagoblin/edit/forms.py:48 +msgid "" +"You can use\n" +" \n" +" Markdown for formatting." +msgstr "" + +#: mediagoblin/edit/forms.py:53 msgid "Website" msgstr "" -#: mediagoblin/edit/forms.py:49 +#: mediagoblin/edit/forms.py:60 msgid "Old password" msgstr "" -#: mediagoblin/edit/forms.py:52 -msgid "New Password" +#: mediagoblin/edit/forms.py:62 +msgid "Enter your old password to prove you own this account." +msgstr "" + +#: mediagoblin/edit/forms.py:65 +msgid "New password" msgstr "" #: mediagoblin/edit/views.py:65 @@ -140,39 +164,43 @@ msgstr "" msgid "You are editing a user's profile. Proceed with caution." msgstr "" -#: mediagoblin/edit/views.py:171 +#: mediagoblin/edit/views.py:174 +msgid "Profile changes saved" +msgstr "" + +#: mediagoblin/edit/views.py:200 msgid "Wrong password" msgstr "" -#: mediagoblin/edit/views.py:192 -msgid "Profile edited!" +#: mediagoblin/edit/views.py:216 +msgid "Account settings saved" msgstr "" -#: mediagoblin/media_types/__init__.py:65 -msgid "Could not find any file extension in \"{filename}\"" +#: mediagoblin/media_types/__init__.py:77 +msgid "Could not extract any file extension from \"{filename}\"" +msgstr "" + +#: mediagoblin/media_types/__init__.py:88 +msgid "Sorry, I don't support that file type :(" msgstr "" #: mediagoblin/submit/forms.py:25 msgid "File" msgstr "" -#: mediagoblin/submit/forms.py:30 -msgid "Description of this work" -msgstr "" - -#: mediagoblin/submit/views.py:49 +#: mediagoblin/submit/views.py:50 msgid "You must provide a file." msgstr "" -#: mediagoblin/submit/views.py:127 +#: mediagoblin/submit/views.py:128 msgid "Woohoo! Submitted!" msgstr "" -#: mediagoblin/submit/views.py:133 -msgid "Invalid file type." +#: mediagoblin/templates/mediagoblin/404.html:22 +msgid "Image of 404 goblin stressing out" msgstr "" -#: mediagoblin/templates/mediagoblin/404.html:21 +#: mediagoblin/templates/mediagoblin/404.html:23 msgid "Oops!" msgstr "" @@ -186,33 +214,30 @@ msgid "" " been moved or deleted." msgstr "" -#: mediagoblin/templates/mediagoblin/404.html:32 -msgid "Image of 404 goblin stressing out" -msgstr "" - -#: mediagoblin/templates/mediagoblin/base.html:49 +#: mediagoblin/templates/mediagoblin/base.html:48 msgid "MediaGoblin logo" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:54 -msgid "Submit media" +#: mediagoblin/templates/mediagoblin/base.html:53 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:157 +msgid "Add media" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:65 +#: mediagoblin/templates/mediagoblin/base.html:64 msgid "Verify your email!" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:72 +#: mediagoblin/templates/mediagoblin/base.html:71 msgid "log out" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:75 +#: mediagoblin/templates/mediagoblin/base.html:74 #: mediagoblin/templates/mediagoblin/auth/login.html:27 #: mediagoblin/templates/mediagoblin/auth/login.html:45 msgid "Log in" msgstr "" -#: mediagoblin/templates/mediagoblin/base.html:91 +#: mediagoblin/templates/mediagoblin/base.html:86 msgid "" "Powered by MediaGoblin, a GNU project" @@ -222,7 +247,7 @@ msgstr "" msgid "Explore" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:27 +#: mediagoblin/templates/mediagoblin/root.html:26 msgid "Hi there, welcome to this MediaGoblin site!" msgstr "" @@ -246,22 +271,21 @@ msgstr "" #, python-format msgid "" "Create an account at this site\n" -" or\n" -" Set up MediaGoblin on your own server" +" or\n" +" Set up MediaGoblin on your own server" msgstr "" -#: mediagoblin/templates/mediagoblin/root.html:44 +#: mediagoblin/templates/mediagoblin/root.html:40 msgid "Most recent media" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:29 -msgid "Enter your new password" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:32 +msgid "Set your new password" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/change_fp.html:33 -#: mediagoblin/templates/mediagoblin/submit/start.html:30 -msgid "Submit" -msgstr "దాఖలు చెయ్యి" +#: mediagoblin/templates/mediagoblin/auth/change_fp.html:35 +msgid "Set password" +msgstr "" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" @@ -271,15 +295,6 @@ msgstr "" msgid "Send instructions" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/fp_changed_success.html:22 -msgid "Your password has been changed. Try to log in now." -msgstr "" - -#: mediagoblin/templates/mediagoblin/auth/fp_email_sent.html:22 -msgid "" -"Check your inbox. We sent an email with a URL for changing your password." -msgstr "" - #: mediagoblin/templates/mediagoblin/auth/fp_verification_email.txt:19 #, python-format msgid "" @@ -310,11 +325,11 @@ msgstr "" msgid "Forgot your password?" msgstr "మీ సంకేతపదాన్ని మర్చిపోయారా?" -#: mediagoblin/templates/mediagoblin/auth/register.html:27 +#: mediagoblin/templates/mediagoblin/auth/register.html:32 msgid "Create an account!" msgstr "" -#: mediagoblin/templates/mediagoblin/auth/register.html:31 +#: mediagoblin/templates/mediagoblin/auth/register.html:36 msgid "Create" msgstr "" @@ -340,10 +355,16 @@ msgid "Cancel" msgstr "రద్దుచేయి" #: mediagoblin/templates/mediagoblin/edit/edit.html:37 +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:40 #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:35 msgid "Save changes" msgstr "మార్పులను భద్రపరచు" +#: mediagoblin/templates/mediagoblin/edit/edit_account.html:34 +#, python-format +msgid "Changing %(username)s's account settings" +msgstr "" + #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format msgid "Editing %(username)s's profile" @@ -355,12 +376,31 @@ msgstr "" msgid "Media tagged with: %(tag_name)s" msgstr "" -#: mediagoblin/templates/mediagoblin/media_displays/video.html:19 +#: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34 +#: mediagoblin/templates/mediagoblin/media_displays/video.html:46 msgid "Original" msgstr "" +#: mediagoblin/templates/mediagoblin/media_displays/video.html:33 +msgid "" +"Sorry, this video will not work because \n" +"\t your web browser does not support HTML5 \n" +"\t video." +msgstr "" + +#: mediagoblin/templates/mediagoblin/media_displays/video.html:36 +msgid "" +"You can get a modern web browser that \n" +"\t can play this video at \n" +"\t http://getfirefox.com!" +msgstr "" + #: mediagoblin/templates/mediagoblin/submit/start.html:26 -msgid "Submit yer media" +msgid "Add your media" +msgstr "" + +#: mediagoblin/templates/mediagoblin/submit/start.html:30 +msgid "Add" msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 @@ -373,31 +413,57 @@ msgstr "" msgid "%(username)s's media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:57 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:60 #, python-format -msgid "By %(username)s on %(date)s" +msgid "Added on %(date)s." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:67 -msgid "Post a comment" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:85 -msgid "at" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:102 -msgid "Post comment!" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/media.html:124 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:69 msgid "Edit" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/media.html:130 +#: mediagoblin/templates/mediagoblin/user_pages/media.html:73 msgid "Delete" msgstr "" +#: mediagoblin/templates/mediagoblin/user_pages/media.html:79 +#, python-format +msgid "%(comment_count)s comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:81 +#, python-format +msgid "%(comment_count)s comments" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:83 +msgid "No comments yet." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:91 +msgid "Add one" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:100 +msgid "" +"Type your comment here. You can use Markdown for" +" formatting." +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:104 +msgid "Add this comment" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:126 +msgid "at" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/media.html:141 +#, python-format +msgid "

❖ Browsing media by %(username)s

" +msgstr "" + #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format msgid "Really delete %(title)s?" @@ -478,30 +544,31 @@ msgid "Here's a spot to tell others about yourself." msgstr "" #: mediagoblin/templates/mediagoblin/user_pages/user.html:101 -#: mediagoblin/templates/mediagoblin/user_pages/user.html:119 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:118 msgid "Edit profile" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:107 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:106 msgid "This user hasn't filled in their profile (yet)." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:133 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:125 +msgid "Change account settings" +msgstr "" + +#: mediagoblin/templates/mediagoblin/user_pages/user.html:138 #, python-format msgid "View all of %(username)s's media" msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:146 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:151 msgid "" "This is where your media will appear, but you don't seem to have added " "anything yet." msgstr "" -#: mediagoblin/templates/mediagoblin/user_pages/user.html:152 -msgid "Add media" -msgstr "" - -#: mediagoblin/templates/mediagoblin/user_pages/user.html:158 +#: mediagoblin/templates/mediagoblin/user_pages/user.html:163 +#: mediagoblin/templates/mediagoblin/utils/object_gallery.html:72 msgid "There doesn't seem to be any media here yet..." msgstr "" @@ -513,30 +580,36 @@ msgstr "" msgid "Atom feed" msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:40 -msgid "Newer" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:39 +msgid "← Newer" msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:46 -msgid "Older" +#: mediagoblin/templates/mediagoblin/utils/pagination.html:45 +msgid "Older →" msgstr "" -#: mediagoblin/templates/mediagoblin/utils/pagination.html:50 +#: mediagoblin/templates/mediagoblin/utils/pagination.html:48 msgid "Go to page:" msgstr "" +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:27 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:32 +msgid "newer" +msgstr "" + +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:38 +#: mediagoblin/templates/mediagoblin/utils/prev_next.html:43 +msgid "older" +msgstr "" + #: mediagoblin/templates/mediagoblin/utils/tags.html:20 -msgid "Tagged with" +msgid "View more media tagged with" msgstr "" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 -msgid "and" +msgid "or" msgstr "" -#: mediagoblin/user_pages/forms.py:24 -msgid "Comment" -msgstr "వ్యాఖ్య" - #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" msgstr "" diff --git a/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/zh_TW/LC_MESSAGES/mediagoblin.mo index 6dda94b7975f56d456852f9232e5429a7087c0ba..a7820c4976fd0473368677bed411cb037dfdf3c8 100644 GIT binary patch delta 1359 zcmYk*TWpj?6u|LAivyX30qSUT!gcw619QWFaz!QRn&tzjfYVi_yqN4aT90F{8iMK_!;%- ze?={P$K)TX@bepuTT$nmP5d(Ix#9f`^q>%G!S_)c8NhcjhPrVHUFcI*p{{!lb=@A+ zo9#FGKI2EIH~hlH-(nl_6zVtgk8fD2Hi^)*>_eS+54E$Cs0W=zEo7PaikZKTTJWZs zudNb!hWL4;whW-wo5X7T3AN6D*okXM_VfM8hYXrY{EH>nxLM=~?!Y>nLA~h>)B+2r z1((+N>+4ZJ#>Y_`-i7|%_e-l62c3A%x>ok$q7r*>vXDqdYXh&9 zxU(rQHx(TXSS!3)%O0FAoa%RCa|^j~t8K%r;(#3+TF8y$FP(D7KXqdXFBNgVo^mJV z32#L{jS-#7j{Hl;1b0U-O=-lSrp{|~e7y8~f&~vb+ z<*|;ZYlHc0oJR6<5j!&MWd^(p<8IPoag3D2#JAnBZ#HHAaT5uoIgAAdC zPfh$I(zASbN8^c-J@E}Z#zNEtUQEGC)Q)Pg6VKxmE?@~xTJeN`P}eio(-dAnKJt~X zbWGhK!rtOSEubRGKs!EyEAgnY4Yh#NsGVIl^G9a=CF)7MM?Lx()WqLRJS{IC&oSmB zhbcZYuSMNATF*c?YQz;7#xz~PQ+NqA@juj~bW@FPT!vck9@Nh2O}xbzLGAFInGfK8 z=A)>0=4affxC=xmTK1tXw4qjZ4RxbisEO{H`3tlD8a3gxS3j?@<;92gUbTHUK;3p2gv)URwUB$U zv1RkC()?ckHt*K$mcO)oTZuE6z19=xwws&n4y(cpDuZ2}k)A+Xs4M6Tb+p9ZWWP;t zo+s~&ea@{}l2m24*%90Ex*L~P2U{afzdM$)H)KUZR=BCfE{`4Zd`WcGg~FX%te#L; zhZP95x7#NpR(DgUWw(bTJwE4fUV+n_?n<1$^1!*D?ss10O*q4=vSY*f(+SSQHRocB kMRN(xx-7TzchjBBridK3?cnUqtMen{GJoUA?8R~U55S Date: Thu, 5 Jan 2012 00:18:17 +0100 Subject: [PATCH 1380/2731] Add DB Mixin classes and use them A bunch of functions on the db objects are really more like "utility functions": They could live outside the classes and be called "by hand" passing the appropiate reference. They usually only use the public API of the object and rarely use database related stuff. Goals: - First, simple: Share the code with the SQL objects, so that the code doesn't need to be duplicated. - Second, it might unclutter the db models and make them more into "model only" stuff. - Doesn't really hurt. --- mediagoblin/db/mixin.py | 90 ++++++++++++++++++++++++++++++++++ mediagoblin/db/mongo/models.py | 63 ++---------------------- mediagoblin/db/sql/models.py | 5 +- 3 files changed, 97 insertions(+), 61 deletions(-) create mode 100644 mediagoblin/db/mixin.py diff --git a/mediagoblin/db/mixin.py b/mediagoblin/db/mixin.py new file mode 100644 index 00000000..4fb325d2 --- /dev/null +++ b/mediagoblin/db/mixin.py @@ -0,0 +1,90 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011,2012 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +""" +This module contains some Mixin classes for the db objects. + +A bunch of functions on the db objects are really more like +"utility functions": They could live outside the classes +and be called "by hand" passing the appropiate reference. +They usually only use the public API of the object and +rarely use database related stuff. + +These functions now live here and get "mixed in" into the +real objects. +""" + +from mediagoblin.auth import lib as auth_lib +from mediagoblin.tools import common + + +class UserMixin(object): + def check_login(self, password): + """ + See if a user can login with this password + """ + return auth_lib.bcrypt_check_password( + password, self.pw_hash) + + +class MediaEntryMixin(object): + def get_display_media(self, media_map, + fetch_order=common.DISPLAY_IMAGE_FETCHING_ORDER): + """ + Find the best media for display. + + Args: + - media_map: a dict like + {u'image_size': [u'dir1', u'dir2', u'image.jpg']} + - fetch_order: the order we should try fetching images in + + Returns: + (media_size, media_path) + """ + media_sizes = media_map.keys() + + for media_size in common.DISPLAY_IMAGE_FETCHING_ORDER: + if media_size in media_sizes: + return media_map[media_size] + + def main_mediafile(self): + pass + + def url_for_self(self, urlgen): + """ + Generate an appropriate url for ourselves + + Use a slug if we have one, else use our '_id'. + """ + uploader = self.get_uploader + + if self.get('slug'): + return urlgen( + 'mediagoblin.user_pages.media_home', + user=uploader.username, + media=self.slug) + else: + return urlgen( + 'mediagoblin.user_pages.media_home', + user=uploader.username, + media=unicode(self._id)) + + def get_fail_exception(self): + """ + Get the exception that's appropriate for this error + """ + if self['fail_error']: + return common.import_component(self['fail_error']) diff --git a/mediagoblin/db/mongo/models.py b/mediagoblin/db/mongo/models.py index 5de59c12..906d2849 100644 --- a/mediagoblin/db/mongo/models.py +++ b/mediagoblin/db/mongo/models.py @@ -18,12 +18,12 @@ import datetime from mongokit import Document -from mediagoblin.auth import lib as auth_lib from mediagoblin import mg_globals from mediagoblin.db.mongo import migrations from mediagoblin.db.mongo.util import ASCENDING, DESCENDING, ObjectId from mediagoblin.tools.pagination import Pagination -from mediagoblin.tools import url, common +from mediagoblin.tools import url +from mediagoblin.db.mixin import UserMixin, MediaEntryMixin ################### # Custom validators @@ -34,7 +34,7 @@ from mediagoblin.tools import url, common ######## -class User(Document): +class User(Document, UserMixin): """ A user of MediaGoblin. @@ -89,15 +89,8 @@ class User(Document): 'status': u'needs_email_verification', 'is_admin': False} - def check_login(self, password): - """ - See if a user can login with this password - """ - return auth_lib.bcrypt_check_password( - password, self.pw_hash) - -class MediaEntry(Document): +class MediaEntry(Document, MediaEntryMixin): """ Record of a piece of media. @@ -224,28 +217,6 @@ class MediaEntry(Document): return self.db.MediaComment.find({ 'media_entry': self._id}).sort('created', order) - def get_display_media(self, media_map, - fetch_order=common.DISPLAY_IMAGE_FETCHING_ORDER): - """ - Find the best media for display. - - Args: - - media_map: a dict like - {u'image_size': [u'dir1', u'dir2', u'image.jpg']} - - fetch_order: the order we should try fetching images in - - Returns: - (media_size, media_path) - """ - media_sizes = media_map.keys() - - for media_size in common.DISPLAY_IMAGE_FETCHING_ORDER: - if media_size in media_sizes: - return media_map[media_size] - - def main_mediafile(self): - pass - def generate_slug(self): self.slug = url.slugify(self.title) @@ -255,25 +226,6 @@ class MediaEntry(Document): if duplicate: self.slug = "%s-%s" % (self._id, self.slug) - def url_for_self(self, urlgen): - """ - Generate an appropriate url for ourselves - - Use a slug if we have one, else use our '_id'. - """ - uploader = self.get_uploader - - if self.get('slug'): - return urlgen( - 'mediagoblin.user_pages.media_home', - user=uploader.username, - media=self.slug) - else: - return urlgen( - 'mediagoblin.user_pages.media_home', - user=uploader.username, - media=unicode(self._id)) - def url_to_prev(self, urlgen): """ Provide a url to the previous entry from this user, if there is one @@ -301,13 +253,6 @@ class MediaEntry(Document): def get_uploader(self): return self.db.User.find_one({'_id': self.uploader}) - def get_fail_exception(self): - """ - Get the exception that's appropriate for this error - """ - if self['fail_error']: - return common.import_component(self['fail_error']) - class MediaComment(Document): """ diff --git a/mediagoblin/db/sql/models.py b/mediagoblin/db/sql/models.py index 31a6ed3b..95821b4f 100644 --- a/mediagoblin/db/sql/models.py +++ b/mediagoblin/db/sql/models.py @@ -7,6 +7,7 @@ from sqlalchemy import ( from sqlalchemy.orm import relationship from mediagoblin.db.sql.base import GMGTableBase +from mediagoblin.db.mixin import UserMixin, MediaEntryMixin Base = declarative_base(cls=GMGTableBase) @@ -24,7 +25,7 @@ class SimpleFieldAlias(object): setattr(instance, self.fieldname, val) -class User(Base): +class User(Base, UserMixin): __tablename__ = "users" id = Column(Integer, primary_key=True) @@ -48,7 +49,7 @@ class User(Base): _id = SimpleFieldAlias("id") -class MediaEntry(Base): +class MediaEntry(Base, MediaEntryMixin): __tablename__ = "media_entries" id = Column(Integer, primary_key=True) From 7cbbf3e75b2dc67068ec270e53249d95224a86cc Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 9 Jan 2012 14:22:28 +0100 Subject: [PATCH 1381/2731] Create a default logging config paste uses paste.ini to configure python's logging module. Until now, there was NO config, not even a useful default one. This means: any messages went away unseen. Not good. The new default logs everything to stderr at level INFO and higher. Maybe not the best, but a good starting point. --- paste.ini | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/paste.ini b/paste.ini index c729e41d..13c15209 100644 --- a/paste.ini +++ b/paste.ini @@ -19,6 +19,28 @@ use = egg:mediagoblin#app filter-with = beaker config = %(here)s/mediagoblin_local.ini %(here)s/mediagoblin.ini +[loggers] +keys = root + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = INFO +handlers = console + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(asctime)s %(levelname)-7.7s [%(name)s] %(message)s + [app:publicstore_serve] use = egg:Paste#static document_root = %(here)s/user_dev/media/public/ From 1b876ac2ea58830b187463dd3de75299fa257212 Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 9 Jan 2012 14:26:01 +0100 Subject: [PATCH 1382/2731] Warn about unknown staticdirect paths. Use pkg_resource to check for the existence of any files referenced by staticdirect. If they don't exist, warn about this. This might raise false warnings in the future for more advanced setups. --- mediagoblin/staticdirect.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mediagoblin/staticdirect.py b/mediagoblin/staticdirect.py index c6d2b374..2bddb160 100644 --- a/mediagoblin/staticdirect.py +++ b/mediagoblin/staticdirect.py @@ -14,9 +14,6 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -import pkg_resources -import urlparse - #################################### # Staticdirect infrastructure. # Borrowed largely from cc.engine @@ -26,7 +23,9 @@ import urlparse #################################### import pkg_resources -import urlparse +import logging + +_log = logging.getLogger(__name__) class StaticDirect(object): @@ -37,6 +36,10 @@ class StaticDirect(object): if filepath in self.cache: return self.cache[filepath] + if not pkg_resources.resource_exists('mediagoblin', + 'static' + filepath): + _log.info("StaticDirect resource %r not found locally", + filepath) static_direction = self.cache[filepath] = self.get(filepath) return static_direction From 1dc7f28d2476135f9548a92ec1147659f1a4e810 Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 9 Jan 2012 14:33:57 +0100 Subject: [PATCH 1383/2731] Fix reset.css reference and drop link to video-js.css 1. reset.css was moved to /css/extlib/ some time ago. So update the staticdirect link to it. 2. We don't have video-js.css (any more?). Drop link to it. --- mediagoblin/templates/mediagoblin/base.html | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 82ee41b7..5335ebe3 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -22,11 +22,9 @@ {% block title %}{{ app_config['html_title'] }}{% endblock %} + href="{{ request.staticdirect('/css/extlib/reset.css') }}"/> - From c2d6792ddb8d968e0c93a7cdd1da7bdae3b5fa36 Mon Sep 17 00:00:00 2001 From: Elrond Date: Tue, 10 Jan 2012 12:52:01 +0100 Subject: [PATCH 1384/2731] Test Suite: Enable attachments, add failing test attachments are an optional part. But it doesn't hurt to enable them in the test suite at all. Also (with enabled attachmemtns) the main media view fails, if one isn't logged in (joar found it!). So add a simple (currently failing) test for this. --- mediagoblin/tests/test_mgoblin_app.ini | 3 +++ mediagoblin/tests/test_submission.py | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/mediagoblin/tests/test_mgoblin_app.ini b/mediagoblin/tests/test_mgoblin_app.ini index 2525a4f9..c91ed92b 100644 --- a/mediagoblin/tests/test_mgoblin_app.ini +++ b/mediagoblin/tests/test_mgoblin_app.ini @@ -7,6 +7,9 @@ db_name = __mediagoblin_tests__ # tag parsing tags_max_length = 50 +# So we can start to test attachments: +allow_attachments = True + # Celery shouldn't be set up by the application as it's setup via # mediagoblin.init.celery.from_celery celery_setup_elsewhere = true diff --git a/mediagoblin/tests/test_submission.py b/mediagoblin/tests/test_submission.py index 2b17c515..b3c11249 100644 --- a/mediagoblin/tests/test_submission.py +++ b/mediagoblin/tests/test_submission.py @@ -51,11 +51,17 @@ class TestSubmission: self.test_user = test_user + self.login() + + def login(self): self.test_app.post( '/auth/login/', { 'username': u'chris', 'password': 'toast'}) + def logout(self): + self.test_app.get('/auth/logout/') + def test_missing_fields(self): # Test blank form # --------------- @@ -95,6 +101,14 @@ class TestSubmission: assert template.TEMPLATE_TEST_CONTEXT.has_key( 'mediagoblin/user_pages/user.html') + # Make sure the media view is at least reachable, logged in... + self.test_app.get('/u/chris/m/normal-upload-1/') + # ... and logged out too. + self.logout() + self.test_app.get('/u/chris/m/normal-upload-1/') + # Log back in for the remaining tests. + self.login() + # Test PNG # -------- template.clear_test_template_context() From 914b8bcde3e01c2dd3e5679fb7733fc194b34d68 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Tue, 10 Jan 2012 13:12:14 +0100 Subject: [PATCH 1385/2731] Added check for request.user to media.html attachment-related conditional --- mediagoblin/templates/mediagoblin/user_pages/media.html | 1 + 1 file changed, 1 insertion(+) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 10525f4c..583e4ebd 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -158,6 +158,7 @@ {% endif %} {% if app_config['allow_attachments'] + and request.user and (media.uploader == request.user._id or request.user.is_admin) %}

From 1df68a3524d92caee5601a8acc011ac8e1fe16d4 Mon Sep 17 00:00:00 2001 From: Michele Azzolari Date: Thu, 5 Jan 2012 18:48:23 +0100 Subject: [PATCH 1386/2731] Fixed #724 and added extra infos to the atom feed (author uri and links to the html version of each entry) --- mediagoblin/db/mongo/models.py | 8 +++++--- mediagoblin/listings/views.py | 24 ++++++++++++++++++++---- mediagoblin/user_pages/views.py | 28 ++++++++++++++++++++++++---- 3 files changed, 49 insertions(+), 11 deletions(-) diff --git a/mediagoblin/db/mongo/models.py b/mediagoblin/db/mongo/models.py index 5de59c12..f1e8eae6 100644 --- a/mediagoblin/db/mongo/models.py +++ b/mediagoblin/db/mongo/models.py @@ -255,7 +255,7 @@ class MediaEntry(Document): if duplicate: self.slug = "%s-%s" % (self._id, self.slug) - def url_for_self(self, urlgen): + def url_for_self(self, urlgen, **extra_args): """ Generate an appropriate url for ourselves @@ -267,12 +267,14 @@ class MediaEntry(Document): return urlgen( 'mediagoblin.user_pages.media_home', user=uploader.username, - media=self.slug) + media=self.slug, + **extra_args) else: return urlgen( 'mediagoblin.user_pages.media_home', user=uploader.username, - media=unicode(self._id)) + media=unicode(self._id), + **extra_args) def url_to_prev(self, urlgen): """ diff --git a/mediagoblin/listings/views.py b/mediagoblin/listings/views.py index 3ecf06f4..ca8e8229 100644 --- a/mediagoblin/listings/views.py +++ b/mediagoblin/listings/views.py @@ -77,17 +77,33 @@ def tag_atom_feed(request): cursor = cursor.sort('created', DESCENDING) cursor = cursor.limit(ATOM_DEFAULT_NR_OF_UPDATED_ITEMS) + """ + ATOM feed id is a tag URI (see http://en.wikipedia.org/wiki/Tag_URI) + """ feed = AtomFeed( "MediaGoblin: Feed for tag '%s'" % tag_slug, feed_url=request.url, - url=request.host_url) - + id='tag:'+request.host+',2011:gallery.tag-%s' % tag_slug, + links=[{'href': request.urlgen( + 'mediagoblin.listings.tags_listing', + qualified=True, tag=tag_slug ), + 'rel': 'alternate', + 'type': 'text/html'}]) for entry in cursor: feed.add(entry.get('title'), entry.get('description_html'), + id=entry.url_for_self(request.urlgen,qualified=True), content_type='html', - author=entry.get_uploader.username, + author={'name': entry.get_uploader.username, + 'uri': request.urlgen( + 'mediagoblin.user_pages.user_home', + qualified=True, user=entry.get_uploader.username)}, updated=entry.get('created'), - url=entry.url_for_self(request.urlgen)) + links=[{ + 'href':entry.url_for_self( + request.urlgen, + qualified=True), + 'rel': 'alternate', + 'type': 'text/html'}]) return feed.get_response() diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index f721f012..a234722f 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -225,17 +225,37 @@ def atom_feed(request): .sort('created', DESCENDING) \ .limit(ATOM_DEFAULT_NR_OF_UPDATED_ITEMS) - feed = AtomFeed(request.matchdict['user'], + """ + ATOM feed id is a tag URI (see http://en.wikipedia.org/wiki/Tag_URI) + """ + feed = AtomFeed( + "MediaGoblin: Feed for user '%s'" % request.matchdict['user'], feed_url=request.url, - url=request.host_url) + id='tag:'+request.host+',2011:gallery.user-'+request.matchdict['user'], + links=[{ + 'href': request.urlgen( + 'mediagoblin.user_pages.user_home', + qualified=True,user=request.matchdict['user']), + 'rel': 'alternate', + 'type': 'text/html'}]) for entry in cursor: feed.add(entry.get('title'), entry.get('description_html'), + id=entry.url_for_self(request.urlgen,qualified=True), content_type='html', - author=request.matchdict['user'], + author={ + 'name': entry.get_uploader.username, + 'uri': request.urlgen( + 'mediagoblin.user_pages.user_home', + qualified=True, user=entry.get_uploader.username)}, updated=entry.get('created'), - url=entry.url_for_self(request.urlgen)) + links=[{ + 'href': entry.url_for_self( + request.urlgen, + qualified=True), + 'rel': 'alternate', + 'type': 'text/html'}]) return feed.get_response() From cb7ae1e4331f3521b2028388c3d4ff2555d61eb3 Mon Sep 17 00:00:00 2001 From: Elrond Date: Wed, 11 Jan 2012 11:16:35 +0100 Subject: [PATCH 1387/2731] Fix url_for_self mixup Move changes from mongo/models:url_for_self back into mixin:url_for_self. --- mediagoblin/db/mixin.py | 8 +++++--- mediagoblin/db/mongo/models.py | 21 --------------------- 2 files changed, 5 insertions(+), 24 deletions(-) diff --git a/mediagoblin/db/mixin.py b/mediagoblin/db/mixin.py index 4fb325d2..5145289e 100644 --- a/mediagoblin/db/mixin.py +++ b/mediagoblin/db/mixin.py @@ -63,7 +63,7 @@ class MediaEntryMixin(object): def main_mediafile(self): pass - def url_for_self(self, urlgen): + def url_for_self(self, urlgen, **extra_args): """ Generate an appropriate url for ourselves @@ -75,12 +75,14 @@ class MediaEntryMixin(object): return urlgen( 'mediagoblin.user_pages.media_home', user=uploader.username, - media=self.slug) + media=self.slug, + **extra_args) else: return urlgen( 'mediagoblin.user_pages.media_home', user=uploader.username, - media=unicode(self._id)) + media=unicode(self._id), + **extra_args) def get_fail_exception(self): """ diff --git a/mediagoblin/db/mongo/models.py b/mediagoblin/db/mongo/models.py index d9b5a570..906d2849 100644 --- a/mediagoblin/db/mongo/models.py +++ b/mediagoblin/db/mongo/models.py @@ -226,27 +226,6 @@ class MediaEntry(Document, MediaEntryMixin): if duplicate: self.slug = "%s-%s" % (self._id, self.slug) - def url_for_self(self, urlgen, **extra_args): - """ - Generate an appropriate url for ourselves - - Use a slug if we have one, else use our '_id'. - """ - uploader = self.get_uploader - - if self.get('slug'): - return urlgen( - 'mediagoblin.user_pages.media_home', - user=uploader.username, - media=self.slug, - **extra_args) - else: - return urlgen( - 'mediagoblin.user_pages.media_home', - user=uploader.username, - media=unicode(self._id), - **extra_args) - def url_to_prev(self, urlgen): """ Provide a url to the previous entry from this user, if there is one From 0ab21f981a8a170f5bf4e83f7d56d3ed8fdae467 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sun, 25 Dec 2011 20:04:41 +0100 Subject: [PATCH 1388/2731] Dot-Notation: Some random places --- mediagoblin/auth/views.py | 2 +- mediagoblin/edit/views.py | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 88dc40ad..c04a49a7 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -205,7 +205,7 @@ def resend_activation(request): return redirect(request, 'mediagoblin.auth.login') - if request.user["email_verified"]: + if request.user.email_verified: messages.add_message( request, messages.ERROR, diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index bae85c5d..ec748028 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -46,7 +46,7 @@ def edit_media(request, media): title=media.title, slug=media.slug, description=media.description, - tags=media_tags_as_string(media['tags'])) + tags=media_tags_as_string(media.tags)) form = forms.EditForm( request.POST, @@ -165,7 +165,7 @@ def edit_profile(request): user.url = unicode(request.POST['url']) user.bio = unicode(request.POST['bio']) - user.bio_html = cleaned_markdown_conversion(user['bio']) + user.bio_html = cleaned_markdown_conversion(user.bio) user.save() @@ -193,7 +193,7 @@ def edit_account(request): if request.method == 'POST' and form.validate(): password_matches = auth_lib.bcrypt_check_password( request.POST['old_password'], - user['pw_hash']) + user.pw_hash) if (request.POST['old_password'] or request.POST['new_password']) and not \ password_matches: @@ -206,7 +206,7 @@ def edit_account(request): 'form': form}) if password_matches: - user['pw_hash'] = auth_lib.bcrypt_gen_password_hash( + user.pw_hash = auth_lib.bcrypt_gen_password_hash( request.POST['new_password']) user.save() @@ -216,7 +216,7 @@ def edit_account(request): _("Account settings saved")) return redirect(request, 'mediagoblin.user_pages.user_home', - user=user['username']) + user=user.username) return render_to_response( request, From 02db7e0a83fc06eaa8e96888f6c9e4fb44e7cbe2 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 31 Dec 2011 23:01:34 +0100 Subject: [PATCH 1389/2731] Add MediaFile table and related infrastructure. - This adds a new SQL table field type for path tuples. They're stored as '/' separated unicode strings. - Uses it to implement a MediaFile table. - Add relationship and proxy fields on MediaEntry to give a nice media_files "view" there. - Let the converter fill the MediaFile. --- mediagoblin/db/sql/convert.py | 7 ++++++- mediagoblin/db/sql/extratypes.py | 18 ++++++++++++++++++ mediagoblin/db/sql/models.py | 27 +++++++++++++++++++++++++-- 3 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 mediagoblin/db/sql/extratypes.py diff --git a/mediagoblin/db/sql/convert.py b/mediagoblin/db/sql/convert.py index 6698b767..88614fd4 100644 --- a/mediagoblin/db/sql/convert.py +++ b/mediagoblin/db/sql/convert.py @@ -2,7 +2,7 @@ from mediagoblin.init import setup_global_and_app_config, setup_database from mediagoblin.db.mongo.util import ObjectId from mediagoblin.db.sql.models import (Base, User, MediaEntry, MediaComment, - Tag, MediaTag) + Tag, MediaTag, MediaFile) from mediagoblin.db.sql.open import setup_connection_and_db_from_config as \ sql_connect from mediagoblin.db.mongo.open import setup_connection_and_db_from_config as \ @@ -70,6 +70,11 @@ def convert_media_entries(mk_db): session.flush() add_obj_ids(entry, new_entry) + for key, value in entry.media_files.iteritems(): + new_file = MediaFile(name=key, file_path=value) + new_file.media_entry = new_entry.id + Session.add(new_file) + session.commit() session.close() diff --git a/mediagoblin/db/sql/extratypes.py b/mediagoblin/db/sql/extratypes.py new file mode 100644 index 00000000..88f556d9 --- /dev/null +++ b/mediagoblin/db/sql/extratypes.py @@ -0,0 +1,18 @@ +from sqlalchemy.types import TypeDecorator, Unicode + + +class PathTupleWithSlashes(TypeDecorator): + "Represents a Tuple of strings as a slash separated string." + + impl = Unicode + + def process_bind_param(self, value, dialect): + if value is not None: + assert len(value), "Does not support empty lists" + value = '/'.join(value) + return value + + def process_result_value(self, value, dialect): + if value is not None: + value = tuple(value.split('/')) + return value diff --git a/mediagoblin/db/sql/models.py b/mediagoblin/db/sql/models.py index 95821b4f..91092f33 100644 --- a/mediagoblin/db/sql/models.py +++ b/mediagoblin/db/sql/models.py @@ -5,7 +5,10 @@ from sqlalchemy import ( Column, Integer, Unicode, UnicodeText, DateTime, Boolean, ForeignKey, UniqueConstraint) from sqlalchemy.orm import relationship +from sqlalchemy.orm.collections import attribute_mapped_collection +from sqlalchemy.ext.associationproxy import association_proxy +from mediagoblin.db.sql.extratypes import PathTupleWithSlashes from mediagoblin.db.sql.base import GMGTableBase from mediagoblin.db.mixin import UserMixin, MediaEntryMixin @@ -65,7 +68,7 @@ class MediaEntry(Base, MediaEntryMixin): fail_error = Column(Unicode) fail_metadata = Column(UnicodeText) - queued_media_file = Column(Unicode) + queued_media_file = Column(PathTupleWithSlashes) queued_task_id = Column(Unicode) @@ -75,13 +78,33 @@ class MediaEntry(Base, MediaEntryMixin): get_uploader = relationship(User) + media_files_helper = relationship("MediaFile", + collection_class=attribute_mapped_collection("name"), + cascade="all, delete-orphan" + ) + media_files = association_proxy('media_files_helper', 'file_path', + creator=lambda k,v: MediaFile(name=k, file_path=v) + ) + ## TODO - # media_files # media_data # attachment_files # fail_error +class MediaFile(Base): + __tablename__ = "mediafiles" + + media_entry = Column( + Integer, ForeignKey(MediaEntry.id), + nullable=False, primary_key=True) + name = Column(Unicode, primary_key=True) + file_path = Column(PathTupleWithSlashes) + + def __repr__(self): + return "" % (self.name, self.file_path) + + class Tag(Base): __tablename__ = "tags" From 5b1a7bae3c8e56ea9b512dcbba6b8a512304a956 Mon Sep 17 00:00:00 2001 From: Michele Azzolari Date: Wed, 11 Jan 2012 15:48:37 +0100 Subject: [PATCH 1390/2731] Added PuSH capability --- mediagoblin/config_spec.ini | 3 +++ mediagoblin/submit/views.py | 14 ++++++++++++++ mediagoblin/user_pages/views.py | 20 ++++++++++++++------ 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini index eb22bc1b..226356d9 100644 --- a/mediagoblin/config_spec.ini +++ b/mediagoblin/config_spec.ini @@ -50,6 +50,9 @@ allow_attachments = boolean(default=False) # Cookie stuff csrf_cookie_name = string(default='mediagoblin_csrftoken') +# Push stuff +push_enabled = boolean(default=True) +push_url = string(default='https://pubsubhubbub.appspot.com/') [storage:publicstore] storage_class = string(default="mediagoblin.storage.filestorage:BasicFileStorage") diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index dd273c7f..d5aa60fa 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -20,6 +20,7 @@ from os.path import splitext from cgi import FieldStorage from celery import registry +import urllib,urllib2 from werkzeug.utils import secure_filename @@ -125,6 +126,19 @@ def submit_start(request): # re-raise the exception raise + if mg_globals.app_config["push_enabled"]: + feed_url=request.urlgen( + 'mediagoblin.user_pages.atom_feed', + qualified=True,user=request.user.username) + hubparameters = { + 'hub.mode': 'publish', + 'hub.url': feed_url} + huburl = mg_globals.app_config["push_url"] + hubdata = urllib.urlencode(hubparameters) + hubheaders = {"Content-type": "application/x-www-form-urlencoded"} + hubrequest = urllib2.Request(huburl, hubdata,hubheaders) + hubresponse = urllib2.urlopen(hubrequest) + add_message(request, SUCCESS, _('Woohoo! Submitted!')) return redirect(request, "mediagoblin.user_pages.user_home", diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index a234722f..ee7cfe0f 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -228,16 +228,24 @@ def atom_feed(request): """ ATOM feed id is a tag URI (see http://en.wikipedia.org/wiki/Tag_URI) """ + atomlinks = [{ + 'href': request.urlgen( + 'mediagoblin.user_pages.user_home', + qualified=True,user=request.matchdict['user']), + 'rel': 'alternate', + 'type': 'text/html' + }]; + if mg_globals.app_config["push_enabled"]: + atomlinks.append({ + 'rel': 'hub', + 'href': mg_globals.app_config["push_url"]}) + feed = AtomFeed( "MediaGoblin: Feed for user '%s'" % request.matchdict['user'], feed_url=request.url, id='tag:'+request.host+',2011:gallery.user-'+request.matchdict['user'], - links=[{ - 'href': request.urlgen( - 'mediagoblin.user_pages.user_home', - qualified=True,user=request.matchdict['user']), - 'rel': 'alternate', - 'type': 'text/html'}]) + links=atomlinks) + for entry in cursor: feed.add(entry.get('title'), From f502a89b6dad993a44088a84c9f441fdc74189f8 Mon Sep 17 00:00:00 2001 From: Michele Azzolari Date: Wed, 11 Jan 2012 16:11:23 +0100 Subject: [PATCH 1391/2731] Default is now PuSH disabled --- mediagoblin/config_spec.ini | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini index 226356d9..d692f205 100644 --- a/mediagoblin/config_spec.ini +++ b/mediagoblin/config_spec.ini @@ -51,8 +51,8 @@ allow_attachments = boolean(default=False) csrf_cookie_name = string(default='mediagoblin_csrftoken') # Push stuff -push_enabled = boolean(default=True) -push_url = string(default='https://pubsubhubbub.appspot.com/') +push_enabled = boolean(default=False) +push_url = string(default='') [storage:publicstore] storage_class = string(default="mediagoblin.storage.filestorage:BasicFileStorage") From 7f251b037bd5207652ca73f556e90b9633786a3c Mon Sep 17 00:00:00 2001 From: Michele Azzolari Date: Thu, 12 Jan 2012 00:00:28 +0100 Subject: [PATCH 1392/2731] As suggested by Elrond, we use only one setting --- mediagoblin/config_spec.ini | 1 - mediagoblin/submit/views.py | 2 +- mediagoblin/user_pages/views.py | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini index d692f205..b8e7b193 100644 --- a/mediagoblin/config_spec.ini +++ b/mediagoblin/config_spec.ini @@ -51,7 +51,6 @@ allow_attachments = boolean(default=False) csrf_cookie_name = string(default='mediagoblin_csrftoken') # Push stuff -push_enabled = boolean(default=False) push_url = string(default='') [storage:publicstore] diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index d5aa60fa..de280422 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -126,7 +126,7 @@ def submit_start(request): # re-raise the exception raise - if mg_globals.app_config["push_enabled"]: + if mg_globals.app_config["push_url"]: feed_url=request.urlgen( 'mediagoblin.user_pages.atom_feed', qualified=True,user=request.user.username) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index ee7cfe0f..2d4eac69 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -235,7 +235,7 @@ def atom_feed(request): 'rel': 'alternate', 'type': 'text/html' }]; - if mg_globals.app_config["push_enabled"]: + if mg_globals.app_config["push_url"]: atomlinks.append({ 'rel': 'hub', 'href': mg_globals.app_config["push_url"]}) From bb025ebda14297b721f8816d13980a477f62bca6 Mon Sep 17 00:00:00 2001 From: Michele Azzolari Date: Thu, 12 Jan 2012 11:05:05 +0100 Subject: [PATCH 1393/2731] As per spec, we permit to have more then 1 hub --- mediagoblin/config_spec.ini | 2 +- mediagoblin/submit/views.py | 12 +++++++----- mediagoblin/user_pages/views.py | 9 +++++---- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini index b8e7b193..dc286a27 100644 --- a/mediagoblin/config_spec.ini +++ b/mediagoblin/config_spec.ini @@ -51,7 +51,7 @@ allow_attachments = boolean(default=False) csrf_cookie_name = string(default='mediagoblin_csrftoken') # Push stuff -push_url = string(default='') +push_urls = string_list(default=list()) [storage:publicstore] storage_class = string(default="mediagoblin.storage.filestorage:BasicFileStorage") diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index de280422..65243ca1 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -126,18 +126,20 @@ def submit_start(request): # re-raise the exception raise - if mg_globals.app_config["push_url"]: + if mg_globals.app_config["push_urls"]: feed_url=request.urlgen( 'mediagoblin.user_pages.atom_feed', qualified=True,user=request.user.username) hubparameters = { 'hub.mode': 'publish', 'hub.url': feed_url} - huburl = mg_globals.app_config["push_url"] hubdata = urllib.urlencode(hubparameters) - hubheaders = {"Content-type": "application/x-www-form-urlencoded"} - hubrequest = urllib2.Request(huburl, hubdata,hubheaders) - hubresponse = urllib2.urlopen(hubrequest) + hubheaders = { + "Content-type": "application/x-www-form-urlencoded", + "Connection": "close"} + for huburl in mg_globals.app_config["push_urls"]: + hubrequest = urllib2.Request(huburl, hubdata,hubheaders) + hubresponse = urllib2.urlopen(hubrequest) add_message(request, SUCCESS, _('Woohoo! Submitted!')) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 2d4eac69..29360e23 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -235,10 +235,11 @@ def atom_feed(request): 'rel': 'alternate', 'type': 'text/html' }]; - if mg_globals.app_config["push_url"]: - atomlinks.append({ - 'rel': 'hub', - 'href': mg_globals.app_config["push_url"]}) + if mg_globals.app_config["push_urls"]: + for push_url in mg_globals.app_config["push_urls"]: + atomlinks.append({ + 'rel': 'hub', + 'href': push_url}) feed = AtomFeed( "MediaGoblin: Feed for user '%s'" % request.matchdict['user'], From 20659de2344ccb8d14f8deaeaf9628d84a966e5a Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 13 Jan 2012 17:38:20 +0100 Subject: [PATCH 1394/2731] Add CC0 license header to Sphinx MediaGoblin theme (mg.css) --- docs/source/themes/mg/static/mg.css | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/source/themes/mg/static/mg.css b/docs/source/themes/mg/static/mg.css index b9355a5d..96344df4 100644 --- a/docs/source/themes/mg/static/mg.css +++ b/docs/source/themes/mg/static/mg.css @@ -1,3 +1,15 @@ +/* + +MediaGoblin theme - MediaGoblin-style Sphinx documentation theme + +Written in 2012 by Jef van Schendel + +To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty. + +You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see . + +*/ + @import url("basic.css"); /* text fonts and styles */ From fafec727402ef3fa4d806b200f1d86cb91cd6362 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Fri, 13 Jan 2012 23:23:02 +0100 Subject: [PATCH 1395/2731] Remove unnecessary piece of text in media.html. Fix "Markdown text" indentation so they are the same. --- mediagoblin/edit/forms.py | 7 +++---- mediagoblin/templates/mediagoblin/user_pages/media.html | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index 09955874..5c191fba 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -45,10 +45,9 @@ class EditProfileForm(wtforms.Form): bio = wtforms.TextAreaField( _('Bio'), [wtforms.validators.Length(min=0, max=500)], - description=_( - """You can use - - Markdown for formatting.""")) + description=_("""You can use + + Markdown for formatting.""")) url = wtforms.TextField( _('Website'), [wtforms.validators.Optional(), diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 583e4ebd..865a94ab 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -97,7 +97,7 @@ user= media.get_uploader.username, media=media._id) }}" method="POST" id="form_comment">

- {% trans %}Type your comment here. You can use Markdown for formatting.{% endtrans %} + {% trans %}You can use Markdown for formatting.{% endtrans %}

{{ wtforms_util.render_divs(comment_form) }}
From 762d4a0c48e582dba78a27f1a42e367d3f14a891 Mon Sep 17 00:00:00 2001 From: Elrond Date: Fri, 13 Jan 2012 23:38:21 +0100 Subject: [PATCH 1396/2731] Fix request.user==None error If one isn't logged in and views the profile of a user without media, one gets a problem, because request.user is None and has no _id attribute. Fix this. --- mediagoblin/templates/mediagoblin/user_pages/user.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index 0937f97a..d3b4021d 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -145,7 +145,7 @@ {% include "mediagoblin/utils/feed_link.html" %}
{% else %} - {% if request.user._id == user._id %} + {% if request.user and (request.user._id == user._id) %}

{% trans -%} From 4670ff1c56ed58591945bbf665bbd9d7f72b71a9 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 13 Jan 2012 20:26:36 -0600 Subject: [PATCH 1397/2731] Simple translation update script --- devtools/update_translations.sh | 48 +++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 devtools/update_translations.sh diff --git a/devtools/update_translations.sh b/devtools/update_translations.sh new file mode 100644 index 00000000..1708e7e0 --- /dev/null +++ b/devtools/update_translations.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 Free Software Foundation, Inc +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +# exit if anything fails +set -e + +echo "==> checking out master" +git checkout master + +echo "==> pulling git master" +git pull + +echo "==> pulling present translations" +./bin/tx pull -a +git add mediagoblin/i18n/ +git commit -m "Committing present MediaGoblin translations before pushing extracted messages" + +echo "==> Extracting translations" +./bin/pybabel extract -F babel.ini -o mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po . + +echo "==> Pushing extracted translations to Transifex" +./bin/tx push -s + +# gets the new strings added to all files +echo "==> Re-Pulling translations from Transifex" +./bin/tx pull -a + +echo "==> Compiling .mo files" +./bin/pybabel compile -D mediagoblin -d mediagoblin/i18n/ + +echo "==> Committing to git" +git add mediagoblin/i18n/ +git commit -m "Committing extracted and compiled translations" From 1b5bbc0a8522b384084345cbb4f4917a8db015bf Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 13 Jan 2012 20:27:53 -0600 Subject: [PATCH 1398/2731] make this script executable --- devtools/update_translations.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 devtools/update_translations.sh diff --git a/devtools/update_translations.sh b/devtools/update_translations.sh old mode 100644 new mode 100755 From 9c947004139d0d0ae5a879cd4c120891f8a8d51e Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 14 Jan 2012 12:54:16 +0100 Subject: [PATCH 1399/2731] Move maketarball.sh into devtools/ Now that there is a devtools directory, use it! --- maketarball.sh => devtools/maketarball.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename maketarball.sh => devtools/maketarball.sh (100%) diff --git a/maketarball.sh b/devtools/maketarball.sh similarity index 100% rename from maketarball.sh rename to devtools/maketarball.sh From 52fc51f6a9b6379d39d391bd54473eebb6d23cd5 Mon Sep 17 00:00:00 2001 From: Elrond Date: Fri, 13 Jan 2012 22:59:14 +0100 Subject: [PATCH 1400/2731] Drop sessions with invalid ObjectIds The session can contain invalid objectids when switching a more or less live instance (with logged in users) from mongo to sql or vice versa. So drop the complete session and force the user to login again. --- mediagoblin/tools/request.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/mediagoblin/tools/request.py b/mediagoblin/tools/request.py index b1cbe119..7e193125 100644 --- a/mediagoblin/tools/request.py +++ b/mediagoblin/tools/request.py @@ -14,7 +14,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from mediagoblin.db.util import ObjectId +from mediagoblin.db.util import ObjectId, InvalidId def setup_user_in_request(request): """ @@ -25,13 +25,17 @@ def setup_user_in_request(request): request.user = None return - user = None - user = request.app.db.User.one( - {'_id': ObjectId(request.session['user_id'])}) + try: + oid = ObjectId(request.session['user_id']) + except InvalidId: + user = None + else: + user = request.db.User.one({'_id': oid}) if not user: # Something's wrong... this user doesn't exist? Invalidate # this session. + print "Killing session for %r" % request.session['user_id'] request.session.invalidate() request.user = user From b6997919563ab2553e9dc4af1d4cb06c1544a5ce Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 15 Jan 2012 17:07:15 +0100 Subject: [PATCH 1401/2731] Small margin/font-weight fix --- mediagoblin/static/css/base.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index c2d45a1b..5b37a362 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -48,6 +48,7 @@ h1 { margin-top: 15px; color: #fff; font-size: 1.875em; + font-weight: bold; } h2 { @@ -63,6 +64,7 @@ h3 { p { margin-top: 0px; + margin-bottom: 20px; } a { From 62f2557cae03bd4675fc67a7775d3c715a2f2a62 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 15 Jan 2012 17:10:35 +0100 Subject: [PATCH 1402/2731] Another small text style fix --- mediagoblin/static/css/base.css | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 5b37a362..44c7cd0c 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -43,12 +43,18 @@ form { /* text styles */ +h1,h2,h3,p { + margin-bottom: 20px; +} + +h1,h2,h3 { + font-weight: bold; +} + h1 { - margin-bottom: 15px; margin-top: 15px; color: #fff; font-size: 1.875em; - font-weight: bold; } h2 { @@ -64,7 +70,6 @@ h3 { p { margin-top: 0px; - margin-bottom: 20px; } a { From 8c7701f9f1653cf4038143cfb7a497ae21edf108 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 15 Jan 2012 17:23:21 +0100 Subject: [PATCH 1403/2731] Small fix to simplify font style --- mediagoblin/static/css/base.css | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 44c7cd0c..efd7b561 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -32,8 +32,7 @@ body { padding: none; margin: 0px; height: 100%; - font: 16px "HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue",Helvetica,Arial,sans-serif; - font-family:'Lato', sans-serif; + font: 16px 'Lato', 'Helvetica Neue', Arial, 'Liberation Sans', FreeSans, sans-serif; } form { From 25b48323a86a1036112f2f33c889d5d12d5dee9c Mon Sep 17 00:00:00 2001 From: Aaron Williamson Date: Tue, 17 Jan 2012 00:33:55 -0500 Subject: [PATCH 1404/2731] First crack at basic license support. --- mediagoblin/db/models.py | 9 +++++++++ mediagoblin/edit/forms.py | 5 ++++- mediagoblin/edit/views.py | 8 +++++++- mediagoblin/submit/forms.py | 5 ++++- mediagoblin/submit/views.py | 4 ++++ mediagoblin/templates/mediagoblin/user_pages/media.html | 2 ++ 6 files changed, 30 insertions(+), 3 deletions(-) diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index 0f5174cc..e085840e 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -24,6 +24,7 @@ from mediagoblin.db import migrations from mediagoblin.db.util import ASCENDING, DESCENDING, ObjectId from mediagoblin.tools.pagination import Pagination from mediagoblin.tools import url, common +from mediagoblin.tools import licenses ################### # Custom validators @@ -158,6 +159,8 @@ class MediaEntry(Document): "unprocessed": uploaded but needs to go through processing for display "processed": processed and able to be displayed + - license: URI for entry's license + - queued_media_file: storage interface style filepath describing a file queued for processing. This is stored in the mg_globals.queue_store storage system. @@ -174,6 +177,7 @@ class MediaEntry(Document): - fail_error: path to the exception raised - fail_metadata: + """ __collection__ = 'media_entries' @@ -189,6 +193,7 @@ class MediaEntry(Document): 'plugin_data': dict, # plugins can dump stuff here. 'tags': [dict], 'state': unicode, + 'license': unicode, # License URI # For now let's assume there can only be one main file queued # at a time @@ -304,6 +309,10 @@ class MediaEntry(Document): if self['fail_error']: return common.import_component(self['fail_error']) + def get_license_data(self): + """Return license dict for requested license""" + return licenses.SUPPORTED_LICENSES[self['license']] + class MediaComment(Document): """ diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index 7e71722c..3d1d9fd4 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -18,6 +18,7 @@ import wtforms from mediagoblin.tools.text import tag_length_validator, TOO_LONG_TAG_WARNING from mediagoblin.tools.translate import fake_ugettext_passthrough as _ +from mediagoblin.tools.licenses import licenses_as_choices class EditForm(wtforms.Form): title = wtforms.TextField( @@ -33,7 +34,9 @@ class EditForm(wtforms.Form): description=_( "The title part of this media's URL. " "You usually don't need to change this.")) - + license = wtforms.SelectField( + _('License'), + choices=licenses_as_choices()) class EditProfileForm(wtforms.Form): bio = wtforms.TextAreaField( diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index a6ddb553..f92eabac 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -34,6 +34,7 @@ from mediagoblin.tools.translate import pass_to_ugettext as _ from mediagoblin.tools.text import ( clean_html, convert_to_tag_list_of_dicts, media_tags_as_string, cleaned_markdown_conversion) +from mediagoblin.tools.licenses import SUPPORTED_LICENSES @get_user_media_entry @require_active_login @@ -45,7 +46,8 @@ def edit_media(request, media): title=media['title'], slug=media['slug'], description=media['description'], - tags=media_tags_as_string(media['tags'])) + tags=media_tags_as_string(media['tags']), + license=media['license']) form = forms.EditForm( request.POST, @@ -71,6 +73,10 @@ def edit_media(request, media): media['description_html'] = cleaned_markdown_conversion( media['description']) + media['license'] = ( + unicode(request.POST.get('license')) + or '') + media['slug'] = unicode(request.POST['slug']) media.save() diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py index 25d6e304..be85b9a9 100644 --- a/mediagoblin/submit/forms.py +++ b/mediagoblin/submit/forms.py @@ -19,7 +19,7 @@ import wtforms from mediagoblin.tools.text import tag_length_validator from mediagoblin.tools.translate import fake_ugettext_passthrough as _ - +from mediagoblin.tools.licenses import licenses_as_choices class SubmitStartForm(wtforms.Form): file = wtforms.FileField(_('File')) @@ -31,3 +31,6 @@ class SubmitStartForm(wtforms.Form): tags = wtforms.TextField( _('Tags'), [tag_length_validator]) + license = wtforms.SelectField( + _('License'), + choices=licenses_as_choices()) diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 7134235e..ecfa9943 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -60,6 +60,10 @@ def submit_start(request): entry['description'] = unicode(request.POST.get('description')) entry['description_html'] = cleaned_markdown_conversion( entry['description']) + + entry['license'] = ( + unicode(request.POST.get('license')) + or '') entry['media_type'] = u'image' # heh entry['uploader'] = request.user['_id'] diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 11fa72cf..efbd7e53 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -171,6 +171,8 @@ {% if media.tags %} {% include "mediagoblin/utils/tags.html" %} {% endif %} + + {% include "mediagoblin/utils/license.html" %}

{% else %}

{% trans %}Sorry, no such media found.{% endtrans %}

From 25bdf9b6578feb348745e6ac27fc4555e27077b9 Mon Sep 17 00:00:00 2001 From: Aaron Williamson Date: Tue, 17 Jan 2012 01:05:15 -0500 Subject: [PATCH 1405/2731] Fixed merge with upstream --- mediagoblin/db/mongo/models.py | 153 ++++++++++----------------------- 1 file changed, 47 insertions(+), 106 deletions(-) diff --git a/mediagoblin/db/mongo/models.py b/mediagoblin/db/mongo/models.py index e085840e..906d2849 100644 --- a/mediagoblin/db/mongo/models.py +++ b/mediagoblin/db/mongo/models.py @@ -14,17 +14,16 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -import datetime, uuid +import datetime from mongokit import Document -from mediagoblin.auth import lib as auth_lib from mediagoblin import mg_globals -from mediagoblin.db import migrations -from mediagoblin.db.util import ASCENDING, DESCENDING, ObjectId +from mediagoblin.db.mongo import migrations +from mediagoblin.db.mongo.util import ASCENDING, DESCENDING, ObjectId from mediagoblin.tools.pagination import Pagination -from mediagoblin.tools import url, common -from mediagoblin.tools import licenses +from mediagoblin.tools import url +from mediagoblin.db.mixin import UserMixin, MediaEntryMixin ################### # Custom validators @@ -35,7 +34,7 @@ from mediagoblin.tools import licenses ######## -class User(Document): +class User(Document, UserMixin): """ A user of MediaGoblin. @@ -63,22 +62,23 @@ class User(Document): - bio_html: biography of the user converted to proper HTML. """ __collection__ = 'users' + use_dot_notation = True structure = { 'username': unicode, 'email': unicode, 'created': datetime.datetime, - 'plugin_data': dict, # plugins can dump stuff here. + 'plugin_data': dict, # plugins can dump stuff here. 'pw_hash': unicode, 'email_verified': bool, 'status': unicode, 'verification_key': unicode, 'is_admin': bool, - 'url' : unicode, - 'bio' : unicode, # May contain markdown - 'bio_html': unicode, # May contain plaintext, or HTML - 'fp_verification_key': unicode, # forgotten password verification key - 'fp_token_expire': datetime.datetime + 'url': unicode, + 'bio': unicode, # May contain markdown + 'bio_html': unicode, # May contain plaintext, or HTML + 'fp_verification_key': unicode, # forgotten password verification key + 'fp_token_expire': datetime.datetime, } required_fields = ['username', 'created', 'pw_hash', 'email'] @@ -87,18 +87,10 @@ class User(Document): 'created': datetime.datetime.utcnow, 'email_verified': False, 'status': u'needs_email_verification', - 'verification_key': lambda: unicode(uuid.uuid4()), 'is_admin': False} - def check_login(self, password): - """ - See if a user can login with this password - """ - return auth_lib.bcrypt_check_password( - password, self['pw_hash']) - -class MediaEntry(Document): +class MediaEntry(Document, MediaEntryMixin): """ Record of a piece of media. @@ -130,7 +122,7 @@ class MediaEntry(Document): For example, images might contain some EXIF data that's not appropriate to other formats. You might store it like: - mediaentry['media_data']['exif'] = { + mediaentry.media_data['exif'] = { 'manufacturer': 'CASIO', 'model': 'QV-4000', 'exposure_time': .659} @@ -138,7 +130,7 @@ class MediaEntry(Document): Alternately for video you might store: # play length in seconds - mediaentry['media_data']['play_length'] = 340 + mediaentry.media_data['play_length'] = 340 ... so what's appropriate here really depends on the media type. @@ -159,8 +151,6 @@ class MediaEntry(Document): "unprocessed": uploaded but needs to go through processing for display "processed": processed and able to be displayed - - license: URI for entry's license - - queued_media_file: storage interface style filepath describing a file queued for processing. This is stored in the mg_globals.queue_store storage system. @@ -175,25 +165,24 @@ class MediaEntry(Document): critical to this piece of media but may be usefully relevant to people viewing the work. (currently unused.) - - fail_error: path to the exception raised - - fail_metadata: - + - fail_error: path to the exception raised + - fail_metadata: """ __collection__ = 'media_entries' + use_dot_notation = True structure = { 'uploader': ObjectId, 'title': unicode, 'slug': unicode, 'created': datetime.datetime, - 'description': unicode, # May contain markdown/up - 'description_html': unicode, # May contain plaintext, or HTML + 'description': unicode, # May contain markdown/up + 'description_html': unicode, # May contain plaintext, or HTML 'media_type': unicode, - 'media_data': dict, # extra data relevant to this media_type - 'plugin_data': dict, # plugins can dump stuff here. + 'media_data': dict, # extra data relevant to this media_type + 'plugin_data': dict, # plugins can dump stuff here. 'tags': [dict], 'state': unicode, - 'license': unicode, # License URI # For now let's assume there can only be one main file queued # at a time @@ -219,99 +208,50 @@ class MediaEntry(Document): 'created': datetime.datetime.utcnow, 'state': u'unprocessed'} - def get_comments(self): + def get_comments(self, ascending=False): + if ascending: + order = ASCENDING + else: + order = DESCENDING + return self.db.MediaComment.find({ - 'media_entry': self['_id']}).sort('created', DESCENDING) - - def get_display_media(self, media_map, fetch_order=common.DISPLAY_IMAGE_FETCHING_ORDER): - """ - Find the best media for display. - - Args: - - media_map: a dict like - {u'image_size': [u'dir1', u'dir2', u'image.jpg']} - - fetch_order: the order we should try fetching images in - - Returns: - (media_size, media_path) - """ - media_sizes = media_map.keys() - - for media_size in common.DISPLAY_IMAGE_FETCHING_ORDER: - if media_size in media_sizes: - return media_map[media_size] - - def main_mediafile(self): - pass + 'media_entry': self._id}).sort('created', order) def generate_slug(self): - self['slug'] = url.slugify(self['title']) + self.slug = url.slugify(self.title) duplicate = mg_globals.database.media_entries.find_one( - {'slug': self['slug']}) + {'slug': self.slug}) if duplicate: - self['slug'] = "%s-%s" % (self['_id'], self['slug']) - - def url_for_self(self, urlgen): - """ - Generate an appropriate url for ourselves - - Use a slug if we have one, else use our '_id'. - """ - uploader = self.uploader() - - if self.get('slug'): - return urlgen( - 'mediagoblin.user_pages.media_home', - user=uploader['username'], - media=self['slug']) - else: - return urlgen( - 'mediagoblin.user_pages.media_home', - user=uploader['username'], - media=unicode(self['_id'])) + self.slug = "%s-%s" % (self._id, self.slug) def url_to_prev(self, urlgen): """ Provide a url to the previous entry from this user, if there is one """ - cursor = self.db.MediaEntry.find({'_id' : {"$gt": self['_id']}, - 'uploader': self['uploader'], + cursor = self.db.MediaEntry.find({'_id': {"$gt": self._id}, + 'uploader': self.uploader, 'state': 'processed'}).sort( '_id', ASCENDING).limit(1) - if cursor.count(): - return urlgen('mediagoblin.user_pages.media_home', - user=self.uploader()['username'], - media=unicode(cursor[0]['slug'])) + for media in cursor: + return media.url_for_self(urlgen) def url_to_next(self, urlgen): """ Provide a url to the next entry from this user, if there is one """ - cursor = self.db.MediaEntry.find({'_id' : {"$lt": self['_id']}, - 'uploader': self['uploader'], + cursor = self.db.MediaEntry.find({'_id': {"$lt": self._id}, + 'uploader': self.uploader, 'state': 'processed'}).sort( '_id', DESCENDING).limit(1) - if cursor.count(): - return urlgen('mediagoblin.user_pages.media_home', - user=self.uploader()['username'], - media=unicode(cursor[0]['slug'])) + for media in cursor: + return media.url_for_self(urlgen) - def uploader(self): - return self.db.User.find_one({'_id': self['uploader']}) - - def get_fail_exception(self): - """ - Get the exception that's appropriate for this error - """ - if self['fail_error']: - return common.import_component(self['fail_error']) - - def get_license_data(self): - """Return license dict for requested license""" - return licenses.SUPPORTED_LICENSES[self['license']] + @property + def get_uploader(self): + return self.db.User.find_one({'_id': self.uploader}) class MediaComment(Document): @@ -328,6 +268,7 @@ class MediaComment(Document): """ __collection__ = 'media_comments' + use_dot_notation = True structure = { 'media_entry': ObjectId, @@ -345,7 +286,8 @@ class MediaComment(Document): def media_entry(self): return self.db.MediaEntry.find_one({'_id': self['media_entry']}) - def author(self): + @property + def get_author(self): return self.db.User.find_one({'_id': self['author']}) @@ -360,4 +302,3 @@ def register_models(connection): Register all models in REGISTER_MODELS with this connection. """ connection.register(REGISTER_MODELS) - From 0bfb4dc249715a7a9617c23f42d63ff8aabfd2d9 Mon Sep 17 00:00:00 2001 From: Aaron Williamson Date: Tue, 17 Jan 2012 01:13:55 -0500 Subject: [PATCH 1406/2731] Added new files --- .../templates/mediagoblin/utils/license.html | 26 ++++++++ mediagoblin/tools/licenses.py | 62 +++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 mediagoblin/templates/mediagoblin/utils/license.html create mode 100644 mediagoblin/tools/licenses.py diff --git a/mediagoblin/templates/mediagoblin/utils/license.html b/mediagoblin/templates/mediagoblin/utils/license.html new file mode 100644 index 00000000..0f7762bc --- /dev/null +++ b/mediagoblin/templates/mediagoblin/utils/license.html @@ -0,0 +1,26 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} + +{% block license_content -%} +

License

+ {% if media['license'] %} + {{ media.get_license_data()['abbreviation'] }} + {% else %} + All rights reserved + {% endif %} +{% endblock %} diff --git a/mediagoblin/tools/licenses.py b/mediagoblin/tools/licenses.py new file mode 100644 index 00000000..cb137fa8 --- /dev/null +++ b/mediagoblin/tools/licenses.py @@ -0,0 +1,62 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +SUPPORTED_LICENSES = { + "": { + "name": "No license specified", + "abbreviation": "All rights reserved" + }, + "http://creativecommons.org/licenses/by/3.0/": { + "name": "Creative Commons Attribution Unported 3.0", + "abbreviation": "CC BY 3.0" + }, + "http://creativecommons.org/licenses/by-sa/3.0": { + "name": "Creative Commons Attribution-ShareAlike Unported 3.0", + "abbreviation": "CC BY-SA 3.0" + }, + "http://creativecommons.org/licenses/by-nd/3.0": { + "name": "Creative Commons Attribution-NoDerivs 3.0 Unported", + "abbreviation": "CC BY-ND 3.0" + }, + "http://creativecommons.org/licenses/by-nc/3.0": { + "name": "Creative Commons Attribution-NonCommercial Unported 3.0", + "abbreviation": "CC BY-NC 3.0" + }, + "http://creativecommons.org/licenses/by-nc-sa/3.0": { + "name": "Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported", + "abbreviation": "CC BY-NC-SA 3.0" + }, + "http://creativecommons.org/licenses/by-nc-nd/3.0": { + "name": "Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported", + "abbreviation": "CC BY-NC-ND 3.0" + }, + "http://creativecommons.org/publicdomain/zero/1.0/": { + "name": "Creative Commons CC0 1.0 Universal", + "abbreviation": "CC0 1.0" + }, + "http://creativecommons.org/publicdomain/mark/1.0/": { + "name": "Public Domain", + "abbreviation": "Public Domain" + }, +} + +def licenses_as_choices(): + license_list = [] + + for uri, data in SUPPORTED_LICENSES.items(): + license_list.append((uri, data["abbreviation"])) + + return license_list From a6c49d49dc1c15aedfdd7bc63a7b191ecb827787 Mon Sep 17 00:00:00 2001 From: Aaron Williamson Date: Tue, 17 Jan 2012 01:22:02 -0500 Subject: [PATCH 1407/2731] Fixed a syntax error in edit/views and added back in some missing license stuff from models --- mediagoblin/db/mongo/models.py | 9 ++++++++- mediagoblin/edit/views.py | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/mediagoblin/db/mongo/models.py b/mediagoblin/db/mongo/models.py index 906d2849..a95cde7d 100644 --- a/mediagoblin/db/mongo/models.py +++ b/mediagoblin/db/mongo/models.py @@ -22,7 +22,7 @@ from mediagoblin import mg_globals from mediagoblin.db.mongo import migrations from mediagoblin.db.mongo.util import ASCENDING, DESCENDING, ObjectId from mediagoblin.tools.pagination import Pagination -from mediagoblin.tools import url +from mediagoblin.tools import url, licenses from mediagoblin.db.mixin import UserMixin, MediaEntryMixin ################### @@ -151,6 +151,8 @@ class MediaEntry(Document, MediaEntryMixin): "unprocessed": uploaded but needs to go through processing for display "processed": processed and able to be displayed + - license: URI for media's license. + - queued_media_file: storage interface style filepath describing a file queued for processing. This is stored in the mg_globals.queue_store storage system. @@ -183,6 +185,7 @@ class MediaEntry(Document, MediaEntryMixin): 'plugin_data': dict, # plugins can dump stuff here. 'tags': [dict], 'state': unicode, + 'license': unicode, # For now let's assume there can only be one main file queued # at a time @@ -249,6 +252,10 @@ class MediaEntry(Document, MediaEntryMixin): for media in cursor: return media.url_for_self(urlgen) + def get_license_data(self): + """Return license dict for requested license""" + return licenses.SUPPORTED_LICENSES[self['license']] + @property def get_uploader(self): return self.db.User.find_one({'_id': self.uploader}) diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 6f4585cf..a3b269d8 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -47,8 +47,8 @@ def edit_media(request, media): title=media.title, slug=media.slug, description=media.description, - tags=media_tags_as_string(media.tags)) - license=media.license) + tags=media_tags_as_string(media.tags), + license=media.license)) form = forms.EditForm( request.POST, From 4225a677cad97825704ee00222c4771d36924c17 Mon Sep 17 00:00:00 2001 From: Aaron Williamson Date: Tue, 17 Jan 2012 01:23:21 -0500 Subject: [PATCH 1408/2731] Changed license.html to fit new layout better --- mediagoblin/templates/mediagoblin/utils/license.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/templates/mediagoblin/utils/license.html b/mediagoblin/templates/mediagoblin/utils/license.html index 0f7762bc..31481018 100644 --- a/mediagoblin/templates/mediagoblin/utils/license.html +++ b/mediagoblin/templates/mediagoblin/utils/license.html @@ -17,7 +17,7 @@ #} {% block license_content -%} -

License

+ License: {% if media['license'] %} {{ media.get_license_data()['abbreviation'] }} {% else %} From 77b91efcc260cf5f4e7d2b544a02a12c51f45ad4 Mon Sep 17 00:00:00 2001 From: Michele Azzolari Date: Tue, 17 Jan 2012 22:42:36 +0100 Subject: [PATCH 1409/2731] We handle exceptions if PuSH fails --- mediagoblin/submit/views.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 65243ca1..91498b09 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -21,6 +21,7 @@ from cgi import FieldStorage from celery import registry import urllib,urllib2 +import logging from werkzeug.utils import secure_filename @@ -131,15 +132,24 @@ def submit_start(request): 'mediagoblin.user_pages.atom_feed', qualified=True,user=request.user.username) hubparameters = { - 'hub.mode': 'publish', - 'hub.url': feed_url} + 'hub.mode': 'publish', + 'hub.url': feed_url} hubdata = urllib.urlencode(hubparameters) hubheaders = { "Content-type": "application/x-www-form-urlencoded", "Connection": "close"} for huburl in mg_globals.app_config["push_urls"]: - hubrequest = urllib2.Request(huburl, hubdata,hubheaders) - hubresponse = urllib2.urlopen(hubrequest) + hubrequest = urllib2.Request(huburl, hubdata, hubheaders) + try: + hubresponse = urllib2.urlopen(hubrequest) + except urllib2.HTTPError as exc: + # This is not a big issue, the item will be fetched + # by the PuSH server next time we hit it + logging.getLogger(__name__).warning( + "push url %r gave error %r", huburl, exc.code) + except urllib2.URLError as exc: + logging.getLogger(__name__).warning( + "push url %r is unreachable %r", huburl, exc.reason) add_message(request, SUCCESS, _('Woohoo! Submitted!')) From c03d13cd791ac41db1be72e8a5d4d2eaa6cc6087 Mon Sep 17 00:00:00 2001 From: Michele Azzolari Date: Tue, 17 Jan 2012 23:15:47 +0100 Subject: [PATCH 1410/2731] Cleaned the code --- mediagoblin/submit/views.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 91498b09..33868785 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -23,6 +23,8 @@ from celery import registry import urllib,urllib2 import logging +_log = logging.getLogger(__name__) + from werkzeug.utils import secure_filename from mediagoblin.db.util import ObjectId @@ -145,10 +147,10 @@ def submit_start(request): except urllib2.HTTPError as exc: # This is not a big issue, the item will be fetched # by the PuSH server next time we hit it - logging.getLogger(__name__).warning( + _log.warning( "push url %r gave error %r", huburl, exc.code) except urllib2.URLError as exc: - logging.getLogger(__name__).warning( + _log.warning( "push url %r is unreachable %r", huburl, exc.reason) add_message(request, SUCCESS, _('Woohoo! Submitted!')) From 6fc8af3278173a0d1113dc0cf5525c2249f1d0bc Mon Sep 17 00:00:00 2001 From: Elrond Date: Thu, 29 Dec 2011 11:07:58 +0100 Subject: [PATCH 1411/2731] sql/fake.py: Some fake objects/methods to calm the code sql/fake.py contains some fake classes and functions to calm the rest of the code base. Or provide super minimal implementations. Currently: - ObjectId "class": It's a function mostly doing int(first_arg) to convert string primary keys into integer primary keys. - InvalidId exception - DESCENING "constant" --- mediagoblin/db/sql/fake.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 mediagoblin/db/sql/fake.py diff --git a/mediagoblin/db/sql/fake.py b/mediagoblin/db/sql/fake.py new file mode 100644 index 00000000..ba11bfee --- /dev/null +++ b/mediagoblin/db/sql/fake.py @@ -0,0 +1,28 @@ +""" +This module contains some fake classes and functions to +calm the rest of the code base. Or provide super minimal +implementations. + +Currently: +- ObjectId "class": It's a function mostly doing + int(init_arg) to convert string primary keys into + integer primary keys. +- InvalidId exception +- DESCENDING "constant" +""" + + +DESCENDING = object() # a unique object for this "constant" + + +class InvalidId(Exception): + pass + + +def ObjectId(value=None): + if value is None: + return None + try: + return int(value) + except ValueError: + raise InvalidId("%r is an invalid id" % value) From 17c23e15e4c2dc120eaa3357e59ee8fdba55bf9e Mon Sep 17 00:00:00 2001 From: Aaron Williamson Date: Wed, 18 Jan 2012 21:07:55 -0500 Subject: [PATCH 1412/2731] Moved get_license_data to mixin.py, added license to sql media model, added translation tags to license template. --- mediagoblin/db/mixin.py | 6 +++++- mediagoblin/db/mongo/models.py | 6 +----- mediagoblin/db/sql/models.py | 1 + mediagoblin/templates/mediagoblin/utils/license.html | 8 ++++---- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/mediagoblin/db/mixin.py b/mediagoblin/db/mixin.py index 5145289e..b0fecad3 100644 --- a/mediagoblin/db/mixin.py +++ b/mediagoblin/db/mixin.py @@ -28,7 +28,7 @@ real objects. """ from mediagoblin.auth import lib as auth_lib -from mediagoblin.tools import common +from mediagoblin.tools import common, licenses class UserMixin(object): @@ -90,3 +90,7 @@ class MediaEntryMixin(object): """ if self['fail_error']: return common.import_component(self['fail_error']) + + def get_license_data(self): + """Return license dict for requested license""" + return licenses.SUPPORTED_LICENSES[self.license] diff --git a/mediagoblin/db/mongo/models.py b/mediagoblin/db/mongo/models.py index a95cde7d..56ed7dcf 100644 --- a/mediagoblin/db/mongo/models.py +++ b/mediagoblin/db/mongo/models.py @@ -22,7 +22,7 @@ from mediagoblin import mg_globals from mediagoblin.db.mongo import migrations from mediagoblin.db.mongo.util import ASCENDING, DESCENDING, ObjectId from mediagoblin.tools.pagination import Pagination -from mediagoblin.tools import url, licenses +from mediagoblin.tools import url from mediagoblin.db.mixin import UserMixin, MediaEntryMixin ################### @@ -252,10 +252,6 @@ class MediaEntry(Document, MediaEntryMixin): for media in cursor: return media.url_for_self(urlgen) - def get_license_data(self): - """Return license dict for requested license""" - return licenses.SUPPORTED_LICENSES[self['license']] - @property def get_uploader(self): return self.db.User.find_one({'_id': self.uploader}) diff --git a/mediagoblin/db/sql/models.py b/mediagoblin/db/sql/models.py index 91092f33..e07963ca 100644 --- a/mediagoblin/db/sql/models.py +++ b/mediagoblin/db/sql/models.py @@ -64,6 +64,7 @@ class MediaEntry(Base, MediaEntryMixin): description_html = Column(UnicodeText) # ?? media_type = Column(Unicode, nullable=False) state = Column(Unicode, nullable=False) # or use sqlalchemy.types.Enum? + license = Column(Unicode, nullable=False) fail_error = Column(Unicode) fail_metadata = Column(UnicodeText) diff --git a/mediagoblin/templates/mediagoblin/utils/license.html b/mediagoblin/templates/mediagoblin/utils/license.html index 31481018..056c356e 100644 --- a/mediagoblin/templates/mediagoblin/utils/license.html +++ b/mediagoblin/templates/mediagoblin/utils/license.html @@ -17,10 +17,10 @@ #} {% block license_content -%} - License: - {% if media['license'] %} - {{ media.get_license_data()['abbreviation'] }} + {% trans %}License:{% endtrans %} + {% if media.license %} + {{ media.get_license_data().abbreviation }} {% else %} - All rights reserved + {% trans %}All rights reserved{% endtrans %} {% endif %} {% endblock %} From 97ec97dbc77373819939557ad20c72a0aced5d61 Mon Sep 17 00:00:00 2001 From: Aaron Williamson Date: Wed, 18 Jan 2012 21:21:49 -0500 Subject: [PATCH 1413/2731] Minor formatting and syntax fix. --- mediagoblin/edit/views.py | 3 ++- mediagoblin/submit/forms.py | 1 + mediagoblin/submit/views.py | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index a3b269d8..cffb8a3c 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -37,6 +37,7 @@ from mediagoblin.tools.text import ( media_tags_as_string, cleaned_markdown_conversion) from mediagoblin.tools.licenses import SUPPORTED_LICENSES + @get_user_media_entry @require_active_login def edit_media(request, media): @@ -48,7 +49,7 @@ def edit_media(request, media): slug=media.slug, description=media.description, tags=media_tags_as_string(media.tags), - license=media.license)) + license=media.license) form = forms.EditForm( request.POST, diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py index 08234822..4ff52609 100644 --- a/mediagoblin/submit/forms.py +++ b/mediagoblin/submit/forms.py @@ -21,6 +21,7 @@ from mediagoblin.tools.text import tag_length_validator from mediagoblin.tools.translate import fake_ugettext_passthrough as _ from mediagoblin.tools.licenses import licenses_as_choices + class SubmitStartForm(wtforms.Form): file = wtforms.FileField(_('File')) title = wtforms.TextField( diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index b91fdb8d..8911bf82 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -69,7 +69,7 @@ def submit_start(request): entry.description_html = cleaned_markdown_conversion( entry.description) - entry['license'] = ( + entry.license = ( unicode(request.POST.get('license')) or '') From 92edc74e9b1ac16009db60049bb381bfd901013a Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 24 Dec 2011 18:20:20 +0100 Subject: [PATCH 1414/2731] Use custom query class A custom query class allows to add more methods on queries (read: "cursors"). This custom query class especially adds a .sort with a calling convention exactly like the mongo one. Makes a lot of existing code happy! --- mediagoblin/db/sql/base.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/mediagoblin/db/sql/base.py b/mediagoblin/db/sql/base.py index 40140327..082d498e 100644 --- a/mediagoblin/db/sql/base.py +++ b/mediagoblin/db/sql/base.py @@ -1,7 +1,27 @@ from sqlalchemy.orm import scoped_session, sessionmaker, object_session +from sqlalchemy.orm.query import Query +from sqlalchemy.sql.expression import desc +from mediagoblin.db.sql.fake import DESCENDING -Session = scoped_session(sessionmaker()) +def _get_query_model(query): + cols = query.column_descriptions + assert len(cols) == 1, "These functions work only on simple queries" + return cols[0]["type"] + + +class GMGQuery(Query): + def sort(self, key, direction): + key_col = getattr(_get_query_model(self), key) + if direction is DESCENDING: + key_col = desc(key_col) + return self.order_by(key_col) + + def skip(self, amount): + return self.offset(amount) + + +Session = scoped_session(sessionmaker(query_cls=GMGQuery)) def _fix_query_dict(query_dict): From fbad3a9fb9b0bd6b35d5906e96ead3485fa5f57a Mon Sep 17 00:00:00 2001 From: Elrond Date: Fri, 20 Jan 2012 00:17:05 +0100 Subject: [PATCH 1415/2731] Add copyright header and a bit of pep8ification Nearly all the sql files missed a copyright header. So added it! And while there fixed a few pep8 things. --- mediagoblin/db/sql/base.py | 19 +++++++++++++++++- mediagoblin/db/sql/convert.py | 17 ++++++++++++++++ mediagoblin/db/sql/extratypes.py | 17 ++++++++++++++++ mediagoblin/db/sql/fake.py | 19 +++++++++++++++++- mediagoblin/db/sql/models.py | 33 ++++++++++++++++++++++++-------- mediagoblin/db/sql/open.py | 19 +++++++++++++++++- 6 files changed, 113 insertions(+), 11 deletions(-) diff --git a/mediagoblin/db/sql/base.py b/mediagoblin/db/sql/base.py index 082d498e..6f45b21b 100644 --- a/mediagoblin/db/sql/base.py +++ b/mediagoblin/db/sql/base.py @@ -1,3 +1,20 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011,2012 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + from sqlalchemy.orm import scoped_session, sessionmaker, object_session from sqlalchemy.orm.query import Query from sqlalchemy.sql.expression import desc @@ -49,7 +66,7 @@ class GMGTableBase(object): def get(self, key): return getattr(self, key) - def save(self, validate = True): + def save(self, validate=True): assert validate sess = object_session(self) if sess is None: diff --git a/mediagoblin/db/sql/convert.py b/mediagoblin/db/sql/convert.py index 88614fd4..ac7a66c2 100644 --- a/mediagoblin/db/sql/convert.py +++ b/mediagoblin/db/sql/convert.py @@ -1,3 +1,20 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011,2012 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + from mediagoblin.init import setup_global_and_app_config, setup_database from mediagoblin.db.mongo.util import ObjectId diff --git a/mediagoblin/db/sql/extratypes.py b/mediagoblin/db/sql/extratypes.py index 88f556d9..33c9edee 100644 --- a/mediagoblin/db/sql/extratypes.py +++ b/mediagoblin/db/sql/extratypes.py @@ -1,3 +1,20 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011,2012 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + from sqlalchemy.types import TypeDecorator, Unicode diff --git a/mediagoblin/db/sql/fake.py b/mediagoblin/db/sql/fake.py index ba11bfee..482b85da 100644 --- a/mediagoblin/db/sql/fake.py +++ b/mediagoblin/db/sql/fake.py @@ -1,3 +1,20 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011,2012 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + """ This module contains some fake classes and functions to calm the rest of the code base. Or provide super minimal @@ -10,7 +27,7 @@ Currently: - InvalidId exception - DESCENDING "constant" """ - + DESCENDING = object() # a unique object for this "constant" diff --git a/mediagoblin/db/sql/models.py b/mediagoblin/db/sql/models.py index 91092f33..aa63e34a 100644 --- a/mediagoblin/db/sql/models.py +++ b/mediagoblin/db/sql/models.py @@ -1,3 +1,20 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011,2012 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + import datetime from sqlalchemy.ext.declarative import declarative_base @@ -41,8 +58,8 @@ class User(Base, UserMixin): verification_key = Column(Unicode) is_admin = Column(Boolean, default=False, nullable=False) url = Column(Unicode) - bio = Column(UnicodeText) # ?? - bio_html = Column(UnicodeText) # ?? + bio = Column(UnicodeText) # ?? + bio_html = Column(UnicodeText) # ?? fp_verification_key = Column(Unicode) fp_token_expire = Column(DateTime) @@ -60,11 +77,11 @@ class MediaEntry(Base, MediaEntryMixin): title = Column(Unicode, nullable=False) slug = Column(Unicode, nullable=False) created = Column(DateTime, nullable=False, default=datetime.datetime.now) - description = Column(UnicodeText) # ?? - description_html = Column(UnicodeText) # ?? + description = Column(UnicodeText) # ?? + description_html = Column(UnicodeText) # ?? media_type = Column(Unicode, nullable=False) - state = Column(Unicode, nullable=False) # or use sqlalchemy.types.Enum? - + state = Column(Unicode, nullable=False) # or use sqlalchemy.types.Enum? + fail_error = Column(Unicode) fail_metadata = Column(UnicodeText) @@ -83,7 +100,7 @@ class MediaEntry(Base, MediaEntryMixin): cascade="all, delete-orphan" ) media_files = association_proxy('media_files_helper', 'file_path', - creator=lambda k,v: MediaFile(name=k, file_path=v) + creator=lambda k, v: MediaFile(name=k, file_path=v) ) ## TODO @@ -130,7 +147,7 @@ class MediaTag(Base): class MediaComment(Base): __tablename__ = "media_comments" - + id = Column(Integer, primary_key=True) media_entry = Column( Integer, ForeignKey('media_entries.id'), nullable=False) diff --git a/mediagoblin/db/sql/open.py b/mediagoblin/db/sql/open.py index c682bd3b..3c06c676 100644 --- a/mediagoblin/db/sql/open.py +++ b/mediagoblin/db/sql/open.py @@ -1,3 +1,20 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011,2012 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + from sqlalchemy import create_engine from mediagoblin.db.sql.base import Session @@ -8,7 +25,7 @@ class DatabaseMaster(object): def __init__(self, engine): self.engine = engine - for k,v in Base._decl_class_registry.iteritems(): + for k, v in Base._decl_class_registry.iteritems(): setattr(self, k, v) def commit(self): From 3c351460e1dbed9e789e363f1d5635160bce8d84 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 21 Jan 2012 19:24:36 +0100 Subject: [PATCH 1416/2731] Fix unit tests with new license support Make the license field in the forms optional and let them properly be defaulted to "". --- mediagoblin/edit/forms.py | 1 + mediagoblin/edit/views.py | 4 +--- mediagoblin/submit/forms.py | 1 + mediagoblin/submit/views.py | 4 +--- 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index d49b9b28..3e3612fe 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -42,6 +42,7 @@ class EditForm(wtforms.Form): "You usually don't need to change this.")) license = wtforms.SelectField( _('License'), + [wtforms.validators.Optional(),], choices=licenses_as_choices()) class EditProfileForm(wtforms.Form): diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index cffb8a3c..62684dcf 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -75,9 +75,7 @@ def edit_media(request, media): media.description_html = cleaned_markdown_conversion( media.description) - media.license = ( - unicode(request.POST.get('license')) - or '') + media.license = unicode(request.POST.get('license', '')) media.slug = unicode(request.POST['slug']) diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py index 4ff52609..1ff59c18 100644 --- a/mediagoblin/submit/forms.py +++ b/mediagoblin/submit/forms.py @@ -39,4 +39,5 @@ class SubmitStartForm(wtforms.Form): "Separate tags by commas.")) license = wtforms.SelectField( _('License'), + [wtforms.validators.Optional(),], choices=licenses_as_choices()) diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 8911bf82..832203a4 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -69,9 +69,7 @@ def submit_start(request): entry.description_html = cleaned_markdown_conversion( entry.description) - entry.license = ( - unicode(request.POST.get('license')) - or '') + entry.license = unicode(request.POST.get('license', '')) entry.uploader = request.user._id From 2788e6a16484330ce1091ae57a87a4da362936c6 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 21 Jan 2012 16:40:39 -0600 Subject: [PATCH 1417/2731] License "all rights reserved" default should be None/NULL, not empty string --- mediagoblin/db/mixin.py | 2 +- mediagoblin/db/mongo/migrations.py | 2 +- mediagoblin/db/sql/models.py | 2 +- mediagoblin/edit/views.py | 2 +- mediagoblin/submit/views.py | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mediagoblin/db/mixin.py b/mediagoblin/db/mixin.py index b0fecad3..d587ccb4 100644 --- a/mediagoblin/db/mixin.py +++ b/mediagoblin/db/mixin.py @@ -93,4 +93,4 @@ class MediaEntryMixin(object): def get_license_data(self): """Return license dict for requested license""" - return licenses.SUPPORTED_LICENSES[self.license] + return licenses.SUPPORTED_LICENSES[self.license or ""] diff --git a/mediagoblin/db/mongo/migrations.py b/mediagoblin/db/mongo/migrations.py index f66ade2b..168fa530 100644 --- a/mediagoblin/db/mongo/migrations.py +++ b/mediagoblin/db/mongo/migrations.py @@ -114,4 +114,4 @@ def mediaentry_add_license(database): """ Add the 'license' field for entries that don't have it. """ - add_table_field(database, 'media_entries', 'license', '') + add_table_field(database, 'media_entries', 'license', None) diff --git a/mediagoblin/db/sql/models.py b/mediagoblin/db/sql/models.py index 53ac3d3f..507efe62 100644 --- a/mediagoblin/db/sql/models.py +++ b/mediagoblin/db/sql/models.py @@ -81,7 +81,7 @@ class MediaEntry(Base, MediaEntryMixin): description_html = Column(UnicodeText) # ?? media_type = Column(Unicode, nullable=False) state = Column(Unicode, nullable=False) # or use sqlalchemy.types.Enum? - license = Column(Unicode, nullable=False) + license = Column(Unicode) fail_error = Column(Unicode) fail_metadata = Column(UnicodeText) diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 62684dcf..471968f7 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -75,7 +75,7 @@ def edit_media(request, media): media.description_html = cleaned_markdown_conversion( media.description) - media.license = unicode(request.POST.get('license', '')) + media.license = unicode(request.POST.get('license')) or None media.slug = unicode(request.POST['slug']) diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 832203a4..f70e4ba5 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -69,7 +69,7 @@ def submit_start(request): entry.description_html = cleaned_markdown_conversion( entry.description) - entry.license = unicode(request.POST.get('license', '')) + entry.license = unicode(request.POST.get('license', "")) or None entry.uploader = request.user._id From ac014f04244243e9de1ebc152a90871161cb42a6 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 21 Jan 2012 16:41:07 -0600 Subject: [PATCH 1418/2731] Convert over the license field, too! --- mediagoblin/db/sql/convert.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/db/sql/convert.py b/mediagoblin/db/sql/convert.py index ac7a66c2..260328c6 100644 --- a/mediagoblin/db/sql/convert.py +++ b/mediagoblin/db/sql/convert.py @@ -78,7 +78,7 @@ def convert_media_entries(mk_db): copy_attrs(entry, new_entry, ('title', 'slug', 'created', 'description', 'description_html', - 'media_type', 'state', + 'media_type', 'state', 'license', 'fail_error', 'queued_task_id',)) copy_reference_attr(entry, new_entry, "uploader") From 5d775ebd2f5dc4be1fb8751805465cc99f7cf0f7 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 21 Jan 2012 16:51:21 -0600 Subject: [PATCH 1419/2731] Provided a SORTED_SUPPORTED_LICENSES (but keep the old unsorted dict!) --- mediagoblin/tools/licenses.py | 69 ++++++++++++++++------------------- 1 file changed, 31 insertions(+), 38 deletions(-) diff --git a/mediagoblin/tools/licenses.py b/mediagoblin/tools/licenses.py index cb137fa8..44d8e494 100644 --- a/mediagoblin/tools/licenses.py +++ b/mediagoblin/tools/licenses.py @@ -14,44 +14,37 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -SUPPORTED_LICENSES = { - "": { - "name": "No license specified", - "abbreviation": "All rights reserved" - }, - "http://creativecommons.org/licenses/by/3.0/": { - "name": "Creative Commons Attribution Unported 3.0", - "abbreviation": "CC BY 3.0" - }, - "http://creativecommons.org/licenses/by-sa/3.0": { - "name": "Creative Commons Attribution-ShareAlike Unported 3.0", - "abbreviation": "CC BY-SA 3.0" - }, - "http://creativecommons.org/licenses/by-nd/3.0": { - "name": "Creative Commons Attribution-NoDerivs 3.0 Unported", - "abbreviation": "CC BY-ND 3.0" - }, - "http://creativecommons.org/licenses/by-nc/3.0": { - "name": "Creative Commons Attribution-NonCommercial Unported 3.0", - "abbreviation": "CC BY-NC 3.0" - }, - "http://creativecommons.org/licenses/by-nc-sa/3.0": { - "name": "Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported", - "abbreviation": "CC BY-NC-SA 3.0" - }, - "http://creativecommons.org/licenses/by-nc-nd/3.0": { - "name": "Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported", - "abbreviation": "CC BY-NC-ND 3.0" - }, - "http://creativecommons.org/publicdomain/zero/1.0/": { - "name": "Creative Commons CC0 1.0 Universal", - "abbreviation": "CC0 1.0" - }, - "http://creativecommons.org/publicdomain/mark/1.0/": { - "name": "Public Domain", - "abbreviation": "Public Domain" - }, -} +SORTED_SUPPORTED_LICENSES = [ + ("", + {"name": "No license specified", + "abbreviation": "All rights reserved"}), + ("http://creativecommons.org/licenses/by/3.0/", + {"name": "Creative Commons Attribution Unported 3.0", + "abbreviation": "CC BY 3.0"}), + ("http://creativecommons.org/licenses/by-sa/3.0", + {"name": "Creative Commons Attribution-ShareAlike Unported 3.0", + "abbreviation": "CC BY-SA 3.0"}), + ("http://creativecommons.org/licenses/by-nd/3.0", + {"name": "Creative Commons Attribution-NoDerivs 3.0 Unported", + "abbreviation": "CC BY-ND 3.0"}), + ("http://creativecommons.org/licenses/by-nc/3.0", + {"name": "Creative Commons Attribution-NonCommercial Unported 3.0", + "abbreviation": "CC BY-NC 3.0"}), + ("http://creativecommons.org/licenses/by-nc-sa/3.0", + {"name": "Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported", + "abbreviation": "CC BY-NC-SA 3.0"}), + ("http://creativecommons.org/licenses/by-nc-nd/3.0", + {"name": "Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported", + "abbreviation": "CC BY-NC-ND 3.0"}), + ("http://creativecommons.org/publicdomain/zero/1.0/", + {"name": "Creative Commons CC0 1.0 Universal", + "abbreviation": "CC0 1.0"}), + ("http://creativecommons.org/publicdomain/mark/1.0/", + {"name": "Public Domain", + "abbreviation": "Public Domain"})] + +SUPPORTED_LICENSES = dict(SORTED_SUPPORTED_LICENSES) + def licenses_as_choices(): license_list = [] From da6206c4beb2edb43398eaa06fc78f41d7088481 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 21 Jan 2012 16:56:49 -0600 Subject: [PATCH 1420/2731] Oops, I broke teh all rights reserved ;) --- mediagoblin/edit/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 471968f7..cf7182e5 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -75,7 +75,7 @@ def edit_media(request, media): media.description_html = cleaned_markdown_conversion( media.description) - media.license = unicode(request.POST.get('license')) or None + media.license = unicode(request.POST.get('license', '')) or None media.slug = unicode(request.POST['slug']) From 2c1f1fd08b38f0715673d9f38e4703ae4041da69 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 21 Jan 2012 16:58:03 -0600 Subject: [PATCH 1421/2731] Show the license list in sorted form --- mediagoblin/tools/licenses.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/tools/licenses.py b/mediagoblin/tools/licenses.py index 44d8e494..d67510fa 100644 --- a/mediagoblin/tools/licenses.py +++ b/mediagoblin/tools/licenses.py @@ -49,7 +49,7 @@ SUPPORTED_LICENSES = dict(SORTED_SUPPORTED_LICENSES) def licenses_as_choices(): license_list = [] - for uri, data in SUPPORTED_LICENSES.items(): + for uri, data in SORTED_SUPPORTED_LICENSES: license_list.append((uri, data["abbreviation"])) return license_list From ee4fb8125aef6cc4ba357b695483da51bed4310d Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 21 Jan 2012 17:00:42 -0600 Subject: [PATCH 1422/2731] Canonical license URIS for CC stuff should have a trailing slash. --- mediagoblin/tools/licenses.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mediagoblin/tools/licenses.py b/mediagoblin/tools/licenses.py index d67510fa..0ff6453b 100644 --- a/mediagoblin/tools/licenses.py +++ b/mediagoblin/tools/licenses.py @@ -21,19 +21,19 @@ SORTED_SUPPORTED_LICENSES = [ ("http://creativecommons.org/licenses/by/3.0/", {"name": "Creative Commons Attribution Unported 3.0", "abbreviation": "CC BY 3.0"}), - ("http://creativecommons.org/licenses/by-sa/3.0", + ("http://creativecommons.org/licenses/by-sa/3.0/", {"name": "Creative Commons Attribution-ShareAlike Unported 3.0", "abbreviation": "CC BY-SA 3.0"}), - ("http://creativecommons.org/licenses/by-nd/3.0", + ("http://creativecommons.org/licenses/by-nd/3.0/", {"name": "Creative Commons Attribution-NoDerivs 3.0 Unported", "abbreviation": "CC BY-ND 3.0"}), - ("http://creativecommons.org/licenses/by-nc/3.0", + ("http://creativecommons.org/licenses/by-nc/3.0/", {"name": "Creative Commons Attribution-NonCommercial Unported 3.0", "abbreviation": "CC BY-NC 3.0"}), - ("http://creativecommons.org/licenses/by-nc-sa/3.0", + ("http://creativecommons.org/licenses/by-nc-sa/3.0/", {"name": "Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported", "abbreviation": "CC BY-NC-SA 3.0"}), - ("http://creativecommons.org/licenses/by-nc-nd/3.0", + ("http://creativecommons.org/licenses/by-nc-nd/3.0/", {"name": "Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported", "abbreviation": "CC BY-NC-ND 3.0"}), ("http://creativecommons.org/publicdomain/zero/1.0/", From 02ede85826e0cede55a3ae23b16508bf606cbb45 Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 2 Jan 2012 13:07:16 +0100 Subject: [PATCH 1423/2731] Create a fully functional get_comments for SQL Using proper sqlalchemy syntax instead of the emulated mongo one. --- mediagoblin/db/sql/models.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mediagoblin/db/sql/models.py b/mediagoblin/db/sql/models.py index 507efe62..d5573a56 100644 --- a/mediagoblin/db/sql/models.py +++ b/mediagoblin/db/sql/models.py @@ -109,6 +109,13 @@ class MediaEntry(Base, MediaEntryMixin): # attachment_files # fail_error + def get_comments(self, ascending=False): + order_col = MediaComment.created + if not ascending: + order_col = desc(order_col) + return MediaComment.query.filter_by( + media_entry=self.id).order_by(order_col) + class MediaFile(Base): __tablename__ = "mediafiles" From c47a03b909ecd97cab5b144d0cab007b62b92a90 Mon Sep 17 00:00:00 2001 From: Elrond Date: Wed, 4 Jan 2012 22:13:19 +0100 Subject: [PATCH 1424/2731] Proper url_to_{prev,next} for SQL Uses complete sqlalchemy syntax now. --- mediagoblin/db/sql/models.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/mediagoblin/db/sql/models.py b/mediagoblin/db/sql/models.py index d5573a56..57444c2c 100644 --- a/mediagoblin/db/sql/models.py +++ b/mediagoblin/db/sql/models.py @@ -23,6 +23,7 @@ from sqlalchemy import ( UniqueConstraint) from sqlalchemy.orm import relationship from sqlalchemy.orm.collections import attribute_mapped_collection +from sqlalchemy.sql.expression import desc from sqlalchemy.ext.associationproxy import association_proxy from mediagoblin.db.sql.extratypes import PathTupleWithSlashes @@ -116,6 +117,26 @@ class MediaEntry(Base, MediaEntryMixin): return MediaComment.query.filter_by( media_entry=self.id).order_by(order_col) + def url_to_prev(self, urlgen): + """get the next 'newer' entry by this user""" + media = MediaEntry.query.filter( + (MediaEntry.uploader == self.uploader) + & (MediaEntry.state == 'processed') + & (MediaEntry.id > self.id)).order_by(MediaEntry.id).first() + + if media is not None: + return media.url_for_self(urlgen) + + def url_to_next(self, urlgen): + """get the next 'older' entry by this user""" + media = MediaEntry.query.filter( + (MediaEntry.uploader == self.uploader) + & (MediaEntry.state == 'processed') + & (MediaEntry.id < self.id)).order_by(desc(MediaEntry.id)).first() + + if media is not None: + return media.url_for_self(urlgen) + class MediaFile(Base): __tablename__ = "mediafiles" From c5ba5b0456a711d157e317f220e9c739226e7f50 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Tue, 10 Jan 2012 01:54:37 +0100 Subject: [PATCH 1425/2731] Installed leaflet in extlib --- extlib/leaflet/CHANGELOG.md | 88 ++++ extlib/leaflet/LICENSE | 22 + extlib/leaflet/README.md | 10 + extlib/leaflet/debug/control/map-control.html | 29 ++ extlib/leaflet/debug/css/mobile.css | 6 + extlib/leaflet/debug/css/screen.css | 5 + .../leaflet/debug/geojson/geojson-sample.js | 50 ++ extlib/leaflet/debug/geojson/geojson.html | 56 +++ extlib/leaflet/debug/leaflet-include.js | 100 ++++ extlib/leaflet/debug/map/canvas.html | 46 ++ extlib/leaflet/debug/map/map-mobile.html | 42 ++ extlib/leaflet/debug/map/map.html | 56 +++ extlib/leaflet/debug/map/wms-marble.html | 30 ++ extlib/leaflet/debug/map/wms.html | 37 ++ extlib/leaflet/debug/vector/route.js | 1 + .../leaflet/debug/vector/vector-mobile.html | 38 ++ extlib/leaflet/debug/vector/vector.html | 38 ++ extlib/leaflet/spec/runner.html | 82 ++++ extlib/leaflet/spec/suites/LeafletSpec.js | 15 + extlib/leaflet/spec/suites/SpecHelper.js | 5 + extlib/leaflet/spec/suites/core/ClassSpec.js | 120 +++++ extlib/leaflet/spec/suites/core/EventsSpec.js | 110 +++++ extlib/leaflet/spec/suites/core/UtilSpec.js | 63 +++ .../leaflet/spec/suites/dom/DomEventSpec.js | 102 ++++ extlib/leaflet/spec/suites/dom/DomUtilSpec.js | 29 ++ .../spec/suites/geo/LatLngBoundsSpec.js | 1 + extlib/leaflet/spec/suites/geo/LatLngSpec.js | 70 +++ .../leaflet/spec/suites/geo/ProjectionSpec.js | 42 ++ .../spec/suites/geometry/BoundsSpec.js | 43 ++ .../leaflet/spec/suites/geometry/PointSpec.js | 45 ++ .../suites/geometry/TransformationSpec.js | 19 + .../spec/suites/layer/TileLayerSpec.js | 1 + extlib/leaflet/spec/suites/map/MapSpec.js | 1 + extlib/leaflet/src/Leaflet.js | 35 ++ .../src/control/Control.Attribution.js | 55 +++ extlib/leaflet/src/control/Control.Zoom.js | 36 ++ extlib/leaflet/src/control/Control.js | 9 + extlib/leaflet/src/core/Browser.js | 23 + extlib/leaflet/src/core/Class.js | 66 +++ extlib/leaflet/src/core/Events.js | 58 +++ extlib/leaflet/src/core/Util.js | 96 ++++ extlib/leaflet/src/dom/DomEvent.DoubleTap.js | 41 ++ extlib/leaflet/src/dom/DomEvent.js | 132 +++++ extlib/leaflet/src/dom/DomUtil.js | 124 +++++ extlib/leaflet/src/dom/Draggable.js | 129 +++++ .../src/dom/transition/Transition.Native.js | 89 ++++ .../src/dom/transition/Transition.Timer.js | 124 +++++ .../leaflet/src/dom/transition/Transition.js | 28 ++ extlib/leaflet/src/geo/LatLng.js | 35 ++ extlib/leaflet/src/geo/LatLngBounds.js | 62 +++ extlib/leaflet/src/geo/crs/CRS.EPSG3395.js | 13 + extlib/leaflet/src/geo/crs/CRS.EPSG3857.js | 17 + extlib/leaflet/src/geo/crs/CRS.EPSG4326.js | 7 + extlib/leaflet/src/geo/crs/CRS.js | 17 + .../src/geo/projection/Projection.LonLat.js | 10 + .../src/geo/projection/Projection.Mercator.js | 49 ++ .../Projection.SphericalMercator.js | 23 + .../leaflet/src/geo/projection/Projection.js | 5 + extlib/leaflet/src/geometry/Bounds.js | 48 ++ extlib/leaflet/src/geometry/LineUtil.js | 159 ++++++ extlib/leaflet/src/geometry/Point.js | 66 +++ extlib/leaflet/src/geometry/PolyUtil.js | 55 +++ extlib/leaflet/src/geometry/Transformation.js | 31 ++ extlib/leaflet/src/handler/DoubleClickZoom.js | 21 + extlib/leaflet/src/handler/Handler.js | 13 + extlib/leaflet/src/handler/MapDrag.js | 44 ++ extlib/leaflet/src/handler/MarkerDrag.js | 54 ++ extlib/leaflet/src/handler/ScrollWheelZoom.js | 50 ++ extlib/leaflet/src/handler/ShiftDragZoom.js | 79 +++ extlib/leaflet/src/handler/TouchZoom.js | 87 ++++ extlib/leaflet/src/layer/FeatureGroup.js | 40 ++ extlib/leaflet/src/layer/GeoJSON.js | 106 ++++ extlib/leaflet/src/layer/ImageOverlay.js | 58 +++ extlib/leaflet/src/layer/LayerGroup.js | 58 +++ extlib/leaflet/src/layer/Popup.js | 165 +++++++ extlib/leaflet/src/layer/marker/Icon.js | 56 +++ .../leaflet/src/layer/marker/Marker.Popup.js | 28 ++ extlib/leaflet/src/layer/marker/Marker.js | 123 +++++ .../src/layer/tile/TileLayer.Canvas.js | 41 ++ .../leaflet/src/layer/tile/TileLayer.WMS.js | 47 ++ extlib/leaflet/src/layer/tile/TileLayer.js | 262 ++++++++++ extlib/leaflet/src/layer/vector/Circle.js | 51 ++ .../leaflet/src/layer/vector/CircleMarker.js | 25 + extlib/leaflet/src/layer/vector/MultiPoly.js | 27 + extlib/leaflet/src/layer/vector/Path.Popup.js | 24 + extlib/leaflet/src/layer/vector/Path.VML.js | 91 ++++ extlib/leaflet/src/layer/vector/Path.js | 207 ++++++++ extlib/leaflet/src/layer/vector/Polygon.js | 58 +++ extlib/leaflet/src/layer/vector/Polyline.js | 112 +++++ extlib/leaflet/src/map/Map.js | 464 ++++++++++++++++++ extlib/leaflet/src/map/ext/Map.Control.js | 50 ++ extlib/leaflet/src/map/ext/Map.Geolocation.js | 69 +++ .../leaflet/src/map/ext/Map.PanAnimation.js | 62 +++ extlib/leaflet/src/map/ext/Map.Popup.js | 15 + .../leaflet/src/map/ext/Map.ZoomAnimation.js | 124 +++++ mediagoblin/static/extlib/leaflet | 1 + 96 files changed, 5756 insertions(+) create mode 100644 extlib/leaflet/CHANGELOG.md create mode 100644 extlib/leaflet/LICENSE create mode 100644 extlib/leaflet/README.md create mode 100644 extlib/leaflet/debug/control/map-control.html create mode 100644 extlib/leaflet/debug/css/mobile.css create mode 100644 extlib/leaflet/debug/css/screen.css create mode 100644 extlib/leaflet/debug/geojson/geojson-sample.js create mode 100644 extlib/leaflet/debug/geojson/geojson.html create mode 100644 extlib/leaflet/debug/leaflet-include.js create mode 100644 extlib/leaflet/debug/map/canvas.html create mode 100644 extlib/leaflet/debug/map/map-mobile.html create mode 100644 extlib/leaflet/debug/map/map.html create mode 100644 extlib/leaflet/debug/map/wms-marble.html create mode 100644 extlib/leaflet/debug/map/wms.html create mode 100644 extlib/leaflet/debug/vector/route.js create mode 100644 extlib/leaflet/debug/vector/vector-mobile.html create mode 100644 extlib/leaflet/debug/vector/vector.html create mode 100644 extlib/leaflet/spec/runner.html create mode 100644 extlib/leaflet/spec/suites/LeafletSpec.js create mode 100644 extlib/leaflet/spec/suites/SpecHelper.js create mode 100644 extlib/leaflet/spec/suites/core/ClassSpec.js create mode 100644 extlib/leaflet/spec/suites/core/EventsSpec.js create mode 100644 extlib/leaflet/spec/suites/core/UtilSpec.js create mode 100644 extlib/leaflet/spec/suites/dom/DomEventSpec.js create mode 100644 extlib/leaflet/spec/suites/dom/DomUtilSpec.js create mode 100644 extlib/leaflet/spec/suites/geo/LatLngBoundsSpec.js create mode 100644 extlib/leaflet/spec/suites/geo/LatLngSpec.js create mode 100644 extlib/leaflet/spec/suites/geo/ProjectionSpec.js create mode 100644 extlib/leaflet/spec/suites/geometry/BoundsSpec.js create mode 100644 extlib/leaflet/spec/suites/geometry/PointSpec.js create mode 100644 extlib/leaflet/spec/suites/geometry/TransformationSpec.js create mode 100644 extlib/leaflet/spec/suites/layer/TileLayerSpec.js create mode 100644 extlib/leaflet/spec/suites/map/MapSpec.js create mode 100644 extlib/leaflet/src/Leaflet.js create mode 100644 extlib/leaflet/src/control/Control.Attribution.js create mode 100644 extlib/leaflet/src/control/Control.Zoom.js create mode 100644 extlib/leaflet/src/control/Control.js create mode 100644 extlib/leaflet/src/core/Browser.js create mode 100644 extlib/leaflet/src/core/Class.js create mode 100644 extlib/leaflet/src/core/Events.js create mode 100644 extlib/leaflet/src/core/Util.js create mode 100644 extlib/leaflet/src/dom/DomEvent.DoubleTap.js create mode 100644 extlib/leaflet/src/dom/DomEvent.js create mode 100644 extlib/leaflet/src/dom/DomUtil.js create mode 100644 extlib/leaflet/src/dom/Draggable.js create mode 100644 extlib/leaflet/src/dom/transition/Transition.Native.js create mode 100644 extlib/leaflet/src/dom/transition/Transition.Timer.js create mode 100644 extlib/leaflet/src/dom/transition/Transition.js create mode 100644 extlib/leaflet/src/geo/LatLng.js create mode 100644 extlib/leaflet/src/geo/LatLngBounds.js create mode 100644 extlib/leaflet/src/geo/crs/CRS.EPSG3395.js create mode 100644 extlib/leaflet/src/geo/crs/CRS.EPSG3857.js create mode 100644 extlib/leaflet/src/geo/crs/CRS.EPSG4326.js create mode 100644 extlib/leaflet/src/geo/crs/CRS.js create mode 100644 extlib/leaflet/src/geo/projection/Projection.LonLat.js create mode 100644 extlib/leaflet/src/geo/projection/Projection.Mercator.js create mode 100644 extlib/leaflet/src/geo/projection/Projection.SphericalMercator.js create mode 100644 extlib/leaflet/src/geo/projection/Projection.js create mode 100644 extlib/leaflet/src/geometry/Bounds.js create mode 100644 extlib/leaflet/src/geometry/LineUtil.js create mode 100644 extlib/leaflet/src/geometry/Point.js create mode 100644 extlib/leaflet/src/geometry/PolyUtil.js create mode 100644 extlib/leaflet/src/geometry/Transformation.js create mode 100644 extlib/leaflet/src/handler/DoubleClickZoom.js create mode 100644 extlib/leaflet/src/handler/Handler.js create mode 100644 extlib/leaflet/src/handler/MapDrag.js create mode 100644 extlib/leaflet/src/handler/MarkerDrag.js create mode 100644 extlib/leaflet/src/handler/ScrollWheelZoom.js create mode 100644 extlib/leaflet/src/handler/ShiftDragZoom.js create mode 100644 extlib/leaflet/src/handler/TouchZoom.js create mode 100644 extlib/leaflet/src/layer/FeatureGroup.js create mode 100644 extlib/leaflet/src/layer/GeoJSON.js create mode 100644 extlib/leaflet/src/layer/ImageOverlay.js create mode 100644 extlib/leaflet/src/layer/LayerGroup.js create mode 100644 extlib/leaflet/src/layer/Popup.js create mode 100644 extlib/leaflet/src/layer/marker/Icon.js create mode 100644 extlib/leaflet/src/layer/marker/Marker.Popup.js create mode 100644 extlib/leaflet/src/layer/marker/Marker.js create mode 100644 extlib/leaflet/src/layer/tile/TileLayer.Canvas.js create mode 100644 extlib/leaflet/src/layer/tile/TileLayer.WMS.js create mode 100644 extlib/leaflet/src/layer/tile/TileLayer.js create mode 100644 extlib/leaflet/src/layer/vector/Circle.js create mode 100644 extlib/leaflet/src/layer/vector/CircleMarker.js create mode 100644 extlib/leaflet/src/layer/vector/MultiPoly.js create mode 100644 extlib/leaflet/src/layer/vector/Path.Popup.js create mode 100644 extlib/leaflet/src/layer/vector/Path.VML.js create mode 100644 extlib/leaflet/src/layer/vector/Path.js create mode 100644 extlib/leaflet/src/layer/vector/Polygon.js create mode 100644 extlib/leaflet/src/layer/vector/Polyline.js create mode 100644 extlib/leaflet/src/map/Map.js create mode 100644 extlib/leaflet/src/map/ext/Map.Control.js create mode 100644 extlib/leaflet/src/map/ext/Map.Geolocation.js create mode 100644 extlib/leaflet/src/map/ext/Map.PanAnimation.js create mode 100644 extlib/leaflet/src/map/ext/Map.Popup.js create mode 100644 extlib/leaflet/src/map/ext/Map.ZoomAnimation.js create mode 120000 mediagoblin/static/extlib/leaflet diff --git a/extlib/leaflet/CHANGELOG.md b/extlib/leaflet/CHANGELOG.md new file mode 100644 index 00000000..49ebfe24 --- /dev/null +++ b/extlib/leaflet/CHANGELOG.md @@ -0,0 +1,88 @@ +Leaflet Changelog +================= + +## 0.3 (master) + +## 0.2.1 (2011-06-18) + + * Fixed regression that caused error in `TileLayer.Canvas` + +## 0.2 (2011-06-17) + +### Major features + + * Added **WMS** support (`TileLayer.WMS` layer). + * Added different **projections** support, having `EPSG:3857`, `EPSG:4326` and `EPSG:3395` out of the box (through `crs` option in `Map`). Thanks to [@Miroff](https://github.com/Miroff) & [@Komzpa](https://github.com/Komzpa) for great advice and explanation regarding this. + * Added **GeoJSON** layer support. + +### Improvements + +#### Usability improvements + + * Improved panning performance in Chrome and FF considerably with the help of `requestAnimationFrame`. [#130](https://github.com/CloudMade/Leaflet/issues/130) + * Improved click responsiveness in mobile WebKit (now it happens without delay). [#26](https://github.com/CloudMade/Leaflet/issues/26) + * Added tap tolerance (so click happens even if you moved your finger slighly when tapping). + * Improved geolocation error handling: better error messages, explicit timeout, set world view on locateAndSetView failure. [#61](https://github.com/CloudMade/Leaflet/issues/61) + +#### API improvements + + * Added **MultiPolyline** and **MultiPolygon** layers. [#77](https://github.com/CloudMade/Leaflet/issues/77) + * Added **LayerGroup** and **FeatureGroup** layers for grouping other layers. + * Added **TileLayer.Canvas** for easy creation of canvas-based tile layers. + * Changed `Circle` to be zoom-dependent (with radius in meters); circle of a permanent size is now called `CircleMarker`. + * Added `mouseover` and `mouseout` events to map, markers and paths; added map `mousemove` event. + * Added `setLatLngs`, `spliceLatLngs`, `addLatLng`, `getLatLngs` methods to polylines and polygons. + * Added `setLatLng` and `setRadius` methods to `Circle` and `CircleMarker`. + * Improved `LatLngBounds contains` method to accept `LatLng` in addition to `LatLngBounds`, the same for `Bounds contains` and `Point` + * Improved `LatLngBounds` & `Bounds` to allow their instantiation without arguments (by [@snc](https://github.com/snc)). + * Added TMS tile numbering support through `TileLayer` `scheme: 'tms'` option (by [@tmcw](https://github.com/tmcw)). + * Added `TileLayer` `noWrap` option to disable wrapping `x` tile coordinate (by [@jasondavies](https://github.com/jasondavies)). + * Added `opacity` option and `setOpacity` method to `TileLayer`. + * Added `setLatLng` and `setIcon` methods to `Marker`. + * Added `title` option to `Marker`. + * Added `maxZoom` argument to `map.locateAndSetView` method. + * Added ability to pass Geolocation options to map `locate` and `locateAndSetView` methods (by [@JasonSanford](https://github.com/JasonSanford)). + * Improved `Popup` to accept HTML elements in addition to strings as its content. + +#### Development workflow improvements + + * Added `Makefile` for building `leaflet.js` on non-Windows machines (by [@tmcw](https://github.com/tmcw)). + * Improved `debug/leaflet-include.js` script to allow using it outside of `debug` folder (by [@antonj](https://github.com/antonj)). + * Improved `L` definition to be compatible with CommonJS. [#122](https://github.com/CloudMade/Leaflet/issues/122) + +### Bug fixes + +#### General bugfixes + + * Fixed a bug where zooming is broken if the map contains a polygon and you zoom to an area where it's not visible. [#47](https://github.com/CloudMade/Leaflet/issues/47) + * Fixed a bug where closed polylines would not appear on the map. + * Fixed a bug where marker that was added, removed and then added again would not appear on the map. [#66](https://github.com/CloudMade/Leaflet/issues/66) + * Fixed a bug where tile layer that was added, removed and then added again would not appear on the map. + * Fixed a bug where some tiles would not load when panning across the date line. [#97](https://github.com/CloudMade/Leaflet/issues/97) + * Fixed a bug where map div with `position: absolute` is reset to `relative`. [#100](https://github.com/CloudMade/Leaflet/issues/100) + * Fixed a bug that caused an error when trying to add a marker without shadow in its icon. + * Fixed a bug where popup content would not update on `setContent` call. [#94](https://github.com/CloudMade/Leaflet/issues/94) + * Fixed a bug where double click zoom wouldn't work if popup is opened on map click + * Fixed a bug with click propagation on popup close button. [#99](https://github.com/CloudMade/Leaflet/issues/99) + * Fixed inability to remove ImageOverlay layer. + +#### Browser bugfixes + + * Fixed a bug where paths would not appear in IE8. + * Fixed a bug where there were occasional slowdowns before zoom animation in WebKit. [#123](https://github.com/CloudMade/Leaflet/issues/123) + * Fixed incorrect zoom animation & popup styling in Opera 11.11. + * Fixed popup fade animation in Firefox and Opera. + * Fixed a bug where map isn't displayed in Firefox when there's an `img { max-width: 100% }` rule. + +#### Mobile browsers bugfixes + + * Fixed a bug that prevented panning on some Android 2.1 (and possibly older) devices. [#84](https://github.com/CloudMade/Leaflet/issues/84) + * Disabled zoom animation on Android by default because it's buggy on some devices (will be enabled back when it's stable enough). [#32](https://github.com/CloudMade/Leaflet/issues/32) + * Fixed a bug where map would occasionally break while multi-touch-zooming on iOS. [#32](https://github.com/CloudMade/Leaflet/issues/32) + * Fixed a bug that prevented panning/clicking on Android 3 tablets. [#121](https://github.com/CloudMade/Leaflet/issues/121) + * Fixed a bug that prevented panning/clicking on Opera Mobile. [#138](https://github.com/CloudMade/Leaflet/issues/138) + * Fixed potentional memory leak on WebKit when removing tiles, thanks to [@Scalar4eg](https://github.com/Scalar4eg). [#107](https://github.com/CloudMade/Leaflet/issues/107) + +## 0.1 (2011-05-13) + + * Initial Leaflet release. diff --git a/extlib/leaflet/LICENSE b/extlib/leaflet/LICENSE new file mode 100644 index 00000000..883dc212 --- /dev/null +++ b/extlib/leaflet/LICENSE @@ -0,0 +1,22 @@ +Copyright (c) 2010-2011, CloudMade, Vladimir Agafonkin +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. + +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 HOLDER 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. \ No newline at end of file diff --git a/extlib/leaflet/README.md b/extlib/leaflet/README.md new file mode 100644 index 00000000..b6caae96 --- /dev/null +++ b/extlib/leaflet/README.md @@ -0,0 +1,10 @@ +Leaflet + +Leaflet is a modern, lightweight BSD-licensed JavaScript library for making tile-based interactive maps for both desktop and mobile web browsers, developed by [CloudMade](http://cloudmade.com) to form the core of its next generation JavaScript API. + +It is built from the ground up to work efficiently and smoothly on both platforms, utilizing cutting-edge technologies included in HTML5. Its top priorities are usability, performance and small size, [A-grade](http://developer.yahoo.com/yui/articles/gbs/) browser support, flexibility and easy to use API. The OOP-based code of the library is designed to be modular, extensible and very easy to understand. + +Check out the website for more information: [leaflet.cloudmade.com](http://leaflet.cloudmade.com) + +## Contributing to Leaflet +Let's make the best open-source library for maps that can possibly exist! Please send your pull requests to [Vladimir Agafonkin](http://github.com/mourner) (Leaflet maintainer) - we'll be happy to accept your contributions! [List of Leaflet contributors](http://github.com/CloudMade/Leaflet/contributors) \ No newline at end of file diff --git a/extlib/leaflet/debug/control/map-control.html b/extlib/leaflet/debug/control/map-control.html new file mode 100644 index 00000000..8d52bc98 --- /dev/null +++ b/extlib/leaflet/debug/control/map-control.html @@ -0,0 +1,29 @@ + + + + Leaflet debug page + + + + + + + + + + +
+ + + + \ No newline at end of file diff --git a/extlib/leaflet/debug/css/mobile.css b/extlib/leaflet/debug/css/mobile.css new file mode 100644 index 00000000..d8f46f32 --- /dev/null +++ b/extlib/leaflet/debug/css/mobile.css @@ -0,0 +1,6 @@ +html, body, #map { + margin: 0; + padding: 0; + width: 100%; + height: 100%; +} \ No newline at end of file diff --git a/extlib/leaflet/debug/css/screen.css b/extlib/leaflet/debug/css/screen.css new file mode 100644 index 00000000..f9886987 --- /dev/null +++ b/extlib/leaflet/debug/css/screen.css @@ -0,0 +1,5 @@ +#map { + width: 800px; + height: 600px; + border: 1px solid #ccc; + } \ No newline at end of file diff --git a/extlib/leaflet/debug/geojson/geojson-sample.js b/extlib/leaflet/debug/geojson/geojson-sample.js new file mode 100644 index 00000000..24ecf050 --- /dev/null +++ b/extlib/leaflet/debug/geojson/geojson-sample.js @@ -0,0 +1,50 @@ +var geojsonSample = { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [102.0, 0.5] + }, + "properties": { + "prop0": "value0", + "color": "blue" + } + }, + + { + "type": "Feature", + "geometry": { + "type": "LineString", + "coordinates": [[102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]] + }, + "properties": { + "color": "red", + "prop1": 0.0 + } + }, + + { + "type": "Feature", + "geometry": { + "type": "Polygon", + "coordinates": [[[100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0]]] + }, + "properties": { + "color": "green", + "prop1": { + "this": "that" + } + } + }, + + { + "type": "Feature", + "geometry": { + "type": "MultiPolygon", + "coordinates": [[[[100.0, 1.5], [100.5, 1.5], [100.5, 2.0], [100.0, 2.0], [100.0, 1.5]]], [[[100.5, 2.0], [100.5, 2.5], [101.0, 2.5], [101.0, 2.0], [100.5, 2.0]]]] + } + } + ] +}; \ No newline at end of file diff --git a/extlib/leaflet/debug/geojson/geojson.html b/extlib/leaflet/debug/geojson/geojson.html new file mode 100644 index 00000000..319e7c13 --- /dev/null +++ b/extlib/leaflet/debug/geojson/geojson.html @@ -0,0 +1,56 @@ + + + + Leaflet debug page + + + + + + + + + + +
+ + + + + + \ No newline at end of file diff --git a/extlib/leaflet/debug/leaflet-include.js b/extlib/leaflet/debug/leaflet-include.js new file mode 100644 index 00000000..9ae8f458 --- /dev/null +++ b/extlib/leaflet/debug/leaflet-include.js @@ -0,0 +1,100 @@ +(function() { + //TODO replace script list with the one from ../buid/deps.js + var scripts = [ + 'Leaflet.js', + + 'core/Util.js', + 'core/Class.js', + 'core/Events.js', + 'core/Browser.js', + + 'geometry/Point.js', + 'geometry/Bounds.js', + 'geometry/Transformation.js', + 'geometry/LineUtil.js', + 'geometry/PolyUtil.js', + + 'dom/DomEvent.js', + 'dom/DomEvent.DoubleTap.js', + 'dom/DomUtil.js', + 'dom/Draggable.js', + + 'dom/transition/Transition.js', + 'dom/transition/Transition.Native.js', + 'dom/transition/Transition.Timer.js', + + 'geo/LatLng.js', + 'geo/LatLngBounds.js', + + 'geo/projection/Projection.js', + 'geo/projection/Projection.SphericalMercator.js', + 'geo/projection/Projection.LonLat.js', + 'geo/projection/Projection.Mercator.js', + + 'geo/crs/CRS.js', + 'geo/crs/CRS.EPSG3857.js', + 'geo/crs/CRS.EPSG4326.js', + 'geo/crs/CRS.EPSG3395.js', + + 'layer/LayerGroup.js', + 'layer/FeatureGroup.js', + + 'layer/tile/TileLayer.js', + 'layer/tile/TileLayer.WMS.js', + 'layer/tile/TileLayer.Canvas.js', + 'layer/ImageOverlay.js', + 'layer/Popup.js', + + 'layer/marker/Icon.js', + 'layer/marker/Marker.js', + 'layer/marker/Marker.Popup.js', + + 'layer/vector/Path.js', + 'layer/vector/Path.VML.js', + 'layer/vector/Path.Popup.js', + 'layer/vector/Polyline.js', + 'layer/vector/Polygon.js', + 'layer/vector/MultiPoly.js', + 'layer/vector/Circle.js', + 'layer/vector/CircleMarker.js', + + 'layer/GeoJSON.js', + + 'handler/Handler.js', + 'handler/MapDrag.js', + 'handler/TouchZoom.js', + 'handler/DoubleClickZoom.js', + 'handler/ScrollWheelZoom.js', + 'handler/ShiftDragZoom.js', + 'handler/MarkerDrag.js', + + 'control/Control.js', + 'control/Control.Zoom.js', + 'control/Control.Attribution.js', + + 'map/Map.js', + 'map/ext/Map.Geolocation.js', + 'map/ext/Map.Popup.js', + 'map/ext/Map.PanAnimation.js', + 'map/ext/Map.ZoomAnimation.js', + 'map/ext/Map.Control.js' + ]; + + function getSrcUrl() { + var scripts = document.getElementsByTagName('script'); + for (var i = 0; i < scripts.length; i++) { + var src = scripts[i].src; + if (src) { + var res = src.match(/^(.*)leaflet-include\.js$/); + if (res) { + return res[1] + '../src/'; + } + } + } + } + + var path = getSrcUrl(); + for (var i = 0; i < scripts.length; i++) { + document.writeln(""); + } +})(); \ No newline at end of file diff --git a/extlib/leaflet/debug/map/canvas.html b/extlib/leaflet/debug/map/canvas.html new file mode 100644 index 00000000..233035f1 --- /dev/null +++ b/extlib/leaflet/debug/map/canvas.html @@ -0,0 +1,46 @@ + + + + Leaflet debug page + + + + + + + + + + +
+ + + + \ No newline at end of file diff --git a/extlib/leaflet/debug/map/map-mobile.html b/extlib/leaflet/debug/map/map-mobile.html new file mode 100644 index 00000000..27d12ed9 --- /dev/null +++ b/extlib/leaflet/debug/map/map-mobile.html @@ -0,0 +1,42 @@ + + + + Leaflet debug page + + + + + + + + + + + + +
+ + + + \ No newline at end of file diff --git a/extlib/leaflet/debug/map/map.html b/extlib/leaflet/debug/map/map.html new file mode 100644 index 00000000..88bdd5b0 --- /dev/null +++ b/extlib/leaflet/debug/map/map.html @@ -0,0 +1,56 @@ + + + + Leaflet debug page + + + + + + + + + + +
+ + + + + \ No newline at end of file diff --git a/extlib/leaflet/debug/map/wms-marble.html b/extlib/leaflet/debug/map/wms-marble.html new file mode 100644 index 00000000..fd5443ab --- /dev/null +++ b/extlib/leaflet/debug/map/wms-marble.html @@ -0,0 +1,30 @@ + + + + Leaflet debug page + + + + + + + + + + +
+ + + + \ No newline at end of file diff --git a/extlib/leaflet/debug/map/wms.html b/extlib/leaflet/debug/map/wms.html new file mode 100644 index 00000000..08694726 --- /dev/null +++ b/extlib/leaflet/debug/map/wms.html @@ -0,0 +1,37 @@ + + + + Leaflet debug page + + + + + + + + + + +
+ + + + \ No newline at end of file diff --git a/extlib/leaflet/debug/vector/route.js b/extlib/leaflet/debug/vector/route.js new file mode 100644 index 00000000..fa847e31 --- /dev/null +++ b/extlib/leaflet/debug/vector/route.js @@ -0,0 +1 @@ +var route = [[51.452339,-0.26291],[51.452011,-0.26479],[51.451839,-0.26624],[51.45187,-0.26706],[51.451881,-0.26733],[51.452049,-0.26734],[51.453098,-0.26734],[51.453838,-0.26717],[51.454849,-0.267],[51.45575,-0.26704],[51.45631,-0.26723],[51.456402,-0.26729],[51.456669,-0.26745],[51.45689,-0.26755],[51.457001,-0.26758],[51.45797,-0.26776],[51.458359,-0.26786],[51.459019,-0.26783],[51.459629,-0.26785],[51.459888,-0.26809],[51.460178,-0.26845],[51.46077,-0.26841],[51.461102,-0.26838],[51.461479,-0.2685],[51.46159,-0.26848],[51.462479,-0.26776],[51.462921,-0.26766],[51.463291,-0.26754],[51.463558,-0.26736],[51.46373,-0.26728],[51.464291,-0.26676],[51.464432,-0.26675],[51.464722,-0.26671],[51.464821,-0.2657],[51.46484,-0.2655],[51.464851,-0.26504],[51.46489,-0.26456],[51.464951,-0.26397],[51.464981,-0.26357],[51.46497,-0.26344],[51.465031,-0.26294],[51.46508,-0.26224],[51.465111,-0.26179],[51.46513,-0.26157],[51.465149,-0.261],[51.465149,-0.26077],[51.465149,-0.26051],[51.465149,-0.26011],[51.46513,-0.25982],[51.46513,-0.25955],[51.46513,-0.25929],[51.465111,-0.25872],[51.46513,-0.2583],[51.46513,-0.25771],[51.465141,-0.25753],[51.46516,-0.25675],[51.46516,-0.25658],[51.46516,-0.25647],[51.465179,-0.25574],[51.465191,-0.25525],[51.465199,-0.25486],[51.46521,-0.25455],[51.46521,-0.25413],[51.46524,-0.25293],[51.465229,-0.25186],[51.465191,-0.25085],[51.46513,-0.25001],[51.46508,-0.24926],[51.465069,-0.24862],[51.465111,-0.24775],[51.465149,-0.2472],[51.465172,-0.24675],[51.46524,-0.24571],[51.465279,-0.24482],[51.465321,-0.24423],[51.465229,-0.24372],[51.465149,-0.24266],[51.465118,-0.24208],[51.465069,-0.24147],[51.464939,-0.24028],[51.464821,-0.2395],[51.46476,-0.2389],[51.464729,-0.23852],[51.464642,-0.23755],[51.464569,-0.23693],[51.464481,-0.2365],[51.464371,-0.23557],[51.464211,-0.23437],[51.46418,-0.23421],[51.464001,-0.23334],[51.463959,-0.23316],[51.463829,-0.23253],[51.463779,-0.23235],[51.463699,-0.23189],[51.463661,-0.2317],[51.463589,-0.23136],[51.463539,-0.23106],[51.463402,-0.23025],[51.463341,-0.2299],[51.463249,-0.22924],[51.463139,-0.22838],[51.46312,-0.22823],[51.463001,-0.22726],[51.462959,-0.22698],[51.462891,-0.22645],[51.462769,-0.22551],[51.462761,-0.22516],[51.462681,-0.22436],[51.46262,-0.224],[51.462521,-0.22297],[51.462421,-0.22247],[51.462181,-0.22183],[51.462009,-0.22149],[51.461731,-0.22074],[51.461399,-0.2196],[51.461361,-0.21948],[51.46122,-0.21878],[51.461109,-0.21824],[51.460979,-0.2175],[51.460789,-0.21715],[51.46069,-0.21685],[51.460522,-0.21596],[51.4604,-0.21533],[51.460361,-0.21511],[51.460251,-0.21458],[51.46022,-0.2144],[51.460159,-0.21411],[51.460121,-0.21389],[51.46011,-0.2138],[51.459961,-0.21308],[51.459942,-0.21294],[51.459702,-0.21186],[51.459702,-0.21184],[51.45948,-0.21112],[51.459259,-0.21038],[51.459011,-0.20963],[51.45892,-0.2094],[51.458809,-0.2091],[51.458759,-0.20898],[51.45858,-0.20853],[51.458328,-0.20795],[51.458179,-0.2076],[51.458141,-0.20751],[51.458099,-0.20743],[51.457981,-0.2072],[51.45771,-0.20668],[51.4575,-0.20638],[51.457321,-0.20614],[51.45718,-0.20596],[51.457088,-0.20584],[51.456921,-0.20558],[51.456829,-0.20541],[51.456772,-0.20522],[51.45676,-0.20518],[51.456749,-0.20509],[51.45673,-0.20469],[51.456718,-0.20466],[51.456699,-0.20425],[51.456692,-0.20391],[51.456692,-0.20371],[51.456661,-0.20284],[51.456661,-0.20272],[51.456661,-0.20254],[51.456669,-0.20231],[51.456692,-0.20178],[51.456699,-0.20148],[51.45673,-0.20116],[51.45676,-0.20077],[51.45686,-0.19978],[51.45697,-0.19857],[51.457001,-0.19826],[51.457039,-0.19806],[51.45705,-0.19793],[51.457142,-0.19781],[51.457211,-0.19776],[51.45742,-0.19785],[51.45763,-0.19794],[51.45776,-0.19795],[51.457829,-0.19791],[51.45789,-0.19784],[51.458,-0.19751],[51.458172,-0.19697],[51.458271,-0.19654],[51.458439,-0.19585],[51.458599,-0.19507],[51.45863,-0.1949],[51.458729,-0.19437],[51.458809,-0.19394],[51.45892,-0.19318],[51.45892,-0.1926],[51.458839,-0.19206],[51.458858,-0.19189],[51.45887,-0.1917],[51.459049,-0.19117],[51.45916,-0.19078],[51.459148,-0.19065],[51.45908,-0.19055],[51.458679,-0.19041],[51.458511,-0.19034],[51.458271,-0.19026],[51.457939,-0.19013],[51.457329,-0.1899],[51.457199,-0.18985],[51.456829,-0.18972],[51.457069,-0.18858],[51.457142,-0.18824],[51.457211,-0.18785],[51.45731,-0.18732],[51.457581,-0.1857],[51.457649,-0.18525],[51.457878,-0.18476],[51.45797,-0.18457],[51.45829,-0.18387],[51.45866,-0.18305],[51.458771,-0.18276],[51.458801,-0.18269],[51.4589,-0.18243],[51.458981,-0.18222],[51.45911,-0.1819],[51.459229,-0.1815],[51.459358,-0.18094],[51.459431,-0.18064],[51.45956,-0.18014],[51.459518,-0.18],[51.459469,-0.17984],[51.45882,-0.1796],[51.458431,-0.17945],[51.458351,-0.17935],[51.458279,-0.17924],[51.458309,-0.17861],[51.458401,-0.17714],[51.458511,-0.17525],[51.45853,-0.17515],[51.45858,-0.17493],[51.458912,-0.17401],[51.459,-0.17374],[51.459179,-0.1732],[51.45929,-0.17292],[51.459461,-0.17245],[51.459579,-0.1721],[51.459919,-0.17123],[51.460232,-0.17037],[51.4604,-0.16967],[51.46048,-0.16947],[51.460579,-0.16882],[51.460751,-0.16781],[51.460838,-0.16703],[51.460781,-0.16653],[51.460819,-0.16599],[51.460831,-0.1658],[51.460869,-0.16534],[51.46088,-0.16485],[51.460899,-0.16431],[51.460979,-0.16321],[51.460999,-0.16296],[51.461021,-0.16268],[51.461021,-0.1625],[51.46104,-0.16213],[51.46106,-0.16186],[51.461151,-0.16126],[51.46122,-0.1602],[51.4613,-0.15897],[51.461319,-0.15819],[51.461281,-0.15716],[51.4613,-0.15642],[51.460049,-0.15658],[51.45993,-0.15658],[51.459759,-0.15659],[51.45969,-0.15658],[51.458931,-0.15604],[51.458172,-0.15538],[51.457878,-0.1551],[51.45742,-0.15465],[51.456821,-0.15379],[51.455681,-0.15134],[51.455528,-0.15098],[51.45475,-0.14926],[51.453999,-0.14742],[51.45401,-0.14732],[51.454159,-0.14628],[51.453369,-0.14419],[51.452862,-0.14297],[51.452332,-0.14222],[51.451832,-0.14213],[51.45174,-0.14214],[51.451328,-0.14212],[51.451099,-0.14197],[51.451012,-0.14191],[51.450729,-0.14134],[51.450691,-0.14118],[51.450489,-0.1404],[51.449871,-0.13813],[51.449799,-0.13787],[51.449539,-0.13695],[51.449261,-0.13612],[51.44915,-0.13577],[51.448811,-0.13476],[51.448502,-0.13383],[51.448391,-0.13351],[51.44833,-0.13332],[51.44812,-0.13277],[51.447861,-0.13189],[51.447609,-0.13092],[51.447552,-0.13067],[51.44735,-0.12992],[51.44717,-0.12935],[51.447071,-0.12885],[51.446991,-0.12862],[51.446972,-0.12857],[51.44685,-0.1282],[51.445992,-0.12606],[51.44511,-0.12436],[51.44492,-0.12368],[51.44487,-0.12353],[51.444752,-0.12276],[51.444721,-0.12266],[51.444641,-0.12243],[51.44453,-0.12213],[51.444389,-0.12187],[51.44434,-0.12167],[51.444118,-0.12058],[51.444012,-0.12013],[51.44371,-0.11895],[51.443531,-0.1182],[51.443489,-0.11803],[51.443451,-0.11786],[51.443371,-0.11758],[51.4431,-0.11661],[51.44276,-0.1158],[51.44212,-0.11491],[51.441689,-0.11427],[51.44138,-0.11364],[51.441151,-0.11289],[51.441101,-0.11274],[51.441059,-0.11257],[51.440651,-0.11082],[51.440578,-0.11025],[51.440392,-0.10871],[51.441078,-0.10854],[51.441441,-0.10829],[51.44109,-0.10701],[51.44101,-0.10662],[51.440941,-0.10626],[51.440929,-0.10578],[51.440891,-0.1052],[51.440762,-0.10446],[51.44051,-0.10355],[51.440441,-0.10333],[51.440189,-0.10274],[51.43964,-0.10179],[51.439461,-0.10091],[51.439339,-0.10016],[51.43935,-0.10003],[51.439339,-0.09909],[51.4394,-0.09832],[51.439548,-0.0979],[51.43969,-0.09752],[51.43985,-0.09727],[51.440189,-0.09671],[51.44043,-0.09609],[51.44046,-0.09599],[51.44072,-0.09489],[51.440948,-0.09397],[51.441071,-0.09291],[51.441101,-0.09183],[51.441109,-0.09137],[51.441109,-0.091],[51.441101,-0.09],[51.44104,-0.0892],[51.440861,-0.08854],[51.440891,-0.08813],[51.440979,-0.08768],[51.44173,-0.08473],[51.44183,-0.08436],[51.441891,-0.08413],[51.44191,-0.08401],[51.44199,-0.08292],[51.442089,-0.08137],[51.4422,-0.08036],[51.442242,-0.08006],[51.44228,-0.07963],[51.44231,-0.07934],[51.442451,-0.07843],[51.442551,-0.07765],[51.442669,-0.07675],[51.442982,-0.07507],[51.443298,-0.07406],[51.443489,-0.07357],[51.443562,-0.07321],[51.443569,-0.0728],[51.443489,-0.07209],[51.443359,-0.07099],[51.443119,-0.0694],[51.4431,-0.06915],[51.443089,-0.06894],[51.443138,-0.06811],[51.44318,-0.06783],[51.443199,-0.06772],[51.443291,-0.06757],[51.443069,-0.06722],[51.442532,-0.06649],[51.442421,-0.06637],[51.4422,-0.06613],[51.442059,-0.06597],[51.44186,-0.06575],[51.44178,-0.06567],[51.441761,-0.06555],[51.441269,-0.06498],[51.44112,-0.06465],[51.44104,-0.06435],[51.441021,-0.06425],[51.440948,-0.06408],[51.440609,-0.06253],[51.440601,-0.0622],[51.440559,-0.06188],[51.440552,-0.06152],[51.44054,-0.0609],[51.440529,-0.06047],[51.44051,-0.06015],[51.44051,-0.05982],[51.44054,-0.05915],[51.44054,-0.05889],[51.440552,-0.0586],[51.440552,-0.0584],[51.440472,-0.05796],[51.440361,-0.05765],[51.440239,-0.05739],[51.440109,-0.05707],[51.43969,-0.05579],[51.43924,-0.05458],[51.43911,-0.05418],[51.439049,-0.054],[51.439289,-0.05379],[51.439751,-0.0538],[51.440102,-0.05379],[51.440201,-0.05371],[51.440239,-0.05359],[51.440269,-0.05332],[51.4403,-0.05295],[51.440281,-0.05266],[51.440231,-0.05243],[51.440022,-0.05139],[51.43998,-0.05115],[51.440071,-0.0507],[51.440479,-0.04968],[51.440762,-0.04884],[51.44138,-0.04734],[51.442162,-0.04733],[51.442181,-0.04733],[51.442268,-0.04725],[51.442329,-0.04588],[51.442329,-0.04563],[51.44228,-0.04412],[51.442242,-0.04251],[51.44215,-0.04132],[51.44202,-0.03995],[51.442051,-0.03951],[51.442089,-0.03879],[51.442211,-0.03746],[51.442299,-0.03678],[51.442329,-0.03654],[51.442341,-0.03618],[51.442341,-0.03586],[51.442322,-0.03489],[51.442291,-0.03441],[51.442081,-0.03347],[51.441929,-0.03274],[51.441898,-0.03239],[51.441959,-0.03208],[51.442131,-0.03124],[51.442322,-0.03081],[51.442692,-0.02992],[51.4431,-0.02868],[51.443138,-0.028],[51.443169,-0.0276],[51.44323,-0.02698],[51.443352,-0.02683],[51.443741,-0.02636],[51.443851,-0.02623],[51.443932,-0.02613],[51.444221,-0.02538],[51.44455,-0.02409],[51.444618,-0.02361],[51.444691,-0.02308],[51.44479,-0.02226],[51.444801,-0.02197],[51.444809,-0.02115],[51.44487,-0.02082],[51.444939,-0.02056],[51.445019,-0.02034],[51.445122,-0.02013],[51.445229,-0.01994],[51.445431,-0.01983],[51.445969,-0.01957],[51.446129,-0.01946],[51.446072,-0.01873],[51.44595,-0.01764],[51.4459,-0.01725],[51.445709,-0.01584],[51.445511,-0.0145],[51.445339,-0.01315],[51.445068,-0.01105],[51.445068,-0.00916],[51.445068,-0.00897],[51.445099,-0.00713],[51.44511,-0.00561],[51.445099,-0.00474],[51.44508,-0.00345],[51.445122,-0.00221],[51.44516,-0.00109],[51.445171,0.00011],[51.44519,0.00135],[51.445202,0.00247],[51.445221,0.00356],[51.445278,0.00442],[51.445301,0.00467],[51.445389,0.00518],[51.44556,0.00565],[51.44558,0.00603],[51.44556,0.00663],[51.445572,0.00772],[51.445641,0.00859],[51.445679,0.00959],[51.445721,0.01089],[51.445801,0.0115],[51.445889,0.0127],[51.446159,0.01386],[51.446381,0.01466],[51.446609,0.0156],[51.447708,0.02026],[51.44775,0.02043],[51.448189,0.02234],[51.44825,0.02255],[51.448292,0.0227],[51.448441,0.0232],[51.448669,0.02399],[51.448879,0.02476],[51.44902,0.02536],[51.449089,0.02561],[51.44978,0.02794],[51.450119,0.02896],[51.450191,0.02912],[51.450249,0.02914],[51.450279,0.02917],[51.450298,0.0292],[51.450329,0.02924],[51.450352,0.02933],[51.450359,0.02943],[51.45034,0.02953],[51.450279,0.02964],[51.45023,0.02969],[51.450161,0.0297],[51.4501,0.02967],[51.450039,0.02965],[51.44997,0.02965],[51.44978,0.02972],[51.4492,0.02993],[51.44857,0.03013],[51.448021,0.03033],[51.44772,0.03043],[51.44696,0.03077],[51.446739,0.03084],[51.446419,0.03088],[51.44614,0.0309],[51.44577,0.03095],[51.445438,0.03104],[51.445148,0.03122],[51.444939,0.03145],[51.444721,0.03171],[51.444561,0.03193],[51.444401,0.03219],[51.444241,0.0325],[51.443958,0.03315],[51.443501,0.03425],[51.4431,0.03519],[51.442791,0.03597],[51.442471,0.03678],[51.44228,0.03729],[51.442131,0.0378],[51.441811,0.03879],[51.441368,0.04027],[51.441231,0.04084],[51.44101,0.04174],[51.440479,0.04412],[51.43972,0.04768],[51.439651,0.04802],[51.4394,0.04924],[51.439369,0.04944],[51.439178,0.05038],[51.43911,0.05061],[51.438999,0.05081],[51.438789,0.05132],[51.438568,0.05182],[51.438358,0.05242],[51.438179,0.05313],[51.43795,0.05417],[51.437191,0.05753],[51.436932,0.05848],[51.436871,0.05864],[51.43679,0.05888],[51.436581,0.0594],[51.435188,0.0627],[51.434921,0.0634],[51.43483,0.06364],[51.434711,0.06398],[51.43462,0.06424],[51.434502,0.06462],[51.43433,0.06534],[51.43401,0.06693],[51.43359,0.06872],[51.433361,0.0698],[51.43288,0.07194],[51.432598,0.07332],[51.432369,0.07429],[51.43206,0.07563],[51.431351,0.07868],[51.431042,0.07999],[51.430489,0.08221],[51.430351,0.08261],[51.430119,0.08312],[51.429951,0.08344],[51.429798,0.08367],[51.429409,0.08413],[51.42889,0.08458],[51.427738,0.08559],[51.426731,0.08656],[51.4259,0.08747],[51.424511,0.08901],[51.422531,0.09173],[51.421539,0.09321],[51.420368,0.09517],[51.418839,0.09795],[51.417141,0.10123],[51.416222,0.10311],[51.415829,0.10403],[51.415371,0.10513],[51.415119,0.10581],[51.41444,0.10769],[51.414009,0.10905],[51.413521,0.11098],[51.41264,0.11505],[51.412041,0.11826],[51.41124,0.12231],[51.410992,0.12349],[51.410671,0.12522],[51.410599,0.12554],[51.41003,0.12827],[51.409771,0.12976],[51.409649,0.13078],[51.409561,0.13171],[51.409512,0.13284],[51.4095,0.13436],[51.409489,0.13994],[51.409489,0.1408],[51.4095,0.14117],[51.409489,0.1419],[51.40947,0.14288],[51.409389,0.14418],[51.40921,0.14569],[51.409069,0.14648],[51.408932,0.14716],[51.408749,0.14788],[51.40852,0.14863],[51.408131,0.14982],[51.407532,0.15119],[51.40696,0.15228],[51.40654,0.15293],[51.406269,0.15334],[51.405628,0.15413],[51.4049,0.15499],[51.404308,0.15556],[51.404129,0.15573],[51.403271,0.15645],[51.402302,0.15709],[51.401112,0.15767],[51.399971,0.15804],[51.399109,0.15828],[51.398079,0.15855],[51.397049,0.15889],[51.396179,0.15931],[51.39547,0.1598],[51.39452,0.16056],[51.393681,0.1614],[51.392921,0.16234],[51.392551,0.16289],[51.39212,0.16354],[51.391571,0.16447],[51.39085,0.166],[51.390228,0.1678],[51.38979,0.16935],[51.389469,0.17106],[51.389259,0.1728],[51.389172,0.17438],[51.38916,0.17585],[51.389221,0.17702],[51.389542,0.18034],[51.38969,0.18225],[51.38974,0.18407],[51.38974,0.18552],[51.389679,0.18714],[51.38942,0.18934],[51.389172,0.19115],[51.38876,0.19339],[51.388161,0.196],[51.38747,0.19845],[51.38702,0.19998],[51.38678,0.20088],[51.38625,0.20298],[51.385509,0.20598],[51.38522,0.20735],[51.385052,0.20821],[51.38467,0.21019],[51.38448,0.21191],[51.384418,0.21259],[51.384392,0.21318],[51.38435,0.21409],[51.3843,0.21612],[51.384171,0.22142],[51.384029,0.22337],[51.383831,0.22515],[51.38345,0.22739],[51.383411,0.22763],[51.383362,0.22786],[51.382919,0.22983],[51.382351,0.23176],[51.38184,0.23328],[51.381142,0.23508],[51.380901,0.23562],[51.38076,0.23596],[51.38039,0.23683],[51.37867,0.24056],[51.377449,0.24298],[51.37598,0.2457],[51.375271,0.24696],[51.373531,0.24988],[51.37122,0.25339],[51.3703,0.2548],[51.36866,0.25733],[51.366501,0.26056],[51.365349,0.26232],[51.364361,0.26381],[51.3634,0.26522],[51.362431,0.26644],[51.361179,0.26788],[51.360851,0.26818],[51.360149,0.26885],[51.359001,0.26981],[51.357712,0.27082],[51.355461,0.27233],[51.3531,0.27363],[51.351528,0.27437],[51.349098,0.27529],[51.347988,0.27563],[51.346981,0.27589],[51.34605,0.27605],[51.3451,0.27615],[51.344181,0.27614],[51.343079,0.27607],[51.340969,0.27571],[51.340099,0.27544],[51.33886,0.27496],[51.336941,0.27424],[51.336651,0.27417],[51.335949,0.274],[51.334801,0.27373],[51.33308,0.27351],[51.33073,0.27348],[51.329079,0.27365],[51.327808,0.27388],[51.326462,0.2743],[51.32526,0.27495],[51.323929,0.27599],[51.322701,0.27727],[51.321671,0.27865],[51.32098,0.27987],[51.32074,0.28029],[51.319931,0.28203],[51.319359,0.28364],[51.318668,0.28581],[51.318241,0.28741],[51.317829,0.28888],[51.31641,0.29444],[51.315529,0.29828],[51.315029,0.30069],[51.314289,0.30436],[51.313911,0.30597],[51.31348,0.30744],[51.312672,0.30974],[51.311611,0.31285],[51.311081,0.31464],[51.31041,0.31727],[51.309399,0.32178],[51.308849,0.32467],[51.308479,0.32698],[51.308041,0.32987],[51.307991,0.33014],[51.307961,0.33033],[51.30772,0.33232],[51.307419,0.3351],[51.30714,0.33829],[51.306919,0.34202],[51.306789,0.34573],[51.30677,0.34766],[51.30682,0.35044],[51.306919,0.35324],[51.307178,0.35651],[51.307468,0.35934],[51.30772,0.36124],[51.308189,0.36418],[51.308651,0.36814],[51.308708,0.36896],[51.30883,0.37218],[51.30891,0.3746],[51.30888,0.37754],[51.30901,0.38345],[51.309071,0.38842],[51.309261,0.39099],[51.309601,0.39395],[51.309959,0.39628],[51.31065,0.40007],[51.310909,0.40133],[51.311081,0.40247],[51.311211,0.40348],[51.311432,0.40537],[51.311531,0.4067],[51.3116,0.40831],[51.311611,0.40987],[51.311581,0.41178],[51.311569,0.41225],[51.311539,0.41272],[51.311481,0.41354],[51.311359,0.41489],[51.311192,0.41651],[51.310768,0.41924],[51.310379,0.42111],[51.310101,0.42242],[51.309231,0.42526],[51.308262,0.42798],[51.30727,0.43082],[51.306931,0.43183],[51.30674,0.43252],[51.306149,0.4349],[51.305901,0.43603],[51.305679,0.43715],[51.305038,0.44058],[51.30397,0.44616],[51.303379,0.44947],[51.303249,0.45038],[51.303162,0.45112],[51.30302,0.45268],[51.302769,0.45542],[51.302471,0.45849],[51.30238,0.45939],[51.302231,0.46031],[51.30196,0.46153],[51.30164,0.46285],[51.300961,0.4654],[51.300701,0.46637],[51.300461,0.46734],[51.300289,0.46822],[51.300121,0.46922],[51.300011,0.47011],[51.299931,0.47089],[51.299831,0.47189],[51.29977,0.47257],[51.29966,0.47387],[51.299591,0.47437],[51.299549,0.47468],[51.299541,0.47477],[51.29948,0.47513],[51.299438,0.47536],[51.299339,0.47598],[51.29911,0.47691],[51.298889,0.47756],[51.298691,0.47816],[51.298359,0.47894],[51.298241,0.47919],[51.297661,0.48044],[51.296921,0.48235],[51.296581,0.48351],[51.296398,0.48429],[51.29623,0.48525],[51.29612,0.48602],[51.29599,0.48772],[51.295959,0.49028],[51.295971,0.49123],[51.296001,0.49224],[51.29607,0.4932],[51.296188,0.4943],[51.29636,0.49533],[51.296558,0.49635],[51.29673,0.49698],[51.297211,0.49875],[51.297371,0.49922],[51.297459,0.49954],[51.297871,0.50098],[51.29808,0.50212],[51.298248,0.50355],[51.298351,0.50497],[51.298569,0.50858],[51.29879,0.51282],[51.298901,0.51441],[51.298969,0.51558],[51.29903,0.51657],[51.29908,0.51737],[51.29911,0.51794],[51.29911,0.51862],[51.299091,0.51915],[51.299,0.51987],[51.298908,0.52049],[51.298809,0.52116],[51.29863,0.52195],[51.298359,0.52297],[51.298168,0.52345],[51.297852,0.52421],[51.297489,0.52491],[51.29665,0.52623],[51.29557,0.52804],[51.29483,0.52931],[51.29427,0.53038],[51.292782,0.53339],[51.292221,0.53459],[51.291859,0.53532],[51.291599,0.53592],[51.291191,0.53707],[51.291019,0.53768],[51.290722,0.53911],[51.29047,0.54019],[51.290291,0.54093],[51.290131,0.54148],[51.28989,0.54226],[51.28923,0.544],[51.288582,0.54589],[51.288429,0.54636],[51.28828,0.54689],[51.288181,0.54746],[51.28804,0.54834],[51.287949,0.54936],[51.28791,0.55003],[51.287922,0.55088],[51.287971,0.55186],[51.288029,0.55306],[51.2882,0.55569],[51.28828,0.55696],[51.2883,0.55782],[51.288212,0.56001],[51.288101,0.56193],[51.28796,0.56383],[51.287762,0.56577],[51.287579,0.56706],[51.287361,0.56836],[51.286812,0.57094],[51.28624,0.57306],[51.285789,0.57454],[51.285332,0.57591],[51.284599,0.57786],[51.284061,0.57915],[51.283489,0.58035],[51.282799,0.58177],[51.28257,0.58224],[51.282299,0.58279],[51.280529,0.58595],[51.278931,0.58872],[51.277351,0.5914],[51.276951,0.59208],[51.275421,0.59477],[51.273571,0.59799],[51.271709,0.60145],[51.270592,0.60341],[51.270481,0.6036],[51.269989,0.60445],[51.269489,0.60531],[51.26915,0.60589],[51.268242,0.60747],[51.266701,0.60995],[51.26535,0.61188],[51.264179,0.61357],[51.263302,0.61501],[51.262489,0.6163],[51.261459,0.61795],[51.261311,0.61822],[51.261169,0.6185],[51.261051,0.61878],[51.260929,0.61903],[51.26062,0.61976],[51.260448,0.62018],[51.260201,0.6208],[51.259079,0.62382],[51.258289,0.62644],[51.25795,0.62747],[51.257641,0.62829],[51.256618,0.63055],[51.25634,0.63115],[51.256031,0.63176],[51.255371,0.63291],[51.255032,0.63346],[51.254688,0.63397],[51.252941,0.63631],[51.25243,0.63704],[51.252289,0.63724],[51.251289,0.63867],[51.250961,0.63918],[51.250599,0.63978],[51.249569,0.64159],[51.249271,0.64217],[51.24876,0.64322],[51.248112,0.64466],[51.24781,0.64535],[51.247509,0.64616],[51.247162,0.64707],[51.246861,0.64794],[51.246681,0.64849],[51.246471,0.64916],[51.246281,0.64979],[51.245949,0.65084],[51.245899,0.65104],[51.245171,0.65347],[51.244541,0.65575],[51.24361,0.65901],[51.242668,0.66237],[51.241711,0.66557],[51.241371,0.66662],[51.24102,0.66764],[51.240028,0.6704],[51.239609,0.67148],[51.23914,0.6726],[51.237942,0.67524],[51.237469,0.67616],[51.237041,0.67698],[51.236649,0.67772],[51.23645,0.6781],[51.23595,0.67909],[51.23518,0.68037],[51.234089,0.68227],[51.23365,0.68299],[51.233101,0.68384],[51.232632,0.68449],[51.232208,0.68509],[51.23159,0.68585],[51.231098,0.68638],[51.230659,0.68688],[51.229839,0.6878],[51.229019,0.6888],[51.228279,0.68988],[51.22797,0.69037],[51.227661,0.69092],[51.227211,0.6918],[51.2267,0.69285],[51.226509,0.69331],[51.226261,0.69388],[51.225819,0.69502],[51.225578,0.69575],[51.225281,0.69674],[51.22506,0.69754],[51.224869,0.69836],[51.224701,0.69918],[51.224548,0.69999],[51.224419,0.70091],[51.224339,0.70158],[51.224232,0.70277],[51.22414,0.70386],[51.22414,0.70392],[51.223942,0.70706],[51.223801,0.70842],[51.223709,0.70911],[51.223591,0.70976],[51.223358,0.71097],[51.223049,0.71225],[51.222851,0.71295],[51.22263,0.71364],[51.22224,0.71477],[51.221802,0.71586],[51.221561,0.71644],[51.221291,0.71697],[51.220409,0.71862],[51.220058,0.71922],[51.21965,0.71985],[51.21843,0.72149],[51.2178,0.72229],[51.217461,0.72274],[51.217072,0.72331],[51.21653,0.72418],[51.216202,0.72477],[51.215851,0.72538],[51.215481,0.72616],[51.215069,0.72716],[51.21442,0.72904],[51.21418,0.72975],[51.213928,0.73048],[51.21331,0.73252],[51.212719,0.7343],[51.212502,0.73491],[51.212261,0.73557],[51.21175,0.73686],[51.210781,0.73941],[51.210411,0.74033],[51.210091,0.74111],[51.208961,0.74368],[51.207371,0.7471],[51.205879,0.7505],[51.20435,0.75444],[51.20369,0.7563],[51.2029,0.75831],[51.202068,0.76009],[51.201199,0.76191],[51.199879,0.76458],[51.198879,0.76694],[51.198349,0.76836],[51.196941,0.77223],[51.195881,0.77579],[51.19482,0.77989],[51.19363,0.78381],[51.193481,0.78425],[51.192371,0.78747],[51.19109,0.79133],[51.190819,0.79238],[51.190521,0.79363],[51.190319,0.79462],[51.190182,0.79558],[51.18988,0.79784],[51.189522,0.80175],[51.189091,0.80706],[51.188862,0.8117],[51.188721,0.81612],[51.188599,0.82169],[51.18837,0.8241],[51.188251,0.82496],[51.188099,0.82587],[51.187962,0.82665],[51.187752,0.82763],[51.187569,0.82836],[51.187119,0.82975],[51.186378,0.83164],[51.185749,0.83293],[51.18531,0.83368],[51.184811,0.83448],[51.184299,0.83517],[51.183121,0.83649],[51.182381,0.83722],[51.18198,0.83761],[51.181862,0.83773],[51.179722,0.83981],[51.177509,0.84225],[51.17527,0.84496],[51.17326,0.84778],[51.171341,0.85072],[51.169498,0.85395],[51.167709,0.85684],[51.167049,0.85787],[51.166241,0.8591],[51.16478,0.86123],[51.163509,0.86324],[51.16193,0.86581],[51.1614,0.8668],[51.161079,0.86742],[51.160549,0.8685],[51.160221,0.86923],[51.15966,0.87046],[51.15884,0.87253],[51.157841,0.87482],[51.156559,0.87788],[51.15509,0.88152],[51.1548,0.88219],[51.15337,0.88568],[51.151508,0.89005],[51.15062,0.89223],[51.150249,0.89302],[51.150169,0.8932],[51.149899,0.8938],[51.149632,0.89439],[51.149109,0.89545],[51.148479,0.8966],[51.147461,0.89819],[51.146549,0.89942],[51.14473,0.90196],[51.142151,0.90519],[51.141788,0.90564],[51.140621,0.90699],[51.139591,0.90816],[51.138611,0.90931],[51.13802,0.91008],[51.137371,0.91099],[51.13644,0.91254],[51.135948,0.91346],[51.135071,0.91531],[51.13448,0.91676],[51.133438,0.91969],[51.13208,0.92321],[51.13131,0.92488],[51.13047,0.92637],[51.12999,0.92714],[51.129501,0.92789],[51.12772,0.93053],[51.127171,0.93141],[51.126259,0.93304],[51.125408,0.9346],[51.12484,0.93569],[51.123291,0.93894],[51.122822,0.93991],[51.121529,0.94233],[51.12104,0.94323],[51.119839,0.9451],[51.117802,0.94831],[51.11721,0.94936],[51.11676,0.95022],[51.116459,0.95082],[51.116219,0.95133],[51.115978,0.95189],[51.115761,0.95245],[51.11544,0.9533],[51.114738,0.95539],[51.113811,0.95882],[51.11272,0.96273],[51.111561,0.96647],[51.110279,0.97016],[51.108822,0.97406],[51.10833,0.97522],[51.107491,0.97725],[51.107121,0.97813],[51.106419,0.97979],[51.105999,0.98086],[51.105621,0.98185],[51.105209,0.98297],[51.104858,0.98403],[51.10453,0.98504],[51.10405,0.9866],[51.103519,0.98858],[51.103161,0.98998],[51.102631,0.99251],[51.10183,0.99697],[51.101261,1.00094],[51.100498,1.00727],[51.100441,1.00801],[51.100101,1.01554],[51.099789,1.02085],[51.09943,1.02433],[51.09914,1.02641],[51.098629,1.02937],[51.09795,1.03334],[51.097301,1.03712],[51.096981,1.03903],[51.096691,1.04113],[51.096191,1.04478],[51.09565,1.04961],[51.09523,1.05352],[51.095001,1.05578],[51.094818,1.05718],[51.094551,1.05899],[51.094002,1.0625],[51.093811,1.06352],[51.093479,1.06512],[51.09296,1.06772],[51.09272,1.06914],[51.092541,1.07024],[51.092381,1.07156],[51.09222,1.07294],[51.092091,1.07427],[51.091991,1.07574],[51.091911,1.07683],[51.09185,1.07825],[51.091801,1.08103],[51.09182,1.08295],[51.091881,1.08497],[51.091999,1.08669],[51.09206,1.08743],[51.092178,1.0886],[51.092339,1.09011],[51.092628,1.09246],[51.09293,1.09531],[51.093651,1.09994],[51.093788,1.10123],[51.093811,1.10192],[51.093849,1.10356],[51.0937,1.10681],[51.093472,1.10861],[51.09317,1.1104],[51.092239,1.11382],[51.091209,1.11814],[51.090988,1.12],[51.090889,1.12149],[51.090839,1.12251],[51.090839,1.12344],[51.090988,1.1267],[51.091251,1.12838],[51.091549,1.12994],[51.09219,1.13217],[51.09248,1.13289],[51.092812,1.13363],[51.093449,1.13509],[51.09383,1.13608],[51.09417,1.13718],[51.094791,1.14033],[51.09528,1.14437],[51.095539,1.14675],[51.09565,1.14905],[51.095638,1.15199],[51.0956,1.1539],[51.09557,1.15553],[51.0956,1.15691],[51.09565,1.15785],[51.095711,1.15863],[51.095791,1.15935],[51.095909,1.16004],[51.096081,1.16075],[51.096378,1.16185],[51.096771,1.16293],[51.097149,1.16373],[51.097439,1.16425],[51.09853,1.16572],[51.099621,1.16672],[51.099831,1.16689],[51.10281,1.16969],[51.104382,1.17116],[51.105709,1.17244],[51.106781,1.17389],[51.107849,1.17564],[51.108719,1.17739],[51.109619,1.17987],[51.110512,1.18248],[51.111488,1.18548],[51.112228,1.18863],[51.112499,1.19082],[51.112549,1.19196],[51.112549,1.19278],[51.112518,1.19351],[51.112469,1.19398],[51.11235,1.19533],[51.112228,1.19671],[51.112171,1.19839],[51.11219,1.19926],[51.112209,1.20014],[51.112331,1.20197],[51.112438,1.20275],[51.112541,1.20346],[51.112839,1.20577],[51.11301,1.20811],[51.113022,1.21006],[51.11293,1.2119],[51.11264,1.21474],[51.112301,1.21747],[51.111851,1.22028],[51.111382,1.22301],[51.110882,1.22546],[51.110329,1.22787],[51.10997,1.22901],[51.10955,1.23013],[51.108589,1.23208],[51.106739,1.23498],[51.105942,1.23623],[51.10466,1.23946],[51.104389,1.24029],[51.10429,1.24069],[51.104172,1.24137],[51.10397,1.24288],[51.103889,1.24393],[51.103859,1.24491],[51.10387,1.24596],[51.103958,1.24726],[51.10405,1.24807],[51.104221,1.24973],[51.104488,1.25164],[51.104809,1.25353],[51.10564,1.2573],[51.107071,1.26226],[51.107208,1.26301],[51.107529,1.26477],[51.107689,1.26757],[51.107849,1.27028],[51.108292,1.27241],[51.109692,1.27641],[51.11018,1.27878],[51.110298,1.28074],[51.110031,1.285],[51.110329,1.28792],[51.11063,1.28913],[51.111111,1.29063],[51.112011,1.29313],[51.11293,1.29586],[51.11335,1.29733],[51.113689,1.29877],[51.114029,1.30058],[51.114239,1.30197],[51.114311,1.3025],[51.11441,1.30284],[51.114471,1.30292],[51.11454,1.30295],[51.114601,1.30302],[51.114639,1.30313],[51.114651,1.30328],[51.114639,1.30338],[51.11459,1.30349],[51.114552,1.30354],[51.114559,1.30386],[51.114571,1.30415],[51.114658,1.30462],[51.114731,1.30493],[51.11491,1.30535],[51.11507,1.30566],[51.11525,1.30597],[51.115429,1.3062],[51.115829,1.30659],[51.11618,1.30687],[51.116539,1.30705],[51.11694,1.30718],[51.1171,1.3072],[51.117249,1.30716],[51.117298,1.30712],[51.11739,1.30709],[51.11747,1.30711],[51.11755,1.3072],[51.11771,1.30735],[51.117859,1.30746],[51.118038,1.30755],[51.118301,1.30769],[51.11861,1.30787],[51.118938,1.30809],[51.119362,1.30841],[51.119888,1.30906],[51.11993,1.30902],[51.11998,1.30901],[51.12001,1.30901],[51.12006,1.30904],[51.120098,1.30911],[51.120121,1.30918],[51.120121,1.30924],[51.120609,1.3098],[51.12125,1.31049],[51.122311,1.3116],[51.122829,1.31228],[51.123299,1.31321],[51.12336,1.31319],[51.12344,1.31321],[51.123489,1.31326],[51.123531,1.31334],[51.12355,1.31343],[51.12355,1.31351],[51.123531,1.3136],[51.123501,1.31366],[51.12384,1.31478],[51.123871,1.31488],[51.12392,1.31503],[51.1241,1.31553],[51.12455,1.3167],[51.125172,1.31831],[51.125408,1.31906],[51.125462,1.3194],[51.125481,1.31952],[51.1255,1.3205],[51.12537,1.3222],[51.12534,1.32278],[51.125351,1.32315],[51.12537,1.32341],[51.125389,1.32368],[51.1255,1.3245],[51.12595,1.32607],[51.126171,1.32679],[51.126251,1.32687],[51.126301,1.32687],[51.12635,1.32691],[51.126381,1.32697],[51.1264,1.32701],[51.126411,1.32709],[51.126411,1.32714],[51.12661,1.3272],[51.12674,1.32733],[51.127281,1.32823],[51.127659,1.32897],[51.12793,1.3295],[51.128151,1.33004],[51.128342,1.33049],[51.128391,1.33063],[51.128429,1.33076],[51.128479,1.331],[51.128502,1.33119],[51.128632,1.33167],[51.128719,1.33201],[51.12878,1.33245],[51.128799,1.3326],[51.12886,1.33275],[51.129009,1.33327],[51.12907,1.33347],[51.12907,1.33365],[51.12907,1.33392],[51.129421,1.33511],[51.12965,1.33549],[51.129799,1.33605],[51.12986,1.33621],[51.129921,1.33647],[51.12994,1.33681],[51.1301,1.33749],[51.130089,1.33783],[51.129978,1.33815],[51.129921,1.33843],[51.12991,1.33859],[51.12989,1.33884],[51.12989,1.33906],[51.129921,1.33965],[51.130001,1.34022],[51.130131,1.34103],[51.130161,1.34122],[51.13018,1.3414],[51.130169,1.34149],[51.13015,1.34158],[51.130112,1.34162],[51.130058,1.34167],[51.12999,1.34169],[51.129921,1.34164],[51.129879,1.34158],[51.129848,1.34154],[51.12981,1.34135],[51.12981,1.34135],[51.129761,1.34097],[51.1297,1.3406],[51.129681,1.34054],[51.129601,1.34023],[51.129601,1.3402],[51.129551,1.33999],[51.129539,1.3399],[51.12952,1.33983],[51.129509,1.33976],[51.12949,1.33967],[51.129478,1.33961],[51.129459,1.33953],[51.12944,1.33945],[51.129349,1.33897],[51.129341,1.3389],[51.129292,1.33865],[51.12928,1.33857],[51.129269,1.33852],[51.12925,1.33846],[51.1292,1.3382],[51.12899,1.33747],[51.128502,1.33599],[51.127621,1.33327],[51.127369,1.33316],[51.126629,1.33378],[51.126621,1.33374],[51.126621,1.33364],[51.12664,1.33357],[51.12669,1.33347],[51.124249,1.33631],[51.12339,1.33681],[51.122921,1.33723],[51.122219,1.33852],[51.121521,1.34088],[51.1213,1.34214],[51.120991,1.34396],[51.121029,1.34623],[51.12122,1.34811],[51.121658,1.3505],[51.122429,1.35514],[51.122669,1.35707],[51.12252,1.35925],[51.117809,1.37432],[51.113098,1.38939],[51.108391,1.40446],[51.10368,1.41953],[51.098961,1.4346],[51.09425,1.44967],[51.089539,1.46474],[51.084831,1.47981],[51.080109,1.49488],[51.068069,1.51962],[51.053921,1.56329],[51.04071,1.59852],[51.025211,1.63092],[51.001999,1.66988],[50.982979,1.702],[50.971821,1.73021],[50.965912,1.75008],[50.965778,1.7616],[50.967621,1.78272],[50.970249,1.81447],[50.9734,1.83058],[50.971569,1.84148],[50.970322,1.84528],[50.96946,1.84855],[50.968941,1.85085],[50.967468,1.851],[50.9664,1.85395],[50.965809,1.85499],[50.965721,1.85539],[50.965389,1.85658],[50.965279,1.857],[50.965061,1.85736],[50.964859,1.85768],[50.964828,1.85799],[50.964859,1.85852],[50.96513,1.86018],[50.965439,1.86224],[50.96553,1.86291],[50.965591,1.86335],[50.965679,1.86408],[50.965759,1.86463],[50.965801,1.86492],[50.96571,1.86559],[50.966,1.86722],[50.966209,1.86859],[50.9664,1.86985],[50.966579,1.87094],[50.966721,1.87124],[50.966881,1.87146],[50.967152,1.87174],[50.967251,1.87199],[50.967319,1.87213],[50.967339,1.8723],[50.967319,1.87242],[50.967258,1.87253],[50.967171,1.87264],[50.967049,1.87269],[50.966961,1.87267],[50.9669,1.87264],[50.966782,1.87256],[50.966679,1.87258],[50.966621,1.87266],[50.966579,1.87277],[50.966572,1.87295],[50.966591,1.87306],[50.966709,1.87319],[50.966831,1.87318],[50.9669,1.87312],[50.966942,1.87316],[50.967289,1.87339],[50.9678,1.87385],[50.968369,1.87442],[50.968632,1.87467],[50.968922,1.87501],[50.968971,1.87539],[50.969151,1.87581],[50.96944,1.87606],[50.969521,1.87685],[50.969688,1.87737],[50.97023,1.87846],[50.970631,1.88081],[50.971611,1.88645],[50.97216,1.88977],[50.972839,1.89413],[50.973099,1.89619],[50.973129,1.89712],[50.97298,1.89819],[50.972778,1.8989],[50.972679,1.89918],[50.972198,1.90005],[50.971581,1.90064],[50.97086,1.90113],[50.970188,1.9014],[50.969372,1.90176],[50.96859,1.90212],[50.967812,1.90248],[50.964081,1.90407],[50.961891,1.9049],[50.96096,1.9052],[50.959148,1.90522],[50.95834,1.90519],[50.95726,1.90522],[50.956211,1.90542],[50.955238,1.90564],[50.9543,1.90587],[50.95359,1.90598],[50.95314,1.90604],[50.951931,1.90612],[50.950241,1.90554],[50.948601,1.90488],[50.94746,1.90462],[50.946918,1.90463],[50.946239,1.90463],[50.94558,1.90469],[50.94376,1.90518],[50.941341,1.90606],[50.93996,1.90648],[50.938591,1.90685],[50.938332,1.90688],[50.93803,1.90684],[50.937759,1.90675],[50.93718,1.90661],[50.936871,1.90664],[50.936359,1.90679],[50.936211,1.90684],[50.935741,1.907],[50.93536,1.90711],[50.93515,1.90722],[50.93494,1.90754],[50.934849,1.90806],[50.93491,1.90848],[50.935089,1.90874],[50.935341,1.909],[50.93557,1.90922],[50.935749,1.90945],[50.935871,1.90982],[50.935982,1.91027],[50.9361,1.91173],[50.93652,1.91885],[50.936661,1.92109],[50.93705,1.9273],[50.937328,1.93228],[50.93745,1.93517],[50.937481,1.93688],[50.937592,1.94222],[50.93758,1.94278],[50.937469,1.94724],[50.937031,1.954],[50.936668,1.95871],[50.936298,1.96403],[50.936111,1.96788],[50.936081,1.96839],[50.936081,1.96851],[50.93605,1.96892],[50.935841,1.97239],[50.935669,1.97436],[50.935249,1.97886],[50.934761,1.98359],[50.93433,1.98798],[50.933788,1.99334],[50.933262,1.99872],[50.93314,1.99992],[50.93272,2.00394],[50.932549,2.00585],[50.932232,2.00935],[50.931931,2.01479],[50.931839,2.0177],[50.931839,2.02036],[50.931911,2.0256],[50.932259,2.03095],[50.932838,2.0366],[50.93351,2.04213],[50.93404,2.04668],[50.934681,2.0518],[50.934731,2.05231],[50.93486,2.05341],[50.935459,2.05849],[50.93618,2.06459],[50.936821,2.06931],[50.937,2.07046],[50.93721,2.07157],[50.938049,2.07576],[50.939331,2.08131],[50.940979,2.08698],[50.943771,2.09651],[50.944969,2.10024],[50.945171,2.10083],[50.945358,2.10132],[50.94603,2.103],[50.947449,2.10617],[50.948669,2.10898],[50.94949,2.11112],[50.95013,2.11311],[50.950569,2.11476],[50.95084,2.11595],[50.951061,2.11703],[50.951229,2.11799],[50.95134,2.11879],[50.95142,2.11946],[50.951481,2.12005],[50.951561,2.12091],[50.951611,2.12154],[50.95163,2.12226],[50.95166,2.12399],[50.95163,2.12719],[50.95166,2.12849],[50.951679,2.12922],[50.95174,2.12994],[50.951801,2.13068],[50.952049,2.13256],[50.95219,2.13337],[50.952339,2.13407],[50.95245,2.13468],[50.952751,2.13587],[50.95314,2.13722],[50.95356,2.1384],[50.955509,2.14382],[50.95594,2.14511],[50.956402,2.14664],[50.956619,2.14741],[50.957272,2.15017],[50.957581,2.15165],[50.95792,2.15362],[50.958241,2.1558],[50.958389,2.15706],[50.958488,2.15826],[50.958569,2.15916],[50.958691,2.16131],[50.958729,2.16278],[50.958759,2.16826],[50.958771,2.17093],[50.958771,2.1724],[50.958778,2.17312],[50.958771,2.17719],[50.958809,2.18107],[50.958809,2.18387],[50.958832,2.18546],[50.95887,2.18725],[50.958931,2.1886],[50.959,2.18962],[50.959042,2.19044],[50.959202,2.1941],[50.95929,2.19583],[50.959358,2.19713],[50.959431,2.19857],[50.95977,2.2044],[50.959888,2.20581],[50.959999,2.20656],[50.960129,2.20742],[50.9603,2.2083],[50.960491,2.20918],[50.96106,2.21099],[50.961369,2.21185],[50.96188,2.21307],[50.962372,2.2141],[50.963051,2.2153],[50.9636,2.21608],[50.964081,2.21676],[50.964951,2.21779],[50.966351,2.21906],[50.967548,2.21984],[50.968819,2.2204],[50.969082,2.22051],[50.96999,2.22091],[50.971722,2.22168],[50.973011,2.22223],[50.975269,2.22326],[50.977989,2.22447],[50.979801,2.22537],[50.981491,2.22651],[50.98312,2.22801],[50.98465,2.22979],[50.985142,2.23047],[50.98571,2.23135],[50.98613,2.23207],[50.987309,2.23417],[50.98785,2.23533],[50.988258,2.23622],[50.988621,2.2371],[50.988838,2.23776],[50.988979,2.23815],[50.98951,2.23991],[50.98983,2.24111],[50.990131,2.24249],[50.990311,2.24335],[50.990471,2.24433],[50.990582,2.2451],[50.990631,2.24546],[50.990749,2.24652],[50.990849,2.24767],[50.991001,2.24997],[50.991089,2.25132],[50.991219,2.25285],[50.991371,2.25542],[50.991428,2.25736],[50.99139,2.25824],[50.99131,2.25904],[50.991131,2.26062],[50.990978,2.26203],[50.990929,2.2628],[50.990929,2.26349],[50.990959,2.26412],[50.991089,2.26534],[50.991329,2.26651],[50.991539,2.26752],[50.99189,2.26896],[50.992081,2.26975],[50.992519,2.27123],[50.99271,2.27176],[50.992908,2.27231],[50.993698,2.27429],[50.993881,2.27475],[50.994141,2.27543],[50.994438,2.27647],[50.994991,2.27878],[50.9953,2.2799],[50.99596,2.28193],[50.99688,2.28418],[50.997162,2.2849],[50.997421,2.28563],[50.998192,2.2878],[50.99921,2.29085],[50.999458,2.29158],[51.000069,2.29328],[51.00098,2.29593],[51.002178,2.29964],[51.002411,2.30036],[51.002861,2.30196],[51.003071,2.3028],[51.003368,2.30435],[51.003601,2.30583],[51.004189,2.3101],[51.00425,2.31055],[51.00428,2.31072],[51.004551,2.31257],[51.00457,2.31275],[51.004662,2.3134],[51.005409,2.31722],[51.006069,2.31984],[51.00629,2.32056],[51.007221,2.32332],[51.00766,2.32452],[51.008259,2.32605],[51.008968,2.32791],[51.00951,2.32936],[51.00988,2.33063],[51.01022,2.3319],[51.010448,2.3329],[51.01078,2.33461],[51.01096,2.33604],[51.011009,2.33643],[51.011589,2.34118],[51.01228,2.34741],[51.012379,2.34865],[51.012421,2.34995],[51.012428,2.35025],[51.01247,2.35212],[51.012482,2.35917],[51.01247,2.36228],[51.01247,2.36496],[51.012508,2.36668],[51.012539,2.36733],[51.012569,2.36826],[51.01263,2.36958],[51.012718,2.37139],[51.01276,2.37266],[51.01281,2.37337],[51.012859,2.37427],[51.012989,2.37692],[51.013031,2.37775],[51.0131,2.37894],[51.013119,2.37918],[51.013168,2.37968],[51.013229,2.38015],[51.01339,2.38113],[51.01387,2.38398],[51.013981,2.38455],[51.014462,2.38727],[51.015091,2.39079],[51.01532,2.39201],[51.015518,2.39305],[51.01577,2.39428],[51.016029,2.39543],[51.016209,2.39619],[51.016369,2.39682],[51.01656,2.39753],[51.017361,2.40001],[51.01757,2.40063],[51.018608,2.40362],[51.018929,2.40452],[51.020679,2.40955],[51.02113,2.41077],[51.02158,2.41194],[51.022331,2.41373],[51.02293,2.41513],[51.02372,2.41692],[51.024632,2.41896],[51.026299,2.42273],[51.02718,2.42467],[51.028221,2.42699],[51.030571,2.43217],[51.031361,2.43401],[51.033642,2.43905],[51.035229,2.44255],[51.036591,2.44564],[51.03743,2.4476],[51.037861,2.44877],[51.03817,2.44976],[51.03846,2.45073],[51.038769,2.45191],[51.039108,2.45333],[51.039459,2.45497],[51.040298,2.45914],[51.04211,2.46828],[51.042839,2.47194],[51.043209,2.47404],[51.043419,2.47535],[51.043671,2.47711],[51.043831,2.47876],[51.04398,2.48044],[51.044079,2.4824],[51.04414,2.48386],[51.04417,2.48536],[51.04414,2.48689],[51.044071,2.48871],[51.044022,2.48969],[51.043941,2.49072],[51.043228,2.49809],[51.042229,2.50844],[51.042099,2.51063],[51.042042,2.51265],[51.04208,2.51446],[51.04216,2.51609],[51.042301,2.5175],[51.042431,2.51842],[51.042789,2.52042],[51.043201,2.52211],[51.043598,2.52368],[51.044231,2.52565],[51.04472,2.5272],[51.044941,2.52797],[51.045132,2.52855],[51.04546,2.52966],[51.04578,2.53064],[51.045891,2.53098],[51.046169,2.5318],[51.04644,2.5325],[51.046551,2.5328],[51.047539,2.53531],[51.048191,2.53675],[51.048828,2.53811],[51.051281,2.54349],[51.052811,2.54681],[51.053501,2.5486],[51.054089,2.5503],[51.054699,2.55229],[51.055302,2.55448],[51.055779,2.55651],[51.056301,2.55905],[51.056591,2.56043],[51.057049,2.56247],[51.057251,2.5634],[51.058319,2.56843],[51.058601,2.56969],[51.05888,2.57087],[51.059212,2.57214],[51.05962,2.57351],[51.060001,2.57471],[51.060371,2.57579],[51.060902,2.57714],[51.061588,2.57888],[51.062038,2.58001],[51.063679,2.58404],[51.064041,2.58492],[51.0644,2.58588],[51.064911,2.58728],[51.065319,2.58853],[51.065651,2.58961],[51.066101,2.59122],[51.066479,2.59272],[51.06683,2.59427],[51.067131,2.59571],[51.06741,2.59735],[51.06752,2.59797],[51.067711,2.59921],[51.06786,2.6003],[51.068031,2.60169],[51.068169,2.60318],[51.06831,2.60502],[51.06839,2.60678],[51.068409,2.6073],[51.068439,2.60869],[51.068439,2.6096],[51.068409,2.61156],[51.068352,2.61305],[51.068291,2.61409],[51.068241,2.61486],[51.068169,2.61588],[51.06805,2.61712],[51.067928,2.61827],[51.067799,2.61933],[51.067631,2.62045],[51.06739,2.62205],[51.067131,2.62364],[51.066879,2.62531],[51.066589,2.62707],[51.066341,2.62856],[51.06609,2.63003],[51.065769,2.63167],[51.065529,2.63282],[51.065239,2.63404],[51.064911,2.63527],[51.064499,2.63671],[51.064251,2.63747],[51.064041,2.63811],[51.063499,2.63943],[51.06292,2.64086],[51.06221,2.64252],[51.061131,2.64454],[51.06012,2.64638],[51.059299,2.64799],[51.05862,2.6494],[51.058022,2.65077],[51.057529,2.6522],[51.05703,2.65394],[51.056808,2.65493],[51.056419,2.65689],[51.05621,2.65862],[51.056099,2.65998],[51.056091,2.66042],[51.056019,2.66226],[51.056011,2.66247],[51.05621,2.66523],[51.056252,2.66562],[51.05637,2.66661],[51.056469,2.66746],[51.05687,2.67003],[51.057079,2.67121],[51.057301,2.67227],[51.057659,2.67373],[51.058041,2.67517],[51.0583,2.676],[51.058529,2.67676],[51.059441,2.67934],[51.059929,2.68044],[51.060501,2.68175],[51.061081,2.68296],[51.061581,2.68396],[51.062191,2.68504],[51.06329,2.68672],[51.066238,2.69064],[51.069191,2.6946],[51.06953,2.69505],[51.07011,2.69584],[51.071651,2.69795],[51.072418,2.69904],[51.072762,2.69952],[51.07328,2.70028],[51.073631,2.70076],[51.075062,2.70318],[51.075989,2.70478],[51.076469,2.7056],[51.07737,2.70742],[51.078041,2.70881],[51.080669,2.71368],[51.082119,2.71651],[51.08403,2.72024],[51.08596,2.72395],[51.08749,2.72654],[51.08762,2.72676],[51.088009,2.72735],[51.08828,2.72776],[51.089901,2.72983],[51.090542,2.73054],[51.092491,2.73254],[51.097069,2.73603],[51.100849,2.7394],[51.10141,2.73993],[51.102261,2.74083],[51.104359,2.74302],[51.10585,2.74498],[51.106361,2.74564],[51.10854,2.7486],[51.109261,2.74981],[51.11198,2.75436],[51.11467,2.76005],[51.114891,2.76061],[51.115601,2.7626],[51.115761,2.76306],[51.116161,2.76409],[51.116589,2.76529],[51.117771,2.76841],[51.12117,2.77827],[51.12418,2.78692],[51.124359,2.78746],[51.124859,2.78887],[51.12764,2.7969],[51.127831,2.79746],[51.12862,2.79973],[51.129101,2.80112],[51.129269,2.80159],[51.132858,2.81214],[51.133221,2.81331],[51.133461,2.8141],[51.133888,2.81561],[51.134201,2.81676],[51.134811,2.8192],[51.135349,2.82163],[51.13567,2.82325],[51.135899,2.82449],[51.136089,2.82548],[51.136349,2.82713],[51.1371,2.83239],[51.13726,2.83359],[51.137409,2.83465],[51.138371,2.8417],[51.139099,2.84658],[51.140308,2.85454],[51.141491,2.86184],[51.14164,2.86276],[51.1422,2.86733],[51.142479,2.86962],[51.14296,2.87444],[51.144299,2.8852],[51.145679,2.89336],[51.146931,2.89956],[51.147221,2.90083],[51.147518,2.90218],[51.149181,2.9089],[51.150909,2.91532],[51.15292,2.92111],[51.153099,2.92162],[51.15398,2.92417],[51.154831,2.92664],[51.157249,2.93277],[51.158779,2.9367],[51.161579,2.94386],[51.162491,2.94619],[51.163288,2.94829],[51.16412,2.95068],[51.16468,2.95227],[51.16494,2.95305],[51.165619,2.95527],[51.166962,2.96013],[51.16769,2.96342],[51.168159,2.96567],[51.16877,2.96918],[51.16906,2.97102],[51.169399,2.97327],[51.171879,2.99036],[51.17207,2.99165],[51.172211,2.99269],[51.172989,2.99807],[51.17305,2.99851],[51.17329,3.00016],[51.173649,3.00226],[51.17411,3.0044],[51.17445,3.0058],[51.174931,3.00759],[51.175331,3.00901],[51.17564,3.00987],[51.17952,3.01954],[51.179989,3.02066],[51.18058,3.02217],[51.18092,3.02299],[51.18111,3.02352],[51.181301,3.02409],[51.18166,3.02515],[51.182072,3.02648],[51.182388,3.02762],[51.18367,3.03306],[51.185581,3.04182],[51.189091,3.05743],[51.18932,3.0583],[51.18961,3.05942],[51.190521,3.06289],[51.191109,3.06485],[51.19252,3.06975],[51.19273,3.07071],[51.192909,3.07177],[51.193031,3.0727],[51.19313,3.07392],[51.193161,3.07501],[51.19313,3.07626],[51.193081,3.07739],[51.193001,3.07852],[51.19286,3.07972],[51.192612,3.08154],[51.191601,3.0869],[51.191349,3.08837],[51.189911,3.09536],[51.189129,3.0984],[51.1884,3.10066],[51.18821,3.10126],[51.186199,3.10705],[51.184799,3.11107],[51.18198,3.11918],[51.18063,3.1231],[51.177151,3.13324],[51.172661,3.14639],[51.170872,3.15257],[51.17012,3.15582],[51.168468,3.16401],[51.166939,3.17116],[51.163761,3.18813],[51.163589,3.18902],[51.163559,3.18919],[51.162868,3.19267],[51.162819,3.19292],[51.162769,3.19321],[51.16209,3.19636],[51.161621,3.19818],[51.16148,3.19868],[51.16127,3.19942],[51.160938,3.20048],[51.160412,3.20206],[51.160301,3.20234],[51.159901,3.20339],[51.159859,3.2035],[51.159431,3.20455],[51.158451,3.20644],[51.1577,3.20792],[51.15741,3.2085],[51.157162,3.209],[51.156761,3.20971],[51.155579,3.21174],[51.1549,3.21289],[51.153931,3.2146],[51.15324,3.21591],[51.15237,3.2175],[51.152191,3.21782],[51.15126,3.21969],[51.151169,3.21993],[51.15036,3.22156],[51.14901,3.22481],[51.14785,3.22818],[51.146881,3.23154],[51.146709,3.23211],[51.14645,3.23302],[51.144199,3.24088],[51.141628,3.25038],[51.141071,3.25233],[51.14082,3.25322],[51.140671,3.25373],[51.13924,3.25883],[51.136539,3.26866],[51.13134,3.28713],[51.128139,3.29863],[51.123081,3.3166],[51.12204,3.32055],[51.120621,3.32559],[51.118851,3.33186],[51.115269,3.34479],[51.112011,3.35628],[51.111431,3.35809],[51.110771,3.35983],[51.104359,3.37599],[51.1012,3.38387],[51.099739,3.38761],[51.095131,3.39893],[51.094082,3.40177],[51.09256,3.40559],[51.09137,3.40854],[51.089691,3.41275],[51.087132,3.41912],[51.085651,3.42274],[51.084728,3.42507],[51.083801,3.42739],[51.082878,3.42956],[51.081799,3.43221],[51.077339,3.4436],[51.076519,3.44591],[51.07608,3.44729],[51.075981,3.44763],[51.07539,3.44979],[51.07523,3.45041],[51.074879,3.4518],[51.074501,3.45334],[51.07251,3.46253],[51.07196,3.46512],[51.066978,3.48751],[51.06411,3.50061],[51.06105,3.51623],[51.05904,3.5268],[51.058491,3.52974],[51.05685,3.53852],[51.052608,3.55965],[51.05125,3.56586],[51.050892,3.56749],[51.050529,3.56911],[51.050449,3.56951],[51.048389,3.5789],[51.043869,3.59986],[51.03994,3.61792],[51.03949,3.61953],[51.03775,3.62573],[51.034882,3.63601],[51.03474,3.63647],[51.0336,3.64051],[51.033539,3.6407],[51.032398,3.64472],[51.031979,3.64616],[51.030102,3.65281],[51.024891,3.67076],[51.02475,3.67125],[51.023972,3.67402],[51.023472,3.67574],[51.022491,3.67923],[51.022339,3.67977],[51.021801,3.68161],[51.021339,3.68336],[51.02124,3.68376],[51.020981,3.68476],[51.020741,3.68568],[51.020451,3.68685],[51.019531,3.69031],[51.019001,3.69241],[51.018669,3.69363],[51.017109,3.70012],[51.014702,3.71009],[51.014622,3.71042],[51.014179,3.71226],[51.012611,3.71878],[51.01199,3.72128],[51.011631,3.72217],[51.011311,3.72284],[51.010921,3.72339],[51.010578,3.72382],[51.010239,3.72423],[51.009869,3.72483],[51.00975,3.72508],[51.00951,3.72588],[51.00948,3.72621],[51.009491,3.72647],[51.009541,3.72679],[51.009609,3.72702],[51.00983,3.72759],[51.01009,3.72808],[51.010429,3.72839],[51.01075,3.7285],[51.010948,3.72849],[51.01115,3.7284],[51.01136,3.72827],[51.011532,3.72811],[51.011829,3.72787],[51.012039,3.72778],[51.012211,3.72778],[51.012581,3.72798],[51.01424,3.72894],[51.014629,3.72916],[51.014919,3.72937],[51.01688,3.73074],[51.018459,3.73179],[51.020302,3.73307],[51.021832,3.73444],[51.02388,3.7366],[51.025539,3.73839],[51.026699,3.74038],[51.026909,3.74077],[51.028519,3.74369],[51.028671,3.744],[51.028851,3.74435],[51.02964,3.74592],[51.031132,3.74879],[51.03175,3.74997],[51.033428,3.75321],[51.03426,3.75482],[51.03434,3.755],[51.034649,3.75563],[51.03513,3.75661],[51.03561,3.75785],[51.035999,3.75894],[51.036079,3.75915],[51.036282,3.75982],[51.03661,3.76089],[51.037029,3.76254],[51.037769,3.76571],[51.039028,3.771],[51.040112,3.77556],[51.040489,3.77719],[51.04076,3.77847],[51.042011,3.7838],[51.043049,3.78806],[51.043869,3.79144],[51.044189,3.7928],[51.044739,3.79514],[51.044922,3.79591],[51.046181,3.80122],[51.047771,3.80846],[51.04842,3.81174],[51.051239,3.82769],[51.052109,3.8319],[51.053669,3.83831],[51.055191,3.84386],[51.061069,3.8642],[51.064442,3.87572],[51.06472,3.87678],[51.066898,3.88445],[51.06712,3.88559],[51.06768,3.88811],[51.067719,3.88837],[51.068501,3.89206],[51.06926,3.89805],[51.06974,3.90363],[51.070461,3.91495],[51.070679,3.91877],[51.07111,3.92565],[51.073029,3.95806],[51.07357,3.96646],[51.07431,3.97915],[51.075008,3.98714],[51.0751,3.98797],[51.075199,3.98883],[51.07579,3.99259],[51.07642,3.99564],[51.077061,3.99842],[51.0779,4.00133],[51.07872,4.00399],[51.079762,4.00683],[51.0811,4.01003],[51.08247,4.01287],[51.083832,4.0154],[51.084141,4.01594],[51.084549,4.01667],[51.086521,4.02014],[51.087921,4.02232],[51.08857,4.02339],[51.089588,4.02513],[51.09214,4.02944],[51.094528,4.03348],[51.095089,4.03443],[51.095211,4.03463],[51.100471,4.04349],[51.103989,4.049],[51.1068,4.05277],[51.11087,4.05734],[51.11171,4.05818],[51.112061,4.05854],[51.114491,4.06102],[51.116741,4.06331],[51.119381,4.0661],[51.120918,4.06809],[51.122429,4.07029],[51.123482,4.07216],[51.12402,4.07318],[51.124882,4.07494],[51.125778,4.07704],[51.126629,4.07964],[51.1269,4.08055],[51.127289,4.08194],[51.127541,4.08293],[51.12801,4.08511],[51.128479,4.08777],[51.128948,4.09103],[51.129021,4.09139],[51.13044,4.10455],[51.131821,4.1169],[51.132099,4.1194],[51.132549,4.12348],[51.13287,4.12635],[51.13327,4.12978],[51.133492,4.1312],[51.133839,4.13343],[51.134129,4.13519],[51.13456,4.13755],[51.13567,4.14353],[51.13641,4.14755],[51.137051,4.15104],[51.137211,4.15195],[51.13842,4.15828],[51.13921,4.16272],[51.1399,4.16663],[51.140591,4.17049],[51.141171,4.17362],[51.141891,4.17733],[51.142601,4.181],[51.142792,4.1819],[51.14307,4.18315],[51.143871,4.18615],[51.144581,4.18849],[51.145512,4.1912],[51.146679,4.19441],[51.147179,4.19574],[51.148769,4.20004],[51.149929,4.2034],[51.151112,4.20707],[51.152241,4.21068],[51.15329,4.21422],[51.154541,4.21836],[51.15575,4.22231],[51.157169,4.22699],[51.15839,4.23061],[51.159031,4.23227],[51.15947,4.23338],[51.160358,4.23531],[51.16151,4.23769],[51.16222,4.23907],[51.163422,4.24145],[51.16465,4.24383],[51.166279,4.24703],[51.166729,4.24793],[51.16856,4.25151],[51.170139,4.25456],[51.171581,4.25746],[51.172611,4.25952],[51.173389,4.26121],[51.174561,4.26389],[51.175739,4.26696],[51.176899,4.26997],[51.17799,4.27286],[51.1791,4.27582],[51.180599,4.2799],[51.181931,4.2834],[51.182461,4.28477],[51.183208,4.28673],[51.184212,4.28934],[51.18536,4.29224],[51.18586,4.29331],[51.18729,4.29642],[51.188278,4.29836],[51.18964,4.30093],[51.191269,4.30374],[51.192951,4.30655],[51.19482,4.30962],[51.19622,4.31194],[51.19809,4.3151],[51.200298,4.31877],[51.20142,4.32063],[51.201969,4.32153],[51.202431,4.32237],[51.202721,4.32293],[51.203899,4.32522],[51.204651,4.32687],[51.205391,4.32855],[51.206261,4.33073],[51.208328,4.33607],[51.208649,4.33695],[51.210098,4.34071],[51.211281,4.34388],[51.21146,4.34438],[51.211811,4.3453],[51.21233,4.34667],[51.212791,4.348],[51.213051,4.34876],[51.21312,4.34901],[51.213211,4.34932],[51.21349,4.35058],[51.21365,4.3516],[51.213749,4.35238],[51.21384,4.35324],[51.21389,4.35429],[51.213909,4.35537],[51.21386,4.35653],[51.21368,4.35807],[51.21347,4.35916],[51.213249,4.36017],[51.212978,4.36114],[51.21265,4.3621],[51.212238,4.36311],[51.211731,4.36418],[51.21101,4.36534],[51.210381,4.3662],[51.208759,4.36794],[51.208309,4.36843],[51.20274,4.37432],[51.20155,4.3756],[51.20089,4.37635],[51.2006,4.37673],[51.200272,4.37721],[51.19981,4.37797],[51.199322,4.37899],[51.199009,4.37978],[51.19873,4.38062],[51.198471,4.38164],[51.198238,4.38273],[51.19799,4.38423],[51.197701,4.38573],[51.19759,4.38626],[51.197311,4.38756],[51.19706,4.3886],[51.19685,4.38936],[51.19664,4.39006],[51.196251,4.39129],[51.195099,4.39424],[51.194302,4.39627],[51.193001,4.39983],[51.192059,4.40279],[51.191349,4.40556],[51.190941,4.40767],[51.190632,4.40985],[51.190472,4.41161],[51.19038,4.41322],[51.19035,4.41513],[51.19038,4.41674],[51.190498,4.4188],[51.190659,4.42035],[51.190891,4.42221],[51.191311,4.42416],[51.191719,4.42575],[51.192131,4.42716],[51.192619,4.42862],[51.193001,4.42966],[51.193321,4.43038],[51.193649,4.43107],[51.19397,4.43165],[51.194241,4.4321],[51.194618,4.43266],[51.194981,4.43311],[51.195259,4.43343],[51.19561,4.43381],[51.19595,4.43416],[51.196289,4.43445],[51.196659,4.43472],[51.197411,4.43528],[51.198662,4.43609],[51.201191,4.43746],[51.202412,4.43821],[51.203381,4.43891],[51.20462,4.43994],[51.206181,4.44129],[51.206921,4.44199],[51.207901,4.44294],[51.20924,4.44419],[51.210659,4.44546],[51.21167,4.44639],[51.21254,4.44721],[51.213921,4.44847],[51.214569,4.44921],[51.21471,4.4494],[51.214809,4.44956],[51.214951,4.4498],[51.215069,4.45005],[51.215179,4.45031],[51.215279,4.45061],[51.21553,4.45146],[51.215752,4.45216],[51.215969,4.45301],[51.216179,4.45406],[51.21629,4.45504],[51.21624,4.4558],[51.216091,4.45644],[51.21587,4.45707],[51.215561,4.4577],[51.21513,4.45828],[51.214211,4.45917],[51.214001,4.45936],[51.213348,4.45995],[51.212799,4.46049],[51.212372,4.46099],[51.21188,4.46168],[51.211639,4.46209],[51.211399,4.4626],[51.21117,4.46318],[51.210999,4.46376],[51.21085,4.46433],[51.21072,4.46503],[51.21064,4.46571],[51.21059,4.46636],[51.21059,4.46705],[51.21064,4.46793],[51.21069,4.46847],[51.210751,4.4691],[51.210831,4.4697],[51.210949,4.47055],[51.211071,4.47136],[51.211208,4.47228],[51.21133,4.47315],[51.211391,4.47381],[51.21143,4.47447],[51.211441,4.47509],[51.211418,4.4757],[51.211369,4.4763],[51.211288,4.47694],[51.211151,4.47781],[51.21104,4.47848],[51.210621,4.48085],[51.210522,4.48162],[51.210468,4.48231],[51.210442,4.48312],[51.210449,4.48395],[51.210522,4.485],[51.21067,4.48653],[51.2108,4.4878],[51.211021,4.49018],[51.211121,4.49141],[51.211189,4.49236],[51.211281,4.49391],[51.211311,4.49473],[51.211399,4.49656],[51.211411,4.49859],[51.21143,4.49937],[51.211521,4.50276],[51.211601,4.50624],[51.211712,4.51037],[51.211819,4.51426],[51.211979,4.51977],[51.212101,4.52414],[51.212139,4.52645],[51.212139,4.5272],[51.212139,4.52783],[51.212101,4.52956],[51.212009,4.53141],[51.211868,4.53313],[51.21167,4.53514],[51.211361,4.53743],[51.211048,4.5392],[51.210789,4.54045],[51.210499,4.54188],[51.210258,4.54291],[51.20974,4.54486],[51.20895,4.54791],[51.207958,4.55163],[51.207031,4.55523],[51.206242,4.55827],[51.205238,4.56186],[51.204288,4.56546],[51.203209,4.5695],[51.202259,4.57309],[51.201279,4.57603],[51.200741,4.57732],[51.200111,4.57852],[51.199451,4.57959],[51.198872,4.58057],[51.19838,4.58161],[51.19804,4.58262],[51.1978,4.5836],[51.197651,4.58463],[51.197559,4.58614],[51.197651,4.5877],[51.197849,4.58903],[51.198071,4.58982],[51.19841,4.59072],[51.198761,4.59151],[51.199219,4.59231],[51.19952,4.59268],[51.199821,4.59306],[51.2006,4.59405],[51.201351,4.59523],[51.202019,4.59651],[51.202499,4.5977],[51.20274,4.59835],[51.203411,4.60025],[51.2048,4.60414],[51.205589,4.60638],[51.20805,4.61359],[51.20908,4.61659],[51.209782,4.61862],[51.2118,4.62442],[51.211979,4.62497],[51.21299,4.62775],[51.21402,4.63045],[51.215729,4.63444],[51.217651,4.63834],[51.220181,4.64284],[51.22282,4.64712],[51.231232,4.66047],[51.233978,4.66484],[51.236111,4.66835],[51.237961,4.67215],[51.238979,4.67465],[51.239761,4.67689],[51.240608,4.67974],[51.241291,4.68251],[51.241741,4.68479],[51.24213,4.68706],[51.242741,4.6915],[51.243031,4.69416],[51.243351,4.69842],[51.243519,4.70165],[51.24366,4.70643],[51.243729,4.71221],[51.24371,4.71458],[51.243629,4.72741],[51.24353,4.74118],[51.243649,4.75037],[51.243801,4.7541],[51.244019,4.75768],[51.244381,4.76209],[51.24469,4.765],[51.245781,4.77292],[51.24646,4.77688],[51.24728,4.78085],[51.248569,4.7859],[51.250038,4.79077],[51.250561,4.79228],[51.252048,4.79611],[51.254349,4.80124],[51.25631,4.80483],[51.257271,4.80658],[51.259121,4.80975],[51.260399,4.81183],[51.266781,4.82263],[51.279442,4.84386],[51.282082,4.84837],[51.284592,4.85299],[51.285591,4.85501],[51.286049,4.85596],[51.287418,4.85902],[51.288658,4.862],[51.28981,4.86514],[51.290352,4.86664],[51.291531,4.87026],[51.29224,4.87277],[51.292912,4.87527],[51.29356,4.87801],[51.29409,4.88039],[51.294601,4.88287],[51.295071,4.88551],[51.29549,4.88814],[51.29586,4.89084],[51.29615,4.89339],[51.29641,4.89605],[51.296761,4.90148],[51.29689,4.90434],[51.297009,4.90816],[51.297138,4.91369],[51.29726,4.91806],[51.297291,4.91929],[51.297428,4.92479],[51.297451,4.92556],[51.29755,4.92814],[51.29763,4.93275],[51.29784,4.94177],[51.297951,4.94568],[51.298038,4.94993],[51.298092,4.95214],[51.298229,4.95715],[51.298328,4.96224],[51.298389,4.96824],[51.298351,4.97133],[51.298229,4.97483],[51.298038,4.97831],[51.297821,4.98128],[51.297489,4.98522],[51.297081,4.9888],[51.296631,4.99216],[51.295898,4.9968],[51.29517,5.00171],[51.294781,5.00454],[51.294411,5.00746],[51.294209,5.00934],[51.29406,5.01122],[51.293911,5.01361],[51.293781,5.01604],[51.29372,5.01984],[51.293751,5.02273],[51.293812,5.02471],[51.293911,5.02694],[51.294369,5.03214],[51.29475,5.03562],[51.29538,5.04046],[51.296322,5.04725],[51.296661,5.05005],[51.296989,5.05315],[51.29726,5.05621],[51.297401,5.05818],[51.297489,5.06011],[51.297539,5.0623],[51.29755,5.06443],[51.297489,5.06721],[51.29734,5.07002],[51.297009,5.07402],[51.296612,5.07796],[51.295879,5.08397],[51.29549,5.08691],[51.295132,5.09009],[51.294731,5.09394],[51.29464,5.09467],[51.294441,5.09768],[51.294319,5.10016],[51.29425,5.10457],[51.294312,5.10802],[51.294498,5.11234],[51.294731,5.11532],[51.29509,5.11857],[51.295509,5.12156],[51.29599,5.12459],[51.296761,5.12847],[51.298199,5.13422],[51.300072,5.14081],[51.300591,5.14276],[51.301399,5.1459],[51.301991,5.14842],[51.30265,5.15159],[51.303249,5.15458],[51.303871,5.15814],[51.30452,5.16165],[51.305229,5.16517],[51.30595,5.16817],[51.306999,5.17226],[51.30851,5.17732],[51.310181,5.18249],[51.31218,5.18855],[51.312382,5.1892],[51.314838,5.19669],[51.318821,5.20905],[51.32016,5.21303],[51.320591,5.21436],[51.321072,5.21581],[51.321671,5.21766],[51.322681,5.22073],[51.323341,5.22275],[51.324051,5.22488],[51.32439,5.22589],[51.325031,5.22768],[51.325691,5.2294],[51.326279,5.23089],[51.327061,5.23264],[51.327991,5.23451],[51.32906,5.23651],[51.33009,5.23831],[51.331451,5.24065],[51.337521,5.25108],[51.344028,5.26264],[51.349178,5.27182],[51.351452,5.27587],[51.352482,5.27774],[51.353378,5.27947],[51.353821,5.28036],[51.35434,5.28142],[51.35508,5.28302],[51.355801,5.28465],[51.356491,5.28625],[51.36055,5.29579],[51.360729,5.29619],[51.363239,5.30209],[51.36348,5.30268],[51.364941,5.30605],[51.365059,5.30632],[51.36898,5.31556],[51.370361,5.31878],[51.37159,5.32166],[51.374432,5.32837],[51.375191,5.33016],[51.376862,5.33405],[51.382038,5.34624],[51.38332,5.34934],[51.384441,5.35214],[51.385429,5.35471],[51.387878,5.3613],[51.388371,5.36264],[51.389221,5.36492],[51.390381,5.36807],[51.39267,5.37428],[51.393459,5.37644],[51.39439,5.379],[51.394581,5.37961],[51.394798,5.3803],[51.394989,5.38097],[51.395168,5.38164],[51.395432,5.38274],[51.39555,5.38332],[51.395679,5.38394],[51.395851,5.38488],[51.395931,5.38535],[51.396049,5.38617],[51.396118,5.38674],[51.396259,5.38787],[51.396339,5.38878],[51.39642,5.38967],[51.39653,5.39132],[51.396641,5.393],[51.39674,5.39426],[51.396851,5.39539],[51.396912,5.39591],[51.397099,5.39728],[51.397221,5.39805],[51.397369,5.39886],[51.397449,5.39924],[51.397629,5.40014],[51.39777,5.40073],[51.397919,5.40135],[51.398209,5.40239],[51.40057,5.41075],[51.400631,5.41097],[51.402519,5.41765],[51.40287,5.41891],[51.403229,5.42027],[51.403629,5.422],[51.403839,5.42325],[51.403992,5.42403],[51.404099,5.42481],[51.40416,5.4252],[51.404202,5.42569],[51.404209,5.42611],[51.404221,5.42679],[51.404221,5.42789],[51.404209,5.42864],[51.404202,5.42919],[51.40419,5.42974],[51.404209,5.4303],[51.404209,5.43096],[51.404228,5.43145],[51.404259,5.43249],[51.404289,5.43305],[51.40435,5.43362],[51.404461,5.43508],[51.40453,5.43605],[51.404621,5.43689],[51.40485,5.43825],[51.404949,5.43928],[51.405041,5.44026],[51.405121,5.44118],[51.405201,5.44248],[51.405251,5.44356],[51.405369,5.44983],[51.405399,5.45333],[51.405449,5.45596],[51.405491,5.4582],[51.405571,5.46179],[51.40559,5.46252],[51.405609,5.4658],[51.405609,5.46911],[51.405521,5.47301],[51.40551,5.47352],[51.405399,5.47652],[51.40538,5.47713],[51.40527,5.48024],[51.405239,5.48126],[51.404968,5.48955],[51.404942,5.49025],[51.404911,5.49086],[51.404839,5.49202],[51.404781,5.49246],[51.404701,5.49293],[51.40461,5.49339],[51.40453,5.49377],[51.404469,5.4942],[51.404419,5.49469],[51.404388,5.495],[51.404388,5.49536],[51.404388,5.49565],[51.40443,5.49614],[51.404449,5.49643],[51.40448,5.4969],[51.404541,5.49732],[51.404621,5.49771],[51.404709,5.49809],[51.4048,5.49852],[51.404861,5.49884],[51.4049,5.49925],[51.404919,5.49962],[51.40493,5.49999],[51.404919,5.50091],[51.404919,5.50125],[51.4049,5.50403],[51.4049,5.50435],[51.40493,5.51077],[51.40493,5.51908],[51.404911,5.53358],[51.4049,5.53708],[51.4049,5.54587],[51.404911,5.54781],[51.404961,5.54935],[51.405041,5.5509],[51.40517,5.55247],[51.405239,5.55322],[51.40538,5.55445],[51.405571,5.55591],[51.405788,5.55737],[51.40588,5.55797],[51.40617,5.55947],[51.40646,5.56091],[51.40659,5.56148],[51.40731,5.56419],[51.407681,5.56548],[51.408421,5.56768],[51.408791,5.56875],[51.408951,5.56924],[51.41061,5.57402],[51.411709,5.57722],[51.413349,5.582],[51.416458,5.5911],[51.41695,5.59265],[51.417591,5.59477],[51.417992,5.59638],[51.418369,5.59811],[51.41872,5.59991],[51.418949,5.60137],[51.419189,5.60318],[51.419449,5.60551],[51.420132,5.61227],[51.421539,5.62703],[51.421829,5.63011],[51.42268,5.63891],[51.423019,5.64245],[51.423439,5.64695],[51.423569,5.64864],[51.423649,5.6499],[51.423691,5.6508],[51.423698,5.65328],[51.423672,5.65704],[51.423641,5.6593],[51.42358,5.66349],[51.4235,5.66887],[51.423439,5.67272],[51.423409,5.676],[51.423359,5.67842],[51.423241,5.68237],[51.423222,5.68285],[51.42308,5.68647],[51.422939,5.6889],[51.422791,5.69085],[51.422359,5.69652],[51.422218,5.69818],[51.42205,5.70026],[51.421551,5.7066],[51.4212,5.7111],[51.42083,5.7156],[51.42057,5.71879],[51.420441,5.72116],[51.420319,5.723],[51.42025,5.72475],[51.420109,5.72959],[51.42012,5.73225],[51.42017,5.73484],[51.420212,5.73755],[51.420219,5.73999],[51.42017,5.74142],[51.42009,5.74328],[51.419949,5.74522],[51.419701,5.74773],[51.419529,5.74925],[51.419449,5.74987],[51.419128,5.75225],[51.418869,5.75407],[51.41861,5.75592],[51.418388,5.75762],[51.418079,5.75985],[51.41795,5.76072],[51.417461,5.76412],[51.417301,5.76526],[51.41711,5.76661],[51.41692,5.76774],[51.416599,5.76945],[51.41618,5.77184],[51.41555,5.77506],[51.415131,5.77699],[51.41449,5.7797],[51.414021,5.78159],[51.41349,5.7837],[51.412601,5.7868],[51.411781,5.78951],[51.410831,5.79252],[51.4072,5.80385],[51.407001,5.80447],[51.40556,5.80905],[51.404072,5.81369],[51.403431,5.81581],[51.402599,5.81868],[51.401981,5.82092],[51.3988,5.83371],[51.397251,5.83991],[51.396141,5.84441],[51.39502,5.8489],[51.393501,5.85508],[51.39146,5.86325],[51.39127,5.864],[51.390388,5.86731],[51.389561,5.87036],[51.387989,5.87586],[51.3848,5.88699],[51.382519,5.89479],[51.380829,5.90075],[51.380119,5.90336],[51.37936,5.90683],[51.37886,5.90941],[51.378521,5.91146],[51.378189,5.91406],[51.377979,5.9158],[51.377789,5.91788],[51.377682,5.91923],[51.377468,5.92297],[51.377441,5.92369],[51.377411,5.92498],[51.377399,5.92758],[51.377499,5.93505],[51.377659,5.94228],[51.377918,5.95907],[51.37801,5.96417],[51.378029,5.96599],[51.37801,5.96775],[51.377918,5.97046],[51.377781,5.97305],[51.377548,5.97627],[51.377331,5.98114],[51.37735,5.9839],[51.37735,5.98477],[51.37759,5.99092],[51.37812,5.99769],[51.37854,6.00253],[51.378769,6.00521],[51.378971,6.00723],[51.37949,6.01193],[51.380131,6.01689],[51.380531,6.01951],[51.381161,6.02336],[51.381538,6.02554],[51.38237,6.02959],[51.382751,6.03147],[51.383732,6.03571],[51.387409,6.05021],[51.389172,6.05713],[51.393082,6.07238],[51.393429,6.07391],[51.393791,6.0758],[51.393978,6.077],[51.394131,6.07807],[51.394249,6.07917],[51.394329,6.0803],[51.394421,6.08177],[51.394451,6.08392],[51.394199,6.09123],[51.394039,6.09627],[51.393539,6.10898],[51.393478,6.1104],[51.39336,6.11481],[51.39333,6.11742],[51.393471,6.1237],[51.393688,6.12859],[51.394279,6.13838],[51.39436,6.13939],[51.394451,6.14064],[51.394501,6.14145],[51.39518,6.15196],[51.39534,6.15451],[51.395611,6.15861],[51.395901,6.16434],[51.39592,6.16507],[51.39595,6.16609],[51.395969,6.1688],[51.395931,6.17027],[51.395851,6.17172],[51.395809,6.17254],[51.395741,6.17316],[51.39547,6.17562],[51.39521,6.17761],[51.39481,6.17986],[51.394588,6.18087],[51.39426,6.18234],[51.393848,6.18393],[51.393051,6.18666],[51.391201,6.19293],[51.389439,6.19895],[51.387581,6.20492],[51.387119,6.20635],[51.386139,6.20954],[51.384048,6.21632],[51.382431,6.22147],[51.382191,6.2223],[51.38166,6.22413],[51.381069,6.2267],[51.380482,6.23024],[51.380211,6.23265],[51.380039,6.23456],[51.379971,6.23568],[51.379929,6.23745],[51.379971,6.23919],[51.38002,6.24017],[51.380169,6.24235],[51.380199,6.24288],[51.380268,6.24355],[51.380409,6.24457],[51.38081,6.24762],[51.381229,6.24972],[51.381771,6.25191],[51.381851,6.25218],[51.3825,6.25446],[51.382992,6.25592],[51.384571,6.25981],[51.38628,6.26362],[51.38763,6.26717],[51.387741,6.26748],[51.388821,6.27117],[51.388981,6.27186],[51.389351,6.27366],[51.389759,6.27584],[51.38987,6.27655],[51.389969,6.27729],[51.390339,6.28112],[51.390339,6.28241],[51.390339,6.28301],[51.39035,6.28613],[51.390091,6.29202],[51.389912,6.29597],[51.38982,6.29785],[51.389729,6.30039],[51.389488,6.30467],[51.389172,6.31284],[51.388729,6.32214],[51.38855,6.329],[51.388599,6.33371],[51.388821,6.33742],[51.38884,6.33765],[51.38884,6.33775],[51.389149,6.34048],[51.389622,6.34365],[51.39024,6.3467],[51.390331,6.34707],[51.390652,6.34839],[51.391491,6.35144],[51.392441,6.35452],[51.393871,6.3589],[51.394058,6.35941],[51.394421,6.3605],[51.394821,6.36159],[51.39584,6.36458],[51.39621,6.36582],[51.39698,6.36793],[51.399311,6.3749],[51.400372,6.37825],[51.400539,6.37881],[51.401581,6.38237],[51.403149,6.38824],[51.403801,6.39103],[51.404282,6.39306],[51.404369,6.39346],[51.40443,6.39371],[51.40451,6.39412],[51.405708,6.40013],[51.406979,6.40767],[51.40802,6.41569],[51.40815,6.41689],[51.40823,6.41773],[51.408329,6.41866],[51.40844,6.41988],[51.408619,6.42204],[51.408718,6.42343],[51.408958,6.42648],[51.409351,6.43376],[51.410229,6.44922],[51.410912,6.46069],[51.411388,6.46954],[51.41164,6.47208],[51.411819,6.47329],[51.41193,6.47387],[51.412102,6.47472],[51.412529,6.47644],[51.41304,6.47806],[51.413429,6.47915],[51.41362,6.47958],[51.41433,6.48118],[51.416302,6.4848],[51.418781,6.48943],[51.419121,6.4901],[51.419258,6.49035],[51.419521,6.49084],[51.419819,6.49143],[51.420101,6.49197],[51.42136,6.49432],[51.423061,6.49833],[51.42363,6.49987],[51.42461,6.50291],[51.425228,6.50535],[51.426071,6.50966],[51.426102,6.50984],[51.426151,6.51011],[51.426491,6.51252],[51.426498,6.51262],[51.42659,6.51358],[51.426762,6.51535],[51.427052,6.52207],[51.427231,6.53069],[51.427238,6.53088],[51.427368,6.53329],[51.427521,6.53609],[51.42799,6.54291],[51.42828,6.54714],[51.428631,6.55212],[51.428928,6.55589],[51.429508,6.56421],[51.43005,6.56866],[51.43092,6.57325],[51.431541,6.57603],[51.432091,6.57825],[51.432789,6.58093],[51.433418,6.58378],[51.434471,6.58956],[51.435162,6.59419],[51.435532,6.59735],[51.435841,6.60087],[51.435982,6.60295],[51.436031,6.60391],[51.436089,6.60506],[51.436169,6.60728],[51.436211,6.60933],[51.43623,6.61085],[51.436218,6.61229],[51.436211,6.61338],[51.43618,6.61485],[51.436161,6.61573],[51.436119,6.61677],[51.436001,6.61847],[51.435909,6.62006],[51.43589,6.62054],[51.435791,6.62232],[51.435719,6.6238],[51.435619,6.6272],[51.435631,6.63186],[51.435719,6.63537],[51.435928,6.63872],[51.436218,6.64277],[51.43652,6.64744],[51.43663,6.64967],[51.43671,6.65219],[51.436729,6.65546],[51.43679,6.65711],[51.43697,6.66175],[51.437,6.66234],[51.437019,6.66297],[51.437279,6.67126],[51.437321,6.67279],[51.437359,6.67531],[51.43742,6.68066],[51.437401,6.68155],[51.43737,6.68277],[51.437271,6.68504],[51.437111,6.68668],[51.43681,6.6887],[51.43618,6.69207],[51.435699,6.69477],[51.435581,6.69569],[51.435509,6.69632],[51.43541,6.69751],[51.435349,6.69886],[51.435329,6.70035],[51.435379,6.70175],[51.435509,6.70337],[51.435692,6.70467],[51.436069,6.7069],[51.43811,6.71953],[51.438358,6.72115],[51.438541,6.7228],[51.438629,6.72482],[51.438511,6.72655],[51.438271,6.72848],[51.437729,6.73069],[51.436901,6.7328],[51.436451,6.73392],[51.436169,6.73462],[51.43568,6.73624],[51.435421,6.73745],[51.435291,6.73821],[51.435051,6.73985],[51.43491,6.74152],[51.43486,6.74321],[51.434849,6.74462],[51.434929,6.74645],[51.435169,6.74879],[51.435349,6.7499],[51.435471,6.75059],[51.43568,6.75184],[51.43605,6.75345],[51.436588,6.75525],[51.437061,6.75633],[51.43734,6.75687],[51.438301,6.7584],[51.439831,6.76023],[51.44173,6.76266],[51.44257,6.76421],[51.443211,6.76552],[51.443981,6.76754],[51.444592,6.7697],[51.445171,6.77222],[51.44598,6.77676],[51.44632,6.77867],[51.446621,6.78057],[51.447021,6.78296],[51.447361,6.78519],[51.44762,6.78704],[51.4478,6.78876],[51.44783,6.79036],[51.4478,6.79163],[51.447601,6.79349],[51.447311,6.79505],[51.44696,6.79636],[51.446671,6.79732],[51.44632,6.79822],[51.446072,6.79865],[51.445259,6.80026],[51.444401,6.80188],[51.44429,6.80213],[51.443951,6.80283],[51.443432,6.80394],[51.44305,6.80456],[51.44294,6.80471],[51.442791,6.80487],[51.44265,6.80495],[51.442459,6.80499],[51.442329,6.80496],[51.442181,6.80488],[51.442081,6.80479],[51.44194,6.80458],[51.44186,6.8043],[51.441811,6.8041],[51.441792,6.8038],[51.441792,6.80368],[51.441811,6.80346],[51.441879,6.80322],[51.441959,6.80295],[51.442089,6.80256],[51.442211,6.80226],[51.442429,6.80195],[51.442871,6.80134],[51.44342,6.8007],[51.444061,6.80015],[51.444431,6.79987],[51.444641,6.79971],[51.444809,6.7996],[51.44566,6.79921],[51.446529,6.799],[51.447182,6.79889],[51.447929,6.79884],[51.449249,6.79886],[51.450062,6.79895],[51.451248,6.7991],[51.45211,6.79927],[51.45311,6.79947],[51.454029,6.79984],[51.454899,6.80039],[51.45573,6.80101],[51.45639,6.80168],[51.456959,6.80235],[51.457588,6.80329],[51.458141,6.80427],[51.45866,6.80531],[51.459122,6.80651],[51.459789,6.80861],[51.460159,6.8097],[51.460659,6.81081],[51.46172,6.81251],[51.461948,6.81283],[51.462391,6.81341],[51.462681,6.81371],[51.463501,6.81453],[51.46389,6.81483],[51.464821,6.81552],[51.465771,6.8159],[51.466869,6.81625],[51.468349,6.81658],[51.470051,6.81669],[51.471851,6.8165],[51.473011,6.81621],[51.47398,6.81587],[51.474541,6.8157],[51.47541,6.81537],[51.47633,6.81497],[51.477489,6.81446],[51.478821,6.81388],[51.47916,6.81377],[51.480099,6.81351],[51.48127,6.81332],[51.48185,6.8133],[51.483139,6.81333],[51.483341,6.81342],[51.483582,6.81349],[51.484051,6.8136],[51.484409,6.8137],[51.4851,6.814],[51.4855,6.81421],[51.485771,6.8144],[51.486031,6.8146],[51.486149,6.81473],[51.48632,6.81496],[51.486488,6.81527],[51.48661,6.81557],[51.48674,6.81603],[51.486801,6.81641],[51.48682,6.81667],[51.486832,6.81699],[51.486809,6.81731],[51.486252,6.82101],[51.486198,6.82155],[51.486191,6.82224],[51.48613,6.82305],[51.486099,6.82352],[51.486069,6.82462],[51.486118,6.82628],[51.48629,6.82779],[51.48674,6.83007],[51.4874,6.83218],[51.488831,6.836],[51.489079,6.83642],[51.48975,6.83737],[51.490349,6.83822],[51.490829,6.83886],[51.49268,6.84133],[51.492962,6.84171],[51.493629,6.84264],[51.49432,6.84385],[51.4949,6.84507],[51.495281,6.84597],[51.49572,6.84735],[51.496052,6.8486],[51.496349,6.85008],[51.496571,6.85205],[51.496651,6.85463],[51.49654,6.85815],[51.496441,6.86022],[51.496342,6.86164],[51.49622,6.8647],[51.496101,6.86872],[51.496132,6.87109],[51.496342,6.88355],[51.496422,6.88532],[51.496639,6.8891],[51.496681,6.88994],[51.496769,6.89124],[51.49688,6.89292],[51.49704,6.89456],[51.49754,6.90146],[51.49781,6.91115],[51.49823,6.9167],[51.498699,6.92018],[51.499279,6.92279],[51.49995,6.9251],[51.500381,6.92628],[51.502979,6.93204],[51.503391,6.93294],[51.50415,6.93473],[51.50428,6.93505],[51.504478,6.93559],[51.50473,6.93621],[51.505058,6.93707],[51.50531,6.93774],[51.50568,6.93884],[51.505909,6.93961],[51.506149,6.94042],[51.50634,6.94113],[51.506481,6.94171],[51.50668,6.94259],[51.506882,6.94349],[51.507061,6.94441],[51.507309,6.94577],[51.507511,6.94717],[51.507629,6.94811],[51.507679,6.9483],[51.507751,6.94906],[51.507851,6.95002],[51.507919,6.95101],[51.50798,6.95199],[51.508011,6.95296],[51.508049,6.95394],[51.508049,6.95491],[51.50803,6.95637],[51.508011,6.95741],[51.507969,6.95846],[51.5079,6.95952],[51.507809,6.96061],[51.50771,6.96166],[51.50761,6.96267],[51.507511,6.96364],[51.507401,6.96457],[51.507301,6.96548],[51.50721,6.96642],[51.507099,6.96736],[51.507011,6.96826],[51.506908,6.96914],[51.506802,6.97007],[51.506618,6.97107],[51.506481,6.97167],[51.506088,6.97303],[51.50581,6.97399],[51.50378,6.97994],[51.50354,6.9808],[51.503361,6.98158],[51.50322,6.98288],[51.503109,6.98417],[51.503059,6.98502],[51.503059,6.98587],[51.503132,6.98712],[51.503201,6.98794],[51.50338,6.98916],[51.503559,6.98996],[51.50386,6.99122],[51.50407,6.99203],[51.504471,6.99341],[51.504799,6.99441],[51.505051,6.99517],[51.50531,6.99594],[51.505661,6.99694],[51.505951,6.99787],[51.50618,6.99864],[51.50639,6.99936],[51.506611,7.0001],[51.50679,7.00076],[51.50692,7.00141],[51.50713,7.00247],[51.507252,7.0032],[51.507309,7.00377],[51.507389,7.00478],[51.507469,7.00601],[51.507511,7.00706],[51.507568,7.00815],[51.507622,7.0094],[51.50771,7.01091],[51.507778,7.01189],[51.5079,7.01303],[51.50798,7.01356],[51.50808,7.01418],[51.50853,7.01628],[51.508598,7.01657],[51.50882,7.01736],[51.508911,7.01776],[51.508991,7.01802],[51.509449,7.01924],[51.509651,7.01977],[51.51001,7.02061],[51.510441,7.0216],[51.51067,7.02212],[51.510971,7.02282],[51.511318,7.02362],[51.511749,7.02466],[51.51218,7.02575],[51.512489,7.02662],[51.51302,7.02839],[51.51318,7.02901],[51.513241,7.02923],[51.513378,7.02978],[51.5135,7.03033],[51.51379,7.03182],[51.51405,7.03356],[51.514198,7.03489],[51.514351,7.03674],[51.51437,7.03743],[51.514381,7.03811],[51.5144,7.03938],[51.51442,7.04053],[51.514431,7.04131],[51.514469,7.04353],[51.514469,7.04414],[51.514488,7.04472],[51.514542,7.04728],[51.51458,7.04906],[51.514709,7.0513],[51.514931,7.05337],[51.515228,7.05491],[51.51569,7.05666],[51.51609,7.0581],[51.51664,7.05958],[51.51804,7.06284],[51.519421,7.06611],[51.51976,7.06685],[51.520069,7.0676],[51.520451,7.06844],[51.521461,7.07034],[51.522091,7.07128],[51.522469,7.07174],[51.522919,7.07226],[51.523548,7.07292],[51.523918,7.07324],[51.524281,7.07349],[51.52504,7.07395],[51.525612,7.07422],[51.526218,7.0745],[51.52739,7.07508],[51.528431,7.07578],[51.529202,7.07652],[51.529968,7.07744],[51.530621,7.07847],[51.531349,7.07998],[51.531639,7.08085],[51.53178,7.08126],[51.532188,7.08277],[51.532478,7.08456],[51.532539,7.08514],[51.532681,7.0868],[51.532902,7.08914],[51.533161,7.09096],[51.533421,7.09249],[51.533749,7.09376],[51.534119,7.09503],[51.534389,7.09584],[51.534439,7.09597],[51.534561,7.09629],[51.53529,7.09819],[51.535419,7.09858],[51.535782,7.09977],[51.536011,7.10056],[51.536228,7.10172],[51.536419,7.10277],[51.536591,7.10419],[51.53746,7.11268],[51.537781,7.11582],[51.537899,7.117],[51.53796,7.11818],[51.537991,7.11909],[51.537979,7.12019],[51.53783,7.12271],[51.53772,7.12502],[51.537651,7.12646],[51.537651,7.12701],[51.53764,7.1282],[51.53764,7.12896],[51.537651,7.12917],[51.53764,7.12952],[51.53801,7.135],[51.538422,7.1388],[51.538589,7.1399],[51.538929,7.14149],[51.53949,7.14344],[51.540791,7.14728],[51.540798,7.14734],[51.541142,7.14849],[51.541241,7.14885],[51.541569,7.15025],[51.54187,7.15221],[51.542019,7.15344],[51.54203,7.15516],[51.541931,7.15783],[51.541889,7.15901],[51.541821,7.16064],[51.541889,7.16227],[51.541931,7.16295],[51.54224,7.16765],[51.542301,7.16893],[51.542358,7.17118],[51.542389,7.17196],[51.5424,7.17221],[51.54258,7.17451],[51.54261,7.17482],[51.54285,7.17645],[51.542992,7.17739],[51.543129,7.17809],[51.543251,7.17887],[51.543362,7.17973],[51.543541,7.18114],[51.54364,7.18225],[51.54372,7.18371],[51.54377,7.18551],[51.543739,7.18735],[51.543751,7.18831],[51.543739,7.1901],[51.54377,7.19114],[51.54377,7.19203],[51.5438,7.19345],[51.5439,7.19547],[51.54401,7.197],[51.54406,7.19781],[51.544159,7.19858],[51.544319,7.19959],[51.544491,7.20032],[51.544949,7.20227],[51.545071,7.20274],[51.545212,7.20327],[51.5453,7.20364],[51.545719,7.20504],[51.547321,7.20951],[51.548038,7.2115],[51.54821,7.21198],[51.548439,7.2125],[51.549198,7.21465],[51.5495,7.21541],[51.555611,7.23041],[51.555901,7.23109],[51.55603,7.23137],[51.556141,7.23164],[51.556469,7.23245],[51.556751,7.2331],[51.557121,7.2339],[51.557549,7.23481],[51.557961,7.23604],[51.55835,7.23732],[51.558632,7.23866],[51.55888,7.24011],[51.559021,7.24148],[51.559101,7.2429],[51.559132,7.24386],[51.55899,7.24571],[51.558868,7.24714],[51.558651,7.24856],[51.5583,7.25041],[51.55806,7.25159],[51.557812,7.25266],[51.557541,7.25399],[51.55732,7.25532],[51.557159,7.25671],[51.55706,7.25809],[51.556992,7.25947],[51.557011,7.26144],[51.55706,7.26255],[51.557159,7.26354],[51.55751,7.26621],[51.557701,7.26752],[51.557861,7.26839],[51.557949,7.26905],[51.558071,7.26972],[51.55827,7.27111],[51.558392,7.27207],[51.558529,7.27356],[51.558609,7.27506],[51.55862,7.27656],[51.55859,7.27804],[51.558529,7.27895],[51.558529,7.27951],[51.558418,7.28097],[51.558361,7.28194],[51.558289,7.28291],[51.558239,7.28386],[51.558189,7.28481],[51.558159,7.28624],[51.558189,7.28766],[51.55827,7.28906],[51.558411,7.29047],[51.558571,7.29187],[51.558601,7.29208],[51.55867,7.29261],[51.55883,7.29417],[51.558949,7.29507],[51.559071,7.29598],[51.559189,7.29688],[51.559299,7.29778],[51.559422,7.29868],[51.559528,7.29958],[51.559639,7.30045],[51.559731,7.30127],[51.55983,7.30207],[51.559929,7.30283],[51.560032,7.30362],[51.56012,7.30442],[51.560211,7.3052],[51.56031,7.30583],[51.560349,7.30618],[51.560471,7.30717],[51.560551,7.30793],[51.560669,7.30902],[51.56078,7.30999],[51.56105,7.31307],[51.561241,7.3154],[51.56147,7.31788],[51.561569,7.31974],[51.561611,7.32072],[51.56171,7.32205],[51.561779,7.32318],[51.56184,7.32389],[51.562012,7.32659],[51.562149,7.33011],[51.56229,7.3331],[51.562389,7.33599],[51.562469,7.33965],[51.562519,7.34197],[51.562519,7.34284],[51.562519,7.34333],[51.562531,7.34573],[51.562469,7.3485],[51.562328,7.35043],[51.562069,7.35259],[51.562031,7.35289],[51.561779,7.35495],[51.561531,7.35659],[51.561291,7.35808],[51.561291,7.35811],[51.561199,7.35845],[51.561008,7.35929],[51.560909,7.3595],[51.56078,7.35966],[51.560692,7.35974],[51.560589,7.35978],[51.56049,7.35978],[51.560291,7.3597],[51.5602,7.3596],[51.56007,7.35931],[51.560032,7.35916],[51.560032,7.35899],[51.560059,7.35869],[51.560101,7.35858],[51.560181,7.35841],[51.560299,7.35828],[51.560379,7.35823],[51.560551,7.3582],[51.561131,7.35833],[51.561661,7.35851],[51.561779,7.35856],[51.561939,7.35859],[51.562241,7.3587],[51.562809,7.35894],[51.563351,7.35919],[51.563709,7.35935],[51.564259,7.35961],[51.564602,7.35978],[51.564892,7.35988],[51.56517,7.35999],[51.565578,7.36019],[51.566071,7.36044],[51.56638,7.3606],[51.566589,7.36071],[51.566719,7.36077],[51.56686,7.36084],[51.566952,7.36086],[51.567051,7.36085],[51.56723,7.36094],[51.567402,7.36103],[51.567589,7.36112],[51.568249,7.36145],[51.568581,7.36161],[51.568901,7.36176],[51.569561,7.36207],[51.569901,7.36223],[51.570229,7.36237],[51.571281,7.36284],[51.571812,7.36307],[51.572319,7.36329],[51.57275,7.36346],[51.573139,7.36362],[51.573471,7.36376],[51.573818,7.3639],[51.574638,7.36421],[51.575439,7.36451],[51.576359,7.36484],[51.576591,7.36492],[51.576988,7.36506],[51.5774,7.36519],[51.57777,7.36532],[51.578259,7.36548],[51.579189,7.36578],[51.579529,7.36596],[51.579689,7.36601],[51.580959,7.36641],[51.581139,7.36647],[51.582199,7.36688],[51.58263,7.36702],[51.58305,7.36722],[51.58326,7.36734],[51.583469,7.36749],[51.583649,7.36767],[51.583839,7.36786],[51.58403,7.36812],[51.58419,7.36836],[51.584339,7.36861],[51.58448,7.36891],[51.584629,7.36921],[51.58482,7.36963],[51.584969,7.36999],[51.585041,7.37021],[51.585091,7.37044],[51.585121,7.37069],[51.585152,7.37097],[51.585159,7.37122],[51.585159,7.37148],[51.585121,7.37199],[51.584991,7.37375],[51.584991,7.374],[51.584671,7.37836],[51.584621,7.37916],[51.58432,7.38337],[51.584221,7.3848],[51.584122,7.38621],[51.584019,7.38768],[51.583721,7.39179],[51.583691,7.39218],[51.583611,7.39328],[51.583569,7.39381],[51.583542,7.39437],[51.583488,7.39536],[51.58345,7.39625],[51.583389,7.39708],[51.58334,7.39788],[51.58329,7.3991],[51.583279,7.40034],[51.58329,7.40065],[51.583309,7.40171],[51.583382,7.40315],[51.583439,7.4039],[51.5835,7.40464],[51.583519,7.40483],[51.583591,7.40521],[51.583672,7.40557],[51.583721,7.40612],[51.58382,7.40704],[51.58392,7.40807],[51.58403,7.40904],[51.584202,7.41055],[51.58432,7.41158],[51.584431,7.41267],[51.584499,7.41334],[51.584549,7.41403],[51.584579,7.4145],[51.58461,7.4151],[51.584641,7.4157],[51.58466,7.41627],[51.584671,7.41685],[51.584671,7.41771],[51.584648,7.41847],[51.584629,7.41912],[51.584599,7.41974],[51.584549,7.42059],[51.584492,7.42138],[51.584431,7.42199],[51.584351,7.42266],[51.584221,7.42369],[51.58408,7.42462],[51.583832,7.42597],[51.583691,7.42671],[51.58353,7.42746],[51.58337,7.4282],[51.58321,7.42895],[51.582531,7.43192],[51.58099,7.43861],[51.577789,7.45246],[51.576969,7.45601],[51.57658,7.45769],[51.576351,7.4587],[51.57613,7.45966],[51.575909,7.46067],[51.57571,7.46165],[51.57552,7.46265],[51.575329,7.4637],[51.57518,7.46471],[51.575039,7.46575],[51.574928,7.4668],[51.574829,7.46786],[51.57476,7.46891],[51.574718,7.47],[51.574692,7.47104],[51.57468,7.47212],[51.574699,7.47319],[51.574749,7.47434],[51.57481,7.47533],[51.57489,7.4764],[51.57494,7.47691],[51.574989,7.47742],[51.575119,7.47844],[51.57523,7.47924],[51.57539,7.48021],[51.57555,7.48119],[51.57576,7.48235],[51.57608,7.48387],[51.576271,7.48479],[51.576309,7.485],[51.576771,7.48709],[51.577591,7.49089],[51.578011,7.49299],[51.578152,7.49385],[51.57827,7.4947],[51.5784,7.49571],[51.57851,7.49673],[51.57859,7.49762],[51.578651,7.49843],[51.578701,7.49912],[51.578739,7.4999],[51.578751,7.50038],[51.57877,7.50084],[51.578781,7.50189],[51.578781,7.50282],[51.578758,7.50375],[51.578739,7.5045],[51.578701,7.5054],[51.57869,7.50576],[51.578621,7.50705],[51.57859,7.50803],[51.578571,7.50862],[51.578529,7.50941],[51.578499,7.51038],[51.57848,7.5108],[51.57843,7.51217],[51.578381,7.51321],[51.578339,7.51423],[51.5783,7.51529],[51.578281,7.51577],[51.578259,7.51615],[51.578209,7.51752],[51.578171,7.51851],[51.578129,7.5196],[51.578091,7.5207],[51.578091,7.5218],[51.57811,7.52288],[51.578152,7.52394],[51.578201,7.52478],[51.57827,7.52559],[51.578331,7.52628],[51.578369,7.5266],[51.57843,7.52711],[51.578499,7.52769],[51.57864,7.52868],[51.57877,7.5294],[51.578899,7.53008],[51.578991,7.53053],[51.579079,7.53098],[51.579281,7.53187],[51.579441,7.53249],[51.579609,7.53312],[51.57983,7.53392],[51.58007,7.53472],[51.58046,7.53605],[51.580769,7.53709],[51.58123,7.53863],[51.581451,7.53938],[51.581871,7.54081],[51.582241,7.54203],[51.583309,7.54564],[51.58363,7.54673],[51.584259,7.54883],[51.584648,7.55012],[51.584831,7.55076],[51.585011,7.5514],[51.585159,7.55197],[51.585289,7.55252],[51.585411,7.55302],[51.585529,7.55354],[51.585651,7.55411],[51.58577,7.55468],[51.585869,7.55518],[51.58596,7.55569],[51.58606,7.5563],[51.586159,7.55691],[51.5863,7.55789],[51.586411,7.55872],[51.586491,7.55944],[51.586571,7.56016],[51.586861,7.56301],[51.58717,7.56606],[51.587811,7.57225],[51.588902,7.58372],[51.58952,7.5933],[51.59026,7.6039],[51.590408,7.60583],[51.590462,7.60636],[51.590549,7.60696],[51.59111,7.61037],[51.59132,7.61134],[51.591709,7.61331],[51.59182,7.614],[51.592159,7.61592],[51.592571,7.61796],[51.592892,7.61959],[51.59317,7.62098],[51.593712,7.62371],[51.594002,7.62533],[51.594719,7.62911],[51.59486,7.62982],[51.59499,7.63051],[51.597221,7.64195],[51.59819,7.64671],[51.598789,7.6504],[51.59893,7.65125],[51.599091,7.65217],[51.599911,7.65679],[51.60001,7.65743],[51.60043,7.65993],[51.600689,7.66178],[51.600769,7.66243],[51.60088,7.66422],[51.60091,7.66476],[51.60096,7.66599],[51.600948,7.66965],[51.60091,7.67532],[51.600891,7.67944],[51.600899,7.68501],[51.600891,7.6879],[51.60088,7.69047],[51.600891,7.69413],[51.600861,7.69814],[51.600868,7.70294],[51.600868,7.70605],[51.600941,7.70745],[51.60104,7.7089],[51.601219,7.71043],[51.601521,7.71234],[51.601768,7.71369],[51.60215,7.71536],[51.602661,7.71758],[51.603401,7.72063],[51.605679,7.73041],[51.606239,7.73281],[51.60643,7.73365],[51.607349,7.73746],[51.607731,7.73907],[51.60902,7.74463],[51.609558,7.74701],[51.609879,7.74839],[51.610779,7.75216],[51.61095,7.75295],[51.61179,7.75657],[51.612148,7.75829],[51.61359,7.7652],[51.613682,7.76564],[51.614151,7.76791],[51.6143,7.76865],[51.615742,7.77577],[51.616322,7.77862],[51.617611,7.78492],[51.618111,7.78763],[51.618752,7.79107],[51.619671,7.79649],[51.62072,7.8026],[51.621819,7.80895],[51.62244,7.81259],[51.623089,7.81769],[51.623421,7.82074],[51.6236,7.82378],[51.624069,7.83272],[51.624149,7.83382],[51.624611,7.84164],[51.624901,7.8468],[51.62495,7.84767],[51.625149,7.85185],[51.625198,7.85266],[51.625301,7.85381],[51.62553,7.85567],[51.625759,7.8571],[51.62603,7.85854],[51.626621,7.86089],[51.626999,7.86221],[51.627499,7.8637],[51.628529,7.86656],[51.63028,7.87145],[51.632408,7.87746],[51.63369,7.88111],[51.634609,7.88375],[51.635479,7.88627],[51.636829,7.89005],[51.638069,7.89329],[51.63982,7.89801],[51.643669,7.90798],[51.64444,7.90994],[51.64513,7.91146],[51.645748,7.91261],[51.646309,7.91357],[51.647079,7.91479],[51.64782,7.91587],[51.649281,7.91756],[51.650162,7.9185],[51.652962,7.92068],[51.65921,7.92535],[51.66478,7.92948],[51.666481,7.93092],[51.667461,7.93197],[51.668388,7.93306],[51.669121,7.93402],[51.669701,7.93487],[51.670361,7.93596],[51.67128,7.93766],[51.67181,7.9387],[51.672089,7.93925],[51.675251,7.94549],[51.675961,7.9468],[51.676571,7.94784],[51.677509,7.94919],[51.67844,7.9504],[51.679081,7.95118],[51.68021,7.95252],[51.681889,7.95451],[51.68465,7.9577],[51.68486,7.95795],[51.688831,7.96253],[51.68943,7.96323],[51.691681,7.96587],[51.694801,7.96948],[51.694969,7.96969],[51.696449,7.97137],[51.698071,7.97327],[51.699009,7.97433],[51.69981,7.97509],[51.700691,7.97584],[51.70166,7.97653],[51.70285,7.97724],[51.703911,7.97781],[51.704929,7.97819],[51.706108,7.97849],[51.70723,7.97867],[51.709469,7.97887],[51.712429,7.97905],[51.72028,7.97964],[51.72121,7.97971],[51.721931,7.9798],[51.722488,7.97991],[51.723068,7.98007],[51.724079,7.98043],[51.725029,7.98082],[51.725941,7.98132],[51.72683,7.98186],[51.730968,7.98433],[51.735161,7.98683],[51.73597,7.98732],[51.757,7.99996],[51.75713,8.00004],[51.761951,8.00292],[51.76778,8.00644],[51.76865,8.00706],[51.769272,8.00759],[51.769791,8.00808],[51.77037,8.00867],[51.771149,8.00953],[51.771778,8.01032],[51.772381,8.01117],[51.772739,8.01171],[51.773022,8.01213],[51.77364,8.01325],[51.774139,8.01421],[51.7747,8.01539],[51.77486,8.01581],[51.775139,8.01646],[51.775558,8.01758],[51.77586,8.01844],[51.77607,8.01915],[51.776249,8.01978],[51.776482,8.0207],[51.777779,8.02621],[51.779148,8.03231],[51.77919,8.0325],[51.77935,8.03314],[51.78109,8.04068],[51.78199,8.04458],[51.782379,8.04621],[51.782761,8.04768],[51.783119,8.0489],[51.78363,8.0505],[51.785709,8.05654],[51.7859,8.05711],[51.788849,8.0656],[51.790531,8.07057],[51.790661,8.07092],[51.79266,8.07673],[51.79438,8.08179],[51.796059,8.08666],[51.79829,8.09329],[51.798752,8.09476],[51.7994,8.09704],[51.800251,8.10029],[51.801769,8.10654],[51.802818,8.11106],[51.803341,8.11329],[51.803589,8.11438],[51.804901,8.12144],[51.806179,8.12817],[51.806469,8.1297],[51.806881,8.13148],[51.807301,8.133],[51.807522,8.13369],[51.80777,8.13451],[51.8083,8.13594],[51.80957,8.13884],[51.81089,8.14193],[51.81139,8.1432],[51.81179,8.14429],[51.812328,8.14601],[51.812851,8.14795],[51.813831,8.15192],[51.815701,8.15951],[51.819611,8.17346],[51.821659,8.18062],[51.823521,8.1873],[51.824162,8.1898],[51.824612,8.19176],[51.825001,8.19363],[51.825298,8.19525],[51.825661,8.19734],[51.826599,8.20373],[51.828011,8.21375],[51.828949,8.22073],[51.8321,8.2427],[51.833431,8.25189],[51.834709,8.26084],[51.83506,8.26298],[51.835461,8.26496],[51.836048,8.26736],[51.837231,8.27094],[51.840221,8.27917],[51.842819,8.28644],[51.843109,8.28733],[51.843418,8.28839],[51.844082,8.29078],[51.84436,8.29183],[51.8452,8.29493],[51.84552,8.29616],[51.84684,8.30111],[51.847271,8.30268],[51.848518,8.30731],[51.849789,8.31204],[51.850498,8.31436],[51.85062,8.31468],[51.851238,8.31633],[51.851891,8.31787],[51.853531,8.32144],[51.854641,8.32379],[51.855209,8.32498],[51.85619,8.32714],[51.857101,8.32945],[51.857349,8.33024],[51.857601,8.33111],[51.85788,8.33211],[51.85804,8.33269],[51.858318,8.33384],[51.85857,8.33501],[51.85894,8.33723],[51.859798,8.34333],[51.860321,8.34674],[51.860401,8.34727],[51.861069,8.35194],[51.86124,8.35297],[51.86142,8.35408],[51.861752,8.35569],[51.862141,8.35716],[51.862942,8.36004],[51.86388,8.36343],[51.86396,8.36376],[51.864109,8.36425],[51.865002,8.36734],[51.866741,8.37381],[51.867729,8.37732],[51.868149,8.37884],[51.868641,8.38072],[51.869041,8.38247],[51.86937,8.38443],[51.869659,8.38654],[51.871109,8.39815],[51.871651,8.40257],[51.871948,8.40499],[51.872162,8.40643],[51.872631,8.40925],[51.872952,8.41071],[51.873329,8.41213],[51.873749,8.4135],[51.874168,8.41477],[51.874729,8.41609],[51.875431,8.41777],[51.879452,8.42606],[51.88131,8.4298],[51.88176,8.43074],[51.88216,8.43158],[51.882431,8.43212],[51.88261,8.43246],[51.883171,8.43365],[51.88406,8.43552],[51.88525,8.438],[51.886379,8.44002],[51.887032,8.44107],[51.888119,8.4428],[51.889061,8.44421],[51.889858,8.44547],[51.890759,8.44697],[51.891472,8.44826],[51.89222,8.44966],[51.892891,8.45104],[51.893501,8.45238],[51.894169,8.45389],[51.894829,8.45555],[51.89537,8.45697],[51.895889,8.45831],[51.896221,8.45935],[51.896488,8.46014],[51.89698,8.4617],[51.897369,8.46326],[51.897789,8.46489],[51.89819,8.46655],[51.89856,8.46816],[51.898918,8.47006],[51.899799,8.47499],[51.900379,8.47826],[51.901348,8.48375],[51.90192,8.48683],[51.902241,8.48842],[51.903591,8.49471],[51.903889,8.49611],[51.903938,8.49633],[51.90406,8.49683],[51.90443,8.49858],[51.90485,8.50032],[51.90535,8.50198],[51.905899,8.50358],[51.90662,8.50537],[51.907452,8.50714],[51.90823,8.50857],[51.909039,8.50989],[51.909969,8.5112],[51.911041,8.51252],[51.912109,8.5137],[51.913021,8.51467],[51.91333,8.51497],[51.91526,8.51712],[51.916302,8.51825],[51.91737,8.51944],[51.918381,8.5205],[51.91951,8.52178],[51.92281,8.52542],[51.924339,8.52709],[51.92609,8.52888],[51.926949,8.5297],[51.927811,8.53037],[51.92894,8.53128],[51.92989,8.53191],[51.931068,8.53263],[51.93187,8.53305],[51.93512,8.53467],[51.935982,8.53512],[51.93679,8.53563],[51.937489,8.53612],[51.93824,8.5367],[51.93858,8.53698],[51.93906,8.53741],[51.939301,8.53765],[51.939751,8.53815],[51.940151,8.5386],[51.940842,8.53947],[51.941341,8.54009],[51.942139,8.54127],[51.94286,8.54242],[51.94323,8.54305],[51.943459,8.5435],[51.943748,8.54411],[51.944279,8.54521],[51.944771,8.54638],[51.945148,8.54732],[51.945351,8.54789],[51.94632,8.55056],[51.94648,8.55101],[51.946869,8.55216],[51.94733,8.55343],[51.94743,8.55374],[51.950321,8.56168],[51.95089,8.56321],[51.951962,8.56566],[51.95256,8.56682],[51.953461,8.56841],[51.954559,8.57018],[51.954639,8.5703],[51.955059,8.57101],[51.95639,8.57315],[51.957119,8.57434],[51.95779,8.57562],[51.958481,8.57689],[51.959141,8.57828],[51.959751,8.57966],[51.960361,8.58111],[51.96093,8.58259],[51.961929,8.58578],[51.962639,8.58817],[51.964272,8.59382],[51.96476,8.59554],[51.965649,8.59864],[51.966709,8.60208],[51.96719,8.60341],[51.967461,8.60407],[51.969151,8.60787],[51.970402,8.61055],[51.970772,8.6113],[51.971081,8.61183],[51.97139,8.61236],[51.971828,8.6129],[51.972309,8.61345],[51.97282,8.61393],[51.973431,8.61437],[51.973961,8.61469],[51.974499,8.61493],[51.975441,8.61518],[51.97644,8.61538],[51.977409,8.61549],[51.978371,8.61561],[51.979061,8.6157],[51.979389,8.61575],[51.980129,8.61587],[51.980331,8.61591],[51.98135,8.61604],[51.982288,8.61597],[51.98317,8.61576],[51.9841,8.61553],[51.984982,8.6153],[51.985439,8.6152],[51.985882,8.61516],[51.98682,8.6152],[51.98735,8.61529],[51.987831,8.61541],[51.988739,8.61577],[51.9897,8.61619],[51.98988,8.61626],[51.99004,8.61632],[51.9907,8.6166],[51.99086,8.61666],[51.99165,8.61701],[51.992439,8.61736],[51.992611,8.61745],[51.993599,8.61787],[51.994911,8.61845],[51.995369,8.61865],[51.9958,8.61883],[51.997459,8.61953],[51.997799,8.61967],[51.99855,8.61999],[51.999088,8.62024],[51.999481,8.6204],[51.999889,8.62059],[52.00095,8.62121],[52.00148,8.62154],[52.002121,8.62197],[52.002831,8.62255],[52.003342,8.623],[52.003979,8.62353],[52.004601,8.62405],[52.005199,8.62456],[52.00592,8.62518],[52.006649,8.62579],[52.006809,8.62593],[52.007721,8.62671],[52.00893,8.62773],[52.010181,8.62879],[52.011429,8.62977],[52.012291,8.63042],[52.01255,8.63061],[52.013939,8.63147],[52.014462,8.63181],[52.0159,8.63256],[52.01722,8.63319],[52.01857,8.63373],[52.019871,8.63422],[52.021141,8.63468],[52.02203,8.63501],[52.022339,8.63513],[52.023869,8.63568],[52.024651,8.63597],[52.024811,8.63603],[52.025478,8.63629],[52.027969,8.6372],[52.02935,8.63771],[52.030788,8.63828],[52.031471,8.63861],[52.032108,8.63895],[52.032879,8.63944],[52.032982,8.63951],[52.03352,8.63991],[52.034409,8.64064],[52.03516,8.64128],[52.035961,8.64212],[52.036591,8.64282],[52.037182,8.64357],[52.03833,8.64516],[52.039349,8.64674],[52.04047,8.64829],[52.041012,8.64892],[52.041649,8.64968],[52.042881,8.6509],[52.04414,8.65191],[52.04549,8.65281],[52.04697,8.65372],[52.047981,8.65432],[52.048161,8.65444],[52.04858,8.65471],[52.050201,8.65569],[52.052029,8.65683],[52.053902,8.65782],[52.055759,8.65866],[52.056389,8.65888],[52.05896,8.65966],[52.06068,8.66016],[52.063389,8.66092],[52.0644,8.66127],[52.06546,8.66172],[52.06646,8.66223],[52.06741,8.66276],[52.06839,8.6634],[52.06934,8.66409],[52.070309,8.66492],[52.07122,8.66574],[52.072128,8.66665],[52.073071,8.66769],[52.073898,8.6687],[52.074791,8.66986],[52.075588,8.67106],[52.076389,8.67232],[52.07716,8.67369],[52.077351,8.67404],[52.077431,8.67419],[52.077881,8.67505],[52.07856,8.67651],[52.07914,8.67787],[52.079689,8.67926],[52.080231,8.68064],[52.080742,8.68195],[52.081032,8.68267],[52.081261,8.68324],[52.081749,8.68446],[52.082199,8.68568],[52.08271,8.68697],[52.083191,8.68823],[52.083801,8.68973],[52.084461,8.69108],[52.085018,8.69204],[52.08551,8.69285],[52.085701,8.69313],[52.086071,8.69366],[52.086941,8.69476],[52.087109,8.69495],[52.088348,8.69625],[52.08963,8.69755],[52.08987,8.69779],[52.091042,8.69914],[52.091331,8.69947],[52.091862,8.70014],[52.092861,8.70151],[52.093109,8.70187],[52.093811,8.70295],[52.094212,8.70363],[52.094769,8.70458],[52.095451,8.70579],[52.09568,8.70625],[52.09721,8.70946],[52.097439,8.70994],[52.099529,8.71434],[52.101131,8.71777],[52.101261,8.71805],[52.101479,8.71853],[52.102081,8.7198],[52.102921,8.72151],[52.103481,8.72259],[52.10397,8.72343],[52.104481,8.72428],[52.104969,8.72507],[52.105549,8.72595],[52.108551,8.73051],[52.10973,8.73234],[52.110168,8.73303],[52.110771,8.7339],[52.111389,8.73469],[52.111851,8.73522],[52.112289,8.73566],[52.11285,8.73615],[52.11338,8.73657],[52.11377,8.73683],[52.114021,8.73698],[52.11462,8.73728],[52.115231,8.73755],[52.115681,8.73768],[52.116249,8.73781],[52.116859,8.73788],[52.117432,8.7379],[52.118141,8.73783],[52.118759,8.7377],[52.119438,8.73752],[52.120628,8.73726],[52.124889,8.73636],[52.12582,8.73621],[52.126659,8.73614],[52.127281,8.73615],[52.12785,8.73619],[52.128529,8.73633],[52.12936,8.73659],[52.129959,8.73687],[52.130539,8.73717],[52.131649,8.73792],[52.132839,8.739],[52.133789,8.74002],[52.13435,8.74077],[52.13456,8.74107],[52.135368,8.74246],[52.135929,8.74357],[52.136349,8.74463],[52.136742,8.74578],[52.137001,8.74657],[52.13744,8.74827],[52.137718,8.74973],[52.138359,8.75359],[52.13842,8.75398],[52.13879,8.75656],[52.13903,8.75876],[52.139229,8.76081],[52.139389,8.76305],[52.139408,8.76347],[52.13969,8.76717],[52.139919,8.76944],[52.140049,8.77036],[52.14016,8.77109],[52.14027,8.77176],[52.140659,8.77359],[52.1409,8.77464],[52.141029,8.77515],[52.1413,8.77632],[52.14188,8.77859],[52.141918,8.77874],[52.142818,8.7822],[52.143681,8.78554],[52.14452,8.78879],[52.14492,8.79018],[52.145649,8.79237],[52.146839,8.79541],[52.147991,8.7985],[52.148628,8.80016],[52.149361,8.80197],[52.14946,8.80217],[52.149792,8.80289],[52.150139,8.80355],[52.150181,8.80361],[52.150688,8.8044],[52.151588,8.80559],[52.152279,8.80629],[52.15361,8.80748],[52.155849,8.80938],[52.157341,8.81068],[52.15818,8.81133],[52.158909,8.81174],[52.159672,8.81207],[52.160351,8.81231],[52.164749,8.8136],[52.164989,8.81368],[52.16539,8.81381],[52.168892,8.8148],[52.170528,8.81523],[52.171021,8.81539],[52.17152,8.81563],[52.172192,8.816],[52.173,8.81661],[52.178951,8.82136],[52.179169,8.82156],[52.181911,8.82381],[52.18261,8.82431],[52.183281,8.82466],[52.18404,8.82497],[52.184589,8.82513],[52.18552,8.82528],[52.18766,8.82536],[52.18837,8.82545],[52.18885,8.8255],[52.189201,8.82555],[52.189449,8.82561],[52.190498,8.82589],[52.191158,8.82615],[52.191971,8.82656],[52.192581,8.8269],[52.193588,8.82747],[52.195042,8.82846],[52.195419,8.82872],[52.198071,8.83052],[52.198551,8.83085],[52.19976,8.83166],[52.200359,8.83217],[52.201069,8.83284],[52.20174,8.83362],[52.202339,8.83453],[52.202961,8.83556],[52.203571,8.83691],[52.204048,8.83833],[52.20438,8.83961],[52.204609,8.8406],[52.20483,8.84169],[52.20512,8.84355],[52.205269,8.84427],[52.20536,8.84474],[52.205509,8.84547],[52.205669,8.84615],[52.205929,8.84722],[52.20607,8.84783],[52.206478,8.84943],[52.206982,8.85093],[52.2075,8.8524],[52.208408,8.85498],[52.208771,8.85602],[52.209572,8.85826],[52.209862,8.85908],[52.21014,8.85993],[52.210258,8.86032],[52.210461,8.86108],[52.210659,8.86194],[52.210812,8.86277],[52.21093,8.86365],[52.210999,8.8642],[52.211048,8.86475],[52.211102,8.86559],[52.211151,8.86791],[52.21125,8.87073],[52.21125,8.87193],[52.211231,8.87273],[52.211189,8.87377],[52.211128,8.87522],[52.210911,8.88039],[52.210892,8.88137],[52.210911,8.88202],[52.21101,8.88493],[52.211239,8.89031],[52.211189,8.89171],[52.211079,8.89306],[52.210781,8.89507],[52.210609,8.8961],[52.210159,8.89882],[52.209759,8.90154],[52.209518,8.90427],[52.209461,8.90684],[52.209499,8.91353],[52.209549,8.91769],[52.209549,8.9181],[52.20956,8.92176],[52.20961,8.92312],[52.209671,8.92455],[52.209728,8.92545],[52.20982,8.92636],[52.209881,8.92682],[52.210041,8.92827],[52.210369,8.93009],[52.21067,8.93149],[52.2113,8.93413],[52.211449,8.93478],[52.211849,8.93633],[52.212269,8.9384],[52.212502,8.9396],[52.212711,8.94083],[52.212879,8.94212],[52.213051,8.94348],[52.21323,8.94536],[52.213539,8.94827],[52.21368,8.94928],[52.213951,8.9507],[52.214329,8.95231],[52.214691,8.95385],[52.21526,8.95603],[52.215549,8.95712],[52.21579,8.95823],[52.216141,8.96002],[52.21645,8.96171],[52.21664,8.96307],[52.21677,8.96447],[52.216881,8.96608],[52.21693,8.96771],[52.21693,8.96872],[52.21693,8.96993],[52.216831,8.97907],[52.216808,8.98151],[52.216759,8.9851],[52.21674,8.98697],[52.216728,8.98927],[52.21674,8.98993],[52.216789,8.99054],[52.21682,8.9912],[52.2169,8.99186],[52.21706,8.99292],[52.21714,8.99333],[52.217258,8.994],[52.2174,8.99456],[52.2178,8.99593],[52.21825,8.9975],[52.218712,8.99906],[52.218948,9.00004],[52.21912,9.00089],[52.219189,9.00138],[52.219311,9.00233],[52.21941,9.00328],[52.219521,9.00466],[52.219589,9.00562],[52.219669,9.00663],[52.21978,9.00785],[52.219929,9.00907],[52.2201,9.01008],[52.220291,9.01108],[52.220409,9.01157],[52.220791,9.01314],[52.221321,9.01521],[52.22142,9.01562],[52.221661,9.01673],[52.22184,9.01791],[52.22197,9.01901],[52.22205,9.02011],[52.222061,9.02136],[52.222,9.02263],[52.221901,9.02388],[52.221291,9.03157],[52.221218,9.0324],[52.22113,9.03318],[52.22102,9.03388],[52.220772,9.03518],[52.220249,9.03779],[52.220051,9.03881],[52.218788,9.04554],[52.218609,9.04663],[52.218441,9.04758],[52.218288,9.04868],[52.21817,9.04986],[52.218128,9.05084],[52.218151,9.0517],[52.218262,9.05309],[52.218342,9.05377],[52.218441,9.05453],[52.218689,9.056],[52.218891,9.05675],[52.2192,9.05781],[52.219662,9.05924],[52.22028,9.06112],[52.220879,9.06312],[52.221062,9.0639],[52.22123,9.0648],[52.221329,9.06549],[52.221409,9.06617],[52.221458,9.0669],[52.2215,9.06774],[52.2215,9.06863],[52.22147,9.06938],[52.221409,9.07029],[52.221149,9.07354],[52.22068,9.07999],[52.22049,9.08252],[52.220291,9.08523],[52.2202,9.08661],[52.22015,9.08735],[52.220131,9.08799],[52.2201,9.08931],[52.220139,9.09049],[52.220242,9.09183],[52.22039,9.09328],[52.22102,9.09803],[52.221352,9.10071],[52.221519,9.10211],[52.221649,9.10343],[52.221699,9.10437],[52.22171,9.10532],[52.221729,9.10629],[52.221691,9.1071],[52.221649,9.10781],[52.22155,9.10848],[52.221439,9.10903],[52.22131,9.10977],[52.22086,9.11192],[52.220482,9.11371],[52.22023,9.11495],[52.22002,9.11628],[52.21994,9.11706],[52.219879,9.11793],[52.21983,9.11944],[52.21991,9.12097],[52.219971,9.12181],[52.22007,9.12263],[52.22028,9.12413],[52.22049,9.12557],[52.220619,9.12718],[52.22065,9.12849],[52.220619,9.12928],[52.220581,9.13004],[52.22047,9.13138],[52.220119,9.13498],[52.21981,9.13805],[52.21973,9.13917],[52.219669,9.14079],[52.219551,9.14517],[52.219551,9.1457],[52.219479,9.14736],[52.219379,9.14908],[52.21817,9.15879],[52.218029,9.15981],[52.21785,9.16074],[52.217449,9.16232],[52.21669,9.16492],[52.216209,9.16663],[52.216,9.16779],[52.215839,9.16909],[52.215771,9.17014],[52.215752,9.17206],[52.215698,9.17478],[52.21563,9.17699],[52.215611,9.17739],[52.21545,9.18024],[52.215431,9.18139],[52.215511,9.18293],[52.215641,9.18409],[52.215759,9.1848],[52.2159,9.18562],[52.216171,9.18673],[52.216579,9.1883],[52.217991,9.19375],[52.218449,9.19555],[52.219471,9.19907],[52.21983,9.20038],[52.220951,9.20474],[52.221272,9.20601],[52.22147,9.20691],[52.221619,9.20768],[52.221802,9.20891],[52.221901,9.20997],[52.221958,9.21096],[52.22197,9.21188],[52.22187,9.21513],[52.22184,9.21685],[52.221901,9.21811],[52.22197,9.21912],[52.222031,9.21982],[52.222252,9.22108],[52.222549,9.22248],[52.222809,9.22344],[52.223091,9.22428],[52.223412,9.22504],[52.223789,9.2259],[52.224602,9.22741],[52.225891,9.22959],[52.22863,9.23392],[52.228882,9.23433],[52.23019,9.23661],[52.230541,9.23736],[52.230862,9.23816],[52.231152,9.23898],[52.231621,9.24076],[52.232052,9.24308],[52.232349,9.2454],[52.232571,9.24712],[52.23275,9.24839],[52.232841,9.24905],[52.23315,9.25142],[52.233521,9.25422],[52.233898,9.2571],[52.234241,9.25995],[52.234612,9.26276],[52.234951,9.26555],[52.235222,9.26732],[52.23531,9.26785],[52.235649,9.26968],[52.236031,9.27126],[52.236721,9.27361],[52.237251,9.27518],[52.23777,9.2765],[52.23822,9.27756],[52.23859,9.27833],[52.239071,9.27929],[52.23954,9.2801],[52.240299,9.28136],[52.241081,9.2825],[52.24173,9.2833],[52.24263,9.28436],[52.24453,9.28641],[52.24649,9.28847],[52.247452,9.28956],[52.24828,9.29058],[52.248501,9.29089],[52.249249,9.29197],[52.249989,9.29312],[52.250622,9.29429],[52.25116,9.2954],[52.254822,9.30336],[52.256031,9.30584],[52.256618,9.30694],[52.257198,9.3079],[52.25774,9.30869],[52.258369,9.30952],[52.259209,9.31058],[52.26017,9.31164],[52.261101,9.31259],[52.26149,9.31296],[52.26339,9.31468],[52.26498,9.31612],[52.26535,9.31651],[52.26646,9.31788],[52.267059,9.31869],[52.267681,9.31962],[52.268299,9.32062],[52.268822,9.32155],[52.269459,9.32285],[52.273449,9.33127],[52.274132,9.33276],[52.274872,9.3343],[52.275391,9.33547],[52.278141,9.34138],[52.278709,9.34251],[52.279369,9.34372],[52.280022,9.34479],[52.28017,9.34507],[52.28112,9.34654],[52.28614,9.3543],[52.287659,9.35666],[52.288509,9.35787],[52.289421,9.35901],[52.289719,9.35935],[52.291088,9.36072],[52.292488,9.36198],[52.292671,9.36213],[52.302601,9.37094],[52.319118,9.38574],[52.321159,9.38775],[52.322319,9.38908],[52.32336,9.39044],[52.324322,9.39183],[52.325069,9.39299],[52.32523,9.39327],[52.325859,9.39436],[52.326618,9.39575],[52.327579,9.39764],[52.328411,9.39929],[52.32859,9.39964],[52.329109,9.4006],[52.329769,9.40172],[52.330891,9.40352],[52.332241,9.40555],[52.333649,9.4077],[52.333889,9.40806],[52.33432,9.40873],[52.335529,9.41062],[52.335838,9.41112],[52.336159,9.41163],[52.337959,9.41435],[52.338539,9.41519],[52.339409,9.41632],[52.340111,9.41712],[52.34082,9.41784],[52.34166,9.4186],[52.342659,9.41942],[52.343609,9.42004],[52.344292,9.42046],[52.347092,9.42214],[52.34774,9.42256],[52.348728,9.4233],[52.349461,9.42388],[52.350231,9.42454],[52.351101,9.42534],[52.353039,9.42715],[52.357361,9.43114],[52.35881,9.43264],[52.359692,9.43366],[52.367809,9.44407],[52.369389,9.4463],[52.37072,9.44836],[52.370861,9.44859],[52.37278,9.45184],[52.37532,9.45624],[52.377548,9.4601],[52.38052,9.46524],[52.38113,9.46629],[52.381649,9.46712],[52.382561,9.46848],[52.383499,9.4698],[52.388901,9.4772],[52.39045,9.47932],[52.396099,9.48702],[52.39711,9.48859],[52.398029,9.49015],[52.401131,9.49559],[52.406521,9.50506],[52.407982,9.50763],[52.409161,9.50972],[52.410191,9.51151],[52.41164,9.51406],[52.413311,9.51703],[52.41428,9.51884],[52.415138,9.52054],[52.41576,9.52185],[52.416382,9.52326],[52.416969,9.52472],[52.417488,9.52615],[52.41803,9.52775],[52.41877,9.53015],[52.419331,9.53233],[52.419689,9.53391],[52.419991,9.53553],[52.420319,9.53729],[52.42057,9.53902],[52.42078,9.54093],[52.420971,9.54285],[52.421131,9.54533],[52.42131,9.54945],[52.421459,9.55652],[52.421551,9.55856],[52.42165,9.56019],[52.421909,9.56349],[52.422329,9.56859],[52.42276,9.57334],[52.42281,9.57401],[52.423309,9.58008],[52.423458,9.58243],[52.423489,9.58307],[52.423561,9.58555],[52.423592,9.5876],[52.42358,9.58984],[52.423519,9.59303],[52.423229,9.59739],[52.421131,9.61986],[52.42091,9.62265],[52.420811,9.62446],[52.420792,9.62634],[52.420811,9.62772],[52.420872,9.6294],[52.421051,9.63173],[52.421242,9.63346],[52.421619,9.63605],[52.422058,9.6385],[52.424,9.64852],[52.42527,9.6551],[52.42683,9.66314],[52.427429,9.66629],[52.4282,9.67028],[52.428421,9.67169],[52.428612,9.67311],[52.428921,9.67626],[52.429321,9.68156],[52.429611,9.68496],[52.430241,9.69297],[52.430389,9.69674],[52.43042,9.69946],[52.430401,9.70035],[52.430248,9.70318],[52.43,9.70612],[52.42923,9.71208],[52.429001,9.71376],[52.42823,9.72024],[52.427898,9.72294],[52.427872,9.72335],[52.427551,9.72654],[52.427441,9.72852],[52.427441,9.72884],[52.427391,9.73166],[52.427391,9.73378],[52.42738,9.74271],[52.42725,9.74974],[52.427189,9.75209],[52.427189,9.75226],[52.427071,9.75852],[52.427059,9.75878],[52.426979,9.76416],[52.426979,9.76718],[52.42709,9.7718],[52.427219,9.77332],[52.427471,9.77608],[52.42757,9.77697],[52.42802,9.78012],[52.42849,9.78298],[52.42894,9.78534],[52.4296,9.78852],[52.43013,9.7913],[52.430309,9.79236],[52.43084,9.79586],[52.431061,9.79878],[52.43108,9.80093],[52.43108,9.80136],[52.431061,9.80156],[52.431011,9.80331],[52.430851,9.80506],[52.43058,9.80699],[52.429859,9.81081],[52.42926,9.81314],[52.427879,9.81772],[52.42767,9.81826],[52.427589,9.81848],[52.42622,9.82272],[52.42561,9.82427],[52.425179,9.8253],[52.4244,9.82718],[52.42313,9.82991],[52.421791,9.83242],[52.421059,9.83371],[52.420341,9.83493],[52.419991,9.83549],[52.41695,9.84032],[52.41547,9.84266],[52.414028,9.84502],[52.41272,9.84724],[52.412521,9.84753],[52.412201,9.84809],[52.411758,9.84889],[52.410969,9.85049],[52.40963,9.8534],[52.40897,9.85474],[52.4067,9.85982],[52.406231,9.8608],[52.404419,9.8647],[52.402882,9.86814],[52.4021,9.87012],[52.40136,9.87221],[52.40065,9.87454],[52.40015,9.87635],[52.399601,9.87873],[52.39933,9.88],[52.399101,9.8813],[52.398849,9.88279],[52.39864,9.88436],[52.398048,9.88966],[52.39793,9.89076],[52.397449,9.89538],[52.39716,9.89822],[52.396938,9.90041],[52.39613,9.90822],[52.39547,9.91468],[52.39489,9.91989],[52.394291,9.92539],[52.392899,9.93625],[52.392502,9.93943],[52.391991,9.94348],[52.391129,9.95032],[52.390652,9.95501],[52.390388,9.95814],[52.389771,9.96834],[52.38966,9.97063],[52.38961,9.97158],[52.389488,9.97431],[52.38945,9.97521],[52.389271,9.97919],[52.389179,9.98179],[52.388851,9.98807],[52.388741,9.98972],[52.38866,9.99068],[52.38855,9.99183],[52.388371,9.99334],[52.38826,9.9942],[52.388031,9.99557],[52.38776,9.99715],[52.387428,9.99872],[52.38665,10.00213],[52.386589,10.00236],[52.384411,10.01166],[52.384232,10.01243],[52.383591,10.01513],[52.38287,10.01818],[52.38216,10.02108],[52.381931,10.02194],[52.380798,10.02608],[52.37854,10.03394],[52.37793,10.03613],[52.375851,10.0434],[52.36834,10.06986],[52.367668,10.07246],[52.367241,10.07433],[52.366859,10.07654],[52.366489,10.079],[52.366112,10.08264],[52.364349,10.10102],[52.363918,10.10537],[52.363731,10.10793],[52.363621,10.11056],[52.363522,10.11825],[52.363491,10.12034],[52.363461,10.12095],[52.3634,10.12439],[52.36322,10.12821],[52.362869,10.13312],[52.362389,10.13806],[52.361851,10.14326],[52.361752,10.14428],[52.36092,10.15225],[52.36026,10.15861],[52.3587,10.17429],[52.358459,10.17639],[52.35775,10.18056],[52.357601,10.18136],[52.35696,10.18402],[52.356331,10.18616],[52.355492,10.18883],[52.35437,10.19165],[52.34618,10.20908],[52.342449,10.21785],[52.341831,10.21931],[52.340672,10.22211],[52.340179,10.22335],[52.33963,10.2249],[52.339489,10.22534],[52.33881,10.22759],[52.33831,10.2295],[52.337898,10.23125],[52.33733,10.23424],[52.336891,10.23742],[52.336781,10.23822],[52.33654,10.24093],[52.336449,10.2429],[52.336418,10.24385],[52.336399,10.24622],[52.33654,10.25446],[52.33659,10.25766],[52.336559,10.2601],[52.33646,10.2636],[52.336189,10.26843],[52.335072,10.28774],[52.334919,10.29107],[52.334919,10.29154],[52.335011,10.29579],[52.33514,10.29783],[52.33543,10.30059],[52.33551,10.30138],[52.338169,10.32413],[52.339352,10.33431],[52.339642,10.33706],[52.339771,10.33882],[52.339809,10.33951],[52.339931,10.3423],[52.339939,10.34619],[52.339771,10.35151],[52.339378,10.36378],[52.339321,10.36578],[52.339298,10.36685],[52.339039,10.3733],[52.33876,10.37846],[52.338699,10.37918],[52.33749,10.39397],[52.33744,10.39459],[52.337231,10.39709],[52.337078,10.39883],[52.33704,10.39933],[52.33699,10.39991],[52.336658,10.40373],[52.336601,10.40446],[52.335541,10.41656],[52.33511,10.41984],[52.33482,10.42191],[52.33448,10.42399],[52.33408,10.42626],[52.333401,10.43028],[52.331501,10.44129],[52.330391,10.44793],[52.32967,10.4525],[52.32896,10.45634],[52.326759,10.46555],[52.32547,10.47095],[52.324322,10.4756],[52.321678,10.48679],[52.320992,10.48957],[52.320641,10.49099],[52.316238,10.50933],[52.315941,10.51061],[52.314949,10.51487],[52.314602,10.51663],[52.314301,10.51826],[52.31406,10.51997],[52.313622,10.52316],[52.31337,10.52554],[52.313339,10.5259],[52.313229,10.52723],[52.31316,10.52956],[52.313171,10.53276],[52.31321,10.53498],[52.313221,10.53566],[52.313061,10.55503],[52.313049,10.55618],[52.31303,10.55924],[52.31303,10.56007],[52.313,10.56157],[52.312969,10.5638],[52.31292,10.56636],[52.312801,10.57008],[52.312691,10.57225],[52.31237,10.57724],[52.312019,10.58152],[52.310211,10.60278],[52.310032,10.60504],[52.309978,10.60568],[52.309872,10.60751],[52.30978,10.60984],[52.3097,10.61282],[52.309689,10.61409],[52.3097,10.61489],[52.309761,10.61923],[52.309769,10.62277],[52.309761,10.62736],[52.30975,10.62812],[52.30975,10.62927],[52.3097,10.63306],[52.309689,10.63377],[52.309689,10.63433],[52.309471,10.65566],[52.30938,10.66094],[52.308651,10.68318],[52.308578,10.6847],[52.308189,10.6965],[52.30817,10.69703],[52.30814,10.6977],[52.307961,10.70307],[52.307949,10.70368],[52.307869,10.70846],[52.30788,10.7108],[52.307961,10.71448],[52.307968,10.71477],[52.30806,10.71921],[52.30817,10.7233],[52.3083,10.72591],[52.308521,10.72918],[52.309261,10.736],[52.31052,10.74826],[52.31287,10.76876],[52.313519,10.77534],[52.313702,10.77924],[52.313702,10.7817],[52.313629,10.78393],[52.312489,10.79746],[52.312439,10.79808],[52.312309,10.79964],[52.311661,10.80753],[52.31155,10.80886],[52.311489,10.80955],[52.311218,10.81283],[52.310982,10.81575],[52.310928,10.81642],[52.310619,10.82023],[52.310299,10.82408],[52.31007,10.82577],[52.309681,10.82813],[52.30938,10.82972],[52.308922,10.83178],[52.308781,10.8324],[52.308571,10.83322],[52.307831,10.83578],[52.30703,10.83832],[52.306911,10.83871],[52.30648,10.84012],[52.30463,10.84596],[52.29977,10.86152],[52.299469,10.8625],[52.29797,10.86634],[52.29623,10.87042],[52.29607,10.8708],[52.290569,10.88392],[52.290298,10.88454],[52.289761,10.88581],[52.287991,10.89006],[52.286442,10.89384],[52.28561,10.89616],[52.284981,10.89818],[52.28405,10.90174],[52.283741,10.90314],[52.283581,10.90391],[52.283199,10.90601],[52.283039,10.90711],[52.282848,10.90841],[52.2827,10.9098],[52.28249,10.91186],[52.282211,10.91447],[52.28194,10.91689],[52.281818,10.91823],[52.281689,10.91955],[52.281521,10.92115],[52.281342,10.92276],[52.281239,10.92347],[52.281101,10.92451],[52.280941,10.92543],[52.28067,10.92687],[52.280579,10.92729],[52.280411,10.92808],[52.280281,10.92867],[52.27998,10.92985],[52.279621,10.93119],[52.278999,10.93321],[52.278809,10.93376],[52.27845,10.93479],[52.27808,10.93571],[52.277599,10.93683],[52.274021,10.94491],[52.272881,10.94751],[52.272579,10.94815],[52.272388,10.94866],[52.271629,10.95055],[52.271149,10.95184],[52.270691,10.9532],[52.270409,10.95412],[52.269989,10.9559],[52.269711,10.95711],[52.269402,10.95878],[52.269051,10.96101],[52.26873,10.96379],[52.268589,10.96511],[52.268459,10.96648],[52.26825,10.96781],[52.268051,10.96897],[52.267792,10.97028],[52.26746,10.97173],[52.267109,10.97311],[52.266541,10.97495],[52.2659,10.97686],[52.26535,10.97857],[52.264729,10.98044],[52.264431,10.98125],[52.264069,10.98226],[52.263611,10.98342],[52.26334,10.98406],[52.26302,10.9848],[52.26265,10.98559],[52.262428,10.98599],[52.261951,10.98683],[52.261559,10.98751],[52.260738,10.98882],[52.26009,10.98974],[52.25935,10.99068],[52.258259,10.99194],[52.258091,10.99214],[52.25774,10.99256],[52.25737,10.99298],[52.256519,10.99397],[52.25563,10.99497],[52.254391,10.99625],[52.25322,10.99741],[52.25264,10.99793],[52.25235,10.99823],[52.251209,10.99934],[52.250229,11.00027],[52.250031,11.00046],[52.24955,11.00092],[52.247181,11.0032],[52.246609,11.00382],[52.246151,11.00434],[52.245621,11.00498],[52.24514,11.0056],[52.244751,11.00613],[52.244381,11.00663],[52.24419,11.0069],[52.243999,11.00721],[52.24379,11.00755],[52.24321,11.00858],[52.242661,11.00965],[52.242088,11.01079],[52.241951,11.01111],[52.24165,11.01174],[52.240669,11.01376],[52.24049,11.01413],[52.24007,11.01488],[52.239738,11.01546],[52.23951,11.01586],[52.239281,11.01623],[52.238449,11.01743],[52.237862,11.01826],[52.237492,11.01872],[52.23708,11.01926],[52.236061,11.02047],[52.235901,11.02068],[52.235519,11.02112],[52.23484,11.02197],[52.23436,11.02264],[52.233879,11.0233],[52.232819,11.02502],[52.23238,11.02578],[52.232151,11.02621],[52.2318,11.02692],[52.231319,11.02796],[52.23064,11.02948],[52.22974,11.03148],[52.226608,11.03863],[52.224251,11.04442],[52.222542,11.04881],[52.22213,11.04988],[52.221722,11.0509],[52.21994,11.05556],[52.219559,11.05661],[52.219021,11.05819],[52.218639,11.05949],[52.218262,11.06097],[52.217609,11.06406],[52.217312,11.06595],[52.21701,11.06904],[52.216759,11.07434],[52.216389,11.08081],[52.21616,11.08396],[52.21582,11.08679],[52.215549,11.08848],[52.215321,11.08966],[52.215,11.091],[52.21471,11.09206],[52.21439,11.09308],[52.214119,11.09393],[52.213581,11.09541],[52.213032,11.097],[52.212528,11.09842],[52.2122,11.09948],[52.211971,11.10029],[52.211639,11.10148],[52.21032,11.10647],[52.209942,11.10794],[52.209572,11.10945],[52.209259,11.11086],[52.209019,11.11196],[52.208809,11.11301],[52.20853,11.11437],[52.20821,11.11676],[52.208031,11.11851],[52.20726,11.1314],[52.207218,11.13201],[52.20718,11.1333],[52.20715,11.13446],[52.207142,11.13474],[52.207142,11.13663],[52.20723,11.13807],[52.207298,11.1391],[52.208012,11.14741],[52.20826,11.1505],[52.208382,11.15266],[52.208431,11.15428],[52.208389,11.15683],[52.20826,11.15952],[52.20808,11.16168],[52.207748,11.16434],[52.207439,11.16667],[52.207272,11.16756],[52.204609,11.17897],[52.204288,11.18041],[52.20369,11.18307],[52.20295,11.18697],[52.202518,11.19054],[52.202309,11.19309],[52.201889,11.20136],[52.201839,11.20206],[52.200691,11.22617],[52.200531,11.23064],[52.20031,11.23465],[52.20018,11.23625],[52.19997,11.23853],[52.199551,11.24218],[52.199379,11.24359],[52.198601,11.24932],[52.198441,11.2506],[52.196831,11.26289],[52.196758,11.26343],[52.19664,11.26425],[52.19611,11.2682],[52.195919,11.26956],[52.195831,11.27021],[52.192509,11.29526],[52.192451,11.29572],[52.191921,11.2998],[52.191681,11.30193],[52.191631,11.30242],[52.19038,11.31644],[52.188,11.34272],[52.18729,11.35063],[52.18716,11.35227],[52.187069,11.35391],[52.187012,11.35556],[52.186981,11.35735],[52.186951,11.35924],[52.186958,11.36334],[52.187,11.36713],[52.18713,11.38555],[52.18718,11.38968],[52.18718,11.38998],[52.187191,11.39058],[52.187191,11.39091],[52.18721,11.39275],[52.18779,11.41141],[52.187809,11.41185],[52.187962,11.41739],[52.18808,11.42094],[52.188099,11.42154],[52.18819,11.425],[52.18829,11.42803],[52.188339,11.43127],[52.18832,11.43313],[52.18821,11.43495],[52.188049,11.43668],[52.187771,11.43853],[52.18734,11.44089],[52.186981,11.44246],[52.186001,11.44599],[52.185928,11.44622],[52.185829,11.44653],[52.183041,11.45638],[52.181412,11.46197],[52.17691,11.47781],[52.176159,11.4802],[52.175781,11.48138],[52.175251,11.48278],[52.174389,11.48491],[52.173431,11.48724],[52.17202,11.49069],[52.168011,11.50037],[52.16666,11.50414],[52.166458,11.50475],[52.16629,11.50537],[52.16589,11.50676],[52.165611,11.50802],[52.165359,11.50931],[52.165161,11.51038],[52.16502,11.51134],[52.164791,11.51371],[52.1647,11.51587],[52.16468,11.5163],[52.16465,11.51743],[52.164669,11.5184],[52.164742,11.51996],[52.16489,11.52163],[52.165058,11.52326],[52.165119,11.52365],[52.165421,11.52569],[52.166439,11.53267],[52.166611,11.53392],[52.167339,11.53867],[52.167439,11.53937],[52.169441,11.55281],[52.16991,11.55575],[52.170231,11.55711],[52.170559,11.55839],[52.171291,11.56133],[52.17382,11.57087],[52.175751,11.57812],[52.178219,11.58746],[52.182308,11.603],[52.183929,11.60919],[52.185032,11.61315],[52.185822,11.61628],[52.186619,11.61919],[52.187531,11.62238],[52.188011,11.62375],[52.18858,11.62524],[52.18866,11.62546],[52.18959,11.62733],[52.190868,11.62959],[52.192478,11.63237],[52.199959,11.6454],[52.200359,11.64613],[52.20084,11.64695],[52.201038,11.64729],[52.20842,11.66016],[52.208679,11.66065],[52.209332,11.66179],[52.21109,11.66484],[52.21154,11.66565],[52.211788,11.66607],[52.213799,11.66959],[52.215851,11.67339],[52.216461,11.67478],[52.217049,11.67633],[52.217369,11.67731],[52.217579,11.67796],[52.217838,11.67877],[52.218311,11.68052],[52.21854,11.68151],[52.21909,11.6844],[52.219452,11.68751],[52.219749,11.69092],[52.220051,11.69427],[52.221161,11.70682],[52.22168,11.71211],[52.222061,11.71632],[52.223511,11.73166],[52.223629,11.73272],[52.223759,11.73362],[52.225361,11.74258],[52.22699,11.75169],[52.22805,11.75741],[52.228409,11.75924],[52.228741,11.76117],[52.229019,11.76374],[52.229149,11.76571],[52.229179,11.76778],[52.22897,11.77192],[52.227791,11.7904],[52.22768,11.79214],[52.2276,11.79329],[52.227291,11.79804],[52.226688,11.80733],[52.22665,11.80793],[52.226009,11.81791],[52.225689,11.82334],[52.225529,11.82563],[52.22541,11.82819],[52.22543,11.83002],[52.225471,11.83125],[52.225559,11.83267],[52.225651,11.83379],[52.227291,11.84773],[52.232201,11.88916],[52.23251,11.89181],[52.232639,11.89276],[52.232731,11.89358],[52.233051,11.89658],[52.23336,11.89995],[52.233601,11.90274],[52.233768,11.90531],[52.233879,11.90798],[52.234348,11.92429],[52.234779,11.94053],[52.235249,11.95714],[52.235409,11.96376],[52.2356,11.97119],[52.235748,11.97729],[52.23579,11.97894],[52.235771,11.98051],[52.235699,11.98249],[52.235432,11.98812],[52.235081,11.99699],[52.234341,12.01401],[52.233761,12.02773],[52.233421,12.03474],[52.233101,12.04213],[52.232632,12.05301],[52.232609,12.0542],[52.23262,12.05541],[52.23267,12.05675],[52.232841,12.0587],[52.23296,12.06002],[52.233101,12.06113],[52.233459,12.06384],[52.233681,12.06548],[52.233768,12.0661],[52.24308,12.13948],[52.2439,12.14593],[52.249649,12.19065],[52.252121,12.21038],[52.25235,12.21264],[52.252441,12.2143],[52.252491,12.21691],[52.252319,12.2199],[52.249069,12.25665],[52.248631,12.26174],[52.24828,12.2661],[52.24699,12.28226],[52.24678,12.28543],[52.246658,12.2885],[52.24675,12.29159],[52.246891,12.29349],[52.247169,12.29568],[52.24765,12.29831],[52.24847,12.30145],[52.248791,12.30246],[52.249241,12.30368],[52.2495,12.30437],[52.249821,12.30523],[52.253349,12.31351],[52.253639,12.31419],[52.26292,12.33628],[52.263882,12.33891],[52.264481,12.34107],[52.26495,12.34305],[52.265339,12.34523],[52.267719,12.36252],[52.277241,12.4319],[52.27755,12.43401],[52.278061,12.43658],[52.278561,12.43851],[52.279259,12.4407],[52.2799,12.44244],[52.280529,12.44386],[52.281189,12.44522],[52.281849,12.4464],[52.28727,12.45523],[52.289341,12.45825],[52.290829,12.46031],[52.292488,12.46235],[52.295609,12.46595],[52.299759,12.47067],[52.304459,12.47609],[52.30703,12.47905],[52.30975,12.48217],[52.312519,12.48525],[52.314991,12.48782],[52.318409,12.49088],[52.323139,12.49511],[52.326832,12.49837],[52.33028,12.50148],[52.333721,12.50458],[52.335201,12.50586],[52.335838,12.50645],[52.336571,12.50723],[52.337528,12.5084],[52.33836,12.50953],[52.339062,12.51066],[52.340118,12.51264],[52.340401,12.51326],[52.340809,12.51413],[52.341591,12.51603],[52.342892,12.51968],[52.344269,12.52359],[52.347919,12.53389],[52.348782,12.53666],[52.349419,12.53922],[52.349751,12.54055],[52.349819,12.5409],[52.350552,12.54517],[52.35088,12.54797],[52.351059,12.55027],[52.351181,12.55295],[52.351189,12.55519],[52.351158,12.55847],[52.35107,12.56422],[52.350922,12.57661],[52.350681,12.59304],[52.350632,12.59599],[52.35059,12.59717],[52.350498,12.5986],[52.35041,12.59981],[52.350182,12.60171],[52.349911,12.60367],[52.349659,12.60507],[52.34938,12.60644],[52.348999,12.60803],[52.348122,12.61133],[52.344818,12.62296],[52.34457,12.62384],[52.344391,12.62446],[52.34346,12.62779],[52.342911,12.62973],[52.34272,12.63038],[52.33942,12.64209],[52.339191,12.64297],[52.338009,12.64715],[52.33754,12.64889],[52.33662,12.65224],[52.33625,12.6537],[52.335899,12.65536],[52.33567,12.65673],[52.335419,12.65854],[52.3353,12.65974],[52.335209,12.66093],[52.335152,12.66218],[52.335121,12.66309],[52.335129,12.66403],[52.335171,12.6655],[52.33527,12.66721],[52.335411,12.66883],[52.336739,12.68137],[52.336811,12.68207],[52.33744,12.68802],[52.337521,12.68873],[52.338161,12.69472],[52.33852,12.6982],[52.338631,12.69936],[52.338799,12.70087],[52.339081,12.70356],[52.339729,12.70973],[52.339951,12.71174],[52.340092,12.71322],[52.34016,12.7143],[52.34021,12.71555],[52.340221,12.71697],[52.340179,12.71834],[52.340111,12.71968],[52.34005,12.72069],[52.34,12.72143],[52.339859,12.72375],[52.33979,12.72533],[52.339771,12.72611],[52.339729,12.72804],[52.339642,12.73175],[52.339588,12.73409],[52.339611,12.73499],[52.339661,12.73628],[52.339729,12.73744],[52.340691,12.75166],[52.341099,12.7577],[52.341141,12.75848],[52.341209,12.75966],[52.34127,12.76134],[52.341259,12.76291],[52.341171,12.76464],[52.341049,12.76608],[52.340149,12.7758],[52.339111,12.78689],[52.338871,12.78991],[52.338409,12.79716],[52.338299,12.79892],[52.338009,12.80411],[52.33791,12.80584],[52.33783,12.80681],[52.337711,12.80768],[52.337509,12.80871],[52.33728,12.8097],[52.33696,12.8107],[52.33646,12.81194],[52.336109,12.81268],[52.33569,12.81338],[52.33519,12.81405],[52.33503,12.81426],[52.334839,12.81447],[52.334141,12.81513],[52.333599,12.81561],[52.332981,12.81612],[52.332359,12.81673],[52.331921,12.81723],[52.331402,12.81794],[52.330929,12.81869],[52.330479,12.81961],[52.33017,12.8204],[52.32988,12.82124],[52.328949,12.82439],[52.327759,12.82837],[52.324871,12.83843],[52.322739,12.84587],[52.320759,12.85271],[52.320202,12.85459],[52.319859,12.85564],[52.31958,12.85649],[52.31926,12.85738],[52.318802,12.85852],[52.318409,12.85941],[52.317501,12.8613],[52.31609,12.86413],[52.313278,12.86984],[52.31123,12.874],[52.31044,12.87558],[52.310322,12.87582],[52.309509,12.87753],[52.306961,12.8826],[52.305679,12.88513],[52.298168,12.90026],[52.297329,12.90199],[52.29649,12.90364],[52.295471,12.90573],[52.292488,12.9117],[52.291592,12.91353],[52.291409,12.91394],[52.291069,12.91483],[52.29092,12.9154],[52.290779,12.91593],[52.29063,12.91674],[52.29052,12.91769],[52.290482,12.91831],[52.290451,12.91879],[52.290451,12.91924],[52.290482,12.91992],[52.290581,12.92099],[52.290749,12.92183],[52.29097,12.92274],[52.291271,12.92371],[52.291809,12.92508],[52.29211,12.92599],[52.292511,12.92743],[52.292961,12.92949],[52.298199,12.95228],[52.299309,12.95707],[52.301849,12.96836],[52.30249,12.97116],[52.302849,12.97277],[52.30302,12.97345],[52.303169,12.9741],[52.303341,12.97503],[52.303471,12.97595],[52.303539,12.97658],[52.3036,12.97733],[52.303638,12.97817],[52.303379,13.00804],[52.303349,13.00964],[52.303322,13.01115],[52.303261,13.01224],[52.303169,13.01321],[52.30304,13.01414],[52.302879,13.01503],[52.30267,13.01593],[52.30154,13.01991],[52.30014,13.02485],[52.299999,13.02532],[52.299839,13.02589],[52.29945,13.0273],[52.299179,13.02828],[52.298981,13.029],[52.298851,13.02948],[52.298691,13.03007],[52.298599,13.03051],[52.298489,13.031],[52.298409,13.0315],[52.298351,13.03191],[52.298302,13.03235],[52.29826,13.03275],[52.298229,13.03316],[52.298222,13.03357],[52.29821,13.03402],[52.29821,13.03448],[52.29821,13.03477],[52.298229,13.03535],[52.298248,13.03579],[52.298309,13.03639],[52.29837,13.03689],[52.29847,13.0375],[52.29858,13.03805],[52.298691,13.0386],[52.298889,13.0393],[52.299019,13.03977],[52.29924,13.04038],[52.30006,13.04263],[52.300331,13.04338],[52.30048,13.04386],[52.300621,13.04441],[52.300739,13.04491],[52.300819,13.04535],[52.300911,13.04586],[52.30098,13.04634],[52.301041,13.04686],[52.30109,13.04735],[52.301121,13.04784],[52.30114,13.04834],[52.30114,13.04896],[52.300999,13.05311],[52.300701,13.06163],[52.300671,13.06223],[52.300499,13.06709],[52.300159,13.07772],[52.30011,13.07952],[52.300049,13.08123],[52.30003,13.08219],[52.30006,13.08293],[52.300091,13.08362],[52.300129,13.08421],[52.300179,13.08472],[52.300228,13.0852],[52.300331,13.08582],[52.300541,13.08696],[52.30196,13.09434],[52.302139,13.09526],[52.302261,13.09585],[52.302559,13.09734],[52.30267,13.09799],[52.30275,13.09857],[52.30283,13.09933],[52.30286,13.09979],[52.302898,13.10039],[52.302921,13.10091],[52.302929,13.10139],[52.302921,13.10196],[52.302879,13.10399],[52.302631,13.11285],[52.30257,13.11635],[52.30254,13.11712],[52.302391,13.12387],[52.302311,13.12553],[52.301029,13.14169],[52.300968,13.14249],[52.30085,13.14398],[52.300831,13.14447],[52.300812,13.14488],[52.300812,13.14539],[52.3008,13.14592],[52.30085,13.15346],[52.300819,13.15558],[52.3008,13.15612],[52.300781,13.15662],[52.300739,13.15714],[52.300209,13.16418],[52.299351,13.17524],[52.298931,13.18064],[52.29892,13.18097],[52.298908,13.18142],[52.298908,13.1821],[52.29892,13.18257],[52.298931,13.18301],[52.298962,13.18349],[52.299,13.18391],[52.299042,13.18431],[52.299091,13.18475],[52.299149,13.18519],[52.299221,13.18569],[52.299301,13.18608],[52.29937,13.18646],[52.299431,13.18678],[52.299561,13.18732],[52.30003,13.18925],[52.30019,13.18995],[52.30151,13.1953],[52.301579,13.19566],[52.30167,13.19612],[52.301731,13.19652],[52.3018,13.19693],[52.301849,13.1973],[52.301899,13.19773],[52.301929,13.19806],[52.30196,13.19841],[52.301979,13.19887],[52.30201,13.19935],[52.302021,13.19977],[52.302021,13.20011],[52.30201,13.20053],[52.30201,13.20089],[52.301998,13.20135],[52.301891,13.20437],[52.301739,13.20819],[52.30159,13.21251],[52.30143,13.21658],[52.301399,13.21761],[52.30101,13.22814],[52.300629,13.23876],[52.300362,13.24577],[52.300339,13.24618],[52.300331,13.24667],[52.30032,13.24713],[52.30032,13.24761],[52.30032,13.24802],[52.300331,13.24849],[52.30035,13.24896],[52.300369,13.24944],[52.300419,13.24996],[52.300461,13.25048],[52.300529,13.25102],[52.300598,13.25154],[52.300701,13.25207],[52.300812,13.25259],[52.300919,13.25312],[52.301041,13.2536],[52.30117,13.25409],[52.301331,13.25467],[52.302052,13.25682],[52.303631,13.26149],[52.306171,13.26909],[52.306549,13.27018],[52.307129,13.27192],[52.307289,13.27238],[52.30743,13.27285],[52.307571,13.27335],[52.307701,13.27383],[52.307819,13.2743],[52.307941,13.27481],[52.308048,13.27532],[52.30814,13.27581],[52.308239,13.27632],[52.308319,13.2768],[52.308392,13.27732],[52.308449,13.27784],[52.30851,13.27835],[52.308559,13.27889],[52.30859,13.27942],[52.308601,13.27994],[52.308609,13.28048],[52.30862,13.281],[52.308601,13.28153],[52.308571,13.28206],[52.308552,13.28255],[52.308498,13.28311],[52.30801,13.28764],[52.30764,13.2907],[52.307468,13.2923],[52.30743,13.29283],[52.307388,13.29332],[52.307369,13.29385],[52.30735,13.29491],[52.307259,13.2995],[52.307259,13.29988],[52.30722,13.30167],[52.307178,13.30244],[52.306789,13.30749],[52.30616,13.31553],[52.30563,13.32229],[52.305561,13.32336],[52.305519,13.32442],[52.3055,13.32547],[52.3055,13.32656],[52.305531,13.3276],[52.30558,13.32869],[52.30566,13.32976],[52.305771,13.33087],[52.305901,13.33203],[52.305969,13.33278],[52.306438,13.33712],[52.30653,13.33803],[52.307461,13.3466],[52.307571,13.34768],[52.307659,13.34873],[52.307709,13.34979],[52.307739,13.35073],[52.307751,13.35086],[52.307758,13.35191],[52.30769,13.36154],[52.30769,13.36237],[52.30761,13.37333],[52.30759,13.37434],[52.307549,13.37523],[52.307499,13.37612],[52.30743,13.37713],[52.306961,13.38394],[52.3069,13.38485],[52.306709,13.38766],[52.306549,13.38997],[52.30653,13.39038],[52.306259,13.39469],[52.30616,13.39737],[52.30603,13.40509],[52.305882,13.4151],[52.305882,13.41575],[52.305851,13.41721],[52.30584,13.41831],[52.305801,13.42242],[52.305828,13.42609],[52.305851,13.42757],[52.305931,13.43275],[52.30603,13.43915],[52.30608,13.44054],[52.306141,13.44131],[52.30616,13.4416],[52.306229,13.44238],[52.30629,13.4429],[52.306641,13.44551],[52.306839,13.4466],[52.307899,13.45187],[52.308128,13.45298],[52.30838,13.45421],[52.308769,13.45611],[52.30912,13.45786],[52.309681,13.46055],[52.309719,13.46078],[52.310341,13.4639],[52.310459,13.4645],[52.311951,13.47177],[52.312611,13.47496],[52.312679,13.47535],[52.314789,13.48567],[52.315231,13.48783],[52.316971,13.49645],[52.317291,13.49799],[52.317951,13.50123],[52.3186,13.50442],[52.31881,13.50564],[52.318932,13.50642],[52.319031,13.50718],[52.319141,13.50822],[52.31921,13.50916],[52.31926,13.51001],[52.319302,13.51074],[52.319309,13.51155],[52.319321,13.51231],[52.319309,13.51293],[52.31929,13.51368],[52.319229,13.51505],[52.318851,13.52142],[52.318569,13.52585],[52.318359,13.52936],[52.31831,13.53107],[52.318279,13.53268],[52.31834,13.53601],[52.318371,13.53704],[52.318588,13.54471],[52.318771,13.55087],[52.31889,13.55457],[52.31889,13.55478],[52.318951,13.55658],[52.31897,13.55785],[52.319111,13.56125],[52.319141,13.56241],[52.319351,13.56982],[52.319481,13.57375],[52.319611,13.57905],[52.319679,13.58139],[52.319679,13.58179],[52.319672,13.58228],[52.319649,13.58274],[52.31963,13.58324],[52.319592,13.58371],[52.31953,13.58429],[52.319469,13.58477],[52.319401,13.5853],[52.319302,13.58579],[52.319199,13.5863],[52.319111,13.58674],[52.318981,13.58716],[52.318878,13.58758],[52.318771,13.588],[52.3186,13.58854],[52.318409,13.58908],[52.314541,13.59834],[52.313011,13.60187],[52.312778,13.60244],[52.31237,13.60355],[52.312092,13.60442],[52.311699,13.60583],[52.311562,13.60662],[52.31144,13.60741],[52.31134,13.60828],[52.311218,13.60965],[52.311131,13.61102],[52.310959,13.61394],[52.310749,13.61685],[52.310581,13.61942],[52.31041,13.62219],[52.310219,13.62503],[52.310089,13.62699],[52.31007,13.6275],[52.31007,13.62845],[52.31007,13.62939],[52.310169,13.63121],[52.310249,13.63253],[52.31028,13.63349],[52.310299,13.63427],[52.31039,13.63698],[52.31065,13.64389],[52.310699,13.64603],[52.310829,13.64817],[52.31089,13.64904],[52.311039,13.65133],[52.311359,13.65437],[52.311451,13.65497],[52.311939,13.65849],[52.312649,13.66256],[52.312679,13.6627],[52.312778,13.66331],[52.31284,13.66363],[52.313709,13.66821],[52.31422,13.67078],[52.316711,13.68074],[52.318481,13.68853],[52.32093,13.69869],[52.323811,13.71061],[52.324039,13.71157],[52.324181,13.71243],[52.324329,13.71357],[52.324421,13.7144],[52.324478,13.71538],[52.324501,13.7164],[52.32439,13.72013],[52.32423,13.72539],[52.324211,13.72651],[52.324032,13.73115],[52.323959,13.73364],[52.323719,13.73806],[52.323471,13.74205],[52.32333,13.74668],[52.32317,13.75164],[52.323151,13.75306],[52.323158,13.7541],[52.3232,13.75505],[52.323231,13.75592],[52.323261,13.7567],[52.32328,13.75751],[52.32328,13.75826],[52.323261,13.75934],[52.323231,13.76009],[52.32309,13.76171],[52.323009,13.76277],[52.32291,13.76362],[52.322769,13.76464],[52.322479,13.76632],[52.321991,13.76899],[52.321259,13.77266],[52.320969,13.7741],[52.319851,13.77939],[52.31921,13.78262],[52.318939,13.78396],[52.318501,13.78613],[52.317551,13.79078],[52.317509,13.79102],[52.317341,13.79181],[52.317108,13.7929],[52.31657,13.79519],[52.315449,13.79977],[52.315079,13.80129],[52.313332,13.80844],[52.31131,13.81651],[52.310841,13.81912],[52.310638,13.82042],[52.31049,13.8217],[52.310379,13.82292],[52.310299,13.8241],[52.310242,13.82523],[52.310211,13.82659],[52.310211,13.82763],[52.31028,13.82919],[52.31039,13.83102],[52.310612,13.83456],[52.310829,13.83808],[52.311031,13.84117],[52.312199,13.85973],[52.312481,13.86492],[52.31292,13.8716],[52.313129,13.87394],[52.3134,13.87599],[52.31377,13.87848],[52.315659,13.8905],[52.316002,13.89283],[52.316109,13.89382],[52.316139,13.89395],[52.316231,13.89513],[52.316341,13.89711],[52.31636,13.89782],[52.316368,13.89843],[52.316368,13.89941],[52.316368,13.89974],[52.316319,13.9008],[52.316299,13.90126],[52.31628,13.90146],[52.316231,13.90217],[52.3162,13.90265],[52.31612,13.9035],[52.316051,13.90423],[52.315929,13.90506],[52.315769,13.90622],[52.31554,13.90753],[52.315449,13.90808],[52.31525,13.90935],[52.314678,13.91243],[52.313839,13.91717],[52.313591,13.91856],[52.313251,13.9206],[52.313,13.92272],[52.312859,13.92457],[52.312672,13.92828],[52.312469,13.93198],[52.31221,13.93685],[52.31189,13.94362],[52.311821,13.94501],[52.311699,13.94711],[52.3116,13.94925],[52.311531,13.95186],[52.311501,13.95388],[52.31152,13.95569],[52.31155,13.95647],[52.31155,13.95723],[52.31155,13.95759],[52.3116,13.95848],[52.311649,13.95939],[52.31171,13.96051],[52.31189,13.9633],[52.311958,13.96403],[52.312031,13.96476],[52.312111,13.96553],[52.312309,13.9676],[52.312679,13.97042],[52.313519,13.97695],[52.31419,13.98221],[52.315079,13.98901],[52.31559,13.99114],[52.316631,13.99535],[52.320641,14.01003],[52.321388,14.01278],[52.32254,14.01699],[52.327091,14.03302],[52.327888,14.03549],[52.32877,14.03817],[52.329361,14.03994],[52.329639,14.04085],[52.329868,14.04185],[52.330509,14.0449],[52.331181,14.04833],[52.332371,14.05431],[52.333389,14.0594],[52.33419,14.0635],[52.334278,14.06416],[52.334389,14.06499],[52.33445,14.06608],[52.33448,14.06779],[52.334492,14.06882],[52.334499,14.06961],[52.33453,14.0718],[52.33461,14.07611],[52.334621,14.07673],[52.334629,14.07948],[52.334641,14.0799],[52.33469,14.08319],[52.334709,14.08396],[52.33493,14.09404],[52.335129,14.10164],[52.335171,14.10379],[52.3353,14.10977],[52.33532,14.11047],[52.335442,14.1153],[52.335579,14.12059],[52.335781,14.12908],[52.335941,14.13594],[52.336109,14.14278],[52.336159,14.14419],[52.336269,14.14563],[52.336399,14.14698],[52.33659,14.14847],[52.336849,14.15005],[52.33704,14.15106],[52.337559,14.15323],[52.33905,14.15899],[52.33989,14.16224],[52.340832,14.16591],[52.342758,14.17332],[52.343319,14.17564],[52.343731,14.17809],[52.34388,14.18072],[52.343811,14.18341],[52.34338,14.18688],[52.342838,14.18988],[52.341709,14.19427],[52.340618,14.19713],[52.338531,14.20352],[52.337429,14.20914],[52.337021,14.2144],[52.336578,14.22596],[52.335991,14.24164],[52.33585,14.24464],[52.335499,14.24766],[52.334919,14.2509],[52.334171,14.25369],[52.333778,14.25489],[52.333649,14.25527],[52.332611,14.25821],[52.330059,14.2653],[52.328659,14.26944],[52.328289,14.27081],[52.32753,14.27394],[52.327179,14.27573],[52.326401,14.27954],[52.325371,14.28448],[52.324718,14.2877],[52.324291,14.29105],[52.32399,14.29796],[52.323471,14.31189],[52.32296,14.32586],[52.322208,14.34336],[52.322159,14.3474],[52.322029,14.35058],[52.321739,14.359],[52.321239,14.37253],[52.32095,14.37974],[52.320938,14.38024],[52.320881,14.38183],[52.32056,14.39143],[52.32029,14.39804],[52.32019,14.40253],[52.320221,14.41164],[52.32032,14.42128],[52.3204,14.43098],[52.320591,14.44889],[52.32069,14.45717],[52.320679,14.46126],[52.320641,14.46375],[52.320591,14.46598],[52.32053,14.46934],[52.320431,14.47422],[52.320419,14.475],[52.320358,14.47841],[52.32019,14.48646],[52.320011,14.49741],[52.31992,14.50324],[52.319832,14.50629],[52.319721,14.50929],[52.319519,14.51284],[52.319302,14.51651],[52.319069,14.51992],[52.318989,14.5207],[52.31889,14.52167],[52.318729,14.52265],[52.318451,14.52381],[52.318111,14.52488],[52.317699,14.52601],[52.316898,14.52836],[52.316601,14.52915],[52.316311,14.52992],[52.31617,14.53036],[52.315948,14.53115],[52.315681,14.53209],[52.315552,14.53266],[52.315231,14.53412],[52.314899,14.53588],[52.31472,14.53705],[52.314548,14.53846],[52.314442,14.53961],[52.31435,14.54102],[52.314289,14.54354],[52.31432,14.54571],[52.314381,14.54728],[52.314388,14.54786],[52.31451,14.55143],[52.314579,14.55382],[52.31461,14.55563],[52.314621,14.55709],[52.31459,14.56008],[52.314548,14.56303],[52.314499,14.56659],[52.314579,14.56822],[52.314789,14.57063],[52.314919,14.57244],[52.315189,14.57603],[52.31538,14.57823],[52.31575,14.582],[52.316051,14.5845],[52.316212,14.58597],[52.316299,14.58661],[52.316368,14.58724],[52.316441,14.58844],[52.316521,14.58954],[52.316681,14.59023],[52.316879,14.59181],[52.31699,14.59264],[52.31889,14.59981],[52.320629,14.60601],[52.322411,14.61267],[52.323078,14.6152],[52.32394,14.61827],[52.32452,14.62057],[52.324692,14.62123],[52.325001,14.62245],[52.325611,14.62534],[52.32589,14.6274],[52.326092,14.6291],[52.326199,14.63064],[52.326248,14.63312],[52.32616,14.63536],[52.325989,14.63746],[52.325851,14.63898],[52.325691,14.64077],[52.325489,14.64297],[52.325272,14.64536],[52.324631,14.65187],[52.324131,14.65751],[52.323959,14.66148],[52.32394,14.66456],[52.324268,14.66852],[52.324959,14.67386],[52.325951,14.68193],[52.32679,14.68798],[52.32782,14.69577],[52.328308,14.69948],[52.3284,14.69984],[52.3288,14.70276],[52.32935,14.70716],[52.329762,14.71018],[52.33012,14.71311],[52.33057,14.71611],[52.330719,14.71743],[52.33099,14.71987],[52.331348,14.72298],[52.331509,14.72419],[52.332329,14.73033],[52.33297,14.7351],[52.333672,14.73998],[52.334278,14.74597],[52.334839,14.74961],[52.335121,14.75285],[52.33532,14.75599],[52.335251,14.76015],[52.335251,14.76259],[52.335251,14.76802],[52.335281,14.77738],[52.335312,14.78783],[52.335312,14.79524],[52.335312,14.8001],[52.335121,14.80287],[52.33474,14.80595],[52.334,14.80992],[52.3326,14.81719],[52.331188,14.82469],[52.33181,14.82495],[52.332211,14.82512],[52.336479,14.82671],[52.33667,14.82695],[52.3367,14.82708],[52.336899,14.82746],[52.337959,14.83174],[52.33971,14.84149],[52.339722,14.8423],[52.339249,14.84258],[52.337952,14.84265],[52.33688,14.84286],[52.33585,14.8435],[52.334579,14.84484],[52.332611,14.84689],[52.33099,14.84875],[52.329708,14.84906],[52.329891,14.85048],[52.32983,14.85069],[52.329731,14.85084],[52.329269,14.85094],[52.32988,14.85503],[52.331451,14.8649],[52.332531,14.87174],[52.333229,14.87593],[52.333488,14.87793],[52.333511,14.87955],[52.333382,14.88108],[52.33308,14.8827],[52.33213,14.88645],[52.329849,14.89468],[52.327461,14.90341],[52.32626,14.90796],[52.325859,14.90951],[52.324551,14.91448],[52.323891,14.91709],[52.32333,14.92519],[52.322842,14.93262],[52.32272,14.93431],[52.32272,14.93545],[52.322701,14.93746],[52.322601,14.94129],[52.322571,14.94231],[52.322529,14.94388],[52.322491,14.94485],[52.3223,14.94668],[52.322048,14.94901],[52.322102,14.95146],[52.32214,14.95324],[52.323261,14.96119],[52.323551,14.96432],[52.32428,14.96949],[52.324532,14.97133],[52.325459,14.97816],[52.325851,14.98161],[52.326069,14.98478],[52.326172,14.9859],[52.326431,14.99044],[52.32671,14.9952],[52.327068,15.00165],[52.327141,15.00297],[52.32748,15.00926],[52.327492,15.01057],[52.3274,15.01196],[52.327202,15.0133],[52.326889,15.01427],[52.32626,15.01541],[52.326038,15.01612],[52.325581,15.01866],[52.325211,15.01991],[52.323639,15.02362],[52.321442,15.02881],[52.319618,15.03303],[52.31826,15.03632],[52.317959,15.03744],[52.317749,15.03856],[52.317539,15.03964],[52.317451,15.04015],[52.317299,15.04102],[52.3172,15.04158],[52.31712,15.04197],[52.31575,15.05026],[52.314671,15.05675],[52.31459,15.05757],[52.314362,15.0613],[52.314308,15.06239],[52.314129,15.06768],[52.314129,15.06804],[52.314018,15.07221],[52.314011,15.07287],[52.314011,15.07321],[52.31406,15.07634],[52.31406,15.07645],[52.31403,15.07699],[52.313969,15.07741],[52.313759,15.07815],[52.31358,15.07869],[52.313381,15.07915],[52.313061,15.07986],[52.31271,15.08079],[52.312401,15.08214],[52.312351,15.08315],[52.312359,15.0838],[52.3125,15.0857],[52.312778,15.08879],[52.313099,15.09145],[52.313129,15.09244],[52.313122,15.09307],[52.312889,15.09459],[52.312592,15.09667],[52.31163,15.10237],[52.311291,15.10456],[52.311131,15.10562],[52.3102,15.11167],[52.309429,15.1158],[52.309212,15.11783],[52.307449,15.12917],[52.305851,15.13853],[52.305531,15.14046],[52.305679,15.1434],[52.30682,15.15571],[52.307621,15.16481],[52.30814,15.16976],[52.308449,15.17354],[52.308491,15.17476],[52.30835,15.17634],[52.307598,15.18076],[52.30743,15.18192],[52.30706,15.18441],[52.306221,15.19006],[52.305679,15.19367],[52.305141,15.19727],[52.304531,15.20115],[52.304321,15.20249],[52.30415,15.20363],[52.304161,15.20518],[52.304138,15.2125],[52.304081,15.21744],[52.30415,15.22173],[52.304062,15.22459],[52.30323,15.22903],[52.302021,15.23598],[52.300991,15.24142],[52.300159,15.24576],[52.299431,15.24963],[52.299141,15.25119],[52.298908,15.25245],[52.298779,15.25318],[52.297981,15.25758],[52.296871,15.26387],[52.296539,15.26546],[52.296162,15.26735],[52.29599,15.26859],[52.296009,15.27042],[52.296291,15.27157],[52.296638,15.27262],[52.297279,15.27445],[52.29789,15.27607],[52.29921,15.27976],[52.299759,15.28133],[52.300079,15.28318],[52.300201,15.28427],[52.300282,15.28585],[52.30032,15.28881],[52.30032,15.29367],[52.300098,15.30026],[52.29995,15.30136],[52.29969,15.30273],[52.29908,15.30553],[52.296902,15.31165],[52.29541,15.31585],[52.293541,15.32154],[52.29134,15.32788],[52.290749,15.32981],[52.290359,15.33222],[52.290199,15.33807],[52.28923,15.34195],[52.286598,15.34702],[52.282909,15.35303],[52.28138,15.35526],[52.28064,15.35622],[52.279541,15.35927],[52.278992,15.36026],[52.278389,15.36093],[52.277431,15.36179],[52.276669,15.36254],[52.276081,15.36362],[52.274551,15.36875],[52.272739,15.37466],[52.2714,15.37907],[52.270931,15.38053],[52.270679,15.38137],[52.269402,15.38597],[52.268921,15.38743],[52.26889,15.38753],[52.268349,15.38872],[52.267929,15.38954],[52.266949,15.39075],[52.265129,15.39281],[52.263699,15.39487],[52.262249,15.39781],[52.26144,15.39949],[52.260139,15.4022],[52.258701,15.40485],[52.257919,15.40721],[52.257301,15.41013],[52.257069,15.41427],[52.25671,15.41949],[52.256142,15.42734],[52.255051,15.44218],[52.254669,15.44881],[52.253799,15.45979],[52.253811,15.46035],[52.253769,15.4612],[52.25412,15.46642],[52.254219,15.46799],[52.254169,15.469],[52.254028,15.47212],[52.25436,15.47424],[52.254292,15.47588],[52.25423,15.47617],[52.253578,15.47933],[52.25301,15.48252],[52.25317,15.4857],[52.253681,15.488],[52.255531,15.49359],[52.256592,15.49689],[52.25745,15.49939],[52.258282,15.50201],[52.25943,15.50561],[52.259819,15.50713],[52.260269,15.51073],[52.26046,15.51246],[52.26078,15.51575],[52.26115,15.5193],[52.261292,15.52025],[52.261452,15.52155],[52.262089,15.5273],[52.262291,15.52977],[52.262249,15.53163],[52.26223,15.53312],[52.26202,15.5332],[52.261929,15.53345],[52.261971,15.53376],[52.26215,15.53395],[52.261848,15.5347],[52.260761,15.53751],[52.260719,15.53759],[52.260151,15.53888],[52.256161,15.5487],[52.255932,15.54923],[52.255569,15.5501],[52.252998,15.55644],[52.252178,15.55843],[52.251789,15.56074],[52.2519,15.56195],[52.25211,15.56461],[52.253609,15.57056],[52.2556,15.57819],[52.256821,15.58265],[52.256802,15.5835],[52.257481,15.5857],[52.25787,15.58713],[52.25988,15.59026],[52.26302,15.5945],[52.266281,15.5992],[52.268742,15.60275],[52.271172,15.6061],[52.272129,15.60787],[52.272579,15.60917],[52.273281,15.61221],[52.274811,15.61984],[52.275711,15.62407],[52.277569,15.63269],[52.278252,15.63792],[52.27877,15.64118],[52.279442,15.64462],[52.280972,15.64746],[52.283218,15.64905],[52.285912,15.65071],[52.287239,15.65119],[52.289459,15.6513],[52.293442,15.6511],[52.295109,15.65142],[52.297279,15.65219],[52.299271,15.65359],[52.30196,15.65767],[52.303341,15.65965],[52.305401,15.66148],[52.308849,15.66356],[52.31028,15.66424],[52.311329,15.66496],[52.312618,15.66619],[52.31633,15.66969],[52.31855,15.67166],[52.319462,15.67272],[52.320271,15.67374],[52.320709,15.67491],[52.321201,15.67633],[52.32132,15.67753],[52.321419,15.67846],[52.321331,15.68024],[52.32106,15.68229],[52.32103,15.68387],[52.321301,15.68584],[52.321831,15.68795],[52.322472,15.69054],[52.322781,15.69181],[52.32394,15.69626],[52.3269,15.70543],[52.32933,15.71288],[52.33041,15.71597],[52.33242,15.72132],[52.332859,15.72245],[52.332901,15.72256],[52.332939,15.72267],[52.333858,15.72466],[52.33744,15.73182],[52.33881,15.73474],[52.33939,15.73652],[52.339828,15.73898],[52.341141,15.74844],[52.341801,15.75126],[52.342041,15.75225],[52.342319,15.75323],[52.342739,15.75468],[52.34322,15.75633],[52.34446,15.76096],[52.344971,15.76281],[52.345161,15.7647],[52.34523,15.76731],[52.344761,15.77811],[52.344379,15.78276],[52.34428,15.78559],[52.344429,15.78784],[52.344711,15.78962],[52.3451,15.79201],[52.345829,15.7957],[52.346882,15.7995],[52.347641,15.8022],[52.3503,15.81156],[52.3531,15.82158],[52.353291,15.82229],[52.353619,15.82347],[52.356079,15.83324],[52.35796,15.84103],[52.358109,15.84228],[52.35828,15.84537],[52.358429,15.84972],[52.35873,15.85273],[52.358829,15.85334],[52.358891,15.85361],[52.359669,15.85557],[52.36055,15.85676],[52.36179,15.85789],[52.36377,15.8595],[52.36541,15.86088],[52.366211,15.86172],[52.36718,15.86298],[52.36763,15.86378],[52.36797,15.86447],[52.368431,15.86563],[52.368519,15.86592],[52.36887,15.86689],[52.370312,15.87259],[52.37077,15.87381],[52.37096,15.87428],[52.37191,15.87661],[52.372532,15.87872],[52.372829,15.88037],[52.37294,15.88168],[52.372929,15.88325],[52.372398,15.88678],[52.37236,15.88699],[52.371841,15.89046],[52.371609,15.89246],[52.371269,15.89542],[52.371078,15.89704],[52.371719,15.903],[52.37233,15.9084],[52.372551,15.90929],[52.373058,15.91025],[52.373959,15.91201],[52.37439,15.9134],[52.37508,15.91632],[52.375851,15.91963],[52.376381,15.92256],[52.377209,15.92803],[52.37722,15.92961],[52.376469,15.93341],[52.37648,15.93775],[52.3764,15.93848],[52.375511,15.94449],[52.375252,15.94754],[52.375278,15.94982],[52.375629,15.95385],[52.375751,15.95709],[52.375839,15.95888],[52.375851,15.9591],[52.375912,15.96079],[52.37608,15.96312],[52.37645,15.96516],[52.377838,15.97023],[52.379761,15.97643],[52.379902,15.97828],[52.37991,15.97955],[52.379452,15.98388],[52.380009,15.99173],[52.380421,15.99552],[52.380459,15.99832],[52.38055,16.001459],[52.380169,16.00466],[52.379589,16.007641],[52.378349,16.01523],[52.376911,16.02301],[52.376369,16.02775],[52.376301,16.02907],[52.376301,16.03022],[52.376331,16.032221],[52.376431,16.035379],[52.376789,16.04607],[52.377239,16.057249],[52.377392,16.06572],[52.377522,16.07852],[52.37772,16.09374],[52.37756,16.09358],[52.377369,16.093679],[52.377289,16.09392],[52.3773,16.09408],[52.375912,16.09433],[52.374691,16.094549],[52.3713,16.09503],[52.37112,16.09507],[52.366039,16.096029],[52.36264,16.096661],[52.36253,16.097219],[52.362289,16.09865],[52.36216,16.099291],[52.361931,16.099661],[52.36129,16.09997],[52.360569,16.100269],[52.360031,16.10107],[52.359779,16.102039],[52.359699,16.10269],[52.3596,16.103861],[52.359631,16.104851],[52.36039,16.10857],[52.36195,16.117229],[52.362999,16.123461],[52.36385,16.130489],[52.364521,16.136801],[52.365608,16.147249],[52.367062,16.161501],[52.367298,16.16527],[52.36742,16.168301],[52.367451,16.172119],[52.367611,16.185591],[52.36763,16.187149],[52.367821,16.19273],[52.368038,16.19655],[52.368622,16.20146],[52.36945,16.20701],[52.372471,16.222179],[52.375481,16.238211],[52.375839,16.24123],[52.376221,16.244749],[52.376629,16.249599],[52.37714,16.26313],[52.37738,16.270679],[52.377781,16.279659],[52.37822,16.288481],[52.379379,16.309139],[52.380039,16.32155],[52.38118,16.34289],[52.381981,16.356291],[52.38266,16.36916],[52.38324,16.37723],[52.383869,16.383631],[52.38559,16.396589],[52.38728,16.408449],[52.388142,16.41563],[52.388851,16.42271],[52.389351,16.428341],[52.38969,16.434139],[52.39006,16.44529],[52.390018,16.448879],[52.389881,16.453251],[52.389729,16.45645],[52.3895,16.459141],[52.38924,16.46138],[52.388569,16.46607],[52.387341,16.47382],[52.38707,16.47554],[52.386841,16.477989],[52.386749,16.479481],[52.3867,16.48031],[52.386551,16.483351],[52.386478,16.486731],[52.38657,16.491039],[52.386761,16.494961],[52.387081,16.49999],[52.387459,16.50783],[52.387501,16.511551],[52.387451,16.514919],[52.387249,16.520399],[52.3867,16.52607],[52.38604,16.531031],[52.385269,16.5352],[52.384708,16.53763],[52.383999,16.540649],[52.38084,16.55183],[52.37812,16.56093],[52.3773,16.563681],[52.376591,16.56605],[52.373539,16.575661],[52.370152,16.584909],[52.3647,16.59923],[52.360741,16.60952],[52.357101,16.61961],[52.35582,16.62454],[52.355042,16.628139],[52.353432,16.638],[52.35215,16.64694],[52.350979,16.654249],[52.35059,16.656679],[52.349979,16.660419],[52.349369,16.664169],[52.34903,16.66687],[52.348579,16.67141],[52.348389,16.67975],[52.34893,16.691719],[52.349468,16.70499],[52.349819,16.713869],[52.349899,16.715731],[52.35001,16.718731],[52.350319,16.726601],[52.350422,16.729759],[52.350491,16.73181],[52.350491,16.73185],[52.350491,16.731979],[52.350491,16.736811],[52.350491,16.74202],[52.350479,16.75079],[52.350521,16.761419],[52.350479,16.77059],[52.35043,16.778931],[52.35046,16.795071],[52.35033,16.81012],[52.3503,16.826269],[52.350319,16.83869],[52.35041,16.841261],[52.350609,16.84532],[52.350651,16.846121],[52.35088,16.849079],[52.35112,16.85165],[52.35257,16.863581],[52.354179,16.876539],[52.3545,16.879709],[52.354691,16.88483],[52.354698,16.88644],[52.354641,16.888269],[52.354519,16.89225],[52.354389,16.89537],[52.354179,16.897949],[52.35379,16.901699],[52.353741,16.90243],[52.353352,16.90744],[52.35313,16.91028],[52.35281,16.914261],[52.352631,16.916651],[52.352428,16.91897],[52.3521,16.923109],[52.350979,16.937201],[52.349918,16.94964],[52.3494,16.956039],[52.348999,16.961029],[52.348652,16.9655],[52.348,16.973419],[52.347019,16.98617],[52.346531,16.99177],[52.345741,17.0009],[52.345322,17.004881],[52.345009,17.007601],[52.344269,17.01376],[52.34333,17.0207],[52.342529,17.0254],[52.34095,17.034031],[52.337791,17.049919],[52.334721,17.0646],[52.331821,17.078711],[52.329639,17.087839],[52.32906,17.090099],[52.32856,17.09207],[52.327869,17.094801],[52.326542,17.099489],[52.324188,17.107441],[52.32201,17.114479],[52.318722,17.12499],[52.31752,17.12882],[52.31514,17.136431],[52.312561,17.144501],[52.311531,17.1478],[52.311031,17.14967],[52.310692,17.150949],[52.310612,17.1513],[52.310101,17.15361],[52.309872,17.15439],[52.309158,17.157721],[52.308281,17.163059],[52.307789,17.166821],[52.307411,17.170919],[52.307159,17.17539],[52.307072,17.179951],[52.307159,17.18524],[52.30761,17.190941],[52.307919,17.19392],[52.30904,17.201851],[52.309639,17.20735],[52.310059,17.212879],[52.310219,17.223009],[52.310131,17.24172],[52.310131,17.25379],[52.310059,17.265499],[52.310009,17.2722],[52.31004,17.278469],[52.310001,17.296169],[52.309929,17.305731],[52.309929,17.32172],[52.309841,17.34235],[52.309818,17.35442],[52.30991,17.357189],[52.310108,17.362419],[52.311218,17.376181],[52.311531,17.37855],[52.312019,17.38233],[52.312881,17.38825],[52.314861,17.399639],[52.317001,17.41197],[52.317711,17.417191],[52.318211,17.421301],[52.318691,17.42766],[52.31892,17.4317],[52.319038,17.436029],[52.31905,17.440769],[52.318821,17.454201],[52.31863,17.468769],[52.318409,17.48267],[52.31818,17.49605],[52.317921,17.50906],[52.317699,17.51322],[52.316971,17.521919],[52.316311,17.526711],[52.31567,17.530861],[52.315208,17.53367],[52.31498,17.53483],[52.314461,17.53759],[52.31406,17.539631],[52.313801,17.540899],[52.31295,17.54521],[52.312279,17.548889],[52.31216,17.549549],[52.311619,17.55254],[52.31144,17.553499],[52.310799,17.55788],[52.31052,17.56024],[52.3102,17.563971],[52.30999,17.56748],[52.30975,17.57126],[52.30954,17.574511],[52.30933,17.57836],[52.309101,17.58201],[52.30883,17.58531],[52.308441,17.588831],[52.307899,17.592569],[52.30722,17.596371],[52.306309,17.600479],[52.305389,17.6045],[52.304482,17.60854],[52.303532,17.612631],[52.302601,17.61665],[52.301689,17.620621],[52.300812,17.624559],[52.299938,17.628269],[52.299042,17.63216],[52.298119,17.6362],[52.297241,17.639971],[52.29636,17.64382],[52.295509,17.64756],[52.294621,17.65148],[52.293709,17.65538],[52.29277,17.659121],[52.29174,17.662821],[52.290619,17.666571],[52.289539,17.66995],[52.288361,17.673321],[52.287079,17.67683],[52.285419,17.68096],[52.284302,17.683741],[52.282619,17.687811],[52.281368,17.690929],[52.279861,17.694639],[52.27853,17.697969],[52.27705,17.70166],[52.275711,17.70507],[52.274361,17.70862],[52.272991,17.712521],[52.271801,17.716221],[52.270828,17.719391],[52.26992,17.72262],[52.269112,17.72566],[52.268009,17.73033],[52.267029,17.73484],[52.266171,17.739389],[52.26545,17.74361],[52.264851,17.74773],[52.264339,17.75156],[52.26395,17.755159],[52.263531,17.75952],[52.2631,17.764071],[52.262661,17.76853],[52.262291,17.77253],[52.261848,17.776291],[52.261261,17.780161],[52.260521,17.78458],[52.259731,17.78904],[52.25893,17.7936],[52.258129,17.79822],[52.25724,17.80298],[52.256351,17.80759],[52.25547,17.81222],[52.254551,17.81682],[52.25354,17.82229],[52.25312,17.824261],[52.252941,17.82514],[52.25259,17.82683],[52.252419,17.827629],[52.251381,17.83252],[52.2509,17.83478],[52.249779,17.83993],[52.248749,17.84458],[52.247639,17.84947],[52.246498,17.85438],[52.245319,17.8594],[52.24419,17.86404],[52.24305,17.868641],[52.24176,17.8738],[52.240639,17.87789],[52.239029,17.88295],[52.23682,17.889059],[52.235039,17.894119],[52.23349,17.898911],[52.23222,17.903549],[52.23119,17.90774],[52.23016,17.91255],[52.229259,17.91707],[52.228359,17.921789],[52.22744,17.92672],[52.226559,17.931179],[52.225601,17.935749],[52.224491,17.940611],[52.223751,17.943661],[52.22287,17.946989],[52.222279,17.949011],[52.221851,17.95014],[52.221439,17.951441],[52.221069,17.953329],[52.22031,17.956221],[52.218899,17.96109],[52.2174,17.966471],[52.216011,17.97163],[52.21492,17.97599],[52.21381,17.980471],[52.212631,17.98546],[52.21167,17.98987],[52.210781,17.99387],[52.20961,17.99971],[52.20866,18.004471],[52.20779,18.008881],[52.206749,18.013941],[52.20602,18.017241],[52.205151,18.02088],[52.204651,18.02261],[52.204361,18.023609],[52.203629,18.026171],[52.20158,18.032551],[52.199871,18.03726],[52.198181,18.04203],[52.196732,18.046591],[52.19548,18.051359],[52.19442,18.056259],[52.19352,18.06118],[52.19257,18.06632],[52.19146,18.07118],[52.190239,18.075649],[52.18866,18.080429],[52.187099,18.085381],[52.18586,18.09009],[52.1847,18.094481],[52.183529,18.099291],[52.182571,18.10388],[52.181751,18.108379],[52.180939,18.11359],[52.180149,18.11895],[52.17931,18.124451],[52.178391,18.12904],[52.177391,18.133511],[52.176289,18.13798],[52.175289,18.142071],[52.174252,18.146379],[52.173119,18.15097],[52.172169,18.15522],[52.171021,18.160151],[52.17004,18.164909],[52.169079,18.1696],[52.168129,18.17441],[52.16724,18.179291],[52.166359,18.18424],[52.165501,18.18927],[52.164799,18.193991],[52.164261,18.19729],[52.163601,18.201611],[52.163479,18.202221],[52.163288,18.203501],[52.162941,18.205879],[52.162628,18.20842],[52.162441,18.210489],[52.162209,18.212669],[52.162029,18.21505],[52.161758,18.218439],[52.161381,18.223881],[52.161018,18.229349],[52.160629,18.234871],[52.160221,18.24069],[52.15979,18.24567],[52.15921,18.250759],[52.158298,18.256281],[52.157089,18.26198],[52.15686,18.262859],[52.156521,18.264111],[52.156021,18.26605],[52.155621,18.26754],[52.155529,18.267851],[52.153629,18.273861],[52.151821,18.279779],[52.151131,18.28227],[52.150261,18.28594],[52.149189,18.29163],[52.14827,18.299],[52.147739,18.303749],[52.147419,18.307131],[52.146671,18.31233],[52.145721,18.31716],[52.14344,18.32645],[52.1422,18.33209],[52.141201,18.3377],[52.14061,18.342541],[52.140171,18.348499],[52.14003,18.353571],[52.140141,18.359501],[52.140388,18.36388],[52.14098,18.369869],[52.141541,18.37516],[52.141998,18.381081],[52.142281,18.386061],[52.142429,18.390619],[52.142551,18.39543],[52.142719,18.40027],[52.14312,18.40498],[52.143608,18.409361],[52.144421,18.414459],[52.145329,18.419029],[52.1464,18.42411],[52.14727,18.42831],[52.148239,18.432989],[52.14922,18.437771],[52.15012,18.4422],[52.150902,18.446541],[52.151581,18.450729],[52.1521,18.4548],[52.152512,18.46007],[52.152641,18.46566],[52.152561,18.470949],[52.152241,18.476339],[52.15163,18.48201],[52.150822,18.487101],[52.149769,18.492439],[52.148651,18.497259],[52.147419,18.502279],[52.1464,18.50639],[52.145149,18.511869],[52.144218,18.516371],[52.14336,18.521139],[52.142601,18.526649],[52.14204,18.531811],[52.14164,18.5376],[52.141411,18.54336],[52.141399,18.54904],[52.141472,18.55442],[52.141609,18.55991],[52.141731,18.565041],[52.141842,18.569691],[52.141979,18.57476],[52.142101,18.57938],[52.14212,18.584629],[52.14204,18.589439],[52.141811,18.594589],[52.141441,18.59964],[52.141029,18.603769],[52.140869,18.60504],[52.140541,18.607731],[52.140091,18.610941],[52.140011,18.61146],[52.139519,18.614491],[52.138969,18.617519],[52.13818,18.62149],[52.13723,18.62561],[52.135731,18.631559],[52.135681,18.63175],[52.134151,18.63732],[52.13364,18.63928],[52.13271,18.64283],[52.13187,18.6465],[52.13039,18.654449],[52.129341,18.660379],[52.128231,18.66544],[52.127201,18.669399],[52.12553,18.674879],[52.123859,18.680531],[52.12262,18.685539],[52.121559,18.691231],[52.121071,18.694349],[52.120071,18.702909],[52.1194,18.708441],[52.118649,18.71439],[52.118198,18.71767],[52.1171,18.723419],[52.116119,18.727289],[52.115021,18.731091],[52.114159,18.733749],[52.112358,18.73856],[52.110241,18.74337],[52.10701,18.74958],[52.104431,18.75449],[52.102268,18.75923],[52.1003,18.76413],[52.09827,18.769489],[52.096371,18.7742],[52.09589,18.775391],[52.094379,18.77862],[52.093109,18.781071],[52.091259,18.78434],[52.089241,18.7875],[52.08601,18.791849],[52.082939,18.79541],[52.080631,18.79825],[52.077099,18.80315],[52.07399,18.80831],[52.072338,18.811621],[52.071739,18.81282],[52.070518,18.81525],[52.0704,18.8155],[52.068199,18.82025],[52.06596,18.82456],[52.063099,18.82938],[52.0588,18.835791],[52.055489,18.840611],[52.052441,18.845091],[52.049061,18.850071],[52.045551,18.85527],[52.042881,18.859631],[52.04081,18.8634],[52.03949,18.8661],[52.038158,18.86907],[52.03714,18.8715],[52.035439,18.8759],[52.034222,18.879629],[52.033932,18.880529],[52.0327,18.88485],[52.031189,18.89113],[52.029381,18.899929],[52.02813,18.906179],[52.026958,18.911909],[52.025688,18.916809],[52.024479,18.92082],[52.02261,18.926399],[52.019821,18.93458],[52.017609,18.941151],[52.015862,18.94672],[52.014771,18.950951],[52.013149,18.95867],[52.011902,18.96446],[52.01046,18.969851],[52.008881,18.974689],[52.006538,18.98114],[52.00449,18.987221],[52.003071,18.991859],[52.001549,18.997669],[52.00045,19.002541],[51.999458,19.00773],[51.998039,19.01741],[51.99765,19.02055],[51.997459,19.02207],[51.99728,19.02351],[51.996399,19.0298],[51.995399,19.035801],[51.995022,19.03763],[51.994659,19.039221],[51.994148,19.04134],[51.99337,19.04438],[51.992531,19.047159],[51.991379,19.050579],[51.989731,19.054779],[51.98848,19.05761],[51.987129,19.0604],[51.985611,19.06324],[51.984531,19.06517],[51.97858,19.075291],[51.975769,19.08061],[51.973869,19.08461],[51.971889,19.08955],[51.970181,19.0944],[51.96793,19.10198],[51.966339,19.10762],[51.964859,19.112471],[51.96376,19.11552],[51.96101,19.12225],[51.95937,19.12607],[51.957458,19.13121],[51.95565,19.137289],[51.954498,19.142019],[51.952572,19.151661],[51.951248,19.15736],[51.94973,19.162621],[51.946812,19.171141],[51.94466,19.177509],[51.94305,19.183149],[51.941799,19.188761],[51.94101,19.193199],[51.940472,19.19698],[51.939911,19.20273],[51.93969,19.20854],[51.93964,19.214411],[51.93972,19.222719],[51.93969,19.22901],[51.93951,19.23262],[51.939289,19.235571],[51.93895,19.239189],[51.938301,19.244301],[51.937191,19.25193],[51.93644,19.25717],[51.935619,19.262699],[51.935001,19.266729],[51.934132,19.271299],[51.932522,19.278561],[51.931179,19.284679],[51.930161,19.289539],[51.92918,19.29582],[51.928619,19.301411],[51.928188,19.309851],[51.92783,19.31459],[51.927368,19.31875],[51.92696,19.321699],[51.92617,19.32612],[51.925098,19.33124],[51.924011,19.336901],[51.92337,19.34087],[51.922699,19.345881],[51.922249,19.349649],[51.922031,19.351789],[51.922001,19.35211],[51.921799,19.354139],[51.9217,19.35556],[51.921539,19.35808],[51.921391,19.360901],[51.921329,19.36195],[51.9212,19.36455],[51.921082,19.37055],[51.921101,19.375401],[51.921139,19.383471],[51.921082,19.38681],[51.920979,19.390619],[51.92075,19.393961],[51.920269,19.39966],[51.91922,19.40678],[51.918449,19.4112],[51.917461,19.41625],[51.91684,19.41865],[51.916069,19.42169],[51.912361,19.432541],[51.910278,19.43788],[51.90992,19.438749],[51.909222,19.44047],[51.90802,19.44343],[51.905972,19.44853],[51.90398,19.45363],[51.902161,19.45896],[51.901321,19.46212],[51.90086,19.464001],[51.900398,19.46608],[51.899971,19.46797],[51.89933,19.4711],[51.898151,19.47998],[51.89793,19.483231],[51.897812,19.48616],[51.89777,19.49305],[51.898151,19.51585],[51.898129,19.516371],[51.898041,19.5182],[51.897861,19.522011],[51.896622,19.536489],[51.889702,19.57382],[51.888969,19.57979],[51.88868,19.58357],[51.888618,19.585079],[51.888519,19.58819],[51.88858,19.591181],[51.888599,19.591881],[51.888729,19.594959],[51.888889,19.598301],[51.889099,19.601311],[51.88942,19.60549],[51.889549,19.60721],[51.88998,19.612881],[51.890079,19.614189],[51.890732,19.623899],[51.89077,19.62446],[51.891209,19.626949],[51.891251,19.627399],[51.891319,19.627939],[51.891418,19.62862],[51.891602,19.62936],[51.89183,19.630011],[51.89201,19.63035],[51.892159,19.63055],[51.892429,19.63093],[51.892792,19.63135],[51.893051,19.631559],[51.893471,19.6318],[51.89389,19.631929],[51.894218,19.631941],[51.894482,19.63191],[51.894711,19.63187],[51.894878,19.631781],[51.895161,19.631651],[51.89534,19.631531],[51.89547,19.631451],[51.895649,19.6313],[51.896198,19.630911],[51.89645,19.63073],[51.896679,19.63059],[51.896992,19.630381],[51.89743,19.630079],[51.898602,19.629339],[51.899212,19.628929],[51.900139,19.628349],[51.901081,19.62775],[51.90221,19.627171],[51.904461,19.62602],[51.90659,19.625019],[51.90855,19.624161],[51.910789,19.62328],[51.911888,19.62302],[51.912621,19.62285],[51.912819,19.62285],[51.913059,19.623051],[51.914322,19.625601],[51.914452,19.62591],[51.914661,19.626341],[51.9161,19.628691],[51.925201,19.644131],[51.925949,19.64506],[51.92897,19.647631],[51.93063,19.64908],[51.931019,19.649509],[51.931149,19.6497],[51.932259,19.652],[51.932751,19.65308],[51.943272,19.676041],[51.94331,19.676121],[51.94688,19.68264],[51.949989,19.68832],[51.95681,19.700911],[51.958549,19.704069],[51.9589,19.70484],[51.959049,19.705549],[51.95969,19.71069],[51.960819,19.723619],[51.96109,19.726681],[51.961231,19.728161],[51.961239,19.728291],[51.961361,19.7293],[51.961571,19.7299],[51.961811,19.7304],[51.962719,19.731529],[51.96312,19.732019],[51.963539,19.73242],[51.964809,19.733271],[51.965191,19.733509],[51.965439,19.73369],[51.965641,19.7339],[51.96574,19.73403],[51.9664,19.735121],[51.970589,19.742229],[51.973179,19.74663],[51.979118,19.75663],[51.993279,19.7805],[51.99371,19.781219],[52.001862,19.79495],[52.002369,19.79583],[52.0056,19.80126],[52.005829,19.8018],[52.006008,19.802219],[52.006229,19.802891],[52.006248,19.802971],[52.006939,19.8053],[52.00761,19.8076],[52.008629,19.811211],[52.008709,19.811489],[52.008808,19.811819],[52.0089,19.812111],[52.00927,19.81325],[52.009628,19.81402],[52.01593,19.82633],[52.023281,19.84086],[52.02507,19.84432],[52.026192,19.846519],[52.039162,19.87204],[52.039261,19.87224],[52.040749,19.87517],[52.041199,19.87606],[52.041538,19.87673],[52.042561,19.878771],[52.042839,19.87924],[52.044312,19.88221],[52.048222,19.88994],[52.04845,19.890381],[52.048969,19.89139],[52.04916,19.891769],[52.049259,19.89193],[52.04937,19.89213],[52.049419,19.892179],[52.04969,19.89249],[52.050049,19.892771],[52.050961,19.893471],[52.05225,19.89448],[52.05455,19.89625],[52.05455,19.896259],[52.059502,19.900061],[52.060539,19.90085],[52.06316,19.90287],[52.068199,19.90674],[52.068508,19.906981],[52.069099,19.907419],[52.07645,19.91301],[52.076649,19.91317],[52.0769,19.91337],[52.076969,19.913429],[52.077579,19.9139],[52.07782,19.91408],[52.07843,19.91453],[52.079029,19.91498],[52.080231,19.915899],[52.08263,19.917749],[52.083,19.91802],[52.08308,19.918079],[52.084671,19.919279],[52.08535,19.9198],[52.085579,19.919941],[52.085819,19.920059],[52.08609,19.920179],[52.086391,19.92024],[52.086731,19.920271],[52.087021,19.920231],[52.087231,19.920231],[52.087421,19.920259],[52.087471,19.920349],[52.087521,19.920389],[52.087582,19.920401],[52.08765,19.92037],[52.087688,19.920309],[52.08773,19.920231],[52.08786,19.92013],[52.088089,19.920059],[52.088181,19.92005],[52.09103,19.91968],[52.091709,19.91959],[52.092682,19.91946],[52.094219,19.919241],[52.095741,19.919029],[52.096741,19.9189],[52.09774,19.91877],[52.09972,19.918501],[52.10078,19.91835],[52.101028,19.91835],[52.101631,19.918409],[52.10215,19.91857],[52.1026,19.918779],[52.10284,19.91894],[52.103149,19.919161],[52.103401,19.91938],[52.103729,19.919701],[52.10397,19.919991],[52.104198,19.92029],[52.10445,19.920679],[52.104691,19.921129],[52.104961,19.92174],[52.105209,19.92234],[52.105961,19.924509],[52.106411,19.92577],[52.107052,19.92757],[52.107109,19.927719],[52.107231,19.928011],[52.107349,19.928221],[52.10754,19.928579],[52.107731,19.92885],[52.107929,19.929119],[52.108089,19.929279],[52.108452,19.929609],[52.10873,19.929819],[52.109039,19.929991],[52.109371,19.93012],[52.109699,19.930189],[52.111229,19.93025],[52.111641,19.930269],[52.11277,19.930321],[52.112801,19.930321],[52.114609,19.930401],[52.116451,19.93051],[52.116501,19.930519],[52.117069,19.93054],[52.11721,19.930559],[52.117699,19.930639],[52.117962,19.93071],[52.118198,19.93082],[52.118259,19.930849],[52.118629,19.931061],[52.1189,19.93124],[52.119511,19.93181],[52.119598,19.93195],[52.11964,19.93211],[52.119652,19.93228],[52.11964,19.932501],[52.11948,19.93355],[52.1194,19.934561],[52.11937,19.934799],[52.119209,19.9359],[52.11879,19.938721],[52.11866,19.939581],[52.118591,19.94043],[52.118462,19.943199],[52.11832,19.94618],[52.118279,19.947439],[52.118191,19.94982],[52.118069,19.952339],[52.118,19.95396],[52.117882,19.95689],[52.11755,19.96439],[52.117512,19.965401],[52.117512,19.96545],[52.117512,19.9655],[52.117458,19.966459],[52.11742,19.967331],[52.117371,19.968451],[52.117241,19.971201],[52.11721,19.97176],[52.11705,19.974291],[52.11705,19.974951],[52.117062,19.97537],[52.117069,19.97596],[52.11718,19.976419],[52.118179,19.980631],[52.12101,19.99221],[52.12315,20.00086],[52.124432,20.006109],[52.125622,20.010969],[52.125771,20.0116],[52.128719,20.02354],[52.13121,20.03376],[52.137619,20.05954],[52.137859,20.06052],[52.140442,20.07085],[52.14724,20.097931],[52.14912,20.105459],[52.150661,20.111549],[52.151909,20.11652],[52.15295,20.120399],[52.153191,20.12104],[52.153542,20.121799],[52.154518,20.12351],[52.155048,20.12418],[52.15556,20.12472],[52.156071,20.125191],[52.163651,20.130739],[52.16431,20.131229],[52.169559,20.13509],[52.17205,20.136921],[52.18475,20.14629],[52.185478,20.146959],[52.18557,20.147079],[52.186081,20.147791],[52.190811,20.155861],[52.195271,20.163349],[52.199051,20.169781],[52.20237,20.17544],[52.203159,20.176781],[52.21146,20.19092],[52.215248,20.197371],[52.217178,20.20079],[52.2178,20.20186],[52.218819,20.203791],[52.21891,20.204121],[52.218868,20.20435],[52.218529,20.2052],[52.21241,20.216709],[52.21188,20.21773],[52.211472,20.218559],[52.211281,20.21888],[52.210812,20.2201],[52.210548,20.22089],[52.210312,20.221519],[52.20911,20.22497],[52.20903,20.22521],[52.207981,20.228109],[52.206749,20.23156],[52.20615,20.23431],[52.206039,20.235769],[52.20602,20.237249],[52.206169,20.23875],[52.206409,20.240061],[52.20697,20.2428],[52.207569,20.24559],[52.207909,20.246861],[52.20834,20.248211],[52.20892,20.249411],[52.209549,20.250441],[52.20974,20.250799],[52.209721,20.250919],[52.20974,20.25104],[52.209789,20.251129],[52.209862,20.251181],[52.20993,20.251181],[52.209969,20.25116],[52.21006,20.2512],[52.210258,20.25141],[52.210758,20.251921],[52.210999,20.252069],[52.212631,20.253281],[52.214298,20.254391],[52.223068,20.26042],[52.22393,20.26133],[52.224411,20.26195],[52.224731,20.26248],[52.225361,20.2637],[52.22538,20.263929],[52.225479,20.264299],[52.225689,20.26482],[52.226009,20.265989],[52.226021,20.26605],[52.226261,20.267429],[52.226398,20.267891],[52.226471,20.26993],[52.226421,20.270821],[52.225651,20.27956],[52.22266,20.312559],[52.220852,20.33256],[52.220421,20.33741],[52.220032,20.34166],[52.219318,20.349609],[52.218319,20.36063],[52.217331,20.371441],[52.21656,20.37977],[52.215939,20.38644],[52.21373,20.41028],[52.2132,20.416161],[52.21209,20.42832],[52.211891,20.430229],[52.2117,20.432301],[52.209419,20.45714],[52.208721,20.46471],[52.206589,20.488091],[52.205059,20.50466],[52.20435,20.512369],[52.204269,20.51329],[52.202881,20.52837],[52.201641,20.54178],[52.201469,20.54582],[52.20039,20.571939],[52.199059,20.60359],[52.19899,20.60586],[52.19899,20.605989],[52.198978,20.60627],[52.198841,20.60903],[52.198799,20.610081],[52.198711,20.612419],[52.198582,20.61577],[52.198528,20.616989],[52.198528,20.61718],[52.198502,20.6178],[52.199001,20.61994],[52.19936,20.62149],[52.19968,20.62286],[52.199902,20.62373],[52.199982,20.62405],[52.200249,20.62512],[52.20163,20.6308],[52.20644,20.650591],[52.207199,20.653879],[52.207699,20.656031],[52.207859,20.656719],[52.208321,20.659109],[52.208889,20.66353],[52.208988,20.66445],[52.21006,20.673531],[52.2113,20.68404],[52.21133,20.684271],[52.211842,20.688919],[52.212139,20.691401],[52.21273,20.69622],[52.212811,20.701071],[52.2118,20.74048],[52.21143,20.75633],[52.211239,20.7649],[52.211151,20.76845],[52.211121,20.769911],[52.21088,20.778219],[52.210678,20.78578],[52.210579,20.788231],[52.21056,20.788971],[52.21051,20.791401],[52.210468,20.793091],[52.210419,20.794769],[52.210381,20.79623],[52.210331,20.797279],[52.210232,20.801121],[52.21014,20.804319],[52.210041,20.80776],[52.209999,20.809271],[52.209999,20.80971],[52.21003,20.81019],[52.210091,20.81061],[52.210178,20.81123],[52.211182,20.817699],[52.21244,20.82584],[52.212551,20.826891],[52.2131,20.83094],[52.213821,20.835529],[52.214272,20.83843],[52.214321,20.838869],[52.214359,20.839069],[52.214451,20.83972],[52.214741,20.841749],[52.21489,20.843809],[52.21524,20.84981],[52.215832,20.859699],[52.215839,20.85993],[52.2159,20.861],[52.215961,20.861971],[52.216,20.8626],[52.216141,20.86487],[52.216148,20.86503],[52.21632,20.86783],[52.216351,20.86927],[52.21637,20.871429],[52.216381,20.873899],[52.216389,20.874929],[52.216381,20.877769],[52.216381,20.880011],[52.21637,20.88043],[52.216381,20.885969],[52.216389,20.8887],[52.216381,20.89061],[52.216358,20.89253],[52.21637,20.89607],[52.216389,20.896629],[52.216431,20.89715],[52.21648,20.89769],[52.216572,20.89847],[52.21677,20.90044],[52.216808,20.90089],[52.216869,20.90147],[52.21693,20.90193],[52.217159,20.904011],[52.217209,20.90428],[52.217579,20.906019],[52.218021,20.90799],[52.218342,20.90933],[52.218399,20.90958],[52.218559,20.910271],[52.219501,20.914419],[52.219879,20.91584],[52.219921,20.91605],[52.219971,20.91625],[52.220039,20.91663],[52.220539,20.91868],[52.221008,20.92062],[52.221161,20.921289],[52.22171,20.92355],[52.221939,20.92453],[52.22208,20.925131],[52.2225,20.926991],[52.222778,20.9282],[52.22319,20.929831],[52.22324,20.930031],[52.223289,20.93021],[52.223671,20.93152],[52.223881,20.93219],[52.224041,20.932739],[52.224998,20.93623],[52.22514,20.93675],[52.225189,20.93696],[52.22562,20.93853],[52.225719,20.939369],[52.225761,20.939659],[52.225788,20.940701],[52.225868,20.941589],[52.22588,20.94166],[52.225929,20.94198],[52.226311,20.94463],[52.226921,20.948071],[52.22739,20.951281],[52.227451,20.95166],[52.227482,20.95199],[52.227638,20.95425],[52.22773,20.95582],[52.22773,20.956141],[52.227692,20.956659],[52.227692,20.95694],[52.227539,20.95694],[52.226009,20.95731],[52.225349,20.957581],[52.2243,20.957781],[52.22422,20.957821],[52.22353,20.957991],[52.22324,20.95809],[52.22245,20.95833],[52.222252,20.95842],[52.222012,20.95859],[52.22086,20.95952],[52.220581,20.95965],[52.22002,20.95978],[52.21814,20.959909],[52.217659,20.95998],[52.216461,20.9606],[52.216331,20.96073],[52.21619,20.96109],[52.216179,20.961399],[52.216221,20.96166],[52.216572,20.962601],[52.21703,20.963711],[52.21759,20.96524],[52.219391,20.970369],[52.219479,20.97084],[52.219479,20.971251],[52.219471,20.971371],[52.21946,20.97147],[52.218948,20.972969],[52.218861,20.973249],[52.21875,20.973551],[52.217621,20.976971],[52.217541,20.977221],[52.217461,20.977461],[52.2164,20.980619],[52.216301,20.980909],[52.21624,20.98107],[52.216228,20.9811],[52.216179,20.981239],[52.21611,20.981449],[52.216042,20.981649],[52.215981,20.981911],[52.215961,20.982149],[52.215969,20.98246],[52.215981,20.982679],[52.216042,20.983801],[52.216061,20.9842],[52.216091,20.98497],[52.216221,20.987],[52.216228,20.98728],[52.216221,20.987591],[52.216209,20.98782],[52.21619,20.98806],[52.216179,20.98838],[52.216179,20.98884],[52.216259,20.989929],[52.21627,20.990259],[52.21632,20.99095],[52.216511,20.99444],[52.216801,20.999901],[52.21682,21.000429],[52.217121,21.004539],[52.21719,21.00563],[52.21727,21.00716],[52.217281,21.00845],[52.217209,21.01022],[52.217159,21.01169],[52.216999,21.01438],[52.216999,21.0149],[52.21703,21.015421],[52.217079,21.01594],[52.217171,21.01647],[52.217449,21.0177],[52.21759,21.01844],[52.21767,21.018801],[52.217861,21.019581],[52.21793,21.01984],[52.218399,21.021761],[52.219059,21.024469],[52.219372,21.02578],[52.219742,21.027309],[52.21994,21.0282],[52.220669,21.03112],[52.221458,21.034109],[52.222229,21.037251],[52.22266,21.03857],[52.223,21.03944],[52.223148,21.039841],[52.223301,21.040211],[52.223511,21.040739],[52.223701,21.04143],[52.223789,21.04184],[52.22403,21.0431],[52.22443,21.045059],[52.225712,21.05121],[52.22612,21.053249],[52.226509,21.055201],[52.22686,21.056789],[52.2271,21.057699],[52.228149,21.061621],[52.228378,21.06255],[52.228901,21.06455],[52.229111,21.065319],[52.229401,21.0665],[52.229889,21.06831],[52.23035,21.07052],[52.230652,21.07151],[52.230831,21.07196],[52.23233,21.074381],[52.233021,21.07556],[52.235081,21.078911],[52.235271,21.079479],[52.235401,21.0802],[52.23547,21.080629],[52.235531,21.081091],[52.235661,21.08217],[52.235889,21.08399],[52.236061,21.08552],[52.236099,21.08663],[52.236099,21.08683],[52.236038,21.087641],[52.235958,21.088421],[52.235771,21.089439],[52.2351,21.093491],[52.234951,21.09482],[52.234871,21.095501],[52.23468,21.097151],[52.234661,21.09741],[52.234631,21.097679],[52.23444,21.099489],[52.23436,21.10021],[52.2342,21.101629],[52.233971,21.10355],[52.23386,21.10463],[52.233768,21.10532],[52.233459,21.10816],[52.233349,21.109051],[52.233059,21.111691],[52.232899,21.113239],[52.232861,21.11352],[52.232681,21.115021],[52.232571,21.116529],[52.232521,21.118191],[52.232521,21.11837],[52.23251,21.118799],[52.232571,21.12027],[52.23259,21.121389],[52.232601,21.12254],[52.23262,21.12421],[52.232639,21.125429],[52.232639,21.126711],[52.232658,21.12788],[52.232651,21.12854],[52.232639,21.129089],[52.232559,21.12974],[52.23243,21.130461],[52.23225,21.131069],[52.23201,21.13171],[52.231602,21.13269],[52.230782,21.134729],[52.23003,21.136499],[52.22971,21.137251],[52.22934,21.138109],[52.22908,21.138691],[52.228691,21.13958],[52.2286,21.139799],[52.228352,21.140369],[52.228039,21.14101],[52.22784,21.14147],[52.227188,21.142929],[52.226871,21.143669],[52.226669,21.14419],[52.226551,21.144661],[52.22644,21.145149],[52.226372,21.14566],[52.226341,21.146231],[52.22628,21.148359],[52.22628,21.14887],[52.226231,21.14978],[52.226181,21.15131],[52.226158,21.152491],[52.22612,21.15346],[52.226101,21.153851],[52.226059,21.15535],[52.225922,21.158939],[52.225891,21.15937],[52.225819,21.161421],[52.225689,21.165609],[52.22551,21.17029],[52.225189,21.17864],[52.224819,21.18928],[52.224529,21.196859],[52.224491,21.198009],[52.22427,21.20554],[52.224072,21.21101],[52.223911,21.21578],[52.223782,21.219891],[52.22369,21.22279],[52.223679,21.22303],[52.223671,21.223289],[52.223629,21.22451],[52.223469,21.229271],[52.223381,21.230721],[52.223301,21.23295],[52.223259,21.23402],[52.22324,21.235041],[52.223179,21.23679],[52.22316,21.237249],[52.223049,21.23951],[52.22303,21.240021],[52.22295,21.243151],[52.222832,21.24703],[52.22274,21.24946],[52.22271,21.24983],[52.222691,21.249929],[52.222679,21.25062],[52.222511,21.255859],[52.222351,21.26104],[52.222309,21.26218],[52.22221,21.26466],[52.222179,21.26539],[52.222149,21.266211],[52.22208,21.267851],[52.22205,21.26918],[52.222038,21.26963],[52.222031,21.26977],[52.222,21.27087],[52.221771,21.277281],[52.2215,21.284731],[52.221481,21.28517],[52.221371,21.287571],[52.221321,21.288719],[52.22113,21.2906],[52.220459,21.293631],[52.219471,21.298019],[52.218601,21.301941],[52.21851,21.302389],[52.21767,21.306379],[52.216961,21.30962],[52.216648,21.311029],[52.215851,21.314739],[52.215611,21.315929],[52.215149,21.3183],[52.213772,21.32457],[52.21249,21.33049],[52.21233,21.331261],[52.211109,21.337],[52.210251,21.34096],[52.209511,21.34437],[52.207809,21.35216],[52.206211,21.35932],[52.20467,21.366529],[52.203072,21.374001],[52.202629,21.377239],[52.202209,21.380011],[52.202202,21.380091],[52.201889,21.38555],[52.201691,21.389219],[52.201439,21.3937],[52.201118,21.401541],[52.200611,21.410839],[52.200291,21.41663],[52.200119,21.42065],[52.199989,21.42417],[52.19978,21.427259],[52.199459,21.43342],[52.19923,21.43766],[52.199169,21.439381],[52.1992,21.44058],[52.1992,21.44236],[52.19923,21.443769],[52.199299,21.446381],[52.199429,21.44973],[52.199451,21.450439],[52.19952,21.452971],[52.19965,21.45809],[52.199871,21.46624],[52.20023,21.475121],[52.20052,21.484421],[52.20063,21.48831],[52.200581,21.490219],[52.200359,21.492001],[52.19994,21.49367],[52.198551,21.49864],[52.19664,21.505899],[52.194981,21.51228],[52.193371,21.51828],[52.192188,21.522989],[52.19175,21.52454],[52.190979,21.527349],[52.190819,21.527321],[52.190689,21.52746],[52.19062,21.527731],[52.19067,21.527941],[52.1908,21.528099],[52.190659,21.52861],[52.190048,21.530781],[52.18895,21.534809],[52.188709,21.53578],[52.188171,21.537849],[52.187778,21.539431],[52.18734,21.540939],[52.187061,21.54196],[52.18692,21.54249],[52.186329,21.544649],[52.18631,21.54475],[52.185612,21.54744],[52.185341,21.54867],[52.18454,21.55163],[52.184219,21.55286],[52.18388,21.55415],[52.183281,21.556311],[52.182911,21.55773],[52.182652,21.55871],[52.18248,21.55938],[52.181751,21.56234],[52.181149,21.564791],[52.18074,21.566441],[52.180698,21.56658],[52.180592,21.566999],[52.18029,21.568159],[52.179909,21.5697],[52.179588,21.571011],[52.179539,21.571159],[52.179329,21.57198],[52.179031,21.57312],[52.17873,21.574301],[52.178398,21.575541],[52.178059,21.57678],[52.178082,21.577339],[52.178169,21.580919],[52.178242,21.58276],[52.178291,21.58411],[52.178299,21.58423],[52.178421,21.589001],[52.178619,21.59437],[52.178791,21.59881],[52.17915,21.609301],[52.17923,21.611561],[52.179581,21.62187],[52.17976,21.626841],[52.18013,21.629681],[52.180229,21.630461],[52.182049,21.644159],[52.183769,21.64847],[52.184509,21.65386],[52.188019,21.68083],[52.192032,21.710409],[52.192532,21.723101],[52.195358,21.743959],[52.20295,21.80003],[52.203152,21.80052],[52.20396,21.802349],[52.206169,21.80718],[52.206692,21.808411],[52.208061,21.81164],[52.208801,21.813181],[52.209278,21.81419],[52.209461,21.81456],[52.210251,21.816771],[52.2104,21.81769],[52.210442,21.820499],[52.210419,21.82181],[52.210251,21.832239],[52.209831,21.861191],[52.209389,21.886351],[52.20929,21.89757],[52.208271,21.907749],[52.20443,21.94763],[52.203869,21.953699],[52.20055,21.98842],[52.197842,22.01725],[52.196651,22.0296],[52.196602,22.0301],[52.195881,22.03702],[52.19558,22.04031],[52.195709,22.042641],[52.197639,22.05447],[52.197762,22.055639],[52.197701,22.05674],[52.197571,22.057659],[52.196949,22.06188],[52.196949,22.061899],[52.19656,22.06428],[52.195641,22.069839],[52.19046,22.100559],[52.18803,22.11499],[52.187031,22.12093],[52.186642,22.123289],[52.184971,22.13299],[52.183868,22.140181],[52.18354,22.14233],[52.18045,22.16251],[52.18042,22.16272],[52.179218,22.170521],[52.178082,22.17807],[52.177551,22.18157],[52.17654,22.188499],[52.176029,22.191971],[52.175301,22.19693],[52.1745,22.202379],[52.173512,22.20912],[52.173241,22.21105],[52.172321,22.217211],[52.172031,22.21862],[52.171841,22.219561],[52.171371,22.221001],[52.171101,22.221569],[52.1707,22.2222],[52.170269,22.222759],[52.169971,22.223061],[52.169651,22.22337],[52.168919,22.223761],[52.16806,22.22397],[52.157452,22.223801],[52.149818,22.223669],[52.149181,22.223841],[52.148411,22.22414],[52.14703,22.225031],[52.145828,22.22603],[52.145191,22.226721],[52.14463,22.22753],[52.14407,22.228821],[52.143768,22.22994],[52.143559,22.23114],[52.143471,22.232981],[52.14365,22.236931],[52.14365,22.24024],[52.14352,22.242979],[52.143341,22.245081],[52.1427,22.24972],[52.14188,22.254181],[52.14146,22.256161],[52.141121,22.25769],[52.1409,22.25869],[52.14072,22.259331],[52.140381,22.26058],[52.13974,22.26259],[52.138321,22.266199],[52.137569,22.26819],[52.137032,22.26984],[52.136089,22.273109],[52.13562,22.275169],[52.13472,22.28014],[52.1339,22.284821],[52.133598,22.28676],[52.132912,22.29147],[52.13261,22.29401],[52.132191,22.29804],[52.131882,22.302031],[52.13163,22.307911],[52.13158,22.309839],[52.13158,22.315981],[52.131672,22.318979],[52.131882,22.323021],[52.132011,22.325979],[52.132011,22.327101],[52.131931,22.328251],[52.131882,22.328659],[52.131802,22.329201],[52.131672,22.32984],[52.131241,22.331301],[52.130268,22.33366],[52.1297,22.335079],[52.128479,22.338051],[52.1273,22.34091],[52.12524,22.34581],[52.124432,22.34767],[52.122318,22.35253],[52.122181,22.352859],[52.120171,22.35787],[52.11734,22.364731],[52.114368,22.371731],[52.112019,22.377439],[52.108501,22.385799],[52.105831,22.3922],[52.103809,22.39706],[52.102531,22.400141],[52.09618,22.415409],[52.0909,22.42794],[52.090092,22.43022],[52.08979,22.432711],[52.089741,22.43593],[52.089531,22.43782],[52.08934,22.4384],[52.08786,22.44297],[52.086208,22.45097],[52.08498,22.457041],[52.08387,22.46246],[52.083172,22.466141],[52.08202,22.476231],[52.081631,22.479191],[52.08065,22.482149],[52.0779,22.48863],[52.076649,22.49193],[52.074421,22.5],[52.072891,22.505619],[52.071678,22.51009],[52.06942,22.51827],[52.069012,22.51996],[52.06884,22.5236],[52.068878,22.526569],[52.068501,22.5291],[52.066872,22.534929],[52.06464,22.5427],[52.06356,22.54652],[52.063011,22.550079],[52.062531,22.55407],[52.061378,22.563471],[52.059921,22.57184],[52.059441,22.574579],[52.057259,22.58708],[52.057041,22.589569],[52.056999,22.591801],[52.057301,22.59729],[52.057678,22.608959],[52.05785,22.614059],[52.057991,22.618019],[52.058109,22.622311],[52.05743,22.62789],[52.055672,22.63789],[52.053139,22.652349],[52.050991,22.664709],[52.050049,22.67042],[52.049622,22.67214],[52.048592,22.67454],[52.045151,22.68055],[52.039101,22.691231],[52.03442,22.699511],[52.029881,22.707371],[52.02383,22.71763],[52.019051,22.72547],[52.015331,22.73226],[52.007431,22.74612],[52.0047,22.75083],[52.00449,22.75119],[52.004169,22.75172],[52.003368,22.753139],[52.002972,22.75382],[52.00243,22.75474],[52.001228,22.756901],[52.00069,22.75861],[52.000469,22.759689],[52.000408,22.76021],[52.000332,22.76083],[52.000301,22.763399],[52.00029,22.764009],[52.00029,22.76417],[52.00029,22.76475],[52.000259,22.766911],[52.000271,22.767811],[52.00029,22.7693],[52.000271,22.77309],[52.000092,22.78389],[51.999699,22.81146],[51.999771,22.813219],[51.999809,22.813709],[51.999969,22.814501],[52.000389,22.815821],[52.001049,22.817221],[52.002491,22.819941],[52.019131,22.850771],[52.02018,22.85272],[52.026829,22.86499],[52.027561,22.86714],[52.027748,22.86878],[52.02803,22.87328],[52.02816,22.876579],[52.028591,22.880751],[52.034531,22.91885],[52.036671,22.9328],[52.038502,22.94478],[52.038651,22.94701],[52.03661,22.99505],[52.034679,23.03936],[52.034382,23.04616],[52.033852,23.060539],[52.033821,23.06105],[52.033779,23.061331],[52.033741,23.06406],[52.033779,23.06502],[52.033932,23.066481],[52.03397,23.06702],[52.034039,23.06745],[52.03413,23.068199],[52.034382,23.069441],[52.034851,23.07103],[52.035332,23.072411],[52.035728,23.073481],[52.035858,23.07374],[52.035912,23.07374],[52.037621,23.077749],[52.038502,23.07987],[52.042339,23.08906],[52.045219,23.09586],[52.047531,23.10133],[52.049171,23.10528],[52.049759,23.107201],[52.05061,23.10993],[52.05101,23.11146],[52.05143,23.1134],[52.051769,23.115351],[52.052139,23.118019],[52.05233,23.120081],[52.052441,23.12163],[52.05254,23.1243],[52.05249,23.126431],[52.05241,23.128111],[52.05225,23.13044],[52.052052,23.132139],[52.051689,23.134399],[52.05138,23.136129],[52.051079,23.137541],[52.05014,23.14085],[52.049431,23.14304],[52.046921,23.149401],[52.046329,23.150881],[52.046249,23.151091],[52.041649,23.16205],[52.04108,23.16349],[52.040989,23.163771],[52.040878,23.16407],[52.040722,23.16494],[52.040668,23.165991],[52.040699,23.166901],[52.040852,23.16884],[52.04092,23.17067],[52.040909,23.170799],[52.040352,23.17984],[52.040001,23.184799],[52.039848,23.18705],[52.03894,23.19945],[52.038151,23.211281],[52.037041,23.226919],[52.036201,23.23984],[52.035629,23.247259],[52.035198,23.254669],[52.034111,23.268709],[52.034019,23.270809],[52.0341,23.278021],[52.034279,23.285179],[52.03437,23.289591],[52.034679,23.30765],[52.03487,23.319969],[52.03503,23.33103],[52.035431,23.352261],[52.035568,23.36269],[52.035751,23.37554],[52.036121,23.39966],[52.03648,23.423731],[52.03669,23.44198],[52.037102,23.471069],[52.056198,23.47821],[52.057281,23.479031],[52.062019,23.48612],[52.06966,23.497549],[52.07505,23.50531],[52.074341,23.506451],[52.074478,23.507071],[52.075321,23.508471],[52.076199,23.51207],[52.077019,23.517269],[52.078541,23.523121],[52.079208,23.52372],[52.080021,23.527479],[52.080372,23.52845],[52.080971,23.52993],[52.08247,23.531771],[52.097488,23.550831],[52.100391,23.55324],[52.115749,23.565399],[52.116249,23.565861],[52.116879,23.566429],[52.119869,23.56897],[52.12009,23.569189],[52.121159,23.570431],[52.1236,23.573311],[52.123859,23.57374],[52.124371,23.57469],[52.124889,23.57572],[52.125641,23.577629],[52.12632,23.580099],[52.128811,23.59057],[52.135269,23.61853],[52.136452,23.62384],[52.137909,23.62999],[52.139091,23.63512],[52.140079,23.63932],[52.143768,23.6551],[52.148842,23.67742],[52.150139,23.68292],[52.15052,23.68453],[52.15115,23.687281],[52.151402,23.68865],[52.151531,23.68964],[52.151569,23.69029],[52.151539,23.6905],[52.151482,23.69071],[52.151371,23.69096],[52.151291,23.69117],[52.151199,23.691401],[52.15115,23.69166],[52.15118,23.69203],[52.15126,23.69227],[52.151371,23.69243],[52.15147,23.69253],[52.151539,23.69256],[52.151619,23.692869],[52.151661,23.69306],[52.151661,23.693319],[52.151409,23.69803],[52.15023,23.716619],[52.149399,23.72999],[52.149052,23.73517],[52.148842,23.736971],[52.148689,23.73807],[52.14843,23.739651],[52.147911,23.741989],[52.14674,23.74641],[52.145618,23.750441],[52.14502,23.75275],[52.143379,23.758739],[52.140732,23.768591],[52.13792,23.778919],[52.134338,23.792219],[52.133091,23.796761],[52.13205,23.80051],[52.131889,23.80109],[52.131039,23.803761],[52.13002,23.807489],[52.12822,23.81422],[52.127369,23.81785],[52.125999,23.823071],[52.125622,23.824289],[52.125111,23.82625],[52.124451,23.82873],[52.123501,23.83223],[52.122688,23.83518],[52.119701,23.846319],[52.119282,23.84778],[52.11903,23.84841],[52.118832,23.848749],[52.11869,23.84897],[52.118542,23.84914],[52.117519,23.849951],[52.115879,23.85117],[52.1157,23.85137],[52.11554,23.85165],[52.115459,23.85203],[52.11549,23.852341],[52.11557,23.852631],[52.115791,23.85289],[52.116161,23.85309],[52.11647,23.85318],[52.116699,23.85335],[52.116909,23.853609],[52.11705,23.85391],[52.117249,23.85433],[52.117489,23.85548],[52.118221,23.859249],[52.119019,23.863449],[52.120411,23.870689],[52.122372,23.880699],[52.123039,23.88419],[52.12328,23.88542],[52.123749,23.887831],[52.124321,23.89076],[52.124779,23.893221],[52.125229,23.895611],[52.125561,23.897301],[52.126678,23.902849],[52.127029,23.904711],[52.128262,23.91103],[52.129269,23.91626],[52.132622,23.933611],[52.13448,23.94289],[52.136089,23.951241],[52.136509,23.953409],[52.142052,23.98245],[52.146332,24.00466],[52.150719,24.02721],[52.15287,24.038589],[52.153019,24.03994],[52.153469,24.04154],[52.156288,24.056391],[52.156681,24.058439],[52.161079,24.08123],[52.162399,24.089331],[52.174301,24.15033],[52.17466,24.152189],[52.174889,24.153469],[52.175442,24.15617],[52.18956,24.230101],[52.196079,24.264339],[52.199089,24.28031],[52.19923,24.281],[52.19944,24.282619],[52.199551,24.28367],[52.199581,24.284281],[52.199612,24.284599],[52.19965,24.28643],[52.199619,24.288059],[52.19957,24.28903],[52.199471,24.290131],[52.19928,24.291771],[52.199009,24.293159],[52.198792,24.29434],[52.198509,24.29549],[52.197891,24.297371],[52.197289,24.29891],[52.196892,24.29986],[52.196411,24.300791],[52.195591,24.302271],[52.188881,24.313999],[52.183769,24.323021],[52.183262,24.324051],[52.182659,24.32563],[52.181591,24.328341],[52.181141,24.32947],[52.179619,24.33334],[52.178951,24.33515],[52.178391,24.337999],[52.178268,24.339239],[52.17823,24.340731],[52.17831,24.34374],[52.179089,24.34906],[52.183552,24.378071],[52.183861,24.38007],[52.18441,24.38382],[52.18655,24.39747],[52.186989,24.399099],[52.187328,24.400299],[52.187931,24.40176],[52.18853,24.40288],[52.189732,24.40468],[52.20063,24.41729],[52.20261,24.4191],[52.204411,24.42038],[52.206039,24.42116],[52.211021,24.422621],[52.212681,24.42293],[52.214001,24.42318],[52.215591,24.42333],[52.217979,24.423161],[52.2192,24.42297],[52.22105,24.422831],[52.222321,24.42293],[52.22385,24.423321],[52.225868,24.42404],[52.228271,24.425619],[52.230419,24.427509],[52.231529,24.428801],[52.232738,24.430429],[52.233681,24.43189],[52.235142,24.434719],[52.23634,24.437719],[52.241661,24.452061],[52.242008,24.453091],[52.253422,24.4839],[52.26458,24.51351],[52.268871,24.525961],[52.269901,24.529051],[52.271702,24.53377],[52.28355,24.560369],[52.285519,24.564409],[52.287491,24.567841],[52.292042,24.574789],[52.306461,24.59617],[52.30748,24.59763],[52.30904,24.599939],[52.319759,24.616079],[52.32431,24.622601],[52.330669,24.632299],[52.33255,24.635481],[52.335209,24.64028],[52.337109,24.64397],[52.342079,24.654699],[52.343632,24.65839],[52.345772,24.66363],[52.349812,24.673929],[52.350559,24.676041],[52.35154,24.67881],[52.353062,24.68375],[52.354408,24.688789],[52.357021,24.69972],[52.35873,24.707319],[52.362679,24.72423],[52.363628,24.72757],[52.364658,24.730659],[52.367229,24.736759],[52.368778,24.739759],[52.373501,24.74791],[52.38131,24.761391],[52.383621,24.765249],[52.388451,24.773621],[52.38855,24.77379],[52.39101,24.77809],[52.393539,24.78227],[52.3965,24.78685],[52.41954,24.822229],[52.422569,24.827021],[52.424461,24.830351],[52.426479,24.834499],[52.427849,24.83754],[52.429131,24.840481],[52.430511,24.84441],[52.4314,24.8477],[52.441212,24.883829],[52.44294,24.88942],[52.443958,24.89241],[52.445389,24.896049],[52.44688,24.89949],[52.448021,24.90184],[52.449162,24.904119],[52.451,24.907551],[52.453011,24.910851],[52.455921,24.9151],[52.461411,24.922119],[52.467789,24.93049],[52.470421,24.934071],[52.473919,24.93903],[52.476212,24.942381],[52.479328,24.947491],[52.482948,24.95442],[52.48391,24.956329],[52.48698,24.96279],[52.48798,24.964991],[52.48925,24.967751],[52.490189,24.96986],[52.492401,24.97484],[52.492649,24.975401],[52.49403,24.978621],[52.49469,24.980169],[52.496922,24.98489],[52.498718,24.988501],[52.519588,25.0278],[52.520592,25.02973],[52.521301,25.031099],[52.52507,25.03837],[52.527649,25.04274],[52.52961,25.0455],[52.53075,25.046949],[52.53273,25.04933],[52.534431,25.051411],[52.5364,25.053301],[52.539749,25.056129],[52.541809,25.05759],[52.545658,25.059971],[52.547218,25.06094],[52.54744,25.061069],[52.549191,25.062229],[52.55151,25.064199],[52.551819,25.064489],[52.553219,25.06583],[52.553829,25.066351],[52.555779,25.068609],[52.558262,25.0716],[52.560169,25.07407],[52.561642,25.076389],[52.563782,25.07999],[52.56601,25.084459],[52.567131,25.08695],[52.568508,25.090639],[52.572731,25.10277],[52.57513,25.109541],[52.57803,25.11776],[52.579449,25.12146],[52.580349,25.1236],[52.582748,25.128571],[52.585499,25.1339],[52.587391,25.13707],[52.603531,25.16132],[52.60696,25.16728],[52.619831,25.19175],[52.62933,25.20981],[52.638729,25.2279],[52.642921,25.235781],[52.646118,25.24214],[52.648548,25.247339],[52.650021,25.250879],[52.65147,25.254431],[52.655708,25.26573],[52.657131,25.26956],[52.663799,25.28743],[52.670471,25.305389],[52.67519,25.317829],[52.676392,25.32058],[52.677589,25.323071],[52.678539,25.324949],[52.685322,25.33684],[52.686031,25.338091],[52.686932,25.33967],[52.690979,25.34693],[52.694809,25.35368],[52.696079,25.356079],[52.69733,25.35858],[52.698761,25.36157],[52.6996,25.363581],[52.701019,25.366541],[52.701279,25.3671],[52.705292,25.375839],[52.7066,25.37879],[52.70787,25.38176],[52.708672,25.383801],[52.709251,25.385441],[52.709419,25.38592],[52.709709,25.38682],[52.710079,25.388],[52.711231,25.392071],[52.716991,25.4137],[52.7183,25.418739],[52.720131,25.42551],[52.721111,25.428499],[52.739941,25.479],[52.741951,25.48362],[52.744061,25.487761],[52.746841,25.49316],[52.751289,25.501659],[52.755569,25.509899],[52.759911,25.518129],[52.764179,25.526369],[52.766369,25.530569],[52.768459,25.534611],[52.771091,25.53908],[52.77211,25.540621],[52.774021,25.54327],[52.775429,25.545059],[52.776859,25.546721],[52.779099,25.549101],[52.782619,25.552271],[52.783932,25.5534],[52.792992,25.56155],[52.80965,25.57682],[52.814861,25.581841],[52.819981,25.586889],[52.82056,25.58742],[52.823421,25.59034],[52.82497,25.59215],[52.82642,25.59403],[52.827709,25.59584],[52.829689,25.59893],[52.831699,25.6026],[52.848228,25.63558],[52.84856,25.636141],[52.851398,25.64073],[52.85294,25.64296],[52.854359,25.64463],[52.85601,25.64657],[52.856602,25.647209],[52.85952,25.65036],[52.862049,25.652399],[52.86385,25.65369],[52.87775,25.66201],[52.87981,25.66321],[52.909302,25.680429],[52.915451,25.684071],[52.91869,25.686131],[52.92049,25.68742],[52.922901,25.68939],[52.924961,25.69128],[52.942982,25.70956],[52.96899,25.73591],[52.97192,25.73875],[52.972931,25.73988],[52.974899,25.741449],[52.977322,25.743719],[52.979759,25.74596],[52.99173,25.756599],[52.995258,25.760201],[53.016541,25.78355],[53.019798,25.787149],[53.022121,25.7899],[53.023918,25.792471],[53.025719,25.795219],[53.027699,25.798651],[53.0289,25.80097],[53.03817,25.820801],[53.04126,25.827749],[53.04269,25.8312],[53.046341,25.83993],[53.048012,25.843889],[53.050179,25.84898],[53.05201,25.85334],[53.052311,25.85404],[53.05312,25.85597],[53.053879,25.857531],[53.05418,25.85813],[53.05508,25.85981],[53.055511,25.86055],[53.055969,25.861361],[53.057049,25.86311],[53.05798,25.8645],[53.058998,25.865959],[53.062111,25.870159],[53.065109,25.8743],[53.066399,25.87586],[53.067471,25.877171],[53.068508,25.878229],[53.07008,25.87978],[53.071529,25.88101],[53.072281,25.88184],[53.073898,25.88307],[53.075279,25.88385],[53.077129,25.88483],[53.079182,25.88578],[53.080479,25.8862],[53.083389,25.88695],[53.085979,25.8874],[53.087601,25.88747],[53.089241,25.8874],[53.09404,25.886721],[53.0961,25.886629],[53.096451,25.886629],[53.09988,25.88706],[53.102112,25.887569],[53.103748,25.88818],[53.105808,25.88912],[53.108028,25.89032],[53.112411,25.89315],[53.115761,25.895639],[53.119362,25.898821],[53.121681,25.90131],[53.123829,25.903879],[53.126228,25.907141],[53.132069,25.916241],[53.13332,25.918301],[53.13414,25.91993],[53.134918,25.92161],[53.135571,25.92318],[53.1362,25.92485],[53.13686,25.926741],[53.137531,25.92907],[53.13768,25.929621],[53.138199,25.93149],[53.143181,25.94968],[53.14468,25.955219],[53.145969,25.959669],[53.147171,25.96319],[53.148121,25.96542],[53.149151,25.967569],[53.150089,25.96937],[53.151649,25.971849],[53.15337,25.974279],[53.155159,25.97641],[53.157219,25.97847],[53.15992,25.981119],[53.1605,25.98172],[53.161949,25.983271],[53.162571,25.983999],[53.163448,25.985069],[53.16431,25.986231],[53.164928,25.98716],[53.165539,25.988171],[53.166439,25.989811],[53.167469,25.99184],[53.168159,25.993349],[53.169361,25.996111],[53.170769,25.99935],[53.172871,26.004181],[53.17337,26.005409],[53.17395,26.006849],[53.17477,26.00901],[53.175369,26.010719],[53.176022,26.012739],[53.177299,26.01713],[53.178398,26.020969],[53.17889,26.022751],[53.17992,26.02721],[53.18042,26.03027],[53.180641,26.031981],[53.180962,26.03536],[53.18111,26.03808],[53.18124,26.04175],[53.181339,26.044069],[53.181412,26.045179],[53.181511,26.04649],[53.181641,26.047819],[53.181862,26.049601],[53.182152,26.0516],[53.18261,26.05405],[53.183041,26.056061],[53.183689,26.05863],[53.184799,26.06218],[53.185841,26.06506],[53.186329,26.06621],[53.18679,26.067221],[53.18766,26.06904],[53.190399,26.073931],[53.191769,26.076349],[53.19278,26.078159],[53.193851,26.08016],[53.194691,26.08189],[53.195339,26.08326],[53.199032,26.09133],[53.202541,26.098961],[53.205929,26.106091],[53.20739,26.10952],[53.208809,26.113569],[53.2094,26.115471],[53.210152,26.118019],[53.21088,26.120831],[53.211411,26.12294],[53.214512,26.135269],[53.21537,26.138359],[53.216911,26.14283],[53.218201,26.146351],[53.220181,26.150721],[53.221458,26.15321],[53.222752,26.155701],[53.225071,26.159559],[53.231251,26.16943],[53.233479,26.17347],[53.235538,26.177759],[53.238289,26.184879],[53.25219,26.22514],[53.252789,26.2272],[53.254162,26.231581],[53.256481,26.24033],[53.265919,26.283159],[53.266911,26.28706],[53.26712,26.28784],[53.267841,26.290371],[53.268761,26.293369],[53.26973,26.29624],[53.270748,26.29887],[53.271671,26.301069],[53.27219,26.302299],[53.284641,26.32745],[53.286011,26.33037],[53.287338,26.33342],[53.289612,26.33955],[53.298111,26.368389],[53.2994,26.37191],[53.300369,26.374399],[53.301029,26.37586],[53.303261,26.380489],[53.304722,26.38315],[53.306862,26.386669],[53.32317,26.41036],[53.327122,26.41663],[53.333561,26.42787],[53.34557,26.44907],[53.353561,26.46315],[53.36377,26.481091],[53.38026,26.5079],[53.382992,26.512329],[53.384769,26.51553],[53.385658,26.51713],[53.388828,26.52306],[53.403172,26.549919],[53.410461,26.5634],[53.41235,26.56649],[53.413979,26.56889],[53.416801,26.57254],[53.419128,26.575069],[53.421341,26.57732],[53.42445,26.57979],[53.444881,26.594299],[53.445061,26.594469],[53.448471,26.597139],[53.450371,26.598591],[53.454659,26.60228],[53.47768,26.625601],[53.478031,26.62594],[53.478981,26.626881],[53.485222,26.633181],[53.488049,26.63652],[53.489861,26.63876],[53.492352,26.642191],[53.494888,26.646099],[53.508911,26.67008],[53.509418,26.67103],[53.511311,26.674629],[53.512939,26.678129],[53.514229,26.68124],[53.515598,26.68502],[53.51675,26.68894],[53.52256,26.710939],[53.525829,26.724689],[53.52702,26.72982],[53.528221,26.73597],[53.52869,26.738371],[53.529221,26.74115],[53.529961,26.745029],[53.530151,26.745899],[53.532902,26.76289],[53.533401,26.76598],[53.535519,26.779091],[53.536121,26.78458],[53.536461,26.789391],[53.53664,26.79497],[53.53664,26.7978],[53.536251,26.805441],[53.53595,26.80879],[53.535339,26.813669],[53.534401,26.819],[53.534229,26.819771],[53.530708,26.83737],[53.530209,26.83996],[53.52985,26.8426],[53.52951,26.84527],[53.529251,26.849039],[53.529171,26.852131],[53.529289,26.856291],[53.529591,26.86054],[53.530048,26.86355],[53.530369,26.86561],[53.53059,26.86692],[53.531738,26.872299],[53.536381,26.8929],[53.538391,26.90213],[53.543839,26.9268],[53.551048,26.95891],[53.551739,26.961479],[53.552341,26.963369],[53.55397,26.96689],[53.556889,26.9729],[53.569759,26.99976],[53.584961,27.03109],[53.588219,27.037609],[53.58942,27.03907],[53.590111,27.039761],[53.59095,27.040529],[53.592159,27.04105],[53.595341,27.04215],[53.595509,27.04221],[53.598179,27.043249],[53.60865,27.047779],[53.61459,27.050211],[53.619888,27.05237],[53.625561,27.05632],[53.642429,27.06823],[53.649181,27.073],[53.650631,27.074301],[53.651821,27.07575],[53.652611,27.076799],[53.654018,27.0788],[53.655418,27.08147],[53.656712,27.08456],[53.65757,27.087391],[53.65834,27.090401],[53.659031,27.095289],[53.659199,27.097521],[53.65937,27.11211],[53.659458,27.11709],[53.65971,27.12756],[53.660141,27.132629],[53.661091,27.137951],[53.661598,27.14044],[53.663151,27.14567],[53.666531,27.155149],[53.674389,27.17734],[53.675251,27.1798],[53.675869,27.182501],[53.676491,27.18531],[53.67712,27.189251],[53.677551,27.19454],[53.67757,27.19717],[53.677399,27.20146],[53.676708,27.20841],[53.676109,27.216311],[53.675758,27.223089],[53.675591,27.230471],[53.675758,27.243179],[53.676022,27.247549],[53.676449,27.25416],[53.676971,27.26008],[53.678001,27.267981],[53.679451,27.277531],[53.685551,27.31776],[53.686409,27.32394],[53.688721,27.340521],[53.691151,27.358589],[53.691441,27.36087],[53.694908,27.38806],[53.697571,27.409691],[53.698601,27.415951],[53.699711,27.42239],[53.701248,27.42951],[53.702412,27.434111],[53.703892,27.439819],[53.709179,27.45775],[53.709728,27.459539],[53.710258,27.461411],[53.723,27.503969],[53.723629,27.506109],[53.72496,27.51058],[53.72691,27.517099],[53.727348,27.51852],[53.72789,27.520281],[53.729149,27.52442],[53.729729,27.526529],[53.730129,27.528099],[53.73082,27.53133],[53.731548,27.534981],[53.73214,27.53829],[53.732651,27.54188],[53.733139,27.54612],[53.734119,27.55578],[53.736309,27.57708],[53.73687,27.58239],[53.737789,27.5914],[53.738548,27.59878],[53.739639,27.609711],[53.740021,27.61257],[53.740139,27.613449],[53.740749,27.61706],[53.741371,27.620041],[53.742371,27.62392],[53.743832,27.628731],[53.745338,27.632971],[53.746071,27.634689],[53.746868,27.6364],[53.747452,27.637609],[53.748058,27.63879],[53.749298,27.641029],[53.751671,27.64571],[53.752972,27.64875],[53.754261,27.65201],[53.75613,27.657351],[53.75626,27.657721],[53.756908,27.659731],[53.757381,27.6609],[53.7579,27.66235],[53.75832,27.663469],[53.759029,27.665319],[53.759819,27.66711],[53.7607,27.669029],[53.76162,27.67108],[53.762192,27.67214],[53.762901,27.673441],[53.78426,27.712919],[53.786491,27.71736],[53.78846,27.721979],[53.790089,27.726471],[53.79097,27.72916],[53.791382,27.73045],[53.79229,27.733801],[53.793221,27.73777],[53.793499,27.73922],[53.793591,27.739651],[53.793678,27.740191],[53.797211,27.759199],[53.797871,27.76277],[53.79966,27.77269],[53.799881,27.773951],[53.80064,27.778521],[53.802368,27.786659],[53.803139,27.78932],[53.804249,27.793011],[53.80431,27.79318],[53.804878,27.794809],[53.805222,27.795771],[53.80621,27.798479],[53.807301,27.801189],[53.807899,27.80257],[53.80859,27.80405],[53.809689,27.806351],[53.811291,27.80949],[53.813919,27.81415],[53.814121,27.81451],[53.81707,27.81988],[53.81773,27.82114],[53.825401,27.835051],[53.829479,27.842819],[53.833488,27.85062],[53.84153,27.866261],[53.84193,27.86705],[53.843239,27.86961],[53.843891,27.87084],[53.84454,27.872101],[53.845829,27.87459],[53.848412,27.879601],[53.849861,27.882389],[53.85133,27.885229],[53.854252,27.89086],[53.8601,27.902121],[53.861439,27.90472],[53.861599,27.90501],[53.861832,27.90547],[53.863529,27.90876],[53.867081,27.915569],[53.868511,27.91836],[53.86998,27.92103],[53.871288,27.923189],[53.87262,27.925261],[53.874321,27.92758],[53.87606,27.929779],[53.87867,27.93269],[53.878841,27.93284],[53.879501,27.933479],[53.88142,27.93531],[53.88348,27.936951],[53.885021,27.938061],[53.88905,27.94046],[53.891708,27.941771],[53.900379,27.94578],[53.90905,27.949909],[53.92561,27.957621],[53.929649,27.95952],[53.93251,27.960819],[53.935322,27.962351],[53.9361,27.96287],[53.93803,27.96422],[53.939861,27.96578],[53.943039,27.96896],[53.945961,27.972651],[53.946449,27.9734],[53.948139,27.976049],[53.948669,27.97698],[53.949188,27.97789],[53.949478,27.978399],[53.951279,27.98192],[53.952648,27.98527],[53.954319,27.98984],[53.955662,27.99394],[53.963131,28.020201],[53.967251,28.03454],[53.97094,28.047319],[53.973339,28.05479],[53.979519,28.07144],[53.98209,28.078051],[53.98476,28.08552],[53.986301,28.09041],[53.9869,28.09239],[53.98888,28.09968],[53.989651,28.103109],[53.992908,28.116159],[53.995659,28.12775],[53.99601,28.129181],[53.997028,28.13341],[53.998138,28.137791],[54.000198,28.144911],[54.001411,28.148689],[54.003471,28.154779],[54.005531,28.16062],[54.007931,28.167139],[54.009392,28.17161],[54.01128,28.17779],[54.011459,28.178431],[54.012642,28.18281],[54.013149,28.18469],[54.01342,28.18568],[54.014881,28.19212],[54.015739,28.19615],[54.01757,28.206301],[54.01849,28.21307],[54.019348,28.22019],[54.020149,28.22949],[54.020199,28.23004],[54.02026,28.230841],[54.025688,28.30113],[54.02647,28.30962],[54.026981,28.313141],[54.02906,28.32885],[54.03334,28.357349],[54.033852,28.36507],[54.035309,28.373911],[54.035309,28.374081],[54.037109,28.38241],[54.039768,28.39279],[54.041309,28.398251],[54.045609,28.413481],[54.04776,28.420601],[54.049469,28.425579],[54.050381,28.427641],[54.052132,28.431589],[54.054089,28.435329],[54.058441,28.443689],[54.062519,28.4515],[54.06673,28.458969],[54.068951,28.46274],[54.07069,28.465349],[54.07119,28.466089],[54.075909,28.47262],[54.08123,28.47879],[54.083618,28.481319],[54.090328,28.488411],[54.119419,28.518909],[54.120449,28.519991],[54.123631,28.523769],[54.132729,28.535789],[54.137619,28.54188],[54.141651,28.546431],[54.14526,28.550119],[54.148689,28.553471],[54.153591,28.55793],[54.157619,28.56119],[54.166599,28.56822],[54.172371,28.572741],[54.174809,28.574551],[54.177021,28.576191],[54.179588,28.5781],[54.183971,28.581619],[54.18663,28.58419],[54.194271,28.59235],[54.194778,28.592859],[54.207661,28.60651],[54.209042,28.60816],[54.211609,28.611231],[54.213921,28.614321],[54.217701,28.61964],[54.225941,28.632429],[54.237782,28.650801],[54.239159,28.652691],[54.242161,28.65612],[54.245602,28.65913],[54.24791,28.660931],[54.250912,28.662531],[54.251759,28.662979],[54.257092,28.665819],[54.258808,28.666759],[54.25959,28.66728],[54.260441,28.668051],[54.261471,28.669081],[54.262852,28.670799],[54.264141,28.672859],[54.265079,28.67457],[54.266201,28.677059],[54.266911,28.679251],[54.267231,28.680241],[54.268341,28.685101],[54.269032,28.688141],[54.26947,28.691031],[54.269539,28.691481],[54.269588,28.691971],[54.270061,28.69663],[54.270061,28.7071],[54.270111,28.708799],[54.27026,28.710541],[54.270401,28.711769],[54.270569,28.712681],[54.270908,28.71414],[54.271351,28.715691],[54.27232,28.718201],[54.272541,28.718781],[54.282761,28.738779],[54.28997,28.752939],[54.291,28.755939],[54.291599,28.758169],[54.291859,28.761259],[54.291931,28.763109],[54.29155,28.77039],[54.29108,28.780661],[54.29015,28.800529],[54.289959,28.804581],[54.289879,28.806379],[54.289688,28.810459],[54.289631,28.811729],[54.28904,28.8241],[54.288971,28.826241],[54.288971,28.82822],[54.289219,28.83215],[54.290699,28.85079],[54.291061,28.86319],[54.291309,28.87359],[54.29155,28.876591],[54.292801,28.884689],[54.295979,28.904261],[54.297779,28.916269],[54.29821,28.919451],[54.29855,28.923229],[54.300251,28.947069],[54.30027,28.948721],[54.300468,28.950411],[54.301041,28.95756],[54.301842,28.969],[54.301991,28.97043],[54.30262,28.97678],[54.30302,28.979361],[54.30756,29.00271],[54.308418,29.007339],[54.30928,29.01326],[54.31057,29.022791],[54.3116,29.029831],[54.31271,29.036091],[54.31366,29.04081],[54.31572,29.04871],[54.318378,29.056259],[54.331249,29.092911],[54.334259,29.099689],[54.3358,29.10261],[54.336319,29.10347],[54.339409,29.10836],[54.345329,29.11635],[54.347988,29.120119],[54.349541,29.12261],[54.35194,29.127251],[54.35434,29.13282],[54.355801,29.1366],[54.362148,29.155661],[54.362839,29.15814],[54.364391,29.16415],[54.364811,29.166031],[54.36499,29.167061],[54.36573,29.171209],[54.366531,29.17643],[54.370911,29.20389],[54.371681,29.209299],[54.3722,29.21393],[54.37244,29.217501],[54.372532,29.220209],[54.37252,29.22753],[54.371471,29.281111],[54.371391,29.285179],[54.371319,29.28879],[54.37125,29.291611],[54.37133,29.29336],[54.371422,29.295219],[54.37159,29.297819],[54.371891,29.300289],[54.37254,29.304399],[54.37331,29.30826],[54.374168,29.3111],[54.374729,29.312901],[54.375938,29.316811],[54.377258,29.321051],[54.377522,29.32234],[54.378811,29.3274],[54.379921,29.332979],[54.380428,29.336161],[54.380871,29.338989],[54.384121,29.36319],[54.38438,29.36491],[54.385578,29.37075],[54.39082,29.39521],[54.395538,29.417101],[54.396999,29.42594],[54.397598,29.42997],[54.400002,29.45031],[54.400139,29.4513],[54.401031,29.457689],[54.401981,29.46336],[54.403011,29.46817],[54.406269,29.48439],[54.40765,29.49065],[54.408932,29.49555],[54.409962,29.49881],[54.412708,29.506189],[54.419231,29.52121],[54.419899,29.523069],[54.421791,29.52866],[54.42292,29.532749],[54.424809,29.541121],[54.4291,29.5606],[54.430389,29.56739],[54.431252,29.57262],[54.43219,29.579491],[54.433311,29.588181],[54.433491,29.589689],[54.434528,29.596939],[54.435322,29.60264],[54.435619,29.60507],[54.436909,29.61408],[54.43708,29.615191],[54.437241,29.616381],[54.437531,29.618191],[54.438141,29.621481],[54.43848,29.623091],[54.43895,29.62516],[54.439571,29.627609],[54.439899,29.62882],[54.4403,29.63028],[54.44136,29.63376],[54.442451,29.63719],[54.444641,29.644039],[54.447151,29.652069],[54.447788,29.654169],[54.448349,29.655951],[54.449291,29.65892],[54.450218,29.66189],[54.451248,29.665831],[54.456188,29.687019],[54.45718,29.69128],[54.457722,29.693911],[54.458038,29.695749],[54.458679,29.69985],[54.45927,29.704639],[54.459541,29.70756],[54.460072,29.71306],[54.460258,29.715099],[54.461971,29.735531],[54.462318,29.738621],[54.46262,29.74155],[54.463428,29.746429],[54.46386,29.74917],[54.464981,29.754169],[54.46627,29.759899],[54.474419,29.79578],[54.47678,29.806629],[54.477001,29.807631],[54.477772,29.81303],[54.478512,29.819361],[54.479141,29.824711],[54.479389,29.829189],[54.479401,29.832861],[54.479401,29.835779],[54.479221,29.838869],[54.47897,29.84136],[54.478539,29.84436],[54.4776,29.84943],[54.476601,29.85458],[54.47485,29.86367],[54.474331,29.86685],[54.47393,29.870871],[54.47348,29.876631],[54.473301,29.882641],[54.473301,29.88702],[54.473549,29.892269],[54.473911,29.89637],[54.474331,29.90015],[54.475101,29.905821],[54.47588,29.911261],[54.476009,29.91217],[54.476131,29.912979],[54.477509,29.921949],[54.481918,29.952721],[54.482849,29.95892],[54.484451,29.969681],[54.485748,29.978769],[54.491371,30.01828],[54.492378,30.02508],[54.492661,30.02648],[54.493229,30.02866],[54.4939,30.03088],[54.498699,30.047119],[54.49884,30.047621],[54.49926,30.049259],[54.499592,30.051069],[54.49976,30.052429],[54.500011,30.055189],[54.500301,30.060289],[54.501331,30.07649],[54.501949,30.08609],[54.50198,30.087179],[54.502239,30.089689],[54.502361,30.090799],[54.50425,30.10475],[54.504608,30.107281],[54.506271,30.11908],[54.50687,30.12211],[54.50737,30.12393],[54.507919,30.125839],[54.508739,30.128019],[54.51511,30.1404],[54.518089,30.14632],[54.52309,30.15601],[54.538921,30.187611],[54.542049,30.193951],[54.542679,30.195641],[54.543171,30.19755],[54.543339,30.19824],[54.543598,30.19936],[54.546089,30.2173],[54.54718,30.225519],[54.547581,30.228439],[54.547989,30.23138],[54.548382,30.23432],[54.549858,30.244499],[54.553299,30.269739],[54.553471,30.27051],[54.55373,30.271799],[54.554161,30.273689],[54.55484,30.27557],[54.555531,30.277031],[54.56171,30.28862],[54.56274,30.29068],[54.563511,30.29283],[54.564201,30.29463],[54.570549,30.314199],[54.57132,30.31609],[54.572262,30.31806],[54.575699,30.32493],[54.576469,30.32621],[54.577251,30.32733],[54.590641,30.34347],[54.5914,30.344391],[54.59483,30.34856],[54.599911,30.35471],[54.600761,30.355829],[54.60162,30.357109],[54.602482,30.35874],[54.603939,30.36286],[54.6096,30.379601],[54.618641,30.405649],[54.619301,30.407579],[54.619732,30.40913],[54.620029,30.41082],[54.620369,30.41293],[54.62162,30.424231],[54.62302,30.435459],[54.623508,30.438999],[54.623852,30.44174],[54.624538,30.446289],[54.62994,30.48938],[54.632351,30.508261],[54.635349,30.53229],[54.638962,30.56225],[54.641529,30.583191],[54.642479,30.591089],[54.64325,30.59547],[54.652691,30.63521],[54.656288,30.650311],[54.65913,30.66264],[54.669769,30.70816],[54.672771,30.720779],[54.675861,30.738199],[54.683159,30.780769],[54.683159,30.78112],[54.68359,30.785839],[54.685989,30.830641],[54.686119,30.8328],[54.68737,30.854071],[54.689079,30.883511],[54.689362,30.889811],[54.68943,30.891411],[54.689861,30.926941],[54.68993,30.93252],[54.690369,30.968229],[54.690708,30.981791],[54.690842,30.992599],[54.69091,30.99811],[54.690929,30.999861],[54.69099,31.000401],[54.69099,31.000641],[54.690948,31.00079],[54.690971,31.001591],[54.691109,31.014879],[54.69112,31.0201],[54.689701,31.05283],[54.689949,31.06406],[54.69099,31.07468],[54.70348,31.20154],[54.709801,31.244169],[54.710098,31.24548],[54.72105,31.283421],[54.722359,31.28828],[54.72567,31.30747],[54.729439,31.33021],[54.730431,31.336189],[54.735111,31.35618],[54.738861,31.372881],[54.742531,31.41223],[54.744179,31.42782],[54.749039,31.478109],[54.74955,31.48155],[54.751961,31.488119],[54.771992,31.53681],[54.786671,31.57107],[54.791,31.578859],[54.792702,31.58213],[54.794479,31.58531],[54.795181,31.58655],[54.79652,31.589029],[54.802349,31.599859],[54.80621,31.60693],[54.80685,31.60828],[54.807449,31.610001],[54.80798,31.612209],[54.810699,31.62418],[54.81295,31.63438],[54.81358,31.63641],[54.814232,31.63796],[54.81496,31.639339],[54.815788,31.640591],[54.83802,31.663321],[54.841209,31.666731],[54.842098,31.66818],[54.842949,31.67001],[54.843651,31.6724],[54.84396,31.67371],[54.844181,31.675091],[54.844349,31.677031],[54.84444,31.679331],[54.84465,31.68441],[54.846569,31.740999],[54.849239,31.8048],[54.850559,31.838461],[54.850788,31.844669],[54.851139,31.852501],[54.851139,31.854111],[54.8512,31.85553],[54.851311,31.857031],[54.85144,31.85841],[54.85149,31.85882],[54.851688,31.860241],[54.852032,31.861959],[54.859341,31.893641],[54.859699,31.89522],[54.860031,31.896851],[54.860298,31.89867],[54.860409,31.900021],[54.860729,31.907431],[54.863209,31.965019],[54.863461,31.97064],[54.86396,31.97884],[54.864151,31.98205],[54.865582,32.003571],[54.865761,32.00528],[54.86586,32.00592],[54.86607,32.007],[54.86644,32.00843],[54.870831,32.024979],[54.87233,32.030609],[54.878571,32.05394],[54.882,32.067009],[54.882839,32.070171],[54.883598,32.073101],[54.883839,32.074139],[54.88406,32.075291],[54.884701,32.07951],[54.88501,32.081261],[54.889851,32.10043],[54.89156,32.105839],[54.893639,32.111629],[54.894569,32.113979],[54.895279,32.115372],[54.896961,32.11755],[54.89856,32.11887],[54.908989,32.124649],[54.91114,32.12619],[54.912048,32.127312],[54.914181,32.130299],[54.92564,32.14669],[54.92709,32.14933],[54.93465,32.165771],[54.941029,32.179642],[54.942371,32.18211],[54.951599,32.195801],[54.955898,32.20388],[54.957008,32.205929],[54.984772,32.2495],[55.009338,32.288151],[55.014061,32.29557],[55.01635,32.299301],[55.017502,32.302029],[55.02364,32.323231],[55.028831,32.340839],[55.029331,32.342609],[55.029751,32.344479],[55.02998,32.34597],[55.030151,32.347591],[55.032341,32.372421],[55.033009,32.38018],[55.033112,32.381931],[55.033699,32.402451],[55.03381,32.404652],[55.033901,32.405529],[55.034019,32.4063],[55.03429,32.407921],[55.055199,32.499489],[55.055729,32.501888],[55.056099,32.504452],[55.056629,32.51738],[55.05714,32.530281],[55.05822,32.55682],[55.059029,32.576729],[55.059422,32.586262],[55.059818,32.595951],[55.059959,32.597309],[55.060169,32.598701],[55.060711,32.601089],[55.066109,32.62178],[55.072861,32.647812],[55.073879,32.65197],[55.076351,32.664532],[55.077229,32.66922],[55.078171,32.674419],[55.07835,32.676239],[55.078659,32.678799],[55.078911,32.681412],[55.079029,32.684189],[55.079021,32.687019],[55.07896,32.69241],[55.07901,32.69603],[55.07906,32.696899],[55.079109,32.697769],[55.07943,32.70303],[55.079578,32.70578],[55.07967,32.708408],[55.07967,32.7094],[55.079659,32.710388],[55.079651,32.712261],[55.079632,32.716011],[55.079201,32.743149],[55.079231,32.7444],[55.079319,32.745689],[55.080929,32.757801],[55.081959,32.764309],[55.085812,32.792412],[55.09552,32.86187],[55.100609,32.89822],[55.101082,32.90139],[55.103889,32.921909],[55.105289,32.931881],[55.107571,32.952911],[55.11404,33.01384],[55.11478,33.020802],[55.116661,33.038502],[55.118839,33.05909],[55.11903,33.06097],[55.120232,33.07328],[55.12038,33.074821],[55.122749,33.097221],[55.12476,33.11731],[55.127258,33.141972],[55.12812,33.150501],[55.128658,33.155849],[55.12941,33.164082],[55.129551,33.167191],[55.130001,33.171902],[55.130329,33.174858],[55.13203,33.194359],[55.132179,33.19561],[55.132408,33.196869],[55.13242,33.196911],[55.133831,33.202961],[55.134621,33.206329],[55.13612,33.212269],[55.136971,33.21603],[55.138378,33.226891],[55.13974,33.23716],[55.140041,33.239479],[55.140072,33.239712],[55.140381,33.242279],[55.141708,33.25333],[55.142391,33.260139],[55.142422,33.26049],[55.14365,33.273491],[55.14463,33.283451],[55.144981,33.286999],[55.145432,33.290569],[55.145931,33.294651],[55.1493,33.320049],[55.15123,33.334499],[55.152111,33.340832],[55.15263,33.344742],[55.15284,33.346119],[55.15303,33.347069],[55.153801,33.350552],[55.157761,33.367619],[55.162682,33.38887],[55.16927,33.417389],[55.174042,33.43829],[55.17432,33.439339],[55.177589,33.450409],[55.178169,33.452431],[55.178768,33.454479],[55.17944,33.456749],[55.181782,33.46479],[55.182529,33.467381],[55.18285,33.468639],[55.183102,33.469921],[55.183289,33.471249],[55.183418,33.472778],[55.18343,33.474361],[55.183338,33.481991],[55.183201,33.492451],[55.182751,33.514259],[55.18269,33.517471],[55.182621,33.521042],[55.18235,33.535782],[55.181499,33.586811],[55.181259,33.603691],[55.181171,33.605801],[55.18055,33.617359],[55.180248,33.624809],[55.179798,33.634941],[55.179279,33.646099],[55.17955,33.6507],[55.180851,33.665352],[55.181721,33.67519],[55.185951,33.722252],[55.186932,33.733372],[55.188869,33.755901],[55.19022,33.769772],[55.19437,33.816299],[55.197609,33.853371],[55.198872,33.86784],[55.19912,33.874069],[55.199169,33.87693],[55.199551,33.897419],[55.19949,33.902531],[55.19912,33.9081],[55.197571,33.918049],[55.19138,33.95414],[55.190868,33.95586],[55.190411,33.975052],[55.18998,33.992599],[55.18977,34.000889],[55.189209,34.021259],[55.188301,34.037731],[55.18737,34.057541],[55.187382,34.059479],[55.187531,34.061371],[55.203011,34.140369],[55.20351,34.14296],[55.203991,34.144909],[55.20462,34.14682],[55.20575,34.149281],[55.205898,34.14962],[55.210041,34.158669],[55.2104,34.159451],[55.21236,34.171219],[55.220131,34.21777],[55.22076,34.222012],[55.22147,34.232059],[55.221619,34.234131],[55.22179,34.235569],[55.22208,34.237122],[55.222641,34.239288],[55.227921,34.257561],[55.228619,34.259899],[55.231991,34.271622],[55.24136,34.306641],[55.241661,34.307739],[55.24202,34.309109],[55.242371,34.310398],[55.243389,34.314209],[55.2435,34.314339],[55.245979,34.323818],[55.249329,34.336559],[55.249599,34.337589],[55.260361,34.372532],[55.261391,34.375931],[55.2654,34.389042],[55.266911,34.393532],[55.269669,34.401371],[55.288132,34.453289],[55.294189,34.472851],[55.315491,34.531731],[55.32428,34.562809],[55.356602,34.639191],[55.362381,34.65646],[55.36401,34.661339],[55.366451,34.668381],[55.370159,34.677132],[55.37426,34.68692],[55.383419,34.70425],[55.389469,34.713871],[55.41082,34.76725],[55.418419,34.78442],[55.425541,34.80146],[55.433361,34.82016],[55.43346,34.8204],[55.446468,34.851879],[55.448391,34.856579],[55.45153,34.864239],[55.470219,34.909729],[55.487339,34.948181],[55.49308,34.976509],[55.496552,35.007629],[55.496891,35.010681],[55.497028,35.011959],[55.49752,35.01646],[55.49955,35.036381],[55.499592,35.036758],[55.503189,35.101479],[55.505718,35.117962],[55.505718,35.120701],[55.503521,35.144611],[55.499298,35.190571],[55.499981,35.215981],[55.49902,35.240929],[55.498859,35.24894],[55.491619,35.31348],[55.491409,35.35181],[55.491329,35.367901],[55.491421,35.397419],[55.49123,35.400509],[55.487518,35.416309],[55.48074,35.444111],[55.48024,35.446171],[55.474239,35.491421],[55.471531,35.511909],[55.470581,35.519581],[55.47044,35.52206],[55.470119,35.529282],[55.468689,35.557758],[55.466881,35.593349],[55.46558,35.618931],[55.464211,35.645908],[55.46402,35.649601],[55.462921,35.676449],[55.461948,35.701061],[55.465279,35.759811],[55.46529,35.761002],[55.465351,35.769691],[55.465382,35.77354],[55.464821,35.826988],[55.464802,35.828949],[55.464779,35.83086],[55.464771,35.8321],[55.464691,35.839359],[55.4646,35.847698],[55.46542,35.903252],[55.46558,35.913269],[55.465382,35.917561],[55.46402,35.94331],[55.45993,36.022961],[55.459179,36.03561],[55.457581,36.060638],[55.457581,36.06271],[55.457821,36.064789],[55.458118,36.066799],[55.458641,36.068619],[55.474209,36.110161],[55.474339,36.11058],[55.49065,36.16309],[55.494148,36.174358],[55.50119,36.207119],[55.50909,36.243801],[55.51041,36.24992],[55.510818,36.251862],[55.51379,36.26569],[55.522362,36.31168],[55.525181,36.326809],[55.525589,36.32901],[55.531239,36.359341],[55.535961,36.384621],[55.536018,36.384899],[55.536072,36.385201],[55.536709,36.388729],[55.538609,36.39875],[55.53883,36.39996],[55.539341,36.40274],[55.53973,36.404888],[55.540291,36.407959],[55.54216,36.417648],[55.54895,36.455029],[55.551121,36.483101],[55.55114,36.483269],[55.551151,36.483429],[55.55167,36.490059],[55.55621,36.54797],[55.556221,36.548161],[55.55801,36.571011],[55.55822,36.573589],[55.55896,36.582569],[55.564362,36.632759],[55.565071,36.639389],[55.56826,36.669849],[55.571011,36.695881],[55.571018,36.69603],[55.571079,36.69664],[55.571091,36.696739],[55.572319,36.708599],[55.572392,36.70932],[55.572491,36.710251],[55.573101,36.716228],[55.573471,36.719952],[55.575031,36.73521],[55.575729,36.74213],[55.576229,36.747021],[55.57666,36.751289],[55.578522,36.76976],[55.57893,36.773891],[55.581409,36.798882],[55.584068,36.824989],[55.587349,36.85857],[55.58794,36.864269],[55.588421,36.869068],[55.58881,36.872978],[55.589039,36.875259],[55.59066,36.891609],[55.591808,36.90316],[55.594059,36.925831],[55.595589,36.93972],[55.595779,36.941292],[55.59602,36.94323],[55.596539,36.94767],[55.59848,36.964432],[55.598991,36.96875],[55.60051,36.981628],[55.60228,36.996632],[55.602638,36.99966],[55.603119,37.004261],[55.603149,37.004681],[55.603199,37.0051],[55.603249,37.005459],[55.60331,37.005859],[55.603821,37.01012],[55.604,37.011539],[55.604519,37.015621],[55.60535,37.02277],[55.605911,37.02747],[55.609039,37.05463],[55.60976,37.061089],[55.610279,37.06546],[55.610531,37.06673],[55.611149,37.069778],[55.61121,37.070091],[55.612518,37.076752],[55.61248,37.077709],[55.613091,37.081009],[55.613289,37.081989],[55.61565,37.093441],[55.616119,37.09626],[55.616531,37.09869],[55.616909,37.101959],[55.62027,37.126701],[55.62133,37.13377],[55.622608,37.142799],[55.62299,37.14724],[55.623268,37.151451],[55.623901,37.161259],[55.624741,37.174],[55.625259,37.181801],[55.625439,37.184681],[55.62553,37.185589],[55.625839,37.188622],[55.626049,37.191921],[55.62619,37.19376],[55.626339,37.195271],[55.62648,37.196281],[55.626652,37.197441],[55.626869,37.198662],[55.627129,37.19978],[55.627392,37.200779],[55.627831,37.202209],[55.628361,37.203701],[55.628811,37.20483],[55.629269,37.205891],[55.629539,37.20652],[55.631119,37.209999],[55.63187,37.211639],[55.632359,37.212799],[55.633801,37.216019],[55.634998,37.21875],[55.635479,37.219841],[55.635929,37.22084],[55.636299,37.22168],[55.637501,37.2244],[55.63868,37.227039],[55.639858,37.229698],[55.64106,37.23241],[55.642269,37.23513],[55.64267,37.236141],[55.643509,37.238441],[55.64431,37.240719],[55.645939,37.245239],[55.646641,37.247131],[55.64769,37.250061],[55.648029,37.251019],[55.648281,37.251839],[55.648548,37.252762],[55.648689,37.253342],[55.649071,37.255032],[55.649429,37.25684],[55.650082,37.260521],[55.65052,37.262779],[55.651131,37.266102],[55.651451,37.26786],[55.652248,37.272171],[55.65284,37.275341],[55.653412,37.278389],[55.654259,37.28299],[55.655399,37.28931],[55.655602,37.29039],[55.655788,37.291409],[55.656269,37.293739],[55.656448,37.29435],[55.656658,37.295059],[55.657089,37.29631],[55.657379,37.296982],[55.657879,37.298019],[55.658489,37.299019],[55.65905,37.29977],[55.659611,37.300468],[55.66087,37.301861],[55.66206,37.303169],[55.662281,37.30341],[55.663811,37.30505],[55.664719,37.306],[55.665619,37.307011],[55.666908,37.308472],[55.66782,37.309441],[55.66853,37.310169],[55.669109,37.31081],[55.66951,37.311241],[55.670639,37.3125],[55.671421,37.31332],[55.67263,37.31464],[55.672989,37.315029],[55.67794,37.320431],[55.67857,37.321129],[55.679428,37.322071],[55.67984,37.322559],[55.680038,37.3228],[55.680191,37.322941],[55.683571,37.326599],[55.683819,37.32687],[55.685791,37.328991],[55.690022,37.333519],[55.693169,37.336971],[55.694759,37.338631],[55.69556,37.339531],[55.69595,37.34],[55.696331,37.340481],[55.696732,37.341011],[55.697109,37.341579],[55.697842,37.3428],[55.698311,37.34359],[55.698471,37.343861],[55.698639,37.344151],[55.698738,37.34433],[55.69949,37.34568],[55.69978,37.34621],[55.700371,37.34729],[55.701241,37.348869],[55.702839,37.351891],[55.703732,37.35355],[55.703949,37.353958],[55.704472,37.354939],[55.705002,37.3559],[55.705441,37.356682],[55.706081,37.357891],[55.706638,37.358891],[55.70705,37.35965],[55.70755,37.360569],[55.707878,37.36121],[55.708172,37.361801],[55.708382,37.36227],[55.70882,37.363319],[55.70911,37.36401],[55.709499,37.36504],[55.709728,37.36573],[55.70998,37.366482],[55.710281,37.367481],[55.710541,37.368431],[55.710812,37.36953],[55.71104,37.37059],[55.711269,37.3717],[55.711849,37.375118],[55.71209,37.376629],[55.71262,37.38015],[55.71286,37.381729],[55.712818,37.382339],[55.712799,37.382561],[55.712742,37.382771],[55.71244,37.38372],[55.712261,37.384258],[55.71199,37.38509],[55.711929,37.385281],[55.71167,37.386082],[55.71138,37.386688],[55.710949,37.387459],[55.710098,37.38821],[55.70993,37.388371],[55.709641,37.38863],[55.70837,37.39016],[55.707981,37.390572],[55.70681,37.392139],[55.70639,37.392712],[55.705299,37.394119],[55.704361,37.395302],[55.70406,37.39571],[55.702068,37.398418],[55.701469,37.399239],[55.700809,37.40015],[55.700291,37.400841],[55.699841,37.401459],[55.699261,37.40226],[55.698799,37.402901],[55.69754,37.404541],[55.693779,37.40976],[55.69265,37.41103],[55.692039,37.411659],[55.691422,37.412251],[55.690071,37.41328],[55.689751,37.413502],[55.689011,37.413952],[55.688309,37.41433],[55.687618,37.41465],[55.686611,37.41502],[55.686401,37.4151],[55.685848,37.41526],[55.685699,37.415272],[55.685081,37.415489],[55.684391,37.415779],[55.684059,37.415932],[55.683659,37.41613],[55.683281,37.41634],[55.68285,37.416599],[55.68243,37.41687],[55.68206,37.41713],[55.680611,37.418221],[55.67614,37.421558],[55.670879,37.425499],[55.669231,37.426739],[55.668152,37.427551],[55.66732,37.428162],[55.666191,37.429008],[55.66576,37.42934],[55.664509,37.430271],[55.664131,37.43058],[55.663528,37.431091],[55.66267,37.43187],[55.661491,37.432999],[55.66053,37.433929],[55.66013,37.434341],[55.659729,37.43478],[55.659309,37.435249],[55.659088,37.43549],[55.658169,37.436569],[55.656479,37.438549],[55.65451,37.440849],[55.65411,37.441319],[55.653751,37.44178],[55.652359,37.4436],[55.652111,37.44389],[55.65086,37.445358],[55.645191,37.451988],[55.643459,37.454021],[55.641281,37.45657],[55.639191,37.459019],[55.6385,37.459839],[55.637131,37.461441],[55.6366,37.462059],[55.635941,37.462818],[55.632431,37.466919],[55.631828,37.467621],[55.63158,37.467899],[55.630939,37.468651],[55.628601,37.471371],[55.627361,37.47282],[55.625629,37.474838],[55.620949,37.48032],[55.617222,37.48468],[55.6157,37.48645],[55.614529,37.48782],[55.61364,37.48885],[55.613361,37.489182],[55.611931,37.490841],[55.611519,37.491322],[55.610699,37.492279],[55.609539,37.493629],[55.608521,37.49482],[55.607571,37.49593],[55.60601,37.497749],[55.6035,37.500671],[55.60091,37.503681],[55.600288,37.504429],[55.599682,37.505211],[55.599121,37.505989],[55.59874,37.506592],[55.598339,37.507221],[55.59782,37.508129],[55.59745,37.508789],[55.597092,37.50948],[55.596691,37.510311],[55.596321,37.51115],[55.59586,37.512249],[55.595428,37.513359],[55.595081,37.51437],[55.594688,37.515591],[55.594349,37.516731],[55.59404,37.517948],[55.593811,37.518921],[55.592319,37.525131],[55.591541,37.528412],[55.59132,37.529339],[55.590912,37.53101],[55.59005,37.534599],[55.587421,37.545601],[55.587139,37.54678],[55.586491,37.549469],[55.584969,37.55584],[55.58287,37.564602],[55.582199,37.567421],[55.581779,37.56916],[55.580719,37.57357],[55.580261,37.57552],[55.579342,37.579361],[55.577278,37.58794],[55.577141,37.588551],[55.577,37.58918],[55.57687,37.589771],[55.576759,37.590408],[55.576641,37.591091],[55.576439,37.59227],[55.57634,37.592911],[55.576241,37.593521],[55.57616,37.594131],[55.576092,37.594742],[55.576019,37.59539],[55.57597,37.596008],[55.575932,37.59655],[55.57589,37.597099],[55.575809,37.598301],[55.575741,37.599659],[55.575611,37.601822],[55.575329,37.606709],[55.575241,37.608158],[55.574982,37.612598],[55.574921,37.613659],[55.574581,37.61935],[55.574409,37.62228],[55.573818,37.632408],[55.573681,37.63475],[55.573589,37.636292],[55.573471,37.638309],[55.57336,37.640308],[55.57325,37.64204],[55.57304,37.645771],[55.572929,37.647671],[55.57283,37.6492],[55.572639,37.652538],[55.572609,37.653061],[55.57254,37.654121],[55.572491,37.655071],[55.571991,37.6633],[55.57196,37.66394],[55.57193,37.664619],[55.571892,37.665298],[55.571869,37.665932],[55.571838,37.666599],[55.571831,37.667271],[55.571819,37.66795],[55.571819,37.66864],[55.571831,37.669312],[55.571861,37.669998],[55.57188,37.67067],[55.571918,37.671349],[55.571972,37.67202],[55.572029,37.672691],[55.57209,37.673359],[55.57217,37.67403],[55.57225,37.674702],[55.57233,37.675362],[55.572418,37.67601],[55.572529,37.67667],[55.57275,37.677952],[55.572861,37.678589],[55.573002,37.679241],[55.573139,37.679871],[55.573299,37.680489],[55.57346,37.68108],[55.573608,37.68166],[55.57375,37.68219],[55.573929,37.682758],[55.5741,37.683331],[55.57428,37.683868],[55.574459,37.68441],[55.574631,37.684891],[55.575432,37.687099],[55.575649,37.687721],[55.576092,37.688889],[55.577709,37.69323],[55.579571,37.698189],[55.581402,37.703121],[55.581951,37.704578],[55.582272,37.705448],[55.582729,37.70668],[55.584511,37.711472],[55.585201,37.71331],[55.585819,37.714989],[55.586071,37.715672],[55.58654,37.716949],[55.587009,37.71822],[55.58749,37.719452],[55.587688,37.719952],[55.588299,37.72142],[55.588951,37.723],[55.589619,37.724548],[55.59016,37.725842],[55.591499,37.729031],[55.591949,37.73011],[55.593449,37.733688],[55.59478,37.736851],[55.594959,37.737309],[55.5952,37.737869],[55.595829,37.739429],[55.599812,37.748901],[55.600319,37.750092],[55.600761,37.751122],[55.601151,37.752041],[55.60165,37.753132],[55.602089,37.75404],[55.602669,37.755161],[55.603168,37.756088],[55.6063,37.761768],[55.60696,37.762981],[55.612579,37.77314],[55.616131,37.779572],[55.616459,37.78017],[55.616638,37.780491],[55.617081,37.7813],[55.617619,37.78228],[55.618858,37.784519],[55.619438,37.785568],[55.619869,37.786461],[55.620838,37.788631],[55.621399,37.789799],[55.621929,37.790821],[55.622391,37.791649],[55.624439,37.795361],[55.62495,37.796268],[55.625351,37.796909],[55.62574,37.797508],[55.626129,37.7981],[55.62619,37.798199],[55.626411,37.79847],[55.62669,37.798851],[55.62711,37.79945],[55.627621,37.800201],[55.62772,37.800331],[55.63179,37.806599],[55.638611,37.817032],[55.63908,37.817719],[55.640419,37.819771],[55.640659,37.820141],[55.643909,37.825119],[55.645351,37.827309],[55.647419,37.83049],[55.648521,37.83213],[55.648972,37.832802],[55.649021,37.83287],[55.649658,37.833721],[55.650372,37.834641],[55.65123,37.835602],[55.65181,37.83617],[55.652519,37.8368],[55.653511,37.837551],[55.654282,37.838051],[55.65493,37.838428],[55.655941,37.83894],[55.656559,37.839191],[55.657131,37.83939],[55.65794,37.839581],[55.65889,37.839771],[55.65974,37.839859],[55.660549,37.839901],[55.661308,37.839901],[55.662201,37.839809],[55.662971,37.839668],[55.663738,37.83947],[55.664799,37.839111],[55.670181,37.837132],[55.679001,37.83392],[55.682739,37.832371],[55.68362,37.832031],[55.68544,37.83136],[55.687061,37.830761],[55.6875,37.830589],[55.687778,37.830502],[55.68898,37.83012],[55.690079,37.829849],[55.691051,37.829689],[55.692001,37.829571],[55.692879,37.829521],[55.693741,37.829529],[55.694759,37.82959],[55.69569,37.829708],[55.696659,37.82988],[55.697041,37.82999],[55.697418,37.83009],[55.697479,37.830109],[55.69804,37.830269],[55.698479,37.830421],[55.69883,37.83054],[55.69899,37.830608],[55.6996,37.830849],[55.70039,37.831211],[55.701149,37.831589],[55.704849,37.833591],[55.705349,37.833851],[55.707619,37.83506],[55.708229,37.835381],[55.709419,37.83601],[55.709961,37.8363],[55.71011,37.83638],[55.712391,37.837589],[55.71328,37.838032],[55.71402,37.838322],[55.714729,37.838558],[55.715511,37.838741],[55.71656,37.838909],[55.72023,37.839359],[55.72298,37.839691],[55.728729,37.840382],[55.731949,37.840771],[55.732861,37.84087],[55.734409,37.841068],[55.736671,37.841351],[55.74012,37.841801],[55.740929,37.841881],[55.74213,37.84201],[55.74361,37.842098],[55.745289,37.842159],[55.747231,37.842251],[55.748741,37.8423],[55.74939,37.842319],[55.749931,37.842361],[55.75071,37.842419],[55.752129,37.84251],[55.753551,37.84259],[55.75523,37.84272],[55.755501,37.842739],[55.757359,37.84288],[55.757561,37.84288],[55.757641,37.84288],[55.758911,37.842892],[55.759331,37.842899],[55.760319,37.84296],[55.760971,37.842991],[55.762878,37.843102],[55.76572,37.843239],[55.766689,37.843288],[55.76738,37.843319],[55.767891,37.843349],[55.768021,37.843361],[55.768501,37.843391],[55.770119,37.843491],[55.770489,37.843491],[55.77145,37.843491],[55.772919,37.843342],[55.774342,37.843208],[55.77499,37.84338],[55.775249,37.843491],[55.775452,37.843689],[55.776039,37.844742],[55.77623,37.844978],[55.77705,37.845612],[55.777222,37.845779],[55.777351,37.84594],[55.777531,37.846272],[55.777889,37.847328],[55.778801,37.85104],[55.779202,37.852638],[55.779339,37.853279],[55.779732,37.85498],[55.782631,37.867538],[55.782661,37.867661],[55.783169,37.869801],[55.783279,37.870251],[55.78421,37.874069],[55.784538,37.875488],[55.78471,37.87619],[55.784889,37.876949],[55.78561,37.880032],[55.786098,37.882141],[55.78651,37.883801],[55.786739,37.884609],[55.78746,37.88699],[55.788448,37.890148],[55.78949,37.893379],[55.789871,37.894581],[55.790169,37.89555],[55.790199,37.895641],[55.791199,37.8988],[55.792561,37.903049],[55.793041,37.904652],[55.793282,37.905579],[55.793419,37.906479],[55.793461,37.90691],[55.793468,37.907089],[55.79348,37.907341],[55.793499,37.907871],[55.793499,37.908539],[55.79351,37.916191],[55.793522,37.91724],[55.79353,37.918259],[55.793549,37.921631],[55.79361,37.92384],[55.793732,37.927231],[55.793892,37.931759],[55.79398,37.934212],[55.793991,37.934639],[55.794022,37.935371],[55.794041,37.936089],[55.794109,37.937531],[55.794331,37.942131],[55.794441,37.944149],[55.794559,37.946301],[55.794571,37.946381],[55.794628,37.947529],[55.794731,37.948898],[55.794922,37.950771],[55.79525,37.95372],[55.795479,37.955669],[55.795589,37.95673],[55.795792,37.958351],[55.79586,37.9589],[55.79657,37.965309],[55.79681,37.96735],[55.796989,37.96891],[55.79707,37.969711],[55.797421,37.972721],[55.798012,37.97784],[55.798828,37.984989],[55.798981,37.98632],[55.799068,37.987122],[55.799309,37.989269],[55.799389,37.989929],[55.79995,37.99477],[55.800179,37.996861],[55.800678,38.001228],[55.80167,38.009972],[55.802582,38.017769],[55.802711,38.018841],[55.80275,38.019249],[55.804459,38.034031],[55.804798,38.036968],[55.805111,38.03968],[55.806099,38.048382],[55.80703,38.056568],[55.807659,38.062111],[55.807812,38.0634],[55.80801,38.065159],[55.808071,38.065659],[55.8083,38.067612],[55.808739,38.071411],[55.80938,38.07703],[55.809841,38.081131],[55.809959,38.082241],[55.81068,38.088501],[55.810719,38.08881],[55.81139,38.094582],[55.812359,38.10323],[55.81303,38.1092],[55.813881,38.116638],[55.81868,38.15852],[55.819,38.161419],[55.820221,38.172131],[55.820431,38.17411],[55.82132,38.181702],[55.821442,38.182949],[55.821461,38.183102],[55.821499,38.18354],[55.82225,38.190128],[55.822361,38.191101],[55.823551,38.20171],[55.824329,38.208481],[55.824909,38.213718],[55.8251,38.215611],[55.825329,38.218121],[55.82571,38.223591],[55.82608,38.228828],[55.826542,38.23563],[55.826778,38.239231],[55.827629,38.25211],[55.82795,38.25732],[55.828331,38.263401],[55.828781,38.2701],[55.829109,38.275379],[55.829342,38.280701],[55.829639,38.28738],[55.829659,38.287949],[55.82967,38.288231],[55.830051,38.29707],[55.830502,38.30489],[55.83194,38.33017],[55.83239,38.338009],[55.83342,38.35574],[55.833599,38.358952],[55.83403,38.366322],[55.834381,38.372669],[55.834702,38.377949],[55.83482,38.380878],[55.834839,38.382549],[55.83477,38.383881],[55.834599,38.385471],[55.833721,38.390701],[55.832951,38.395111],[55.832809,38.395908],[55.831779,38.401699],[55.8312,38.40456],[55.83094,38.405682],[55.830631,38.406898],[55.82999,38.408829],[55.82972,38.409592],[55.829151,38.41106],[55.828331,38.412979],[55.826809,38.416618],[55.826031,38.418549],[55.825748,38.419392],[55.825581,38.419949],[55.825089,38.42218],[55.824982,38.42305],[55.824871,38.42392],[55.82478,38.425251],[55.82473,38.426109],[55.82473,38.427311],[55.82476,38.428051],[55.824749,38.428509],[55.82481,38.429169],[55.824989,38.430969],[55.825199,38.432529],[55.825371,38.433399],[55.825699,38.434738],[55.826401,38.43708],[55.828979,38.44458],[55.83062,38.449169],[55.83115,38.45071],[55.832279,38.453861],[55.832829,38.455311],[55.833351,38.456581],[55.835171,38.46122],[55.83836,38.47044],[55.83844,38.47068],[55.839958,38.474972],[55.84132,38.47831],[55.842251,38.480808],[55.843899,38.484718],[55.849442,38.496941],[55.850368,38.499081],[55.851299,38.501099],[55.852501,38.50391],[55.853249,38.505562],[55.853828,38.507092],[55.854752,38.510052],[55.855492,38.5131],[55.85606,38.516289],[55.856522,38.519611],[55.85675,38.522591],[55.85672,38.52573],[55.8564,38.533169],[55.855999,38.541279],[55.85569,38.548031],[55.855461,38.55389],[55.855381,38.556011],[55.85527,38.558819],[55.855179,38.56089],[55.855011,38.565231],[55.854752,38.572048],[55.854591,38.575989],[55.854359,38.580959],[55.854198,38.58392],[55.853821,38.590309],[55.85355,38.594608],[55.853199,38.600342],[55.852901,38.605492],[55.852631,38.609772],[55.852612,38.610142],[55.85257,38.611061],[55.852402,38.613701],[55.85223,38.6166],[55.8522,38.617729],[55.85215,38.62241],[55.8521,38.625439],[55.852089,38.627972],[55.85202,38.63319],[55.851978,38.6376],[55.851929,38.641621],[55.851929,38.641899],[55.851871,38.646179],[55.85181,38.651909],[55.851761,38.656639],[55.851719,38.657131],[55.851452,38.658691],[55.850929,38.660412],[55.849529,38.664989],[55.848789,38.667549],[55.84853,38.668701],[55.84827,38.670448],[55.848209,38.671341],[55.848202,38.672771],[55.848221,38.674671],[55.84837,38.681469],[55.848541,38.689041],[55.848701,38.69688],[55.848831,38.70393],[55.84893,38.708691],[55.849152,38.718632],[55.849251,38.72348],[55.849361,38.728699],[55.849468,38.73336],[55.849529,38.736099],[55.849739,38.747841],[55.84996,38.75782],[55.85006,38.762772],[55.850109,38.76535],[55.85014,38.766449],[55.85014,38.76672],[55.850151,38.767639],[55.850201,38.77037],[55.850281,38.774529],[55.850449,38.782619],[55.85054,38.787449],[55.850739,38.797169],[55.85083,38.801781],[55.850929,38.806992],[55.851028,38.811989],[55.851151,38.817791],[55.851349,38.826908],[55.851452,38.83194],[55.851559,38.836769],[55.851669,38.84137],[55.85183,38.850101],[55.851959,38.854939],[55.852131,38.85675],[55.85244,38.859402],[55.852741,38.861851],[55.85297,38.86401],[55.853298,38.86705],[55.853371,38.86755],[55.853649,38.86882],[55.853851,38.869652],[55.854881,38.8736],[55.855572,38.876369],[55.856621,38.880428],[55.857498,38.883888],[55.857632,38.884441],[55.857899,38.885509],[55.858608,38.888271],[55.858761,38.888851],[55.859509,38.89172],[55.859638,38.892189],[55.86071,38.89637],[55.861301,38.898579],[55.86179,38.900471],[55.862309,38.90255],[55.866249,38.917938],[55.867081,38.921101],[55.869419,38.930328],[55.872372,38.945221],[55.873741,38.952301],[55.875,38.958649],[55.876041,38.962421],[55.876839,38.965401],[55.877029,38.96616],[55.878761,38.97385],[55.880711,38.982849],[55.88147,38.986351],[55.883362,38.9953],[55.88361,38.99654],[55.884048,38.998951],[55.884491,39.00079],[55.885399,39.004181],[55.886238,39.007469],[55.88715,39.010571],[55.88763,39.0121],[55.88805,39.013111],[55.896252,39.043819],[55.897362,39.047932],[55.897861,39.049789],[55.898151,39.051102],[55.898708,39.054008],[55.899109,39.05714],[55.899559,39.061008],[55.899792,39.063019],[55.899811,39.0634],[55.89986,39.063911],[55.899899,39.064449],[55.900002,39.065868],[55.900299,39.071079],[55.900551,39.0737],[55.90118,39.077179],[55.901691,39.079651],[55.901829,39.080311],[55.90213,39.081772],[55.905811,39.098789],[55.90694,39.10458],[55.91214,39.137428],[55.913052,39.14325],[55.913601,39.14687],[55.914108,39.150108],[55.91431,39.151501],[55.914421,39.152279],[55.914471,39.152599],[55.914822,39.154758],[55.915722,39.160469],[55.917042,39.168201],[55.9174,39.171108],[55.917789,39.17503],[55.918152,39.178669],[55.918442,39.181862],[55.91853,39.18288],[55.918919,39.186878],[55.919079,39.188759],[55.91988,39.199379],[55.920479,39.208561],[55.921219,39.21978],[55.921299,39.220951],[55.921619,39.22559],[55.92292,39.244621],[55.923351,39.250851],[55.926182,39.29248],[55.92696,39.3041],[55.927559,39.313049],[55.927952,39.318871],[55.928181,39.322529],[55.92836,39.325321],[55.92836,39.325371],[55.928421,39.326351],[55.928478,39.327202],[55.931431,39.37112],[55.93227,39.38385],[55.932812,39.391972],[55.933029,39.39529],[55.933151,39.397049],[55.934731,39.42107],[55.93491,39.423988],[55.936069,39.441189],[55.93721,39.45771],[55.93779,39.467388],[55.938061,39.46907],[55.93853,39.471161],[55.93972,39.475498],[55.941811,39.483219],[55.943611,39.499222],[55.943939,39.502159],[55.944931,39.511028],[55.94593,39.519939],[55.945969,39.520309],[55.952301,39.577099],[55.953369,39.586811],[55.955349,39.60461],[55.955799,39.60836],[55.956348,39.613419],[55.957291,39.622089],[55.957088,39.626629],[55.95681,39.632778],[55.95673,39.634609],[55.956711,39.635139],[55.956791,39.638279],[55.957359,39.64682],[55.958721,39.66798],[55.960369,39.69347],[55.960659,39.697731],[55.96085,39.700539],[55.96191,39.716789],[55.9622,39.72086],[55.96225,39.721691],[55.964409,39.75536],[55.964851,39.762169],[55.96489,39.762718],[55.96524,39.768108],[55.965439,39.774719],[55.965809,39.777882],[55.96764,39.784889],[55.98246,39.840961],[56.000141,39.908619],[56.000488,39.909969],[56.001431,39.913559],[56.001511,39.91383],[56.001701,39.91441],[56.002071,39.915791],[56.002529,39.917],[56.005741,39.92347],[56.007729,39.92849],[56.008629,39.931511],[56.008701,39.931782],[56.010071,39.936958],[56.011211,39.941299],[56.012619,39.94664],[56.013988,39.95166],[56.014,39.951679],[56.014729,39.95438],[56.017101,39.963089],[56.019081,39.970409],[56.019932,39.973541],[56.020969,39.97736],[56.021751,39.98024],[56.022251,39.982071],[56.022449,39.9828],[56.024139,39.989029],[56.024891,39.991821],[56.029888,40.01022],[56.033798,40.024639],[56.034512,40.027241],[56.036812,40.035728],[56.04406,40.06221],[56.04781,40.075932],[56.048531,40.07859],[56.050949,40.087429],[56.051281,40.08868],[56.05249,40.093159],[56.05315,40.095581],[56.060669,40.123489],[56.060928,40.1245],[56.06554,40.141541],[56.072929,40.169151],[56.073399,40.170849],[56.073719,40.172039],[56.076439,40.182251],[56.076839,40.1838],[56.0769,40.184021],[56.077229,40.185268],[56.078369,40.1894],[56.0798,40.195129],[56.08007,40.196331],[56.080158,40.196941],[56.080238,40.197891],[56.08025,40.19841],[56.080231,40.199059],[56.080151,40.19973],[56.080009,40.200539],[56.078861,40.20388],[56.078739,40.20433],[56.077461,40.207958],[56.075371,40.213879],[56.07259,40.221809],[56.07198,40.224579],[56.071739,40.22599],[56.071541,40.22797],[56.07151,40.231892],[56.071579,40.239571],[56.071621,40.242199],[56.071671,40.247181],[56.07172,40.251339],[56.071819,40.25576],[56.071899,40.264408],[56.072021,40.275421],[56.07201,40.277401],[56.071911,40.279362],[56.071751,40.281521],[56.071301,40.284851],[56.070419,40.289349],[56.070091,40.29105],[56.066311,40.311272],[56.065369,40.317341],[56.06509,40.320469],[56.064861,40.32436],[56.064812,40.32885],[56.06509,40.357712],[56.065109,40.36055],[56.064899,40.362999],[56.064381,40.365318],[56.063999,40.36647],[56.06348,40.368031],[56.062969,40.36956],[56.060211,40.37785],[56.058392,40.385189],[56.05584,40.401508],[56.05529,40.40506],[56.05397,40.413551],[56.053379,40.41769],[56.053059,40.422169],[56.053268,40.426491],[56.053631,40.429062],[56.054138,40.431789],[56.054539,40.433529],[56.055012,40.435131],[56.056149,40.438919],[56.057251,40.442509],[56.059212,40.448811],[56.059971,40.450859],[56.060799,40.45266],[56.061741,40.45451],[56.062462,40.455631],[56.063801,40.4575],[56.064159,40.457951],[56.06485,40.45874],[56.068939,40.462528],[56.07304,40.466202],[56.075062,40.468109],[56.076439,40.469688],[56.078892,40.473],[56.080009,40.47448],[56.080471,40.47506],[56.081928,40.476929],[56.082432,40.4776],[56.083141,40.478611],[56.0839,40.47998],[56.08466,40.481571],[56.085461,40.483891],[56.08606,40.486351],[56.089851,40.509869],[56.090389,40.513908],[56.092449,40.530998],[56.094212,40.545502],[56.095581,40.557201],[56.096889,40.568321],[56.097149,40.570969],[56.097328,40.57296],[56.09763,40.57518],[56.09798,40.577381],[56.098412,40.580799],[56.098591,40.58226],[56.099152,40.587151],[56.099369,40.589512],[56.099529,40.591148],[56.099812,40.593361],[56.100121,40.59547],[56.10041,40.597481],[56.102051,40.611118],[56.103661,40.624569],[56.103882,40.62677],[56.10405,40.629089],[56.10413,40.633461],[56.104019,40.641369],[56.103821,40.64497],[56.103828,40.648499],[56.10384,40.65242],[56.10363,40.661339],[56.103519,40.66444],[56.103489,40.667622],[56.103519,40.67067],[56.10334,40.683609],[56.103329,40.68642],[56.102959,40.711189],[56.102249,40.763199],[56.102329,40.76741],[56.102589,40.771111],[56.102612,40.771339],[56.102779,40.773022],[56.102951,40.774342],[56.103111,40.7756],[56.104851,40.787209],[56.10527,40.79002],[56.108238,40.809799],[56.111141,40.828381],[56.11182,40.83308],[56.112591,40.83646],[56.113392,40.839539],[56.114681,40.843609],[56.11602,40.84687],[56.118992,40.85318],[56.129902,40.876259],[56.13113,40.879059],[56.132191,40.881241],[56.132561,40.881989],[56.13348,40.88377],[56.134041,40.884899],[56.134701,40.88633],[56.137161,40.891621],[56.138111,40.893848],[56.139389,40.89642],[56.14061,40.898788],[56.146461,40.911152],[56.14753,40.91304],[56.14859,40.914761],[56.149818,40.91655],[56.151058,40.918201],[56.154869,40.922371],[56.158642,40.926521],[56.16753,40.93631],[56.173779,40.94326],[56.175091,40.94445],[56.176392,40.945431],[56.177738,40.946201],[56.1791,40.946781],[56.19043,40.950539],[56.190891,40.950729],[56.192089,40.95116],[56.192841,40.951611],[56.193321,40.95216],[56.193722,40.952839],[56.193989,40.95359],[56.19418,40.954418],[56.194321,40.955502],[56.19463,40.9617],[56.194931,40.968739],[56.195351,40.9744],[56.196018,40.986382],[56.196251,40.99144],[56.196758,41.00251],[56.197819,41.02309],[56.20219,41.11478],[56.20306,41.133041],[56.20385,41.149139],[56.2043,41.158642],[56.204361,41.15974],[56.206051,41.196301],[56.206631,41.206532],[56.207371,41.222488],[56.20882,41.251839],[56.211048,41.30019],[56.211201,41.303452],[56.212311,41.326351],[56.212448,41.33046],[56.216839,41.43071],[56.21756,41.447971],[56.218842,41.474659],[56.223141,41.56255],[56.225788,41.630322],[56.226082,41.63707],[56.226181,41.639389],[56.227459,41.669319],[56.22855,41.694981],[56.228828,41.701469],[56.228859,41.702179],[56.229172,41.709389],[56.230148,41.732349],[56.230259,41.73505],[56.230331,41.736679],[56.232471,41.786751],[56.232738,41.794498],[56.23291,41.79882],[56.23296,41.79998],[56.23317,41.805161],[56.233189,41.805889],[56.233589,41.817379],[56.234089,41.838871],[56.234402,41.85252],[56.23465,41.866039],[56.2351,41.8848],[56.23513,41.885979],[56.235168,41.887909],[56.2355,41.903431],[56.235889,41.921749],[56.236118,41.931831],[56.23632,41.94083],[56.23634,41.941792],[56.236351,41.94276],[56.23637,41.94421],[56.236561,41.952782],[56.23658,41.954411],[56.236591,41.95488],[56.236629,41.956581],[56.236629,41.956711],[56.236881,41.966068],[56.236931,41.97105],[56.236969,41.973549],[56.237,41.974812],[56.237041,41.976479],[56.237049,41.97715],[56.237061,41.97784],[56.23724,41.98439],[56.237301,41.98632],[56.23732,41.98719],[56.23737,41.98933],[56.237419,41.992352],[56.23745,41.993832],[56.237461,41.994499],[56.237541,41.99876],[56.237549,41.99931],[56.237621,42.00243],[56.237652,42.004131],[56.237789,42.009571],[56.23793,42.017139],[56.237999,42.02042],[56.238091,42.02457],[56.238201,42.02961],[56.238239,42.030991],[56.238331,42.034069],[56.238392,42.036381],[56.238419,42.037552],[56.238468,42.039661],[56.23851,42.041389],[56.238541,42.042309],[56.238659,42.047852],[56.238789,42.053452],[56.238899,42.058681],[56.238918,42.059441],[56.238991,42.062641],[56.239029,42.06456],[56.239059,42.066071],[56.239079,42.066719],[56.23912,42.068748],[56.23912,42.069061],[56.239128,42.069359],[56.239159,42.070831],[56.239262,42.075661],[56.239281,42.0765],[56.239319,42.07877],[56.23938,42.081821],[56.239422,42.083851],[56.23946,42.086319],[56.239498,42.088009],[56.239571,42.090832],[56.239658,42.09568],[56.2397,42.097988],[56.239719,42.099369],[56.239738,42.101269],[56.23975,42.101719],[56.239712,42.102219],[56.2397,42.102371],[56.239609,42.10305],[56.239429,42.10384],[56.239231,42.104568],[56.23909,42.105],[56.238941,42.105389],[56.238762,42.10577],[56.238419,42.106441],[56.238049,42.10704],[56.23793,42.10722],[56.23737,42.10807],[56.236279,42.109791],[56.235409,42.11121],[56.234341,42.112789],[56.23365,42.113869],[56.232689,42.115391],[56.231682,42.117001],[56.230629,42.11869],[56.22974,42.120159],[56.22879,42.121719],[56.22765,42.12347],[56.226768,42.124859],[56.22617,42.125839],[56.225601,42.126751],[56.225189,42.127468],[56.224949,42.127869],[56.224731,42.12825],[56.224499,42.128681],[56.22414,42.129459],[56.223801,42.130241],[56.22337,42.131451],[56.222969,42.132702],[56.222679,42.13369],[56.22237,42.13488],[56.222351,42.134972],[56.222271,42.13533],[56.222191,42.13578],[56.221951,42.136971],[56.221802,42.137798],[56.22171,42.138329],[56.22163,42.13887],[56.221539,42.139568],[56.22147,42.140251],[56.221359,42.141621],[56.22126,42.14344],[56.22121,42.144508],[56.221111,42.1465],[56.221081,42.147301],[56.221039,42.147991],[56.220989,42.149342],[56.220951,42.150242],[56.22086,42.151829],[56.220829,42.152328],[56.22076,42.153728],[56.220661,42.156261],[56.22057,42.158321],[56.220482,42.16037],[56.22044,42.16106],[56.220379,42.162239],[56.220242,42.1651],[56.220131,42.167999],[56.22007,42.169552],[56.220032,42.17033],[56.21991,42.172489],[56.219849,42.17411],[56.21983,42.17485],[56.219749,42.17614],[56.219639,42.17831],[56.219559,42.180012],[56.219509,42.181019],[56.21946,42.182041],[56.219452,42.182171],[56.219391,42.183201],[56.219341,42.18401],[56.219269,42.185101],[56.219189,42.18644],[56.219109,42.187599],[56.218929,42.190868],[56.218849,42.192341],[56.218769,42.193939],[56.218719,42.19487],[56.218681,42.195591],[56.218639,42.196548],[56.218578,42.19772],[56.218491,42.199581],[56.21841,42.201229],[56.21833,42.202839],[56.218288,42.203579],[56.218239,42.204659],[56.218159,42.206322],[56.218151,42.206532],[56.218102,42.207401],[56.218021,42.209061],[56.217918,42.211029],[56.21785,42.212399],[56.217781,42.213848],[56.217659,42.216492],[56.217541,42.218849],[56.217419,42.221321],[56.21735,42.222679],[56.217281,42.22393],[56.217239,42.22472],[56.21714,42.226871],[56.217079,42.228149],[56.21703,42.229679],[56.216999,42.230999],[56.216961,42.2323],[56.216888,42.233879],[56.216831,42.235279],[56.216728,42.237122],[56.21664,42.238911],[56.21656,42.24078],[56.216412,42.243759],[56.216209,42.245811],[56.215931,42.247929],[56.215611,42.24984],[56.215359,42.251202],[56.215031,42.25272],[56.21471,42.254009],[56.214241,42.255501],[56.213951,42.25647],[56.21389,42.25666],[56.2136,42.25761],[56.213039,42.259548],[56.212559,42.261139],[56.211979,42.263111],[56.21138,42.26503],[56.210609,42.267651],[56.209949,42.269829],[56.209171,42.272491],[56.208221,42.275631],[56.207611,42.277748],[56.20694,42.27998],[56.206249,42.282349],[56.205791,42.283871],[56.205238,42.28566],[56.20525,42.28627],[56.20401,42.290192],[56.203461,42.2924],[56.20311,42.31216],[56.202709,42.350479],[56.202141,42.353569],[56.20055,42.358742],[56.19643,42.370819],[56.192322,42.383091],[56.187889,42.39357],[56.180851,42.4077],[56.174171,42.41687],[56.173489,42.41782],[56.17289,42.41898],[56.172581,42.42009],[56.172379,42.421188],[56.170639,42.432362],[56.169659,42.43837],[56.16935,42.441959],[56.165829,42.482651],[56.164501,42.491241],[56.159721,42.51355],[56.15876,42.520081],[56.159119,42.531361],[56.15947,42.544979],[56.160858,42.594921],[56.161251,42.60453],[56.16552,42.619999],[56.172901,42.646759],[56.173481,42.649509],[56.178452,42.65913],[56.191662,42.686031],[56.19186,42.686432],[56.193371,42.689461],[56.196049,42.695148],[56.196758,42.698891],[56.197948,42.70261],[56.218712,42.76685],[56.220501,42.772598],[56.221661,42.77668],[56.223629,42.782749],[56.224579,42.78558],[56.226028,42.789421],[56.226971,42.792339],[56.22842,42.79681],[56.229061,42.798882],[56.23,42.802238],[56.230999,42.805901],[56.24231,42.84774],[56.242371,42.84795],[56.249691,42.874859],[56.256721,42.90099],[56.260399,42.91436],[56.26405,42.927792],[56.27478,42.967529],[56.275219,42.969231],[56.27552,42.970509],[56.275791,42.971901],[56.275982,42.973129],[56.27615,42.97443],[56.27631,42.976299],[56.276451,42.978531],[56.276951,42.98867],[56.277401,42.998749],[56.278488,43.02235],[56.280121,43.058609],[56.2817,43.09417],[56.28487,43.16291],[56.285,43.165661],[56.28511,43.16753],[56.286179,43.19146],[56.28981,43.27335],[56.293308,43.355141],[56.293659,43.3633],[56.298222,43.473461],[56.298351,43.476559],[56.298439,43.478661],[56.30085,43.538639],[56.300961,43.541592],[56.301022,43.542969],[56.30117,43.54668],[56.301609,43.557201],[56.301689,43.559189],[56.301788,43.56168],[56.302059,43.56789],[56.302711,43.58334],[56.30302,43.590809],[56.303028,43.59116],[56.303051,43.591572],[56.303471,43.601101],[56.304211,43.618938],[56.304508,43.625919],[56.304779,43.63308],[56.30534,43.648609],[56.305931,43.66502],[56.3064,43.678478],[56.306499,43.681099],[56.306599,43.684059],[56.30685,43.690491],[56.306889,43.691631],[56.30698,43.693989],[56.307541,43.709881],[56.308159,43.726921],[56.308701,43.742699],[56.308842,43.746109],[56.308861,43.74688],[56.309269,43.759121],[56.309689,43.770309],[56.309891,43.77544],[56.31036,43.788029],[56.31041,43.78923],[56.31052,43.79203],[56.31076,43.798061],[56.310822,43.799671],[56.310879,43.800941],[56.31118,43.808899],[56.311352,43.81353],[56.311588,43.819901],[56.31181,43.825691],[56.311871,43.826111],[56.311878,43.82626],[56.311951,43.828098],[56.312481,43.84042],[56.312481,43.84058],[56.3125,43.84108],[56.312569,43.84277],[56.312729,43.846748],[56.312771,43.847858],[56.312908,43.851131],[56.313179,43.858212],[56.313381,43.86322],[56.313339,43.86388],[56.31329,43.864182],[56.31319,43.864399],[56.31303,43.864601],[56.312889,43.864811],[56.312809,43.86499],[56.312752,43.865238],[56.312729,43.86554],[56.31271,43.865829],[56.312649,43.866119],[56.312569,43.866451],[56.312401,43.86694],[56.31234,43.867142],[56.31226,43.867359],[56.312019,43.868],[56.31189,43.868252],[56.311749,43.868431],[56.311569,43.86861],[56.311371,43.868721],[56.31123,43.86879],[56.311039,43.868851],[56.310219,43.869301],[56.309959,43.869438],[56.308971,43.86998],[56.30854,43.870209],[56.307701,43.87067],[56.30727,43.870861],[56.306358,43.871262],[56.30381,43.872391],[56.30378,43.87241],[56.302429,43.873341],[56.301121,43.874241],[56.300819,43.874489],[56.300529,43.874741],[56.30027,43.87495],[56.299419,43.875721],[56.298512,43.876701],[56.296959,43.878609],[56.29636,43.87933],[56.296249,43.879471],[56.295639,43.880219],[56.292381,43.884319],[56.29105,43.88586],[56.290588,43.886318],[56.290161,43.886688],[56.289589,43.887131],[56.288311,43.88802],[56.285702,43.889679],[56.28524,43.890011],[56.284592,43.890591],[56.284111,43.89122],[56.283798,43.891769],[56.283489,43.89238],[56.283249,43.89304],[56.282909,43.894009],[56.28241,43.895481],[56.28233,43.895679],[56.282242,43.895889],[56.282108,43.896191],[56.281689,43.896961],[56.281368,43.897442],[56.280849,43.898109],[56.279018,43.900459],[56.277939,43.90184],[56.275742,43.904671],[56.275139,43.905418],[56.273869,43.907001],[56.271389,43.910061],[56.27079,43.910809],[56.27037,43.91135],[56.26947,43.912491],[56.268799,43.913399],[56.267921,43.914761],[56.26685,43.916649],[56.265621,43.918991],[56.26532,43.919529],[56.265091,43.919971],[56.26498,43.92017],[56.264561,43.92083],[56.26289,43.923988],[56.259861,43.9296],[56.258461,43.93219],[56.257511,43.93396],[56.25581,43.937119],[56.255291,43.93811],[56.25526,43.93816],[56.254051,43.940411],[56.253658,43.94112],[56.25359,43.94136],[56.247311,43.952999],[56.24699,43.953442],[56.246658,43.954079],[56.246319,43.954781],[56.2458,43.956051],[56.245468,43.956982],[56.245251,43.957668],[56.244961,43.95874],[56.244759,43.959629],[56.244659,43.96011],[56.24461,43.960312],[56.244431,43.96151],[56.244259,43.9632],[56.24329,43.969559],[56.242779,43.972801],[56.242569,43.974159],[56.241779,43.979431],[56.24115,43.98365],[56.240299,43.989269],[56.240002,43.991211],[56.239479,43.994652],[56.239391,43.995251],[56.239059,43.997501],[56.238861,43.998791],[56.23848,44.001282],[56.237991,44.00481],[56.237598,44.007809],[56.236511,44.016102],[56.23597,44.020561],[56.235611,44.023499],[56.23531,44.025822],[56.235142,44.027859],[56.234989,44.029701],[56.234871,44.031559],[56.234852,44.033421],[56.234821,44.035389],[56.234798,44.037701],[56.234859,44.039421],[56.23494,44.041561],[56.234959,44.042831],[56.23494,44.04459],[56.234901,44.046188],[56.234798,44.04805],[56.234711,44.04911],[56.234631,44.050011],[56.234371,44.052341],[56.234089,44.054321],[56.23373,44.056801],[56.233471,44.058552],[56.233158,44.060539],[56.232841,44.062511],[56.232368,44.064899],[56.23204,44.066311],[56.231579,44.067959],[56.230968,44.06966],[56.230179,44.071381],[56.22961,44.07238],[56.229092,44.07309],[56.228531,44.073719],[56.22784,44.074341],[56.227322,44.07473],[56.22718,44.074841],[56.226452,44.07531],[56.225849,44.07563],[56.225422,44.07584],[56.224709,44.076099],[56.224461,44.07616],[56.224079,44.076279],[56.222832,44.076618],[56.222149,44.076801],[56.221401,44.077],[56.221279,44.07703],[56.221031,44.077099],[56.219299,44.077549],[56.218559,44.077789],[56.218239,44.0779],[56.21714,44.078289],[56.216202,44.07869],[56.214901,44.07935],[56.213631,44.080139],[56.212791,44.080719],[56.2122,44.0812],[56.21196,44.081409],[56.210991,44.08226],[56.209549,44.084049],[56.208542,44.085522],[56.20752,44.087189],[56.206581,44.088951],[56.20557,44.091019],[56.204281,44.093899],[56.202381,44.098438],[56.200378,44.103588],[56.1991,44.10717],[56.19838,44.109509],[56.197811,44.111912],[56.197239,44.11475],[56.196892,44.116421],[56.19648,44.11845],[56.1959,44.120911],[56.195431,44.122639],[56.19519,44.12355],[56.194889,44.124451],[56.194031,44.126621],[56.19368,44.127392],[56.192139,44.130371],[56.184631,44.1441],[56.18375,44.145748],[56.183289,44.14687],[56.18206,44.149559],[56.181019,44.151909],[56.18055,44.152851],[56.180149,44.153339],[56.179749,44.153751],[56.179279,44.154121],[56.178768,44.15432],[56.17852,44.1544],[56.17807,44.154442],[56.17754,44.154362],[56.1758,44.153782],[56.17519,44.15361],[56.174358,44.1534],[56.172741,44.153111],[56.171921,44.153011],[56.170971,44.153091],[56.1702,44.153309],[56.169479,44.15358],[56.167912,44.154518],[56.167179,44.154819],[56.166439,44.155022],[56.165722,44.15506],[56.164558,44.154861],[56.162151,44.154259],[56.16098,44.154011],[56.16011,44.153992],[56.15934,44.154072],[56.159271,44.154091],[56.158569,44.154289],[56.157799,44.154652],[56.15654,44.155418],[56.154202,44.156952],[56.152458,44.158081],[56.152191,44.15826],[56.151131,44.158859],[56.150391,44.15918],[56.149712,44.15934],[56.148991,44.159351],[56.14843,44.159248],[56.147739,44.159031],[56.146961,44.15876],[56.14455,44.15778],[56.142811,44.157021],[56.14106,44.156429],[56.139969,44.156181],[56.13829,44.15604],[56.13681,44.15617],[56.13583,44.156361],[56.134491,44.156769],[56.132931,44.157539],[56.131821,44.158249],[56.130699,44.159069],[56.128441,44.161259],[56.12693,44.162819],[56.126362,44.163399],[56.12606,44.163509],[56.12534,44.163601],[56.125229,44.163601],[56.12508,44.163631],[56.124931,44.163719],[56.12479,44.163849],[56.12468,44.16404],[56.124569,44.164322],[56.124561,44.164581],[56.12447,44.165009],[56.124352,44.16531],[56.124161,44.165581],[56.11639,44.172829],[56.114761,44.175751],[56.114281,44.18227],[56.113708,44.20322],[56.118099,44.20797],[56.120731,44.212132],[56.122238,44.217312],[56.123001,44.221142],[56.124619,44.233261],[56.124748,44.236141],[56.124519,44.23875],[56.123379,44.245941],[56.123192,44.248219],[56.123291,44.25174],[56.123562,44.253281],[56.123821,44.254478],[56.124229,44.25581],[56.124779,44.257179],[56.125118,44.257881],[56.125809,44.259491],[56.126011,44.260029],[56.126171,44.260712],[56.126259,44.261318],[56.126282,44.26189],[56.12627,44.26244],[56.12616,44.263191],[56.125919,44.264118],[56.125099,44.265911],[56.124939,44.2663],[56.124069,44.267879],[56.123779,44.26833],[56.12331,44.26902],[56.122421,44.270199],[56.12162,44.271191],[56.119259,44.273941],[56.118172,44.275181],[56.116798,44.276749],[56.116131,44.277519],[56.116051,44.277611],[56.110699,44.283699],[56.110271,44.284191],[56.109791,44.284729],[56.109711,44.28484],[56.10701,44.287941],[56.106419,44.288818],[56.105862,44.289761],[56.105419,44.290649],[56.105,44.29166],[56.10062,44.3041],[56.100159,44.305382],[56.099739,44.306492],[56.099602,44.306808],[56.099461,44.307152],[56.099281,44.307499],[56.09911,44.3078],[56.09856,44.308731],[56.098141,44.309391],[56.097229,44.31078],[56.096748,44.311501],[56.096439,44.311989],[56.096069,44.312691],[56.095699,44.313511],[56.09544,44.314381],[56.095169,44.315392],[56.09502,44.316132],[56.094589,44.31863],[56.094391,44.319469],[56.094189,44.32019],[56.093269,44.323238],[56.092361,44.326302],[56.092079,44.327221],[56.091511,44.32906],[56.09087,44.33099],[56.089882,44.33382],[56.08746,44.34079],[56.085609,44.346218],[56.08498,44.348091],[56.078499,44.367161],[56.07822,44.367901],[56.0779,44.368568],[56.077641,44.369019],[56.077221,44.369598],[56.076939,44.36993],[56.07653,44.370312],[56.076092,44.37064],[56.075611,44.37093],[56.07449,44.37151],[56.072449,44.37249],[56.07077,44.37331],[56.070179,44.3736],[56.06971,44.373821],[56.06889,44.374222],[56.06757,44.374809],[56.06712,44.37505],[56.066761,44.375278],[56.06636,44.37561],[56.066021,44.375938],[56.06572,44.376289],[56.065331,44.376808],[56.06496,44.37743],[56.064522,44.378269],[56.06411,44.37928],[56.06295,44.382271],[56.061211,44.386551],[56.06065,44.38792],[56.060341,44.388691],[56.059681,44.390308],[56.058399,44.393452],[56.05621,44.3988],[56.048389,44.418091],[56.046501,44.422661],[56.046261,44.423382],[56.04607,44.42403],[56.045879,44.42485],[56.0457,44.425869],[56.045631,44.426609],[56.045601,44.427601],[56.04567,44.43103],[56.045658,44.43306],[56.045601,44.433769],[56.045422,44.43491],[56.045189,44.43594],[56.044868,44.43692],[56.04438,44.438099],[56.043289,44.44075],[56.042999,44.441589],[56.042721,44.442501],[56.042519,44.443401],[56.04229,44.444969],[56.04158,44.452389],[56.040192,44.46664],[56.03883,44.480659],[56.038719,44.481689],[56.03862,44.48259],[56.038479,44.483471],[56.0383,44.48428],[56.03804,44.485199],[56.032162,44.502251],[56.031761,44.503448],[56.03149,44.50462],[56.031231,44.505871],[56.031078,44.50705],[56.030899,44.510342],[56.029461,44.545521],[56.028801,44.55407],[56.028011,44.56155],[56.02747,44.568169],[56.027908,44.584888],[56.027229,44.601978],[56.027962,44.60656],[56.02803,44.60738],[56.028179,44.608879],[56.027988,44.613171],[56.02737,44.620541],[56.026791,44.622929],[56.025871,44.624432],[56.025089,44.624889],[56.023769,44.625179],[56.01659,44.625172],[56.015221,44.62529],[56.014061,44.625511],[56.01297,44.625832],[56.011951,44.626362],[56.007408,44.628609],[56.006721,44.629009],[56.0061,44.62944],[56.005871,44.629589],[56.005348,44.630001],[56.004879,44.63052],[56.004238,44.631302],[56.003769,44.631981],[56.002949,44.633129],[56.001518,44.635151],[55.99966,44.63776],[55.998241,44.63979],[55.99741,44.640949],[55.99712,44.641411],[55.996738,44.642159],[55.996521,44.642689],[55.996262,44.643299],[55.996029,44.64399],[55.99559,44.645599],[55.995281,44.647511],[55.995129,44.649059],[55.994919,44.652161],[55.994518,44.658161],[55.99395,44.666309],[55.993889,44.667858],[55.9939,44.66943],[55.998219,44.71011],[55.998539,44.712761],[55.998741,44.713772],[55.999039,44.71479],[55.99942,44.715759],[56,44.71698],[56.00106,44.719109],[56.00182,44.720669],[56.002209,44.721561],[56.00251,44.722279],[56.002708,44.7229],[56.002911,44.72369],[56.003139,44.72504],[56.00322,44.72617],[56.003151,44.72768],[56.002838,44.730659],[56.00259,44.734131],[56.001751,44.74255],[56.00153,44.744381],[56.00132,44.74527],[56.00106,44.745949],[56.00074,44.74662],[55.999279,44.748779],[55.992989,44.757961],[55.990791,44.761318],[55.99033,44.762321],[55.990009,44.76318],[55.989819,44.764069],[55.989719,44.76498],[55.9897,44.765968],[55.99073,44.773331],[55.992962,44.788288],[55.997372,44.81881],[55.997601,44.820049],[55.99781,44.82066],[55.999069,44.823261],[56.004459,44.834709],[56.005829,44.837769],[56.006161,44.83881],[56.006748,44.841309],[56.011189,44.860889],[56.011292,44.861591],[56.011341,44.862282],[56.011372,44.863121],[56.011292,44.86404],[56.01112,44.864929],[56.01088,44.865551],[56.009129,44.869228],[56.008862,44.870022],[56.008659,44.87093],[56.008221,44.873871],[56.005791,44.88974],[56.005718,44.890362],[56.005669,44.890942],[56.005661,44.891472],[56.00568,44.89201],[56.005779,44.89299],[56.007172,44.900478],[56.010979,44.920929],[56.011169,44.922211],[56.011269,44.923309],[56.01128,44.924629],[56.011219,44.925812],[56.01107,44.92696],[56.01088,44.928028],[56.01038,44.92984],[56.009178,44.934361],[56.00882,44.936081],[56.00861,44.93779],[56.008499,44.939602],[56.00845,44.941158],[56.008499,44.94244],[56.008629,44.943741],[56.016418,44.996269],[56.016571,44.997238],[56.016651,44.998199],[56.016651,44.999229],[56.016579,45.000408],[56.01646,45.001598],[56.015572,45.008961],[56.014961,45.014542],[56.01482,45.015701],[56.01453,45.018242],[56.013649,45.026249],[56.013618,45.02721],[56.013519,45.03426],[56.013458,45.039619],[56.0135,45.04118],[56.013618,45.042728],[56.013851,45.044189],[56.01667,45.059238],[56.016972,45.061581],[56.017262,45.06358],[56.017792,45.06654],[56.01825,45.068859],[56.01857,45.069988],[56.019001,45.071701],[56.019669,45.07513],[56.021061,45.082458],[56.021461,45.084579],[56.022079,45.087971],[56.022369,45.089191],[56.023079,45.09153],[56.032928,45.121109],[56.033489,45.122829],[56.03371,45.1236],[56.03389,45.12447],[56.033981,45.125229],[56.034012,45.125919],[56.033951,45.140442],[56.033981,45.141682],[56.03405,45.142712],[56.034149,45.143501],[56.034302,45.14452],[56.03447,45.14547],[56.036381,45.15469],[56.037941,45.162331],[56.03825,45.163601],[56.038639,45.164841],[56.04472,45.18079],[56.0452,45.182331],[56.045761,45.18428],[56.046219,45.18568],[56.05463,45.209648],[56.055241,45.21146],[56.056541,45.215519],[56.05685,45.216721],[56.05695,45.21751],[56.056931,45.218281],[56.056839,45.219101],[56.055882,45.224049],[56.055679,45.224819],[56.05537,45.225571],[56.055038,45.226059],[56.054619,45.226501],[56.052269,45.22813],[56.05188,45.228588],[56.051609,45.228958],[56.051338,45.229519],[56.051128,45.230221],[56.050152,45.234531],[56.050018,45.235241],[56.04998,45.235939],[56.049992,45.236629],[56.050049,45.237339],[56.050549,45.241348],[56.050812,45.24242],[56.05117,45.243542],[56.054352,45.252941],[56.054729,45.254261],[56.057491,45.26442],[56.057732,45.265572],[56.057899,45.266819],[56.06147,45.302731],[56.06155,45.30365],[56.061569,45.3046],[56.06155,45.305679],[56.059879,45.333832],[56.059811,45.334759],[56.05975,45.335331],[56.05962,45.335831],[56.059311,45.336651],[56.05505,45.3456],[56.054668,45.346481],[56.054428,45.347198],[56.054138,45.348209],[56.053459,45.350941],[56.048328,45.371361],[56.045738,45.383511],[56.045441,45.385231],[56.045231,45.386841],[56.045151,45.388439],[56.045139,45.390099],[56.045349,45.412231],[56.04546,45.416229],[56.045818,45.427399],[56.04599,45.433071],[56.046089,45.43544],[56.046261,45.43782],[56.048069,45.462238],[56.048229,45.464199],[56.048649,45.4678],[56.04969,45.476719],[56.049881,45.478939],[56.050049,45.481541],[56.05159,45.50951],[56.05167,45.511181],[56.051689,45.512569],[56.051651,45.513699],[56.051338,45.521839],[56.051022,45.52972],[56.05093,45.531212],[56.050331,45.5387],[56.050159,45.542641],[56.04998,45.547421],[56.049931,45.549541],[56.049801,45.556591],[56.04974,45.558392],[56.049622,45.559582],[56.04945,45.560902],[56.042751,45.60685],[56.042622,45.608101],[56.042542,45.609371],[56.0425,45.610531],[56.042519,45.611721],[56.043781,45.639339],[56.043911,45.642521],[56.043968,45.64629],[56.043991,45.648689],[56.044109,45.65126],[56.044941,45.669449],[56.046001,45.69286],[56.047169,45.718689],[56.047298,45.721008],[56.047428,45.72295],[56.04747,45.723801],[56.047531,45.72514],[56.047611,45.72768],[56.047642,45.729301],[56.047729,45.73056],[56.047878,45.732529],[56.0481,45.73505],[56.049339,45.76276],[56.05212,45.825199],[56.052471,45.833271],[56.052521,45.834949],[56.052521,45.83625],[56.052479,45.837379],[56.052319,45.83881],[56.05183,45.8419],[56.05162,45.843281],[56.051498,45.844559],[56.05138,45.84687],[56.05125,45.8498],[56.051159,45.851379],[56.050831,45.854912],[56.050701,45.856312],[56.049992,45.862358],[56.049831,45.864239],[56.049709,45.86623],[56.049679,45.86813],[56.049728,45.876091],[56.049679,45.88908],[56.04977,45.914181],[56.04974,45.917419],[56.049679,45.918701],[56.049541,45.919899],[56.04932,45.921299],[56.049019,45.9226],[56.04644,45.932362],[56.043549,45.943329],[56.040409,45.955261],[56.038261,45.96336],[56.03299,45.983471],[56.031689,45.988319],[56.03056,45.99202],[56.029942,45.994209],[56.029259,45.997021],[56.02877,45.999298],[56.02837,46.0009],[56.027851,46.002811],[56.027481,46.00399],[56.027149,46.005001],[56.024632,46.011688],[56.0242,46.01265],[56.023731,46.01347],[56.023338,46.013981],[56.022781,46.014511],[56.013191,46.021309],[56.01276,46.021709],[56.01244,46.02203],[56.012001,46.022621],[56.010399,46.025391],[56.000919,46.041672],[56.000729,46.042179],[56.000549,46.042931],[56.0005,46.043468],[56.000519,46.044189],[56.001808,46.052929],[56.00206,46.05484],[56.002281,46.057281],[56.002369,46.059891],[56.002361,46.062141],[56.0023,46.06382],[56.00206,46.06641],[56.001732,46.06881],[56.00156,46.07061],[56.001492,46.071232],[56.001389,46.07185],[56.001308,46.072269],[56.001221,46.072941],[56.00119,46.07328],[56.00116,46.07373],[56.001141,46.073952],[56.001122,46.074341],[56.001099,46.074928],[56.001091,46.075539],[56.00108,46.076149],[56.001049,46.076752],[56.00053,46.083248],[55.999199,46.09798],[55.99498,46.14637],[55.994808,46.148331],[55.99472,46.149422],[55.994701,46.149609],[55.99176,46.183311],[55.991692,46.18539],[55.991638,46.186008],[55.991428,46.188259],[55.991402,46.19009],[55.991539,46.191662],[55.991871,46.193192],[55.99226,46.19455],[55.99284,46.195869],[55.993382,46.196812],[55.99437,46.198441],[55.995071,46.199669],[55.999889,46.20805],[56.00531,46.217491],[56.023251,46.24873],[56.02623,46.251999],[56.0299,46.251999],[56.03352,46.251999],[56.035919,46.251999],[56.037731,46.254398],[56.038311,46.25835],[56.039459,46.27895],[56.041672,46.29525],[56.046558,46.307789],[56.048191,46.31345],[56.048672,46.31723],[56.04723,46.332329],[56.04541,46.343491],[56.041759,46.352589],[56.041859,46.360661],[56.043789,46.388691],[56.043659,46.392811],[56.043491,46.39859],[56.043449,46.401878],[56.043591,46.405979],[56.04475,46.41238],[56.046619,46.41885],[56.053459,46.44117],[56.05431,46.446171],[56.054729,46.451389],[56.054611,46.45636],[56.05423,46.461418],[56.05331,46.47226],[56.053188,46.473629],[56.053181,46.474159],[56.053089,46.481258],[56.052898,46.485489],[56.052528,46.489059],[56.052441,46.49054],[56.05159,46.49752],[56.0509,46.50153],[56.049671,46.506149],[56.04829,46.509941],[56.046009,46.515419],[56.04472,46.51873],[56.044022,46.521999],[56.043678,46.529739],[56.04335,46.53318],[56.042351,46.53688],[56.035011,46.55698],[56.033741,46.56041],[56.032841,46.563221],[56.032211,46.565639],[56.031391,46.57016],[56.029469,46.585281],[56.028889,46.595551],[56.028278,46.6063],[56.027569,46.619801],[56.027309,46.626148],[56.027309,46.627911],[56.027512,46.629749],[56.027939,46.632141],[56.02964,46.639069],[56.031391,46.645939],[56.033852,46.656311],[56.034889,46.660709],[56.035099,46.66254],[56.036781,46.69265],[56.037251,46.697632],[56.0387,46.703979],[56.0387,46.707932],[56.037731,46.721489],[56.039558,46.728699],[56.042339,46.737801],[56.04314,46.746071],[56.04319,46.748631],[56.042961,46.750309],[56.041538,46.754669],[56.040661,46.758701],[56.040581,46.759079],[56.040421,46.759769],[56.03957,46.765049],[56.03772,46.77631],[56.036991,46.780369],[56.0368,46.78244],[56.036869,46.786209],[56.0392,46.803761],[56.039871,46.80917],[56.039822,46.810558],[56.038109,46.81823],[56.036789,46.824089],[56.036869,46.82579],[56.03714,46.826839],[56.038311,46.831009],[56.03957,46.835312],[56.041149,46.839378],[56.04311,46.844231],[56.043839,46.846352],[56.04438,46.848721],[56.045879,46.855339],[56.04665,46.8587],[56.047611,46.86174],[56.047932,46.86235],[56.049171,46.864792],[56.050739,46.868031],[56.05175,46.870609],[56.055851,46.88237],[56.05761,46.887409],[56.062759,46.901951],[56.064739,46.907742],[56.065029,46.90863],[56.06554,46.910461],[56.066238,46.912868],[56.066681,46.91515],[56.067039,46.91732],[56.067291,46.920391],[56.067451,46.923191],[56.067589,46.927719],[56.067719,46.931561],[56.068031,46.935589],[56.068279,46.938339],[56.068352,46.942348],[56.068211,46.946701],[56.068069,46.948849],[56.067928,46.951],[56.067291,46.957489],[56.06702,46.962231],[56.06741,46.966591],[56.070992,46.979061],[56.072788,46.985001],[56.07473,46.98983],[56.076599,46.994331],[56.078522,46.998268],[56.08009,46.9995],[56.08173,47.000271],[56.086712,47.000271],[56.09016,47.000099],[56.093441,47.00481],[56.09473,47.007542],[56.095901,47.010571],[56.097309,47.017738],[56.098011,47.021351],[56.099701,47.029541],[56.100319,47.031738],[56.10128,47.034081],[56.103828,47.039719],[56.105461,47.043171],[56.105839,47.043861],[56.106319,47.045059],[56.10738,47.05011],[56.107681,47.0527],[56.1077,47.055019],[56.107552,47.0574],[56.10709,47.06049],[56.1063,47.063309],[56.105301,47.065731],[56.101891,47.073051],[56.09856,47.08017],[56.097729,47.08242],[56.096951,47.085232],[56.095699,47.090679],[56.095421,47.092789],[56.095249,47.096661],[56.095261,47.102612],[56.095139,47.104542],[56.09481,47.107121],[56.094398,47.109299],[56.09375,47.11121],[56.093029,47.11285],[56.091702,47.11507],[56.091091,47.116089],[56.091,47.116241],[56.089619,47.118511],[56.085571,47.125172],[56.08503,47.125961],[56.084919,47.12611],[56.084301,47.126968],[56.082741,47.12915],[56.082001,47.130772],[56.081478,47.132332],[56.08107,47.13361],[56.08086,47.134651],[56.080711,47.135799],[56.080631,47.136902],[56.08065,47.137569],[56.0807,47.13879],[56.080799,47.140129],[56.080929,47.142139],[56.081001,47.145439],[56.080872,47.14772],[56.08075,47.149818],[56.079498,47.161301],[56.07925,47.163631],[56.07827,47.1726],[56.07814,47.17382],[56.07724,47.18169],[56.07579,47.192719],[56.07357,47.20916],[56.073471,47.20993],[56.073029,47.213341],[56.07275,47.215809],[56.072189,47.223049],[56.071972,47.22517],[56.071758,47.226429],[56.071571,47.227032],[56.071289,47.227921],[56.070801,47.228939],[56.070629,47.229309],[56.069908,47.23064],[56.068779,47.23275],[56.067348,47.235401],[56.06498,47.239841],[56.064011,47.242249],[56.063122,47.244579],[56.062851,47.245441],[56.062271,47.247372],[56.06118,47.251011],[56.056301,47.26749],[56.054482,47.273621],[56.053581,47.27618],[56.05265,47.278511],[56.05154,47.280701],[56.050781,47.282139],[56.05019,47.283138],[56.04969,47.283932],[56.048931,47.285118],[56.048679,47.285511],[56.04755,47.287201],[56.047009,47.287998],[56.04649,47.288818],[56.045841,47.289921],[56.044739,47.291401],[56.04414,47.291889],[56.042969,47.292278],[56.04179,47.292721],[56.039879,47.29364],[56.038231,47.294399],[56.037552,47.294621],[56.037109,47.294861],[56.03508,47.29686],[56.034489,47.29744],[56.03326,47.298691],[56.031361,47.300598],[56.030918,47.30106],[56.028469,47.303589],[56.027229,47.30484],[56.026321,47.305721],[56.025711,47.306198],[56.025188,47.306469],[56.023659,47.306641],[56.022579,47.306549],[56.02203,47.306499],[56.020481,47.306591],[56.019878,47.306801],[56.015999,47.308731],[56.01519,47.30917],[56.014252,47.309811],[56.01292,47.311291],[56.012001,47.31255],[56.006481,47.320141],[56.001209,47.327278],[55.999889,47.329128],[55.99604,47.335972],[55.995331,47.337238],[55.993549,47.340099],[55.991451,47.342548],[55.98999,47.34383],[55.988159,47.345169],[55.986809,47.346241],[55.981941,47.349789],[55.980881,47.35088],[55.979839,47.352501],[55.97887,47.3545],[55.977589,47.357769],[55.976109,47.361542],[55.975159,47.363609],[55.974258,47.36512],[55.973839,47.365681],[55.973351,47.36636],[55.972488,47.367199],[55.971161,47.368111],[55.967972,47.369289],[55.955429,47.373619],[55.954979,47.373798],[55.953979,47.37418],[55.952679,47.374729],[55.94875,47.376019],[55.946899,47.376781],[55.945938,47.377571],[55.943161,47.380451],[55.940948,47.38271],[55.939751,47.384411],[55.936741,47.389381],[55.935101,47.391281],[55.933262,47.392971],[55.93121,47.394451],[55.929211,47.395889],[55.927551,47.39724],[55.926399,47.398449],[55.9226,47.403091],[55.921741,47.404148],[55.920528,47.405579],[55.918819,47.40807],[55.91716,47.41069],[55.916698,47.411671],[55.916309,47.412498],[55.914101,47.418381],[55.913441,47.41946],[55.912418,47.420738],[55.908581,47.424839],[55.90633,47.426651],[55.901878,47.42955],[55.901161,47.430031],[55.895618,47.433651],[55.894421,47.434689],[55.892799,47.43697],[55.88855,47.443161],[55.888069,47.443851],[55.887871,47.44413],[55.88583,47.446899],[55.883289,47.45002],[55.88179,47.4515],[55.880421,47.452499],[55.879139,47.45322],[55.875099,47.455521],[55.873589,47.456379],[55.87035,47.45821],[55.867191,47.460121],[55.865879,47.460709],[55.864021,47.461391],[55.862419,47.46183],[55.86158,47.462151],[55.861351,47.462231],[55.859638,47.46286],[55.859451,47.462879],[55.859299,47.46291],[55.859112,47.462898],[55.85899,47.46286],[55.858898,47.46283],[55.858799,47.46283],[55.858669,47.462811],[55.858521,47.46286],[55.858379,47.462978],[55.85828,47.463181],[55.858189,47.463459],[55.85804,47.463772],[55.857811,47.46413],[55.856998,47.46505],[55.856281,47.466],[55.855221,47.467789],[55.854542,47.46933],[55.853779,47.471619],[55.853168,47.474701],[55.852329,47.47958],[55.851681,47.483719],[55.851299,47.48711],[55.851219,47.49049],[55.85128,47.498058],[55.851151,47.502029],[55.845791,47.519192],[55.838692,47.54253],[55.83746,47.545639],[55.83424,47.549709],[55.822781,47.554779],[55.822071,47.555401],[55.8214,47.55621],[55.82056,47.557529],[55.819908,47.55875],[55.819012,47.560822],[55.815189,47.571041],[55.81255,47.578011],[55.812,47.579971],[55.81171,47.581741],[55.81152,47.583],[55.811409,47.584469],[55.811451,47.59251],[55.811501,47.600479],[55.81134,47.603279],[55.81094,47.605721],[55.809799,47.61113],[55.809341,47.612709],[55.808788,47.614182],[55.807251,47.617229],[55.805641,47.62014],[55.804741,47.622139],[55.804001,47.624081],[55.796421,47.655689],[55.790298,47.67799],[55.790199,47.687599],[55.78907,47.721489],[55.788929,47.727829],[55.788792,47.732651],[55.788681,47.737221],[55.788841,47.739471],[55.788872,47.739948],[55.789661,47.75219],[55.791161,47.77618],[55.79425,47.819092],[55.796959,47.839352],[55.798401,47.845871],[55.799179,47.85342],[55.803902,47.910759],[55.809399,47.984749],[55.811138,48.006031],[55.809589,48.024609],[55.808731,48.035042],[55.808239,48.037788],[55.805061,48.045681],[55.796379,48.063881],[55.795891,48.068169],[55.79628,48.075378],[55.796959,48.099411],[55.797729,48.12001],[55.79744,48.122929],[55.79174,48.140961],[55.79081,48.14307],[55.787991,48.147861],[55.786129,48.151039],[55.785351,48.153011],[55.784908,48.154751],[55.784889,48.157612],[55.783482,48.167641],[55.783218,48.17033],[55.782959,48.17271],[55.78307,48.175579],[55.783562,48.181591],[55.7841,48.18906],[55.78397,48.1908],[55.7836,48.191669],[55.78286,48.19384],[55.78233,48.19453],[55.781609,48.194939],[55.77676,48.197281],[55.775921,48.197571],[55.774609,48.197338],[55.769562,48.195862],[55.767288,48.19524],[55.767208,48.195221],[55.766178,48.195019],[55.764969,48.195171],[55.763771,48.195541],[55.762272,48.19659],[55.76128,48.197472],[55.75486,48.20602],[55.754292,48.206829],[55.753349,48.20816],[55.751961,48.21014],[55.750992,48.212811],[55.748829,48.221031],[55.74847,48.222401],[55.74749,48.226292],[55.746792,48.228279],[55.745819,48.230492],[55.740162,48.241928],[55.736431,48.249859],[55.735241,48.252369],[55.734249,48.255829],[55.734001,48.25742],[55.73391,48.258011],[55.733479,48.260769],[55.733292,48.263561],[55.73196,48.28344],[55.729641,48.31657],[55.728531,48.33514],[55.726929,48.358971],[55.726551,48.365829],[55.727131,48.378361],[55.727901,48.391411],[55.728291,48.399479],[55.726261,48.420422],[55.72374,48.442909],[55.723259,48.449261],[55.72435,48.473381],[55.724442,48.475319],[55.724609,48.479351],[55.724628,48.479721],[55.724689,48.481239],[55.72472,48.481918],[55.724812,48.4837],[55.725609,48.501598],[55.726059,48.513119],[55.725769,48.521702],[55.723808,48.537479],[55.72298,48.544708],[55.722809,48.546188],[55.722778,48.546421],[55.722511,48.548721],[55.72242,48.549431],[55.72216,48.551521],[55.720852,48.56385],[55.71925,48.587608],[55.718788,48.594051],[55.71841,48.600231],[55.718651,48.60326],[55.71933,48.60606],[55.720329,48.608978],[55.721291,48.6115],[55.721859,48.61425],[55.722092,48.617691],[55.721741,48.621189],[55.720551,48.624641],[55.71751,48.632191],[55.71529,48.637199],[55.71262,48.64547],[55.710941,48.65123],[55.709511,48.659721],[55.709011,48.666119],[55.709049,48.672401],[55.70961,48.679729],[55.713921,48.70715],[55.71434,48.709961],[55.717049,48.726921],[55.720501,48.741638],[55.7239,48.750832],[55.726299,48.75732],[55.72715,48.759762],[55.73185,48.77322],[55.736031,48.781219],[55.73642,48.781841],[55.737579,48.783642],[55.738392,48.784809],[55.739342,48.786091],[55.740749,48.788021],[55.745781,48.794651],[55.75082,48.8013],[55.751629,48.80241],[55.752258,48.80331],[55.7528,48.804081],[55.756809,48.809929],[55.75943,48.813789],[55.76038,48.815289],[55.761608,48.817402],[55.76215,48.818352],[55.76366,48.821548],[55.76429,48.822929],[55.767189,48.830311],[55.767399,48.830799],[55.76833,48.832699],[55.769058,48.833981],[55.769821,48.835091],[55.770969,48.836609],[55.77169,48.837471],[55.77243,48.838051],[55.773232,48.838661],[55.774052,48.839119],[55.775669,48.839828],[55.776451,48.840069],[55.77763,48.84024],[55.77924,48.840401],[55.780281,48.84042],[55.78125,48.840401],[55.78252,48.84037],[55.79047,48.840889],[55.79126,48.840981],[55.79628,48.84124],[55.810371,48.842041],[55.81245,48.842159],[55.81451,48.842449],[55.817261,48.843128],[55.81889,48.843719],[55.82074,48.84462],[55.82346,48.8461],[55.824162,48.846531],[55.825279,48.84721],[55.826191,48.847801],[55.82811,48.848751],[55.82967,48.849312],[55.831299,48.849709],[55.842369,48.85191],[55.85397,48.854259],[55.857552,48.854969],[55.858131,48.855091],[55.858681,48.855209],[55.86179,48.85582],[55.862728,48.85601],[55.86491,48.85643],[55.866829,48.856758],[55.867088,48.856812],[55.86832,48.857052],[55.87402,48.85825],[55.874458,48.858341],[55.875801,48.85862],[55.87849,48.859192],[55.879089,48.859379],[55.879398,48.859482],[55.88028,48.859791],[55.881779,48.86042],[55.88269,48.86084],[55.883381,48.86121],[55.883549,48.861309],[55.884319,48.861851],[55.885052,48.86253],[55.885811,48.863361],[55.886429,48.86414],[55.886959,48.86504],[55.887611,48.866402],[55.889069,48.86982],[55.894341,48.882118],[55.89912,48.893269],[55.899479,48.89418],[55.899811,48.895111],[55.899948,48.895519],[55.900108,48.896061],[55.900341,48.896919],[55.900639,48.898281],[55.900841,48.899288],[55.90115,48.901321],[55.901241,48.90221],[55.90131,48.903439],[55.901371,48.908951],[55.901489,48.934219],[55.901569,48.94532],[55.901619,48.94698],[55.901718,48.94865],[55.901871,48.950539],[55.90263,48.958179],[55.903069,48.962841],[55.9035,48.96714],[55.903839,48.96991],[55.904228,48.972649],[55.904598,48.975201],[55.904678,48.975761],[55.904968,48.977859],[55.905239,48.98037],[55.905411,48.98254],[55.90551,48.984798],[55.90564,48.996738],[55.905651,48.997532],[55.905701,49.000679],[55.905739,49.002041],[55.905849,49.004139],[55.90646,49.01107],[55.90659,49.01252],[55.906952,49.016472],[55.907299,49.021412],[55.907688,49.028358],[55.90789,49.031841],[55.908131,49.03532],[55.909142,49.048611],[55.91011,49.061829],[55.91058,49.0681],[55.91304,49.10125],[55.913399,49.105782],[55.91375,49.108921],[55.914108,49.111359],[55.915451,49.11953],[55.917259,49.13028],[55.917542,49.13213],[55.917751,49.13401],[55.917919,49.136051],[55.918011,49.138062],[55.918079,49.140659],[55.918079,49.140942],[55.918079,49.141891],[55.91806,49.14267],[55.918011,49.143711],[55.91785,49.14669],[55.91774,49.14798],[55.917671,49.148739],[55.91758,49.149448],[55.9175,49.15007],[55.91737,49.150928],[55.917122,49.15247],[55.91684,49.153858],[55.916649,49.1548],[55.916538,49.155289],[55.916382,49.15575],[55.91571,49.157372],[55.91449,49.15987],[55.914261,49.160358],[55.913288,49.162361],[55.913029,49.16288],[55.91275,49.163441],[55.911339,49.166302],[55.909439,49.17012],[55.90852,49.171951],[55.907379,49.17429],[55.90675,49.175739],[55.9063,49.177059],[55.906059,49.177879],[55.903801,49.187191],[55.90324,49.189468],[55.902882,49.19091],[55.90094,49.197899],[55.899979,49.20108],[55.897701,49.208038],[55.89743,49.20879],[55.896938,49.210251],[55.896599,49.211151],[55.896229,49.212002],[55.895828,49.212769],[55.895222,49.21386],[55.891121,49.220089],[55.88998,49.22205],[55.889542,49.22287],[55.88913,49.223881],[55.887421,49.229141],[55.887131,49.230061],[55.88678,49.231129],[55.885368,49.235481],[55.883381,49.241539],[55.88155,49.247051],[55.880661,49.249741],[55.880192,49.25145],[55.879341,49.255569],[55.87923,49.256111],[55.879009,49.257191],[55.87899,49.25724],[55.878139,49.261341],[55.877831,49.262829],[55.875278,49.275089],[55.874748,49.277889],[55.874599,49.279041],[55.87447,49.280949],[55.874432,49.281898],[55.874409,49.282921],[55.874451,49.286308],[55.874409,49.287281],[55.874321,49.288139],[55.874249,49.288631],[55.874149,49.289082],[55.873909,49.28989],[55.87376,49.290329],[55.873589,49.290722],[55.87318,49.291531],[55.872768,49.292179],[55.868851,49.297501],[55.864491,49.303478],[55.864029,49.304119],[55.863571,49.304741],[55.8629,49.305691],[55.862179,49.306919],[55.8615,49.30843],[55.861099,49.30941],[55.86034,49.311329],[55.856941,49.320042],[55.855289,49.3242],[55.85498,49.32497],[55.854019,49.327141],[55.852772,49.329521],[55.8521,49.330669],[55.85125,49.33194],[55.849388,49.334419],[55.84597,49.33873],[55.845089,49.339859],[55.842171,49.343578],[55.841888,49.343948],[55.839329,49.347221],[55.83844,49.348289],[55.837448,49.349178],[55.83709,49.349449],[55.83672,49.34967],[55.835918,49.350029],[55.835232,49.350281],[55.8344,49.350449],[55.833851,49.350479],[55.833279,49.35046],[55.827381,49.349319],[55.82436,49.348759],[55.820412,49.347988],[55.817551,49.347408],[55.814449,49.34679],[55.80788,49.345421],[55.806519,49.34499],[55.805069,49.34449],[55.80228,49.34269],[55.801941,49.342461],[55.801262,49.341991],[55.800152,49.34124],[55.79987,49.34111],[55.79977,49.341061],[55.798828,49.34063],[55.79855,49.34053],[55.797771,49.340229],[55.796341,49.33971],[55.795601,49.339581],[55.79493,49.33939],[55.794128,49.339191],[55.79306,49.338909],[55.790668,49.338329],[55.78896,49.338009],[55.787819,49.337959],[55.786671,49.338039],[55.7854,49.33828],[55.784168,49.338711],[55.7826,49.339481],[55.781071,49.340549],[55.77916,49.342152],[55.777271,49.34399],[55.775661,49.345612],[55.770809,49.350368],[55.768848,49.352299],[55.766171,49.354881],[55.764488,49.356651],[55.76366,49.35759],[55.762871,49.35865],[55.761959,49.360008],[55.761108,49.361549],[55.760429,49.363079],[55.75985,49.36475],[55.759171,49.367229],[55.75901,49.367901],[55.75864,49.369801],[55.758389,49.371201],[55.75779,49.375252],[55.757118,49.379761],[55.756821,49.38129],[55.7565,49.382751],[55.7561,49.384159],[55.755611,49.38562],[55.755081,49.386921],[55.75423,49.388512],[55.75375,49.389259],[55.753201,49.38998],[55.75185,49.391521],[55.750408,49.392879],[55.74662,49.396191],[55.74567,49.396999],[55.74464,49.397919],[55.742962,49.399429],[55.73914,49.402771],[55.737881,49.4039],[55.736629,49.405258],[55.735451,49.406811],[55.734341,49.40852],[55.733452,49.410141],[55.732689,49.41172],[55.731949,49.41349],[55.73106,49.416012],[55.72821,49.42469],[55.72747,49.426868],[55.72681,49.429169],[55.726109,49.432178],[55.72559,49.435211],[55.723309,49.454868],[55.721859,49.467388],[55.721828,49.468811],[55.721088,49.475471],[55.72084,49.47847],[55.72049,49.48299],[55.720322,49.48457],[55.71999,49.486889],[55.719212,49.491779],[55.71891,49.494171],[55.717731,49.504021],[55.715759,49.51825],[55.715542,49.520241],[55.715351,49.522381],[55.71505,49.526329],[55.714691,49.529739],[55.714272,49.53249],[55.713779,49.535],[55.712921,49.539001],[55.71228,49.543491],[55.711769,49.546242],[55.711349,49.548149],[55.710831,49.550201],[55.710312,49.55209],[55.70977,49.553822],[55.709358,49.55508],[55.708321,49.557899],[55.707878,49.559269],[55.70607,49.565182],[55.704769,49.56871],[55.703491,49.57159],[55.70248,49.57373],[55.700901,49.577671],[55.698959,49.58271],[55.698479,49.58408],[55.698391,49.584381],[55.697769,49.58646],[55.697399,49.588139],[55.697121,49.589901],[55.696781,49.593609],[55.69672,49.596779],[55.696941,49.60041],[55.69894,49.620121],[55.699268,49.623772],[55.699329,49.626282],[55.699429,49.63052],[55.699188,49.635651],[55.699131,49.636211],[55.698631,49.6409],[55.697899,49.645988],[55.697361,49.6493],[55.696671,49.652451],[55.695919,49.655079],[55.694691,49.658611],[55.6931,49.662861],[55.692421,49.66433],[55.686729,49.673569],[55.68568,49.675289],[55.682789,49.680199],[55.681389,49.682941],[55.680019,49.68642],[55.677219,49.69487],[55.676929,49.695751],[55.67514,49.701241],[55.674641,49.702789],[55.673882,49.70512],[55.67276,49.708469],[55.671028,49.713631],[55.670712,49.714882],[55.670368,49.716511],[55.670109,49.718151],[55.66991,49.719311],[55.669762,49.721729],[55.669689,49.725491],[55.66991,49.728981],[55.670898,49.735821],[55.67218,49.744549],[55.676151,49.77142],[55.677071,49.778099],[55.677879,49.78434],[55.679729,49.806068],[55.680698,49.81786],[55.68087,49.821381],[55.680851,49.824558],[55.680698,49.82822],[55.680328,49.832458],[55.67968,49.837151],[55.678848,49.840969],[55.67778,49.84499],[55.675209,49.852699],[55.669899,49.868599],[55.66441,49.884682],[55.662361,49.890949],[55.661579,49.89394],[55.661129,49.896309],[55.66074,49.898891],[55.6605,49.901852],[55.66032,49.90493],[55.66037,49.908569],[55.66069,49.91169],[55.6618,49.924728],[55.661781,49.929359],[55.661308,49.934101],[55.66082,49.93692],[55.660252,49.939541],[55.65942,49.942471],[55.652618,49.964859],[55.650421,49.9725],[55.650299,49.972931],[55.646881,49.98391],[55.64555,49.98941],[55.644489,49.996422],[55.644161,50.000069],[55.644138,50.000751],[55.644032,50.004379],[55.644161,50.009281],[55.64423,50.010761],[55.645821,50.02383],[55.649719,50.05447],[55.653332,50.083469],[55.65374,50.08638],[55.654129,50.088669],[55.654652,50.091179],[55.655239,50.093651],[55.656609,50.098728],[55.657021,50.100281],[55.65707,50.100449],[55.661041,50.11528],[55.663261,50.123562],[55.664349,50.12772],[55.665371,50.13192],[55.668301,50.14389],[55.669769,50.149879],[55.670509,50.15292],[55.67086,50.15456],[55.67112,50.15593],[55.67136,50.157249],[55.671612,50.159081],[55.672039,50.162979],[55.672371,50.166901],[55.67392,50.186131],[55.6749,50.19799],[55.67572,50.20845],[55.67588,50.20982],[55.676208,50.212551],[55.676651,50.215321],[55.676979,50.217072],[55.67733,50.218658],[55.678268,50.22224],[55.681259,50.23251],[55.684158,50.24255],[55.687481,50.253929],[55.690571,50.264641],[55.691029,50.266361],[55.691422,50.268101],[55.691738,50.269581],[55.692032,50.271111],[55.692532,50.274361],[55.696041,50.307381],[55.696362,50.31065],[55.696678,50.313869],[55.69672,50.31422],[55.697319,50.32008],[55.697498,50.322521],[55.697578,50.324661],[55.697609,50.32692],[55.697601,50.328941],[55.697521,50.330891],[55.697411,50.33284],[55.697239,50.334782],[55.69635,50.344231],[55.695911,50.348961],[55.695419,50.354191],[55.69521,50.356339],[55.690521,50.406368],[55.688931,50.423382],[55.68734,50.440971],[55.686909,50.447571],[55.686771,50.45068],[55.686459,50.468208],[55.686249,50.480068],[55.68605,50.492432],[55.685509,50.524719],[55.685299,50.53756],[55.685349,50.540649],[55.685429,50.54372],[55.68549,50.54525],[55.685581,50.54636],[55.686039,50.549801],[55.686821,50.554131],[55.687618,50.558208],[55.688141,50.561829],[55.68832,50.563541],[55.688499,50.566299],[55.68853,50.568859],[55.688549,50.570358],[55.688499,50.572529],[55.688351,50.57476],[55.68792,50.579449],[55.68745,50.583328],[55.68634,50.59124],[55.685959,50.593609],[55.685711,50.594891],[55.685169,50.596901],[55.684582,50.598881],[55.68396,50.60078],[55.683239,50.602749],[55.682251,50.605331],[55.681309,50.607971],[55.680618,50.610081],[55.68,50.61237],[55.679581,50.614182],[55.67915,50.616341],[55.678841,50.618198],[55.678539,50.620289],[55.67601,50.641548],[55.675159,50.648911],[55.675049,50.650261],[55.6749,50.652691],[55.674831,50.654949],[55.67482,50.657501],[55.67487,50.65955],[55.674999,50.662289],[55.67524,50.66497],[55.675529,50.667419],[55.675892,50.669891],[55.676929,50.675911],[55.677311,50.67804],[55.677631,50.679859],[55.678249,50.683979],[55.678711,50.687851],[55.678951,50.690338],[55.679119,50.692928],[55.679279,50.696079],[55.679291,50.699471],[55.677898,50.740601],[55.677589,50.748569],[55.677399,50.75116],[55.67709,50.753811],[55.676601,50.757061],[55.675961,50.760399],[55.675301,50.763119],[55.674541,50.7659],[55.6731,50.77002],[55.67226,50.77206],[55.670979,50.774719],[55.657162,50.800831],[55.653919,50.80698],[55.652611,50.80941],[55.651291,50.812],[55.65049,50.813931],[55.64954,50.81675],[55.648701,50.82],[55.64806,50.823479],[55.64769,50.826519],[55.64753,50.82851],[55.647369,50.83252],[55.646912,50.845772],[55.64653,50.855751],[55.645721,50.876942],[55.645618,50.87822],[55.64547,50.879902],[55.645351,50.88089],[55.64489,50.883621],[55.64452,50.88567],[55.644138,50.887661],[55.64341,50.89093],[55.641479,50.897221],[55.640289,50.90099],[55.63921,50.90485],[55.638802,50.906441],[55.638439,50.90807],[55.63805,50.910309],[55.637718,50.912609],[55.63747,50.91502],[55.637211,50.918209],[55.63657,50.928921],[55.636181,50.935612],[55.63575,50.943008],[55.635681,50.94548],[55.6357,50.948002],[55.63588,50.951729],[55.636238,50.955761],[55.636669,50.958931],[55.64035,50.980049],[55.642658,50.9935],[55.64296,50.995331],[55.643372,50.99828],[55.643719,51.00169],[55.64389,51.00452],[55.643951,51.007172],[55.643959,51.00975],[55.643959,51.012459],[55.644058,51.045509],[55.644169,51.047729],[55.64426,51.049591],[55.64455,51.051651],[55.64481,51.052929],[55.645081,51.054119],[55.645432,51.055191],[55.645721,51.055988],[55.646141,51.056919],[55.64666,51.057919],[55.647259,51.05896],[55.648029,51.060108],[55.64978,51.062431],[55.651482,51.064861],[55.652489,51.066429],[55.65332,51.068008],[55.654209,51.07019],[55.654709,51.07193],[55.655071,51.073841],[55.65519,51.07539],[55.655231,51.076809],[55.655201,51.07851],[55.654999,51.08028],[55.654659,51.082531],[55.65414,51.085091],[55.653461,51.08786],[55.652431,51.091888],[55.652142,51.093651],[55.651909,51.095669],[55.651859,51.09763],[55.651951,51.098869],[55.652279,51.100891],[55.652721,51.102619],[55.65324,51.104309],[55.655621,51.110699],[55.656132,51.112202],[55.656609,51.11422],[55.65707,51.11644],[55.65733,51.118481],[55.65736,51.119492],[55.657299,51.123192],[55.6572,51.124001],[55.656769,51.127159],[55.656479,51.128868],[55.655319,51.134979],[55.65453,51.139481],[55.65419,51.14172],[55.653759,51.145229],[55.653679,51.14616],[55.65345,51.149071],[55.653511,51.152081],[55.65374,51.15472],[55.654388,51.158871],[55.65506,51.16201],[55.65617,51.16552],[55.660042,51.17598],[55.661221,51.179111],[55.66349,51.186131],[55.665001,51.19173],[55.665798,51.195229],[55.66663,51.19968],[55.667809,51.207119],[55.66964,51.221359],[55.671249,51.234001],[55.671398,51.235371],[55.6717,51.2383],[55.67186,51.240551],[55.671921,51.242199],[55.671921,51.243191],[55.671909,51.244572],[55.67178,51.24646],[55.671631,51.247921],[55.671429,51.249191],[55.671162,51.250542],[55.670811,51.251888],[55.670368,51.2533],[55.6693,51.25629],[55.66856,51.258011],[55.665871,51.263908],[55.665352,51.265091],[55.66431,51.2677],[55.66396,51.268631],[55.663422,51.270229],[55.663052,51.271381],[55.662579,51.273159],[55.66235,51.27433],[55.662182,51.275089],[55.6619,51.27692],[55.66177,51.277821],[55.661591,51.279369],[55.661449,51.281639],[55.661331,51.284241],[55.66127,51.286369],[55.661259,51.287922],[55.661282,51.293129],[55.661301,51.295361],[55.661388,51.30225],[55.66135,51.304352],[55.661129,51.308788],[55.660969,51.311001],[55.660889,51.31181],[55.66048,51.314831],[55.660172,51.316669],[55.656269,51.33997],[55.65115,51.370121],[55.650101,51.376541],[55.64996,51.37743],[55.64954,51.37999],[55.64949,51.38031],[55.64912,51.38258],[55.648979,51.383911],[55.64893,51.384609],[55.648899,51.386002],[55.64896,51.387772],[55.649071,51.389061],[55.64941,51.39122],[55.649799,51.393108],[55.650059,51.39418],[55.650391,51.39518],[55.65134,51.396999],[55.65202,51.398102],[55.652679,51.398991],[55.653431,51.399872],[55.656631,51.402611],[55.657398,51.403191],[55.658329,51.403831],[55.661049,51.405479],[55.66185,51.406189],[55.66246,51.406811],[55.66296,51.407379],[55.66349,51.40807],[55.663818,51.40855],[55.66394,51.40873],[55.664612,51.40992],[55.665001,51.41077],[55.66539,51.4118],[55.66584,51.41317],[55.666321,51.414791],[55.66888,51.423191],[55.66972,51.4259],[55.67144,51.43161],[55.671909,51.433189],[55.672352,51.43462],[55.677689,51.452171],[55.67905,51.45612],[55.680439,51.459789],[55.68087,51.4608],[55.682091,51.463509],[55.6828,51.465],[55.68573,51.470791],[55.688469,51.476189],[55.689339,51.477989],[55.690701,51.481079],[55.690971,51.481758],[55.69199,51.48439],[55.693562,51.48893],[55.695011,51.493679],[55.695518,51.495628],[55.695889,51.497108],[55.70332,51.531422],[55.706501,51.5462],[55.706989,51.548721],[55.7075,51.55143],[55.708221,51.555592],[55.70882,51.559441],[55.709221,51.562199],[55.709591,51.565022],[55.7099,51.567551],[55.710339,51.571621],[55.711189,51.58115],[55.71254,51.596439],[55.712711,51.599602],[55.712811,51.60178],[55.712841,51.60294],[55.712849,51.60466],[55.712799,51.607578],[55.7122,51.624611],[55.712151,51.62603],[55.712101,51.627251],[55.711441,51.644531],[55.711319,51.64764],[55.711281,51.650318],[55.711288,51.652691],[55.711349,51.655529],[55.711559,51.659061],[55.7117,51.66074],[55.71188,51.662609],[55.712219,51.665421],[55.71246,51.66711],[55.71402,51.676769],[55.71463,51.679581],[55.715221,51.681911],[55.71693,51.687439],[55.718941,51.69244],[55.719601,51.694069],[55.720299,51.695671],[55.721561,51.698292],[55.721901,51.69891],[55.722099,51.699261],[55.72261,51.700039],[55.723381,51.701118],[55.72575,51.70401],[55.726799,51.705551],[55.727711,51.70739],[55.73074,51.71487],[55.731682,51.717339],[55.732731,51.72094],[55.73333,51.723331],[55.733871,51.725269],[55.734291,51.726639],[55.735668,51.730011],[55.736431,51.731579],[55.737579,51.733879],[55.738319,51.735439],[55.738831,51.736679],[55.739491,51.73859],[55.739899,51.739891],[55.74033,51.741421],[55.742481,51.75071],[55.743118,51.753731],[55.746429,51.768318],[55.748341,51.776112],[55.752659,51.790218],[55.759251,51.811508],[55.7607,51.815601],[55.762489,51.819321],[55.764339,51.822701],[55.766369,51.82571],[55.772129,51.832142],[55.77663,51.837151],[55.778831,51.839802],[55.780842,51.842659],[55.782471,51.84565],[55.78384,51.848549],[55.785179,51.851929],[55.786469,51.855801],[55.787449,51.859379],[55.788342,51.86385],[55.79689,51.908421],[55.797081,51.909882],[55.797611,51.916401],[55.79763,51.918541],[55.79763,51.9207],[55.7976,51.92284],[55.797409,51.927021],[55.797329,51.928532],[55.79726,51.930019],[55.797081,51.93383],[55.7971,51.934799],[55.79718,51.936218],[55.797249,51.937019],[55.797352,51.937721],[55.797501,51.938511],[55.79768,51.939339],[55.79784,51.93996],[55.797989,51.940491],[55.798161,51.941002],[55.798321,51.941448],[55.79866,51.942322],[55.79887,51.942741],[55.799332,51.9436],[55.799671,51.944172],[55.807259,51.956848],[55.807739,51.957722],[55.808239,51.95879],[55.808701,51.959949],[55.808979,51.96093],[55.813591,51.980122],[55.813961,51.981949],[55.814171,51.983379],[55.81432,51.985371],[55.814339,51.98695],[55.814251,51.998631],[55.814232,52.000389],[55.813709,52.06361],[55.81366,52.069031],[55.813648,52.070789],[55.81361,52.075951],[55.813301,52.108681],[55.81324,52.11496],[55.81319,52.1203],[55.813122,52.121632],[55.812851,52.123539],[55.812431,52.125431],[55.811821,52.12714],[55.811001,52.128849],[55.80444,52.139221],[55.803692,52.140442],[55.783829,52.171841],[55.783279,52.17284],[55.782768,52.174129],[55.782219,52.176041],[55.781929,52.17728],[55.781521,52.179192],[55.781361,52.18087],[55.781311,52.182621],[55.781311,52.183571],[55.781399,52.185379],[55.781429,52.186661],[55.781429,52.188091],[55.781399,52.188881],[55.78133,52.189789],[55.78125,52.190899],[55.781189,52.191502],[55.781132,52.192032],[55.78101,52.19265],[55.780819,52.193741],[55.780529,52.194908],[55.780361,52.195518],[55.78014,52.19622],[55.779881,52.196972],[55.779598,52.19767],[55.77927,52.19833],[55.778961,52.198971],[55.778599,52.199551],[55.77718,52.202],[55.77422,52.207008],[55.771309,52.211922],[55.76897,52.215889],[55.76841,52.216808],[55.766151,52.2206],[55.765202,52.222229],[55.759621,52.23164],[55.75816,52.234112],[55.757721,52.234821],[55.756699,52.236328],[55.75634,52.236832],[55.755852,52.2374],[55.755569,52.237671],[55.755348,52.237869],[55.75518,52.237999],[55.754238,52.238701],[55.75383,52.23904],[55.753559,52.239319],[55.7533,52.239639],[55.752312,52.240871],[55.751579,52.241791],[55.75127,52.242111],[55.75106,52.24229],[55.750519,52.242691],[55.749741,52.24321],[55.73579,52.251579],[55.727631,52.256451],[55.725208,52.2579],[55.72377,52.258781],[55.7234,52.25906],[55.722851,52.25956],[55.720501,52.262089],[55.720291,52.262321],[55.717449,52.265339],[55.71051,52.273041],[55.709721,52.273708],[55.709179,52.274078],[55.708549,52.274391],[55.703751,52.276489],[55.69817,52.278881],[55.69619,52.27977],[55.695301,52.280201],[55.693359,52.281471],[55.692009,52.282261],[55.69125,52.282619],[55.690701,52.282829],[55.690102,52.28297],[55.689499,52.283031],[55.689041,52.283051],[55.68858,52.28299],[55.68829,52.282959],[55.687962,52.282848],[55.68729,52.2826],[55.686741,52.282341],[55.68317,52.279949],[55.682301,52.279339],[55.682011,52.279148],[55.681671,52.278999],[55.681419,52.27898],[55.681149,52.27903],[55.68087,52.27919],[55.68074,52.279301],[55.680401,52.279739],[55.680061,52.280331],[55.679749,52.28075],[55.679111,52.281368],[55.67849,52.28191],[55.677841,52.282661],[55.677471,52.283279],[55.675369,52.28727],[55.674358,52.289181],[55.673279,52.29121],[55.673019,52.291721],[55.672562,52.292591],[55.672119,52.29343],[55.670609,52.296329],[55.67033,52.29686],[55.668861,52.299648],[55.66848,52.300381],[55.668339,52.30064],[55.667721,52.301811],[55.667461,52.30241],[55.667068,52.303429],[55.66674,52.304699],[55.666561,52.30563],[55.666439,52.30658],[55.66637,52.30748],[55.66637,52.308411],[55.666401,52.309368],[55.66655,52.310638],[55.666729,52.311661],[55.6674,52.314411],[55.668072,52.317181],[55.6684,52.318241],[55.668812,52.319221],[55.67284,52.32666],[55.675659,52.33189],[55.67635,52.33313],[55.676819,52.333981],[55.677719,52.335609],[55.677879,52.335911],[55.68063,52.340981],[55.68615,52.351101],[55.690151,52.35844],[55.69622,52.369579],[55.69659,52.370281],[55.696629,52.370338],[55.699631,52.375858],[55.69989,52.376339],[55.700821,52.37804],[55.70174,52.379749],[55.701801,52.379841],[55.702808,52.38171],[55.7033,52.382549],[55.703899,52.383709],[55.704239,52.384331],[55.704979,52.385731],[55.705872,52.387321],[55.707142,52.389622],[55.707169,52.389671],[55.707378,52.39027],[55.70742,52.39061],[55.707409,52.39093],[55.707371,52.39156],[55.707409,52.392189],[55.707409,52.39275],[55.707321,52.39315],[55.707191,52.393452],[55.706982,52.39381],[55.706039,52.39542],[55.705978,52.395531],[55.70512,52.396999],[55.704239,52.398479],[55.70282,52.400879],[55.701019,52.403938],[55.70005,52.405579],[55.69923,52.406952],[55.697472,52.40995],[55.696301,52.411949],[55.69445,52.415131],[55.68821,52.4258],[55.68763,52.42662],[55.68729,52.426929],[55.686039,52.427731],[55.685669,52.428059],[55.68531,52.428501],[55.68504,52.428982],[55.68483,52.429401],[55.684631,52.430019],[55.684139,52.43232],[55.68396,52.432941],[55.683769,52.433361],[55.68354,52.43383],[55.682079,52.436249],[55.67815,52.44297],[55.67725,52.444481],[55.676971,52.44495],[55.67622,52.446251],[55.675152,52.448051],[55.674011,52.45002],[55.670921,52.455299],[55.67057,52.455898],[55.670471,52.456181],[55.670429,52.45647],[55.67049,52.456779],[55.670609,52.457119],[55.67086,52.4576],[55.678631,52.471859],[55.682621,52.479179],[55.685921,52.485222],[55.685619,52.485741],[55.685261,52.486542],[55.685101,52.486881],[55.684761,52.487549],[55.682831,52.49123],[55.679352,52.497681],[55.677639,52.50095],[55.67712,52.50198],[55.67664,52.503071],[55.676079,52.504501],[55.675571,52.505939],[55.675209,52.50713],[55.67466,52.509109],[55.673908,52.511829],[55.673679,52.512699],[55.673489,52.513561],[55.67337,52.51432],[55.673328,52.514912],[55.673271,52.516418],[55.673241,52.517658],[55.67305,52.523499],[55.67292,52.528938],[55.67281,52.532299],[55.672661,52.537601],[55.6726,52.538269],[55.672451,52.539371],[55.672199,52.54076],[55.671501,52.543941],[55.670971,52.545891],[55.669621,52.54969],[55.667969,52.554371],[55.66539,52.563148],[55.66473,52.564739],[55.66301,52.56778],[55.662319,52.569321],[55.66164,52.571339],[55.658588,52.58429],[55.65654,52.593121],[55.655369,52.597691],[55.654362,52.601082],[55.65126,52.60873],[55.64576,52.622341],[55.643822,52.62743],[55.643391,52.628719],[55.643169,52.630539],[55.643108,52.63242],[55.64323,52.634209],[55.64381,52.641621],[55.645309,52.66272],[55.645321,52.665001],[55.645222,52.667549],[55.64325,52.682449],[55.642529,52.68782],[55.639309,52.712391],[55.637852,52.722641],[55.63607,52.733749],[55.635971,52.73761],[55.636169,52.743118],[55.636471,52.751598],[55.63649,52.754292],[55.636131,52.761169],[55.636269,52.7631],[55.63707,52.766842],[55.637798,52.77449],[55.63829,52.77763],[55.642929,52.80006],[55.643501,52.805939],[55.644241,52.815681],[55.644779,52.822552],[55.645939,52.83707],[55.646069,52.838692],[55.64642,52.84306],[55.64658,52.846931],[55.64695,52.849682],[55.64827,52.855042],[55.648991,52.85799],[55.65287,52.873421],[55.653889,52.876011],[55.65781,52.884899],[55.660789,52.892078],[55.661629,52.894821],[55.670052,52.921558],[55.674309,52.934212],[55.67485,52.935478],[55.682678,52.952129],[55.68465,52.958199],[55.691521,52.978222],[55.692421,52.981289],[55.69302,52.983971],[55.693562,52.987148],[55.694321,52.993038],[55.697681,53.011028],[55.69928,53.01918],[55.704781,53.040829],[55.70789,53.052311],[55.710011,53.059601],[55.710178,53.060631],[55.71014,53.061729],[55.709648,53.064369],[55.70866,53.068539],[55.70723,53.072842],[55.704472,53.079929],[55.702789,53.08424],[55.699131,53.093811],[55.694149,53.106819],[55.692871,53.110142],[55.676922,53.151619],[55.668449,53.173512],[55.660149,53.195129],[55.65966,53.196121],[55.650101,53.21085],[55.637341,53.230019],[55.628769,53.23912],[55.62315,53.245098],[55.619541,53.248459],[55.61657,53.250809],[55.613331,53.253071],[55.61142,53.255001],[55.60989,53.256939],[55.608349,53.259449],[55.60717,53.261848],[55.604401,53.268929],[55.598129,53.284931],[55.594898,53.292999],[55.581131,53.328781],[55.564869,53.370869],[55.550812,53.406952],[55.550091,53.40863],[55.548779,53.41198],[55.547771,53.415569],[55.547058,53.419151],[55.546749,53.420689],[55.546619,53.422409],[55.54705,53.434429],[55.548222,53.464298],[55.548389,53.46764],[55.54985,53.48539],[55.549969,53.487419],[55.5499,53.488548],[55.549671,53.489529],[55.548119,53.49712],[55.546909,53.503609],[55.542259,53.530602],[55.542068,53.531681],[55.541752,53.53487],[55.5392,53.56073],[55.53825,53.570389],[55.537701,53.575939],[55.537392,53.57917],[55.537182,53.580139],[55.536591,53.582211],[55.53326,53.59341],[55.53297,53.594631],[55.530918,53.608089],[55.530819,53.609329],[55.53083,53.610641],[55.531311,53.619499],[55.531189,53.622349],[55.52932,53.64687],[55.526699,53.66592],[55.524429,53.682209],[55.52264,53.694988],[55.52021,53.711361],[55.516571,53.739811],[55.514339,53.75666],[55.513729,53.76046],[55.51334,53.76226],[55.512871,53.763851],[55.51223,53.765751],[55.509541,53.773739],[55.508492,53.777111],[55.502892,53.803589],[55.50111,53.811771],[55.494579,53.834061],[55.490639,53.84745],[55.490189,53.849079],[55.489601,53.852291],[55.489239,53.856819],[55.48904,53.864101],[55.488972,53.867031],[55.488731,53.870461],[55.48848,53.87254],[55.488159,53.875191],[55.48772,53.878819],[55.48727,53.880661],[55.48658,53.882549],[55.484219,53.88773],[55.48243,53.892479],[55.481289,53.895081],[55.47945,53.898918],[55.477989,53.901131],[55.474831,53.90564],[55.47131,53.911831],[55.467682,53.918968],[55.46714,53.92078],[55.466629,53.923649],[55.466049,53.92635],[55.465599,53.927929],[55.46487,53.929932],[55.462429,53.936199],[55.461441,53.938709],[55.460609,53.941231],[55.460091,53.95723],[55.459911,53.962921],[55.45985,53.964741],[55.46014,53.965679],[55.47105,53.991089],[55.471519,53.992229],[55.47184,53.99353],[55.475712,54.01577],[55.477589,54.025909],[55.47768,54.02668],[55.477581,54.027409],[55.476978,54.029301],[55.47562,54.033089],[55.472099,54.042679],[55.46788,54.054298],[55.467541,54.055519],[55.466969,54.062222],[55.466251,54.07093],[55.46756,54.08437],[55.468208,54.091629],[55.469379,54.104031],[55.46936,54.105049],[55.4678,54.12318],[55.466782,54.134659],[55.466579,54.13686],[55.466011,54.138771],[55.465939,54.14032],[55.465542,54.151291],[55.465172,54.16132],[55.464439,54.181629],[55.464352,54.183262],[55.464069,54.18449],[55.46048,54.194721],[55.459839,54.19688],[55.458569,54.201759],[55.45583,54.212189],[55.45314,54.222198],[55.452351,54.22514],[55.450249,54.235771],[55.44936,54.240509],[55.448101,54.2467],[55.445122,54.260769],[55.443291,54.26936],[55.441669,54.277119],[55.440521,54.28236],[55.439941,54.285179],[55.43869,54.291149],[55.43848,54.292141],[55.437771,54.29549],[55.437672,54.29628],[55.437771,54.297291],[55.439812,54.306301],[55.440399,54.30888],[55.440369,54.309509],[55.44022,54.31002],[55.439949,54.31076],[55.438702,54.314041],[55.438412,54.315071],[55.438278,54.31609],[55.43832,54.317341],[55.438801,54.32312],[55.43996,54.328449],[55.440269,54.330811],[55.440929,54.33857],[55.441071,54.341572],[55.44125,54.354111],[55.44125,54.35651],[55.441471,54.37236],[55.441689,54.39426],[55.441898,54.396351],[55.443249,54.399651],[55.44857,54.412609],[55.453491,54.424721],[55.457619,54.434971],[55.459049,54.438339],[55.464409,54.449371],[55.472149,54.465191],[55.472691,54.466339],[55.473259,54.46796],[55.479778,54.48851],[55.48167,54.494282],[55.482269,54.4963],[55.482269,54.49688],[55.482208,54.497639],[55.480141,54.523861],[55.480061,54.52449],[55.479851,54.52504],[55.47739,54.529381],[55.477249,54.529961],[55.477139,54.531151],[55.476219,54.541729],[55.474201,54.56496],[55.472179,54.588112],[55.470009,54.602631],[55.46994,54.603722],[55.470009,54.60487],[55.47002,54.606098],[55.4697,54.607128],[55.466881,54.614262],[55.466309,54.615631],[55.465858,54.61721],[55.46109,54.641659],[55.45863,54.65427],[55.450989,54.692638],[55.448528,54.705078],[55.44825,54.706329],[55.447842,54.707321],[55.443432,54.714001],[55.44199,54.716171],[55.441441,54.717289],[55.44091,54.71899],[55.437439,54.732639],[55.436798,54.736691],[55.433289,54.762531],[55.429932,54.788712],[55.42807,54.804649],[55.42786,54.8064],[55.42186,54.808319],[55.415779,54.813831],[55.40538,54.82312],[55.403271,54.82542],[55.40086,54.828671],[55.397289,54.834862],[55.386391,54.854118],[55.380249,54.864861],[55.369701,54.8834],[55.358471,54.902908],[55.35318,54.912109],[55.351509,54.91544],[55.349781,54.919559],[55.342049,54.93811],[55.3386,54.946571],[55.336929,54.950459],[55.336231,54.951691],[55.334591,54.954632],[55.3298,54.96291],[55.312511,54.993309],[55.311871,54.994419],[55.308102,55.000999],[55.30405,55.008072],[55.3022,55.010731],[55.28294,55.035019],[55.279598,55.03928],[55.268822,55.05315],[55.267792,55.054459],[55.26683,55.05555],[55.265709,55.05661],[55.252621,55.067379],[55.25045,55.069149],[55.243279,55.07502],[55.224491,55.089691],[55.207741,55.103001],[55.199909,55.10997],[55.1982,55.111778],[55.19545,55.11475],[55.191879,55.118969],[55.19067,55.1203],[55.18932,55.12162],[55.186298,55.12389],[55.183521,55.125851],[55.181499,55.127331],[55.18042,55.128021],[55.179428,55.12838],[55.177521,55.12801],[55.16737,55.125011],[55.165501,55.124741],[55.164558,55.124889],[55.16367,55.125469],[55.16188,55.12706],[55.161518,55.127361],[55.160049,55.12886],[55.158371,55.131279],[55.155941,55.135269],[55.153461,55.1399],[55.15033,55.145969],[55.150051,55.146511],[55.149441,55.14777],[55.14867,55.149139],[55.14415,55.1558],[55.143341,55.15712],[55.142609,55.158779],[55.139751,55.16539],[55.138371,55.168598],[55.137951,55.169781],[55.1376,55.17123],[55.137371,55.173859],[55.1362,55.20266],[55.1362,55.205269],[55.13681,55.21809],[55.13707,55.223808],[55.137791,55.240391],[55.138359,55.25322],[55.138321,55.255421],[55.137699,55.262341],[55.136608,55.274231],[55.135632,55.28524],[55.135288,55.288342],[55.134731,55.2915],[55.133968,55.29459],[55.133099,55.297482],[55.132069,55.30043],[55.13176,55.301201],[55.131229,55.302311],[55.130878,55.30302],[55.12941,55.305309],[55.12796,55.307301],[55.126549,55.30899],[55.12381,55.311699],[55.11132,55.323582],[55.110668,55.324211],[55.108189,55.3265],[55.10717,55.327438],[55.105671,55.328819],[55.10144,55.332741],[55.09919,55.334999],[55.097191,55.336868],[55.09584,55.338089],[55.09359,55.34045],[55.092049,55.342411],[55.090729,55.344521],[55.089588,55.346729],[55.087269,55.35218],[55.08271,55.362839],[55.082249,55.36393],[55.081749,55.365261],[55.080891,55.36813],[55.080441,55.369781],[55.079609,55.37392],[55.07925,55.376831],[55.079079,55.37896],[55.079021,55.381001],[55.07909,55.384651],[55.079231,55.388241],[55.079262,55.388969],[55.079369,55.391682],[55.07935,55.394051],[55.07914,55.395279],[55.07906,55.395779],[55.078541,55.397449],[55.071011,55.4119],[55.0662,55.418678],[55.058552,55.429279],[55.056671,55.431881],[55.055168,55.433979],[55.054169,55.435371],[55.047668,55.444351],[55.043839,55.448471],[55.039921,55.452671],[55.036121,55.45673],[55.031078,55.462132],[55.02993,55.463169],[55.025261,55.46817],[55.022678,55.47121],[55.015419,55.479031],[55.011471,55.48325],[55.00721,55.487881],[55.005341,55.489841],[55.004292,55.490971],[55.00346,55.49194],[54.99976,55.498241],[54.998421,55.50032],[54.99715,55.502731],[54.995659,55.505291],[54.994041,55.508141],[54.992279,55.511211],[54.990582,55.51408],[54.990299,55.514549],[54.98629,55.521851],[54.985031,55.524109],[54.98386,55.526711],[54.982948,55.52956],[54.982239,55.53286],[54.981892,55.534679],[54.981621,55.536919],[54.9813,55.544868],[54.980869,55.552792],[54.980659,55.555901],[54.980492,55.557461],[54.980221,55.559052],[54.979321,55.562901],[54.97818,55.566582],[54.976959,55.569439],[54.975311,55.57222],[54.974522,55.573341],[54.973621,55.574402],[54.971722,55.576469],[54.971329,55.576859],[54.96925,55.57906],[54.96706,55.58123],[54.96434,55.583359],[54.963219,55.584129],[54.9617,55.584751],[54.960991,55.58493],[54.960312,55.585121],[54.95866,55.585331],[54.95718,55.585369],[54.955688,55.58519],[54.954731,55.58482],[54.95295,55.584179],[54.95126,55.583809],[54.94902,55.583092],[54.936508,55.579128],[54.929699,55.576931],[54.928501,55.576672],[54.927219,55.576641],[54.925781,55.57695],[54.924301,55.57769],[54.92363,55.578098],[54.922749,55.578892],[54.921341,55.580318],[54.920849,55.581131],[54.917332,55.586761],[54.912281,55.594929],[54.91058,55.598148],[54.909321,55.601109],[54.90807,55.604259],[54.907341,55.60648],[54.907028,55.607632],[54.906559,55.60955],[54.906288,55.611069],[54.904819,55.617901],[54.904518,55.619251],[54.904251,55.620491],[54.903919,55.623051],[54.90332,55.625488],[54.90237,55.628021],[54.89941,55.632771],[54.897282,55.636261],[54.895359,55.639481],[54.89484,55.640339],[54.893181,55.64394],[54.892159,55.646889],[54.891472,55.649391],[54.890732,55.652821],[54.88763,55.66811],[54.884869,55.681709],[54.88084,55.701359],[54.8797,55.707031],[54.879181,55.708351],[54.878559,55.709251],[54.877338,55.710411],[54.876289,55.710949],[54.875462,55.710911],[54.87104,55.70813],[54.868149,55.70644],[54.865608,55.705261],[54.86319,55.704411],[54.860741,55.703659],[54.859039,55.70335],[54.85738,55.70327],[54.85548,55.703381],[54.853649,55.703701],[54.851921,55.704239],[54.850761,55.704659],[54.849751,55.70525],[54.848782,55.70591],[54.84721,55.70734],[54.845921,55.708721],[54.844639,55.710331],[54.84071,55.715698],[54.836929,55.72089],[54.8363,55.72171],[54.834869,55.72319],[54.833141,55.72448],[54.83075,55.725441],[54.825741,55.726768],[54.824032,55.72728],[54.82127,55.728668],[54.819839,55.729481],[54.817902,55.73098],[54.81694,55.731861],[54.81477,55.734138],[54.812309,55.73679],[54.802979,55.746792],[54.800652,55.749561],[54.799351,55.751381],[54.79845,55.752991],[54.796921,55.75589],[54.795879,55.758228],[54.794369,55.761349],[54.79351,55.763039],[54.79216,55.76535],[54.79192,55.765701],[54.79015,55.768139],[54.787418,55.77142],[54.78384,55.775379],[54.782242,55.777538],[54.78157,55.77866],[54.780529,55.780682],[54.77985,55.782009],[54.77916,55.783081],[54.778511,55.783878],[54.777679,55.78474],[54.776909,55.78529],[54.775822,55.785759],[54.773682,55.785789],[54.767872,55.784031],[54.767189,55.783829],[54.763988,55.78289],[54.759991,55.781792],[54.75808,55.781342],[54.756199,55.781139],[54.754761,55.781101],[54.752392,55.781139],[54.750481,55.781422],[54.745941,55.782139],[54.742882,55.7826],[54.74194,55.782761],[54.737862,55.783428],[54.73595,55.783138],[54.73439,55.78228],[54.73304,55.78133],[54.727871,55.777618],[54.726528,55.777081],[54.72509,55.776852],[54.722149,55.776829],[54.716301,55.776749],[54.71484,55.776451],[54.713188,55.77586],[54.702301,55.769932],[54.701519,55.769451],[54.699902,55.768169],[54.698761,55.76675],[54.69836,55.76622],[54.697201,55.763741],[54.696548,55.762081],[54.694908,55.75774],[54.692669,55.752022],[54.692101,55.750641],[54.690891,55.748219],[54.689869,55.746479],[54.686829,55.74213],[54.682739,55.736439],[54.68071,55.733608],[54.67926,55.731918],[54.678429,55.73122],[54.677441,55.730518],[54.675678,55.72998],[54.67395,55.73003],[54.672249,55.730549],[54.667721,55.733021],[54.66748,55.733139],[54.665081,55.734409],[54.6642,55.734871],[54.66375,55.734989],[54.663479,55.73489],[54.663288,55.73465],[54.663139,55.734032],[54.66317,55.733631],[54.663349,55.733261],[54.66354,55.73307],[54.663929,55.73312],[54.664181,55.733551],[54.664421,55.734371],[54.664551,55.735081],[54.664921,55.737061],[54.66534,55.73914],[54.666069,55.743031],[54.67001,55.764301],[54.672119,55.77565],[54.673309,55.782028],[54.674702,55.79158],[54.67527,55.79491],[54.67614,55.799492],[54.676418,55.80175],[54.67643,55.802879],[54.67638,55.804379],[54.676319,55.80537],[54.676239,55.806561],[54.67598,55.809849],[54.675838,55.811871],[54.67556,55.81443],[54.67535,55.81543],[54.674171,55.820782],[54.672138,55.82967],[54.669331,55.841999],[54.66674,55.853401],[54.665531,55.858742],[54.6642,55.864491],[54.66288,55.870319],[54.66124,55.87759],[54.659679,55.8843],[54.65884,55.887218],[54.65807,55.88958],[54.657139,55.89201],[54.656559,55.893372],[54.655449,55.89584],[54.65424,55.89856],[54.65205,55.903351],[54.650982,55.905739],[54.649849,55.90834],[54.649391,55.90958],[54.648708,55.911469],[54.648022,55.913471],[54.647282,55.916161],[54.646801,55.918159],[54.6465,55.919479],[54.645939,55.922279],[54.645641,55.924271],[54.64521,55.926781],[54.6451,55.927639],[54.644539,55.930771],[54.64452,55.93137],[54.644321,55.932629],[54.644161,55.933701],[54.643681,55.937119],[54.643181,55.94035],[54.64291,55.942261],[54.642731,55.943569],[54.642559,55.94508],[54.642441,55.946609],[54.642399,55.947449],[54.642368,55.94833],[54.642349,55.949909],[54.64238,55.951591],[54.64246,55.95335],[54.64257,55.955132],[54.643391,55.967979],[54.643871,55.974979],[54.644112,55.9758],[54.645401,55.995911],[54.645649,55.999821],[54.64595,56.004421],[54.646801,56.017712],[54.64777,56.032749],[54.648731,56.047531],[54.649361,56.057251],[54.649399,56.057941],[54.650101,56.068951],[54.65044,56.074249],[54.650661,56.07782],[54.650669,56.078011],[54.650871,56.080952],[54.65089,56.081348],[54.65107,56.08419],[54.651089,56.08453],[54.651299,56.087551],[54.651409,56.08976],[54.652229,56.102268],[54.65279,56.10857],[54.653149,56.11108],[54.654079,56.115681],[54.654282,56.116501],[54.654678,56.118099],[54.655411,56.120739],[54.65723,56.127541],[54.659191,56.134892],[54.660511,56.139309],[54.662338,56.144741],[54.665249,56.153381],[54.66642,56.15691],[54.668629,56.16354],[54.672539,56.17519],[54.67445,56.180859],[54.675129,56.182831],[54.6763,56.185509],[54.677559,56.18787],[54.678829,56.18977],[54.681629,56.19302],[54.685379,56.1973],[54.687679,56.199921],[54.69323,56.206329],[54.69767,56.211479],[54.700779,56.21513],[54.70499,56.220051],[54.70713,56.222591],[54.70863,56.224312],[54.719292,56.236759],[54.72155,56.239792],[54.722988,56.242111],[54.724621,56.244949],[54.72646,56.248669],[54.728119,56.25267],[54.729301,56.255981],[54.730671,56.26046],[54.732208,56.266048],[54.73465,56.274929],[54.737309,56.284599],[54.740238,56.29528],[54.741459,56.299759],[54.742451,56.30331],[54.74308,56.305641],[54.743328,56.306549],[54.744011,56.309292],[54.744431,56.310799],[54.745178,56.313339],[54.746929,56.319698],[54.74913,56.327782],[54.75127,56.335579],[54.751911,56.337952],[54.752621,56.34087],[54.753189,56.343601],[54.75383,56.347221],[54.754681,56.352612],[54.755508,56.357979],[54.757141,56.368118],[54.758308,56.375591],[54.759369,56.38224],[54.760269,56.387981],[54.761181,56.393742],[54.76202,56.399109],[54.763481,56.408401],[54.764179,56.412868],[54.764912,56.417439],[54.766361,56.426579],[54.767849,56.436069],[54.769329,56.44548],[54.77029,56.451439],[54.77095,56.455681],[54.771599,56.459869],[54.772919,56.467838],[54.773529,56.471001],[54.77557,56.48167],[54.779339,56.501308],[54.782982,56.520302],[54.784142,56.526348],[54.78595,56.535759],[54.786251,56.537338],[54.786739,56.539989],[54.788971,56.551559],[54.791481,56.564621],[54.793541,56.575432],[54.7953,56.584549],[54.796471,56.590401],[54.802078,56.612301],[54.80304,56.616119],[54.80336,56.617279],[54.804211,56.620689],[54.80545,56.625519],[54.806412,56.629318],[54.807411,56.63324],[54.80817,56.636829],[54.808491,56.63871],[54.80912,56.643742],[54.809792,56.649261],[54.810619,56.656109],[54.811432,56.662949],[54.812271,56.66996],[54.813332,56.67894],[54.813869,56.683289],[54.81422,56.686359],[54.814671,56.69001],[54.815281,56.69503],[54.81559,56.697639],[54.81612,56.702271],[54.81625,56.703381],[54.816319,56.70443],[54.816441,56.706532],[54.816559,56.709141],[54.816639,56.714771],[54.816681,56.722599],[54.816738,56.729401],[54.81675,56.730419],[54.816799,56.73798],[54.81686,56.749969],[54.816921,56.757],[54.816921,56.757542],[54.81715,56.793861],[54.817181,56.799141],[54.817402,56.839279],[54.81752,56.863491],[54.817558,56.866192],[54.817768,56.868931],[54.818138,56.871922],[54.818588,56.874352],[54.81926,56.877159],[54.820061,56.87973],[54.82132,56.88287],[54.825951,56.893631],[54.826462,56.894989],[54.82671,56.896278],[54.8269,56.89827],[54.826988,56.900848],[54.827091,56.903469],[54.827251,56.90778],[54.827751,56.91758],[54.828339,56.922459],[54.82917,56.927349],[54.82991,56.93148],[54.830528,56.935371],[54.83102,56.939499],[54.831219,56.942089],[54.83136,56.944679],[54.83186,56.96133],[54.832298,56.976261],[54.832489,56.981819],[54.832611,56.98418],[54.832748,56.98595],[54.832909,56.987659],[54.841751,57.05891],[54.842751,57.066971],[54.845871,57.092319],[54.846611,57.098259],[54.847,57.1012],[54.847179,57.10244],[54.847271,57.103039],[54.847351,57.1035],[54.847511,57.104221],[54.847729,57.105179],[54.850578,57.11689],[54.85368,57.12962],[54.853931,57.13068],[54.856098,57.13966],[54.857651,57.146091],[54.859219,57.152538],[54.860199,57.156212],[54.86039,57.156841],[54.860592,57.157551],[54.86079,57.158089],[54.860989,57.15863],[54.861271,57.15929],[54.86327,57.164169],[54.865829,57.170479],[54.870941,57.183079],[54.873699,57.189919],[54.874222,57.191341],[54.874599,57.192589],[54.87492,57.193729],[54.875172,57.19487],[54.875389,57.19598],[54.87561,57.197201],[54.875809,57.198551],[54.87598,57.199921],[54.876228,57.20211],[54.879848,57.23526],[54.883839,57.271709],[54.88488,57.281361],[54.885391,57.286228],[54.885761,57.289349],[54.886009,57.291],[54.88623,57.29237],[54.88662,57.29438],[54.88707,57.296478],[54.887661,57.298771],[54.888168,57.30069],[54.888451,57.30154],[54.88868,57.30225],[54.88908,57.30341],[54.889408,57.304249],[54.889931,57.305592],[54.890362,57.306591],[54.89061,57.307152],[54.891491,57.309158],[54.893631,57.313969],[54.8983,57.324348],[54.90033,57.328899],[54.902451,57.333641],[54.902882,57.334629],[54.903229,57.33551],[54.903599,57.336491],[54.904221,57.338348],[54.904751,57.340061],[54.90514,57.341339],[54.905849,57.343498],[54.905949,57.344791],[54.907589,57.352791],[54.90855,57.35762],[54.909931,57.364521],[54.910099,57.365318],[54.911282,57.370911],[54.911678,57.372929],[54.911949,57.37447],[54.91214,57.375969],[54.912251,57.37751],[54.912239,57.379021],[54.91217,57.380489],[54.912048,57.382011],[54.911758,57.385181],[54.911671,57.386372],[54.911621,57.38739],[54.91164,57.388378],[54.911709,57.389439],[54.9118,57.390491],[54.911961,57.391682],[54.912128,57.392632],[54.912338,57.393501],[54.912579,57.394428],[54.913738,57.398151],[54.915539,57.40395],[54.915821,57.404789],[54.916302,57.406052],[54.916759,57.40707],[54.91745,57.40836],[54.918049,57.409409],[54.91856,57.410229],[54.91906,57.410919],[54.919621,57.41161],[54.920891,57.412979],[54.92168,57.41362],[54.922581,57.41423],[54.922661,57.41428],[54.923611,57.414799],[54.92411,57.415031],[54.924591,57.415218],[54.92514,57.41539],[54.925991,57.41552],[54.927502,57.41568],[54.928959,57.415852],[54.930241,57.41597],[54.931141,57.416088],[54.931541,57.41621],[54.93187,57.41637],[54.932251,57.416611],[54.932732,57.416939],[54.93317,57.417301],[54.933681,57.417839],[54.934261,57.418579],[54.934978,57.419701],[54.936569,57.422218],[54.9384,57.425159],[54.93906,57.42614],[54.93964,57.426949],[54.940189,57.42765],[54.940929,57.42841],[54.941841,57.429161],[54.942799,57.429859],[54.943611,57.430462],[54.944111,57.430882],[54.944618,57.431351],[54.945148,57.431881],[54.945789,57.432579],[54.946369,57.433239],[54.946819,57.4338],[54.94735,57.434559],[54.947849,57.43528],[54.948238,57.435871],[54.948559,57.43642],[54.94891,57.437119],[54.94923,57.438049],[54.949471,57.43898],[54.94981,57.44046],[54.951229,57.4473],[54.952629,57.454121],[54.953041,57.456089],[54.953308,57.45726],[54.953541,57.458179],[54.953732,57.458931],[54.953999,57.459751],[54.9543,57.46064],[54.954609,57.46146],[54.95499,57.46244],[54.955421,57.463322],[54.95623,57.46487],[54.956848,57.465889],[54.95752,57.466869],[54.959419,57.469212],[54.961609,57.471859],[54.964561,57.476082],[54.966679,57.479179],[54.96748,57.480358],[54.967831,57.480942],[54.968151,57.48151],[54.96851,57.482231],[54.969051,57.48349],[54.969601,57.484901],[54.969872,57.48568],[54.970131,57.48679],[54.970421,57.488289],[54.971851,57.496109],[54.973801,57.507069],[54.9743,57.509739],[54.974812,57.51218],[54.976761,57.520279],[54.97905,57.529819],[54.980228,57.53471],[54.980942,57.537682],[54.981831,57.541401],[54.982738,57.5452],[54.983238,57.547199],[54.983589,57.54863],[54.98391,57.54998],[54.984211,57.551189],[54.984638,57.553089],[54.985069,57.555191],[54.98534,57.556782],[54.986221,57.562389],[54.987881,57.573261],[54.989071,57.58107],[54.990009,57.587139],[54.990292,57.588848],[54.99073,57.59108],[54.991402,57.594082],[54.991611,57.594971],[54.991829,57.595711],[54.9921,57.596432],[54.992481,57.597321],[54.993031,57.598309],[54.99374,57.599461],[54.99625,57.603321],[54.996559,57.603901],[54.99678,57.604401],[54.997028,57.605068],[54.997261,57.60582],[54.997509,57.606812],[54.997761,57.60796],[54.99929,57.614929],[54.999401,57.615528],[54.999569,57.616638],[54.99963,57.617451],[54.999649,57.61824],[54.999619,57.619141],[54.999561,57.62038],[54.999458,57.621529],[54.999352,57.622421],[54.999161,57.62368],[54.998989,57.625019],[54.99894,57.62561],[54.998909,57.626289],[54.998932,57.626961],[54.999008,57.627781],[54.999111,57.628422],[54.999241,57.628922],[55.00016,57.631901],[55.000332,57.632721],[55.000439,57.63356],[55.000511,57.63483],[55.00053,57.636471],[55.00045,57.640511],[55.00042,57.641621],[55.000351,57.64259],[55.00021,57.643822],[55.00005,57.64492],[54.999748,57.646561],[54.999561,57.647572],[54.99942,57.648769],[54.999329,57.649891],[54.999298,57.6511],[54.999359,57.652069],[54.999569,57.65411],[54.99979,57.655891],[55.00016,57.658321],[55.000462,57.65979],[55.00074,57.660851],[55.00108,57.66193],[55.002369,57.66563],[55.00433,57.671101],[55.00518,57.67347],[55.005989,57.675831],[55.006229,57.676601],[55.00647,57.677422],[55.006779,57.678558],[55.00705,57.679668],[55.00732,57.68092],[55.007439,57.681728],[55.0075,57.682461],[55.007542,57.683418],[55.007561,57.684841],[55.007568,57.686138],[55.007542,57.687408],[55.007469,57.688499],[55.007381,57.689579],[55.007271,57.690868],[55.006889,57.69455],[55.006748,57.69582],[55.006229,57.701149],[55.006039,57.703571],[55.005871,57.70657],[55.005852,57.70681],[55.00584,57.70705],[55.0056,57.711048],[55.005508,57.711979],[55.005371,57.712799],[55.004532,57.716129],[55.004219,57.716888],[55.003811,57.71769],[55.003349,57.718189],[55.002869,57.718571],[55.002399,57.7188],[55.00169,57.718868],[55.001129,57.71875],[55.000629,57.718449],[55.00013,57.71801],[54.99934,57.71719],[54.998329,57.71587],[54.99786,57.715302],[54.99728,57.71468],[54.996689,57.71402],[54.996109,57.713409],[54.995838,57.713181],[54.99559,57.713032],[54.99535,57.712971],[54.995129,57.712978],[54.994869,57.713051],[54.994678,57.713169],[54.994511,57.713322],[54.994339,57.713558],[54.994171,57.71394],[54.994041,57.71434],[54.993969,57.71484],[54.993961,57.71534],[54.99408,57.71619],[54.994362,57.71743],[54.994888,57.719109],[54.995029,57.71981],[54.995121,57.720612],[54.99514,57.721199],[54.995071,57.721741],[54.99469,57.723579],[54.992451,57.73497],[54.99155,57.739571],[54.99041,57.745319],[54.986382,57.765751],[54.98336,57.777149],[54.982868,57.77919],[54.9827,57.780079],[54.982578,57.781471],[54.982521,57.7831],[54.982521,57.784019],[54.9827,57.78746],[54.982929,57.791069],[54.983139,57.794201],[54.983219,57.79554],[54.983261,57.79657],[54.98328,57.79734],[54.983231,57.798279],[54.98299,57.79966],[54.982281,57.802799],[54.981541,57.806122],[54.980991,57.80854],[54.980259,57.811661],[54.980068,57.812382],[54.97966,57.813519],[54.979259,57.81432],[54.978779,57.815109],[54.978222,57.815849],[54.977699,57.816441],[54.977139,57.81702],[54.975739,57.81852],[54.974232,57.82011],[54.97271,57.821732],[54.971359,57.823158],[54.970249,57.824379],[54.969761,57.82505],[54.96928,57.825802],[54.96904,57.826241],[54.96875,57.82695],[54.968449,57.827839],[54.968182,57.828892],[54.967529,57.832352],[54.965641,57.842831],[54.965321,57.846352],[54.965778,57.850979],[54.9683,57.866692],[54.96925,57.87114],[54.97163,57.87743],[54.97298,57.884399],[54.97345,57.88818],[54.973621,57.891861],[54.973221,57.896992],[54.971889,57.90617],[54.971489,57.90847],[54.971142,57.910809],[54.971001,57.911911],[54.970871,57.913189],[54.97076,57.914551],[54.97068,57.915878],[54.970631,57.917332],[54.970612,57.918831],[54.970772,57.925819],[54.970879,57.931122],[54.971111,57.93475],[54.970661,57.93922],[54.968941,57.954922],[54.968201,57.96059],[54.967072,57.96685],[54.966282,57.97089],[54.962391,57.982052],[54.959461,57.98822],[54.95628,57.993069],[54.947769,58.001431],[54.94186,58.00684],[54.93618,58.012051],[54.929489,58.01952],[54.922199,58.028999],[54.920761,58.031719],[54.919991,58.035351],[54.918999,58.04007],[54.91861,58.044579],[54.919621,58.05241],[54.919849,58.055222],[54.919689,58.057919],[54.918949,58.061138],[54.91687,58.066639],[54.914459,58.072941],[54.914261,58.07449],[54.914009,58.07719],[54.914108,58.080021],[54.91412,58.083241],[54.913422,58.08646],[54.910488,58.09568],[54.909309,58.099461],[54.90794,58.10371],[54.907349,58.105831],[54.90641,58.109039],[54.905319,58.111012],[54.904041,58.113071],[54.90316,58.115429],[54.90276,58.118912],[54.902111,58.122169],[54.901131,58.125],[54.89925,58.12878],[54.897621,58.13118],[54.896839,58.133331],[54.896439,58.137531],[54.896599,58.142029],[54.89621,58.14418],[54.896099,58.144779],[54.894371,58.152939],[54.8923,58.160568],[54.88839,58.16972],[54.877441,58.192841],[54.87616,58.19817],[54.87537,58.20314],[54.875019,58.205891],[54.872601,58.227779],[54.86969,58.252331],[54.86937,58.25486],[54.868851,58.257912],[54.86615,58.263439],[54.859852,58.274681],[54.85759,58.27953],[54.8568,58.282619],[54.855759,58.28717],[54.855221,58.2901],[54.855209,58.293781],[54.85516,58.296181],[54.854931,58.297989],[54.85429,58.300251],[54.85218,58.303909],[54.851109,58.30648],[54.85067,58.31023],[54.851349,58.315891],[54.852242,58.322498],[54.853432,58.328251],[54.855499,58.334511],[54.857578,58.339748],[54.860001,58.346272],[54.86356,58.359058],[54.864639,58.361889],[54.865711,58.363682],[54.866711,58.365101],[54.868511,58.367081],[54.870312,58.368992],[54.871632,58.370708],[54.87188,58.37104],[54.87233,58.371769],[54.87291,58.372799],[54.873981,58.375439],[54.875271,58.37883],[54.875259,58.378799],[54.87561,58.37991],[54.875881,58.381222],[54.876209,58.38335],[54.876369,58.38538],[54.876419,58.38731],[54.876549,58.388569],[54.876701,58.38958],[54.876888,58.39056],[54.87957,58.398319],[54.88208,58.405579],[54.88253,58.406719],[54.88303,58.407761],[54.883709,58.408772],[54.88446,58.409649],[54.884811,58.410118],[54.885071,58.410519],[54.885342,58.41114],[54.885609,58.41198],[54.88562,58.41209],[54.88588,58.413651],[54.885891,58.413731],[54.885941,58.414082],[54.886341,58.416908],[54.886429,58.4179],[54.886471,58.41938],[54.886478,58.420269],[54.88649,58.420891],[54.88662,58.423191],[54.88681,58.425011],[54.887581,58.43187],[54.88773,58.433399],[54.887829,58.434341],[54.887871,58.434719],[54.887932,58.435169],[54.88805,58.43618],[54.888119,58.43681],[54.888599,58.440239],[54.88921,58.444561],[54.88932,58.44585],[54.88929,58.447071],[54.889229,58.44799],[54.889091,58.44886],[54.888939,58.449711],[54.888691,58.450562],[54.888458,58.451302],[54.88821,58.451981],[54.88789,58.45269],[54.887508,58.453259],[54.886829,58.454208],[54.88588,58.45509],[54.884529,58.456032],[54.882469,58.457481],[54.881641,58.458061],[54.88073,58.458912],[54.88039,58.45937],[54.880058,58.459999],[54.876789,58.467121],[54.87598,58.469059],[54.87574,58.470112],[54.87542,58.47274],[54.875141,58.474892],[54.87492,58.475681],[54.874619,58.47641],[54.87336,58.47868],[54.871059,58.481972],[54.87067,58.482498],[54.869678,58.48386],[54.868858,58.485409],[54.868279,58.48671],[54.867729,58.488331],[54.867222,58.490761],[54.86694,58.492859],[54.866859,58.49493],[54.866859,58.4967],[54.867031,58.498428],[54.867279,58.500332],[54.868,58.505741],[54.86858,58.510281],[54.868698,58.512032],[54.86861,58.513531],[54.868351,58.51495],[54.867569,58.517971],[54.867329,58.519619],[54.867149,58.521931],[54.867031,58.524361],[54.86684,58.526409],[54.86652,58.528271],[54.865879,58.53072],[54.865391,58.532169],[54.864849,58.533569],[54.864231,58.534939],[54.86356,58.536221],[54.862251,58.53828],[54.860821,58.540161],[54.860008,58.54134],[54.859348,58.54269],[54.858711,58.544571],[54.85836,58.545929],[54.858109,58.547569],[54.857948,58.549541],[54.857922,58.558102],[54.858021,58.59304],[54.85812,58.601959],[54.858089,58.603661],[54.858028,58.607029],[54.857792,58.612381],[54.856152,58.65015],[54.856312,58.65461],[54.857529,58.67363],[54.8578,58.677269],[54.858101,58.67989],[54.85878,58.68224],[54.862438,58.69508],[54.86359,58.69994],[54.864601,58.708519],[54.865471,58.714401],[54.86536,58.716499],[54.864891,58.71854],[54.862438,58.724091],[54.8615,58.726311],[54.861301,58.726791],[54.861118,58.727341],[54.86076,58.72858],[54.86063,58.729568],[54.86055,58.730579],[54.860531,58.731232],[54.86055,58.73188],[54.860729,58.733189],[54.860821,58.733551],[54.861,58.734329],[54.861229,58.73505],[54.8615,58.735748],[54.861801,58.736431],[54.8633,58.739399],[54.864861,58.7425],[54.86726,58.747711],[54.86792,58.749409],[54.868431,58.75082],[54.86969,58.754509],[54.87112,58.75959],[54.872021,58.763599],[54.872471,58.766411],[54.873249,58.77142],[54.873669,58.77515],[54.874531,58.78252],[54.87529,58.78838],[54.875992,58.794739],[54.877651,58.804951],[54.87949,58.812359],[54.880798,58.817051],[54.881649,58.820202],[54.88184,58.8209],[54.882408,58.823139],[54.88818,58.84444],[54.889549,58.849411],[54.891258,58.85582],[54.89296,58.862019],[54.894009,58.865898],[54.895599,58.87178],[54.896351,58.874321],[54.897129,58.87656],[54.897869,58.87851],[54.898602,58.88028],[54.900181,58.883518],[54.90126,58.885422],[54.902088,58.886688],[54.90332,58.888519],[54.904209,58.88969],[54.905102,58.890732],[54.906528,58.892269],[54.90789,58.893501],[54.90921,58.894581],[54.916771,58.89999],[54.919979,58.902191],[54.921471,58.903381],[54.922241,58.904099],[54.922901,58.9048],[54.92342,58.905418],[54.923889,58.90612],[54.924431,58.906921],[54.92514,58.908249],[54.925701,58.909481],[54.926109,58.910461],[54.92659,58.911919],[54.926949,58.913349],[54.92717,58.914471],[54.927391,58.91584],[54.92757,58.91724],[54.927689,58.918709],[54.9277,58.92009],[54.927662,58.922642],[54.927521,58.92664],[54.927521,58.928459],[54.92762,58.930641],[54.92783,58.932461],[54.928108,58.93409],[54.928509,58.935711],[54.929001,58.937309],[54.929451,58.938568],[54.92981,58.939369],[54.930222,58.940151],[54.930569,58.94088],[54.93317,58.945461],[54.933681,58.946121],[54.9342,58.946751],[54.93483,58.947361],[54.935421,58.94783],[54.936131,58.948261],[54.93689,58.948669],[54.937778,58.948921],[54.938148,58.949032],[54.939041,58.949299],[54.941181,58.949848],[54.94286,58.950291],[54.948559,58.951759],[54.95015,58.952301],[54.951408,58.95293],[54.952469,58.953609],[54.953579,58.954441],[54.955879,58.95702],[54.956718,58.95816],[54.957458,58.959309],[54.95826,58.96077],[54.958961,58.962231],[54.960209,58.96526],[54.964561,58.97612],[54.966148,58.979691],[54.96846,58.98386],[54.971909,58.99012],[54.980068,59.004581],[54.98201,59.00872],[54.98317,59.011841],[54.984291,59.01524],[54.988029,59.02697],[54.988899,59.02961],[54.989639,59.031521],[54.990528,59.033482],[54.991428,59.03516],[54.992359,59.036671],[54.993172,59.037769],[54.995762,59.04158],[54.996811,59.043549],[54.997601,59.04528],[54.998409,59.047291],[54.998871,59.048698],[54.99931,59.050179],[54.999981,59.053009],[55.000969,59.05806],[55.001591,59.06147],[55.001881,59.063049],[55.002171,59.064411],[55.002541,59.0658],[55.002892,59.066929],[55.00325,59.067959],[55.003639,59.069],[55.004219,59.07024],[55.004688,59.071232],[55.00515,59.072071],[55.005798,59.073101],[55.00671,59.074471],[55.007648,59.075871],[55.009418,59.078602],[55.009991,59.07967],[55.010441,59.080662],[55.010929,59.081841],[55.012039,59.085289],[55.012371,59.08654],[55.012691,59.087978],[55.012901,59.089668],[55.013199,59.092682],[55.013451,59.095551],[55.013618,59.097679],[55.014332,59.106461],[55.014641,59.108871],[55.01498,59.110481],[55.01545,59.112091],[55.015831,59.11319],[55.016281,59.114239],[55.01688,59.115341],[55.017479,59.116329],[55.018269,59.11747],[55.019199,59.11871],[55.02042,59.120419],[55.020988,59.12122],[55.022541,59.123219],[55.02383,59.124649],[55.024811,59.125702],[55.025921,59.12674],[55.027531,59.128071],[55.032501,59.13216],[55.03307,59.132671],[55.034271,59.133629],[55.034901,59.134151],[55.038521,59.137138],[55.04015,59.138451],[55.04047,59.138741],[55.0415,59.139599],[55.04211,59.140049],[55.042591,59.140411],[55.044239,59.141479],[55.048489,59.144131],[55.050339,59.145309],[55.0509,59.145729],[55.0513,59.14603],[55.051731,59.14637],[55.05204,59.146629],[55.052319,59.14687],[55.05254,59.147079],[55.05278,59.147301],[55.053009,59.14753],[55.05452,59.149109],[55.059559,59.15451],[55.059799,59.154812],[55.059978,59.155022],[55.0602,59.155281],[55.06039,59.155529],[55.060558,59.15575],[55.060749,59.15601],[55.060982,59.156349],[55.061241,59.156769],[55.061508,59.157219],[55.062092,59.15831],[55.062199,59.158562],[55.06229,59.158798],[55.062382,59.159039],[55.062721,59.160069],[55.062908,59.16066],[55.06308,59.161221],[55.06321,59.161732],[55.063381,59.16238],[55.063568,59.163151],[55.063931,59.16457],[55.064159,59.16555],[55.064491,59.166882],[55.064751,59.167938],[55.065479,59.17107],[55.066669,59.17609],[55.068981,59.18594],[55.069931,59.18998],[55.07061,59.193001],[55.071239,59.19614],[55.071812,59.19902],[55.07225,59.2015],[55.073051,59.206139],[55.074249,59.21299],[55.07515,59.2183],[55.07552,59.220089],[55.076321,59.223579],[55.077019,59.226261],[55.07766,59.228409],[55.078308,59.230431],[55.078972,59.232281],[55.081261,59.238392],[55.08535,59.249168],[55.087631,59.255032],[55.0886,59.25729],[55.089062,59.258221],[55.089828,59.259731],[55.090889,59.26157],[55.09185,59.262989],[55.09269,59.264252],[55.093651,59.265469],[55.095951,59.26833],[55.096569,59.26907],[55.097462,59.27026],[55.098019,59.27116],[55.098541,59.272079],[55.099072,59.273102],[55.099758,59.27475],[55.100288,59.276279],[55.10078,59.277931],[55.10117,59.279331],[55.101639,59.281368],[55.1022,59.283661],[55.10268,59.285751],[55.102859,59.28648],[55.103088,59.287189],[55.103279,59.287701],[55.103519,59.28817],[55.103828,59.288639],[55.105659,59.29092],[55.105881,59.291321],[55.106079,59.29174],[55.106312,59.292301],[55.107021,59.29454],[55.10857,59.299801],[55.108898,59.30117],[55.10918,59.30238],[55.109459,59.303768],[55.109989,59.307079],[55.110519,59.310341],[55.110611,59.31094],[55.11068,59.311699],[55.110729,59.31263],[55.110748,59.31324],[55.110771,59.31432],[55.110649,59.319199],[55.110519,59.32346],[55.11042,59.326061],[55.110359,59.32769],[55.110298,59.330109],[55.110298,59.331009],[55.110321,59.33194],[55.110359,59.332951],[55.110401,59.333839],[55.110489,59.334721],[55.1106,59.335812],[55.110729,59.33691],[55.110939,59.33815],[55.11116,59.339218],[55.111439,59.34045],[55.111809,59.34206],[55.115021,59.35487],[55.115238,59.355801],[55.11562,59.357689],[55.11581,59.35886],[55.115959,59.360001],[55.116051,59.361031],[55.116119,59.361969],[55.11618,59.36314],[55.116192,59.364391],[55.11618,59.3657],[55.11615,59.36681],[55.116112,59.36787],[55.115879,59.372749],[55.11573,59.37569],[55.115589,59.378368],[55.115589,59.379139],[55.115589,59.379799],[55.11562,59.380531],[55.115688,59.381241],[55.115761,59.381802],[55.115879,59.38242],[55.116951,59.387329],[55.11702,59.38776],[55.117081,59.388271],[55.117142,59.388809],[55.11718,59.389301],[55.11721,59.389919],[55.117161,59.392971],[55.11702,59.396809],[55.11697,59.397652],[55.116909,59.398319],[55.116859,59.398869],[55.11676,59.399422],[55.11652,59.40028],[55.11618,59.401199],[55.11586,59.401741],[55.115501,59.402359],[55.115372,59.402531],[55.11528,59.402649],[55.114738,59.403351],[55.113369,59.40509],[55.113029,59.40559],[55.112659,59.4062],[55.112339,59.40704],[55.112171,59.407681],[55.11203,59.408379],[55.1119,59.409279],[55.111889,59.410118],[55.111919,59.41098],[55.112122,59.413879],[55.112259,59.415508],[55.112492,59.417099],[55.11264,59.417912],[55.112801,59.41848],[55.112968,59.418949],[55.113232,59.419601],[55.11351,59.420078],[55.113861,59.420631],[55.114769,59.421959],[55.11721,59.425442],[55.119701,59.428822],[55.12006,59.429211],[55.120548,59.429661],[55.123482,59.432072],[55.123798,59.432362],[55.124062,59.43261],[55.124298,59.432892],[55.124489,59.43317],[55.12468,59.433472],[55.12487,59.433842],[55.125092,59.43438],[55.125721,59.43589],[55.12719,59.440029],[55.127319,59.44051],[55.127441,59.440941],[55.127571,59.441521],[55.127651,59.442081],[55.127708,59.44273],[55.12772,59.44334],[55.12772,59.443851],[55.12767,59.44434],[55.127609,59.444851],[55.127529,59.445351],[55.127369,59.446049],[55.127171,59.446621],[55.12693,59.447201],[55.126621,59.447781],[55.126202,59.448399],[55.125,59.449959],[55.124748,59.45034],[55.124531,59.45076],[55.12431,59.451248],[55.12331,59.454609],[55.122761,59.456589],[55.12199,59.459351],[55.121761,59.46022],[55.121529,59.46106],[55.12133,59.46196],[55.121208,59.462841],[55.120991,59.46529],[55.12093,59.46587],[55.12085,59.466599],[55.120781,59.467098],[55.120689,59.467541],[55.12056,59.468079],[55.120338,59.468811],[55.120121,59.46944],[55.119888,59.47002],[55.11961,59.470581],[55.117699,59.47393],[55.117489,59.47438],[55.117229,59.47504],[55.117031,59.475651],[55.116879,59.476311],[55.116711,59.477131],[55.11657,59.477951],[55.116161,59.48074],[55.115761,59.483471],[55.11483,59.49308],[55.114189,59.501492],[55.112179,59.51009],[55.110081,59.516941],[55.10947,59.519161],[55.109039,59.52121],[55.10873,59.523621],[55.10865,59.525982],[55.10873,59.528],[55.108952,59.529942],[55.109409,59.532139],[55.10984,59.53363],[55.110432,59.535252],[55.111099,59.53677],[55.113239,59.541359],[55.113789,59.542641],[55.11425,59.543861],[55.114868,59.545769],[55.115292,59.547199],[55.115841,59.549469],[55.11694,59.554329],[55.11747,59.556259],[55.118118,59.558281],[55.11927,59.561562],[55.11972,59.562962],[55.12011,59.56435],[55.12056,59.565922],[55.121151,59.567581],[55.122509,59.571259],[55.122978,59.572731],[55.123299,59.574089],[55.123619,59.575611],[55.123989,59.577789],[55.124439,59.58099],[55.124989,59.584999],[55.12516,59.586498],[55.12524,59.58778],[55.12524,59.588848],[55.125092,59.590099],[55.124939,59.590851],[55.124748,59.591572],[55.124481,59.592289],[55.12418,59.59288],[55.123409,59.59404],[55.123329,59.594139],[55.122601,59.59499],[55.11953,59.59798],[55.117321,59.600151],[55.116501,59.600948],[55.115921,59.601379],[55.115299,59.60165],[55.114639,59.601711],[55.11412,59.601608],[55.11351,59.601299],[55.11026,59.599369],[55.109241,59.59885],[55.108608,59.59866],[55.107189,59.598419],[55.10659,59.598202],[55.105968,59.59779],[55.10545,59.597221],[55.10495,59.59642],[55.103981,59.59449],[55.103279,59.59317],[55.102772,59.592411],[55.102291,59.591862],[55.101688,59.591351],[55.10051,59.590549],[55.09898,59.589611],[55.09766,59.588779],[55.096279,59.58794],[55.094761,59.587158],[55.09462,59.58709],[55.093159,59.586491],[55.09169,59.586109],[55.090179,59.585899],[55.087391,59.585678],[55.08651,59.585609],[55.085659,59.58543],[55.084679,59.585098],[55.083912,59.584839],[55.083149,59.58469],[55.082291,59.584641],[55.07872,59.58461],[55.076729,59.58466],[55.075802,59.584759],[55.075039,59.585018],[55.074181,59.58556],[55.073639,59.586201],[55.072979,59.587341],[55.072472,59.588779],[55.072281,59.589512],[55.07201,59.590611],[55.068249,59.610561],[55.06686,59.617882],[55.066792,59.61824],[55.064869,59.628311],[55.064369,59.630939],[55.063782,59.63372],[55.063171,59.636219],[55.062881,59.63715],[55.062511,59.63834],[55.061649,59.640789],[55.06097,59.6423],[55.060009,59.64397],[55.059361,59.64513],[55.05859,59.646542],[55.05806,59.647812],[55.057621,59.649422],[55.057251,59.651299],[55.05698,59.653542],[55.056862,59.655731],[55.05669,59.6618],[55.05632,59.673031],[55.055679,59.696388],[55.055641,59.697941],[55.05545,59.70269],[55.055229,59.706039],[55.05479,59.70961],[55.054371,59.711731],[55.05373,59.714111],[55.052979,59.71627],[55.052181,59.71796],[55.05088,59.720058],[55.049549,59.721661],[55.048141,59.72298],[55.046951,59.723701],[55.045479,59.724319],[55.044159,59.724628],[55.04253,59.724789],[55.04084,59.724709],[55.039009,59.72438],[55.034672,59.723301],[55.032082,59.72263],[55.031349,59.722511],[55.030609,59.722439],[55.029442,59.722469],[55.02808,59.72274],[55.026699,59.72327],[55.025501,59.723991],[55.024311,59.724892],[55.022549,59.726681],[55.021229,59.72855],[55.019981,59.730789],[55.019112,59.7328],[55.01836,59.734989],[55.017818,59.73703],[55.017281,59.739811],[55.016949,59.742611],[55.016781,59.744831],[55.016548,59.752708],[55.016479,59.758751],[55.016541,59.760941],[55.01675,59.763359],[55.01712,59.765491],[55.01791,59.7687],[55.018188,59.77018],[55.018391,59.771759],[55.018471,59.77317],[55.01844,59.774551],[55.018261,59.776371],[55.017941,59.7784],[55.017021,59.782459],[55.01545,59.78944],[55.014591,59.792622],[55.013741,59.795219],[55.012909,59.797359],[55.011108,59.801861],[55.009972,59.80434],[55.00528,59.814522],[55.001629,59.82243],[54.998661,59.828949],[54.998161,59.83004],[54.99617,59.833672],[54.994751,59.83762],[54.993271,59.845428],[54.990711,59.852638],[54.988449,59.857792],[54.984798,59.864231],[54.983311,59.8666],[54.9762,59.877918],[54.975151,59.879589],[54.972931,59.882938],[54.971111,59.88689],[54.96899,59.892891],[54.966721,59.904572],[54.964111,59.922588],[54.963081,59.928169],[54.961498,59.93375],[54.958889,59.93924],[54.95475,59.948601],[54.953461,59.951599],[54.950409,59.955978],[54.948441,59.959332],[54.946911,59.96328],[54.946072,59.966621],[54.945499,59.96957],[54.945301,59.97123],[54.945251,59.972099],[54.94519,59.972939],[54.945091,59.974689],[54.945049,59.97646],[54.944969,59.983688],[54.944931,59.98642],[54.944809,59.995998],[54.944618,60.010189],[54.944569,60.012428],[54.944439,60.014481],[54.944302,60.017578],[54.94421,60.019371],[54.943981,60.023159],[54.943939,60.024429],[54.94384,60.027279],[54.94389,60.03072],[54.94389,60.031479],[54.944149,60.050861],[54.944229,60.054852],[54.94426,60.057011],[54.944279,60.05846],[54.944649,60.08567],[54.944889,60.102211],[54.944839,60.10564],[54.94466,60.10783],[54.94437,60.109631],[54.94392,60.111649],[54.94326,60.11367],[54.94249,60.11581],[54.941429,60.118179],[54.937809,60.126369],[54.93663,60.12925],[54.93581,60.131908],[54.934238,60.138969],[54.934101,60.13953],[54.932701,60.1455],[54.931992,60.14938],[54.931629,60.151779],[54.931301,60.155849],[54.93108,60.15937],[54.93087,60.165771],[54.930271,60.178749],[54.929359,60.198689],[54.929211,60.19973],[54.926651,60.217232],[54.924358,60.232849],[54.92395,60.235291],[54.923698,60.23925],[54.923599,60.242512],[54.92342,60.259071],[54.92326,60.27956],[54.923092,60.284538],[54.920158,60.315289],[54.92004,60.316509],[54.919449,60.322781],[54.919201,60.325329],[54.9189,60.32843],[54.918819,60.3293],[54.918621,60.33147],[54.916981,60.34874],[54.91441,60.374008],[54.911572,60.402851],[54.91098,60.409698],[54.91048,60.41692],[54.910339,60.42078],[54.910252,60.426491],[54.910351,60.434891],[54.910801,60.455132],[54.911251,60.486462],[54.911621,60.51305],[54.912979,60.534969],[54.91325,60.538929],[54.913342,60.54007],[54.913952,60.54858],[54.916229,60.584351],[54.919479,60.633011],[54.919842,60.638851],[54.920479,60.64851],[54.921619,60.675339],[54.92107,60.67408],[54.921509,60.69199],[54.921612,60.69524],[54.921799,60.69796],[54.922371,60.70192],[54.924622,60.71656],[54.925159,60.7192],[54.927841,60.729431],[54.9282,60.730999],[54.928398,60.73328],[54.92902,60.73719],[54.930241,60.74353],[54.930801,60.745392],[54.932491,60.752548],[54.932629,60.753159],[54.936001,60.767448],[54.936451,60.769508],[54.937248,60.773232],[54.93771,60.775459],[54.938122,60.77766],[54.93803,60.779171],[54.938332,60.78286],[54.939419,60.785549],[54.940842,60.794399],[54.94128,60.7971],[54.941471,60.798279],[54.942089,60.801979],[54.942909,60.807018],[54.94331,60.809681],[54.944839,60.818668],[54.94495,60.819389],[54.945629,60.824699],[54.94928,60.852829],[54.95261,60.882751],[54.954609,60.901951],[54.954708,60.904129],[54.95509,60.906891],[54.955589,60.909828],[54.956261,60.912861],[54.9576,60.917679],[54.958611,60.921341],[54.964859,60.94379],[54.96888,60.958241],[54.969551,60.961021],[54.97187,60.971321],[54.972969,60.976131],[54.977161,60.99435],[54.98082,61.010262],[54.982491,61.017448],[54.983349,61.021061],[54.986229,61.033569],[54.987339,61.038368],[54.988258,61.042351],[54.989109,61.046051],[54.989288,61.046822],[54.989632,61.048321],[54.98996,61.0499],[54.990189,61.05109],[54.990421,61.052479],[54.99057,61.05357],[54.9907,61.054642],[54.99081,61.055851],[54.990898,61.057018],[54.991009,61.058819],[54.991089,61.060139],[54.99128,61.063751],[54.99176,61.071911],[54.992748,61.08934],[54.993912,61.10981],[54.993931,61.110161],[54.99408,61.112862],[54.994148,61.11396],[54.994549,61.121311],[54.99472,61.123779],[54.994831,61.125111],[54.994862,61.125519],[54.994999,61.126659],[54.99522,61.12833],[54.99548,61.12981],[54.995819,61.1315],[54.99609,61.132759],[54.996498,61.134472],[54.996761,61.135448],[54.997131,61.136761],[54.997581,61.138161],[54.998871,61.142101],[54.999329,61.143509],[55.000858,61.148209],[55.001511,61.150211],[55.001968,61.151829],[55.002369,61.153412],[55.00272,61.1548],[55.002941,61.155941],[55.002979,61.156281],[55.002991,61.156651],[55.002991,61.156971],[55.002911,61.15749],[55.002781,61.158169],[55.002171,61.160671],[55.001949,61.161549],[55.00172,61.162239],[55.00148,61.16283],[55.001259,61.16333],[55.0009,61.163971],[55.000141,61.165058],[54.996979,61.168869],[54.993469,61.1731],[54.992802,61.173901],[54.99239,61.174412],[54.991531,61.175449],[54.990662,61.176491],[54.9874,61.180519],[54.98365,61.185501],[54.9804,61.19133],[54.977051,61.19854],[54.974892,61.20438],[54.97282,61.211929],[54.97171,61.217461],[54.971439,61.2188],[54.97065,61.224979],[54.96986,61.23476],[54.969269,61.249008],[54.968681,61.262569],[54.96751,61.29174],[54.967461,61.29483],[54.967461,61.299309],[54.967628,61.32032],[54.967682,61.326801],[54.967682,61.329762],[54.967461,61.33461],[54.967361,61.33614],[54.967041,61.341091],[54.96685,61.345928],[54.966789,61.34951],[54.966759,61.35709],[54.96685,61.360802],[54.96703,61.365589],[54.9673,61.37249],[54.96756,61.37883],[54.9678,61.383862],[54.967819,61.384609],[54.967812,61.385429],[54.96777,61.38623],[54.967701,61.386978],[54.967602,61.387669],[54.967529,61.3881],[54.96735,61.389259],[54.967232,61.38987],[54.967041,61.391029],[54.966961,61.391479],[54.966942,61.39185],[54.966949,61.39222],[54.967018,61.39257],[54.96711,61.39283],[54.967239,61.393101],[54.9674,61.393311],[54.967579,61.39344],[54.96777,61.393509],[54.967979,61.39352],[54.968208,61.393478],[54.968811,61.39325],[54.969051,61.3932],[54.969299,61.3932],[54.969582,61.393242],[54.96981,61.393341],[54.969978,61.393471],[54.970119,61.393631],[54.97057,61.394379],[54.972691,61.39875],[54.973919,61.40144],[54.97477,61.403461],[54.9786,61.413589],[54.97929,61.415291],[54.980492,61.418209],[54.980968,61.419491],[54.9814,61.42099],[54.981701,61.422161],[54.98204,61.42374],[54.982349,61.425129],[54.98278,61.426861],[54.983089,61.42791],[54.983528,61.4291],[54.983879,61.430061],[54.984329,61.431099],[54.988491,61.440079],[54.98954,61.442242],[54.990509,61.443989],[54.991692,61.445782],[54.99292,61.44733],[54.99382,61.448318],[54.994579,61.449471],[54.99509,61.450371],[54.995461,61.451359],[54.995789,61.452339],[54.996151,61.453629],[54.996479,61.454491],[54.997021,61.455688],[54.99786,61.45694],[54.998058,61.457169],[54.99876,61.457989],[54.999859,61.459122],[55.00042,61.459549],[55.00108,61.46006],[55.001888,61.460609],[55.002708,61.461159],[55.00367,61.46183],[55.004639,61.4627],[55.005379,61.46357],[55.00602,61.46452],[55.00666,61.465801],[55.00713,61.466999],[55.007519,61.46833],[55.007858,61.46986],[55.008099,61.471519],[55.008171,61.472672],[55.00824,61.487968],[55.008251,61.4897],[55.00827,61.491631],[55.008282,61.492649],[55.008331,61.495178],[55.00843,61.496571],[55.008659,61.498852],[55.008991,61.501289],[55.009682,61.504978],[55.01041,61.507641],[55.011532,61.511021],[55.012581,61.51416],[55.013309,61.516312],[55.01548,61.522869],[55.016811,61.527439],[55.017639,61.531071],[55.018478,61.53603],[55.019588,61.543861],[55.021111,61.554241],[55.023998,61.57375],[55.024578,61.578789],[55.024818,61.582489],[55.024849,61.58744],[55.02467,61.59557],[55.02454,61.601311],[55.024609,61.60276],[55.024769,61.605431],[55.025021,61.6078],[55.025421,61.61084],[55.026749,61.619942],[55.029579,61.638821],[55.031319,61.65118],[55.034569,61.680481],[55.035259,61.688889],[55.035259,61.69593],[55.034569,61.703819],[55.03339,61.71249],[55.032059,61.723049],[55.032009,61.72665],[55.03231,61.729401],[55.032799,61.731548],[55.03344,61.733521],[55.04266,61.757488],[55.043159,61.758759],[55.04372,61.759941],[55.04438,61.761181],[55.045071,61.762299],[55.04578,61.763302],[55.04644,61.764141],[55.04697,61.764709],[55.047508,61.76524],[55.048679,61.766232],[55.0494,61.766689],[55.050129,61.76709],[55.05154,61.76767],[55.054871,61.768799],[55.06678,61.77285],[55.078411,61.77684],[55.079399,61.7771],[55.080681,61.777309],[55.08197,61.777409],[55.08297,61.77739],[55.084461,61.77729],[55.085041,61.777222],[55.08564,61.777119],[55.087132,61.77673],[55.08857,61.776218],[55.089409,61.77586],[55.09024,61.775459],[55.102551,61.768341],[55.106609,61.765961],[55.107342,61.76545],[55.11039,61.763729],[55.13361,61.750259],[55.137341,61.748631],[55.14967,61.745499],[55.15696,61.743649],[55.163601,61.742901],[55.165352,61.742981],[55.167831,61.743301],[55.170029,61.743801],[55.17173,61.744308],[55.171921,61.744381],[55.17342,61.74498],[55.175461,61.745899],[55.182289,61.74913],[55.186352,61.75108],[55.18853,61.751949],[55.190708,61.75256],[55.198181,61.75436],[55.20409,61.75584],[55.20697,61.756569],[55.208,61.756641],[55.208752,61.756569],[55.20924,61.756451],[55.210201,61.7561],[55.21088,61.75573],[55.211529,61.755268],[55.212528,61.75436],[55.213451,61.75325],[55.21397,61.75246],[55.21537,61.75016],[55.218601,61.7449],[55.221039,61.740891],[55.22345,61.736889],[55.22403,61.73605],[55.224651,61.735291],[55.224831,61.735111],[55.225269,61.734669],[55.22604,61.734032],[55.226971,61.73336],[55.228149,61.732979],[55.228642,61.733219],[55.23011,61.73447],[55.23177,61.73605],[55.232601,61.736912],[55.232922,61.737339],[55.234909,61.743431],[55.236519,61.74818],[55.237141,61.75024],[55.237549,61.751659],[55.240261,61.762218],[55.242809,61.772251],[55.245392,61.782318],[55.2486,61.79491],[55.249069,61.796661],[55.24947,61.798],[55.25161,61.804279],[55.252178,61.805759],[55.252621,61.806992],[55.2551,61.813889],[55.256981,61.819141],[55.257702,61.82119],[55.261089,61.830421],[55.264759,61.840389],[55.26614,61.843891],[55.266972,61.846279],[55.26722,61.847141],[55.267529,61.848389],[55.26783,61.85033],[55.268002,61.853001],[55.26807,61.85487],[55.268059,61.857052],[55.267948,61.858978],[55.267818,61.86047],[55.26495,61.88015],[55.263599,61.888641],[55.26321,61.891022],[55.262878,61.89325],[55.261162,61.904709],[55.260529,61.908791],[55.25972,61.914051],[55.25898,61.91872],[55.25766,61.927021],[55.247292,61.971561],[55.23119,62.039539],[55.230511,62.044521],[55.230061,62.050442],[55.230049,62.055191],[55.230019,62.066662],[55.22987,62.07954],[55.229542,62.082401],[55.229229,62.08503],[55.221161,62.120651],[55.219151,62.130779],[55.218861,62.134121],[55.218761,62.149231],[55.219051,62.221668],[55.219009,62.249611],[55.219002,62.25959],[55.218861,62.359859],[55.21719,62.386688],[55.216511,62.397709],[55.212669,62.458649],[55.212589,62.460918],[55.212551,62.462688],[55.212608,62.466721],[55.21273,62.470371],[55.21286,62.47298],[55.212978,62.474522],[55.213112,62.47604],[55.21339,62.47887],[55.21376,62.48177],[55.214149,62.484749],[55.21566,62.49527],[55.216599,62.501961],[55.219742,62.524139],[55.223789,62.552738],[55.22406,62.555309],[55.22427,62.557701],[55.22443,62.55999],[55.22456,62.56229],[55.224659,62.565819],[55.22467,62.569351],[55.22464,62.572048],[55.224529,62.574848],[55.224239,62.580269],[55.222969,62.603519],[55.222839,62.605961],[55.222801,62.60849],[55.222431,62.62851],[55.22234,62.634449],[55.222141,62.646141],[55.22184,62.6637],[55.221802,62.665722],[55.221828,62.667389],[55.22197,62.669109],[55.222191,62.67083],[55.222462,62.672588],[55.222809,62.6744],[55.22324,62.676208],[55.223721,62.67812],[55.224659,62.68137],[55.225441,62.684299],[55.226212,62.687679],[55.227039,62.691471],[55.227581,62.693821],[55.228748,62.698212],[55.230701,62.705421],[55.231861,62.709789],[55.234619,62.71941],[55.235989,62.72533],[55.236671,62.731159],[55.23682,62.736401],[55.235512,62.767021],[55.23497,62.78035],[55.234951,62.781029],[55.234859,62.783001],[55.234791,62.78511],[55.234329,62.799831],[55.234081,62.829102],[55.234001,62.852989],[55.233929,62.871929],[55.233681,62.929691],[55.233479,62.976898],[55.233459,62.986481],[55.233471,62.988838],[55.233551,62.99118],[55.235119,63.02404],[55.23579,63.037411],[55.23819,63.08873],[55.24054,63.138859],[55.24284,63.165291],[55.244209,63.180828],[55.245461,63.191582],[55.248169,63.214821],[55.253731,63.247841],[55.254421,63.251881],[55.25444,63.252239],[55.254379,63.25293],[55.254311,63.25317],[55.254292,63.253479],[55.254318,63.253819],[55.254391,63.254139],[55.254532,63.25423],[55.25478,63.254688],[55.255001,63.255291],[55.25552,63.258629],[55.25597,63.261429],[55.257401,63.269409],[55.257729,63.270859],[55.258121,63.272518],[55.25856,63.274281],[55.25898,63.27586],[55.259392,63.277309],[55.26033,63.280411],[55.261299,63.28331],[55.26223,63.28582],[55.26289,63.28751],[55.263641,63.28928],[55.26524,63.29282],[55.269779,63.30257],[55.272469,63.308239],[55.289742,63.344082],[55.312511,63.391201],[55.334339,63.437031],[55.33736,63.445621],[55.339611,63.453171],[55.352982,63.506691],[55.361198,63.53952],[55.361931,63.543209],[55.36245,63.547668],[55.36264,63.551231],[55.362099,63.560669],[55.35981,63.590931],[55.357052,63.626511],[55.354858,63.6544],[55.354111,63.664101],[55.352779,63.681179],[55.35252,63.687321],[55.352711,63.724781],[55.352829,63.747829],[55.352982,63.775299],[55.354881,63.7995],[55.35918,63.850399],[55.360851,63.8708],[55.360981,63.872459],[55.361229,63.880951],[55.361519,63.89983],[55.36158,63.900051],[55.361858,63.91151],[55.362202,63.918461],[55.363369,63.92704],[55.36974,63.973782],[55.375999,64.019569],[55.379372,64.044548],[55.379829,64.049911],[55.379879,64.055313],[55.379761,64.058708],[55.379318,64.063507],[55.376541,64.081451],[55.37191,64.109947],[55.37093,64.116043],[55.37001,64.123421],[55.369659,64.128487],[55.369469,64.134583],[55.36961,64.140419],[55.371361,64.170288],[55.37162,64.175087],[55.37418,64.221138],[55.37513,64.237747],[55.37561,64.253632],[55.376541,64.287361],[55.377541,64.322197],[55.377998,64.327454],[55.378731,64.333282],[55.38308,64.359459],[55.387169,64.384857],[55.38763,64.388939],[55.389191,64.41568],[55.38924,64.416542],[55.390659,64.441994],[55.391781,64.46209],[55.392021,64.466301],[55.392231,64.469879],[55.394241,64.505539],[55.395802,64.532097],[55.397911,64.568993],[55.399921,64.603783],[55.401649,64.634758],[55.40313,64.661453],[55.404289,64.682663],[55.404331,64.683434],[55.40469,64.686127],[55.407791,64.702011],[55.415829,64.744667],[55.417759,64.754837],[55.420971,64.771858],[55.42157,64.775002],[55.424469,64.790497],[55.427631,64.807411],[55.428741,64.813278],[55.429642,64.818176],[55.430649,64.823486],[55.43095,64.825287],[55.431149,64.826813],[55.431431,64.829514],[55.431728,64.833153],[55.43198,64.836067],[55.432388,64.840958],[55.432781,64.845383],[55.433781,64.857193],[55.4375,64.902077],[55.441929,64.950661],[55.446789,65.001953],[55.44928,65.028252],[55.45269,65.089447],[55.453121,65.094482],[55.453541,65.098083],[55.453979,65.100883],[55.454521,65.103813],[55.45499,65.105957],[55.455479,65.108009],[55.4561,65.110352],[55.45676,65.112663],[55.45739,65.114647],[55.458172,65.116867],[55.464298,65.13385],[55.472229,65.155891],[55.474258,65.161232],[55.475731,65.165649],[55.476761,65.168533],[55.477951,65.172058],[55.478729,65.174263],[55.47884,65.174583],[55.479229,65.175957],[55.480709,65.180946],[55.481098,65.182266],[55.48172,65.184776],[55.483768,65.191566],[55.484459,65.194237],[55.486099,65.199707],[55.486172,65.199951],[55.486328,65.200493],[55.48645,65.200882],[55.48711,65.20311],[55.489799,65.212097],[55.493038,65.223244],[55.493221,65.223869],[55.493568,65.225082],[55.496841,65.23587],[55.501091,65.24958],[55.50132,65.250618],[55.501362,65.25132],[55.50132,65.251556],[55.50132,65.251862],[55.501381,65.252136],[55.501492,65.252357],[55.501572,65.252441],[55.501701,65.252533],[55.502048,65.253029],[55.50243,65.253777],[55.508209,65.272163],[55.51358,65.289261],[55.513599,65.289337],[55.51458,65.292801],[55.51572,65.29776],[55.51659,65.303421],[55.516941,65.308128],[55.516979,65.31089],[55.51701,65.312027],[55.516911,65.316544],[55.516769,65.31958],[55.516659,65.320442],[55.515739,65.328087],[55.51572,65.328232],[55.51038,65.346527],[55.506351,65.360077],[55.504719,65.36557],[55.503799,65.368629],[55.503262,65.370483],[55.501572,65.376152],[55.500092,65.381126],[55.499531,65.383018],[55.49836,65.386993],[55.497669,65.388397],[55.49757,65.388428],[55.497429,65.38855],[55.497341,65.388687],[55.497269,65.388947],[55.497261,65.389183],[55.49728,65.38942],[55.497318,65.389572],[55.49707,65.390923],[55.495461,65.395638],[55.494221,65.3992],[55.493561,65.401131],[55.493019,65.403038],[55.492779,65.404213],[55.492599,65.40538],[55.492359,65.407806],[55.492359,65.409523],[55.492439,65.411186],[55.492779,65.41362],[55.493252,65.415863],[55.49398,65.4179],[55.49477,65.419724],[55.496449,65.422722],[55.497082,65.424553],[55.49754,65.426537],[55.4977,65.428101],[55.497669,65.429817],[55.497311,65.432121],[55.496719,65.434174],[55.495869,65.435898],[55.495258,65.436653],[55.494282,65.437592],[55.493229,65.438118],[55.4921,65.438217],[55.491268,65.438026],[55.4902,65.437492],[55.489349,65.436729],[55.488659,65.43602],[55.488022,65.435287],[55.487789,65.435051],[55.487331,65.434776],[55.487068,65.434753],[55.48687,65.434776],[55.486629,65.434929],[55.480099,65.443237],[55.477669,65.447357],[55.474899,65.455009],[55.473259,65.459709],[55.468029,65.474663],[55.467461,65.476288],[55.459759,65.498352],[55.4585,65.503067],[55.45787,65.507019],[55.457432,65.512604],[55.455971,65.537918],[55.454269,65.564079],[55.453831,65.573692],[55.453732,65.576553],[55.45319,65.580566],[55.452759,65.583],[55.44976,65.59417],[55.445061,65.611649],[55.44495,65.612061],[55.429741,65.669823],[55.419739,65.707779],[55.394691,65.801437],[55.39352,65.805794],[55.38797,65.828491],[55.387482,65.830513],[55.386089,65.838669],[55.383629,65.853172],[55.382309,65.861343],[55.38002,65.87558],[55.37661,65.896263],[55.374458,65.911629],[55.3708,65.938843],[55.370121,65.945618],[55.369831,65.951973],[55.369781,65.961411],[55.370701,65.972397],[55.377041,66.022263],[55.382309,66.062943],[55.38818,66.089546],[55.389969,66.097618],[55.39669,66.128433],[55.397812,66.136932],[55.40147,66.178818],[55.4062,66.234261],[55.40659,66.248772],[55.40567,66.270103],[55.405609,66.271431],[55.404301,66.3013],[55.402439,66.343353],[55.39996,66.401802],[55.39893,66.433823],[55.39645,66.473557],[55.395969,66.481934],[55.39489,66.500603],[55.391869,66.54969],[55.38982,66.584198],[55.388779,66.599937],[55.38855,66.60041],[55.388321,66.601143],[55.388229,66.601692],[55.388309,66.602173],[55.388512,66.602852],[55.388649,66.603073],[55.388489,66.605331],[55.38826,66.609299],[55.387779,66.616966],[55.387039,66.629768],[55.384701,66.669167],[55.381729,66.717056],[55.381451,66.721474],[55.381241,66.724518],[55.380951,66.727364],[55.38055,66.73053],[55.380138,66.733421],[55.3797,66.73613],[55.379211,66.738777],[55.37851,66.742157],[55.377899,66.744591],[55.376991,66.747993],[55.370651,66.769859],[55.368019,66.778954],[55.360748,66.804863],[55.35627,66.820229],[55.355,66.824783],[55.352791,66.831543],[55.351139,66.835831],[55.34845,66.841583],[55.337379,66.865288],[55.324001,66.894043],[55.310959,66.922279],[55.307251,66.931549],[55.30529,66.939789],[55.303539,66.951118],[55.29982,66.992661],[55.29871,67.004959],[55.29689,67.025284],[55.292389,67.079521],[55.290241,67.089478],[55.28183,67.117592],[55.269909,67.157463],[55.266579,67.169472],[55.25782,67.219833],[55.25647,67.225433],[55.24807,67.253098],[55.244831,67.263847],[55.24469,67.263779],[55.244511,67.263779],[55.244339,67.263893],[55.244202,67.264091],[55.24411,67.264374],[55.24408,67.264687],[55.244122,67.264992],[55.244209,67.265259],[55.24435,67.265457],[55.240101,67.278992],[55.227638,67.317841],[55.214691,67.355843],[55.211689,67.365967],[55.204689,67.397057],[55.196541,67.432419],[55.195518,67.436813],[55.18961,67.463318],[55.188999,67.476341],[55.187962,67.50354],[55.188782,67.511383],[55.192871,67.533623],[55.194649,67.546417],[55.194962,67.553429],[55.19413,67.565613],[55.192741,67.580162],[55.192039,67.602631],[55.191132,67.621902],[55.189522,67.629898],[55.178429,67.668518],[55.174301,67.684967],[55.172569,67.693893],[55.164768,67.734177],[55.163471,67.737984],[55.149719,67.768517],[55.131649,67.807831],[55.12394,67.824364],[55.10191,67.865738],[55.09697,67.875008],[55.094269,67.883163],[55.092571,67.894051],[55.092621,67.918877],[55.092621,67.924637],[55.092609,67.925743],[55.092831,67.976692],[55.093311,67.983856],[55.097321,68.026131],[55.099781,68.05143],[55.104031,68.095139],[55.104511,68.104431],[55.10429,68.114708],[55.103031,68.132607],[55.099152,68.18882],[55.096649,68.203423],[55.092152,68.227898],[55.09082,68.240196],[55.091709,68.253601],[55.0938,68.267563],[55.094559,68.277641],[55.093231,68.286392],[55.087719,68.30201],[55.079151,68.324707],[55.068371,68.35363],[55.054989,68.390182],[55.046741,68.41256],[55.027309,68.466507],[55.014111,68.500633],[54.9939,68.554237],[54.99123,68.560219],[54.98875,68.562553],[54.973499,68.573959],[54.95079,68.59079],[54.924641,68.610069],[54.92448,68.610443],[54.924301,68.611618],[54.923611,68.616402],[54.923111,68.61998],[54.922451,68.624489],[54.92197,68.627922],[54.9212,68.633369],[54.920101,68.640846],[54.919559,68.644333],[54.91917,68.648529],[54.919128,68.653183],[54.919319,68.663483],[54.919361,68.672462],[54.919449,68.681358],[54.91954,68.690643],[54.919628,68.698692],[54.91967,68.706421],[54.919788,68.71479],[54.9198,68.718513],[54.919849,68.724922],[54.919941,68.735184],[54.92001,68.746468],[54.92009,68.758133],[54.920219,68.774109],[54.920429,68.799072],[54.920792,68.843628],[54.920818,68.854874],[54.919331,68.878441],[54.917,68.91478],[54.91502,68.944328],[54.912788,68.978416],[54.910358,69.015228],[54.909859,69.021294],[54.90905,69.034103],[54.908852,69.037292],[54.908489,69.042999],[54.90765,69.055283],[54.90731,69.05954],[54.90712,69.062553],[54.906719,69.065102],[54.906189,69.067772],[54.90509,69.07119],[54.905769,69.073486],[54.905869,69.073723],[54.907501,69.07753],[54.910469,69.085258],[54.911518,69.088371],[54.912521,69.091713],[54.913689,69.094673],[54.914989,69.097481],[54.91534,69.099037],[54.915409,69.100037],[54.915379,69.10125],[54.91354,69.114662],[54.91309,69.117012],[54.912762,69.118294],[54.912628,69.118797],[54.91246,69.119926],[54.912411,69.121162],[54.91267,69.125023],[54.912819,69.127327],[54.912109,69.127617],[54.911671,69.127953],[54.911308,69.128349],[54.911041,69.12896],[54.910751,69.129601],[54.910431,69.130463],[54.910229,69.131439],[54.910198,69.131683],[54.910179,69.131866],[54.910172,69.132111],[54.91016,69.132294],[54.910141,69.132477],[54.910141,69.132881],[54.91016,69.133003],[54.910221,69.133171],[54.9104,69.133217],[54.91058,69.133087],[54.91066,69.132919],[54.910721,69.132637],[54.910801,69.132362],[54.910881,69.132042],[54.910961,69.131866],[54.91153,69.131157],[54.91222,69.130302],[54.912338,69.13015],[54.912861,69.129601],[54.914219,69.128349],[54.915661,69.127457],[54.91748,69.12674],[54.919159,69.126549],[54.92194,69.126427],[54.92292,69.126663],[54.92358,69.12719],[54.924122,69.127861],[54.924679,69.128799],[54.92506,69.129837],[54.926399,69.13607],[54.926281,69.136269],[54.926189,69.136574],[54.926231,69.136848],[54.9263,69.137016],[54.926411,69.137169],[54.926559,69.137253],[54.926628,69.137207],[54.926579,69.137527],[54.924191,69.148048],[54.91798,69.17437],[54.917919,69.174316],[54.917728,69.174271],[54.917542,69.174347],[54.917469,69.174622],[54.91748,69.175148],[54.917549,69.175613],[54.917622,69.175697],[54.91769,69.175789],[54.917992,69.175819],[54.918091,69.175751],[54.91811,69.175591],[54.918251,69.176224],[54.93475,69.219063],[54.93576,69.220993],[54.937019,69.222343],[54.93795,69.222893],[54.945759,69.225929],[54.946678,69.226593],[54.94788,69.228241],[54.948399,69.229248],[54.954651,69.248573],[54.95512,69.250549],[54.955231,69.253548],[54.95219,69.281349],[54.951382,69.285461],[54.914391,69.430771],[54.913651,69.435097],[54.913269,69.439484],[54.913391,69.454674],[54.913952,69.525223],[54.914669,69.599983],[54.914902,69.623459],[54.91605,69.798088],[54.909809,69.909576],[54.90976,69.912453],[54.91502,70.140343],[54.915451,70.190514],[54.917278,70.354233],[54.918461,70.369408],[54.918449,70.374023],[54.918018,70.381271],[54.919399,70.435493],[54.92009,70.462624],[54.919998,70.466408],[54.91975,70.469276],[54.91795,70.480713],[54.91774,70.483856],[54.91927,70.528839],[54.930779,70.631973],[54.940411,70.762863],[54.94083,70.776108],[54.940651,70.779343],[54.93998,70.7827],[54.939251,70.784447],[54.937462,70.787086],[54.921299,70.801826],[54.91959,70.80442],[54.91851,70.807426],[54.91806,70.810226],[54.91798,70.81279],[54.919258,70.882713],[54.921379,70.984528],[54.921398,70.985802],[54.921959,71.016243],[54.92207,71.022346],[54.922741,71.059174],[54.923,71.080643],[54.921589,71.136688],[54.921612,71.140411],[54.922001,71.146027],[54.923069,71.153809],[54.923981,71.157944],[54.92514,71.161377],[54.925671,71.162971],[54.927711,71.167511],[54.929909,71.171478],[54.931171,71.174133],[54.93224,71.176979],[54.937721,71.19474],[54.947842,71.227577],[54.949181,71.232407],[54.950802,71.239929],[54.951969,71.247871],[54.952911,71.25663],[54.955811,71.283669],[54.95607,71.286148],[54.956211,71.287483],[54.973251,71.448219],[54.97401,71.453117],[54.974918,71.457787],[54.976719,71.465149],[54.978142,71.469757],[54.9804,71.476341],[54.981201,71.479446],[54.98233,71.483841],[54.98402,71.492989],[54.99025,71.540962],[54.990749,71.546097],[54.991131,71.555542],[54.987789,71.697289],[54.983429,71.778908],[54.983311,71.78492],[54.983589,71.79248],[54.99284,71.913406],[54.9963,71.958504],[54.996449,71.962212],[54.996399,71.966888],[54.996078,71.97171],[54.978851,72.105797],[54.978149,72.112457],[54.977421,72.122673],[54.972771,72.248459],[54.9659,72.335892],[54.965721,72.33828],[54.965549,72.341904],[54.965488,72.345627],[54.965611,72.34996],[54.96624,72.372711],[54.96669,72.391632],[54.966759,72.395111],[54.966591,72.398827],[54.966301,72.403053],[54.964802,72.419296],[54.963531,72.434708],[54.963501,72.436478],[54.963921,72.454826],[54.964569,72.483093],[54.966141,72.539192],[54.9664,72.543533],[54.96698,72.54879],[54.967319,72.551041],[54.96767,72.552994],[54.968491,72.557251],[54.984421,72.617264],[54.985882,72.625191],[54.98658,72.631699],[54.986809,72.635223],[54.990509,72.690758],[54.990501,72.820793],[54.990311,72.82589],[54.9897,72.831818],[54.98793,72.842369],[54.987728,72.843071],[54.985649,72.850288],[54.976269,72.875366],[54.97007,72.891907],[54.96825,72.896843],[54.96804,72.897087],[54.96788,72.897186],[54.96653,72.897278],[54.965801,72.897331],[54.961491,72.897469],[54.958618,72.897636],[54.956902,72.898079],[54.950729,72.900253],[54.940731,72.903793],[54.935379,72.905693],[54.930721,72.907242],[54.928219,72.908211],[54.92672,72.909103],[54.924301,72.911133],[54.922729,72.912666],[54.913921,72.925461],[54.913521,72.926041],[54.906811,72.935799],[54.904121,72.940048],[54.9016,72.944641],[54.895439,72.955879],[54.887291,72.970757],[54.885941,72.974823],[54.88472,72.978493],[54.883831,72.983292],[54.883438,72.987579],[54.883591,72.994751],[54.883598,72.995728],[54.883911,73.017487],[54.883961,73.024017],[54.88361,73.030411],[54.883308,73.033073],[54.88126,73.045387],[54.877781,73.066292],[54.875408,73.080193],[54.87376,73.090279],[54.87175,73.102318],[54.86882,73.119629],[54.866821,73.131432],[54.866501,73.133957],[54.866371,73.135094],[54.866341,73.135803],[54.866371,73.136703],[54.866741,73.139847],[54.86747,73.146378],[54.867661,73.148499],[54.86784,73.151398],[54.86797,73.156677],[54.867882,73.173286],[54.867519,73.213791],[54.86726,73.237701],[54.867352,73.241989],[54.869431,73.262611],[54.869598,73.264427],[54.869781,73.266312],[54.86998,73.268311],[54.870171,73.270348],[54.870232,73.27092],[54.870258,73.271248],[54.87048,73.273521],[54.870739,73.276932],[54.870739,73.277641],[54.870708,73.278999],[54.87059,73.280632],[54.87038,73.282341],[54.869789,73.285683],[54.86961,73.286743],[54.869431,73.287987],[54.86932,73.288872],[54.86924,73.289886],[54.86916,73.2911],[54.86916,73.292717],[54.869209,73.295464],[54.869141,73.296242],[54.869061,73.296532],[54.868969,73.296753],[54.868969,73.296951],[54.869011,73.29718],[54.869148,73.297836],[54.869148,73.299477],[54.869221,73.300499],[54.869221,73.30645],[54.869251,73.316261],[54.86927,73.321907],[54.869289,73.322884],[54.869301,73.323563],[54.86935,73.324303],[54.869438,73.325089],[54.86953,73.325798],[54.86969,73.326767],[54.869949,73.328011],[54.870258,73.329247],[54.87059,73.330307],[54.87093,73.331169],[54.87138,73.332222],[54.872211,73.33371],[54.873138,73.335159],[54.874279,73.336884],[54.875111,73.338219],[54.875809,73.339592],[54.87616,73.340462],[54.876678,73.342049],[54.87764,73.345131],[54.877991,73.346313],[54.878899,73.349327],[54.880051,73.353203],[54.879929,73.353333],[54.879822,73.353561],[54.879768,73.353767],[54.879749,73.353928],[54.879749,73.354073],[54.879768,73.354309],[54.879829,73.354507],[54.879959,73.354736],[54.880119,73.354889],[54.88031,73.354919],[54.880482,73.354843],[54.880611,73.355293],[54.88126,73.357567],[54.88139,73.358124],[54.881481,73.358727],[54.881741,73.36132],[54.881889,73.363533],[54.88192,73.365334],[54.881729,73.371681],[54.881451,73.379997],[54.881481,73.382294],[54.881592,73.384979],[54.881802,73.388153],[54.88195,73.389641],[54.882149,73.391228],[54.882778,73.395287],[54.883202,73.397476],[54.883801,73.400017],[54.884659,73.403008],[54.887199,73.410408],[54.887531,73.411636],[54.887829,73.412773],[54.887951,73.413879],[54.88802,73.414963],[54.888062,73.420387],[54.888081,73.420929],[54.888142,73.421219],[54.88821,73.421471],[54.88829,73.421638],[54.88842,73.421829],[54.888569,73.421951],[54.888809,73.422203],[54.889042,73.422394],[54.888618,73.423233],[54.88821,73.424088],[54.88789,73.424751],[54.887329,73.425941],[54.88715,73.426353],[54.88644,73.427856],[54.884941,73.431084],[54.882381,73.436417],[54.880909,73.439507],[54.880482,73.440399],[54.868172,73.466171],[54.86668,73.469353],[54.866322,73.470123],[54.866039,73.47081],[54.865761,73.471573],[54.86517,73.473412],[54.85984,73.490753],[54.85368,73.510521],[54.85284,73.512589],[54.8466,73.526047],[54.83498,73.548721],[54.83453,73.549553],[54.834049,73.550377],[54.833618,73.55098],[54.83321,73.551537],[54.832729,73.552147],[54.830601,73.55468],[54.827888,73.557899],[54.822762,73.564011],[54.820751,73.566383],[54.819462,73.567703],[54.817711,73.569542],[54.814739,73.572647],[54.81332,73.574203],[54.811901,73.57592],[54.808929,73.579613],[54.80759,73.581291],[54.80563,73.583649],[54.804951,73.584381],[54.802879,73.586372],[54.801941,73.587173],[54.800018,73.588654],[54.797569,73.590477],[54.792831,73.594032],[54.790249,73.595993],[54.785229,73.599648],[54.783138,73.601173],[54.7789,73.604309],[54.777069,73.605827],[54.775532,73.607147],[54.773121,73.609169],[54.770748,73.611153],[54.769341,73.612419],[54.768372,73.613197],[54.767658,73.613731],[54.766941,73.614067],[54.765961,73.614388],[54.765011,73.614693],[54.762569,73.615463],[54.761711,73.615753],[54.756569,73.617012],[54.754822,73.617607],[54.75317,73.61837],[54.75164,73.61927],[54.74894,73.621391],[54.745152,73.625214],[54.74316,73.62812],[54.741089,73.63163],[54.73513,73.641647],[54.730511,73.64946],[54.728809,73.652367],[54.721882,73.664207],[54.718559,73.669907],[54.71759,73.671562],[54.71666,73.673203],[54.715672,73.674896],[54.71521,73.67569],[54.71471,73.676537],[54.714008,73.677742],[54.713322,73.678917],[54.712662,73.680054],[54.712009,73.68116],[54.71133,73.68232],[54.710011,73.684593],[54.709129,73.686089],[54.708408,73.687332],[54.70797,73.688103],[54.706661,73.690353],[54.705219,73.692848],[54.704529,73.694031],[54.70319,73.69635],[54.697128,73.706757],[54.689751,73.717232],[54.689121,73.718262],[54.688412,73.719704],[54.685791,73.725609],[54.682621,73.732887],[54.681629,73.735649],[54.678638,73.74453],[54.676231,73.752121],[54.675499,73.754539],[54.67506,73.756592],[54.67461,73.759506],[54.669811,73.787872],[54.669552,73.789726],[54.66946,73.790932],[54.66943,73.793213],[54.669441,73.796127],[54.669491,73.80822],[54.669498,73.813004],[54.66938,73.815773],[54.669189,73.818489],[54.66906,73.819817],[54.66888,73.821373],[54.66692,73.835472],[54.664951,73.849541],[54.66441,73.853378],[54.664131,73.856163],[54.66404,73.859467],[54.664108,73.868423],[54.664131,73.870811],[54.664131,73.872337],[54.664139,73.874138],[54.664139,73.875427],[54.664082,73.876633],[54.66396,73.877777],[54.66383,73.878563],[54.663601,73.879478],[54.661869,73.884644],[54.661739,73.884933],[54.661201,73.886253],[54.66032,73.887688],[54.658298,73.890327],[54.657089,73.891907],[54.653198,73.896843],[54.65168,73.8992],[54.650318,73.901703],[54.648449,73.905403],[54.64526,73.911743],[54.637871,73.926323],[54.63044,73.941048],[54.626869,73.948608],[54.625771,73.951218],[54.624969,73.953522],[54.624229,73.956398],[54.623772,73.958412],[54.623428,73.960419],[54.623169,73.962578],[54.622849,73.966873],[54.621651,73.982079],[54.621319,73.984642],[54.62075,73.987991],[54.619888,73.991478],[54.61832,73.99633],[54.6152,74.003807],[54.614269,74.005737],[54.613159,74.007507],[54.61132,74.009789],[54.610828,74.010269],[54.609489,74.011414],[54.607498,74.012581],[54.604549,74.013771],[54.60173,74.014954],[54.5989,74.016251],[54.597881,74.01693],[54.597019,74.017609],[54.595379,74.019257],[54.59425,74.020737],[54.59322,74.022461],[54.59129,74.02655],[54.588409,74.032707],[54.587582,74.034554],[54.587109,74.035896],[54.586449,74.038002],[54.56488,74.108017],[54.564659,74.109169],[54.564449,74.110786],[54.564301,74.112923],[54.56377,74.130463],[54.563648,74.134773],[54.563492,74.136871],[54.563049,74.14006],[54.561069,74.153923],[54.560181,74.160744],[54.560211,74.16169],[54.560322,74.162651],[54.560509,74.163544],[54.567749,74.19046],[54.56805,74.191902],[54.568218,74.193542],[54.568199,74.194687],[54.567101,74.211533],[54.566978,74.212936],[54.5667,74.214546],[54.566319,74.215927],[54.562851,74.228378],[54.559299,74.240852],[54.552349,74.265221],[54.548969,74.276917],[54.54813,74.279793],[54.547531,74.281807],[54.546871,74.283401],[54.546299,74.28463],[54.545761,74.285744],[54.544842,74.287163],[54.54385,74.288544],[54.541809,74.290909],[54.538528,74.294937],[54.536869,74.297394],[54.536251,74.298447],[54.508018,74.353081],[54.506748,74.355583],[54.505489,74.358482],[54.504688,74.360657],[54.501949,74.369324],[54.496738,74.385857],[54.495602,74.389122],[54.494999,74.39032],[54.493629,74.392097],[54.493038,74.392776],[54.492298,74.393509],[54.491581,74.394119],[54.490971,74.394417],[54.49036,74.394653],[54.482731,74.396332],[54.481281,74.396652],[54.47961,74.397217],[54.47773,74.398064],[54.47562,74.399193],[54.474232,74.400238],[54.472851,74.401466],[54.471191,74.403214],[54.465809,74.409119],[54.45887,74.417],[54.445148,74.432838],[54.443569,74.434883],[54.44215,74.43718],[54.438179,74.444542],[54.43362,74.453758],[54.431332,74.458389],[54.429119,74.462929],[54.428329,74.464737],[54.42783,74.46611],[54.427052,74.468918],[54.413139,74.523643],[54.408821,74.545128],[54.4081,74.548126],[54.407089,74.55146],[54.405781,74.555069],[54.404621,74.557716],[54.40308,74.560806],[54.397282,74.571693],[54.395721,74.574806],[54.394821,74.577019],[54.393589,74.580391],[54.390739,74.589546],[54.386841,74.602287],[54.384472,74.608887],[54.381611,74.616341],[54.380341,74.619423],[54.378719,74.622581],[54.377731,74.624138],[54.373112,74.630463],[54.372139,74.631493],[54.370991,74.632347],[54.368649,74.633347],[54.364368,74.634827],[54.361431,74.635269],[54.357738,74.635162],[54.354401,74.635063],[54.350929,74.635101],[54.35017,74.635292],[54.34927,74.635674],[54.347839,74.636597],[54.346142,74.638138],[54.343109,74.641037],[54.340832,74.643372],[54.338032,74.646744],[54.332062,74.654007],[54.330589,74.655312],[54.329369,74.655983],[54.32576,74.657303],[54.32243,74.658546],[54.31868,74.659607],[54.29874,74.664368],[54.28014,74.66861],[54.278061,74.669518],[54.277,74.670227],[54.27573,74.671837],[54.27396,74.674751],[54.270531,74.681053],[54.266659,74.687439],[54.265072,74.68988],[54.26413,74.69091],[54.263069,74.69165],[54.26123,74.69252],[54.258911,74.692818],[54.256908,74.692574],[54.252628,74.692329],[54.243259,74.69162],[54.242008,74.691994],[54.24091,74.692574],[54.23978,74.693321],[54.23801,74.695251],[54.232651,74.700867],[54.230331,74.703293],[54.228249,74.705643],[54.226002,74.708588],[54.217861,74.718651],[54.209229,74.729713],[54.208382,74.731133],[54.205688,74.735611],[54.204262,74.737709],[54.20097,74.741524],[54.1954,74.747887],[54.190639,74.753242],[54.1852,74.759453],[54.17564,74.770332],[54.17469,74.771637],[54.173908,74.773117],[54.173279,74.774544],[54.172661,74.776466],[54.17202,74.77993],[54.17197,74.781616],[54.171879,74.783997],[54.17141,74.797913],[54.1712,74.802879],[54.170959,74.805511],[54.170601,74.80851],[54.170292,74.810463],[54.169842,74.812538],[54.16922,74.815399],[54.16898,74.816101],[54.168621,74.817009],[54.168159,74.818069],[54.167782,74.81871],[54.167339,74.819366],[54.166931,74.819893],[54.166618,74.820236],[54.16618,74.820663],[54.164379,74.822258],[54.163761,74.8228],[54.16143,74.824837],[54.157959,74.828072],[54.15588,74.830551],[54.15414,74.833023],[54.14859,74.841667],[54.145859,74.846199],[54.143539,74.850693],[54.126171,74.884651],[54.124008,74.888924],[54.12291,74.891113],[54.121391,74.893867],[54.119881,74.896347],[54.118961,74.897758],[54.11771,74.89959],[54.114922,74.90313],[54.112419,74.906281],[54.107731,74.912079],[54.095638,74.927193],[54.082512,74.94352],[54.079971,74.946693],[54.07436,74.953697],[54.071671,74.957077],[54.07008,74.958763],[54.06942,74.959419],[54.06868,74.960037],[54.06826,74.960327],[54.0672,74.961037],[54.06625,74.96151],[54.065159,74.961899],[54.06414,74.962181],[54.06308,74.96244],[54.062809,74.962463],[54.06152,74.962547],[54.052841,74.96302],[54.042881,74.963631],[54.03878,74.963852],[54.036629,74.963966],[54.034752,74.964188],[54.032211,74.964867],[54.029732,74.965874],[54.029461,74.966057],[54.02747,74.967407],[54.025749,74.96875],[54.018269,74.976044],[54.003441,74.990593],[53.999821,74.994102],[53.99894,74.995117],[53.998291,74.99604],[53.997601,74.997261],[53.996941,74.998703],[53.984928,75.026604],[53.981758,75.034012],[53.978291,75.04216],[53.970989,75.059402],[53.969181,75.063629],[53.966042,75.071037],[53.96199,75.080719],[53.961559,75.081619],[53.961201,75.082138],[53.96077,75.082573],[53.9603,75.082916],[53.959782,75.083122],[53.958988,75.083282],[53.952808,75.083763],[53.9506,75.083946],[53.93763,75.085129],[53.922729,75.086388],[53.92065,75.086517],[53.919949,75.086433],[53.91959,75.086357],[53.919189,75.08625],[53.918758,75.086113],[53.917461,75.085457],[53.91608,75.084793],[53.89254,75.073143],[53.886509,75.070107],[53.885971,75.069847],[53.885059,75.069397],[53.85207,75.053047],[53.845581,75.049728],[53.84314,75.048271],[53.841831,75.047333],[53.84074,75.046448],[53.840061,75.04612],[53.83939,75.045952],[53.834179,75.045486],[53.827469,75.045013],[53.822979,75.044693],[53.816269,75.044777],[53.814781,75.044838],[53.81382,75.044991],[53.809139,75.046387],[53.80328,75.048576],[53.797321,75.051277],[53.79525,75.052208],[53.790722,75.054222],[53.789162,75.054916],[53.788269,75.055367],[53.78756,75.055847],[53.786701,75.056519],[53.78455,75.058311],[53.778759,75.063278],[53.770481,75.070412],[53.757198,75.081909],[53.743389,75.093674],[53.73756,75.098572],[53.73172,75.103493],[53.720261,75.113182],[53.71302,75.11937],[53.707291,75.124252],[53.701962,75.128807],[53.69809,75.131989],[53.696869,75.132973],[53.69524,75.133926],[53.694248,75.134338],[53.69186,75.135223],[53.68578,75.13723],[53.677029,75.140228],[53.668419,75.143494],[53.659451,75.147034],[53.655479,75.148529],[53.653591,75.149269],[53.652241,75.150063],[53.65065,75.151268],[53.649139,75.152771],[53.64782,75.154587],[53.64653,75.156967],[53.645119,75.159668],[53.64109,75.167503],[53.617321,75.213669],[53.616631,75.214951],[53.615372,75.21682],[53.614319,75.218132],[53.61301,75.219513],[53.609341,75.223221],[53.604671,75.22805],[53.600021,75.232803],[53.596169,75.236603],[53.593948,75.239014],[53.59288,75.240448],[53.591839,75.242027],[53.58976,75.245743],[53.581951,75.260193],[53.58073,75.262482],[53.579708,75.264648],[53.57502,75.274643],[53.563271,75.299721],[53.562321,75.301727],[53.56139,75.303436],[53.56044,75.304993],[53.559071,75.306717],[53.55759,75.308319],[53.555511,75.310303],[53.553242,75.312363],[53.541851,75.323303],[53.537479,75.327553],[53.536171,75.32901],[53.53511,75.330566],[53.534489,75.331772],[53.534012,75.33287],[53.53347,75.334244],[53.53289,75.33622],[53.53075,75.345459],[53.528622,75.355003],[53.528259,75.356331],[53.52763,75.357857],[53.526871,75.359642],[53.519531,75.37545],[53.511829,75.391869],[53.507961,75.400261],[53.50388,75.409187],[53.496349,75.425369],[53.49411,75.429611],[53.487141,75.440918],[53.481949,75.449371],[53.480419,75.451622],[53.47884,75.453377],[53.477699,75.454468],[53.471352,75.459686],[53.45953,75.469933],[53.45129,75.47657],[53.4426,75.484047],[53.423809,75.499657],[53.405899,75.514816],[53.403011,75.517319],[53.400982,75.519676],[53.39257,75.529907],[53.379131,75.546082],[53.376369,75.549454],[53.373638,75.552551],[53.368839,75.557251],[53.361271,75.564484],[53.354622,75.57151],[53.346741,75.579842],[53.33374,75.593536],[53.332199,75.59507],[53.33054,75.596237],[53.32309,75.600822],[53.313171,75.60701],[53.303429,75.614983],[53.292061,75.625847],[53.28054,75.636963],[53.274841,75.642403],[53.269409,75.647438],[53.257622,75.658234],[53.25679,75.659019],[53.256062,75.659882],[53.25528,75.661018],[53.236881,75.692253],[53.224159,75.71373],[53.210369,75.737007],[53.184189,75.781197],[53.1828,75.783539],[53.18124,75.786362],[53.179989,75.7892],[53.178551,75.792747],[53.144051,75.880463],[53.13903,75.893288],[53.137718,75.896294],[53.121521,75.928673],[53.104469,75.962639],[53.103729,75.964798],[53.103119,75.967133],[53.098629,75.986427],[53.093159,76.010643],[53.08239,76.056717],[53.080021,76.06707],[53.079861,76.068283],[53.079788,76.06926],[53.079781,76.070702],[53.080002,76.072983],[53.083778,76.089394],[53.084011,76.092072],[53.083801,76.095413],[53.083351,76.098213],[53.081211,76.11013],[53.08083,76.112244],[53.079491,76.12011],[53.07848,76.123863],[53.077518,76.126373],[53.07658,76.128304],[53.075481,76.130173],[53.074551,76.131371],[53.073181,76.132782],[53.066799,76.138641],[53.060459,76.144562],[53.059891,76.145302],[53.058708,76.147507],[53.057671,76.150543],[53.046391,76.198189],[53.033669,76.251053],[53.03017,76.261673],[53.023602,76.281303],[53.01313,76.312683],[53.0103,76.321152],[52.99239,76.374603],[52.99131,76.377548],[52.988701,76.383408],[52.975609,76.412643],[52.959789,76.447762],[52.92849,76.517548],[52.927078,76.520401],[52.92522,76.523666],[52.923599,76.526367],[52.920731,76.531143],[52.912281,76.545067],[52.895981,76.571693],[52.894341,76.573639],[52.892899,76.575043],[52.89151,76.576134],[52.889301,76.577538],[52.879879,76.583122],[52.865108,76.59198],[52.838959,76.607697],[52.810711,76.624588],[52.79121,76.636238],[52.78701,76.638847],[52.78595,76.63945],[52.784939,76.640167],[52.736191,76.680183],[52.68597,76.721161],[52.684212,76.722443],[52.672199,76.730026],[52.656841,76.739647],[52.62907,76.757202],[52.618359,76.763992],[52.605968,76.771767],[52.58215,76.78669],[52.5345,76.816727],[52.52211,76.821098],[52.50993,76.825706],[52.485432,76.834663],[52.466202,76.84169],[52.40942,76.862663],[52.396179,76.868889],[52.37986,76.876846],[52.35146,76.890556],[52.35067,76.890938],[52.34148,76.89537],[52.329899,76.900993],[52.329559,76.901169],[52.32811,76.901947],[52.327049,76.902847],[52.326469,76.903397],[52.32436,76.90583],[52.313049,76.919693],[52.310089,76.923309],[52.309891,76.928452],[52.309071,76.94117],[52.308632,76.947121],[52.308498,76.949203],[52.308369,76.951317],[52.308079,76.955162],[52.307919,76.957283],[52.307789,76.958031],[52.307579,76.958633],[52.304588,76.960541],[52.302189,76.962097],[52.300522,76.963142],[52.29739,76.965118],[52.296429,76.965652],[52.296188,76.965668],[52.293209,76.965912],[52.291851,76.965919],[52.291389,76.965927],[52.290791,76.965988],[52.287601,76.966316],[52.285809,76.966431],[52.285671,76.966454],[52.28458,76.966713],[52.284031,76.967018],[52.28352,76.967438],[52.28307,76.967552],[52.275909,76.968437],[52.270489,76.96904],[52.268452,76.969261],[52.26461,76.969704],[52.264389,76.969749],[52.256741,76.970581],[52.25338,76.971031],[52.2528,76.97126],[52.252251,76.971741],[52.249111,76.976593],[52.24733,76.979172],[52.245079,76.982422],[52.245258,76.982758],[52.246681,76.985359],[52.245049,76.987846],[52.243629,76.985168],[52.24118,76.988808],[52.23851,76.992683],[52.23737,76.994247],[52.236721,76.995132],[52.232681,77.00103],[52.231129,77.003418],[52.22633,77.009827],[52.224651,77.011932],[52.223228,77.01329],[52.22081,77.014862],[52.20134,77.027008],[52.192451,77.033051],[52.155258,77.060623],[52.128948,77.078407],[52.120579,77.085007],[52.115608,77.089149],[52.114368,77.090462],[52.110329,77.095573],[52.087749,77.126488],[52.02565,77.220383],[52.017818,77.23365],[52.014431,77.238632],[52.009892,77.244614],[52.008942,77.245781],[52.003288,77.252037],[51.994431,77.26181],[51.987881,77.268944],[51.926472,77.334503],[51.91893,77.343452],[51.913319,77.350563],[51.91114,77.354134],[51.909191,77.358391],[51.90554,77.370628],[51.902649,77.381416],[51.90229,77.38253],[51.901718,77.384003],[51.900742,77.38607],[51.891979,77.400917],[51.8848,77.414436],[51.882252,77.419601],[51.881031,77.421867],[51.876968,77.426117],[51.86919,77.435799],[51.863548,77.443611],[51.861462,77.446404],[51.859451,77.448517],[51.856781,77.450691],[51.854179,77.452042],[51.828972,77.461777],[51.824478,77.463768],[51.820309,77.466713],[51.811329,77.473358],[51.805752,77.477402],[51.80146,77.480957],[51.79636,77.485367],[51.789841,77.490677],[51.770279,77.50605],[51.768761,77.507408],[51.76709,77.509178],[51.765709,77.510872],[51.73035,77.557549],[51.729481,77.558502],[51.728081,77.559578],[51.726379,77.560402],[51.725151,77.560593],[51.723949,77.560516],[51.722801,77.560226],[51.701229,77.551262],[51.70013,77.55098],[51.698509,77.550873],[51.697948,77.550949],[51.696819,77.5513],[51.681561,77.556793],[51.67968,77.557678],[51.67807,77.558594],[51.67651,77.559669],[51.65694,77.573929],[51.654819,77.5756],[51.6525,77.577698],[51.650768,77.579529],[51.637829,77.594147],[51.637039,77.594841],[51.635929,77.595558],[51.634789,77.5961],[51.633911,77.596329],[51.615162,77.599907],[51.614288,77.600143],[51.612862,77.600708],[51.61203,77.601196],[51.61095,77.60202],[51.597519,77.613213],[51.594929,77.615112],[51.5923,77.616814],[51.589958,77.61821],[51.54343,77.643517],[51.540958,77.644943],[51.539619,77.645889],[51.537781,77.647423],[51.53088,77.653717],[51.527859,77.656578],[51.52644,77.658257],[51.52536,77.659866],[51.522968,77.663757],[51.507431,77.6903],[51.5005,77.706619],[51.49971,77.708763],[51.491711,77.729446],[51.48793,77.741676],[51.487179,77.746033],[51.479191,77.798149],[51.477859,77.808937],[51.478561,77.820137],[51.47921,77.829269],[51.47839,77.838791],[51.473591,77.889008],[51.472099,77.898453],[51.47068,77.90657],[51.469509,77.91227],[51.468201,77.917809],[51.465511,77.928558],[51.46513,77.931038],[51.465,77.93309],[51.464909,77.935493],[51.464779,77.937134],[51.464298,77.945389],[51.463741,77.956268],[51.461029,77.989197],[51.460812,77.991142],[51.458012,78.012352],[51.45776,78.014717],[51.448521,78.092888],[51.44817,78.096573],[51.448158,78.098442],[51.4487,78.141037],[51.448662,78.141899],[51.447891,78.145554],[51.427341,78.207191],[51.418861,78.225723],[51.41803,78.22789],[51.40752,78.26239],[51.396679,78.298233],[51.39542,78.302254],[51.394371,78.304718],[51.394211,78.304947],[51.39386,78.305511],[51.393478,78.306084],[51.366341,78.342201],[51.358009,78.354073],[51.35482,78.360786],[51.233669,78.603119],[51.220341,78.630928],[51.188259,78.696838],[51.18729,78.69886],[51.186729,78.700058],[51.18626,78.701118],[51.124222,78.829292],[51.12355,78.830757],[51.12236,78.833801],[51.121422,78.837013],[51.12114,78.838249],[51.12051,78.841789],[51.095852,79.064957],[51.095509,79.068718],[51.095379,79.069504],[51.095032,79.071701],[51.09404,79.073753],[51.09264,79.075302],[51.079861,79.086357],[51.078751,79.087646],[51.07251,79.098297],[51.071159,79.100227],[51.05582,79.115723],[51.049122,79.122276],[51.046509,79.123253],[51.041889,79.123398],[51.039131,79.123734],[51.037231,79.125229],[51.035229,79.12896],[51.027439,79.144852],[51.026489,79.147476],[51.02626,79.148773],[51.02179,79.177223],[51.021488,79.178841],[51.020741,79.18203],[51.01981,79.187233],[51.01717,79.20491],[51.016891,79.206558],[51.016541,79.208183],[51.016029,79.210136],[51.015579,79.211617],[51.007591,79.234901],[51.005562,79.242317],[51.003342,79.251389],[51.003021,79.252533],[51.002659,79.253593],[51.001808,79.255669],[50.98951,79.284027],[50.98748,79.287827],[50.962818,79.324883],[50.962559,79.325447],[50.962379,79.326103],[50.962212,79.327141],[50.959042,79.355682],[50.958809,79.356934],[50.958149,79.358727],[50.957802,79.359367],[50.953659,79.365479],[50.930439,79.399277],[50.926579,79.403992],[50.918289,79.412323],[50.916969,79.413887],[50.913879,79.419724],[50.893089,79.460503],[50.872532,79.485619],[50.866772,79.489517],[50.82011,79.513809],[50.816929,79.5168],[50.814468,79.520363],[50.80534,79.535316],[50.795849,79.544861],[50.793091,79.548866],[50.770229,79.570343],[50.766281,79.576218],[50.758541,79.596062],[50.746498,79.631073],[50.731331,79.676567],[50.720749,79.708328],[50.703209,79.74054],[50.69994,79.747147],[50.69088,79.768768],[50.683689,79.79467],[50.67292,79.832642],[50.670799,79.840111],[50.662849,79.868134],[50.661018,79.872467],[50.65765,79.878677],[50.655571,79.882507],[50.63998,79.910912],[50.636139,79.916557],[50.620838,79.939331],[50.61507,79.951691],[50.600399,79.982117],[50.585468,80.013718],[50.580212,80.02227],[50.577808,80.02652],[50.57518,80.034264],[50.573009,80.041977],[50.57056,80.050537],[50.56884,80.056877],[50.566608,80.062363],[50.559872,80.072617],[50.553612,80.081573],[50.54895,80.091049],[50.54501,80.096603],[50.542839,80.097717],[50.533352,80.099632],[50.530899,80.100929],[50.525398,80.104149],[50.522221,80.105339],[50.51479,80.106903],[50.508839,80.10836],[50.507149,80.109169],[50.50613,80.109894],[50.505871,80.110092],[50.505508,80.110397],[50.499519,80.118111],[50.49921,80.118668],[50.498772,80.119797],[50.49789,80.123573],[50.49752,80.124908],[50.496269,80.129204],[50.495819,80.130363],[50.495411,80.131073],[50.49308,80.133904],[50.491718,80.135551],[50.490509,80.136971],[50.490189,80.137268],[50.486549,80.139992],[50.485451,80.140953],[50.481461,80.144653],[50.480961,80.14537],[50.480141,80.147072],[50.479561,80.148903],[50.479019,80.150627],[50.47871,80.151627],[50.478321,80.152977],[50.4776,80.156029],[50.477539,80.156303],[50.474152,80.174263],[50.473228,80.17939],[50.472271,80.184387],[50.47208,80.185463],[50.47179,80.187027],[50.47139,80.18969],[50.470718,80.196457],[50.470322,80.200493],[50.470058,80.202507],[50.469769,80.20388],[50.469521,80.204887],[50.469299,80.205589],[50.46806,80.20974],[50.46624,80.216202],[50.465012,80.21991],[50.46447,80.221497],[50.464031,80.222557],[50.463169,80.224312],[50.461349,80.227753],[50.460651,80.228928],[50.45948,80.230789],[50.458599,80.232033],[50.458118,80.232437],[50.456772,80.233307],[50.453121,80.235207],[50.448212,80.237793],[50.447819,80.237923],[50.447571,80.23793],[50.44733,80.237831],[50.447201,80.237694],[50.4459,80.236343],[50.44566,80.23613],[50.445492,80.235977],[50.445301,80.235924],[50.444969,80.23587],[50.444519,80.236481],[50.443932,80.237343],[50.443802,80.237633],[50.443722,80.237961],[50.443378,80.24015],[50.443199,80.241318],[50.44313,80.242111],[50.443039,80.243042],[50.442871,80.243759],[50.44278,80.244011],[50.442669,80.244308],[50.44231,80.24485],[50.441528,80.245911],[50.440762,80.24691],[50.440552,80.247276],[50.440559,80.251106],[50.440559,80.251862],[50.440571,80.255997],[50.44059,80.259911],[50.439892,80.258827],[50.438789,80.257118],[50.437721,80.25544],[50.437061,80.254433],[50.436649,80.253639],[50.436298,80.253082],[50.435532,80.251907],[50.434078,80.249634],[50.4338,80.249153],[50.432331,80.246696],[50.430851,80.244049],[50.429489,80.241982],[50.427849,80.239441],[50.426769,80.237717],[50.425671,80.235977],[50.424549,80.234207],[50.42345,80.232437],[50.422421,80.230797],[50.422329,80.230598],[50.422291,80.230423],[50.422272,80.230331],[50.422272,80.230019],[50.422218,80.229637],[50.422138,80.229317],[50.421902,80.228851],[50.4217,80.228592],[50.4216,80.228523],[50.42128,80.228302],[50.420979,80.228241],[50.420738,80.228401],[50.420589,80.228691],[50.42046,80.228798],[50.420231,80.228882],[50.419559,80.228821],[50.418201,80.228569],[50.41748,80.228432],[50.416191,80.22805],[50.415661,80.227791],[50.414989,80.227432],[50.414131,80.226929],[50.4053,80.221863],[50.40469,80.221527],[50.403019,80.221031],[50.402401,80.220863],[50.401581,80.220741],[50.401031,80.220657],[50.399311,80.22039],[50.39875,80.220543],[50.398548,80.220642],[50.398361,80.220787],[50.398159,80.220871],[50.397999,80.220901],[50.397629,80.220718],[50.3974,80.220711],[50.397072,80.220772],[50.396671,80.221039],[50.396351,80.221352],[50.395809,80.221992],[50.395439,80.222527],[50.395168,80.223038],[50.39502,80.223373],[50.39489,80.223763],[50.394798,80.223953],[50.394661,80.224113],[50.39455,80.224182],[50.394402,80.224228],[50.39402,80.224243],[50.39362,80.224319],[50.393101,80.224457],[50.392429,80.224716],[50.391159,80.225403],[50.390282,80.226082],[50.389118,80.22702],[50.385971,80.229622],[50.38485,80.23037],[50.38287,80.231682],[50.38155,80.232513],[50.380508,80.233391],[50.37973,80.234268],[50.37862,80.235771],[50.378281,80.236259],[50.378132,80.236458],[50.37574,80.239532],[50.37561,80.239922],[50.374352,80.241722],[50.37109,80.24633],[50.370972,80.246513],[50.368279,80.250412],[50.366982,80.252296],[50.36483,80.254951],[50.364552,80.255524],[50.363361,80.256828],[50.363029,80.256187],[50.36293,80.256058],[50.36277,80.255997],[50.36264,80.256119],[50.362091,80.25679],[50.361591,80.25737],[50.36013,80.259033],[50.359909,80.259407],[50.359852,80.25985],[50.359909,80.260277],[50.35997,80.260773],[50.3601,80.26178],[50.360271,80.263077],[50.36031,80.263931],[50.360378,80.265427],[50.360409,80.266212],[50.360451,80.267143],[50.360451,80.267761],[50.360378,80.268303],[50.36002,80.269943],[50.359829,80.27034],[50.359718,80.270462],[50.35952,80.270691],[50.358528,80.271301],[50.358398,80.271477],[50.357769,80.272652],[50.355282,80.276718],[50.353569,80.279518],[50.352551,80.281174],[50.349991,80.285347],[50.348801,80.287376],[50.34771,80.28933],[50.34613,80.292107],[50.344971,80.294273],[50.34164,80.300957],[50.339989,80.30381],[50.31815,80.339973],[50.317699,80.3405],[50.3097,80.352638],[50.29863,80.370323],[50.288872,80.387657],[50.254799,80.438637],[50.1786,80.543793],[50.147369,80.586998],[50.140499,80.595627],[50.129791,80.608902],[50.12748,80.611763],[50.125332,80.61425],[50.048908,80.68779],[50.013439,80.721893],[49.99485,80.740593],[49.99086,80.744957],[49.980228,80.756561],[49.977631,80.759216],[49.964771,80.772614],[49.960129,80.776558],[49.954281,80.780327],[49.948589,80.782913],[49.837891,80.833717],[49.83419,80.835533],[49.832191,80.837158],[49.80888,80.859039],[49.806938,80.860931],[49.797581,80.872002],[49.795361,80.87458],[49.794201,80.875519],[49.792919,80.875862],[49.782131,80.879662],[49.781448,80.879898],[49.77985,80.880836],[49.77879,80.882042],[49.777302,80.88385],[49.736259,80.945213],[49.733879,80.948143],[49.73111,80.950974],[49.673931,81.008041],[49.668369,81.014137],[49.662201,81.021088],[49.65498,81.028976],[49.646358,81.037537],[49.632919,81.050873],[49.631248,81.052078],[49.62986,81.052513],[49.625141,81.053543],[49.62352,81.054222],[49.621738,81.055252],[49.620129,81.056877],[49.605228,81.073448],[49.603111,81.076279],[49.59388,81.089241],[49.553799,81.14563],[49.5425,81.163139],[49.537991,81.17009],[49.53754,81.17112],[49.536152,81.171982],[49.532249,81.178162],[49.53075,81.180733],[49.523109,81.196442],[49.52261,81.198761],[49.52261,81.200989],[49.523109,81.203651],[49.52306,81.205711],[49.519772,81.231293],[49.5191,81.234207],[49.51704,81.241158],[49.509689,81.271461],[49.500149,81.299011],[49.499371,81.300636],[49.498089,81.302361],[49.48444,81.315964],[49.477909,81.323692],[49.474449,81.328407],[49.4725,81.331413],[49.470879,81.334503],[49.469261,81.338371],[49.455101,81.372704],[49.45393,81.374329],[49.45314,81.375107],[49.452301,81.37545],[49.445,81.376297],[49.443039,81.376823],[49.441429,81.377678],[49.44009,81.378883],[49.436741,81.383087],[49.435452,81.38472],[49.434219,81.38652],[49.433159,81.388237],[49.42725,81.401108],[49.421219,81.414253],[49.418541,81.419479],[49.411678,81.429916],[49.400391,81.447113],[49.39827,81.450287],[49.39156,81.461533],[49.38866,81.466682],[49.382511,81.47673],[49.380718,81.480247],[49.372341,81.49939],[49.37133,81.502136],[49.37072,81.504883],[49.36927,81.512001],[49.368649,81.514236],[49.367981,81.516037],[49.36647,81.518959],[49.364799,81.521713],[49.362339,81.525047],[49.356628,81.532257],[49.35479,81.53389],[49.34597,81.540771],[49.344952,81.541206],[49.343632,81.541473],[49.34333,81.541527],[49.340672,81.541313],[49.33812,81.541054],[49.335979,81.540817],[49.33514,81.540771],[49.334141,81.540863],[49.333038,81.54113],[49.332169,81.54155],[49.331421,81.542183],[49.329498,81.544533],[49.328152,81.546356],[49.32795,81.546631],[49.324299,81.551483],[49.322681,81.553627],[49.321751,81.554893],[49.321259,81.555237],[49.321011,81.555313],[49.32069,81.555267],[49.320511,81.555206],[49.320339,81.555031],[49.320141,81.554764],[49.32,81.554527],[49.319931,81.554253],[49.31987,81.553459],[49.319889,81.551407],[49.320042,81.544144],[49.320061,81.54332],[49.320091,81.541809],[49.320278,81.532089],[49.320541,81.520844],[49.321339,81.486343],[49.321339,81.484283],[49.321331,81.481621],[49.321308,81.47982],[49.32077,81.477058],[49.318619,81.468513],[49.318211,81.467102],[49.317501,81.464767],[49.31506,81.459068],[49.313931,81.456322],[49.29652,81.414993],[49.275181,81.364922],[49.254799,81.316856],[49.235931,81.271873],[49.23465,81.269058],[49.23217,81.264801],[49.230999,81.263184],[49.22913,81.261017],[49.226669,81.258499],[49.218109,81.250893],[49.19363,81.229141],[49.190189,81.22509],[49.189041,81.222366],[49.188091,81.219749],[49.187592,81.217003],[49.187149,81.214172],[49.187019,81.210899],[49.187302,81.204613],[49.187271,81.202583],[49.187061,81.200394],[49.186401,81.197197],[49.185638,81.195068],[49.18441,81.192802],[49.182369,81.190697],[49.179611,81.188919],[49.176208,81.187088],[49.174641,81.186363],[49.173618,81.185463],[49.172539,81.184052],[49.171612,81.182587],[49.17041,81.180519],[49.167099,81.174347],[49.16547,81.171173],[49.160641,81.158813],[49.15929,81.156151],[49.158119,81.154266],[49.1511,81.144478],[49.14925,81.141388],[49.147961,81.138901],[49.14621,81.134613],[49.145481,81.133408],[49.144531,81.132378],[49.142342,81.130493],[49.141048,81.128937],[49.140091,81.127403],[49.129929,81.109627],[49.128189,81.107323],[49.099369,81.076927],[49.09729,81.074699],[49.09594,81.072723],[49.09499,81.070839],[49.094372,81.069122],[49.09425,81.067413],[49.094372,81.065514],[49.0942,81.06337],[49.09351,81.059097],[49.091969,81.054367],[49.091129,81.052399],[49.089951,81.050339],[49.088772,81.048798],[49.071232,81.026314],[49.069771,81.024513],[49.068298,81.023216],[49.06707,81.02253],[49.059021,81.019096],[49.05661,81.017982],[49.048618,81.012573],[49.047379,81.011276],[49.037762,80.998329],[49.03619,80.996353],[49.03511,80.995407],[49.03371,80.994461],[49.020882,80.985367],[49.019501,80.984467],[49.014061,80.979347],[49.012428,80.978073],[49.01086,80.977211],[49.008888,80.976097],[49.00737,80.97464],[49.000839,80.966827],[48.999088,80.965027],[48.997849,80.963913],[48.99498,80.96199],[48.993118,80.960442],[48.99165,80.958298],[48.988419,80.95253],[48.987301,80.950897],[48.985722,80.94944],[48.984138,80.948486],[48.980709,80.947212],[48.978569,80.945923],[48.976822,80.944473],[48.95203,80.920937],[48.950581,80.919563],[48.94915,80.917877],[48.946911,80.913948],[48.913811,80.859528],[48.912689,80.8573],[48.9119,80.855164],[48.91127,80.852921],[48.910431,80.848801],[48.909691,80.846657],[48.903042,80.833443],[48.901741,80.831551],[48.900612,80.830002],[48.898918,80.828293],[48.89711,80.827003],[48.89357,80.825073],[48.887291,80.82206],[48.882999,80.819962],[48.881439,80.819473],[48.867081,80.817131],[48.866169,80.816963],[48.865391,80.816933],[48.864559,80.817062],[48.826309,80.825882],[48.824501,80.82666],[48.82275,80.827507],[48.82127,80.828537],[48.819519,80.830093],[48.80703,80.84082],[48.805389,80.84211],[48.803699,80.842957],[48.80172,80.843483],[48.798328,80.844597],[48.784302,80.850937],[48.783058,80.851288],[48.77718,80.851967],[48.775928,80.851967],[48.773079,80.85186],[48.76965,80.851547],[48.75919,80.850693],[48.756359,80.85054],[48.75177,80.848717],[48.739208,80.843727],[48.73711,80.842453],[48.735809,80.841164],[48.72823,80.829567],[48.726398,80.827591],[48.72459,80.826653],[48.722832,80.826393],[48.715981,80.82486],[48.71294,80.823891],[48.697102,80.817177],[48.691078,80.81456],[48.688881,80.813606],[48.687199,80.81292],[48.685501,80.812332],[48.683559,80.811493],[48.682331,80.810928],[48.68079,80.809769],[48.674721,80.80381],[48.670029,80.798843],[48.654549,80.782288],[48.652519,80.779533],[48.56625,80.656357],[48.562111,80.650528],[48.56052,80.649063],[48.558701,80.648117],[48.521759,80.631844],[48.514252,80.626694],[48.506981,80.62014],[48.470058,80.584862],[48.451328,80.564262],[48.445351,80.558434],[48.431862,80.544952],[48.428841,80.542213],[48.386341,80.499123],[48.384232,80.496117],[48.381611,80.492157],[48.36536,80.463501],[48.36467,80.462471],[48.36404,80.461952],[48.363251,80.4617],[48.359138,80.461868],[48.358231,80.461609],[48.35714,80.460922],[48.335468,80.440071],[48.334209,80.439377],[48.332901,80.43895],[48.33136,80.438698],[48.329479,80.438522],[48.303791,80.436546],[48.282089,80.435089],[48.280609,80.435013],[48.278839,80.435089],[48.276951,80.435349],[48.2565,80.442299],[48.218819,80.454918],[48.201778,80.461182],[48.199951,80.4617],[48.189301,80.464272],[48.18261,80.467102],[48.180321,80.467621],[48.178551,80.467789],[48.175289,80.467697],[48.151119,80.465637],[48.140419,80.464531],[48.138809,80.464012],[48.137661,80.463074],[48.13583,80.462547],[48.133202,80.462044],[48.129929,80.46067],[48.127239,80.459549],[48.125061,80.458183],[48.123798,80.457657],[48.120941,80.457237],[48.11853,80.456459],[48.114059,80.453888],[48.112919,80.453712],[48.110909,80.453712],[48.108559,80.454491],[48.102139,80.455261],[48.100361,80.455261],[48.094521,80.454659],[48.087639,80.453369],[48.082821,80.451309],[48.081959,80.450706],[48.0802,80.448807],[48.078949,80.446602],[48.07795,80.444893],[48.07597,80.443291],[48.073978,80.442009],[48.069759,80.440331],[48.068878,80.439133],[48.067829,80.436317],[48.066292,80.434669],[48.06041,80.433647],[48.05928,80.43306],[48.057381,80.43177],[48.05444,80.429626],[48.053261,80.428909],[48.051949,80.428711],[48.0438,80.429039],[48.0415,80.428818],[48.040199,80.428123],[48.03611,80.425949],[48.032051,80.423782],[48.030571,80.422501],[48.029652,80.421471],[48.02541,80.419167],[48.021198,80.416908],[48.019539,80.416183],[48.018749,80.4161],[48.017658,80.41629],[47.991871,80.420624],[47.99033,80.420883],[47.987949,80.420197],[47.987068,80.419563],[47.984379,80.416069],[47.98214,80.413673],[47.974831,80.406982],[47.963409,80.398438],[47.961182,80.397171],[47.958969,80.396156],[47.957169,80.395592],[47.955151,80.39521],[47.952431,80.394997],[47.948669,80.395233],[47.945518,80.395798],[47.940239,80.396606],[47.92968,80.398376],[47.927811,80.398933],[47.926281,80.399696],[47.924911,80.400841],[47.923679,80.402428],[47.92281,80.403801],[47.92189,80.405907],[47.921028,80.408737],[47.920361,80.413338],[47.920189,80.414627],[47.919071,80.421181],[47.917919,80.424767],[47.916519,80.42717],[47.915371,80.428757],[47.91367,80.430153],[47.912231,80.431068],[47.91,80.431641],[47.90947,80.431587],[47.908821,80.431511],[47.90741,80.43129],[47.90609,80.431107],[47.9039,80.430817],[47.901539,80.430519],[47.901409,80.430496],[47.901131,80.430527],[47.900841,80.430603],[47.9007,80.430649],[47.900421,80.430794],[47.900139,80.430977],[47.899738,80.43132],[47.89922,80.4319],[47.89888,80.432373],[47.89835,80.433281],[47.89814,80.433678],[47.897732,80.434517],[47.897449,80.43515],[47.897202,80.43576],[47.89706,80.436172],[47.896961,80.436607],[47.89687,80.437271],[47.896801,80.43882],[47.896111,80.441483],[47.8895,80.466629],[47.888458,80.469467],[47.88308,80.481781],[47.88253,80.484047],[47.88242,80.485947],[47.884239,80.498688],[47.884121,80.500748],[47.883259,80.503113],[47.872631,80.519592],[47.87114,80.521431],[47.86964,80.522461],[47.868599,80.523232],[47.867851,80.524094],[47.867081,80.525513],[47.865028,80.529671],[47.860371,80.535767],[47.846722,80.551987],[47.84539,80.552849],[47.843552,80.553879],[47.8428,80.554573],[47.84193,80.555679],[47.838188,80.558769],[47.824478,80.568977],[47.81485,80.57679],[47.79208,80.597733],[47.79047,80.599449],[47.788731,80.601768],[47.78735,80.603996],[47.785561,80.606148],[47.782742,80.608887],[47.762951,80.62709],[47.759609,80.629578],[47.752739,80.634468],[47.751869,80.635406],[47.75037,80.637993],[47.749512,80.639267],[47.748291,80.640556],[47.737209,80.650352],[47.735249,80.651627],[47.733231,80.652321],[47.730869,80.652496],[47.71777,80.652618],[47.71574,80.652786],[47.713951,80.653442],[47.71117,80.654472],[47.69194,80.662369],[47.684441,80.665321],[47.681252,80.667],[47.67836,80.667343],[47.67588,80.667603],[47.673679,80.668213],[47.672119,80.66906],[47.668591,80.671379],[47.66703,80.671982],[47.665409,80.671982],[47.66021,80.671204],[47.65744,80.670433],[47.655472,80.669144],[47.653679,80.667603],[47.650089,80.663834],[47.648769,80.661926],[47.64645,80.657806],[47.645531,80.656616],[47.644371,80.655586],[47.638119,80.650703],[47.636971,80.64949],[47.636341,80.648239],[47.635181,80.646782],[47.634201,80.645752],[47.632408,80.64489],[47.63055,80.644043],[47.628189,80.643257],[47.609489,80.641586],[47.595901,80.638283],[47.589649,80.636833],[47.587109,80.635887],[47.58363,80.633636],[47.578072,80.629959],[47.568802,80.623444],[47.56736,80.622231],[47.566078,80.621803],[47.564869,80.621628],[47.55537,80.622414],[47.549568,80.623093],[47.546799,80.623444],[47.543732,80.62336],[47.539551,80.622658],[47.532768,80.622917],[47.529751,80.623001],[47.526279,80.622147],[47.510658,80.61721],[47.487869,80.608543],[47.485722,80.607773],[47.480671,80.605751],[47.47731,80.604637],[47.43161,80.593521],[47.42905,80.592323],[47.421242,80.586311],[47.418598,80.584167],[47.416599,80.582916],[47.396759,80.579399],[47.392311,80.578667],[47.389759,80.579742],[47.387699,80.580429],[47.374851,80.580688],[47.372471,80.581078],[47.363312,80.584846],[47.360371,80.586273],[47.35825,80.586739],[47.352638,80.586647],[47.349819,80.587341],[47.34119,80.59259],[47.331879,80.597717],[47.319569,80.605148],[47.314831,80.610023],[47.300751,80.622543],[47.298939,80.623947],[47.296761,80.625023],[47.295071,80.626427],[47.292019,80.630363],[47.272099,80.654472],[47.270119,80.656708],[47.267269,80.658943],[47.260921,80.663689],[47.257599,80.666351],[47.25127,80.675407],[47.247211,80.683594],[47.246471,80.684959],[47.244949,80.686447],[47.243061,80.68705],[47.239849,80.687317],[47.233131,80.687828],[47.189499,80.691467],[47.144661,80.694481],[47.07082,80.699287],[47.052109,80.699966],[46.981419,80.698601],[46.977669,80.698257],[46.97451,80.696716],[46.971809,80.695],[46.969471,80.692078],[46.967251,80.688477],[46.935261,80.630463],[46.93327,80.626846],[46.930679,80.623589],[46.92189,80.6138],[46.89727,80.5858],[46.892929,80.58168],[46.890121,80.579361],[46.887299,80.57756],[46.861721,80.563393],[46.85849,80.562187],[46.85614,80.561417],[46.853561,80.560738],[46.839649,80.561081],[46.806992,80.561958],[46.728088,80.562302],[46.72385,80.56282],[46.721378,80.564018],[46.717739,80.56694],[46.714088,80.57106],[46.711262,80.575348],[46.709259,80.578957],[46.708199,80.581703],[46.706791,80.58342],[46.703732,80.583588],[46.68948,80.58342],[46.686069,80.583763],[46.683949,80.584793],[46.680531,80.588387],[46.678532,80.590446],[46.676289,80.591827],[46.674171,80.592346],[46.671822,80.59166],[46.666519,80.587883],[46.63953,80.570541],[46.635288,80.568657],[46.631519,80.568138],[46.628571,80.568481],[46.62513,80.569603],[46.557652,80.610458],[46.524948,80.630287],[46.49506,80.64814],[46.45723,80.670799],[46.428841,80.687798],[46.414989,80.696037],[46.413479,80.696259],[46.411678,80.696121],[46.41032,80.695602],[46.409321,80.695183],[46.40836,80.694923],[46.407001,80.694923],[46.405579,80.695351],[46.404751,80.695953],[46.402981,80.697411],[46.396648,80.703484],[46.384979,80.714737],[46.342571,80.749603],[46.303871,80.781372],[46.22459,80.846413],[46.207008,80.860657],[46.204029,80.863136],[46.19865,80.867607],[46.198219,80.868042],[46.197861,80.868729],[46.197861,80.869667],[46.198341,80.870354],[46.199711,80.87233],[46.200661,80.873878],[46.20298,80.880402],[46.203388,80.881767],[46.203449,80.883583],[46.20285,80.889503],[46.202621,80.89164],[46.201191,80.901688],[46.200062,80.904427],[46.19846,80.907349],[46.196499,80.910439],[46.190979,80.928886],[46.186642,80.939537],[46.185211,80.943008],[46.183781,80.947128],[46.182949,80.951332],[46.182598,80.955193],[46.182419,80.971069],[46.180462,80.972443],[46.176182,80.974503],[46.122959,81.002571],[46.11903,81.004288],[46.1157,81.006767],[46.086899,81.024117],[46.085949,81.024971],[46.085411,81.02626],[46.085171,81.027718],[46.084808,81.029182],[46.06403,81.067802],[46.061291,81.072441],[46.05891,81.075699],[46.01363,81.126251],[46.011719,81.128754],[46.010529,81.131401],[45.999378,81.170197],[45.99699,81.176643],[45.98489,81.20359],[45.983398,81.207283],[45.98209,81.2108],[45.974869,81.251556],[45.966999,81.295174],[45.96574,81.300751],[45.952202,81.352943],[45.92617,81.46151],[45.92474,81.467003],[45.923431,81.471207],[45.907719,81.513351],[45.884838,81.574379],[45.883888,81.576439],[45.88311,81.577553],[45.87851,81.58287],[45.841572,81.624672],[45.83918,81.627853],[45.82835,81.650421],[45.82291,81.661407],[45.782639,81.745087],[45.770489,81.775818],[45.711369,81.934608],[45.706032,81.947403],[45.701962,81.955116],[45.697521,81.961212],[45.695599,81.962929],[45.69392,81.963867],[45.69212,81.963959],[45.691051,81.963707],[45.686371,81.962837],[45.683491,81.962761],[45.682468,81.963188],[45.68079,81.964821],[45.58416,82.071327],[45.53891,82.121536],[45.502449,82.168114],[45.47237,82.206497],[45.435539,82.253471],[45.43288,82.256813],[45.352539,82.358437],[45.34301,82.370888],[45.295689,82.430367],[45.287159,82.441269],[45.282871,82.446083],[45.276649,82.452087],[45.258049,82.468567],[45.257339,82.469673],[45.256802,82.471046],[45.25655,82.472603],[45.256371,82.474907],[45.255772,82.476196],[45.255081,82.476967],[45.24276,82.492943],[45.24107,82.495087],[45.23835,82.500153],[45.23605,82.505562],[45.235748,82.50676],[45.235748,82.508476],[45.236408,82.513367],[45.23629,82.51474],[45.235691,82.516289],[45.234779,82.517754],[45.221298,82.542213],[45.217979,82.546928],[45.21302,82.553284],[45.21175,82.554398],[45.210171,82.555344],[45.208,82.556198],[45.2057,82.556969],[45.204491,82.557907],[45.200378,82.561691],[45.197479,82.564438],[45.195782,82.565468],[45.19421,82.56633],[45.19318,82.566406],[45.189789,82.565552],[45.17136,82.560516],[45.166561,82.559196],[45.163719,82.55809],[45.158691,82.556969],[45.152882,82.556717],[45.084499,82.560577],[45.081108,82.560997],[45.071529,82.563843],[45.0508,82.570007],[45.04612,82.571747],[45.04187,82.574661],[45.039688,82.57827],[45.01506,82.595444],[45.01239,82.597504],[45.005718,82.605743],[45.002682,82.608307],[44.99564,82.617073],[44.978771,82.627373],[44.958,82.636978],[44.947311,82.640244],[44.94281,82.639549],[44.936371,82.637833],[44.931629,82.632507],[44.93111,82.630547],[44.9258,82.610367],[44.903549,82.542389],[44.844742,82.543419],[44.835861,82.53981],[44.834709,82.554497],[44.825001,82.547546],[44.808102,82.535461],[44.803349,82.525513],[44.802368,82.523788],[44.798359,82.516747],[44.798481,82.514],[44.79129,82.502159],[44.78569,82.496147],[44.778252,82.493919],[44.77277,82.48774],[44.765209,82.48774],[44.7616,82.496841],[44.755459,82.512283],[44.755829,82.539062],[44.74157,82.540092],[44.725101,82.544388],[44.70644,82.549362],[44.700699,82.548683],[44.683128,82.544563],[44.676418,82.539917],[44.664211,82.517776],[44.65704,82.51091],[44.653099,82.507133],[44.595058,82.5037],[44.58345,82.503532],[44.582352,82.522926],[44.580879,82.523453],[44.557529,82.522873],[44.534039,82.522293],[44.52557,82.522072],[44.52927,82.554169],[44.5313,82.571716],[44.534229,82.594208],[44.53619,82.611549],[44.536442,82.617043],[44.536678,82.620987],[44.544998,82.64502],[44.546589,82.650337],[44.547451,82.655663],[44.548061,82.671463],[44.547199,82.679176],[44.547699,82.683823],[44.547699,82.686737],[44.546959,82.691711],[44.547451,82.696007],[44.547329,82.702187],[44.547569,82.705963],[44.545731,82.742699],[44.546101,82.745613],[44.554199,82.764877],[44.55444,82.765709],[44.557529,82.773193],[44.558979,82.777283],[44.56015,82.781342],[44.568581,82.81691],[44.569359,82.820198],[44.57032,82.823631],[44.571289,82.826576],[44.582081,82.85862],[44.582989,82.861427],[44.584259,82.865913],[44.585281,82.870201],[44.589359,82.889977],[44.590691,82.896233],[44.590988,82.897942],[44.59103,82.898331],[44.591629,82.901283],[44.592972,82.907463],[44.593128,82.908318],[44.594398,82.914139],[44.5956,82.919319],[44.595772,82.919952],[44.596539,82.921898],[44.597641,82.923813],[44.599129,82.92556],[44.59964,82.926018],[44.60025,82.926498],[44.601158,82.927078],[44.602718,82.927742],[44.608871,82.929962],[44.613121,82.931633],[44.61327,82.931717],[44.613789,82.93187],[44.617851,82.933357],[44.619282,82.933968],[44.628521,82.937401],[44.633331,82.93927],[44.63562,82.940033],[44.63689,82.940529],[44.637329,82.94075],[44.637859,82.940918],[44.641899,82.942482],[44.643261,82.943153],[44.643501,82.943359],[44.644581,82.944077],[44.645691,82.945137],[44.64632,82.945908],[44.647072,82.947403],[44.64753,82.948624],[44.647732,82.949257],[44.648071,82.950394],[44.648041,82.952026],[44.648121,82.954086],[44.647881,82.957283],[44.646622,82.960457],[44.645519,82.962517],[44.64283,82.96595],[44.640511,82.969559],[44.638519,82.972366],[44.63554,82.978752],[44.633381,82.985313],[44.632469,82.990089],[44.629028,83.018311],[44.627201,83.026718],[44.621578,83.048523],[44.615349,83.086113],[44.614861,83.091438],[44.615471,83.154221],[44.615681,83.190536],[44.61544,83.220917],[44.612629,83.238258],[44.601631,83.288887],[44.595638,83.3004],[44.59034,83.305893],[44.58234,83.314774],[44.57122,83.328331],[44.569988,83.330223],[44.565102,83.345497],[44.560581,83.365227],[44.551159,83.38755],[44.543209,83.426353],[44.542961,83.428749],[44.542839,83.452782],[44.549931,83.520592],[44.55006,83.523163],[44.549931,83.525574],[44.549568,83.527802],[44.54847,83.530891],[44.522888,83.596626],[44.51738,83.607964],[44.515301,83.610542],[44.493999,83.625816],[44.492531,83.626503],[44.49033,83.626678],[44.482121,83.626846],[44.480289,83.627708],[44.476238,83.630623],[44.474899,83.632339],[44.474159,83.634064],[44.473431,83.637154],[44.46228,83.72023],[44.46032,83.748039],[44.460442,83.753021],[44.464611,83.786148],[44.464851,83.791473],[44.462521,83.859108],[44.453579,83.898933],[44.43998,83.961418],[44.438141,83.967079],[44.41766,84.027496],[44.415581,84.031113],[44.38406,84.079178],[44.382961,84.081062],[44.381969,84.083122],[44.381359,84.086037],[44.379848,84.10498],[44.374119,84.176682],[44.371559,84.24231],[44.37125,84.250366],[44.371029,84.255867],[44.36956,84.293549],[44.369381,84.298866],[44.369419,84.305313],[44.369339,84.310707],[44.36924,84.314056],[44.368771,84.329811],[44.36895,84.336533],[44.369949,84.346283],[44.373421,84.381859],[44.374149,84.38546],[44.401112,84.488602],[44.401451,84.489929],[44.401489,84.49025],[44.401718,84.491364],[44.401939,84.492889],[44.402012,84.49366],[44.40205,84.494843],[44.40202,84.496437],[44.401958,84.497253],[44.401669,84.499237],[44.401421,84.500412],[44.401112,84.501549],[44.40057,84.503014],[44.399769,84.504753],[44.399059,84.506104],[44.39526,84.512733],[44.38364,84.533234],[44.382381,84.535522],[44.381882,84.536552],[44.381409,84.537643],[44.38113,84.538383],[44.38063,84.539909],[44.38044,84.54071],[44.38015,84.542343],[44.37999,84.543556],[44.379902,84.544807],[44.37986,84.546066],[44.37989,84.548592],[44.380539,84.571327],[44.38081,84.584824],[44.38163,84.621742],[44.38187,84.631577],[44.38195,84.634491],[44.38224,84.646912],[44.382339,84.648911],[44.382622,84.652283],[44.382851,84.654289],[44.383221,84.656693],[44.383591,84.65873],[44.38401,84.660812],[44.384491,84.662949],[44.38493,84.66465],[44.387989,84.675621],[44.395012,84.701317],[44.39798,84.712379],[44.398918,84.716614],[44.399319,84.718773],[44.399849,84.722267],[44.40015,84.724907],[44.400311,84.726669],[44.400551,84.730438],[44.401211,84.745941],[44.401871,84.761391],[44.40197,84.763748],[44.402451,84.774986],[44.40266,84.779877],[44.403,84.787857],[44.403179,84.791451],[44.40366,84.803093],[44.40369,84.805023],[44.40366,84.806641],[44.403519,84.809212],[44.403332,84.811028],[44.403172,84.812218],[44.40279,84.814468],[44.402401,84.816269],[44.401421,84.820137],[44.401199,84.821136],[44.400791,84.822662],[44.399288,84.828644],[44.399052,84.829597],[44.397511,84.835991],[44.396,84.842293],[44.39402,84.850548],[44.393211,84.855598],[44.392689,84.859741],[44.392189,84.865494],[44.39209,84.872017],[44.392109,84.87764],[44.39323,84.896751],[44.393291,84.902847],[44.393311,84.907852],[44.39307,84.916458],[44.393051,84.917793],[44.391701,84.944908],[44.391331,84.952461],[44.390469,84.958641],[44.38924,84.965851],[44.37661,85.01683],[44.373291,85.02816],[44.36483,85.052711],[44.36237,85.062317],[44.361019,85.069527],[44.360161,85.077087],[44.359669,85.083946],[44.359299,85.09185],[44.359669,85.099747],[44.36372,85.137863],[44.36433,85.146263],[44.36446,85.15313],[44.36433,85.160858],[44.36348,85.168922],[44.362,85.177849],[44.360039,85.184891],[44.357342,85.192963],[44.33942,85.237083],[44.33696,85.244797],[44.335121,85.251839],[44.333771,85.259743],[44.33316,85.267632],[44.333031,85.275528],[44.333889,85.284798],[44.334751,85.292862],[44.335121,85.299042],[44.335121,85.304192],[44.334511,85.310028],[44.334511,85.314323],[44.334869,85.322731],[44.336349,85.331833],[44.33831,85.342819],[44.338799,85.347282],[44.339169,85.352432],[44.339291,85.359642],[44.33905,85.365479],[44.337582,85.375954],[44.336472,85.384697],[44.335979,85.392601],[44.335979,85.403236],[44.33672,85.415077],[44.33979,85.453369],[44.340279,85.458],[44.341999,85.468483],[44.342731,85.474312],[44.343102,85.478783],[44.34322,85.484093],[44.343102,85.489243],[44.342491,85.495422],[44.338558,85.521858],[44.33794,85.528381],[44.337818,85.53405],[44.33807,85.545891],[44.33807,85.551041],[44.33733,85.556534],[44.336102,85.56237],[44.333771,85.568733],[44.33131,85.573883],[44.327141,85.579369],[44.322109,85.584343],[44.316212,85.588814],[44.312401,85.592758],[44.309212,85.596878],[44.306019,85.602028],[44.30331,85.607857],[44.30085,85.614899],[44.299011,85.622627],[44.298271,85.630524],[44.298149,85.639961],[44.29987,85.69558],[44.299381,85.703308],[44.298401,85.710693],[44.296799,85.718071],[44.28685,85.761147],[44.28574,85.768539],[44.284882,85.776947],[44.283161,85.799103],[44.282051,85.807854],[44.280331,85.816597],[44.27763,85.826042],[44.258949,85.880463],[44.256611,85.889732],[44.255131,85.898483],[44.25415,85.906563],[44.25354,85.914108],[44.25243,85.949982],[44.251942,85.956497],[44.25071,85.965431],[44.247509,85.98243],[44.246769,85.989639],[44.246399,85.995819],[44.246399,86.00354],[44.247021,86.009903],[44.25095,86.031181],[44.25563,86.052467],[44.25956,86.063797],[44.265461,86.077187],[44.26952,86.086113],[44.272099,86.093491],[44.273941,86.101387],[44.275169,86.109123],[44.275539,86.114433],[44.275661,86.120956],[44.275421,86.126793],[44.274681,86.133148],[44.273201,86.141037],[44.26226,86.187561],[44.246159,86.230133],[44.243328,86.239059],[44.24136,86.247993],[44.239891,86.257263],[44.23521,86.288498],[44.23312,86.298447],[44.2314,86.306183],[44.221561,86.339653],[44.216511,86.356651],[44.21455,86.363518],[44.21307,86.370728],[44.21233,86.377251],[44.21196,86.384277],[44.21233,86.39064],[44.212818,86.39682],[44.21418,86.403168],[44.216881,86.412613],[44.217991,86.418793],[44.218479,86.425659],[44.218479,86.432693],[44.217621,86.439217],[44.216019,86.445572],[44.213558,86.452606],[44.20052,86.483513],[44.198429,86.490196],[44.196701,86.497917],[44.195591,86.506851],[44.195221,86.515953],[44.195251,86.543556],[44.19471,86.554619],[44.19352,86.564163],[44.190159,86.588669],[44.189831,86.596909],[44.189831,86.604279],[44.19178,86.646683],[44.19178,86.655891],[44.1908,86.66391],[44.189499,86.671829],[44.186901,86.679314],[44.18372,86.68718],[44.18166,86.691147],[44.18071,86.692917],[44.178638,86.696259],[44.17778,86.697723],[44.176701,86.699837],[44.17556,86.702438],[44.174561,86.70517],[44.17395,86.70713],[44.17337,86.709412],[44.17284,86.71209],[44.172352,86.715782],[44.172249,86.71701],[44.17215,86.71917],[44.172009,86.728439],[44.171959,86.746559],[44.171791,86.759918],[44.171539,86.764847],[44.171219,86.768806],[44.17086,86.772324],[44.170589,86.774559],[44.1702,86.777046],[44.169151,86.782753],[44.16835,86.786324],[44.167511,86.789742],[44.166519,86.793556],[44.164181,86.802719],[44.16357,86.805313],[44.162861,86.808769],[44.16214,86.812958],[44.16148,86.818092],[44.161091,86.822517],[44.16058,86.831001],[44.160439,86.832359],[44.16008,86.834793],[44.159649,86.837013],[44.158669,86.840912],[44.157921,86.843369],[44.15683,86.846336],[44.155701,86.848953],[44.154442,86.851357],[44.153419,86.853218],[44.151951,86.855492],[44.15044,86.858032],[44.14957,86.859619],[44.148289,86.862106],[44.146641,86.865753],[44.145729,86.867897],[44.143909,86.872673],[44.14275,86.875504],[44.141731,86.877777],[44.1404,86.88047],[44.139519,86.882133],[44.13802,86.884773],[44.136848,86.886597],[44.13483,86.889458],[44.133209,86.891541],[44.131359,86.89373],[44.129169,86.896019],[44.119942,86.904999],[44.11771,86.907303],[44.114632,86.910797],[44.111851,86.914253],[44.109699,86.917122],[44.1073,86.920486],[44.105091,86.923759],[44.101471,86.928864],[44.097431,86.934837],[44.092442,86.942001],[44.091,86.944183],[44.08979,86.946167],[44.087761,86.949821],[44.086342,86.952797],[44.085121,86.955643],[44.083771,86.959244],[44.08276,86.962158],[44.08242,86.96331],[44.081749,86.96566],[44.08078,86.969597],[44.080059,86.973022],[44.076771,86.989891],[44.076229,86.992317],[44.07518,86.996613],[44.074291,86.999908],[44.072842,87.004631],[44.070599,87.010902],[44.069149,87.014557],[44.067589,87.018158],[44.066078,87.021446],[44.064331,87.024857],[44.06308,87.027153],[44.060379,87.031731],[44.053638,87.042503],[44.04911,87.049896],[44.046768,87.053978],[44.045158,87.056976],[44.043751,87.059807],[44.042549,87.062439],[44.037979,87.073174],[44.032749,87.085258],[44.03149,87.087898],[44.028469,87.093567],[44.027111,87.095787],[44.024738,87.099281],[44.022659,87.102112],[44.020248,87.105118],[44.017658,87.107986],[44.01181,87.113861],[44.006989,87.118851],[44.00354,87.122307],[44.0014,87.124702],[43.999149,87.127373],[43.995361,87.132362],[43.992489,87.136711],[43.990841,87.139389],[43.974121,87.167473],[43.972591,87.170227],[43.9706,87.174049],[43.969471,87.176369],[43.967602,87.180603],[43.966541,87.183228],[43.965569,87.185707],[43.96439,87.188911],[43.963001,87.192917],[43.954929,87.21653],[43.954769,87.216988],[43.953381,87.221046],[43.951832,87.226028],[43.950878,87.229561],[43.94986,87.233673],[43.9491,87.237152],[43.948372,87.240967],[43.94772,87.244904],[43.946381,87.25338],[43.945599,87.258263],[43.943878,87.26899],[43.943729,87.269943],[43.943661,87.270348],[43.94339,87.272049],[43.943081,87.273956],[43.94278,87.275772],[43.941769,87.280762],[43.941509,87.281837],[43.94083,87.284477],[43.940159,87.287323],[43.939629,87.289253],[43.939541,87.289574],[43.938251,87.293716],[43.93816,87.294029],[43.93755,87.295952],[43.935711,87.301018],[43.93557,87.301392],[43.93351,87.30648],[43.933399,87.306717],[43.9277,87.320503],[43.924629,87.327827],[43.924469,87.328171],[43.922958,87.331383],[43.92083,87.335472],[43.917881,87.340439],[43.915852,87.343498],[43.914989,87.344727],[43.9133,87.346977],[43.911129,87.349716],[43.908119,87.353493],[43.90696,87.35508],[43.905602,87.357002],[43.9044,87.358856],[43.90316,87.360962],[43.901939,87.36319],[43.900761,87.365501],[43.899651,87.367943],[43.898571,87.370491],[43.897621,87.373047],[43.89674,87.375633],[43.89579,87.37886],[43.895031,87.381783],[43.894871,87.382446],[43.894279,87.385109],[43.893951,87.386879],[43.893879,87.387268],[43.893501,87.389687],[43.893108,87.392593],[43.892899,87.394691],[43.892689,87.397362],[43.892529,87.400497],[43.892509,87.400887],[43.892479,87.404518],[43.89249,87.407967],[43.89249,87.411003],[43.89246,87.414047],[43.892361,87.415756],[43.892189,87.417381],[43.89196,87.419029],[43.891548,87.42086],[43.891022,87.422783],[43.8904,87.424583],[43.88958,87.426697],[43.88855,87.429367],[43.888359,87.42984],[43.88744,87.43222],[43.887341,87.43248],[43.886429,87.434799],[43.886311,87.435089],[43.88559,87.436859],[43.88485,87.438332],[43.884232,87.439407],[43.883789,87.440033],[43.883591,87.440277],[43.882641,87.441483],[43.881592,87.442558],[43.880539,87.443443],[43.879509,87.444138],[43.878349,87.444763],[43.87767,87.44503],[43.877491,87.445091],[43.876438,87.445389],[43.875191,87.445633],[43.873199,87.445862],[43.87233,87.446022],[43.871521,87.446297],[43.8708,87.446678],[43.86998,87.447144],[43.869301,87.447701],[43.868549,87.44841],[43.867981,87.449081],[43.86739,87.449913],[43.866821,87.450859],[43.866261,87.452019],[43.865822,87.453217],[43.864849,87.456688],[43.86478,87.456963],[43.86433,87.458298],[43.863811,87.459641],[43.863071,87.461128],[43.862381,87.462318],[43.861549,87.463501],[43.860691,87.464523],[43.85965,87.465569],[43.859409,87.465797],[43.85841,87.466583],[43.85751,87.467148],[43.85651,87.467682],[43.855469,87.468079],[43.854439,87.468384],[43.853588,87.46859],[43.853081,87.468727],[43.851749,87.469116],[43.8503,87.469673],[43.849232,87.470154],[43.848011,87.470772],[43.847389,87.471123],[43.84705,87.471336],[43.8461,87.47197],[43.844799,87.472923],[43.84341,87.474068],[43.842701,87.474693],[43.84201,87.475243],[43.84111,87.475983],[43.83971,87.476959],[43.83831,87.477814],[43.83717,87.478394],[43.8358,87.478996],[43.83424,87.479584],[43.832649,87.480026],[43.832432,87.480072],[43.830681,87.480377],[43.814949,87.482323],[43.813801,87.482513],[43.81266,87.482819],[43.81208,87.482986],[43.811771,87.483124],[43.810558,87.483627],[43.809471,87.4842],[43.808338,87.48494],[43.807209,87.485786],[43.806221,87.486656],[43.80513,87.487793],[43.804131,87.489014],[43.803341,87.490128],[43.802521,87.491386],[43.801628,87.492851],[43.80098,87.493896],[43.800289,87.494873],[43.79995,87.495247],[43.799122,87.496063],[43.798279,87.496712],[43.797352,87.497269],[43.796452,87.497643],[43.79562,87.497864],[43.79528,87.497917],[43.794739,87.497971],[43.79393,87.497971],[43.793282,87.497902],[43.792622,87.497749],[43.79195,87.497513],[43.79126,87.497223],[43.790421,87.496727],[43.78997,87.496391],[43.789669,87.496162],[43.78923,87.495773],[43.788609,87.495148],[43.786831,87.492996],[43.784351,87.489883],[43.78339,87.4888],[43.78244,87.487953],[43.781559,87.487282],[43.780479,87.486618],[43.779621,87.486221],[43.778622,87.485832],[43.777359,87.485489],[43.768581,87.484177],[43.7672,87.483994],[43.765968,87.483688],[43.76461,87.483208],[43.763302,87.482597],[43.762199,87.481934],[43.760948,87.481003],[43.759979,87.480133],[43.75798,87.478256],[43.75629,87.476753],[43.755219,87.475883],[43.75386,87.475052],[43.752739,87.474487],[43.751438,87.473969],[43.750031,87.473557],[43.749001,87.473343],[43.747791,87.473244],[43.74649,87.47319],[43.745319,87.473297],[43.744019,87.473534],[43.742809,87.473877],[43.741699,87.474297],[43.74049,87.474876],[43.739391,87.47554],[43.738281,87.476303],[43.73737,87.477051],[43.73629,87.478119],[43.735081,87.479286],[43.733238,87.481216],[43.72575,87.488892],[43.72366,87.490959],[43.722832,87.491814],[43.722229,87.492439],[43.721432,87.493263],[43.719742,87.494972],[43.717701,87.497032],[43.715801,87.499092],[43.713329,87.501373],[43.711281,87.503128],[43.708069,87.505676],[43.705551,87.507523],[43.702839,87.509422],[43.70277,87.509468],[43.688221,87.519676],[43.686871,87.520798],[43.685829,87.521828],[43.68462,87.523239],[43.683552,87.524712],[43.682499,87.526443],[43.68145,87.528549],[43.680691,87.530472],[43.68005,87.532501],[43.679531,87.534561],[43.679199,87.536484],[43.678959,87.538696],[43.6786,87.543793],[43.67857,87.544243],[43.67757,87.558968],[43.67749,87.560387],[43.677399,87.561157],[43.67728,87.562157],[43.677139,87.563583],[43.67701,87.564293],[43.67683,87.564903],[43.676601,87.565376],[43.676239,87.56588],[43.675919,87.566231],[43.675499,87.566544],[43.674992,87.56675],[43.674511,87.566833],[43.67387,87.566788],[43.67218,87.566673],[43.67149,87.566566],[43.667702,87.566078],[43.66563,87.565826],[43.664051,87.56575],[43.662689,87.565804],[43.661449,87.565971],[43.660259,87.566231],[43.659241,87.566559],[43.65818,87.566978],[43.657131,87.567467],[43.655708,87.568199],[43.649658,87.571487],[43.639301,87.577278],[43.637989,87.578117],[43.636768,87.579117],[43.635891,87.580017],[43.635071,87.58107],[43.634281,87.582336],[43.633598,87.583778],[43.633041,87.585251],[43.63274,87.586411],[43.632462,87.587967],[43.63224,87.589622],[43.632118,87.591454],[43.631851,87.597633],[43.63166,87.602814],[43.631641,87.603279],[43.631451,87.607712],[43.631241,87.612137],[43.631008,87.615463],[43.630951,87.616127],[43.630699,87.618637],[43.630329,87.621849],[43.62991,87.62468],[43.629162,87.629738],[43.627029,87.64415],[43.626369,87.648972],[43.626221,87.650948],[43.626209,87.652649],[43.626259,87.654282],[43.626381,87.655884],[43.626579,87.657341],[43.626831,87.658737],[43.627178,87.6605],[43.628189,87.664627],[43.62838,87.665329],[43.629429,87.669518],[43.629879,87.671638],[43.630192,87.673363],[43.63036,87.674721],[43.630501,87.676178],[43.630569,87.677811],[43.63055,87.679382],[43.630421,87.681129],[43.63026,87.682762],[43.630001,87.684677],[43.62574,87.709663],[43.62455,87.716537],[43.624481,87.717003],[43.624031,87.719711],[43.623959,87.720032],[43.62365,87.721848],[43.62323,87.724319],[43.619122,87.748306],[43.618641,87.750763],[43.618141,87.753036],[43.617962,87.754066],[43.60783,87.790024],[43.606331,87.79483],[43.604469,87.798782],[43.598629,87.809593],[43.5658,87.868134],[43.56356,87.873283],[43.562561,87.877747],[43.553478,87.936623],[43.550369,87.947952],[43.548012,87.953453],[43.545639,87.958076],[43.54229,87.962029],[43.51017,87.990517],[43.5047,87.995667],[43.501419,87.997803],[43.498638,87.998932],[43.49448,88],[43.492001,88.000366],[43.490589,88.001099],[43.48933,88.002701],[43.487259,88.007523],[43.485432,88.01181],[43.473808,88.040779],[43.471821,88.044037],[43.451771,88.064278],[43.42305,88.092621],[43.421719,88.094742],[43.418388,88.102074],[43.41431,88.110977],[43.40517,88.127991],[43.40303,88.132248],[43.401909,88.137573],[43.401039,88.144524],[43.401039,88.14724],[43.401409,88.150192],[43.40102,88.15242],[43.398079,88.160744],[43.39703,88.162621],[43.395271,88.164429],[43.388039,88.171944],[43.386688,88.174652],[43.37188,88.212837],[43.369881,88.215889],[43.367619,88.218224],[43.363781,88.220337],[43.352619,88.226151],[43.350868,88.227867],[43.350121,88.229424],[43.348751,88.233704],[43.346882,88.247093],[43.347191,88.253166],[43.347919,88.274597],[43.347969,88.280197],[43.3475,88.284607],[43.343578,88.307373],[43.343201,88.309288],[43.342369,88.311203],[43.34161,88.312332],[43.340641,88.313347],[43.336269,88.316933],[43.335411,88.31813],[43.333851,88.322166],[43.332958,88.323196],[43.331371,88.325027],[43.329269,88.329193],[43.328281,88.330704],[43.32671,88.331947],[43.324421,88.333443],[43.31831,88.337143],[43.317211,88.338058],[43.316551,88.338982],[43.316002,88.339928],[43.312481,88.348618],[43.311829,88.349541],[43.308739,88.353241],[43.307331,88.3545],[43.305771,88.355309],[43.304501,88.35553],[43.303329,88.355553],[43.302132,88.355293],[43.301041,88.354797],[43.299999,88.354073],[43.299019,88.352921],[43.29567,88.347366],[43.294922,88.34639],[43.29427,88.345863],[43.293468,88.345444],[43.292549,88.345306],[43.286049,88.345741],[43.28421,88.346138],[43.279449,88.348213],[43.278389,88.348846],[43.277592,88.349823],[43.275612,88.354141],[43.275002,88.354927],[43.27446,88.355331],[43.273899,88.355469],[43.273232,88.355362],[43.272732,88.355019],[43.27166,88.353889],[43.270939,88.353447],[43.27021,88.353317],[43.26955,88.35347],[43.268181,88.354393],[43.264778,88.35762],[43.263809,88.358849],[43.263401,88.360359],[43.26244,88.370163],[43.261951,88.37146],[43.261261,88.372208],[43.26041,88.372498],[43.25938,88.372566],[43.256512,88.372383],[43.255489,88.372543],[43.25478,88.372917],[43.24931,88.377213],[43.246029,88.379967],[43.244301,88.382111],[43.23455,88.400726],[43.232761,88.408127],[43.232342,88.411072],[43.232262,88.423782],[43.231758,88.42601],[43.227589,88.431534],[43.22604,88.433823],[43.224918,88.436653],[43.222912,88.445251],[43.222118,88.44709],[43.220909,88.448799],[43.217781,88.45314],[43.21653,88.454224],[43.214489,88.455139],[43.21336,88.455887],[43.211441,88.458023],[43.2104,88.458809],[43.206848,88.46019],[43.20443,88.461479],[43.199009,88.465073],[43.196541,88.467239],[43.19408,88.470032],[43.192829,88.471207],[43.191368,88.472076],[43.189159,88.473167],[43.188202,88.473831],[43.186279,88.47554],[43.185108,88.476303],[43.183319,88.476707],[43.180149,88.477287],[43.17802,88.477966],[43.174019,88.479759],[43.172951,88.480476],[43.172161,88.481453],[43.169781,88.484947],[43.168968,88.485672],[43.168079,88.486183],[43.167301,88.486397],[43.16626,88.48629],[43.162991,88.485527],[43.161709,88.485367],[43.16024,88.485497],[43.158871,88.485817],[43.157822,88.486397],[43.15678,88.487129],[43.15575,88.488297],[43.15485,88.489777],[43.15295,88.493713],[43.151932,88.495148],[43.150249,88.497177],[43.147289,88.499817],[43.145618,88.500908],[43.11911,88.508789],[43.113972,88.510857],[43.10878,88.514526],[43.104771,88.516747],[43.095871,88.520363],[43.08585,88.524307],[43.085049,88.52462],[43.084221,88.527397],[43.083469,88.533073],[43.064529,88.645844],[43.063782,88.650993],[43.06353,88.655983],[43.064659,88.704552],[43.062901,88.758797],[43.062149,88.766693],[43.061272,88.770302],[43.060139,88.773048],[43.054749,88.780937],[43.034679,88.809776],[43.031158,88.816467],[43.022129,88.835701],[43.020741,88.840851],[43.01685,88.861969],[43.01511,88.895157],[43.014431,88.903923],[43.01189,88.944511],[43.010181,88.985939],[43.008678,89.023689],[43.00766,89.051407],[43.006378,89.084343],[43.00621,89.086533],[43.00592,89.088699],[43.005348,89.091614],[43.004471,89.094673],[42.995232,89.121597],[42.994888,89.122597],[42.993141,89.127441],[42.986832,89.144073],[42.986031,89.1464],[42.983082,89.154968],[42.980911,89.161613],[42.97858,89.169212],[42.975029,89.179268],[42.974419,89.18145],[42.974018,89.182877],[42.970001,89.211029],[42.96912,89.214462],[42.968922,89.214996],[42.967739,89.218063],[42.957939,89.240379],[42.949902,89.258751],[42.931519,89.301567],[42.922131,89.323463],[42.92075,89.327423],[42.919739,89.332222],[42.919361,89.336693],[42.920872,89.430923],[42.92112,89.450844],[42.920872,89.456848],[42.91634,89.50766],[42.91534,89.513321],[42.912819,89.523277],[42.912071,89.528427],[42.91132,89.550583],[42.91169,89.55246],[42.912701,89.55452],[42.916729,89.560028],[42.917099,89.560532],[42.91848,89.563278],[42.919609,89.566368],[42.921749,89.569633],[42.924389,89.571167],[42.926029,89.572372],[42.929161,89.573227],[42.93055,89.574257],[42.931801,89.575813],[42.93243,89.578209],[42.93243,89.584053],[42.93306,89.586617],[42.935951,89.593658],[42.93721,89.597092],[42.937969,89.6007],[42.938339,89.604637],[42.938091,89.609283],[42.936081,89.6213],[42.934952,89.625237],[42.933819,89.628853],[42.933441,89.632111],[42.933441,89.634857],[42.933941,89.645332],[42.933689,89.64962],[42.931801,89.66198],[42.92263,89.702316],[42.921879,89.705238],[42.921879,89.708328],[42.922249,89.711418],[42.924259,89.721718],[42.9245,89.722847],[42.925522,89.727898],[42.926029,89.730988],[42.926029,89.734077],[42.92577,89.736481],[42.901379,89.832443],[42.900501,89.836906],[42.900249,89.841187],[42.900249,89.845154],[42.902519,89.868317],[42.903271,89.875359],[42.903271,89.879303],[42.902889,89.882736],[42.90189,89.887199],[42.89333,89.916039],[42.882519,89.957413],[42.879749,89.968567],[42.87484,89.992432],[42.875099,90.001534],[42.876228,90.003593],[42.877361,90.007881],[42.87812,90.013542],[42.87849,90.033287],[42.87925,90.038597],[42.880501,90.043587],[42.883518,90.048897],[42.8839,90.050797],[42.883518,90.052513],[42.882019,90.064011],[42.882389,90.07534],[42.885159,90.088043],[42.887299,90.107613],[42.887299,90.111557],[42.885658,90.118088],[42.884529,90.125473],[42.884529,90.155167],[42.884781,90.160141],[42.88755,90.178169],[42.89032,90.194313],[42.891571,90.202888],[42.892578,90.218163],[42.89283,90.225548],[42.894341,90.255417],[42.89547,90.257637],[42.897228,90.260223],[42.91433,90.276871],[42.916088,90.278587],[42.92572,90.286217],[42.926281,90.286659],[42.928669,90.289574],[42.954681,90.325447],[42.965561,90.339417],[42.969109,90.352364],[42.96933,90.354347],[42.97477,90.391518],[42.975849,90.398308],[42.976601,90.404121],[42.976608,90.404427],[42.979778,90.425003],[42.980309,90.428658],[42.981098,90.434731],[42.983521,90.450653],[42.98632,90.469856],[42.986919,90.474617],[42.987289,90.476891],[42.98819,90.483231],[42.98856,90.485153],[42.98893,90.486382],[42.989491,90.487823],[42.998089,90.50766],[42.998421,90.508636],[42.998821,90.510246],[42.999931,90.518677],[43.000271,90.520767],[43.000511,90.522957],[43.001389,90.528778],[43.00177,90.531792],[43.001911,90.532593],[43.002289,90.5355],[43.003151,90.540283],[43.00349,90.541817],[43.00515,90.55069],[43.005402,90.551743],[43.005741,90.553596],[43.00655,90.559807],[43.006821,90.561119],[43.010551,90.585213],[43.010761,90.586189],[43.01086,90.586868],[43.011879,90.59243],[43.012051,90.593674],[43.014481,90.607651],[43.015041,90.611397],[43.01532,90.612556],[43.016499,90.6185],[43.016621,90.618858],[43.01749,90.624069],[43.017841,90.625748],[43.01783,90.625999],[43.01865,90.62989],[43.019321,90.633347],[43.019691,90.634842],[43.019711,90.635452],[43.020451,90.639526],[43.023109,90.652611],[43.0243,90.659431],[43.025982,90.66787],[43.026249,90.669579],[43.027802,90.678146],[43.028332,90.680779],[43.028751,90.683296],[43.028961,90.684067],[43.029202,90.685738],[43.02927,90.686523],[43.030109,90.691254],[43.030991,90.695862],[43.031811,90.700508],[43.03191,90.701439],[43.033859,90.712013],[43.034119,90.713043],[43.034389,90.713882],[43.034821,90.714951],[43.035488,90.716331],[43.037731,90.720207],[43.038509,90.721474],[43.03936,90.722672],[43.039669,90.723244],[43.039711,90.723442],[43.041012,90.7258],[43.049889,90.741318],[43.078011,90.789993],[43.079781,90.793114],[43.091789,90.813927],[43.094238,90.818253],[43.105728,90.83815],[43.127251,90.875664],[43.128132,90.877113],[43.129059,90.878807],[43.152161,90.918983],[43.15641,90.926468],[43.15712,90.927567],[43.15815,90.928741],[43.160381,90.930939],[43.16106,90.931686],[43.161839,90.932793],[43.162491,90.934036],[43.162708,90.934593],[43.163059,90.935707],[43.167259,90.954353],[43.174629,90.9879],[43.177311,90.999687],[43.186829,91.042557],[43.18734,91.045181],[43.193069,91.070633],[43.197281,91.089661],[43.198051,91.092934],[43.200958,91.105988],[43.201221,91.106888],[43.201569,91.107857],[43.2425,91.200439],[43.247059,91.210648],[43.26371,91.248741],[43.269489,91.261757],[43.271019,91.265343],[43.275181,91.274818],[43.277649,91.280586],[43.28059,91.287086],[43.282509,91.291519],[43.285599,91.298424],[43.296082,91.322212],[43.296822,91.323753],[43.297359,91.324638],[43.303131,91.333267],[43.309929,91.343613],[43.311359,91.345619],[43.315521,91.3517],[43.31625,91.352943],[43.31702,91.354584],[43.32486,91.374878],[43.32983,91.387619],[43.33807,91.410332],[43.343979,91.426453],[43.347961,91.437576],[43.348209,91.438461],[43.348942,91.440407],[43.3494,91.441437],[43.352039,91.44873],[43.352589,91.451378],[43.3535,91.460182],[43.354031,91.465851],[43.354301,91.468117],[43.355129,91.476349],[43.355499,91.478973],[43.361481,91.501579],[43.363602,91.509407],[43.364449,91.512863],[43.37183,91.539879],[43.3741,91.548363],[43.374298,91.548882],[43.374851,91.549858],[43.375061,91.550453],[43.375771,91.553467],[43.37603,91.555138],[43.375938,91.555389],[43.37709,91.559853],[43.377621,91.562492],[43.380009,91.581299],[43.381809,91.596481],[43.382011,91.597931],[43.382099,91.598396],[43.382301,91.598907],[43.382561,91.601357],[43.382629,91.602577],[43.382641,91.604263],[43.382542,91.606644],[43.382259,91.609413],[43.381939,91.611397],[43.37965,91.621933],[43.378841,91.625473],[43.3764,91.634987],[43.37545,91.637947],[43.37505,91.639877],[43.374619,91.641647],[43.370998,91.655388],[43.37027,91.658417],[43.365871,91.675323],[43.365059,91.678452],[43.364731,91.67955],[43.363499,91.684471],[43.361439,91.692139],[43.359531,91.699547],[43.359241,91.701263],[43.359169,91.702637],[43.35928,91.703987],[43.359509,91.705276],[43.359982,91.707161],[43.36982,91.742973],[43.372631,91.753021],[43.37392,91.757812],[43.37442,91.759483],[43.375198,91.762428],[43.375401,91.763397],[43.375561,91.764717],[43.375599,91.765999],[43.375408,91.768929],[43.37521,91.770554],[43.374908,91.772171],[43.37463,91.773232],[43.374088,91.774811],[43.373291,91.776604],[43.364761,91.792717],[43.364399,91.793503],[43.363998,91.794601],[43.36359,91.796387],[43.36343,91.797989],[43.363441,91.799316],[43.363579,91.800652],[43.364021,91.802567],[43.366032,91.808868],[43.37429,91.834282],[43.375271,91.837433],[43.381149,91.855637],[43.382408,91.8592],[43.38306,91.861214],[43.393181,91.890991],[43.394131,91.893608],[43.404839,91.925247],[43.407921,91.934532],[43.408772,91.936867],[43.410931,91.943413],[43.411652,91.945847],[43.41333,91.951942],[43.41539,91.959442],[43.4156,91.960617],[43.415649,91.961197],[43.415649,91.961807],[43.415539,91.963013],[43.415421,91.963593],[43.41518,91.964447],[43.413719,91.968903],[43.408131,91.984978],[43.38829,92.04274],[43.38768,92.044403],[43.384071,92.055069],[43.383888,92.055931],[43.383739,92.062576],[43.383549,92.063652],[43.383751,92.077217],[43.383621,92.07988],[43.379551,92.111923],[43.3783,92.121323],[43.37817,92.12278],[43.378181,92.123451],[43.378139,92.123787],[43.37804,92.124077],[43.378078,92.124092],[43.377602,92.12693],[43.376678,92.134521],[43.37648,92.134933],[43.37635,92.13591],[43.376438,92.136101],[43.37492,92.146538],[43.3741,92.150238],[43.373829,92.150787],[43.373161,92.151619],[43.371979,92.152588],[43.371311,92.152802],[43.368759,92.1539],[43.343491,92.165489],[43.336319,92.16864],[43.33614,92.16864],[43.333519,92.169991],[43.322121,92.175133],[43.315922,92.177841],[43.315189,92.178223],[43.31448,92.17868],[43.31414,92.178963],[43.313519,92.179672],[43.31295,92.180489],[43.311031,92.183868],[43.309029,92.187683],[43.308578,92.188721],[43.308182,92.190086],[43.30558,92.201569],[43.305191,92.203537],[43.305031,92.204117],[43.304661,92.205032],[43.304211,92.205818],[43.303791,92.206337],[43.300419,92.209373],[43.29726,92.213799],[43.29509,92.219322],[43.293221,92.224327],[43.29282,92.225693],[43.29261,92.226868],[43.29121,92.236771],[43.290798,92.238876],[43.290199,92.241379],[43.290039,92.241692],[43.289768,92.243027],[43.289742,92.243393],[43.289631,92.243736],[43.289581,92.245827],[43.2896,92.249359],[43.28965,92.249733],[43.28944,92.251373],[43.28904,92.253258],[43.288872,92.253853],[43.288399,92.254959],[43.28759,92.2565],[43.286591,92.257843],[43.28548,92.259117],[43.266258,92.280243],[43.26268,92.284241],[43.258411,92.288857],[43.257809,92.289658],[43.25742,92.290321],[43.256969,92.29129],[43.256691,92.292053],[43.256378,92.293137],[43.2561,92.294647],[43.25592,92.296593],[43.255692,92.301987],[43.255619,92.306412],[43.255081,92.324226],[43.254978,92.326187],[43.254929,92.3265],[43.25465,92.327293],[43.25452,92.328056],[43.254539,92.331291],[43.254822,92.3321],[43.25502,92.332977],[43.25502,92.33429],[43.255081,92.334824],[43.255112,92.336983],[43.25491,92.351593],[43.25494,92.351967],[43.255192,92.352547],[43.255161,92.358383],[43.255341,92.369583],[43.255348,92.373428],[43.25544,92.37973],[43.255489,92.381088],[43.25544,92.38237],[43.255562,92.386459],[43.255569,92.38871],[43.255501,92.3909],[43.255562,92.41449],[43.255508,92.41684],[43.25544,92.417953],[43.255112,92.442863],[43.255032,92.44442],[43.254902,92.451012],[43.254879,92.455528],[43.254799,92.458504],[43.254829,92.460274],[43.254902,92.460899],[43.255131,92.46122],[43.255089,92.468697],[43.25489,92.477119],[43.254978,92.48597],[43.25494,92.488167],[43.25486,92.489609],[43.254711,92.507919],[43.25457,92.517036],[43.254532,92.517326],[43.254589,92.518883],[43.25581,92.530167],[43.25584,92.53196],[43.25576,92.533012],[43.255421,92.53582],[43.253208,92.549698],[43.252701,92.552528],[43.252499,92.553307],[43.251751,92.555443],[43.250801,92.557281],[43.250229,92.55851],[43.243992,92.570717],[43.242409,92.573624],[43.242149,92.574242],[43.236401,92.585487],[43.230221,92.597183],[43.22961,92.598503],[43.228851,92.599838],[43.2285,92.600647],[43.227299,92.602959],[43.22636,92.604622],[43.225151,92.607018],[43.222401,92.612137],[43.221802,92.61338],[43.219791,92.61718],[43.218559,92.61972],[43.2174,92.62175],[43.216888,92.622757],[43.2164,92.624069],[43.214039,92.628708],[43.213139,92.630333],[43.2122,92.632301],[43.212051,92.632523],[43.211658,92.63279],[43.210991,92.632889],[43.21035,92.633072],[43.210129,92.633209],[43.20993,92.633461],[43.207069,92.639236],[43.206989,92.639481],[43.205688,92.641998],[43.20525,92.64299],[43.204369,92.644783],[43.20388,92.645653],[43.19825,92.65416],[43.197201,92.655479],[43.196789,92.656464],[43.196609,92.657181],[43.19635,92.6577],[43.196079,92.65802],[43.190941,92.662827],[43.190338,92.663452],[43.188599,92.665031],[43.186859,92.666748],[43.185692,92.668007],[43.184761,92.669159],[43.183418,92.670967],[43.180092,92.676376],[43.172909,92.687592],[43.17234,92.688583],[43.169239,92.693604],[43.168331,92.695328],[43.167881,92.696358],[43.167221,92.698227],[43.166851,92.6996],[43.165169,92.706772],[43.16357,92.714363],[43.163559,92.714729],[43.161999,92.72184],[43.16135,92.722961],[43.15799,92.729736],[43.156681,92.732277],[43.155411,92.734993],[43.154388,92.737671],[43.153999,92.739197],[43.15382,92.740334],[43.153301,92.742409],[43.152962,92.744377],[43.15284,92.745354],[43.152012,92.750618],[43.151588,92.752319],[43.15163,92.752579],[43.151291,92.753853],[43.150669,92.755867],[43.150249,92.757011],[43.14949,92.75869],[43.14801,92.761574],[43.14732,92.762558],[43.145931,92.7649],[43.144001,92.767769],[43.1413,92.771973],[43.139622,92.77475],[43.138191,92.777542],[43.13784,92.778351],[43.136761,92.78141],[43.133678,92.791237],[43.133209,92.792923],[43.132771,92.79425],[43.132648,92.794487],[43.13208,92.796402],[43.130611,92.801697],[43.130001,92.804459],[43.129471,92.807159],[43.12764,92.815422],[43.12764,92.815628],[43.127708,92.816093],[43.128059,92.817108],[43.12809,92.817642],[43.127239,92.822151],[43.124889,92.833717],[43.12468,92.834572],[43.124001,92.836807],[43.123409,92.83847],[43.121769,92.843559],[43.117249,92.856644],[43.116928,92.857742],[43.097961,92.913582],[43.09219,92.930397],[43.091251,92.932861],[43.089909,92.936729],[43.08939,92.938499],[43.088219,92.941933],[43.085678,92.949699],[43.08448,92.953049],[43.084339,92.95372],[43.083939,92.954758],[43.081841,92.961029],[43.081139,92.962883],[43.077202,92.974609],[43.073639,92.984818],[43.07309,92.986237],[43.072651,92.98764],[43.071579,92.990761],[43.070629,92.993958],[43.06773,93.002113],[43.06179,93.019722],[43.059059,93.027451],[43.05798,93.03083],[43.05611,93.036209],[43.055599,93.037857],[43.054531,93.040833],[43.0536,93.043671],[43.050701,93.051971],[43.048828,93.05748],[43.04847,93.058357],[43.04398,93.071747],[43.04361,93.072983],[43.036949,93.0923],[43.030769,93.110497],[43.030392,93.111504],[43.02821,93.117996],[43.02644,93.122902],[43.02552,93.125717],[43.021511,93.137383],[43.020081,93.141777],[43.019531,93.143211],[43.018318,93.146812],[43.014252,93.158577],[43.012951,93.162216],[43.012581,93.163368],[43.012489,93.163933],[43.011021,93.167953],[43.01017,93.170631],[43.009911,93.171303],[42.956379,93.327377],[42.943939,93.363609],[42.93602,93.384903],[42.923698,93.417068],[42.914711,93.439667],[42.90744,93.457962],[42.906872,93.459129],[42.90659,93.460068],[42.90519,93.464157],[42.90258,93.470917],[42.902351,93.471611],[42.90118,93.474586],[42.89896,93.47998],[42.897121,93.484833],[42.895458,93.488991],[42.89336,93.494431],[42.892899,93.495789],[42.892529,93.496559],[42.88739,93.512894],[42.887272,93.517189],[42.888271,93.531914],[42.862091,93.564423],[42.861511,93.564209],[42.861229,93.564102],[42.86145,93.564613],[42.861591,93.565399],[42.861431,93.566383],[42.86108,93.567436],[42.860889,93.568802],[42.860519,93.574074],[42.860298,93.582787],[42.859718,93.588753],[42.859089,93.594093],[42.858608,93.596024],[42.858109,93.597328],[42.85775,93.598083],[42.844662,93.621597],[42.833488,93.641823],[42.828079,93.651497],[42.825699,93.655746],[42.824928,93.657333],[42.82415,93.659142],[42.823341,93.661308],[42.82259,93.663757],[42.821941,93.666389],[42.821411,93.669212],[42.82106,93.672157],[42.820869,93.675217],[42.820148,93.715927],[42.819351,93.749474],[42.819149,93.751984],[42.81884,93.754433],[42.81839,93.756721],[42.817348,93.760773],[42.816341,93.763344],[42.815842,93.763969],[42.81535,93.764908],[42.814701,93.766747],[42.812519,93.771149],[42.812069,93.772324],[42.811932,93.773102],[42.727871,93.941811],[42.721931,93.953537],[42.720589,93.955933],[42.719109,93.958252],[42.717548,93.960472],[42.699131,93.982513],[42.699059,93.983383],[42.698891,93.983681],[42.698071,93.984612],[42.696949,93.986053],[42.695301,93.987839],[42.69413,93.989487],[42.69381,93.99012],[42.69331,93.990646],[42.692101,93.991898],[42.69136,93.992996],[42.69014,93.994179],[42.687519,93.99733],[42.687038,93.997597],[42.686771,93.99736],[42.686432,93.997581],[42.65414,94.036118],[42.646832,94.044739],[42.645691,94.045403],[42.644489,94.046288],[42.644058,94.046982],[42.643921,94.047897],[42.64352,94.048683],[42.615822,94.081642],[42.615479,94.082474],[42.61515,94.083054],[42.61348,94.085068],[42.613319,94.085991],[42.612419,94.087349],[42.611771,94.087723],[42.610729,94.087997],[42.610352,94.088097],[42.5938,94.107742],[42.591869,94.110123],[42.591282,94.110817],[42.576759,94.127983],[42.57444,94.130577],[42.574371,94.130829],[42.55592,94.152588],[42.5546,94.153893],[42.552959,94.1549],[42.55114,94.155441],[42.549179,94.155487],[42.511021,94.154877],[42.50568,94.154716],[42.48864,94.154488],[42.479259,94.154243],[42.455231,94.153893],[42.45348,94.15358],[42.452808,94.153816],[42.416431,94.153236],[42.404751,94.152946],[42.390621,94.152786],[42.387569,94.152687],[42.38446,94.152702],[42.37709,94.15255],[42.375671,94.152588],[42.374401,94.152344],[42.37154,94.150558],[42.36993,94.14994],[42.368191,94.150368],[42.36639,94.151428],[42.364391,94.152222],[42.36224,94.152328],[42.34985,94.15213],[42.347618,94.152443],[42.345421,94.153099],[42.343281,94.154137],[42.341251,94.155533],[42.33934,94.15728],[42.33762,94.159363],[42.323891,94.17894],[42.299648,94.213142],[42.29924,94.213348],[42.29882,94.213783],[42.292431,94.222908],[42.292061,94.223824],[42.291611,94.224564],[42.26054,94.268501],[42.259979,94.269096],[42.258591,94.268639],[42.25832,94.269371],[42.258259,94.271477],[42.25798,94.272148],[42.221859,94.32328],[42.21785,94.328712],[42.201809,94.351463],[42.186401,94.3731],[42.18565,94.374268],[42.182468,94.378754],[42.17992,94.382103],[42.07518,94.501556],[42.07399,94.503014],[42.071751,94.506172],[42.070728,94.507843],[42.069248,94.510452],[42.05822,94.531387],[42.05555,94.536324],[42.034328,94.57663],[42.028992,94.586594],[42.01165,94.619476],[42.006409,94.629227],[42.002441,94.636864],[41.996479,94.647957],[41.97168,94.694656],[41.970669,94.696457],[41.96846,94.699707],[41.964611,94.704811],[41.961651,94.708549],[41.953011,94.719757],[41.951698,94.721367],[41.93182,94.747139],[41.928169,94.751717],[41.92601,94.754211],[41.917702,94.764259],[41.907219,94.776627],[41.906189,94.778198],[41.905659,94.779518],[41.90535,94.780724],[41.905182,94.781952],[41.905979,94.819061],[41.905891,94.82193],[41.904789,94.824211],[41.896778,94.833511],[41.889599,94.842018],[41.88821,94.843773],[41.886959,94.845734],[41.885899,94.847763],[41.872711,94.87912],[41.87204,94.881699],[41.871601,94.88427],[41.87085,94.886482],[41.86935,94.887657],[41.86618,94.889374],[41.864529,94.890427],[41.854229,94.897636],[41.853321,94.898354],[41.850658,94.900124],[41.845459,94.90377],[41.843231,94.905518],[41.84193,94.906731],[41.834141,94.91481],[41.83263,94.916656],[41.831348,94.918793],[41.830341,94.921066],[41.822659,94.947006],[41.822681,94.946938],[41.821529,94.950897],[41.811859,94.981277],[41.811451,94.982964],[41.811062,94.987167],[41.80801,95.009956],[41.807579,95.012787],[41.803242,95.035828],[41.80278,95.037987],[41.801811,95.039459],[41.800449,95.040283],[41.79937,95.041672],[41.798981,95.043709],[41.798931,95.046043],[41.79929,95.048683],[41.801491,95.056557],[41.807201,95.081543],[41.807819,95.084007],[41.808601,95.086418],[41.81176,95.094139],[41.812141,95.095657],[41.813389,95.102814],[41.81377,95.104523],[41.813801,95.106232],[41.81308,95.107803],[41.805882,95.116547],[41.79686,95.127617],[41.795639,95.128998],[41.795818,95.128799],[41.795311,95.129143],[41.795021,95.12973],[41.794418,95.130508],[41.793739,95.131241],[41.792912,95.131813],[41.791931,95.132187],[41.787621,95.133377],[41.785759,95.134048],[41.783821,95.13443],[41.77948,95.133087],[41.777401,95.133003],[41.769032,95.136383],[41.767269,95.13694],[41.761452,95.13842],[41.759869,95.138908],[41.758209,95.139793],[41.725281,95.170288],[41.716209,95.178574],[41.713089,95.181328],[41.7062,95.186333],[41.70443,95.187531],[41.702549,95.188553],[41.69426,95.191917],[41.69257,95.192741],[41.69117,95.193787],[41.690331,95.194557],[41.685749,95.199341],[41.67609,95.209084],[41.674431,95.210327],[41.67263,95.21125],[41.670658,95.211891],[41.66626,95.213074],[41.664299,95.214027],[41.662991,95.215828],[41.660839,95.219803],[41.65979,95.221008],[41.65844,95.221863],[41.648361,95.225349],[41.646259,95.226189],[41.644218,95.227188],[41.608528,95.247704],[41.60677,95.248993],[41.605129,95.250458],[41.603642,95.25209],[41.55867,95.303436],[41.557178,95.304878],[41.55547,95.306084],[41.5536,95.306976],[41.537659,95.313148],[41.521111,95.319687],[41.503269,95.326576],[41.499722,95.327744],[41.486279,95.331001],[41.483829,95.33149],[41.48151,95.331749],[41.418961,95.336037],[41.41769,95.336189],[41.34993,95.340813],[41.348049,95.341026],[41.346149,95.341423],[41.309109,95.351532],[41.299801,95.353996],[41.295872,95.355118],[41.286308,95.357643],[41.27911,95.359596],[41.267288,95.36293],[41.239849,95.370354],[41.235882,95.371529],[41.23431,95.371887],[41.230549,95.372963],[41.227638,95.37355],[41.210209,95.375168],[41.1908,95.376801],[41.1786,95.377998],[41.171768,95.378571],[41.170151,95.37912],[41.145889,95.396797],[41.144199,95.398277],[41.142658,95.39991],[41.14127,95.401672],[41.125759,95.42276],[41.12434,95.424553],[41.122841,95.426117],[41.121288,95.427467],[41.112598,95.434418],[41.11095,95.435333],[41.107349,95.436142],[41.10556,95.436951],[41.09116,95.448433],[41.089539,95.449463],[41.084831,95.452087],[41.083542,95.45327],[41.082561,95.454788],[41.078522,95.461853],[41.077301,95.463303],[41.075081,95.464668],[41.07473,95.464867],[41.073681,95.465584],[41.072338,95.466461],[41.06773,95.469482],[41.06414,95.472038],[41.061741,95.472977],[41.059601,95.473038],[41.05727,95.472641],[41.04948,95.469711],[41.047211,95.468109],[41.045151,95.467041],[41.043018,95.467041],[41.04055,95.467773],[41.037159,95.469513],[41.035561,95.469711],[41.033291,95.469711],[41.030491,95.469437],[41.028629,95.469437],[41.024899,95.470383],[41.021969,95.470909],[41.020901,95.470711],[41.019501,95.469383],[41.01804,95.468109],[41.015301,95.466637],[41.013241,95.466309],[41.008911,95.465981],[41.00671,95.466309],[41.004841,95.467308],[41.003052,95.468842],[41.000679,95.471848],[40.997429,95.475533],[40.993698,95.478722],[40.941299,95.523643],[40.882931,95.57193],[40.860771,95.59272],[40.852169,95.60096],[40.85096,95.601868],[40.849178,95.602623],[40.84457,95.604057],[40.84127,95.604858],[40.835602,95.606003],[40.832191,95.606857],[40.827271,95.608528],[40.824211,95.60997],[40.818081,95.613297],[40.815659,95.614197],[40.794498,95.620667],[40.79213,95.62159],[40.790161,95.622757],[40.739639,95.653053],[40.683159,95.68631],[40.560768,95.758293],[40.559139,95.75927],[40.557941,95.760551],[40.55727,95.761803],[40.556862,95.763359],[40.55566,95.769852],[40.55521,95.773392],[40.550732,95.791092],[40.5439,95.818512],[40.54306,95.821533],[40.543018,95.821587],[40.540649,95.831047],[40.53907,95.837341],[40.530319,95.872833],[40.529411,95.877419],[40.528881,95.881477],[40.528851,95.881737],[40.528599,95.886452],[40.528671,95.890549],[40.528831,95.892937],[40.529091,95.895401],[40.531139,95.913231],[40.531509,95.916992],[40.532009,95.922897],[40.532108,95.924156],[40.532829,95.935677],[40.533211,95.940323],[40.533291,95.941277],[40.533428,95.942421],[40.533798,95.945557],[40.534019,95.947113],[40.535252,95.954674],[40.53624,95.964233],[40.537189,95.976349],[40.539242,95.992767],[40.539989,96.005859],[40.54044,96.010193],[40.541,96.01384],[40.542919,96.026047],[40.543171,96.028214],[40.54752,96.070686],[40.54813,96.076599],[40.548721,96.084511],[40.549389,96.096077],[40.550598,96.11734],[40.55098,96.121567],[40.551849,96.128128],[40.556881,96.156647],[40.557098,96.158058],[40.557629,96.161926],[40.557949,96.165993],[40.55872,96.179993],[40.560951,96.199028],[40.563648,96.226624],[40.568291,96.274063],[40.56879,96.278961],[40.569698,96.285233],[40.57069,96.290207],[40.571339,96.292847],[40.57394,96.302109],[40.57439,96.30407],[40.574661,96.305313],[40.575359,96.308998],[40.57552,96.309914],[40.575581,96.310371],[40.575699,96.31115],[40.575871,96.312462],[40.576149,96.314682],[40.576519,96.319397],[40.576649,96.32518],[40.576401,96.338333],[40.57526,96.417137],[40.575562,96.426323],[40.576611,96.438957],[40.57682,96.443626],[40.576698,96.448219],[40.576618,96.451401],[40.576591,96.453537],[40.575729,96.465378],[40.575241,96.483818],[40.574841,96.488899],[40.573952,96.494553],[40.570702,96.510117],[40.569939,96.516006],[40.569469,96.522537],[40.569019,96.527107],[40.568401,96.531517],[40.567451,96.536507],[40.566219,96.54361],[40.565731,96.550591],[40.565731,96.553001],[40.566029,96.558853],[40.566509,96.568413],[40.566341,96.575249],[40.565929,96.582329],[40.565948,96.586288],[40.5662,96.590271],[40.566681,96.594307],[40.56736,96.599838],[40.567348,96.608368],[40.56723,96.61602],[40.567322,96.618179],[40.56736,96.618927],[40.56749,96.620659],[40.56765,96.622299],[40.5686,96.630157],[40.568958,96.634697],[40.571991,96.703812],[40.572929,96.710403],[40.575539,96.721573],[40.576149,96.725319],[40.576641,96.731293],[40.576611,96.736549],[40.576099,96.742088],[40.574718,96.750931],[40.574219,96.758362],[40.57423,96.758377],[40.574219,96.758362],[40.574409,96.762466],[40.575451,96.787216],[40.575531,96.792084],[40.5755,96.794434],[40.57523,96.799507],[40.574692,96.804893],[40.574379,96.807129],[40.570881,96.826408],[40.56163,96.876579],[40.559639,96.891777],[40.558578,96.896599],[40.558071,96.89843],[40.556839,96.9021],[40.555069,96.906273],[40.55328,96.909668],[40.540058,96.932861],[40.537289,96.936836],[40.536251,96.938164],[40.53344,96.941261],[40.530682,96.943817],[40.528179,96.94577],[40.5242,96.948303],[40.504028,96.959183],[40.497231,96.96241],[40.477169,96.971222],[40.476452,96.97155],[40.47179,96.973953],[40.467999,96.976357],[40.460899,96.981567],[40.451939,96.988083],[40.448231,96.990463],[40.44437,96.99221],[40.433559,96.996193],[40.428959,96.998672],[40.425781,97.000961],[40.424198,97.002312],[40.406921,97.019852],[40.404881,97.021606],[40.402088,97.023651],[40.40044,97.024658],[40.396702,97.026466],[40.391609,97.028053],[40.38802,97.028587],[40.381908,97.028717],[40.378609,97.02903],[40.375011,97.029701],[40.372089,97.03054],[40.359791,97.034866],[40.35503,97.03727],[40.35025,97.040588],[40.345829,97.044617],[40.341431,97.049957],[40.333191,97.061417],[40.330521,97.06485],[40.327141,97.068367],[40.323559,97.071114],[40.317268,97.075447],[40.31308,97.077667],[40.30891,97.079277],[40.305,97.080132],[40.30098,97.080467],[40.2971,97.080467],[40.293091,97.080917],[40.288311,97.082108],[40.26688,97.089203],[40.261761,97.091362],[40.257099,97.094933],[40.254799,97.097038],[40.237301,97.113998],[40.235271,97.116211],[40.232948,97.119034],[40.22443,97.130653],[40.220871,97.135269],[40.219921,97.136414],[40.217701,97.138802],[40.205471,97.150963],[40.202042,97.154533],[40.200539,97.156303],[40.198158,97.159508],[40.19643,97.162216],[40.194881,97.164932],[40.189041,97.176514],[40.188332,97.177803],[40.186069,97.181587],[40.185371,97.182716],[40.18232,97.18705],[40.175079,97.196701],[40.172459,97.200439],[40.17054,97.203568],[40.164322,97.214851],[40.157082,97.225838],[40.156799,97.226334],[40.155731,97.228149],[40.154251,97.23082],[40.154121,97.231056],[40.153229,97.232811],[40.151112,97.237022],[40.151009,97.237213],[40.150982,97.237267],[40.15041,97.238358],[40.148998,97.240868],[40.148609,97.241547],[40.146091,97.245667],[40.13966,97.255379],[40.138168,97.257477],[40.134159,97.262863],[40.132679,97.264732],[40.132481,97.264969],[40.131519,97.266159],[40.130619,97.26725],[40.125278,97.273499],[40.12468,97.274246],[40.124599,97.274353],[40.12376,97.275459],[40.123138,97.276314],[40.12138,97.278954],[40.11932,97.282463],[40.11787,97.285347],[40.11655,97.2883],[40.11364,97.29567],[40.112259,97.298973],[40.11026,97.303169],[40.108639,97.30616],[40.105339,97.311546],[40.103359,97.314743],[40.102581,97.315987],[40.0993,97.32074],[40.09594,97.324959],[40.0928,97.328407],[40.06662,97.353867],[40.065639,97.354958],[40.064789,97.355988],[40.063549,97.357536],[40.061871,97.359947],[40.06131,97.360832],[40.05941,97.364128],[40.058689,97.36557],[40.057331,97.368607],[40.05637,97.371147],[40.055241,97.374786],[40.05481,97.376282],[40.053959,97.380447],[40.05278,97.388863],[40.05191,97.393333],[40.050781,97.397476],[40.049431,97.401314],[40.047131,97.406311],[40.045422,97.409241],[40.042198,97.414253],[40.040081,97.417473],[40.037971,97.421021],[40.036121,97.424217],[40.034519,97.427292],[40.034119,97.428253],[40.03228,97.431709],[40.032021,97.43222],[40.029869,97.437187],[40.028511,97.441032],[40.025341,97.452019],[40.024109,97.455811],[40.023418,97.457764],[40.022968,97.458961],[40.02103,97.463692],[40.02071,97.464432],[40.013981,97.47892],[40.0061,97.496628],[40.00304,97.503929],[40.000721,97.509857],[39.995461,97.523727],[39.993599,97.52903],[39.990631,97.53772],[39.989929,97.539772],[39.98962,97.540733],[39.98864,97.543823],[39.988411,97.544548],[39.986259,97.552422],[39.98164,97.571747],[39.97945,97.579453],[39.979401,97.57962],[39.979351,97.579788],[39.979118,97.580513],[39.97887,97.581322],[39.976971,97.587341],[39.97562,97.59185],[39.974819,97.594749],[39.96983,97.615303],[39.96867,97.621437],[39.967949,97.626289],[39.96727,97.630531],[39.967091,97.631401],[39.96701,97.631737],[39.966751,97.63295],[39.966461,97.634132],[39.965889,97.6362],[39.964611,97.64003],[39.96413,97.641243],[39.96328,97.643227],[39.961391,97.647102],[39.95739,97.655563],[39.956459,97.657761],[39.952839,97.667587],[39.951511,97.671204],[39.950329,97.673973],[39.94931,97.676064],[39.948441,97.677696],[39.947762,97.678322],[39.947701,97.679047],[39.945889,97.682449],[39.945339,97.683403],[39.942699,97.687782],[39.940701,97.691788],[39.940109,97.693176],[39.93856,97.697433],[39.937222,97.702263],[39.93539,97.708588],[39.93507,97.709503],[39.933929,97.712547],[39.931839,97.717484],[39.92952,97.723167],[39.926521,97.73188],[39.922089,97.748093],[39.920631,97.752792],[39.920231,97.753883],[39.918991,97.757027],[39.916229,97.762711],[39.9146,97.765404],[39.905449,97.779282],[39.90078,97.786346],[39.90041,97.786903],[39.900028,97.787529],[39.899231,97.788834],[39.897919,97.791153],[39.897499,97.791946],[39.896629,97.793671],[39.896309,97.794373],[39.896091,97.794868],[39.894321,97.799217],[39.891281,97.808968],[39.889759,97.813011],[39.88876,97.81517],[39.886631,97.819153],[39.883789,97.823463],[39.883369,97.824059],[39.879879,97.829247],[39.87809,97.832474],[39.876228,97.836693],[39.875481,97.838623],[39.875309,97.839104],[39.874962,97.840103],[39.874771,97.840714],[39.874722,97.840858],[39.874321,97.842209],[39.87315,97.847214],[39.872742,97.849541],[39.872719,97.849663],[39.871429,97.857353],[39.870522,97.862541],[39.87038,97.863327],[39.869308,97.869034],[39.86927,97.869331],[39.868679,97.872292],[39.868259,97.874458],[39.868149,97.875038],[39.867668,97.877579],[39.867458,97.878647],[39.867161,97.880318],[39.86507,97.893143],[39.864841,97.894348],[39.86422,97.897163],[39.863911,97.898407],[39.863331,97.900642],[39.862461,97.903877],[39.861549,97.907227],[39.860451,97.910782],[39.859531,97.913383],[39.859241,97.914131],[39.85743,97.918419],[39.854691,97.92511],[39.85107,97.93644],[39.84874,97.942169],[39.842659,97.954224],[39.840599,97.958992],[39.839581,97.961853],[39.839069,97.963516],[39.838879,97.964233],[39.8386,97.965218],[39.838329,97.966293],[39.837719,97.969017],[39.83675,97.975533],[39.836411,97.980408],[39.835941,97.993233],[39.835751,97.995903],[39.835651,97.996964],[39.835098,98.001427],[39.83408,98.007278],[39.831661,98.019257],[39.830971,98.021942],[39.830681,98.022926],[39.830608,98.023193],[39.829281,98.027473],[39.827961,98.031921],[39.82518,98.042007],[39.825031,98.042557],[39.824108,98.045792],[39.823841,98.046638],[39.823441,98.047951],[39.82259,98.050499],[39.821659,98.053322],[39.821201,98.054817],[39.821121,98.055061],[39.8181,98.065804],[39.81255,98.082474],[39.808788,98.093147],[39.802261,98.115982],[39.801849,98.117073],[39.80143,98.118294],[39.800541,98.119141],[39.79985,98.119301],[39.799099,98.119057],[39.79842,98.118523],[39.796982,98.117729],[39.797039,98.118134],[39.79652,98.124336],[39.795589,98.126411],[39.795639,98.127251],[39.79586,98.127724],[39.796619,98.128571],[39.797409,98.129433],[39.798111,98.130386],[39.798328,98.130989],[39.798359,98.131729],[39.798031,98.133743],[39.79755,98.134857],[39.797009,98.135643],[39.796982,98.135674],[39.795631,98.137154],[39.793541,98.139603],[39.792252,98.141647],[39.791519,98.143112],[39.790741,98.145149],[39.79002,98.147614],[39.78804,98.154617],[39.780701,98.180634],[39.780441,98.182091],[39.780369,98.184196],[39.780418,98.184914],[39.78051,98.18557],[39.780621,98.186218],[39.780739,98.186783],[39.780972,98.187592],[39.781261,98.188377],[39.78223,98.190567],[39.783298,98.192757],[39.78352,98.193237],[39.784309,98.195053],[39.784859,98.196823],[39.785831,98.202904],[39.786282,98.204277],[39.78849,98.208946],[39.789669,98.211243],[39.790169,98.212196],[39.790649,98.213097],[39.795959,98.22258],[39.796169,98.223091],[39.79623,98.223351],[39.796291,98.223663],[39.79631,98.224037],[39.79631,98.224358],[39.796169,98.225693],[39.796021,98.227623],[39.795841,98.230141],[39.795841,98.23053],[39.79583,98.230713],[39.79578,98.231667],[39.795582,98.233299],[39.795071,98.242218],[39.794651,98.248848],[39.794151,98.250504],[39.79324,98.256889],[39.791481,98.268311],[39.788021,98.290779],[39.787079,98.297058],[39.786751,98.299362],[39.786461,98.301552],[39.786091,98.303917],[39.78603,98.304298],[39.785851,98.305321],[39.785561,98.306793],[39.785389,98.307648],[39.785061,98.309273],[39.784409,98.312523],[39.783039,98.321411],[39.782021,98.326538],[39.78178,98.327927],[39.78056,98.335876],[39.780079,98.339653],[39.779881,98.340431],[39.77956,98.34304],[39.77919,98.345444],[39.779011,98.347023],[39.778999,98.347427],[39.778149,98.352997],[39.777851,98.354439],[39.777699,98.356102],[39.776501,98.364517],[39.77597,98.367798],[39.77401,98.378723],[39.773579,98.380791],[39.770519,98.391006],[39.769279,98.395576],[39.76878,98.397713],[39.768452,98.39946],[39.767502,98.403862],[39.766529,98.408043],[39.765881,98.410362],[39.765621,98.41169],[39.76543,98.413017],[39.765171,98.415977],[39.76498,98.417648],[39.764271,98.422722],[39.764061,98.424698],[39.763851,98.427673],[39.763199,98.432503],[39.76268,98.440178],[39.76162,98.446182],[39.76141,98.447723],[39.761269,98.451622],[39.761139,98.452782],[39.760559,98.456367],[39.760319,98.458473],[39.76017,98.463516],[39.760139,98.469017],[39.759861,98.482643],[39.759819,98.487099],[39.759769,98.487679],[39.759571,98.488739],[39.7593,98.489487],[39.75909,98.489853],[39.75882,98.490143],[39.752739,98.493233],[39.752029,98.493523],[39.748878,98.495064],[39.738289,98.500366],[39.737671,98.500641],[39.736931,98.500282],[39.736752,98.500252],[39.73658,98.500671],[39.73679,98.50193],[39.736031,98.507088],[39.736031,98.507393],[39.735859,98.508347],[39.735641,98.50882],[39.7356,98.509163],[39.735699,98.509377],[39.735691,98.509933],[39.734879,98.515533],[39.734459,98.517387],[39.73423,98.518143],[39.73349,98.519363],[39.731339,98.522148],[39.7281,98.52726],[39.726971,98.529518],[39.72406,98.536087],[39.723068,98.540077],[39.71999,98.550377],[39.716782,98.56115],[39.71537,98.565041],[39.714031,98.566704],[39.713058,98.567459],[39.712219,98.569153],[39.71146,98.570107],[39.710419,98.571487],[39.70673,98.576279],[39.702721,98.58242],[39.69894,98.586761],[39.697819,98.588203],[39.684139,98.604286],[39.683121,98.605476],[39.68119,98.608124],[39.64846,98.658203],[39.644569,98.662773],[39.643269,98.664513],[39.643261,98.664833],[39.640518,98.667847],[39.607601,98.703133],[39.603149,98.708679],[39.601139,98.711227],[39.600971,98.711632],[39.59441,98.719849],[39.593201,98.721451],[39.59219,98.723343],[39.58913,98.733551],[39.587379,98.740196],[39.585281,98.747566],[39.586021,98.747627],[39.58485,98.749229],[39.582649,98.756844],[39.5784,98.772346],[39.576038,98.780312],[39.576111,98.780357],[39.574329,98.787033],[39.571388,98.82679],[39.571251,98.831139],[39.571301,98.872383],[39.571121,98.874039],[39.566021,98.892883],[39.565189,98.89576],[39.564991,98.895973],[39.562901,98.903687],[39.562199,98.905434],[39.561409,98.907211],[39.55806,98.91468],[39.55444,98.923119],[39.551739,98.928078],[39.550549,98.929718],[39.549809,98.930473],[39.543041,98.936996],[39.538151,98.939117],[39.5303,98.942497],[39.52425,98.944443],[39.522961,98.944969],[39.503269,98.959221],[39.49918,98.962677],[39.491112,98.96904],[39.488869,98.970703],[39.48769,98.971458],[39.474831,98.977982],[39.465591,98.982658],[39.464249,98.982803],[39.463219,98.98259],[39.44043,98.976547],[39.435268,98.975197],[39.430759,98.975433],[39.425461,98.975754],[39.419109,98.976158],[39.41626,98.976799],[39.41169,98.978249],[39.4104,98.978859],[39.409111,98.979713],[39.4021,98.985313],[39.380379,99.001549],[39.378712,99.00293],[39.372959,99.013206],[39.37006,99.019577],[39.368221,99.028664],[39.36755,99.030533],[39.365459,99.035042],[39.364899,99.036003],[39.363689,99.03862],[39.363079,99.040916],[39.363289,99.041077],[39.36293,99.042053],[39.363091,99.042236],[39.361801,99.045723],[39.359161,99.054321],[39.357269,99.060623],[39.356419,99.063431],[39.355801,99.069542],[39.35556,99.072449],[39.35223,99.082733],[39.35083,99.087013],[39.350349,99.089203],[39.349941,99.091743],[39.34956,99.092812],[39.348621,99.093613],[39.34539,99.09465],[39.344879,99.094971],[39.34433,99.095482],[39.343491,99.09729],[39.341419,99.103348],[39.341179,99.104057],[39.34127,99.104378],[39.340809,99.105591],[39.340618,99.106758],[39.34029,99.111366],[39.339458,99.122627],[39.339291,99.125473],[39.339031,99.125504],[39.339062,99.128487],[39.338871,99.13018],[39.33667,99.143822],[39.336281,99.145317],[39.32988,99.160294],[39.322922,99.176064],[39.321411,99.179459],[39.320782,99.180527],[39.318958,99.183006],[39.318039,99.184242],[39.317589,99.185204],[39.317451,99.185966],[39.317371,99.193848],[39.317188,99.195152],[39.31657,99.19735],[39.316299,99.198288],[39.315861,99.19986],[39.308239,99.227097],[39.296791,99.268066],[39.28944,99.29332],[39.28841,99.296143],[39.28421,99.303787],[39.280941,99.309776],[39.279888,99.311493],[39.275028,99.316841],[39.27433,99.318031],[39.272221,99.323334],[39.268768,99.333458],[39.26857,99.333878],[39.267639,99.335373],[39.26635,99.336998],[39.257931,99.347504],[39.257141,99.34848],[39.255829,99.350327],[39.254318,99.353149],[39.253361,99.35553],[39.23188,99.428017],[39.229439,99.436272],[39.22887,99.43763],[39.22739,99.439957],[39.227379,99.439842],[39.227371,99.440033],[39.224831,99.45179],[39.224781,99.453484],[39.22506,99.455002],[39.226871,99.460564],[39.2272,99.461502],[39.23122,99.469063],[39.232792,99.472069],[39.235748,99.478867],[39.235939,99.479828],[39.236271,99.48394],[39.236511,99.485748],[39.236938,99.48687],[39.237652,99.487846],[39.238331,99.488426],[39.238541,99.488548],[39.243401,99.489937],[39.24633,99.490753],[39.248489,99.491364],[39.249229,99.491653],[39.250969,99.492699],[39.25309,99.494164],[39.25983,99.497643],[39.261341,99.498772],[39.26313,99.498993],[39.263592,99.499229],[39.263969,99.499763],[39.264339,99.502136],[39.264141,99.505539],[39.26405,99.506943],[39.263851,99.509521],[39.263149,99.512421],[39.263081,99.513512],[39.26321,99.529457],[39.26326,99.543068],[39.265942,99.56086],[39.26627,99.562759],[39.266659,99.563828],[39.273312,99.579262],[39.276791,99.585587],[39.278049,99.588112],[39.27961,99.591179],[39.281841,99.596123],[39.28392,99.60022],[39.284031,99.600441],[39.284969,99.602753],[39.28653,99.607536],[39.292389,99.616859],[39.295189,99.621613],[39.296101,99.62326],[39.298328,99.627823],[39.3046,99.639008],[39.306141,99.642014],[39.30703,99.6437],[39.308552,99.646027],[39.309608,99.647614],[39.310169,99.648857],[39.311272,99.651543],[39.311722,99.653023],[39.314941,99.665878],[39.317089,99.671997],[39.325272,99.695152],[39.32645,99.698471],[39.329399,99.706573],[39.33012,99.709038],[39.330921,99.713821],[39.331009,99.715332],[39.330898,99.717041],[39.330791,99.718712],[39.330509,99.720238],[39.32444,99.733963],[39.321629,99.743492],[39.321362,99.745087],[39.32066,99.749489],[39.320358,99.750679],[39.319859,99.75238],[39.318211,99.756866],[39.315269,99.763817],[39.314651,99.765297],[39.3125,99.77124],[39.31179,99.773804],[39.307232,99.798157],[39.30724,99.798363],[39.30624,99.802261],[39.30579,99.803619],[39.304039,99.806503],[39.303089,99.808601],[39.301231,99.813339],[39.29937,99.818626],[39.29678,99.824249],[39.296059,99.825783],[39.293911,99.835258],[39.292961,99.837967],[39.29208,99.841263],[39.290489,99.84359],[39.289532,99.846039],[39.289379,99.847412],[39.289509,99.847923],[39.28949,99.851601],[39.289471,99.851898],[39.289619,99.854874],[39.289989,99.858093],[39.29121,99.868439],[39.29097,99.882759],[39.290371,99.885643],[39.289841,99.887009],[39.287552,99.891113],[39.286179,99.893799],[39.280209,99.907257],[39.279621,99.90831],[39.278042,99.910347],[39.275551,99.913368],[39.26358,99.931847],[39.247608,99.94902],[39.23772,99.959663],[39.233768,99.964027],[39.23381,99.964043],[39.232891,99.964813],[39.231831,99.965424],[39.229019,99.966759],[39.225101,99.967987],[39.223831,99.968613],[39.22287,99.969307],[39.221859,99.970322],[39.219028,99.973518],[39.217831,99.97477],[39.21484,99.977562],[39.21381,99.978691],[39.212311,99.981117],[39.211529,99.982117],[39.19817,99.993927],[39.19735,99.994827],[39.196949,99.995842],[39.196239,100.002251],[39.195889,100.00692],[39.19577,100.009262],[39.195641,100.010391],[39.19548,100.011673],[39.195061,100.01268],[39.193489,100.014412],[39.19268,100.015167],[39.192551,100.015137],[39.19252,100.01532],[39.19136,100.016487],[39.188541,100.019142],[39.18771,100.019958],[39.186081,100.02076],[39.182491,100.021347],[39.181751,100.021812],[39.181061,100.022751],[39.179779,100.025513],[39.17931,100.026199],[39.177872,100.028793],[39.177399,100.029953],[39.177029,100.031303],[39.176819,100.033096],[39.17691,100.037521],[39.176941,100.039017],[39.176842,100.043663],[39.175491,100.048759],[39.1749,100.050201],[39.174461,100.051987],[39.173759,100.055367],[39.172501,100.060173],[39.172588,100.060211],[39.172401,100.06073],[39.173038,100.069504],[39.17247,100.071899],[39.17226,100.073692],[39.17321,100.080002],[39.173149,100.081558],[39.173031,100.082077],[39.17268,100.083633],[39.172081,100.086273],[39.172218,100.086403],[39.171829,100.086838],[39.169621,100.091873],[39.1684,100.095497],[39.167149,100.098007],[39.16608,100.099167],[39.164761,100.100052],[39.16383,100.100693],[39.161388,100.10215],[39.16087,100.102692],[39.160172,100.103897],[39.157539,100.112488],[39.156929,100.113617],[39.156281,100.11451],[39.154079,100.11734],[39.153561,100.118408],[39.15316,100.119682],[39.15292,100.122673],[39.153061,100.123978],[39.154091,100.125526],[39.15649,100.128166],[39.157162,100.129143],[39.157452,100.130127],[39.156582,100.138634],[39.15657,100.138817],[39.156021,100.142693],[39.15493,100.14962],[39.15379,100.154404],[39.152962,100.157829],[39.151051,100.167427],[39.150871,100.167763],[39.147491,100.171143],[39.14727,100.171333],[39.14608,100.172897],[39.145721,100.173111],[39.143879,100.175812],[39.139511,100.181587],[39.138802,100.182419],[39.136372,100.184402],[39.135288,100.185448],[39.131851,100.192169],[39.131569,100.193153],[39.131149,100.197807],[39.130459,100.201263],[39.130039,100.202682],[39.127258,100.208557],[39.125149,100.213287],[39.121849,100.219254],[39.12056,100.221153],[39.117352,100.224907],[39.1129,100.232071],[39.112129,100.233353],[39.111488,100.234528],[39.110161,100.238693],[39.108261,100.24482],[39.106621,100.253532],[39.10601,100.255219],[39.099529,100.265472],[39.097809,100.267929],[39.09132,100.274979],[39.08886,100.278084],[39.08638,100.282143],[39.085449,100.283142],[39.083241,100.285378],[39.08152,100.287308],[39.079159,100.29039],[39.07848,100.290787],[39.077999,100.291763],[39.07642,100.293739],[39.074471,100.296593],[39.072319,100.299248],[39.07132,100.300247],[39.06966,100.301903],[39.057961,100.314529],[39.05022,100.322197],[39.04755,100.324883],[39.046558,100.325798],[39.043289,100.327919],[39.042301,100.328537],[39.041359,100.329247],[39.04044,100.330383],[39.03764,100.336403],[39.037201,100.337173],[39.031891,100.344978],[39.03001,100.347763],[39.01815,100.358269],[39.017208,100.359367],[39.014439,100.363419],[39.011909,100.366524],[39.011131,100.367569],[39.009892,100.370148],[39.009491,100.371307],[39.009411,100.37294],[39.009701,100.374458],[39.009899,100.376793],[39.009682,100.378067],[39.009171,100.379158],[39.00856,100.379959],[39.00684,100.381622],[39.006271,100.382782],[39.003311,100.390747],[39.000702,100.395638],[38.99966,100.398117],[38.99839,100.401466],[38.997978,100.402969],[38.997711,100.404762],[38.997398,100.406532],[38.996571,100.408501],[38.995571,100.410332],[38.995041,100.411652],[38.994362,100.414619],[38.994259,100.416],[38.994469,100.417084],[38.996239,100.421806],[38.996651,100.423264],[38.996609,100.428879],[38.996151,100.43045],[38.99585,100.430832],[38.991089,100.435509],[38.99017,100.435982],[38.989288,100.435959],[38.985409,100.434433],[38.980579,100.432991],[38.979401,100.433357],[38.97773,100.434357],[38.975861,100.437202],[38.974949,100.437912],[38.972141,100.438797],[38.960949,100.43602],[38.95298,100.433403],[38.95216,100.433128],[38.95126,100.432938],[38.95063,100.433144],[38.94836,100.434303],[38.942612,100.437157],[38.941761,100.437927],[38.938251,100.44165],[38.93692,100.443031],[38.9352,100.443413],[38.93541,100.444107],[38.935711,100.44725],[38.93644,100.452507],[38.93647,100.453751],[38.936588,100.45488],[38.936989,100.461548],[38.937401,100.465958],[38.937389,100.467453],[38.937469,100.468674],[38.937469,100.470398],[38.937439,100.472549],[38.937401,100.47464],[38.93734,100.477226],[38.937359,100.480133],[38.937489,100.482933],[38.937889,100.488083],[38.937908,100.488579],[38.93792,100.488907],[38.937729,100.488991],[38.934582,100.488632],[38.927471,100.487907],[38.92429,100.487694],[38.92131,100.487503],[38.918362,100.487297],[38.915371,100.487099],[38.911781,100.486893],[38.9081,100.486671],[38.906281,100.486549],[38.905769,100.486267],[38.905651,100.486282],[38.905361,100.486313],[38.905312,100.486366],[38.90453,100.487389],[38.903542,100.4888],[38.897739,100.496407],[38.894131,100.499657],[38.89225,100.500999],[38.888939,100.503441],[38.885078,100.50631],[38.878761,100.511673],[38.877159,100.51358],[38.87524,100.515968],[38.87027,100.52195],[38.860298,100.534897],[38.85957,100.537666],[38.85746,100.541687],[38.85574,100.54493],[38.854431,100.547401],[38.853851,100.548477],[38.853451,100.54921],[38.8521,100.551849],[38.851349,100.553253],[38.85001,100.555794],[38.84811,100.559349],[38.846142,100.563026],[38.84539,100.564133],[38.8442,100.565521],[38.839249,100.569122],[38.83136,100.571358],[38.83297,100.576851],[38.82534,100.582687],[38.81625,100.590927],[38.796181,100.60878],[38.763531,100.63195],[38.754429,100.637619],[38.725109,100.655472],[38.708359,100.664742],[38.70488,100.667488],[38.702068,100.670227],[38.688271,100.686203],[38.687061,100.687569],[38.676609,100.705421],[38.675941,100.706451],[38.66629,100.71315],[38.667099,100.716751],[38.6675,100.720528],[38.667759,100.723961],[38.672321,100.771339],[38.655701,100.774429],[38.61655,100.780777],[38.531059,100.795723],[38.483768,100.804131],[38.480141,100.805328],[38.47905,100.805946],[38.468189,100.812027],[38.46254,100.814774],[38.459721,100.815804],[38.448559,100.818031],[38.446949,100.818893],[38.445869,100.820427],[38.443581,100.8237],[38.441841,100.82576],[38.44009,100.82679],[38.43874,100.827637],[38.43565,100.829018],[38.416019,100.837936],[38.360451,100.86335],[38.358158,100.864899],[38.33218,100.886353],[38.31292,100.896477],[38.31076,100.897339],[38.305241,100.898201],[38.302811,100.898888],[38.277481,100.908836],[38.27182,100.911423],[38.267109,100.914162],[38.263329,100.916908],[38.240681,100.934937],[38.23893,100.935966],[38.230438,100.937851],[38.22525,100.938667],[38.22401,100.938904],[38.21764,100.940109],[38.215462,100.939423],[38.214828,100.939209],[38.21431,100.938957],[38.201801,100.93528],[38.20174,100.935257],[38.200401,100.934982],[38.194172,100.932129],[38.19355,100.932167],[38.191509,100.932266],[38.189819,100.932564],[38.188801,100.933067],[38.187191,100.933891],[38.183262,100.935593],[38.18232,100.93589],[38.18116,100.936142],[38.179989,100.936096],[38.178612,100.935837],[38.176151,100.935226],[38.17593,100.935158],[38.17543,100.935127],[38.17474,100.935226],[38.174381,100.935333],[38.173191,100.935997],[38.170811,100.938019],[38.169861,100.938141],[38.169529,100.938133],[38.16922,100.938057],[38.168282,100.936287],[38.166069,100.937134],[38.166561,100.93586],[38.16634,100.935364],[38.16626,100.934853],[38.165741,100.934723],[38.16497,100.93383],[38.162579,100.934982],[38.162231,100.93528],[38.161411,100.936569],[38.161209,100.936867],[38.16053,100.937439],[38.16029,100.937447],[38.15947,100.936722],[38.158779,100.936073],[38.15852,100.93576],[38.153389,100.931503],[38.152328,100.93026],[38.151409,100.928841],[38.1483,100.923149],[38.14677,100.922836],[38.14465,100.922813],[38.13913,100.922333],[38.138729,100.921997],[38.137669,100.920853],[38.13485,100.920441],[38.133919,100.920181],[38.133221,100.920242],[38.132881,100.920341],[38.126369,100.917053],[38.125771,100.917122],[38.12159,100.91671],[38.118771,100.917053],[38.11718,100.916672],[38.11676,100.91642],[38.11602,100.916412],[38.114201,100.916252],[38.113411,100.916367],[38.113071,100.916458],[38.113041,100.916473],[38.112598,100.916527],[38.112209,100.916611],[38.110981,100.917023],[38.11047,100.917229],[38.108398,100.917892],[38.105492,100.918831],[38.10294,100.919861],[38.101051,100.921097],[38.099892,100.921783],[38.09866,100.922501],[38.096241,100.920647],[38.095921,100.920799],[38.09502,100.921738],[38.09444,100.922363],[38.094238,100.922523],[38.092918,100.922768],[38.092659,100.922768],[38.091438,100.922371],[38.091202,100.92234],[38.09095,100.922371],[38.089951,100.92292],[38.089588,100.922997],[38.087589,100.922287],[38.086342,100.921783],[38.086128,100.921959],[38.085819,100.922127],[38.085381,100.922028],[38.08466,100.921509],[38.08456,100.921089],[38.084301,100.920227],[38.084221,100.920036],[38.08353,100.918831],[38.082909,100.91761],[38.08292,100.917099],[38.083038,100.916718],[38.083771,100.915039],[38.083309,100.911873],[38.0812,100.912231],[38.079781,100.910057],[38.077671,100.908447],[38.07642,100.907082],[38.075939,100.907028],[38.075169,100.906967],[38.073582,100.906807],[38.073139,100.906593],[38.072418,100.905533],[38.07119,100.903549],[38.070061,100.902039],[38.069592,100.901604],[38.069229,100.90123],[38.069118,100.901176],[38.068958,100.901093],[38.068691,100.900917],[38.066059,100.89875],[38.06493,100.896889],[38.064602,100.896294],[38.064362,100.895851],[38.064049,100.894623],[38.063911,100.894112],[38.06369,100.893761],[38.063389,100.893471],[38.061901,100.89257],[38.061508,100.892326],[38.061089,100.892036],[38.060539,100.891502],[38.06015,100.891083],[38.060131,100.89106],[38.05999,100.890923],[38.05806,100.889229],[38.057362,100.888283],[38.057281,100.888191],[38.056889,100.887894],[38.056358,100.887466],[38.055229,100.886688],[38.05442,100.886139],[38.053909,100.886078],[38.05283,100.886497],[38.050999,100.887207],[38.04887,100.887001],[38.047798,100.886871],[38.04686,100.887138],[38.04538,100.887756],[38.044159,100.888252],[38.042259,100.888908],[38.040859,100.889023],[38.039219,100.888992],[38.03812,100.889374],[38.035961,100.89048],[38.035191,100.891068],[38.033932,100.892174],[38.032829,100.893143],[38.0313,100.894478],[38.03019,100.89547],[38.029259,100.896149],[38.02895,100.896317],[38.028,100.8964],[38.02663,100.896248],[38.025509,100.896248],[38.024231,100.896317],[38.02322,100.896011],[38.021809,100.895432],[38.02076,100.89502],[38.01973,100.894882],[38.018162,100.894783],[38.016579,100.894653],[38.01572,100.894791],[38.014729,100.895241],[38.013451,100.895851],[38.01292,100.896111],[38.012611,100.896347],[38.0116,100.897499],[38.01049,100.898743],[38.009499,100.89991],[38.00872,100.901077],[38.007912,100.902313],[38.007401,100.903084],[38.006409,100.904556],[38.005939,100.90535],[38.00589,100.90554],[38.005859,100.906082],[38.006119,100.907249],[38.00631,100.907837],[38.006321,100.908043],[38.006199,100.908684],[38.005638,100.909477],[38.004921,100.909714],[38.004341,100.909889],[38.004211,100.909973],[38.00399,100.910172],[38.00354,100.910957],[38.00296,100.912216],[38.002159,100.913986],[38.001869,100.914558],[38.00148,100.915024],[38.000629,100.915543],[38.000141,100.916023],[38.000061,100.916191],[37.999931,100.916763],[37.99995,100.917664],[37.99976,100.918251],[37.999069,100.91922],[37.998081,100.920486],[37.994629,100.922951],[37.993259,100.923653],[37.992119,100.92395],[37.991749,100.924187],[37.991718,100.924271],[37.992081,100.924622],[37.992352,100.924583],[37.993462,100.924759],[37.994831,100.925262],[37.99577,100.925636],[37.995949,100.925858],[37.995369,100.926323],[37.994511,100.92617],[37.99313,100.926003],[37.991619,100.926338],[37.98933,100.927071],[37.988651,100.927277],[37.987629,100.927383],[37.986462,100.927254],[37.985901,100.927437],[37.985729,100.927917],[37.985729,100.928139],[37.985909,100.929626],[37.985851,100.929916],[37.98558,100.929962],[37.985111,100.929047],[37.98457,100.92804],[37.9841,100.927498],[37.983879,100.927353],[37.98291,100.927193],[37.981701,100.927467],[37.98,100.927994],[37.978321,100.928558],[37.976299,100.929497],[37.973499,100.930946],[37.97234,100.931587],[37.970921,100.932564],[37.969349,100.933693],[37.968651,100.934273],[37.96822,100.934914],[37.967701,100.935738],[37.966919,100.936974],[37.965889,100.938133],[37.96278,100.941231],[37.95332,100.950447],[37.95113,100.952316],[37.948059,100.954712],[37.946251,100.956261],[37.942341,100.960251],[37.940208,100.962517],[37.938641,100.964043],[37.925011,100.976463],[37.923859,100.977821],[37.912819,100.993507],[37.91153,100.995216],[37.906441,101.00177],[37.902988,101.006012],[37.897812,101.012581],[37.895741,101.015099],[37.894581,101.016342],[37.893471,101.017319],[37.886219,101.022598],[37.884129,101.0242],[37.882912,101.02549],[37.876579,101.034492],[37.87384,101.037201],[37.87289,101.038643],[37.871059,101.042099],[37.869381,101.045097],[37.865761,101.050629],[37.86404,101.053368],[37.861839,101.05851],[37.86116,101.060448],[37.860329,101.064133],[37.860329,101.065292],[37.8606,101.065331],[37.86047,101.066803],[37.86034,101.069008],[37.86026,101.069633],[37.860062,101.070129],[37.859489,101.070717],[37.85928,101.070801],[37.85873,101.070824],[37.85714,101.070374],[37.855881,101.070053],[37.855511,101.070183],[37.85537,101.070267],[37.854889,101.070847],[37.854771,101.07119],[37.854061,101.072327],[37.85331,101.073563],[37.85252,101.074989],[37.85228,101.075417],[37.85191,101.076263],[37.851521,101.077271],[37.850632,101.080223],[37.85051,101.080566],[37.8503,101.081352],[37.849998,101.082458],[37.84977,101.083717],[37.849621,101.084793],[37.849548,101.085373],[37.849491,101.085854],[37.849098,101.08725],[37.848598,101.088982],[37.847919,101.091454],[37.847698,101.093063],[37.84763,101.09433],[37.847599,101.094627],[37.84753,101.095673],[37.847462,101.096786],[37.847321,101.098503],[37.847118,101.099922],[37.846741,101.101959],[37.846489,101.103348],[37.846371,101.104027],[37.846199,101.104767],[37.8461,101.105431],[37.845741,101.10656],[37.84515,101.107933],[37.844719,101.109108],[37.84457,101.110367],[37.844479,101.112419],[37.844398,101.114662],[37.844311,101.115028],[37.84383,101.115433],[37.843449,101.115288],[37.842651,101.114532],[37.84185,101.11367],[37.840961,101.112709],[37.840488,101.112244],[37.840469,101.11219],[37.840439,101.112259],[37.840351,101.112129],[37.84013,101.111938],[37.839489,101.111588],[37.83905,101.111526],[37.83865,101.111588],[37.8381,101.111923],[37.8377,101.112373],[37.837238,101.113403],[37.8367,101.114769],[37.836479,101.115669],[37.8363,101.117081],[37.83577,101.12207],[37.835499,101.124001],[37.835121,101.125214],[37.834309,101.127197],[37.833679,101.129219],[37.833359,101.130989],[37.83305,101.133148],[37.83321,101.134811],[37.833881,101.137657],[37.834099,101.138351],[37.834702,101.13916],[37.83567,101.139702],[37.836121,101.139923],[37.836418,101.140373],[37.83614,101.140572],[37.835178,101.140648],[37.83382,101.140762],[37.832279,101.14077],[37.830601,101.140587],[37.82917,101.140778],[37.827431,101.140717],[37.825581,101.140388],[37.82452,101.1399],[37.823139,101.139297],[37.82214,101.139259],[37.821178,101.139618],[37.819019,101.140663],[37.817181,101.141411],[37.816669,101.141617],[37.815929,101.142174],[37.814751,101.143822],[37.813019,101.146439],[37.811901,101.148109],[37.811069,101.148567],[37.809551,101.148941],[37.807381,101.149544],[37.806061,101.150299],[37.804459,101.151299],[37.804119,101.151428],[37.80278,101.151962],[37.801182,101.152908],[37.798481,101.154587],[37.79567,101.156326],[37.795521,101.156441],[37.794899,101.157471],[37.793388,101.160606],[37.792149,101.163231],[37.791801,101.164368],[37.791191,101.167183],[37.790531,101.170303],[37.789902,101.173157],[37.789532,101.173958],[37.788589,101.17514],[37.787369,101.176498],[37.786541,101.177071],[37.785759,101.177933],[37.78442,101.179588],[37.783279,101.181313],[37.782421,101.183456],[37.7813,101.186394],[37.780449,101.188187],[37.779011,101.190361],[37.777809,101.191879],[37.77594,101.193947],[37.774529,101.194939],[37.772461,101.196312],[37.770329,101.197906],[37.7682,101.200546],[37.76577,101.203506],[37.76276,101.207207],[37.760689,101.210091],[37.75843,101.213463],[37.757191,101.215767],[37.755589,101.219109],[37.75441,101.222031],[37.753521,101.223457],[37.752949,101.224693],[37.752522,101.226517],[37.751942,101.228729],[37.751259,101.230072],[37.749901,101.232407],[37.749359,101.233803],[37.74844,101.236168],[37.7481,101.236839],[37.746868,101.238503],[37.745739,101.239891],[37.745441,101.240372],[37.74519,101.241577],[37.745049,101.24324],[37.744511,101.244423],[37.743649,101.246094],[37.742661,101.247627],[37.74091,101.249893],[37.739029,101.252281],[37.73679,101.255127],[37.734909,101.257561],[37.733028,101.260033],[37.732281,101.261452],[37.730949,101.264313],[37.730011,101.265556],[37.72863,101.266953],[37.727772,101.26783],[37.727531,101.268387],[37.727402,101.270111],[37.72736,101.27079],[37.727242,101.271141],[37.727051,101.271507],[37.726719,101.272079],[37.726391,101.272667],[37.725971,101.273331],[37.725208,101.274597],[37.724411,101.275932],[37.723999,101.277107],[37.723961,101.278053],[37.72422,101.279388],[37.724289,101.279747],[37.724159,101.28093],[37.723862,101.281448],[37.722301,101.283569],[37.721378,101.284973],[37.720901,101.286507],[37.72065,101.287338],[37.720161,101.288406],[37.719929,101.288811],[37.719589,101.289467],[37.719028,101.290482],[37.718262,101.291878],[37.71706,101.294037],[37.715969,101.296043],[37.714989,101.297813],[37.714699,101.298309],[37.71434,101.299026],[37.713829,101.300072],[37.713799,101.300117],[37.713242,101.300728],[37.712799,101.301132],[37.712601,101.301208],[37.712269,101.301277],[37.71159,101.301208],[37.71125,101.30101],[37.711079,101.300903],[37.71077,101.300743],[37.710209,101.300133],[37.709751,101.29969],[37.709309,101.299187],[37.708691,101.298683],[37.70834,101.298576],[37.707771,101.298767],[37.706871,101.299149],[37.706551,101.299294],[37.70607,101.299492],[37.705238,101.29985],[37.704762,101.300049],[37.704361,101.300217],[37.703651,101.300507],[37.70253,101.300987],[37.700699,101.30172],[37.698448,101.302338],[37.695919,101.302711],[37.69265,101.303146],[37.690048,101.303581],[37.68877,101.304001],[37.686951,101.304588],[37.686069,101.304909],[37.6847,101.305496],[37.68343,101.306107],[37.680759,101.307327],[37.67836,101.308121],[37.67527,101.309196],[37.672642,101.31041],[37.669472,101.311913],[37.668152,101.312767],[37.666481,101.313927],[37.665161,101.314903],[37.664322,101.315666],[37.662891,101.317139],[37.66127,101.318573],[37.660339,101.319321],[37.659191,101.320152],[37.65731,101.321297],[37.655869,101.322144],[37.654308,101.323029],[37.652191,101.324303],[37.648499,101.326591],[37.645439,101.328568],[37.64394,101.329826],[37.643021,101.330872],[37.64254,101.331497],[37.641319,101.333237],[37.639839,101.335373],[37.638199,101.337723],[37.636379,101.340317],[37.634541,101.342957],[37.632141,101.34639],[37.629341,101.350357],[37.627628,101.352814],[37.626659,101.354301],[37.62627,101.355598],[37.625721,101.357979],[37.625141,101.359108],[37.62434,101.360046],[37.62286,101.361603],[37.621571,101.363548],[37.62019,101.365372],[37.619209,101.366013],[37.617599,101.366814],[37.616562,101.367691],[37.61496,101.369507],[37.613701,101.370613],[37.610222,101.373337],[37.607319,101.375664],[37.60474,101.37793],[37.602089,101.380333],[37.598621,101.383461],[37.594391,101.387299],[37.591091,101.390297],[37.58691,101.394119],[37.583401,101.397293],[37.580681,101.399773],[37.580269,101.400131],[37.579899,101.400482],[37.579269,101.401047],[37.5783,101.401932],[37.57708,101.403053],[37.575291,101.404663],[37.57296,101.406754],[37.57003,101.409286],[37.566971,101.411903],[37.56599,101.412727],[37.56562,101.413033],[37.564522,101.413963],[37.563381,101.414726],[37.561989,101.415352],[37.56007,101.416077],[37.557541,101.417061],[37.554241,101.418373],[37.551399,101.419312],[37.547798,101.420357],[37.545071,101.421227],[37.542511,101.42215],[37.540421,101.422928],[37.53783,101.423813],[37.53566,101.424393],[37.534081,101.424332],[37.531898,101.42424],[37.529049,101.424202],[37.525181,101.424263],[37.52179,101.424278],[37.519741,101.424316],[37.516869,101.424393],[37.512939,101.424461],[37.508251,101.424538],[37.503899,101.424629],[37.500198,101.424683],[37.49575,101.424767],[37.492561,101.424797],[37.489559,101.424988],[37.487999,101.425407],[37.48576,101.425972],[37.482288,101.426201],[37.479931,101.426361],[37.4776,101.426498],[37.475159,101.426643],[37.473331,101.426697],[37.471889,101.426514],[37.47049,101.426529],[37.467419,101.426758],[37.46513,101.426933],[37.464211,101.42672],[37.464119,101.426697],[37.463982,101.426659],[37.463848,101.426582],[37.463139,101.426132],[37.46244,101.425659],[37.461079,101.424744],[37.459431,101.423668],[37.457729,101.422523],[37.45628,101.421501],[37.455479,101.420937],[37.45435,101.419746],[37.452621,101.417473],[37.451469,101.415993],[37.44981,101.413803],[37.44854,101.412338],[37.44804,101.412064],[37.44775,101.411888],[37.445492,101.411247],[37.443668,101.410637],[37.441891,101.40976],[37.44035,101.409012],[37.440208,101.408943],[37.43853,101.40863],[37.436539,101.408112],[37.434071,101.406921],[37.433498,101.406593],[37.432201,101.406242],[37.431061,101.406303],[37.42942,101.406502],[37.427738,101.406723],[37.425339,101.407478],[37.422489,101.408386],[37.420898,101.408218],[37.419739,101.407829],[37.417549,101.40773],[37.416061,101.407822],[37.414471,101.408257],[37.412609,101.408791],[37.411018,101.409241],[37.409962,101.409531],[37.40871,101.409767],[37.4076,101.409538],[37.406799,101.409302],[37.40564,101.409393],[37.404781,101.409843],[37.403141,101.410782],[37.401932,101.411163],[37.39996,101.411751],[37.398479,101.412033],[37.397221,101.412209],[37.396179,101.412369],[37.394939,101.412666],[37.394131,101.413139],[37.39407,101.413162],[37.393711,101.413223],[37.393089,101.412956],[37.391979,101.412209],[37.390869,101.411697],[37.389389,101.411148],[37.38903,101.410583],[37.38913,101.40995],[37.389179,101.409843],[37.389591,101.409142],[37.38966,101.408524],[37.389408,101.408096],[37.38839,101.406822],[37.387348,101.405571],[37.387112,101.405411],[37.386189,101.405357],[37.38554,101.40522],[37.384762,101.404449],[37.38401,101.403732],[37.38353,101.403618],[37.3825,101.403793],[37.38203,101.403572],[37.381908,101.40332],[37.38184,101.40303],[37.38163,101.401863],[37.381161,101.400917],[37.38028,101.399353],[37.379539,101.398064],[37.37907,101.397758],[37.378651,101.397919],[37.378529,101.398209],[37.378262,101.399963],[37.378239,101.400597],[37.378601,101.401222],[37.37904,101.401627],[37.37915,101.401901],[37.379169,101.402367],[37.37854,101.403183],[37.378342,101.40345],[37.378269,101.404053],[37.378471,101.404953],[37.378979,101.406151],[37.37957,101.407173],[37.379631,101.407341],[37.37973,101.407913],[37.379639,101.409309],[37.379372,101.409698],[37.378639,101.41011],[37.378429,101.410233],[37.378311,101.410339],[37.377861,101.411201],[37.377651,101.411713],[37.377571,101.411819],[37.376991,101.412308],[37.376259,101.412827],[37.374969,101.413727],[37.374741,101.413841],[37.373779,101.413933],[37.37265,101.414131],[37.372059,101.41494],[37.371849,101.415283],[37.37146,101.415459],[37.371319,101.415199],[37.37151,101.41481],[37.37159,101.414726],[37.37183,101.41449],[37.372509,101.413429],[37.373138,101.413017],[37.37431,101.412582],[37.37439,101.412537],[37.37524,101.411491],[37.376221,101.41021],[37.376579,101.409309],[37.37677,101.408707],[37.376801,101.407959],[37.376671,101.407494],[37.376549,101.407181],[37.375622,101.406151],[37.37534,101.405891],[37.374939,101.405739],[37.37405,101.405937],[37.372532,101.406487],[37.37244,101.406502],[37.371429,101.406052],[37.370049,101.405357],[37.369881,101.40464],[37.36993,101.404381],[37.370461,101.402924],[37.370449,101.402229],[37.370121,101.401772],[37.369801,101.401688],[37.368721,101.401741],[37.36731,101.401833],[37.36607,101.402046],[37.36491,101.402313],[37.363361,101.402893],[37.362251,101.403313],[37.36216,101.403671],[37.362228,101.403793],[37.362572,101.403816],[37.362751,101.403793],[37.36301,101.403664],[37.364571,101.40313],[37.364681,101.403091],[37.36499,101.403091],[37.365139,101.40345],[37.36483,101.403687],[37.364071,101.403687],[37.36314,101.404083],[37.362671,101.404282],[37.361889,101.404373],[37.361141,101.404373],[37.361,101.404381],[37.360821,101.404442],[37.360691,101.404716],[37.36097,101.405006],[37.362041,101.40477],[37.362999,101.404846],[37.363091,101.404861],[37.364029,101.404579],[37.364319,101.404488],[37.364849,101.404587],[37.36517,101.404739],[37.365719,101.40477],[37.366051,101.404442],[37.366531,101.404007],[37.366619,101.404022],[37.36742,101.404083],[37.367668,101.404312],[37.36755,101.404663],[37.36747,101.404694],[37.36647,101.404694],[37.366249,101.404793],[37.365921,101.405167],[37.365761,101.405357],[37.36499,101.405739],[37.363918,101.405998],[37.362591,101.406319],[37.36179,101.406464],[37.361012,101.406601],[37.360149,101.406754],[37.35891,101.406799],[37.358398,101.406807],[37.357201,101.407204],[37.356079,101.407928],[37.356022,101.407967],[37.35553,101.408157],[37.354881,101.407799],[37.353771,101.406982],[37.35355,101.40683],[37.337841,101.397949],[37.335972,101.398239],[37.33374,101.398643],[37.333111,101.398743],[37.33165,101.399529],[37.3283,101.401382],[37.327991,101.401611],[37.327702,101.402107],[37.327591,101.40287],[37.327621,101.403572],[37.32711,101.4048],[37.325871,101.406174],[37.32552,101.40638],[37.325272,101.406433],[37.324612,101.406219],[37.323872,101.405457],[37.32349,101.405167],[37.32299,101.405228],[37.321861,101.406189],[37.32111,101.407578],[37.32032,101.409317],[37.320179,101.40947],[37.319901,101.409416],[37.319881,101.408897],[37.319931,101.408813],[37.320728,101.407356],[37.321331,101.406303],[37.322369,101.404823],[37.322861,101.404213],[37.323071,101.403961],[37.323219,101.403831],[37.32349,101.40377],[37.324001,101.403893],[37.324501,101.403793],[37.3246,101.403587],[37.324551,101.402191],[37.324982,101.401337],[37.326141,101.400253],[37.326759,101.399658],[37.326931,101.399437],[37.326889,101.399101],[37.326778,101.398987],[37.326469,101.399132],[37.325409,101.400177],[37.32468,101.400787],[37.32391,101.401749],[37.323589,101.402153],[37.322632,101.40284],[37.32106,101.404533],[37.32021,101.405121],[37.31958,101.40609],[37.3195,101.406197],[37.31847,101.407379],[37.316929,101.409149],[37.31678,101.409607],[37.317039,101.412064],[37.317181,101.412399],[37.31757,101.412689],[37.318748,101.412956],[37.31889,101.412971],[37.319851,101.412727],[37.32058,101.412491],[37.32103,101.412643],[37.322189,101.413002],[37.32336,101.413361],[37.324661,101.413834],[37.324821,101.413918],[37.325069,101.414093],[37.325199,101.414383],[37.325119,101.414848],[37.324951,101.415009],[37.322498,101.415657],[37.322071,101.415771],[37.320229,101.415787],[37.31879,101.416527],[37.31702,101.417488],[37.314079,101.41925],[37.312801,101.420464],[37.31229,101.420959],[37.311039,101.421883],[37.308819,101.423248],[37.308151,101.423737],[37.307831,101.424103],[37.30756,101.424423],[37.307129,101.424561],[37.3064,101.424431],[37.306149,101.424408],[37.305901,101.424454],[37.305309,101.424759],[37.304619,101.42485],[37.303761,101.424797],[37.303371,101.424927],[37.302719,101.425468],[37.302361,101.425636],[37.302189,101.425346],[37.30238,101.425018],[37.303379,101.424522],[37.304871,101.424004],[37.306099,101.422768],[37.307281,101.422249],[37.307781,101.422028],[37.307709,101.421837],[37.306499,101.422058],[37.305401,101.42244],[37.30378,101.423218],[37.30299,101.423508],[37.30265,101.423378],[37.301788,101.422119],[37.299229,101.4188],[37.29887,101.418297],[37.297771,101.417084],[37.296501,101.415581],[37.295761,101.414757],[37.294979,101.414841],[37.29454,101.41497],[37.293732,101.414757],[37.292919,101.414383],[37.292629,101.414322],[37.290932,101.414398],[37.288929,101.414543],[37.287491,101.414978],[37.286819,101.415253],[37.285591,101.415314],[37.285339,101.415314],[37.284981,101.415489],[37.28487,101.416031],[37.284981,101.4161],[37.286949,101.415756],[37.287498,101.415688],[37.28775,101.415672],[37.28846,101.415657],[37.288528,101.415657],[37.288681,101.415703],[37.288731,101.415993],[37.288582,101.416199],[37.28772,101.416443],[37.28672,101.41655],[37.28492,101.416656],[37.282841,101.416847],[37.280769,101.416542],[37.277889,101.416054],[37.275749,101.415771],[37.273762,101.416153],[37.272942,101.416183],[37.272301,101.415916],[37.271969,101.415771],[37.270729,101.415771],[37.2687,101.416069],[37.26685,101.416168],[37.263821,101.41597],[37.2612,101.415314],[37.25959,101.41494],[37.25724,101.414398],[37.25568,101.41433],[37.253761,101.414413],[37.253609,101.414429],[37.251259,101.414558],[37.250561,101.415009],[37.24929,101.416481],[37.248531,101.417526],[37.244671,101.429771],[37.243301,101.435257],[37.242859,101.437271],[37.242939,101.438911],[37.24342,101.442207],[37.2449,101.44738],[37.245338,101.450417],[37.245529,101.452568],[37.245449,101.454262],[37.24464,101.464493],[37.24445,101.466148],[37.24437,101.466454],[37.244041,101.466988],[37.243401,101.467506],[37.243069,101.467857],[37.242939,101.468613],[37.243969,101.471687],[37.244919,101.472878],[37.245079,101.473251],[37.24514,101.475067],[37.243679,101.483513],[37.243172,101.48555],[37.242458,101.486748],[37.241989,101.487427],[37.24176,101.488922],[37.241661,101.490196],[37.24086,101.491463],[37.238831,101.495354],[37.238529,101.500031],[37.237782,101.50103],[37.236099,101.501312],[37.2356,101.501694],[37.2346,101.503036],[37.23447,101.503258],[37.234409,101.503517],[37.234539,101.504219],[37.235321,101.506203],[37.235191,101.507553],[37.235222,101.507881],[37.236031,101.509827],[37.235661,101.512444],[37.235168,101.516289],[37.23476,101.517311],[37.233669,101.518204],[37.233139,101.520264],[37.2327,101.520737],[37.23246,101.520737],[37.230881,101.520073],[37.230061,101.520126],[37.22958,101.520447],[37.229382,101.520668],[37.22855,101.521217],[37.228031,101.521927],[37.227242,101.522346],[37.226849,101.522469],[37.225948,101.523193],[37.224831,101.524261],[37.223831,101.526154],[37.222679,101.528816],[37.222561,101.528976],[37.22216,101.529846],[37.221958,101.530083],[37.221588,101.530113],[37.221241,101.529846],[37.22076,101.529358],[37.220341,101.529297],[37.219872,101.5298],[37.21909,101.531013],[37.218342,101.531342],[37.218159,101.531631],[37.218189,101.532112],[37.218819,101.534027],[37.219021,101.535423],[37.219009,101.535713],[37.21862,101.536133],[37.218182,101.53595],[37.216209,101.532883],[37.215919,101.532661],[37.215542,101.53273],[37.212608,101.537086],[37.21244,101.53727],[37.20805,101.53756],[37.207062,101.537064],[37.206692,101.537086],[37.206261,101.537643],[37.206009,101.537888],[37.20583,101.537933],[37.205631,101.537872],[37.20414,101.536377],[37.20364,101.536217],[37.203091,101.537331],[37.202221,101.538544],[37.20163,101.539177],[37.199741,101.539398],[37.199051,101.539177],[37.199131,101.539062],[37.200741,101.539124],[37.201439,101.538971],[37.20163,101.538849],[37.201561,101.538239],[37.200771,101.538116],[37.19978,101.538231],[37.19849,101.538254],[37.197311,101.538109],[37.19585,101.537376],[37.19503,101.537163],[37.19453,101.537262],[37.192909,101.538673],[37.18969,101.541893],[37.1894,101.542267],[37.18771,101.543747],[37.187351,101.544594],[37.18652,101.54702],[37.185921,101.547348],[37.18494,101.54747],[37.184078,101.547211],[37.182579,101.546593],[37.179371,101.547737],[37.177158,101.54882],[37.175419,101.549004],[37.174992,101.54911],[37.173851,101.550056],[37.171951,101.551811],[37.16856,101.555199],[37.16573,101.557533],[37.165051,101.558037],[37.1646,101.558212],[37.16185,101.558594],[37.150612,101.56044],[37.149799,101.560539],[37.148972,101.561523],[37.14526,101.565498],[37.145012,101.565239],[37.144112,101.564613],[37.142639,101.563789],[37.141941,101.563713],[37.141781,101.563766],[37.141171,101.564651],[37.140381,101.568283],[37.140129,101.569633],[37.139511,101.570518],[37.139111,101.570717],[37.13829,101.570168],[37.136162,101.569733],[37.127941,101.568977],[37.120708,101.566162],[37.115791,101.566833],[37.11084,101.566566],[37.11071,101.566589],[37.110439,101.566727],[37.110569,101.566597],[37.110451,101.56649],[37.10928,101.566307],[37.106831,101.565643],[37.10585,101.565697],[37.102749,101.566742],[37.100529,101.56694],[37.10001,101.56694],[37.09763,101.566391],[37.08778,101.565727],[37.084541,101.565201],[37.081539,101.566353],[37.078499,101.568489],[37.076111,101.570312],[37.07375,101.571854],[37.068119,101.575279],[37.06662,101.573463],[37.057621,101.568863],[37.054428,101.567383],[37.04855,101.566383],[37.045929,101.566063],[37.039959,101.569397],[37.038471,101.569267],[37.036831,101.568779],[37.031479,101.56675],[37.030899,101.566673],[37.0303,101.566719],[37.025002,101.56855],[37.023991,101.569206],[37.023399,101.569893],[37.021519,101.573753],[37.020229,101.57666],[37.01791,101.581337],[37.009121,101.59391],[37.005348,101.598343],[37.004761,101.600288],[37.00333,101.606148],[37.001411,101.615402],[37.001499,101.617416],[37.001041,101.619637],[36.99847,101.625504],[36.998131,101.625938],[36.996529,101.62748],[36.988991,101.633797],[36.98806,101.634453],[36.974491,101.64325],[36.96608,101.653717],[36.96159,101.659042],[36.96096,101.659973],[36.950859,101.667549],[36.948372,101.669502],[36.946701,101.670937],[36.943699,101.673103],[36.940811,101.675346],[36.938049,101.677582],[36.934719,101.680923],[36.927681,101.686798],[36.92522,101.689323],[36.92408,101.691132],[36.922691,101.694366],[36.921761,101.6968],[36.919979,101.702789],[36.919071,101.704964],[36.918449,101.706131],[36.916691,101.708611],[36.916679,101.708733],[36.91671,101.708809],[36.916759,101.70887],[36.917049,101.709122],[36.917431,101.709488],[36.91782,101.71003],[36.918171,101.710632],[36.918308,101.711243],[36.918079,101.711983],[36.91766,101.712891],[36.917179,101.713943],[36.916649,101.714989],[36.91605,101.716057],[36.915352,101.717194],[36.914558,101.718353],[36.9137,101.719528],[36.912769,101.720703],[36.911789,101.72187],[36.910728,101.723038],[36.909641,101.724213],[36.908501,101.725403],[36.907349,101.726593],[36.9062,101.727783],[36.905048,101.728996],[36.903889,101.730202],[36.902481,101.731659],[36.901321,101.732872],[36.900169,101.734077],[36.89901,101.735283],[36.89492,101.739517],[36.893959,101.740387],[36.892769,101.741287],[36.89156,101.742027],[36.89032,101.74263],[36.889,101.743149],[36.88768,101.743683],[36.886391,101.744308],[36.885139,101.745033],[36.88385,101.745789],[36.88253,101.746559],[36.88118,101.74736],[36.879841,101.748154],[36.87849,101.748947],[36.87714,101.749786],[36.87339,101.75248],[36.868092,101.756477],[36.866772,101.757263],[36.86541,101.758003],[36.864021,101.758713],[36.85524,101.761681],[36.85376,101.762123],[36.85231,101.762558],[36.850849,101.762993],[36.849369,101.763443],[36.832531,101.766273],[36.821499,101.769531],[36.812901,101.772072],[36.81139,101.772331],[36.758228,101.771317],[36.756771,101.770851],[36.755322,101.770401],[36.753849,101.769951],[36.75116,101.769203],[36.74971,101.768867],[36.748341,101.7686],[36.746971,101.768387],[36.745579,101.768204],[36.744171,101.768021],[36.742722,101.767822],[36.684299,101.766548],[36.68285,101.766586],[36.6814,101.766693],[36.67997,101.7668],[36.6786,101.76696],[36.67728,101.767159],[36.676041,101.767357],[36.6749,101.767563],[36.67384,101.767769],[36.672791,101.767982],[36.671791,101.768181],[36.670921,101.768356],[36.670441,101.768448],[36.670219,101.768509],[36.669899,101.76857],[36.66946,101.768646],[36.6689,101.768784],[36.668201,101.768944],[36.667488,101.769127],[36.66687,101.769287],[36.66642,101.769417],[36.666119,101.769524],[36.665741,101.769691],[36.66518,101.769867],[36.66449,101.770111],[36.663719,101.770401],[36.662949,101.770714],[36.662121,101.771027],[36.661228,101.771378],[36.66024,101.771767],[36.659199,101.772171],[36.658131,101.772583],[36.657089,101.772987],[36.656109,101.773369],[36.655209,101.773781],[36.654449,101.774147],[36.653919,101.774353],[36.653351,101.774567],[36.653011,101.774696],[36.652409,101.774918],[36.651878,101.775124],[36.65136,101.775291],[36.65062,101.775543],[36.6497,101.775574],[36.648708,101.775352],[36.648239,101.774963],[36.648102,101.774643],[36.647961,101.774147],[36.647781,101.773842],[36.647572,101.773697],[36.647209,101.773727],[36.646111,101.774017],[36.644958,101.774422],[36.64172,101.776169],[36.64053,101.776848],[36.640259,101.777359],[36.64035,101.777939],[36.640629,101.778648],[36.640591,101.779846],[36.640331,101.78064],[36.63974,101.782043],[36.639099,101.783524],[36.63863,101.784576],[36.638149,101.785751],[36.637661,101.787308],[36.636921,101.790131],[36.636768,101.790733],[36.636501,101.791649],[36.63623,101.792412],[36.63588,101.793198],[36.635471,101.793922],[36.634838,101.794792],[36.634369,101.795288],[36.63266,101.796669],[36.631969,101.797287],[36.63147,101.797859],[36.630901,101.798683],[36.630348,101.799767],[36.63007,101.800583],[36.629768,101.801903],[36.629539,101.80378],[36.62936,101.804733],[36.629009,101.805862],[36.628529,101.806923],[36.62804,101.807693],[36.627628,101.808243],[36.623409,101.813072],[36.622681,101.814003],[36.622162,101.814781],[36.621712,101.815613],[36.62014,101.818932],[36.619671,101.819687],[36.61898,101.820557],[36.618038,101.82151],[36.616959,101.822289],[36.612671,101.824448],[36.611801,101.824959],[36.610989,101.825569],[36.61042,101.826103],[36.609501,101.82708],[36.605671,101.831581],[36.60498,101.832253],[36.604431,101.832687],[36.603031,101.833603],[36.596249,101.837624],[36.595249,101.838371],[36.594379,101.839287],[36.5938,101.840103],[36.59309,101.841537],[36.592079,101.844223],[36.591572,101.845154],[36.590981,101.845978],[36.58989,101.846977],[36.588341,101.847977],[36.58757,101.848618],[36.58704,101.849213],[36.586411,101.850014],[36.58567,101.851311],[36.583961,101.855827],[36.58371,101.856491],[36.583389,101.857323],[36.582649,101.85907],[36.582081,101.860291],[36.581921,101.860588],[36.581089,101.862213],[36.580181,101.863838],[36.57859,101.866623],[36.578281,101.867188],[36.576771,101.869682],[36.575649,101.871872],[36.57513,101.873138],[36.57481,101.874153],[36.573139,101.879433],[36.572811,101.880302],[36.572319,101.881653],[36.572071,101.882149],[36.571621,101.882858],[36.571098,101.883499],[36.569538,101.885063],[36.568748,101.886147],[36.56823,101.887062],[36.568001,101.887573],[36.56741,101.889587],[36.567242,101.893753],[36.56715,101.89492],[36.566921,101.896339],[36.56657,101.897942],[36.565361,101.90155],[36.565159,101.90213],[36.56501,101.902573],[36.5648,101.903381],[36.564171,101.906937],[36.563869,101.909027],[36.563831,101.90934],[36.563728,101.910263],[36.563499,101.91169],[36.562759,101.915443],[36.562241,101.917618],[36.56118,101.921127],[36.560188,101.923721],[36.559429,101.925407],[36.55801,101.928009],[36.55735,101.929329],[36.556789,101.930763],[36.556438,101.932068],[36.55624,101.933167],[36.556141,101.934288],[36.55595,101.940407],[36.555901,101.941208],[36.555679,101.942772],[36.555401,101.944077],[36.5532,101.952919],[36.552898,101.954018],[36.552471,101.955353],[36.552071,101.956352],[36.551609,101.957291],[36.550812,101.958611],[36.548988,101.960968],[36.5485,101.961594],[36.54364,101.967583],[36.542759,101.968826],[36.54158,101.970863],[36.540878,101.972298],[36.539371,101.975861],[36.538769,101.977127],[36.53796,101.9786],[36.536041,101.981743],[36.535351,101.982986],[36.53484,101.984047],[36.533951,101.986221],[36.532661,101.989998],[36.531658,101.992554],[36.529919,101.9963],[36.527691,102.000778],[36.525009,102.006371],[36.524189,102.008232],[36.52359,102.009804],[36.523079,102.011726],[36.522671,102.013718],[36.522041,102.01722],[36.521339,102.021637],[36.520679,102.025291],[36.520351,102.026657],[36.520031,102.027733],[36.5186,102.031937],[36.51833,102.033043],[36.518169,102.033867],[36.518051,102.034721],[36.517971,102.035873],[36.517879,102.039383],[36.51767,102.041382],[36.51725,102.04335],[36.51638,102.04631],[36.5159,102.048157],[36.515629,102.049507],[36.51543,102.050903],[36.515289,102.052628],[36.51524,102.054077],[36.5154,102.058456],[36.51535,102.060219],[36.515121,102.062248],[36.5144,102.066704],[36.51424,102.067497],[36.514011,102.068283],[36.51366,102.069122],[36.51329,102.069763],[36.512821,102.070381],[36.51405,102.069],[36.514992,102.067719],[36.51535,102.066994],[36.515541,102.066483],[36.515732,102.065666],[36.51582,102.064537],[36.515701,102.062073],[36.51564,102.061752],[36.515499,102.059753],[36.515388,102.061218],[36.515121,102.062866],[36.514889,102.064522],[36.51487,102.066162],[36.515049,102.06778],[36.515442,102.06929],[36.51601,102.070717],[36.51664,102.072037],[36.5172,102.073357],[36.517639,102.074722],[36.517929,102.076103],[36.518059,102.07756],[36.518009,102.079102],[36.517689,102.080673],[36.517288,102.082336],[36.517052,102.084053],[36.51693,102.085716],[36.516819,102.087341],[36.516708,102.088913],[36.516579,102.090446],[36.51646,102.091858],[36.51635,102.093132],[36.516201,102.094276],[36.515961,102.095322],[36.515678,102.096283],[36.515369,102.097137],[36.515072,102.097809],[36.514832,102.098297],[36.514339,102.099182],[36.513672,102.100212],[36.51292,102.10144],[36.5121,102.102783],[36.51125,102.104141],[36.51041,102.105492],[36.50956,102.106888],[36.508709,102.108208],[36.50795,102.109558],[36.507332,102.110977],[36.506771,102.112473],[36.506302,102.113983],[36.505932,102.115494],[36.50565,102.116966],[36.505459,102.118408],[36.505341,102.119873],[36.505291,102.121384],[36.505291,102.122963],[36.505291,102.124634],[36.505291,102.12635],[36.50528,102.128067],[36.505291,102.129753],[36.505291,102.131401],[36.50531,102.133011],[36.505291,102.134583],[36.505219,102.136162],[36.5051,102.137733],[36.504951,102.139252],[36.504768,102.140717],[36.504539,102.142174],[36.504269,102.143677],[36.503948,102.145271],[36.503571,102.146896],[36.503159,102.148529],[36.502682,102.150146],[36.502178,102.151779],[36.50169,102.153442],[36.50119,102.155128],[36.500721,102.156883],[36.50029,102.158699],[36.499939,102.160583],[36.499569,102.162857],[36.499088,102.165863],[36.49881,102.167648],[36.498482,102.16935],[36.498081,102.171013],[36.497581,102.172569],[36.49699,102.174057],[36.4963,102.175423],[36.495522,102.17672],[36.494671,102.178017],[36.493801,102.179337],[36.492939,102.180656],[36.492069,102.181938],[36.491199,102.183212],[36.490349,102.184479],[36.48954,102.185707],[36.488831,102.186958],[36.48822,102.188217],[36.48764,102.189484],[36.487148,102.190773],[36.486759,102.192101],[36.48645,102.193459],[36.486191,102.194839],[36.486019,102.196243],[36.485859,102.197617],[36.485649,102.199074],[36.485439,102.200699],[36.48521,102.202408],[36.485001,102.204178],[36.484791,102.20594],[36.484558,102.207703],[36.484329,102.209351],[36.48407,102.210953],[36.483749,102.212486],[36.483391,102.214043],[36.483021,102.215584],[36.482571,102.21711],[36.482151,102.21859],[36.481731,102.220016],[36.481258,102.221397],[36.480751,102.222717],[36.48024,102.224037],[36.47971,102.225327],[36.47921,102.226562],[36.47876,102.22773],[36.478329,102.228928],[36.478088,102.230209],[36.477921,102.231552],[36.477879,102.232903],[36.477989,102.234261],[36.478088,102.235641],[36.478168,102.237137],[36.47826,102.23877],[36.47839,102.240379],[36.478519,102.241943],[36.47868,102.243439],[36.478882,102.244881],[36.47913,102.246277],[36.479408,102.247627],[36.479759,102.248993],[36.480141,102.25042],[36.480499,102.251892],[36.480862,102.253357],[36.48122,102.254807],[36.481579,102.256302],[36.481979,102.25782],[36.482441,102.259323],[36.48296,102.260757],[36.483471,102.262192],[36.48407,102.263641],[36.484718,102.265106],[36.48539,102.266541],[36.486012,102.267982],[36.48658,102.269432],[36.487011,102.270943],[36.48732,102.272476],[36.48745,102.274063],[36.487461,102.275627],[36.487289,102.277168],[36.486992,102.278641],[36.486599,102.28009],[36.486149,102.281517],[36.48563,102.282944],[36.485119,102.284378],[36.484581,102.285851],[36.4841,102.287376],[36.483749,102.28891],[36.48354,102.290466],[36.483398,102.292061],[36.483471,102.293587],[36.48362,102.29512],[36.48381,102.296677],[36.483978,102.298286],[36.484161,102.299919],[36.484341,102.301567],[36.48452,102.303177],[36.48465,102.304802],[36.484718,102.306412],[36.484749,102.307991],[36.484741,102.309563],[36.484699,102.311142],[36.484612,102.312683],[36.484482,102.314201],[36.484291,102.315689],[36.484081,102.317146],[36.483829,102.31855],[36.483559,102.319923],[36.483261,102.321312],[36.48291,102.322769],[36.482632,102.324226],[36.482399,102.325684],[36.482201,102.327171],[36.482059,102.328697],[36.48196,102.330231],[36.48185,102.331787],[36.48175,102.333397],[36.481651,102.33503],[36.481541,102.336693],[36.481441,102.338341],[36.4813,102.339897],[36.481152,102.341423],[36.48093,102.342857],[36.480652,102.344177],[36.480251,102.345413],[36.47982,102.346573],[36.479279,102.347778],[36.478661,102.348984],[36.477901,102.350281],[36.477112,102.351631],[36.476299,102.352989],[36.475491,102.354332],[36.47472,102.355698],[36.474079,102.357162],[36.473549,102.358688],[36.473122,102.360329],[36.472778,102.361992],[36.472519,102.363678],[36.47226,102.365356],[36.472,102.367058],[36.471741,102.368736],[36.471489,102.370407],[36.471241,102.372093],[36.471001,102.373756],[36.470749,102.375412],[36.47049,102.377068],[36.47023,102.378731],[36.46999,102.380379],[36.46973,102.382027],[36.469398,102.383659],[36.469101,102.385353],[36.468819,102.387062],[36.468571,102.388809],[36.468391,102.390533],[36.468281,102.392227],[36.468201,102.393929],[36.46817,102.395607],[36.46822,102.397293],[36.468311,102.398956],[36.468418,102.400627],[36.46854,102.402298],[36.46867,102.403969],[36.4688,102.405609],[36.468929,102.40728],[36.469059,102.409012],[36.46917,102.410759],[36.46925,102.412483],[36.469299,102.414177],[36.46928,102.415909],[36.469231,102.417641],[36.46909,102.419342],[36.468929,102.421013],[36.468739,102.422737],[36.468529,102.424477],[36.468342,102.426208],[36.468151,102.427872],[36.46796,102.429443],[36.467758,102.430946],[36.467579,102.432426],[36.467388,102.433937],[36.467171,102.435501],[36.466999,102.43705],[36.466881,102.438629],[36.466801,102.440239],[36.466751,102.441872],[36.46674,102.443466],[36.46677,102.445053],[36.466801,102.446579],[36.466801,102.448067],[36.46674,102.449516],[36.466549,102.450996],[36.466309,102.452454],[36.4659,102.453903],[36.465401,102.455292],[36.464828,102.456596],[36.464211,102.457817],[36.463581,102.459007],[36.46294,102.460167],[36.462299,102.461288],[36.461739,102.462334],[36.461151,102.463387],[36.460579,102.464439],[36.45993,102.465591],[36.45916,102.467003],[36.458431,102.468513],[36.457821,102.470093],[36.457352,102.471764],[36.457008,102.473488],[36.456791,102.475258],[36.4566,102.477028],[36.45644,102.47876],[36.456329,102.480461],[36.456181,102.482147],[36.456032,102.483803],[36.455952,102.485474],[36.455891,102.48716],[36.45591,102.488869],[36.455978,102.490601],[36.4561,102.492317],[36.45628,102.494019],[36.456459,102.495728],[36.456589,102.497452],[36.45657,102.499168],[36.456371,102.500893],[36.45607,102.502541],[36.455582,102.504173],[36.45496,102.50576],[36.45438,102.507317],[36.453819,102.508827],[36.453251,102.510307],[36.45274,102.511742],[36.452179,102.513206],[36.451561,102.514618],[36.45089,102.516006],[36.45015,102.517303],[36.44923,102.51857],[36.448299,102.519783],[36.447399,102.520927],[36.446529,102.522049],[36.445629,102.523178],[36.444729,102.524338],[36.443859,102.525436],[36.443008,102.526543],[36.442249,102.52755],[36.44162,102.528481],[36.441051,102.529404],[36.440578,102.530243],[36.440128,102.531029],[36.43969,102.532089],[36.439209,102.533524],[36.438808,102.53508],[36.43853,102.536713],[36.4384,102.53833],[36.438389,102.539978],[36.438499,102.541557],[36.438751,102.543022],[36.439079,102.544373],[36.439468,102.545677],[36.439899,102.546959],[36.44035,102.548233],[36.440811,102.549522],[36.441269,102.550812],[36.441669,102.552162],[36.442009,102.553596],[36.442211,102.555061],[36.442242,102.55658],[36.442051,102.558067],[36.44173,102.559517],[36.441269,102.56089],[36.440651,102.562233],[36.43996,102.563477],[36.439201,102.564728],[36.438412,102.565933],[36.43763,102.567123],[36.43684,102.568329],[36.43605,102.569527],[36.43528,102.570717],[36.43449,102.57193],[36.433681,102.573174],[36.43288,102.574402],[36.432121,102.575684],[36.431419,102.576973],[36.430759,102.578323],[36.430141,102.579697],[36.429531,102.5811],[36.42897,102.582497],[36.428459,102.583946],[36.427971,102.585457],[36.42757,102.587013],[36.4272,102.588516],[36.42683,102.590019],[36.426521,102.591553],[36.426239,102.593063],[36.4259,102.594582],[36.42551,102.596077],[36.425091,102.597572],[36.424599,102.599121],[36.424049,102.60067],[36.423489,102.602203],[36.422932,102.603737],[36.422352,102.605301],[36.42178,102.606827],[36.42123,102.60833],[36.420719,102.609802],[36.420238,102.611267],[36.419849,102.612663],[36.419529,102.614037],[36.419258,102.615433],[36.41898,102.616821],[36.41869,102.618233],[36.418468,102.619659],[36.418301,102.621063],[36.41819,102.622437],[36.41806,102.623863],[36.417931,102.625282],[36.417809,102.626678],[36.41769,102.628036],[36.417568,102.629356],[36.41745,102.630707],[36.417339,102.632027],[36.417221,102.633324],[36.41711,102.63459],[36.417,102.635918],[36.416828,102.637367],[36.416611,102.638893],[36.416279,102.640312],[36.415859,102.641762],[36.415352,102.643158],[36.414768,102.644478],[36.414131,102.645714],[36.413441,102.646812],[36.412739,102.64785],[36.411991,102.648811],[36.411201,102.649727],[36.410412,102.650673],[36.40955,102.651558],[36.40871,102.652481],[36.407871,102.653397],[36.407082,102.65432],[36.406368,102.655373],[36.405788,102.656548],[36.405411,102.657738],[36.405239,102.658928],[36.40517,102.660103],[36.405258,102.661217],[36.405491,102.662277],[36.4058,102.663422],[36.406132,102.664673],[36.406269,102.666008],[36.40617,102.667488],[36.405979,102.668938],[36.405548,102.670311],[36.40501,102.6716],[36.404251,102.672897],[36.4034,102.674133],[36.402451,102.675148],[36.401409,102.675972],[36.400311,102.676628],[36.399181,102.677101],[36.398029,102.677467],[36.396889,102.677834],[36.395802,102.678284],[36.364868,102.688026],[36.36396,102.688309],[36.362999,102.688637],[36.362,102.68911],[36.361,102.689774],[36.3601,102.690628],[36.35936,102.691597],[36.358742,102.692703],[36.358269,102.693863],[36.357868,102.695084],[36.357529,102.696289],[36.357231,102.69751],[36.356941,102.698799],[36.35667,102.700218],[36.356491,102.701668],[36.356461,102.703102],[36.35659,102.704483],[36.356838,102.70578],[36.357239,102.707047],[36.357792,102.708229],[36.358471,102.709267],[36.35918,102.710274],[36.35981,102.711349],[36.360279,102.71257],[36.360569,102.713837],[36.36071,102.715134],[36.360661,102.716423],[36.360439,102.717644],[36.360062,102.718781],[36.35965,102.720009],[36.3591,102.721207],[36.35844,102.722366],[36.357651,102.723473],[36.356758,102.724503],[36.355801,102.725403],[36.354801,102.726173],[36.35376,102.726898],[36.35268,102.727661],[36.351768,102.728653],[36.351051,102.729797],[36.350521,102.731071],[36.350109,102.732437],[36.349739,102.73391],[36.349369,102.735382],[36.348991,102.736839],[36.348671,102.738258],[36.348381,102.739609],[36.347988,102.741013],[36.34753,102.742332],[36.34005,102.754784],[36.339161,102.755432],[36.338169,102.756142],[36.33712,102.75695],[36.33596,102.757759],[36.334949,102.758667],[36.334141,102.75975],[36.33358,102.760887],[36.33321,102.76194],[36.332981,102.762993],[36.332859,102.764],[36.332878,102.765083],[36.333118,102.766228],[36.333401,102.767479],[36.333641,102.76873],[36.333832,102.77002],[36.33387,102.771461],[36.333691,102.773102],[36.333351,102.774803],[36.333031,102.776466],[36.33279,102.778137],[36.332611,102.779831],[36.33255,102.781532],[36.332619,102.783272],[36.332779,102.784943],[36.333,102.786591],[36.333241,102.788223],[36.333469,102.789871],[36.33371,102.791519],[36.333961,102.793167],[36.334221,102.794807],[36.334469,102.796463],[36.334751,102.798119],[36.335018,102.799782],[36.33527,102.80146],[36.335522,102.803047],[36.335701,102.804604],[36.335709,102.806122],[36.335571,102.80764],[36.33527,102.809128],[36.334789,102.810516],[36.33424,102.811836],[36.333691,102.813164],[36.333199,102.814468],[36.332821,102.815819],[36.33255,102.817177],[36.332378,102.818512],[36.332352,102.819801],[36.332409,102.821037],[36.332481,102.82225],[36.332569,102.823647],[36.33268,102.825363],[36.332802,102.827103],[36.33292,102.828842],[36.333038,102.830582],[36.33316,102.832314],[36.333271,102.834053],[36.333302,102.83577],[36.333069,102.837486],[36.332649,102.839211],[36.332062,102.840851],[36.331589,102.842529],[36.331371,102.844269],[36.33147,102.846001],[36.331718,102.847679],[36.332001,102.849373],[36.33226,102.851051],[36.332458,102.852707],[36.332451,102.854446],[36.33223,102.856232],[36.331841,102.85791],[36.331322,102.859482],[36.330509,102.860924],[36.32962,102.862282],[36.328651,102.863586],[36.327679,102.864929],[36.326698,102.866257],[36.325729,102.867592],[36.32476,102.868896],[36.323879,102.87027],[36.323071,102.871727],[36.322418,102.873322],[36.321899,102.874947],[36.321522,102.87661],[36.32122,102.878304],[36.32093,102.879982],[36.32061,102.881683],[36.32021,102.883362],[36.319729,102.885094],[36.31918,102.886726],[36.318581,102.888237],[36.31789,102.889702],[36.31715,102.891113],[36.31636,102.892509],[36.31546,102.893852],[36.31448,102.895157],[36.313461,102.896408],[36.312439,102.897636],[36.311409,102.898888],[36.310379,102.900078],[36.309341,102.901283],[36.308311,102.902496],[36.30732,102.903763],[36.3064,102.905037],[36.305618,102.906418],[36.304939,102.907898],[36.304379,102.90947],[36.30394,102.91111],[36.303631,102.912811],[36.303459,102.914543],[36.303349,102.916283],[36.303249,102.918022],[36.303169,102.919777],[36.303082,102.921577],[36.30299,102.923393],[36.302891,102.925148],[36.302811,102.926842],[36.302719,102.928467],[36.30275,102.930069],[36.302879,102.931648],[36.30307,102.933121],[36.303219,102.934509],[36.303249,102.935883],[36.303261,102.937149],[36.303242,102.938301],[36.303188,102.939346],[36.30312,102.940231],[36.302509,102.94854],[36.302429,102.949707],[36.302299,102.951012],[36.302052,102.952461],[36.30167,102.954018],[36.301109,102.95565],[36.300381,102.957191],[36.29958,102.958641],[36.298752,102.96006],[36.297901,102.961487],[36.297039,102.962936],[36.296181,102.964371],[36.29533,102.96582],[36.29446,102.967308],[36.293629,102.968842],[36.292938,102.970451],[36.292339,102.972061],[36.291771,102.973679],[36.291199,102.975304],[36.290668,102.976952],[36.290089,102.978577],[36.289429,102.980171],[36.288651,102.981689],[36.287769,102.983124],[36.286812,102.984482],[36.285789,102.985733],[36.284691,102.986877],[36.283539,102.987923],[36.282318,102.988853],[36.281071,102.989723],[36.279819,102.990578],[36.278629,102.991524],[36.2775,102.992592],[36.276402,102.993752],[36.275372,102.994957],[36.274429,102.99633],[36.273571,102.99781],[36.272812,102.999336],[36.27206,103.000877],[36.271278,103.002441],[36.2705,103.004028],[36.26984,103.0056],[36.269218,103.007156],[36.268581,103.008713],[36.267792,103.010246],[36.267071,103.011818],[36.266232,103.013313],[36.265228,103.014641],[36.264111,103.015762],[36.262798,103.016663],[36.26141,103.017357],[36.26004,103.017838],[36.258659,103.018257],[36.257309,103.018677],[36.255932,103.019127],[36.25457,103.019524],[36.25322,103.019897],[36.251839,103.020363],[36.250542,103.02108],[36.249359,103.022057],[36.248291,103.023262],[36.247379,103.024658],[36.24667,103.026222],[36.245949,103.027779],[36.245079,103.029182],[36.24408,103.030457],[36.243038,103.031708],[36.241989,103.032951],[36.240891,103.034233],[36.23983,103.035477],[36.23877,103.03672],[36.237789,103.037971],[36.236752,103.039223],[36.23576,103.040527],[36.234989,103.04203],[36.234489,103.043694],[36.234299,103.045448],[36.23436,103.047256],[36.234612,103.049057],[36.234859,103.050789],[36.234909,103.052551],[36.234669,103.054314],[36.23418,103.055977],[36.233521,103.057579],[36.232681,103.059013],[36.2318,103.060432],[36.230919,103.061852],[36.230049,103.063278],[36.229179,103.064713],[36.228291,103.066116],[36.227409,103.067543],[36.226589,103.068893],[36.225819,103.070343],[36.225121,103.071907],[36.224529,103.073502],[36.223999,103.075157],[36.22348,103.076859],[36.223,103.07856],[36.222569,103.080292],[36.22208,103.081963],[36.2215,103.083603],[36.22084,103.085167],[36.220119,103.08667],[36.219379,103.088173],[36.218639,103.089668],[36.217918,103.091179],[36.21722,103.092697],[36.21656,103.094208],[36.215981,103.095863],[36.2155,103.09758],[36.215191,103.099319],[36.214958,103.101059],[36.21476,103.102783],[36.214439,103.104477],[36.213909,103.106148],[36.21312,103.107712],[36.21209,103.1091],[36.211048,103.11039],[36.210018,103.111679],[36.20903,103.112991],[36.208172,103.114464],[36.207531,103.116043],[36.207211,103.117798],[36.207008,103.119583],[36.206829,103.121361],[36.206631,103.123161],[36.206459,103.124924],[36.20628,103.126694],[36.2061,103.128464],[36.205921,103.130234],[36.205811,103.132004],[36.20578,103.133774],[36.205841,103.135551],[36.205971,103.137329],[36.20612,103.139122],[36.206249,103.140907],[36.206322,103.142693],[36.206268,103.144447],[36.206039,103.146172],[36.205601,103.147781],[36.205009,103.1493],[36.204239,103.150772],[36.20332,103.152107],[36.202358,103.153252],[36.201359,103.154373],[36.200371,103.155518],[36.199459,103.156754],[36.198689,103.158157],[36.198021,103.159721],[36.19754,103.161339],[36.197262,103.163033],[36.197151,103.164787],[36.19722,103.166573],[36.197369,103.168312],[36.19754,103.170013],[36.197659,103.171692],[36.197681,103.173317],[36.19746,103.174927],[36.197029,103.176422],[36.196381,103.177856],[36.19553,103.179077],[36.194611,103.180206],[36.193699,103.18132],[36.192829,103.182426],[36.191952,103.183563],[36.191071,103.184753],[36.190231,103.185966],[36.189449,103.187233],[36.188648,103.188507],[36.187698,103.189781],[36.186691,103.190971],[36.18565,103.192047],[36.184521,103.193123],[36.18338,103.194138],[36.18224,103.195129],[36.18108,103.196098],[36.180031,103.197189],[36.17907,103.198433],[36.17823,103.199791],[36.177589,103.201393],[36.17709,103.203041],[36.176739,103.204681],[36.176399,103.206306],[36.17598,103.207893],[36.17548,103.209412],[36.174858,103.210854],[36.174191,103.212288],[36.173538,103.213852],[36.172989,103.2155],[36.172649,103.217247],[36.172531,103.219101],[36.172668,103.221329],[36.172939,103.22316],[36.173222,103.224876],[36.1735,103.226547],[36.173752,103.228127],[36.173939,103.229721],[36.174179,103.231247],[36.174438,103.232758],[36.174648,103.234306],[36.174759,103.235893],[36.17474,103.237457],[36.17469,103.239113],[36.174622,103.240784],[36.1745,103.242447],[36.174511,103.244179],[36.174648,103.245949],[36.17495,103.247719],[36.175381,103.249428],[36.175941,103.251106],[36.176579,103.252762],[36.177219,103.254372],[36.177799,103.255951],[36.178169,103.257561],[36.178371,103.259117],[36.178391,103.260643],[36.178268,103.262154],[36.178009,103.263657],[36.177662,103.26506],[36.177181,103.266342],[36.176559,103.267609],[36.175961,103.268806],[36.175381,103.269981],[36.17482,103.271133],[36.174301,103.27227],[36.17384,103.273376],[36.17345,103.274384],[36.173161,103.275284],[36.172939,103.27607],[36.172798,103.276749],[36.17268,103.277298],[36.172619,103.277718],[36.172619,103.278023],[36.17255,103.278267],[36.172482,103.278526],[36.172138,103.279694],[36.172081,103.279877],[36.171959,103.280159],[36.171791,103.280441],[36.17173,103.280579],[36.171711,103.280663],[36.171661,103.280769],[36.171638,103.280807],[36.1716,103.280853],[36.171551,103.280937],[36.171391,103.281303],[36.17112,103.282066],[36.170689,103.283333],[36.170292,103.284767],[36.170071,103.286293],[36.169991,103.287849],[36.170078,103.289436],[36.1702,103.291023],[36.170231,103.29258],[36.170151,103.293983],[36.169941,103.295372],[36.169571,103.296951],[36.16851,103.305054],[36.168419,103.306953],[36.16827,103.308723],[36.16785,103.310417],[36.167179,103.311996],[36.166271,103.313431],[36.16523,103.314774],[36.1642,103.316132],[36.163361,103.317711],[36.163029,103.31881],[36.162781,103.320084],[36.162498,103.325623],[36.162251,103.328667],[36.161888,103.330269],[36.161179,103.332024],[36.16016,103.333656],[36.157082,103.338173],[36.155689,103.340042],[36.154961,103.340767],[36.153721,103.341583],[36.148899,103.343163],[36.148109,103.343552],[36.1474,103.344063],[36.14653,103.344963],[36.142269,103.350891],[36.141861,103.351784],[36.141548,103.352837],[36.141392,103.353622],[36.141312,103.354942],[36.141312,103.356323],[36.141521,103.3582],[36.142639,103.366814],[36.14333,103.372566],[36.14349,103.37439],[36.143551,103.378151],[36.14362,103.380043],[36.143951,103.382278],[36.144451,103.38401],[36.145111,103.385612],[36.15411,103.398842],[36.155128,103.400093],[36.15612,103.401283],[36.157051,103.402473],[36.15781,103.403847],[36.158379,103.405357],[36.158821,103.406967],[36.159088,103.408684],[36.159321,103.410454],[36.159531,103.412643],[36.159882,103.414429],[36.16058,103.416023],[36.161499,103.417427],[36.16264,103.418617],[36.163952,103.419487],[36.165371,103.420067],[36.166809,103.420593],[36.168251,103.421089],[36.169708,103.421608],[36.17115,103.422272],[36.172501,103.423119],[36.173721,103.424263],[36.174858,103.425537],[36.175659,103.427223],[36.176361,103.429291],[36.176991,103.431534],[36.177189,103.432838],[36.177212,103.434021],[36.17717,103.434967],[36.17688,103.436829],[36.17598,103.441719],[36.175621,103.44455],[36.175591,103.446701],[36.176281,103.450691],[36.176701,103.452438],[36.177071,103.454086],[36.177361,103.455711],[36.17746,103.457237],[36.177158,103.456787],[36.176998,103.456589],[36.1768,103.456467],[36.176449,103.456459],[36.176331,103.456612],[36.17625,103.456818],[36.176201,103.457039],[36.176231,103.457268],[36.176331,103.457474],[36.176491,103.457603],[36.176689,103.457733],[36.17691,103.457787],[36.177349,103.458008],[36.177731,103.458298],[36.17804,103.458687],[36.178211,103.459213],[36.178299,103.459747],[36.178322,103.460243],[36.17831,103.460457],[36.178242,103.460709],[36.178249,103.46109],[36.177689,103.462067],[36.177311,103.462547],[36.1772,103.462738],[36.177109,103.462982],[36.17701,103.463928],[36.176899,103.464378],[36.1768,103.4645],[36.175251,103.465729],[36.174911,103.467194],[36.17487,103.467773],[36.174591,103.469757],[36.174309,103.470833],[36.174229,103.471077],[36.173988,103.471497],[36.173538,103.471733],[36.174229,103.471489],[36.17416,103.471832],[36.173969,103.472],[36.173069,103.475014],[36.171669,103.478172],[36.171021,103.480209],[36.170811,103.482384],[36.170441,103.482681],[36.169361,103.482674],[36.168732,103.482658],[36.167721,103.482674],[36.167332,103.482841],[36.16708,103.483437],[36.16634,103.486961],[36.165279,103.491341],[36.164589,103.493446],[36.163799,103.494377],[36.162411,103.495079],[36.155079,103.497543],[36.15213,103.498734],[36.151791,103.49884],[36.14447,103.500648],[36.14299,103.501266],[36.142841,103.501373],[36.141708,103.502586],[36.14072,103.503593],[36.14006,103.504601],[36.138741,103.508942],[36.138149,103.511543],[36.137932,103.513313],[36.138039,103.518738],[36.138,103.522591],[36.137661,103.524048],[36.136459,103.526466],[36.136051,103.526978],[36.13266,103.529221],[36.12867,103.530296],[36.123032,103.531723],[36.122059,103.532089],[36.11982,103.533241],[36.116169,103.535553],[36.115021,103.53627],[36.11412,103.537117],[36.11311,103.538673],[36.11042,103.545486],[36.109219,103.548241],[36.1087,103.550247],[36.108509,103.552002],[36.108749,103.556358],[36.108971,103.55764],[36.109459,103.559082],[36.1115,103.562927],[36.11195,103.564087],[36.111801,103.564117],[36.11142,103.564163],[36.11076,103.564323],[36.109909,103.56456],[36.109112,103.56485],[36.10836,103.565163],[36.10775,103.56543],[36.10733,103.565666],[36.10696,103.566017],[36.10664,103.566307],[36.10622,103.566803],[36.105869,103.566978],[36.105518,103.566887],[36.105099,103.56665],[36.104721,103.566406],[36.104382,103.566269],[36.104061,103.566223],[36.10379,103.566322],[36.1035,103.566559],[36.103199,103.566811],[36.10268,103.567261],[36.101822,103.567711],[36.100868,103.568237],[36.10009,103.569122],[36.09935,103.569992],[36.09861,103.57077],[36.098011,103.571213],[36.097469,103.571411],[36.096951,103.571587],[36.096409,103.571777],[36.095909,103.57196],[36.09539,103.572144],[36.09481,103.572159],[36.0942,103.572037],[36.09362,103.571877],[36.093029,103.571693],[36.092361,103.571571],[36.091492,103.57151],[36.09053,103.571442],[36.089512,103.571136],[36.088509,103.570709],[36.08754,103.570297],[36.086658,103.569923],[36.085831,103.569489],[36.085011,103.568947],[36.08429,103.568451],[36.08358,103.568001],[36.08279,103.567543],[36.081951,103.567322],[36.08112,103.567436],[36.080292,103.567734],[36.07943,103.567833],[36.078571,103.567574],[36.077759,103.567329],[36.077,103.567253],[36.076241,103.567482],[36.075581,103.568031],[36.074841,103.568703],[36.074081,103.569122],[36.07338,103.569473],[36.07267,103.569794],[36.071899,103.57016],[36.071281,103.570473],[36.07069,103.570763],[36.070011,103.570992],[36.069382,103.570869],[36.06881,103.570473],[36.06813,103.569923],[36.067268,103.569206],[36.06641,103.56852],[36.065659,103.56781],[36.065121,103.567162],[36.06464,103.566566],[36.064171,103.566093],[36.063671,103.565788],[36.06316,103.565529],[36.062641,103.565269],[36.062092,103.564987],[36.06168,103.564552],[36.061611,103.563751],[36.061699,103.562576],[36.061779,103.561279],[36.061821,103.56012],[36.06144,103.559196],[36.060928,103.558563],[36.060329,103.558067],[36.05983,103.557602],[36.059681,103.556778],[36.05991,103.555649],[36.060169,103.55442],[36.06041,103.553177],[36.060741,103.552063],[36.061352,103.55098],[36.061878,103.549911],[36.062229,103.54892],[36.062469,103.547882],[36.062538,103.546783],[36.062408,103.54567],[36.062168,103.544594],[36.061852,103.543556],[36.061321,103.54274],[36.060532,103.542427],[36.0597,103.542511],[36.058929,103.542641],[36.05827,103.542763],[36.057571,103.542877],[36.05674,103.54303],[36.055882,103.543091],[36.054989,103.543007],[36.054211,103.543007],[36.053532,103.54306],[36.05267,103.54364],[36.05183,103.544357],[36.051189,103.544891],[36.050709,103.545082],[36.050079,103.544983],[36.04929,103.544731],[36.048359,103.544601],[36.047379,103.544884],[36.04657,103.545647],[36.04586,103.546608],[36.045101,103.547447],[36.044239,103.547958],[36.043221,103.548027],[36.04221,103.547821],[36.041279,103.547829],[36.04044,103.548058],[36.039669,103.548241],[36.039051,103.548279],[36.03828,103.548019],[36.037239,103.548073],[36.036171,103.548233],[36.035,103.548187],[36.03418,103.548042],[36.033569,103.547798],[36.033138,103.547546],[36.03281,103.547379],[36.032139,103.547073],[36.0313,103.546738],[36.03046,103.546089],[36.029499,103.545258],[36.028412,103.544601],[36.027321,103.544006],[36.02631,103.543457],[36.02544,103.543007],[36.0247,103.543068],[36.024109,103.543259],[36.023312,103.542931],[36.0224,103.542397],[36.021481,103.541931],[36.02066,103.541771],[36.01923,103.541351],[36.01841,103.540916],[36.017712,103.540497],[36.01722,103.540237],[36.01685,103.53994],[36.016548,103.539543],[36.0163,103.538963],[36.01622,103.538322],[36.016319,103.537514],[36.016602,103.536491],[36.016899,103.535431],[36.017239,103.534363],[36.01749,103.533386],[36.01749,103.532539],[36.017208,103.531807],[36.0168,103.531281],[36.016399,103.530853],[36.016022,103.53038],[36.015701,103.529823],[36.015511,103.529167],[36.015419,103.528473],[36.015541,103.527573],[36.015862,103.526611],[36.01627,103.525742],[36.01672,103.524986],[36.0172,103.524429],[36.01767,103.52401],[36.01828,103.523903],[36.019169,103.524139],[36.020119,103.524406],[36.02108,103.524277],[36.0219,103.523712],[36.02269,103.523102],[36.023571,103.522758],[36.02457,103.522697],[36.025539,103.52256],[36.026371,103.522072],[36.027069,103.521233],[36.027729,103.520287],[36.028469,103.519417],[36.02932,103.518646],[36.03019,103.517883],[36.031052,103.517113],[36.031799,103.516441],[36.032398,103.515793],[36.032879,103.514977],[36.033272,103.514061],[36.033539,103.513077],[36.033741,103.512009],[36.034111,103.510986],[36.034561,103.509987],[36.03484,103.508858],[36.034859,103.507698],[36.034721,103.506607],[36.034519,103.505722],[36.03434,103.504883],[36.03421,103.503868],[36.034302,103.502808],[36.034489,103.501747],[36.034618,103.500687],[36.034512,103.499649],[36.034328,103.498642],[36.034161,103.49765],[36.03397,103.496681],[36.033791,103.495697],[36.033691,103.494698],[36.033852,103.493683],[36.0341,103.492653],[36.034271,103.491653],[36.034851,103.490936],[36.03537,103.490097],[36.0355,103.489067],[36.035511,103.488098],[36.035259,103.487198],[36.03503,103.486282],[36.035271,103.48539],[36.035851,103.48455],[36.03611,103.483437],[36.036289,103.482193],[36.036461,103.480927],[36.03656,103.479729],[36.036449,103.478622],[36.036308,103.477608],[36.036549,103.476707],[36.037239,103.476028],[36.03809,103.475502],[36.0438,103.472023],[36.044491,103.471581],[36.044979,103.47113],[36.04533,103.470642],[36.045639,103.469948],[36.045769,103.469147],[36.045811,103.468369],[36.04591,103.467506],[36.046101,103.466667],[36.046398,103.46582],[36.046768,103.464973],[36.047211,103.464149],[36.04768,103.463463],[36.048019,103.462967],[36.048401,103.462517],[36.048851,103.461937],[36.04937,103.461304],[36.04995,103.460564],[36.050499,103.459877],[36.051048,103.45919],[36.05164,103.458443],[36.052231,103.457718],[36.052872,103.456917],[36.053539,103.455994],[36.05407,103.454971],[36.054401,103.45388],[36.054588,103.452766],[36.054691,103.451637],[36.054779,103.450531],[36.054981,103.449379],[36.055248,103.44809],[36.055519,103.446823],[36.055759,103.445663],[36.055969,103.444656],[36.055969,103.443802],[36.05571,103.442848],[36.055401,103.441811],[36.05508,103.44072],[36.05476,103.439629],[36.05444,103.438599],[36.054131,103.437607],[36.053871,103.436653],[36.053699,103.435631],[36.0536,103.434662],[36.053501,103.4338],[36.053391,103.43293],[36.053249,103.431831],[36.053051,103.43071],[36.052872,103.429764],[36.052731,103.428963],[36.052608,103.428207],[36.052471,103.427383],[36.052349,103.426514],[36.052189,103.425667],[36.051991,103.424957],[36.0518,103.424332],[36.051609,103.42366],[36.051411,103.422951],[36.051151,103.422188],[36.05072,103.421577],[36.05019,103.42115],[36.049648,103.420738],[36.04911,103.420326],[36.048531,103.419884],[36.047852,103.419342],[36.047081,103.418777],[36.046211,103.418312],[36.04528,103.417999],[36.044319,103.417847],[36.043331,103.41774],[36.042358,103.417633],[36.041401,103.417557],[36.040531,103.417473],[36.039688,103.417389],[36.038879,103.417313],[36.038071,103.417229],[36.037331,103.417152],[36.036671,103.417038],[36.03606,103.416924],[36.03553,103.416801],[36.03513,103.416687],[36.034931,103.416634],[36.034752,103.416557],[36.033508,103.416237],[36.032879,103.416054],[36.032101,103.415817],[36.031219,103.415558],[36.030369,103.41526],[36.029572,103.414803],[36.028801,103.414139],[36.028091,103.413544],[36.02739,103.413071],[36.026649,103.412933],[36.02597,103.413177],[36.02533,103.41362],[36.0247,103.41407],[36.02409,103.414139],[36.02359,103.41378],[36.02317,103.413292],[36.02272,103.41275],[36.022209,103.412132],[36.02158,103.411392],[36.020859,103.410553],[36.020149,103.409683],[36.01939,103.40892],[36.01857,103.408272],[36.0177,103.407707],[36.016781,103.407303],[36.01585,103.406937],[36.014961,103.406616],[36.01416,103.406326],[36.013451,103.405968],[36.012798,103.40535],[36.012291,103.404457],[36.01181,103.40332],[36.011269,103.402077],[36.010719,103.400902],[36.010208,103.39978],[36.00972,103.398743],[36.009071,103.397873],[36.008339,103.397087],[36.007671,103.396378],[36.00716,103.395576],[36.006851,103.394493],[36.00663,103.393227],[36.006371,103.391907],[36.005951,103.390648],[36.005299,103.389511],[36.004532,103.388588],[36.003651,103.387939],[36.002659,103.387642],[36.00169,103.387741],[36.000679,103.387947],[35.99968,103.388184],[35.99876,103.388367],[35.99791,103.388344],[35.997021,103.387993],[35.996109,103.387543],[35.995152,103.387077],[35.994228,103.386673],[35.99342,103.386421],[35.99268,103.38665],[35.992088,103.38726],[35.99144,103.387802],[35.990589,103.388161],[35.989651,103.388153],[35.98872,103.387917],[35.98782,103.38755],[35.98695,103.387047],[35.986061,103.386543],[35.985241,103.386017],[35.984661,103.385193],[35.984119,103.384323],[35.983421,103.383781],[35.982712,103.383301],[35.982182,103.382423],[35.981739,103.38134],[35.981319,103.380302],[35.980881,103.379242],[35.98045,103.378166],[35.98003,103.377159],[35.979622,103.376213],[35.979359,103.375229],[35.979252,103.374123],[35.978951,103.373123],[35.97839,103.372238],[35.977871,103.371323],[35.977631,103.370201],[35.977291,103.369133],[35.9767,103.36837],[35.9762,103.367844],[35.975719,103.367332],[35.975201,103.366882],[35.974529,103.366463],[35.973789,103.365952],[35.97324,103.365128],[35.97274,103.364227],[35.97226,103.363327],[35.971748,103.362427],[35.970909,103.361908],[35.96991,103.361443],[35.968899,103.360977],[35.967949,103.360443],[35.96703,103.359848],[35.966141,103.359261],[35.96529,103.358704],[35.964481,103.358124],[35.963871,103.357224],[35.963322,103.35611],[35.962742,103.355072],[35.96204,103.354179],[35.96133,103.353317],[35.96072,103.352547],[35.960159,103.351891],[35.959671,103.351433],[35.959,103.350822],[35.958199,103.350197],[35.957401,103.349541],[35.9566,103.3489],[35.955761,103.34832],[35.954899,103.347893],[35.95401,103.347527],[35.953079,103.347183],[35.952209,103.346848],[35.951519,103.346367],[35.951019,103.345596],[35.95052,103.344849],[35.949871,103.344421],[35.94907,103.344223],[35.948292,103.344101],[35.947639,103.344002],[35.946999,103.343887],[35.946301,103.343773],[35.945591,103.343651],[35.944809,103.343529],[35.944,103.343323],[35.943291,103.342857],[35.942692,103.342148],[35.942131,103.341408],[35.94154,103.340843],[35.940899,103.340607],[35.94035,103.340424],[35.93993,103.34037],[35.939491,103.340332],[35.938862,103.340317],[35.938301,103.340363],[35.937832,103.340408],[35.937439,103.340424],[35.93705,103.340431],[35.936581,103.340317],[35.936211,103.339737],[35.93605,103.339012],[35.93589,103.338287],[35.935741,103.337608],[35.935551,103.336746],[35.93536,103.335999],[35.935181,103.33535],[35.93491,103.334801],[35.934639,103.334183],[35.934662,103.333519],[35.93483,103.332878],[35.934952,103.332329],[35.93502,103.331711],[35.934879,103.331123],[35.934502,103.330612],[35.934231,103.330093],[35.934292,103.329514],[35.934471,103.328979],[35.934689,103.328453],[35.934959,103.327942],[35.93523,103.327438],[35.935558,103.326881],[35.935928,103.326302],[35.936329,103.325996],[35.93676,103.325882],[35.937099,103.325798],[35.93716,103.325638],[35.93689,103.325508],[35.9366,103.325447],[35.936371,103.325523],[35.936001,103.325783],[35.935661,103.326157],[35.93544,103.326553],[35.93528,103.326714],[35.935001,103.326576],[35.934631,103.32637],[35.934261,103.326149],[35.934132,103.325859],[35.93417,103.32534],[35.93425,103.324707],[35.93433,103.324173],[35.934429,103.323708],[35.934502,103.323181],[35.93457,103.322563],[35.934631,103.321854],[35.934711,103.32106],[35.934811,103.320267],[35.934879,103.319504],[35.934971,103.318771],[35.934929,103.318176],[35.934952,103.317688],[35.934898,103.317123],[35.934818,103.316391],[35.934792,103.315918],[35.934799,103.315819],[35.93449,103.315529],[35.934021,103.3153],[35.933731,103.315079],[35.9333,103.314484],[35.932991,103.314209],[35.93206,103.31369],[35.931179,103.313438],[35.93055,103.31308],[35.93045,103.312927],[35.930561,103.31279],[35.931301,103.312927],[35.931931,103.312729],[35.932541,103.312851],[35.93264,103.312767],[35.932671,103.312683],[35.93259,103.312553],[35.932251,103.312363],[35.93095,103.312019],[35.93042,103.3116],[35.93021,103.311493],[35.93,103.311501],[35.929619,103.311707],[35.92934,103.311974],[35.929199,103.31218],[35.929001,103.312714],[35.92902,103.312897],[35.929161,103.313431],[35.929131,103.313599],[35.92905,103.31369],[35.92836,103.313927],[35.928131,103.313873],[35.92802,103.313766],[35.927731,103.313408],[35.92757,103.313408],[35.927471,103.313507],[35.927441,103.313728],[35.92749,103.313828],[35.92778,103.314056],[35.92786,103.31427],[35.927811,103.3144],[35.927441,103.314796],[35.927219,103.315201],[35.92659,103.316589],[35.92635,103.317291],[35.92606,103.31871],[35.925869,103.31913],[35.925659,103.319351],[35.921909,103.322456],[35.921421,103.322708],[35.921211,103.322723],[35.920971,103.322647],[35.9207,103.322456],[35.92025,103.321831],[35.91988,103.321548],[35.919651,103.321533],[35.9193,103.3218],[35.91909,103.3218],[35.918961,103.321693],[35.918789,103.321426],[35.91853,103.320938],[35.91827,103.320763],[35.918091,103.320763],[35.917961,103.320847],[35.917641,103.321823],[35.917561,103.321907],[35.917419,103.321968],[35.917191,103.321877],[35.91679,103.321487],[35.916691,103.321449],[35.916561,103.321487],[35.916161,103.3218],[35.915901,103.321831],[35.914989,103.321136],[35.914841,103.321091],[35.914459,103.321136],[35.913651,103.321487],[35.913311,103.321579],[35.912979,103.321579],[35.912811,103.321503],[35.912701,103.321327],[35.912571,103.320686],[35.912449,103.320587],[35.91235,103.320618],[35.912251,103.320877],[35.912121,103.321709],[35.91201,103.322006],[35.911621,103.322807],[35.911381,103.32312],[35.911091,103.323288],[35.910511,103.323349],[35.90971,103.323288],[35.909481,103.32338],[35.909069,103.323914],[35.90884,103.324318],[35.908539,103.325203],[35.908451,103.325363],[35.907921,103.325851],[35.907841,103.326057],[35.907871,103.326271],[35.908291,103.327103],[35.908451,103.327797],[35.90844,103.328041],[35.90834,103.328178],[35.90797,103.328407],[35.9076,103.328377],[35.90731,103.328247],[35.907181,103.32814],[35.906361,103.327087],[35.906281,103.326759],[35.90596,103.326157],[35.905769,103.326073],[35.904621,103.32605],[35.90448,103.325974],[35.90419,103.325638],[35.904121,103.32547],[35.903931,103.323669],[35.90382,103.323341],[35.9034,103.322639],[35.903271,103.322327],[35.903221,103.322166],[35.903141,103.321648],[35.903191,103.321518],[35.90332,103.321419],[35.903751,103.321373],[35.90398,103.32122],[35.90406,103.321098],[35.904079,103.320961],[35.904041,103.320587],[35.903931,103.320419],[35.903801,103.320358],[35.90366,103.320343],[35.90303,103.320427],[35.902809,103.320297],[35.90266,103.32],[35.90202,103.318047],[35.90184,103.317719],[35.9016,103.317497],[35.899841,103.318741],[35.89954,103.320923],[35.899841,103.321854],[35.899891,103.322159],[35.899761,103.32328],[35.899811,103.323608],[35.900421,103.324417],[35.900829,103.325241],[35.90099,103.325394],[35.901291,103.325539],[35.901581,103.325768],[35.902,103.326828],[35.902531,103.327347],[35.90313,103.328468],[35.903351,103.329033],[35.903721,103.329483],[35.90395,103.330208],[35.903961,103.330566],[35.903881,103.330856],[35.903931,103.331078],[35.90419,103.331284],[35.90443,103.33165],[35.904701,103.331947],[35.905319,103.332397],[35.905491,103.332619],[35.905651,103.333023],[35.90554,103.333847],[35.905609,103.334068],[35.90588,103.334503],[35.9062,103.334747],[35.907101,103.335007],[35.907181,103.335159],[35.907181,103.335693],[35.907219,103.335777],[35.907341,103.335876],[35.90757,103.335876],[35.90773,103.335777],[35.907879,103.335617],[35.908119,103.33519],[35.908291,103.335121],[35.90839,103.335159],[35.908779,103.33548],[35.909451,103.335854],[35.90955,103.335991],[35.90955,103.336067],[35.90942,103.336571],[35.90942,103.336723],[35.909931,103.337753],[35.90995,103.338097],[35.90974,103.338676],[35.909679,103.33876],[35.90918,103.339058],[35.908791,103.339523],[35.908291,103.339897],[35.9081,103.339897],[35.907909,103.339653],[35.90773,103.339607],[35.9076,103.339737],[35.907501,103.340157],[35.907391,103.340317],[35.906929,103.340553],[35.90678,103.3405],[35.90641,103.34005],[35.906231,103.340027],[35.905979,103.340157],[35.90591,103.340218],[35.90575,103.340828],[35.9053,103.341309],[35.905121,103.341347],[35.904881,103.341309],[35.904751,103.3414],[35.904411,103.342293],[35.9039,103.343323],[35.903801,103.343407],[35.903419,103.343559],[35.902191,103.343681],[35.90147,103.343674],[35.901081,103.343536],[35.90065,103.343536],[35.89859,103.343857],[35.89846,103.343979],[35.89817,103.344414],[35.897621,103.344704],[35.897129,103.345703],[35.896881,103.34639],[35.896431,103.34671],[35.895969,103.346939],[35.89587,103.347069],[35.895691,103.347488],[35.89558,103.347527],[35.89534,103.347504],[35.89521,103.347527],[35.89476,103.348007],[35.89463,103.348091],[35.89418,103.348106],[35.893681,103.348648],[35.893181,103.349037],[35.892849,103.34922],[35.89254,103.349564],[35.89238,103.349663],[35.891979,103.3498],[35.890751,103.349899],[35.890461,103.349991],[35.890411,103.350182],[35.89043,103.350258],[35.890511,103.350327],[35.89156,103.35038],[35.892181,103.350471],[35.893009,103.350128],[35.893799,103.349693],[35.89444,103.349716],[35.894539,103.349617],[35.894619,103.349274],[35.894699,103.349159],[35.89558,103.349037],[35.896191,103.348778],[35.896641,103.34893],[35.897041,103.34993],[35.89719,103.350098],[35.897339,103.350098],[35.89772,103.349899],[35.8978,103.349777],[35.8978,103.349579],[35.89764,103.349007],[35.8978,103.348557],[35.897709,103.348099],[35.8978,103.347931],[35.898121,103.347954],[35.89872,103.348198],[35.899151,103.348503],[35.89925,103.348503],[35.899361,103.34832],[35.89933,103.347771],[35.89941,103.34761],[35.89954,103.347588],[35.90036,103.347977],[35.900539,103.348007],[35.90073,103.347939],[35.90081,103.347816],[35.900829,103.347687],[35.90081,103.347557],[35.90065,103.347237],[35.900631,103.347099],[35.900749,103.346939],[35.900909,103.346909],[35.90134,103.347023],[35.901581,103.347237],[35.901871,103.347633],[35.902,103.347656],[35.90229,103.347557],[35.902451,103.347679],[35.902481,103.347763],[35.902481,103.347893],[35.90239,103.34819],[35.902279,103.348427],[35.902161,103.348557],[35.901821,103.34874],[35.901421,103.349083],[35.90097,103.349548],[35.900539,103.349586],[35.900391,103.34967],[35.8992,103.351128],[35.898899,103.35125],[35.89851,103.351738],[35.897949,103.352081],[35.897701,103.352127],[35.89711,103.351883],[35.89674,103.351799],[35.89637,103.351517],[35.896191,103.351509],[35.895741,103.352219],[35.895531,103.352287],[35.895241,103.35228],[35.895111,103.352341],[35.895081,103.352386],[35.89502,103.352798],[35.89492,103.353027],[35.89476,103.353088],[35.89397,103.353027],[35.893871,103.353111],[35.893799,103.353317],[35.893951,103.354019],[35.89389,103.354156],[35.8937,103.354309],[35.893311,103.354301],[35.89315,103.354233],[35.89241,103.353683],[35.892151,103.353607],[35.892021,103.353699],[35.892021,103.35376],[35.89212,103.353859],[35.892509,103.353973],[35.89323,103.354584],[35.893391,103.35466],[35.89381,103.354607],[35.893921,103.35466],[35.89402,103.35479],[35.89415,103.355057],[35.894161,103.35524],[35.89365,103.356293],[35.893379,103.357338],[35.89333,103.357857],[35.89352,103.358528],[35.893539,103.358757],[35.89328,103.359581],[35.893101,103.36042],[35.892891,103.36097],[35.892601,103.361397],[35.892479,103.361679],[35.892399,103.362267],[35.89225,103.362717],[35.891689,103.363441],[35.891701,103.363586],[35.89183,103.36393],[35.89188,103.364227],[35.891739,103.364799],[35.891239,103.365868],[35.89119,103.366417],[35.89098,103.366737],[35.89064,103.367073],[35.890411,103.367378],[35.890461,103.367554],[35.8909,103.367996],[35.890999,103.368294],[35.890999,103.368591],[35.890789,103.369034],[35.89082,103.36924],[35.891251,103.369507],[35.89138,103.369766],[35.89138,103.370003],[35.8913,103.370537],[35.89101,103.371597],[35.890831,103.371979],[35.89056,103.372147],[35.89024,103.372467],[35.890041,103.372566],[35.88974,103.372597],[35.88937,103.372917],[35.88903,103.373154],[35.88842,103.374519],[35.888161,103.374847],[35.886051,103.37606],[35.886009,103.37616],[35.88596,103.376633],[35.885849,103.376869],[35.88541,103.377274],[35.884781,103.377457],[35.884541,103.377586],[35.88446,103.377731],[35.884411,103.378151],[35.8843,103.378258],[35.883511,103.378441],[35.88298,103.378433],[35.882721,103.378593],[35.88261,103.378754],[35.882599,103.37886],[35.882771,103.379341],[35.882801,103.379578],[35.882759,103.379761],[35.882641,103.37989],[35.881191,103.380547],[35.880939,103.38073],[35.880829,103.380997],[35.880619,103.382156],[35.880322,103.382767],[35.880291,103.38385],[35.880409,103.384117],[35.880939,103.38459],[35.881069,103.384758],[35.88121,103.385139],[35.88121,103.385368],[35.881161,103.385468],[35.880951,103.385757],[35.88076,103.385887],[35.879971,103.386147],[35.879841,103.386299],[35.879841,103.386543],[35.88002,103.386917],[35.879921,103.387154],[35.879681,103.387321],[35.87952,103.387543],[35.879551,103.387688],[35.879791,103.388077],[35.879791,103.388206],[35.879631,103.38842],[35.879021,103.388748],[35.87709,103.389458],[35.876881,103.389587],[35.87672,103.389809],[35.87672,103.389977],[35.876801,103.39016],[35.878311,103.3909],[35.878521,103.391068],[35.878559,103.39119],[35.878521,103.391258],[35.878349,103.391243],[35.87804,103.390953],[35.877689,103.39077],[35.87616,103.39035],[35.876011,103.390266],[35.875931,103.390129],[35.87603,103.389709],[35.87619,103.389503],[35.87701,103.388939],[35.878201,103.388283],[35.87825,103.388153],[35.878231,103.388077],[35.87812,103.388031],[35.877522,103.388428],[35.875599,103.389351],[35.875351,103.389648],[35.87513,103.390297],[35.875111,103.390511],[35.87524,103.390678],[35.87656,103.391373],[35.87661,103.391434],[35.876629,103.391602],[35.876541,103.391769],[35.876339,103.39193],[35.875771,103.392357],[35.875191,103.392609],[35.874691,103.392929],[35.874081,103.393051],[35.87344,103.393417],[35.871861,103.39402],[35.87075,103.394524],[35.87011,103.394608],[35.869961,103.394691],[35.86961,103.395073],[35.868111,103.395668],[35.867321,103.396179],[35.867111,103.39637],[35.867069,103.396553],[35.867081,103.396683],[35.867199,103.396843],[35.86832,103.39743],[35.869591,103.398453],[35.87022,103.398804],[35.87038,103.399048],[35.870361,103.399178],[35.870201,103.399361],[35.869431,103.399841],[35.869091,103.399986],[35.86861,103.400093],[35.868141,103.400467],[35.86787,103.400551],[35.867661,103.400681],[35.867149,103.401268],[35.867119,103.401443],[35.867149,103.401558],[35.86763,103.402008],[35.867649,103.402283],[35.867481,103.402573],[35.867161,103.402901],[35.866291,103.403427],[35.86607,103.403679],[35.865761,103.404739],[35.865841,103.406013],[35.865971,103.40625],[35.86607,103.406303],[35.866211,103.406273],[35.867451,103.405586],[35.867729,103.40551],[35.867889,103.405602],[35.86832,103.406197],[35.868839,103.406593],[35.868931,103.406731],[35.86898,103.406891],[35.868931,103.407028],[35.868771,103.407204],[35.867191,103.407806],[35.866859,103.407967],[35.866791,103.408081],[35.866791,103.408257],[35.866909,103.408417],[35.867561,103.408813],[35.867691,103.408951],[35.86776,103.409119],[35.86768,103.409271],[35.867569,103.40934],[35.86515,103.410027],[35.864929,103.410172],[35.864769,103.410393],[35.864689,103.410759],[35.864761,103.411324],[35.864731,103.411621],[35.864109,103.412628],[35.86393,103.413116],[35.863892,103.414146],[35.86396,103.414627],[35.86388,103.414917],[35.863529,103.415466],[35.863441,103.415733],[35.863411,103.416649],[35.863491,103.416946],[35.863731,103.417427],[35.86372,103.417908],[35.863781,103.418327],[35.864071,103.418747],[35.864521,103.420151],[35.864891,103.42057],[35.86499,103.420769],[35.86499,103.421059],[35.864799,103.421509],[35.86478,103.421677],[35.865089,103.422218],[35.865089,103.422607],[35.86515,103.422897],[35.865471,103.423698],[35.865509,103.424347],[35.866211,103.425583],[35.866371,103.425957],[35.866501,103.426392],[35.866631,103.427513],[35.866611,103.427803],[35.866501,103.428108],[35.866081,103.428947],[35.866081,103.429131],[35.866161,103.429199],[35.866261,103.429161],[35.86668,103.428268],[35.86694,103.427948],[35.86705,103.427917],[35.867531,103.428108],[35.867661,103.428101],[35.86779,103.428017],[35.868309,103.427551],[35.86842,103.427544],[35.868481,103.427681],[35.868301,103.427917],[35.867771,103.428368],[35.867661,103.428436],[35.867161,103.42852],[35.867001,103.428658],[35.866699,103.429367],[35.866699,103.429558],[35.866791,103.429817],[35.866791,103.430061],[35.866631,103.430191],[35.866371,103.430267],[35.86623,103.430397],[35.866119,103.430641],[35.86594,103.431297],[35.86578,103.431534],[35.865601,103.431633],[35.86512,103.431763],[35.86441,103.432266],[35.864201,103.432281],[35.863701,103.432137],[35.86356,103.432137],[35.86343,103.432259],[35.86338,103.43248],[35.863491,103.433296],[35.864361,103.435059],[35.864361,103.435333],[35.864269,103.435577],[35.864109,103.435791],[35.863621,103.436157],[35.863491,103.436699],[35.863361,103.436943],[35.862949,103.437317],[35.86245,103.437477],[35.862171,103.437668],[35.861931,103.437866],[35.861752,103.438148],[35.86166,103.438637],[35.86132,103.439491],[35.861229,103.440849],[35.86158,103.441933],[35.861771,103.44236],[35.862122,103.442917],[35.862141,103.443161],[35.862011,103.443298],[35.86132,103.443497],[35.861111,103.443932],[35.861012,103.444],[35.86031,103.444054],[35.8601,103.444153],[35.860031,103.444237],[35.860031,103.444519],[35.86034,103.444893],[35.860371,103.445053],[35.860321,103.445221],[35.86005,103.445541],[35.859909,103.445587],[35.859699,103.445587],[35.858891,103.445396],[35.85844,103.445396],[35.856571,103.445953],[35.8563,103.446091],[35.855801,103.44648],[35.855221,103.446709],[35.85482,103.446999],[35.854191,103.447113],[35.85363,103.447479],[35.852451,103.447937],[35.851891,103.448051],[35.85046,103.447929],[35.850182,103.44796],[35.84903,103.448624],[35.847549,103.449226],[35.8456,103.450958],[35.8447,103.45121],[35.844551,103.451347],[35.844379,103.451988],[35.84417,103.452217],[35.841621,103.453018],[35.84103,103.4533],[35.840721,103.453308],[35.839741,103.453018],[35.839409,103.45269],[35.839081,103.452217],[35.838791,103.451988],[35.837379,103.45195],[35.836552,103.45182],[35.836411,103.451714],[35.836281,103.4515],[35.83577,103.44986],[35.835541,103.449448],[35.834641,103.449051],[35.8339,103.448349],[35.833389,103.448067],[35.831711,103.446968],[35.831539,103.446907],[35.831089,103.446907],[35.83028,103.446663],[35.829361,103.446587],[35.82859,103.446327],[35.828239,103.44632],[35.826759,103.446579],[35.825489,103.446587],[35.823792,103.446289],[35.822731,103.446251],[35.822109,103.445961],[35.82196,103.445953],[35.821239,103.446121],[35.82066,103.446564],[35.820499,103.446617],[35.819111,103.446938],[35.816921,103.447937],[35.816559,103.448021],[35.81599,103.447937],[35.814091,103.44809],[35.81358,103.448036],[35.812801,103.448151],[35.8125,103.448067],[35.81221,103.447906],[35.812111,103.447777],[35.81205,103.447578],[35.81213,103.446388],[35.812031,103.445686],[35.812229,103.444946],[35.812241,103.444763],[35.812191,103.44458],[35.811161,103.443619],[35.810452,103.442787],[35.809799,103.442299],[35.809681,103.442131],[35.808922,103.440361],[35.808731,103.440071],[35.80843,103.439758],[35.808281,103.439697],[35.807869,103.439728],[35.807449,103.439537],[35.806911,103.439407],[35.805611,103.438591],[35.804291,103.438309],[35.80405,103.438179],[35.803631,103.43782],[35.802731,103.437592],[35.802341,103.437393],[35.801941,103.437286],[35.80056,103.437141],[35.7995,103.437111],[35.798691,103.437286],[35.798481,103.43721],[35.798012,103.436867],[35.797791,103.436821],[35.795181,103.43663],[35.793781,103.436768],[35.792801,103.436974],[35.79229,103.43692],[35.79073,103.436157],[35.78941,103.435959],[35.788971,103.435799],[35.787891,103.434837],[35.787312,103.434486],[35.786201,103.434097],[35.785431,103.434029],[35.783321,103.432663],[35.78191,103.431961],[35.780861,103.431618],[35.780449,103.431396],[35.779381,103.431396],[35.77903,103.431473],[35.778332,103.431137],[35.777512,103.431],[35.77626,103.430901],[35.77512,103.430588],[35.774719,103.430557],[35.77388,103.430611],[35.77367,103.430557],[35.773472,103.430397],[35.773041,103.429649],[35.772831,103.429337],[35.771561,103.428581],[35.770069,103.427193],[35.769489,103.427048],[35.768162,103.42617],[35.767551,103.426033],[35.767231,103.425774],[35.76545,103.424019],[35.764339,103.423241],[35.763401,103.42289],[35.762741,103.422348],[35.762371,103.421913],[35.76136,103.420219],[35.761292,103.419991],[35.761238,103.419327],[35.76086,103.418114],[35.760712,103.417877],[35.76012,103.417557],[35.759979,103.417381],[35.759651,103.41674],[35.759491,103.41655],[35.758671,103.415916],[35.757431,103.415581],[35.757252,103.415482],[35.757038,103.415268],[35.756512,103.414574],[35.75589,103.414101],[35.755531,103.413559],[35.755131,103.413231],[35.75449,103.41291],[35.7537,103.412727],[35.753029,103.412468],[35.751961,103.4123],[35.751732,103.412338],[35.75153,103.412437],[35.750721,103.413139],[35.750191,103.413361],[35.748661,103.414337],[35.747501,103.415573],[35.747021,103.416161],[35.746319,103.416679],[35.74596,103.417007],[35.74577,103.417267],[35.745159,103.417717],[35.744869,103.418159],[35.74469,103.418793],[35.74456,103.418877],[35.744171,103.418907],[35.743889,103.419144],[35.74361,103.419609],[35.743511,103.41996],[35.743462,103.420349],[35.74345,103.420807],[35.743721,103.421707],[35.743698,103.42186],[35.743629,103.421928],[35.743401,103.421959],[35.742809,103.421829],[35.7416,103.421478],[35.741199,103.42128],[35.74094,103.421227],[35.74065,103.42131],[35.74012,103.421638],[35.739811,103.421738],[35.738621,103.421799],[35.737419,103.422371],[35.736851,103.422546],[35.736271,103.423141],[35.735371,103.423576],[35.734909,103.424309],[35.73457,103.42469],[35.733471,103.425323],[35.732941,103.425507],[35.732761,103.425659],[35.73243,103.426041],[35.731781,103.426521],[35.731392,103.426888],[35.73093,103.427017],[35.73019,103.427361],[35.729591,103.427727],[35.728901,103.427887],[35.727501,103.428978],[35.72707,103.429199],[35.726212,103.429367],[35.72541,103.430107],[35.725182,103.43026],[35.72477,103.430443],[35.723,103.431],[35.722721,103.430969],[35.72171,103.430527],[35.72142,103.430519],[35.720909,103.43058],[35.720711,103.430641],[35.719101,103.431473],[35.718399,103.43222],[35.718151,103.432373],[35.717541,103.432457],[35.717239,103.432411],[35.716431,103.432129],[35.716171,103.432137],[35.7155,103.432327],[35.714588,103.43293],[35.713051,103.43364],[35.71278,103.433823],[35.71246,103.434158],[35.712231,103.434334],[35.71172,103.434471],[35.711391,103.434441],[35.710972,103.434128],[35.710869,103.43399],[35.710831,103.433823],[35.71093,103.431198],[35.71101,103.430946],[35.7113,103.430458],[35.711399,103.430191],[35.711391,103.429947],[35.711239,103.429314],[35.711208,103.428047],[35.711151,103.427719],[35.710819,103.427368],[35.710091,103.426849],[35.70953,103.42601],[35.708981,103.425728],[35.708778,103.425507],[35.70842,103.424606],[35.708229,103.423592],[35.70797,103.42308],[35.707722,103.422737],[35.706871,103.422058],[35.706322,103.421387],[35.70499,103.419319],[35.7048,103.418739],[35.704361,103.416847],[35.703651,103.415848],[35.70327,103.41497],[35.703098,103.414879],[35.70266,103.414818],[35.702049,103.414467],[35.701721,103.414383],[35.701271,103.414291],[35.70076,103.414337],[35.700081,103.414261],[35.69939,103.413971],[35.69849,103.413681],[35.697868,103.413673],[35.697472,103.413559],[35.696949,103.413498],[35.696659,103.413551],[35.696331,103.413689],[35.696159,103.413696],[35.695,103.413429],[35.69334,103.41317],[35.692032,103.41304],[35.69128,103.41317],[35.690941,103.413109],[35.69067,103.412949],[35.690331,103.412468],[35.690182,103.412369],[35.687698,103.411743],[35.687191,103.411568],[35.68639,103.411217],[35.685081,103.41053],[35.684212,103.410477],[35.682892,103.410057],[35.68222,103.410103],[35.681419,103.41024],[35.680771,103.410057],[35.680248,103.410011],[35.67989,103.409798],[35.679691,103.409737],[35.679241,103.409889],[35.678841,103.41011],[35.678001,103.41021],[35.67762,103.410141],[35.676731,103.40963],[35.676571,103.409576],[35.6759,103.40979],[35.675289,103.410103],[35.675011,103.410103],[35.674641,103.410011],[35.674511,103.40992],[35.674179,103.409286],[35.67355,103.408478],[35.673241,103.407913],[35.672878,103.406868],[35.67276,103.406113],[35.672611,103.405769],[35.67205,103.40509],[35.671398,103.40477],[35.671242,103.40461],[35.67078,103.403748],[35.670349,103.403191],[35.669762,103.402283],[35.66938,103.401527],[35.667961,103.39978],[35.667419,103.399017],[35.666729,103.397881],[35.666481,103.397179],[35.666401,103.3964],[35.666401,103.396027],[35.6665,103.39534],[35.66684,103.394257],[35.666851,103.39389],[35.6661,103.392097],[35.665989,103.391739],[35.665932,103.391281],[35.66592,103.390427],[35.666031,103.389999],[35.66695,103.388039],[35.666988,103.387772],[35.666931,103.386757],[35.666962,103.386276],[35.667122,103.385788],[35.667679,103.38459],[35.667751,103.384331],[35.667721,103.384216],[35.667549,103.384087],[35.66613,103.383667],[35.665871,103.38353],[35.66489,103.382767],[35.664322,103.381897],[35.664261,103.381706],[35.664249,103.381287],[35.6642,103.381027],[35.664322,103.38092],[35.665871,103.378578],[35.666142,103.378319],[35.66671,103.378059],[35.666851,103.377937],[35.666889,103.377823],[35.66687,103.377693],[35.666512,103.37719],[35.666351,103.376846],[35.666328,103.376404],[35.666401,103.375977],[35.666561,103.375519],[35.66674,103.375221],[35.666988,103.374947],[35.66732,103.374748],[35.668049,103.374527],[35.668598,103.37394],[35.66864,103.373871],[35.66864,103.373657],[35.668331,103.373161],[35.668308,103.37291],[35.668442,103.372383],[35.668991,103.370827],[35.669281,103.370537],[35.669781,103.370399],[35.669899,103.370308],[35.67017,103.369781],[35.670681,103.369217],[35.670738,103.369003],[35.67075,103.368317],[35.671169,103.366959],[35.67131,103.366699],[35.67149,103.366508],[35.67197,103.366348],[35.672138,103.366158],[35.67226,103.365868],[35.672588,103.365303],[35.672779,103.364464],[35.673592,103.362717],[35.67384,103.362488],[35.674469,103.362373],[35.67466,103.362167],[35.674641,103.361969],[35.67429,103.361183],[35.674179,103.360779],[35.674141,103.360336],[35.674179,103.35997],[35.674278,103.35952],[35.6744,103.3592],[35.675159,103.357887],[35.675381,103.357407],[35.675671,103.356628],[35.67572,103.356117],[35.675522,103.354897],[35.675228,103.354187],[35.67519,103.353928],[35.67511,103.352631],[35.67495,103.351517],[35.674931,103.350708],[35.67498,103.349876],[35.675152,103.349289],[35.676109,103.348091],[35.676201,103.347801],[35.676189,103.347366],[35.67625,103.347],[35.67664,103.346359],[35.676708,103.346169],[35.676651,103.34594],[35.676479,103.345848],[35.67622,103.345863],[35.675591,103.346001],[35.675369,103.345947],[35.674358,103.34494],[35.674191,103.344566],[35.673908,103.343567],[35.673439,103.342529],[35.672691,103.341347],[35.672001,103.339569],[35.67157,103.338913],[35.67141,103.338219],[35.671101,103.337196],[35.671089,103.336029],[35.671391,103.335098],[35.67144,103.33448],[35.671391,103.334053],[35.671181,103.333214],[35.671169,103.332649],[35.671379,103.33062],[35.671589,103.32991],[35.671638,103.329498],[35.671589,103.329224],[35.670971,103.327377],[35.67094,103.326408],[35.671162,103.324913],[35.67104,103.323448],[35.670731,103.322311],[35.670158,103.321243],[35.670052,103.320953],[35.669651,103.319107],[35.669701,103.318359],[35.66983,103.317574],[35.670078,103.317001],[35.670559,103.316399],[35.671478,103.316109],[35.672039,103.315468],[35.672112,103.315041],[35.672001,103.314247],[35.672031,103.313904],[35.672371,103.312859],[35.672649,103.312218],[35.672852,103.31192],[35.673111,103.311699],[35.673901,103.31144],[35.674511,103.31105],[35.674591,103.310944],[35.674629,103.310707],[35.674511,103.310501],[35.674358,103.310379],[35.673752,103.310043],[35.673439,103.309769],[35.673,103.30909],[35.672859,103.308746],[35.672291,103.306664],[35.672249,103.30632],[35.672241,103.305237],[35.672031,103.30368],[35.67181,103.303261],[35.671211,103.302803],[35.671021,103.302429],[35.670952,103.302147],[35.670959,103.301697],[35.671268,103.30024],[35.671268,103.299927],[35.6712,103.299637],[35.67104,103.2994],[35.670189,103.298431],[35.669708,103.297737],[35.66906,103.29705],[35.668468,103.295937],[35.66814,103.295647],[35.667011,103.29483],[35.666752,103.294487],[35.66613,103.293007],[35.665619,103.291512],[35.665421,103.290428],[35.66547,103.289299],[35.66563,103.289001],[35.6661,103.288353],[35.666439,103.287956],[35.667191,103.287514],[35.667252,103.287369],[35.66721,103.287209],[35.666969,103.287086],[35.665951,103.287117],[35.66523,103.287567],[35.665001,103.287628],[35.664711,103.28759],[35.66431,103.287376],[35.664001,103.287308],[35.663181,103.287369],[35.662651,103.287308],[35.662441,103.287209],[35.662392,103.287086],[35.66243,103.286957],[35.662498,103.286911],[35.66312,103.287117],[35.663261,103.287079],[35.663288,103.286957],[35.663158,103.286827],[35.662258,103.286507],[35.661449,103.286011],[35.661442,103.285828],[35.661579,103.285767],[35.662231,103.286209],[35.662338,103.286217],[35.662361,103.286171],[35.662338,103.286049],[35.66177,103.285568],[35.661541,103.285301],[35.661201,103.284683],[35.66111,103.28434],[35.660938,103.282738],[35.6609,103.2826],[35.660751,103.282387],[35.660568,103.282318],[35.65966,103.282188],[35.659149,103.281898],[35.65765,103.281517],[35.65723,103.281487],[35.657101,103.281387],[35.65707,103.281288],[35.657101,103.281197],[35.65723,103.281128],[35.658131,103.281342],[35.658291,103.281258],[35.65831,103.281151],[35.658291,103.281067],[35.65818,103.281013],[35.65773,103.280991],[35.657372,103.280891],[35.656239,103.280273],[35.654949,103.279778],[35.654598,103.279572],[35.65456,103.279449],[35.654621,103.27935],[35.655392,103.279572],[35.65596,103.27951],[35.65641,103.279533],[35.65654,103.27948],[35.656582,103.279373],[35.656528,103.279259],[35.656471,103.279228],[35.655281,103.279137],[35.65514,103.279053],[35.65514,103.278923],[35.655182,103.278839],[35.655331,103.278748],[35.656681,103.278648],[35.656792,103.278557],[35.656761,103.278397],[35.656651,103.278313],[35.655998,103.278236],[35.655331,103.278297],[35.655258,103.278229],[35.655251,103.278137],[35.6553,103.278038],[35.65546,103.277946],[35.65675,103.27771],[35.65683,103.277557],[35.656811,103.277481],[35.6567,103.277397],[35.655861,103.277428],[35.65443,103.277191],[35.65427,103.277077],[35.654251,103.276917],[35.65448,103.276817],[35.65659,103.276543],[35.656731,103.276367],[35.656731,103.276268],[35.656681,103.276176],[35.656528,103.276077],[35.655151,103.27552],[35.65369,103.275146],[35.653419,103.275131],[35.653278,103.275177],[35.652969,103.275414],[35.652748,103.275414],[35.65258,103.275169],[35.652451,103.274719],[35.652321,103.27446],[35.651939,103.274063],[35.651451,103.273788],[35.651291,103.273598],[35.651299,103.27343],[35.65136,103.273361],[35.651501,103.273323],[35.651642,103.273369],[35.652271,103.273804],[35.65239,103.273811],[35.652481,103.273743],[35.6525,103.273628],[35.652458,103.273483],[35.65226,103.273148],[35.6521,103.272957],[35.651661,103.272659],[35.651211,103.272621],[35.65004,103.272881],[35.649658,103.273033],[35.649212,103.273361],[35.649109,103.273376],[35.648979,103.273323],[35.64819,103.272118],[35.646919,103.271004],[35.646561,103.270851],[35.64571,103.270798],[35.645481,103.270714],[35.64291,103.267601],[35.642479,103.267113],[35.641449,103.266518],[35.640148,103.265381],[35.639851,103.26535],[35.639332,103.26561],[35.638561,103.265511],[35.638519,103.265419],[35.638618,103.265297],[35.639278,103.265327],[35.639462,103.265289],[35.640018,103.264847],[35.64048,103.264709],[35.64053,103.264664],[35.640541,103.264526],[35.640461,103.264488],[35.640331,103.264511],[35.639488,103.264816],[35.639141,103.264877],[35.63884,103.264847],[35.637539,103.264397],[35.63736,103.26413],[35.636978,103.262703],[35.636829,103.262299],[35.63596,103.260696],[35.634201,103.25956],[35.633709,103.259323],[35.633259,103.259193],[35.633369,103.258347],[35.633419,103.257973],[35.63335,103.25753],[35.632938,103.256683],[35.631889,103.254807],[35.631321,103.253601],[35.630329,103.252037],[35.629211,103.251122],[35.627739,103.249153],[35.62553,103.245537],[35.62373,103.242867],[35.622391,103.240761],[35.620541,103.236931],[35.620201,103.236359],[35.618198,103.23378],[35.617821,103.233383],[35.616402,103.232117],[35.614368,103.230057],[35.612492,103.228554],[35.61097,103.227501],[35.61018,103.22702],[35.60989,103.226784],[35.60968,103.226479],[35.609032,103.225113],[35.608459,103.223633],[35.606361,103.217888],[35.60556,103.215599],[35.605331,103.214813],[35.605228,103.214073],[35.604889,103.211906],[35.604721,103.210388],[35.60458,103.209633],[35.604149,103.206146],[35.60376,103.203613],[35.6036,103.202927],[35.603359,103.202293],[35.603119,103.201691],[35.602638,103.200798],[35.601089,103.198578],[35.600658,103.198082],[35.599781,103.197357],[35.598999,103.196541],[35.597111,103.195717],[35.596088,103.194817],[35.59544,103.194504],[35.595081,103.19426],[35.59306,103.192612],[35.592621,103.192284],[35.59185,103.191849],[35.59042,103.190697],[35.590179,103.190697],[35.58989,103.19088],[35.588188,103.19265],[35.58741,103.193542],[35.584061,103.197113],[35.582069,103.199463],[35.58186,103.199707],[35.581558,103.199982],[35.575211,103.207153],[35.57468,103.207718],[35.57449,103.207787],[35.57439,103.207703],[35.5728,103.204857],[35.57233,103.203918],[35.571621,103.201767],[35.571049,103.200562],[35.567841,103.195183],[35.566792,103.19313],[35.56625,103.191948],[35.564529,103.187828],[35.56329,103.185181],[35.562019,103.182838],[35.56052,103.180397],[35.55962,103.179077],[35.556969,103.175499],[35.55489,103.17289],[35.550018,103.166527],[35.548321,103.164391],[35.5476,103.163391],[35.546902,103.162338],[35.545528,103.16008],[35.543041,103.15567],[35.54232,103.15464],[35.541561,103.153687],[35.54073,103.152809],[35.539799,103.152023],[35.538818,103.151321],[35.535782,103.149399],[35.534851,103.148666],[35.533989,103.147789],[35.533211,103.146782],[35.532539,103.145638],[35.53196,103.14431],[35.530941,103.141441],[35.530281,103.140083],[35.529461,103.138878],[35.526112,103.134903],[35.5242,103.13282],[35.523232,103.132057],[35.521309,103.13089],[35.520531,103.130219],[35.51989,103.129433],[35.519241,103.128273],[35.51741,103.124367],[35.516689,103.1231],[35.514229,103.119591],[35.5135,103.118378],[35.512829,103.117073],[35.511581,103.114212],[35.510941,103.1129],[35.510281,103.111717],[35.509041,103.109848],[35.505951,103.106201],[35.505112,103.104973],[35.50441,103.103653],[35.50386,103.102333],[35.50346,103.101013],[35.503189,103.099716],[35.502399,103.094597],[35.502201,103.093712],[35.501808,103.092293],[35.501389,103.090981],[35.50058,103.08902],[35.499882,103.087723],[35.495811,103.081123],[35.48962,103.071373],[35.488949,103.070259],[35.488369,103.069061],[35.487919,103.067871],[35.487572,103.066711],[35.48708,103.064552],[35.486481,103.062363],[35.486,103.060966],[35.485378,103.059608],[35.484631,103.058342],[35.483799,103.05722],[35.478809,103.051376],[35.47821,103.050323],[35.477829,103.049171],[35.47768,103.047943],[35.477772,103.045326],[35.47773,103.043961],[35.47747,103.042709],[35.477051,103.041588],[35.476521,103.040527],[35.47591,103.03965],[35.47348,103.036369],[35.473091,103.035751],[35.472778,103.035004],[35.472481,103.034416],[35.47213,103.033684],[35.471741,103.03286],[35.471352,103.031998],[35.470959,103.03112],[35.47057,103.030228],[35.4702,103.029404],[35.469872,103.028671],[35.469601,103.028069],[35.469429,103.02774],[35.469158,103.027458],[35.46896,103.027069],[35.468651,103.026581],[35.46825,103.025993],[35.467819,103.025383],[35.467369,103.024727],[35.4669,103.023933],[35.466431,103.022949],[35.465912,103.021828],[35.465328,103.020729],[35.46468,103.019623],[35.464008,103.018539],[35.463291,103.017517],[35.462559,103.016533],[35.461849,103.015556],[35.46114,103.014618],[35.46048,103.013733],[35.459919,103.012947],[35.45927,103.012123],[35.458549,103.011261],[35.457821,103.010536],[35.457119,103.009933],[35.456459,103.009354],[35.45591,103.008858],[35.455589,103.008537],[35.455299,103.008209],[35.45509,103.00795],[35.454781,103.007591],[35.454411,103.007004],[35.45396,103.00631],[35.45343,103.005493],[35.452881,103.004639],[35.45229,103.003723],[35.45166,103.002747],[35.450989,103.001732],[35.450352,103.000763],[35.449749,102.999847],[35.449181,102.99894],[35.448589,102.998016],[35.448009,102.997017],[35.44743,102.995979],[35.44685,102.994904],[35.446331,102.993752],[35.44582,102.992622],[35.44537,102.991463],[35.44492,102.990227],[35.444489,102.988983],[35.44408,102.987747],[35.44368,102.986572],[35.443291,102.985443],[35.442909,102.984306],[35.442478,102.983147],[35.442039,102.982018],[35.441681,102.981148],[35.44136,102.980476],[35.440971,102.97966],[35.440491,102.978683],[35.439949,102.977654],[35.439381,102.976646],[35.43877,102.975662],[35.438099,102.97467],[35.43742,102.97364],[35.436722,102.97261],[35.436008,102.971558],[35.435322,102.970543],[35.43462,102.969528],[35.433941,102.968452],[35.4333,102.967262],[35.43269,102.966011],[35.43211,102.964684],[35.43158,102.963417],[35.431,102.962303],[35.430302,102.961357],[35.429562,102.960564],[35.428768,102.959732],[35.427952,102.958832],[35.42709,102.957909],[35.426281,102.956879],[35.425621,102.955727],[35.425098,102.954536],[35.424549,102.953484],[35.423809,102.952728],[35.422932,102.952316],[35.422001,102.952164],[35.421009,102.951927],[35.420071,102.951408],[35.419189,102.950607],[35.418491,102.94957],[35.418018,102.94838],[35.417789,102.947189],[35.417782,102.946098],[35.41782,102.945053],[35.4179,102.944054],[35.417839,102.943031],[35.417629,102.941994],[35.417309,102.94101],[35.41695,102.940071],[35.416561,102.939163],[35.416069,102.938316],[35.415401,102.937714],[35.414631,102.937431],[35.41383,102.937317],[35.413139,102.937134],[35.412491,102.936829],[35.411789,102.936691],[35.4114,102.936707],[35.411301,102.936707],[35.411072,102.93676],[35.41066,102.936859],[35.409988,102.937027],[35.409199,102.937218],[35.408352,102.937424],[35.407452,102.937622],[35.406528,102.937851],[35.405682,102.938026],[35.404869,102.937973],[35.404079,102.937561],[35.403461,102.93679],[35.403118,102.935806],[35.403011,102.934837],[35.403049,102.933891],[35.40324,102.932953],[35.403542,102.932159],[35.40387,102.931419],[35.40424,102.930603],[35.40443,102.929657],[35.404491,102.928612],[35.404388,102.927582],[35.404121,102.926682],[35.403759,102.925926],[35.403309,102.925323],[35.402802,102.92482],[35.40226,102.924454],[35.401581,102.924118],[35.400791,102.923843],[35.399948,102.923599],[35.399151,102.9235],[35.39827,102.923492],[35.39735,102.923553],[35.396461,102.923607],[35.39558,102.923599],[35.394718,102.923477],[35.39389,102.923233],[35.39307,102.922943],[35.392231,102.922623],[35.39143,102.92234],[35.39061,102.921997],[35.389771,102.921677],[35.388908,102.921349],[35.388069,102.921028],[35.387199,102.9207],[35.386341,102.920349],[35.385529,102.919762],[35.38496,102.918961],[35.384529,102.918007],[35.384071,102.917122],[35.3834,102.916473],[35.382599,102.916077],[35.38166,102.915848],[35.380772,102.915627],[35.37994,102.915367],[35.379131,102.915009],[35.378422,102.914597],[35.377838,102.914192],[35.37468,102.90918],[35.374611,102.908829],[35.374439,102.908287],[35.374298,102.907402],[35.374321,102.906273],[35.374531,102.905228],[35.37495,102.904221],[35.375511,102.903107],[35.3759,102.90184],[35.375999,102.900543],[35.375912,102.899307],[35.375759,102.898193],[35.37561,102.897133],[35.375469,102.89608],[35.375301,102.894974],[35.374969,102.893929],[35.374378,102.89315],[35.37368,102.892708],[35.372768,102.892517],[35.371868,102.892357],[35.370911,102.892181],[35.36985,102.891998],[35.368778,102.891777],[35.367809,102.891579],[35.366951,102.891083],[35.366268,102.890213],[35.365891,102.889053],[35.365669,102.888008],[35.36544,102.887177],[35.36515,102.886414],[35.36488,102.885513],[35.36478,102.884354],[35.364731,102.883034],[35.364552,102.88176],[35.364288,102.880661],[35.364029,102.879623],[35.363899,102.878464],[35.364021,102.877327],[35.364441,102.876213],[35.364979,102.875038],[35.365551,102.873749],[35.366169,102.872398],[35.366798,102.870979],[35.36742,102.869614],[35.368019,102.868248],[35.368549,102.866814],[35.368858,102.865257],[35.368961,102.86364],[35.368801,102.862106],[35.368431,102.860733],[35.368,102.859467],[35.367599,102.858261],[35.36639,102.854156],[35.365791,102.853081],[35.364971,102.852219],[35.363811,102.851501],[35.363041,102.850388],[35.362431,102.84906],[35.362061,102.847656],[35.36227,102.846184],[35.362411,102.844818],[35.36026,102.837929],[35.359489,102.837067],[35.35873,102.836166],[35.35833,102.834877],[35.358231,102.833473],[35.35804,102.83223],[35.357498,102.831139],[35.35677,102.830231],[35.35622,102.829117],[35.355942,102.827766],[35.355701,102.826424],[35.35524,102.825127],[35.35461,102.823883],[35.35376,102.822739],[35.352798,102.821808],[35.35183,102.821068],[35.35104,102.820137],[35.350651,102.81884],[35.350788,102.81739],[35.35146,102.816071],[35.352291,102.814774],[35.352989,102.813347],[35.353378,102.811852],[35.353401,102.810509],[35.353149,102.809212],[35.35268,102.807991],[35.35199,102.806923],[35.351181,102.805923],[35.35033,102.804901],[35.349461,102.803833],[35.348579,102.802696],[35.347729,102.801422],[35.346909,102.800049],[35.346119,102.798599],[35.34531,102.797157],[35.344509,102.795769],[35.34375,102.794441],[35.342979,102.793121],[35.342239,102.791832],[35.341431,102.790657],[35.34045,102.789818],[35.339298,102.789383],[35.3381,102.789253],[35.336971,102.789108],[35.33593,102.788727],[35.334961,102.787979],[35.334099,102.786957],[35.333279,102.785858],[35.332409,102.784927],[35.331421,102.784317],[35.330471,102.784027],[35.329521,102.783981],[35.32848,102.783913],[35.3274,102.783783],[35.326351,102.783684],[35.325291,102.783577],[35.32428,102.783379],[35.32341,102.782951],[35.322651,102.782417],[35.321892,102.781883],[35.32111,102.781273],[35.320259,102.780647],[35.319302,102.779938],[35.318272,102.779167],[35.317268,102.778442],[35.316319,102.777733],[35.31538,102.777039],[35.314579,102.776443],[35.313789,102.775848],[35.313019,102.775261],[35.31218,102.774643],[35.311279,102.773972],[35.310329,102.773247],[35.309299,102.772476],[35.308281,102.771721],[35.30727,102.770973],[35.306221,102.770241],[35.305149,102.76963],[35.303982,102.769386],[35.302799,102.769669],[35.301762,102.770378],[35.300961,102.771469],[35.300449,102.772797],[35.300171,102.774277],[35.29998,102.775772],[35.29966,102.777222],[35.299042,102.778503],[35.298061,102.779442],[35.29686,102.779953],[35.29562,102.780006],[35.294418,102.77993],[35.293289,102.779846],[35.292091,102.779808],[35.290871,102.780098],[35.289761,102.780853],[35.288792,102.781937],[35.287811,102.783127],[35.286819,102.784317],[35.285671,102.785278],[35.284519,102.785851],[35.283691,102.786346],[35.282909,102.786987],[35.28215,102.787903],[35.281509,102.789078],[35.28088,102.790298],[35.27998,102.791092],[35.279041,102.791397],[35.278191,102.791832],[35.277489,102.792702],[35.276871,102.793739],[35.27599,102.794518],[35.275082,102.795197],[35.274281,102.796066],[35.273659,102.797142],[35.27285,102.797981],[35.271969,102.798538],[35.27113,102.799278],[35.270439,102.800369],[35.27002,102.801697],[35.269691,102.803078],[35.269009,102.804176],[35.26833,102.80526],[35.267719,102.806412],[35.267151,102.807663],[35.26646,102.808907],[35.265461,102.809837],[35.26432,102.810318],[35.263149,102.810349],[35.262001,102.810471],[35.260948,102.810944],[35.260021,102.811798],[35.259159,102.813004],[35.258171,102.814133],[35.256962,102.81472],[35.255711,102.814743],[35.254459,102.814583],[35.253288,102.814636],[35.252251,102.815086],[35.251461,102.81588],[35.250809,102.81662],[35.25013,102.817413],[35.24934,102.818222],[35.248451,102.819069],[35.247459,102.819939],[35.246399,102.820847],[35.2453,102.821823],[35.24419,102.822777],[35.243111,102.823723],[35.24213,102.824547],[35.241241,102.825233],[35.240318,102.825447],[35.23938,102.825203],[35.238338,102.824837],[35.237228,102.824516],[35.23616,102.824661],[35.235271,102.82534],[35.23457,102.826111],[35.23394,102.826828],[35.23325,102.827423],[35.232368,102.827667],[35.23151,102.827499],[35.230751,102.826981],[35.22998,102.826317],[35.229229,102.825653],[35.2285,102.825111],[35.227921,102.824867],[35.227428,102.824753],[35.226891,102.824638],[35.226311,102.824516],[35.225788,102.824364],[35.2253,102.824142],[35.224899,102.823929],[35.224579,102.823761],[35.224289,102.823593],[35.223721,102.823593],[35.223019,102.824867],[35.22028,102.823959],[35.219189,102.82222],[35.219341,102.820396],[35.217682,102.819847],[35.216991,102.819962],[35.216461,102.820084],[35.216099,102.820137],[35.21553,102.820168],[35.214588,102.82019],[35.212101,102.820183],[35.211349,102.820267],[35.210251,102.820648],[35.209091,102.821487],[35.20895,102.821457],[35.20776,102.822563],[35.207409,102.822762],[35.206841,102.82299],[35.20562,102.823189],[35.205009,102.823189],[35.203999,102.823151],[35.20266,102.82312],[35.20145,102.822144],[35.19294,102.825737],[35.191181,102.825211],[35.18959,102.824623],[35.18874,102.823799],[35.187778,102.822731],[35.187222,102.822189],[35.186218,102.821831],[35.18605,102.821823],[35.185322,102.821877],[35.184959,102.821877],[35.184441,102.821777],[35.18425,102.821716],[35.182701,102.820602],[35.182388,102.82045],[35.181721,102.820358],[35.180901,102.820633],[35.180462,102.820976],[35.180199,102.821297],[35.17981,102.822037],[35.179729,102.822243],[35.179531,102.822861],[35.17952,102.824043],[35.177551,102.824539],[35.176521,102.824928],[35.169189,102.832947],[35.168301,102.831947],[35.167881,102.832352],[35.16703,102.833344],[35.166321,102.834084],[35.165489,102.834763],[35.164631,102.835503],[35.16338,102.836906],[35.162361,102.838348],[35.16256,102.839882],[35.156368,102.845108],[35.15435,102.845139],[35.153439,102.845741],[35.152439,102.846649],[35.15229,102.846764],[35.151039,102.847153],[35.14999,102.847733],[35.148682,102.84922],[35.144951,102.850227],[35.143131,102.848869],[35.142151,102.848541],[35.140621,102.848083],[35.1395,102.847763],[35.138168,102.847656],[35.137821,102.847679],[35.136589,102.847939],[35.13625,102.848083],[35.134949,102.848778],[35.13311,102.849907],[35.130322,102.850929],[35.12952,102.851608],[35.128719,102.85257],[35.127361,102.853859],[35.126019,102.855324],[35.114201,102.858513],[35.114029,102.860222],[35.113811,102.860641],[35.11343,102.861794],[35.11274,102.863426],[35.111851,102.86483],[35.110458,102.866867],[35.110008,102.867348],[35.108829,102.868202],[35.106941,102.869392],[35.1059,102.870377],[35.105209,102.871582],[35.104801,102.872726],[35.10276,102.878822],[35.101971,102.881264],[35.101219,102.882874],[35.100349,102.884193],[35.09911,102.886208],[35.09874,102.887062],[35.098228,102.888268],[35.097759,102.889137],[35.09724,102.889877],[35.096531,102.890739],[35.09597,102.891609],[35.095181,102.893143],[35.094181,102.894974],[35.093029,102.896812],[35.09185,102.898552],[35.091179,102.899857],[35.09074,102.90136],[35.09066,102.902786],[35.090691,102.903732],[35.090698,102.904198],[35.090401,102.905327],[35.090199,102.905724],[35.089939,102.906036],[35.089359,102.906487],[35.088699,102.906723],[35.088348,102.906731],[35.08746,102.906471],[35.086861,102.906021],[35.085949,102.905281],[35.085789,102.905167],[35.084629,102.90464],[35.084122,102.904533],[35.083241,102.904503],[35.08252,102.904678],[35.082439,102.905113],[35.080551,102.905243],[35.080002,102.905342],[35.07943,102.905388],[35.078529,102.905533],[35.077862,102.905724],[35.07674,102.906197],[35.076092,102.906303],[35.075779,102.906281],[35.075321,102.906151],[35.074951,102.905998],[35.074261,102.905907],[35.073589,102.905968],[35.073021,102.906273],[35.0728,102.906464],[35.07222,102.907021],[35.07185,102.907333],[35.070881,102.907707],[35.07037,102.90773],[35.069679,102.907471],[35.069519,102.907372],[35.06921,102.907112],[35.06815,102.905968],[35.067699,102.905647],[35.066841,102.905418],[35.066139,102.905472],[35.065319,102.905853],[35.06353,102.906998],[35.060638,102.908791],[35.059471,102.909378],[35.05872,102.909523],[35.057129,102.909554],[35.05666,102.909569],[35.055828,102.909561],[35.055069,102.909683],[35.05476,102.909767],[35.054298,102.909988],[35.053692,102.910393],[35.053219,102.910629],[35.052132,102.911293],[35.05164,102.911552],[35.051029,102.911957],[35.050388,102.9123],[35.049751,102.912727],[35.049061,102.913116],[35.0485,102.913307],[35.047729,102.91349],[35.04673,102.913612],[35.045731,102.913612],[35.045341,102.913628],[35.04422,102.91391],[35.043549,102.914284],[35.043388,102.914413],[35.042709,102.915176],[35.042332,102.915733],[35.041721,102.916733],[35.04084,102.918243],[35.040649,102.918663],[35.04018,102.919487],[35.03981,102.920067],[35.039669,102.920258],[35.038979,102.920837],[35.034828,102.92321],[35.034069,102.923576],[35.033489,102.923683],[35.032349,102.923714],[35.031311,102.924141],[35.03067,102.924637],[35.030319,102.92485],[35.029362,102.925087],[35.028751,102.925011],[35.027981,102.924629],[35.02702,102.924057],[35.02623,102.923759],[35.025589,102.923683],[35.025311,102.923691],[35.02446,102.924072],[35.023602,102.924522],[35.023251,102.924591],[35.022881,102.924622],[35.022148,102.924583],[35.021389,102.924629],[35.020828,102.924843],[35.020691,102.924896],[35.020302,102.925171],[35.019508,102.925797],[35.018921,102.926018],[35.017399,102.926132],[35.017029,102.926201],[35.01582,102.92659],[35.015659,102.926613],[35.014999,102.926613],[35.0144,102.926361],[35.01395,102.926071],[35.013599,102.925758],[35.01334,102.925507],[35.01223,102.924316],[35.011372,102.923477],[35.010792,102.922783],[35.010441,102.922287],[35.01025,102.921921],[35.01001,102.921494],[35.00967,102.9207],[35.008801,102.918907],[35.008308,102.917824],[35.007332,102.915756],[35.005859,102.912498],[35.00528,102.91127],[35.004841,102.910263],[35.004608,102.909851],[35.00452,102.909607],[35.00441,102.909309],[35.004002,102.908371],[35.003311,102.906532],[35.002911,102.905418],[35.00272,102.904968],[35.002331,102.904541],[35.00214,102.904472],[35.001499,102.904503],[35.000359,102.904617],[34.999981,102.904694],[34.998661,102.905273],[34.99477,102.905273],[34.993271,102.904968],[34.993111,102.906036],[34.993172,102.906326],[34.993172,102.906883],[34.993061,102.907677],[34.992901,102.9077],[34.992901,102.907707],[34.99292,102.907784],[34.992962,102.908218],[34.993011,102.908371],[34.99297,102.908592],[34.992722,102.908707],[34.99202,102.90873],[34.990101,102.908607],[34.989811,102.908546],[34.98624,102.908333],[34.97057,102.907372],[34.970188,102.907257],[34.96883,102.907173],[34.968571,102.907097],[34.968449,102.906738],[34.968349,102.906082],[34.96822,102.905457],[34.967999,102.904533],[34.967899,102.904167],[34.967709,102.903862],[34.967522,102.903618],[34.967319,102.90345],[34.966942,102.903412],[34.96677,102.903374],[34.966469,102.903259],[34.966099,102.903061],[34.965698,102.902763],[34.96529,102.902351],[34.965,102.90197],[34.964722,102.90155],[34.96365,102.899529],[34.96339,102.899071],[34.96312,102.898552],[34.962379,102.897202],[34.961761,102.896187],[34.961559,102.895844],[34.961151,102.895271],[34.960979,102.894951],[34.96072,102.894524],[34.960529,102.894287],[34.960339,102.893967],[34.958981,102.892014],[34.958031,102.890839],[34.957039,102.889557],[34.956711,102.889183],[34.954849,102.886749],[34.954552,102.886398],[34.95417,102.885887],[34.953442,102.884987],[34.95295,102.884338],[34.95298,102.884361],[34.952621,102.883888],[34.95232,102.883553],[34.950809,102.881683],[34.949909,102.880409],[34.949902,102.880363],[34.949459,102.879562],[34.949249,102.879082],[34.948891,102.878151],[34.94838,102.876427],[34.94825,102.875931],[34.94809,102.875397],[34.947899,102.874863],[34.947491,102.873863],[34.94685,102.872551],[34.946629,102.872147],[34.945992,102.871132],[34.945702,102.870758],[34.945068,102.870163],[34.944729,102.869919],[34.944359,102.869698],[34.94392,102.869476],[34.943031,102.869164],[34.9426,102.86898],[34.94141,102.868584],[34.940441,102.868263],[34.940182,102.868202],[34.94017,102.868172],[34.93821,102.867638],[34.92548,102.864548],[34.924671,102.864166],[34.924419,102.864082],[34.924049,102.864014],[34.923771,102.863907],[34.921612,102.863007],[34.920521,102.862503],[34.919701,102.862137],[34.919361,102.862007],[34.919041,102.861908],[34.91869,102.861847],[34.917961,102.861893],[34.917591,102.861954],[34.91721,102.862061],[34.916382,102.862396],[34.915192,102.862839],[34.91394,102.863182],[34.90559,102.863182],[34.905281,102.86306],[34.90493,102.862877],[34.904579,102.86264],[34.904289,102.862381],[34.90379,102.861794],[34.903591,102.861473],[34.903091,102.860428],[34.902969,102.860107],[34.902748,102.859421],[34.90255,102.858582],[34.902401,102.857788],[34.90229,102.856934],[34.90226,102.855743],[34.902302,102.854851],[34.902699,102.843513],[34.902748,102.843033],[34.902802,102.842773],[34.902882,102.842484],[34.902969,102.842239],[34.903091,102.841988],[34.903259,102.841743],[34.90345,102.841476],[34.903641,102.841309],[34.903839,102.841148],[34.90427,102.840889],[34.90451,102.840767],[34.904919,102.840477],[34.90519,102.840347],[34.90554,102.840111],[34.905949,102.839867],[34.9062,102.839684],[34.906399,102.8395],[34.906651,102.839073],[34.90675,102.838837],[34.906841,102.838516],[34.906841,102.838203],[34.906799,102.837883],[34.906731,102.837639],[34.906609,102.837341],[34.906422,102.837128],[34.9062,102.836983],[34.905891,102.836929],[34.905659,102.837013],[34.905479,102.837128],[34.905289,102.837334],[34.904961,102.837769],[34.9048,102.837929],[34.90456,102.838112],[34.904369,102.838158],[34.90416,102.838158],[34.90387,102.838058],[34.903702,102.837914],[34.903561,102.8377],[34.90345,102.83744],[34.9034,102.837181],[34.903358,102.8367],[34.903389,102.834],[34.90337,102.833641],[34.903309,102.833313],[34.90316,102.833023],[34.902889,102.832733],[34.902481,102.832588],[34.902111,102.83255],[34.901699,102.832443],[34.90139,102.832268],[34.901291,102.832199],[34.90126,102.832207],[34.900959,102.832062],[34.90073,102.831909],[34.900188,102.831413],[34.899799,102.830994],[34.899551,102.830391],[34.89954,102.829742],[34.89975,102.828796],[34.900291,102.826729],[34.900459,102.826141],[34.900791,102.825249],[34.901192,102.824402],[34.901939,102.823067],[34.902519,102.821953],[34.902809,102.820869],[34.902828,102.820053],[34.90266,102.818581],[34.90242,102.817253],[34.902142,102.816521],[34.90155,102.816017],[34.901119,102.815987],[34.90094,102.816032],[34.900219,102.81646],[34.89735,102.818604],[34.89658,102.819038],[34.896309,102.81913],[34.895592,102.81926],[34.89455,102.81913],[34.894299,102.819038],[34.894279,102.819054],[34.893848,102.818817],[34.891331,102.817307],[34.890549,102.816818],[34.88974,102.816223],[34.889099,102.81562],[34.88662,102.813263],[34.885929,102.812698],[34.885239,102.812553],[34.883179,102.812737],[34.882179,102.812881],[34.881531,102.813217],[34.880081,102.814484],[34.879219,102.815117],[34.87833,102.815407],[34.876251,102.815826],[34.87524,102.816177],[34.87442,102.816704],[34.8736,102.817513],[34.871979,102.819473],[34.871269,102.820374],[34.87011,102.822029],[34.868389,102.825363],[34.8675,102.827492],[34.867031,102.82843],[34.866348,102.829491],[34.865631,102.830368],[34.86274,102.833412],[34.862671,102.833473],[34.862171,102.833946],[34.861832,102.834343],[34.86105,102.835129],[34.8605,102.835587],[34.859859,102.836037],[34.859131,102.836388],[34.85902,102.836411],[34.85841,102.836441],[34.856838,102.836319],[34.85606,102.836372],[34.855518,102.83654],[34.854542,102.836899],[34.85199,102.837784],[34.851212,102.838028],[34.850399,102.838058],[34.849541,102.837807],[34.847771,102.83709],[34.846642,102.836693],[34.845551,102.836502],[34.84444,102.836479],[34.84346,102.836617],[34.842529,102.836884],[34.838779,102.838303],[34.837971,102.838623],[34.836941,102.838989],[34.836239,102.839203],[34.835381,102.839401],[34.834461,102.839531],[34.83366,102.839577],[34.832821,102.839577],[34.83197,102.8395],[34.831059,102.839348],[34.830219,102.839012],[34.82938,102.838501],[34.8284,102.837921],[34.827801,102.837502],[34.828339,102.837227],[34.8283,102.836708],[34.827179,102.836128],[34.827049,102.835678],[34.826839,102.834747],[34.826328,102.83239],[34.82626,102.831909],[34.826221,102.831367],[34.825481,102.809509],[34.82452,102.804512],[34.824749,102.800652],[34.82336,102.796608],[34.823029,102.794762],[34.822659,102.792732],[34.82222,102.790337],[34.82225,102.789932],[34.82235,102.789238],[34.822399,102.788689],[34.822479,102.788254],[34.822819,102.78569],[34.82291,102.78476],[34.822922,102.784363],[34.822948,102.783829],[34.82283,102.782516],[34.822781,102.782173],[34.822762,102.781914],[34.822659,102.781242],[34.822479,102.78022],[34.822361,102.77935],[34.822289,102.778992],[34.822231,102.77858],[34.8218,102.77594],[34.82169,102.775124],[34.82148,102.773903],[34.821281,102.772614],[34.821251,102.772308],[34.821159,102.771797],[34.82077,102.769218],[34.820641,102.768478],[34.820499,102.767776],[34.82032,102.767067],[34.82,102.766113],[34.81992,102.765938],[34.81881,102.76329],[34.817699,102.760696],[34.817261,102.759697],[34.816891,102.758812],[34.816559,102.758057],[34.816399,102.757668],[34.816101,102.757004],[34.815361,102.755127],[34.81501,102.754242],[34.814602,102.753212],[34.814301,102.752411],[34.81414,102.752022],[34.814011,102.751694],[34.813309,102.749931],[34.812111,102.746841],[34.81181,102.746033],[34.811581,102.745331],[34.811359,102.744476],[34.811249,102.743782],[34.811211,102.743439],[34.811161,102.743103],[34.811131,102.742279],[34.81115,102.741661],[34.811211,102.740913],[34.81134,102.740082],[34.81142,102.739647],[34.811649,102.738876],[34.811939,102.738121],[34.812569,102.736847],[34.812939,102.736191],[34.813702,102.734894],[34.81395,102.734512],[34.814281,102.73394],[34.814442,102.733627],[34.814701,102.733047],[34.814831,102.732674],[34.814941,102.732277],[34.815048,102.731667],[34.815029,102.731659],[34.815189,102.730492],[34.81522,102.730164],[34.815319,102.729599],[34.815411,102.728943],[34.81546,102.72863],[34.815491,102.728317],[34.815609,102.727676],[34.815632,102.727371],[34.815681,102.727142],[34.815811,102.726151],[34.81591,102.725548],[34.815979,102.724693],[34.815971,102.723831],[34.815922,102.723358],[34.81583,102.722801],[34.815731,102.722366],[34.81546,102.72139],[34.813671,102.702057],[34.813679,102.701981],[34.813641,102.701767],[34.813622,102.701439],[34.81358,102.701263],[34.81353,102.700867],[34.81329,102.699417],[34.813221,102.699097],[34.813171,102.698761],[34.812931,102.697617],[34.812698,102.696899],[34.81258,102.696678],[34.81245,102.696259],[34.811798,102.69503],[34.810711,102.6931],[34.80978,102.691353],[34.80933,102.69059],[34.808609,102.689217],[34.807819,102.687881],[34.807301,102.687149],[34.806492,102.686287],[34.806389,102.68618],[34.805779,102.685753],[34.804722,102.685097],[34.80024,102.682579],[34.798962,102.681671],[34.798031,102.68074],[34.797771,102.68045],[34.796791,102.679237],[34.795681,102.677917],[34.794701,102.676682],[34.793739,102.675369],[34.792339,102.673683],[34.79084,102.672112],[34.790329,102.671608],[34.789688,102.671013],[34.78886,102.67012],[34.7882,102.669006],[34.787392,102.667397],[34.786709,102.666054],[34.786228,102.665031],[34.785648,102.663887],[34.785099,102.662712],[34.784191,102.660843],[34.783691,102.659462],[34.783642,102.659241],[34.783249,102.657211],[34.783051,102.656487],[34.782711,102.65522],[34.782429,102.653969],[34.781731,102.651283],[34.781391,102.649628],[34.78133,102.647057],[34.7812,102.644676],[34.781181,102.643707],[34.781181,102.641258],[34.78093,102.639847],[34.780602,102.638451],[34.78027,102.637558],[34.779869,102.636703],[34.77692,102.631866],[34.77594,102.630173],[34.775299,102.629143],[34.774818,102.628311],[34.774311,102.627243],[34.773731,102.625763],[34.773201,102.624527],[34.77282,102.623756],[34.77142,102.62188],[34.77108,102.621521],[34.770821,102.621147],[34.77055,102.620667],[34.770279,102.620064],[34.769798,102.619324],[34.769329,102.618683],[34.767971,102.617058],[34.767368,102.616386],[34.766109,102.615143],[34.765209,102.614143],[34.764912,102.613869],[34.764641,102.613586],[34.763229,102.611977],[34.762489,102.611],[34.76207,102.610291],[34.761742,102.609581],[34.76152,102.6092],[34.760941,102.608047],[34.759949,102.60598],[34.75972,102.605438],[34.75909,102.604111],[34.75845,102.603073],[34.75753,102.601501],[34.756649,102.600288],[34.75621,102.599533],[34.75499,102.597313],[34.75415,102.595909],[34.753601,102.594887],[34.753201,102.593872],[34.753159,102.593674],[34.75293,102.591904],[34.752861,102.590759],[34.752949,102.589401],[34.753078,102.588303],[34.75351,102.586922],[34.75565,102.579758],[34.75584,102.578217],[34.755981,102.576653],[34.756039,102.576088],[34.75629,102.574623],[34.7565,102.57196],[34.756531,102.571327],[34.75676,102.568359],[34.756779,102.567932],[34.75708,102.564949],[34.757191,102.564148],[34.757309,102.563568],[34.75753,102.56205],[34.757702,102.560501],[34.757729,102.559914],[34.75769,102.55909],[34.757641,102.558891],[34.75716,102.557549],[34.756889,102.557037],[34.75618,102.556236],[34.755322,102.55571],[34.754429,102.555428],[34.753979,102.555321],[34.752979,102.555206],[34.750229,102.554993],[34.749149,102.554863],[34.74852,102.554703],[34.747108,102.554283],[34.746811,102.554123],[34.746132,102.55365],[34.745998,102.553543],[34.745251,102.552658],[34.74506,102.55217],[34.744949,102.55172],[34.744862,102.551529],[34.74464,102.550888],[34.744049,102.549103],[34.743271,102.547394],[34.742561,102.546082],[34.74268,102.54583],[34.74239,102.545258],[34.742222,102.544983],[34.741859,102.544289],[34.741718,102.543991],[34.74144,102.54348],[34.740608,102.541634],[34.740349,102.540916],[34.739979,102.539757],[34.739399,102.537689],[34.73888,102.535637],[34.73838,102.533928],[34.738071,102.532784],[34.73782,102.531952],[34.737358,102.530571],[34.73682,102.529381],[34.73637,102.52861],[34.736069,102.528183],[34.73502,102.526894],[34.73431,102.526207],[34.733829,102.525833],[34.73296,102.525223],[34.732029,102.524673],[34.731319,102.524223],[34.726311,102.521217],[34.723518,102.519577],[34.722172,102.518883],[34.72105,102.518623],[34.719391,102.51841],[34.717651,102.518143],[34.717461,102.518097],[34.71558,102.517487],[34.71307,102.51667],[34.709629,102.515488],[34.708309,102.515083],[34.707741,102.514877],[34.70652,102.51416],[34.705318,102.513],[34.704071,102.511543],[34.703339,102.510597],[34.70274,102.509758],[34.702259,102.508583],[34.70203,102.507317],[34.70182,102.505287],[34.701599,102.502953],[34.70126,102.500847],[34.700729,102.498833],[34.700359,102.49704],[34.700291,102.49659],[34.700001,102.494347],[34.699799,102.493042],[34.69915,102.491188],[34.698078,102.490112],[34.696999,102.489166],[34.695801,102.488373],[34.69511,102.488029],[34.694759,102.4879],[34.69408,102.487679],[34.692692,102.487457],[34.690979,102.487511],[34.689369,102.487808],[34.68774,102.488319],[34.685471,102.489143],[34.683971,102.489433],[34.68269,102.489357],[34.682259,102.489273],[34.68082,102.488647],[34.679729,102.487808],[34.678478,102.486389],[34.67598,102.483437],[34.674229,102.4813],[34.67318,102.479584],[34.672508,102.4786],[34.67181,102.478119],[34.671429,102.477966],[34.671051,102.477898],[34.668739,102.477768],[34.667679,102.477547],[34.667271,102.477371],[34.665409,102.476357],[34.664761,102.476143],[34.662941,102.475693],[34.66077,102.475197],[34.659939,102.474907],[34.659328,102.474617],[34.65836,102.47403],[34.657051,102.473282],[34.65633,102.472839],[34.655609,102.472458],[34.654861,102.472214],[34.65448,102.472153],[34.654079,102.47213],[34.653461,102.472183],[34.651669,102.47242],[34.650768,102.472382],[34.6492,102.472054],[34.648781,102.471931],[34.647369,102.471687],[34.646561,102.471687],[34.64637,102.471703],[34.64497,102.472054],[34.64394,102.472504],[34.642288,102.473297],[34.640911,102.473801],[34.640308,102.473846],[34.63929,102.473633],[34.638321,102.473129],[34.636902,102.472618],[34.635311,102.472473],[34.633961,102.472221],[34.633759,102.472153],[34.63192,102.471359],[34.629452,102.470207],[34.628571,102.469833],[34.627731,102.469353],[34.626911,102.468842],[34.626579,102.468613],[34.624931,102.467598],[34.62447,102.467377],[34.623749,102.467003],[34.620998,102.465317],[34.619572,102.464363],[34.617699,102.462662],[34.617031,102.462303],[34.6161,102.461952],[34.61515,102.461853],[34.61438,102.461983],[34.61335,102.46241],[34.612289,102.463211],[34.611771,102.463799],[34.611141,102.464928],[34.610661,102.466003],[34.610538,102.466187],[34.610062,102.46682],[34.609459,102.467216],[34.608841,102.467323],[34.608318,102.467293],[34.607849,102.467133],[34.607441,102.466827],[34.606098,102.465607],[34.605228,102.464577],[34.60186,102.460617],[34.601051,102.459717],[34.59996,102.458519],[34.597759,102.456078],[34.597462,102.455803],[34.59639,102.455307],[34.595989,102.455292],[34.595409,102.455429],[34.594521,102.455887],[34.594219,102.456169],[34.593861,102.456657],[34.59367,102.45694],[34.593369,102.457336],[34.593029,102.45787],[34.591129,102.46077],[34.588699,102.464363],[34.58794,102.46537],[34.58733,102.46595],[34.586712,102.466316],[34.58577,102.46666],[34.584919,102.466667],[34.584469,102.466583],[34.583969,102.466507],[34.582829,102.466202],[34.582531,102.466187],[34.582298,102.466118],[34.58157,102.466019],[34.578449,102.46534],[34.577202,102.464851],[34.575939,102.464088],[34.574711,102.463013],[34.573879,102.461967],[34.573132,102.460823],[34.570789,102.456993],[34.56992,102.455521],[34.568779,102.454231],[34.567451,102.453133],[34.56498,102.451134],[34.563641,102.449997],[34.56292,102.44928],[34.56282,102.449142],[34.56234,102.448418],[34.560749,102.445572],[34.55888,102.442146],[34.558361,102.441238],[34.556309,102.437523],[34.555641,102.436447],[34.55505,102.435829],[34.554169,102.435059],[34.553329,102.434258],[34.552429,102.432999],[34.55085,102.430573],[34.549931,102.429123],[34.549271,102.428207],[34.548389,102.427467],[34.547298,102.426773],[34.546532,102.425888],[34.546001,102.424759],[34.54562,102.423302],[34.545071,102.421654],[34.544369,102.420593],[34.54319,102.419388],[34.542789,102.418854],[34.542461,102.418289],[34.542191,102.417671],[34.541901,102.41658],[34.54158,102.414993],[34.541168,102.413979],[34.540581,102.413132],[34.53854,102.410606],[34.537159,102.408981],[34.536518,102.408287],[34.53492,102.407066],[34.53458,102.406693],[34.53373,102.405434],[34.53315,102.404007],[34.532421,102.40184],[34.531719,102.400589],[34.53067,102.399391],[34.52882,102.397598],[34.52821,102.396782],[34.526871,102.394547],[34.525902,102.39312],[34.525051,102.392174],[34.523788,102.390823],[34.522869,102.389793],[34.521931,102.388527],[34.52145,102.38765],[34.520679,102.386192],[34.519939,102.384987],[34.519279,102.384018],[34.518421,102.382797],[34.517941,102.38208],[34.516659,102.380219],[34.515621,102.378754],[34.514771,102.376633],[34.50613,102.368523],[34.505322,102.366173],[34.5037,102.363876],[34.501049,102.359802],[34.500092,102.358276],[34.49889,102.3563],[34.497841,102.354683],[34.496971,102.353416],[34.495789,102.352112],[34.494671,102.351784],[34.48978,102.338341],[34.490662,102.336861],[34.490559,102.335258],[34.490429,102.333649],[34.490398,102.333054],[34.490261,102.331688],[34.490219,102.330711],[34.490131,102.329948],[34.489769,102.328743],[34.4893,102.32785],[34.488739,102.327042],[34.487259,102.325104],[34.48687,102.324623],[34.486191,102.323677],[34.485748,102.322968],[34.485409,102.32235],[34.485249,102.322037],[34.48457,102.320282],[34.483841,102.318626],[34.480789,102.313278],[34.479919,102.311729],[34.478199,102.308777],[34.477699,102.308037],[34.477131,102.307373],[34.47683,102.307083],[34.476021,102.306396],[34.472462,102.303352],[34.471939,102.302994],[34.47176,102.302872],[34.470989,102.302498],[34.470181,102.302277],[34.469139,102.302208],[34.468719,102.302254],[34.46809,102.302391],[34.467178,102.303284],[34.466572,102.302879],[34.465462,102.303436],[34.464691,102.303574],[34.46426,102.303612],[34.463089,102.303551],[34.462589,102.303452],[34.461342,102.302994],[34.460819,102.30275],[34.455811,102.300583],[34.45499,102.30027],[34.45414,102.300056],[34.453041,102.299957],[34.450451,102.300034],[34.44627,102.300171],[34.445278,102.300171],[34.44389,102.299896],[34.441971,102.299477],[34.439621,102.298927],[34.431759,102.297218],[34.429379,102.296806],[34.426949,102.296707],[34.426071,102.296623],[34.425629,102.296516],[34.424591,102.296173],[34.42358,102.295723],[34.42215,102.295219],[34.421108,102.295021],[34.419628,102.294083],[34.41708,102.29528],[34.413521,102.295677],[34.410141,102.296028],[34.40892,102.29612],[34.398399,102.297173],[34.394421,102.297592],[34.393822,102.297684],[34.392269,102.298111],[34.38921,102.299088],[34.38755,102.299583],[34.38662,102.299812],[34.382931,102.300613],[34.380459,102.301064],[34.379219,102.301178],[34.378189,102.301247],[34.37674,102.301529],[34.372559,102.302727],[34.370708,102.303192],[34.369881,102.303368],[34.364689,102.304161],[34.363022,102.304207],[34.359451,102.303726],[34.358231,102.303619],[34.357208,102.303612],[34.353741,102.303864],[34.352852,102.303909],[34.35051,102.304108],[34.350021,102.304199],[34.349758,102.304291],[34.348721,102.304733],[34.347759,102.305511],[34.346939,102.306488],[34.34655,102.307022],[34.346069,102.307747],[34.345402,102.308563],[34.344791,102.309082],[34.344631,102.309189],[34.34396,102.309593],[34.343269,102.309853],[34.34251,102.310028],[34.341579,102.310066],[34.338428,102.3097],[34.33593,102.309433],[34.33326,102.309067],[34.33086,102.308769],[34.32967,102.30835],[34.329151,102.307983],[34.328819,102.307709],[34.32795,102.306801],[34.327499,102.306381],[34.326248,102.305489],[34.325771,102.305237],[34.325089,102.304947],[34.32362,102.304588],[34.32235,102.30468],[34.321461,102.304947],[34.319901,102.305779],[34.318371,102.30661],[34.31649,102.307579],[34.31612,102.307793],[34.315159,102.308479],[34.313511,102.309837],[34.310379,102.312492],[34.308121,102.314293],[34.305241,102.316673],[34.303188,102.318352],[34.301781,102.319527],[34.297661,102.322906],[34.296581,102.323822],[34.29166,102.327873],[34.291111,102.328346],[34.289768,102.329712],[34.288582,102.331207],[34.280128,102.343491],[34.27388,102.352661],[34.27211,102.355057],[34.270851,102.356216],[34.268822,102.357643],[34.266102,102.359451],[34.262959,102.361519],[34.26181,102.362518],[34.260311,102.364166],[34.257961,102.366676],[34.248569,102.377083],[34.247108,102.378723],[34.24577,102.38015],[34.244541,102.381317],[34.24242,102.383034],[34.23119,102.391983],[34.222839,102.39859],[34.221378,102.399857],[34.220169,102.401161],[34.218891,102.402946],[34.215382,102.408546],[34.213509,102.411499],[34.20911,102.417763],[34.20789,102.418282],[34.207649,102.419868],[34.205429,102.422913],[34.204109,102.424973],[34.203629,102.426666],[34.203098,102.428757],[34.20248,102.432091],[34.20042,102.442657],[34.197849,102.456253],[34.1973,102.459023],[34.19706,102.460426],[34.196369,102.464111],[34.196129,102.466629],[34.195629,102.474739],[34.195271,102.477531],[34.193829,102.483788],[34.1926,102.486267],[34.19241,102.489609],[34.191132,102.493523],[34.189491,102.497711],[34.189571,102.501793],[34.188831,102.504898],[34.188229,102.508217],[34.18763,102.509987],[34.186218,102.515877],[34.185211,102.520317],[34.183899,102.525864],[34.183189,102.528763],[34.182529,102.531616],[34.181938,102.534042],[34.181278,102.536423],[34.180641,102.538559],[34.179699,102.541634],[34.17907,102.5439],[34.178169,102.546806],[34.177151,102.550217],[34.176739,102.55175],[34.176121,102.553719],[34.175461,102.555748],[34.17477,102.557159],[34.17395,102.558182],[34.17289,102.558884],[34.171749,102.559273],[34.170589,102.559387],[34.168159,102.559578],[34.16251,102.560081],[34.160141,102.560318],[34.15765,102.560509],[34.15731,102.560608],[34.157009,102.560783],[34.15667,102.561234],[34.155861,102.562752],[34.154591,102.564873],[34.154411,102.565613],[34.154419,102.565758],[34.154598,102.566277],[34.154881,102.566757],[34.155289,102.567383],[34.155651,102.567993],[34.155701,102.568123],[34.15572,102.568939],[34.155331,102.569717],[34.1549,102.570488],[34.154251,102.571564],[34.154091,102.571739],[34.15382,102.571907],[34.15242,102.572319],[34.151798,102.572937],[34.151661,102.573471],[34.151508,102.574753],[34.151279,102.577316],[34.150928,102.580673],[34.150951,102.581352],[34.151138,102.583923],[34.15094,102.584732],[34.150742,102.584976],[34.15062,102.585083],[34.15036,102.585197],[34.148972,102.585426],[34.146721,102.585762],[34.146019,102.585907],[34.145489,102.586121],[34.14447,102.586723],[34.14291,102.587181],[34.1423,102.58741],[34.141529,102.58786],[34.14101,102.588257],[34.140419,102.588898],[34.139992,102.589684],[34.137878,102.594872],[34.137569,102.595581],[34.137058,102.596458],[34.136478,102.597252],[34.136108,102.597794],[34.135769,102.598373],[34.135502,102.59919],[34.135269,102.599823],[34.134621,102.600739],[34.13414,102.601173],[34.133541,102.601761],[34.132969,102.602966],[34.13279,102.603416],[34.132259,102.604134],[34.131371,102.605133],[34.130749,102.605881],[34.130569,102.606178],[34.13039,102.606453],[34.129902,102.607567],[34.129478,102.608711],[34.129021,102.609818],[34.128429,102.610817],[34.128059,102.611389],[34.125,102.616364],[34.123699,102.618591],[34.12326,102.619942],[34.123058,102.621437],[34.123169,102.623863],[34.12286,102.62487],[34.122269,102.625343],[34.121922,102.625443],[34.120152,102.62561],[34.11916,102.629173],[34.117748,102.629852],[34.11734,102.630692],[34.11689,102.631721],[34.116718,102.632317],[34.11668,102.632736],[34.116741,102.633392],[34.117569,102.634941],[34.117119,102.636574],[34.117851,102.637733],[34.117489,102.639999],[34.11742,102.640556],[34.11742,102.640762],[34.117611,102.641777],[34.117809,102.642403],[34.118019,102.64315],[34.118118,102.64357],[34.118328,102.644272],[34.118549,102.645073],[34.118622,102.645287],[34.11869,102.6455],[34.118961,102.646332],[34.119091,102.646553],[34.119579,102.646988],[34.12048,102.647331],[34.120602,102.647346],[34.120838,102.647476],[34.121189,102.647629],[34.121571,102.647881],[34.12178,102.648064],[34.122101,102.648453],[34.122299,102.648804],[34.122421,102.649071],[34.12252,102.649559],[34.12254,102.650414],[34.12241,102.651123],[34.12159,102.654167],[34.12141,102.654877],[34.120789,102.657181],[34.120602,102.657951],[34.119202,102.663193],[34.11874,102.664993],[34.117939,102.667877],[34.117481,102.669327],[34.117271,102.669952],[34.116741,102.671371],[34.116451,102.672081],[34.11586,102.673431],[34.115139,102.674973],[34.114189,102.67688],[34.113899,102.67749],[34.113861,102.677513],[34.113602,102.678078],[34.11298,102.679298],[34.111851,102.681679],[34.11161,102.682251],[34.111301,102.683113],[34.110828,102.684723],[34.110661,102.68541],[34.11026,102.686928],[34.10931,102.690353],[34.108589,102.693024],[34.108318,102.694092],[34.107891,102.695663],[34.107639,102.696693],[34.10741,102.697479],[34.107201,102.698318],[34.106979,102.699112],[34.1068,102.699806],[34.106602,102.700508],[34.10611,102.702332],[34.105911,102.703239],[34.10569,102.704292],[34.105518,102.705276],[34.10527,102.70755],[34.105209,102.708504],[34.10516,102.709648],[34.105122,102.711617],[34.105061,102.712791],[34.104931,102.713821],[34.104752,102.714607],[34.104321,102.715973],[34.104279,102.716187],[34.104019,102.716766],[34.10371,102.71772],[34.103432,102.71846],[34.103142,102.71933],[34.102959,102.720306],[34.10294,102.720757],[34.103001,102.72171],[34.10358,102.725479],[34.10368,102.726471],[34.10368,102.727333],[34.103619,102.727814],[34.103371,102.728653],[34.102989,102.729439],[34.102558,102.730049],[34.102509,102.730164],[34.10207,102.730568],[34.10099,102.731247],[34.100201,102.731697],[34.098301,102.732727],[34.09761,102.733131],[34.09655,102.733688],[34.095421,102.734306],[34.094818,102.734612],[34.094059,102.734802],[34.093418,102.734848],[34.092781,102.734718],[34.092171,102.734459],[34.091621,102.734123],[34.090931,102.733582],[34.090691,102.733414],[34.087151,102.730698],[34.086498,102.730301],[34.086021,102.730087],[34.085419,102.729973],[34.084221,102.729912],[34.08215,102.729851],[34.081181,102.729134],[34.07951,102.730637],[34.07851,102.729851],[34.077999,102.729927],[34.078018,102.729927],[34.077862,102.72998],[34.077381,102.730087],[34.07605,102.730476],[34.0742,102.730957],[34.073021,102.731308],[34.072559,102.731361],[34.072121,102.731377],[34.071659,102.731323],[34.071259,102.731216],[34.069962,102.730743],[34.0695,102.730553],[34.067268,102.729713],[34.06567,102.729057],[34.064571,102.728554],[34.062561,102.727524],[34.062019,102.727226],[34.05949,102.725906],[34.059021,102.725723],[34.058472,102.725548],[34.05484,102.724602],[34.054459,102.724518],[34.05402,102.724388],[34.053341,102.724113],[34.052719,102.723793],[34.04837,102.721077],[34.048031,102.720886],[34.04689,102.720177],[34.04665,102.720039],[34.04604,102.719757],[34.045361,102.719566],[34.044289,102.719398],[34.0443,102.719414],[34.044189,102.719414],[34.043919,102.71936],[34.043369,102.719299],[34.042461,102.719162],[34.042141,102.719139],[34.04137,102.719017],[34.04052,102.718941],[34.040279,102.71888],[34.039242,102.718773],[34.038658,102.718681],[34.038349,102.718658],[34.037701,102.718559],[34.036789,102.718437],[34.036201,102.718437],[34.03595,102.718483],[34.035679,102.718536],[34.035469,102.71862],[34.035061,102.718903],[34.034851,102.719101],[34.034481,102.719582],[34.034019,102.720261],[34.032318,102.722923],[34.032169,102.723129],[34.031799,102.723518],[34.031601,102.723686],[34.03141,102.723824],[34.03117,102.723953],[34.03093,102.724037],[34.030689,102.724113],[34.03043,102.724152],[34.03019,102.724136],[34.029148,102.72406],[34.028519,102.723984],[34.028259,102.723991],[34.027969,102.723953],[34.02771,102.723953],[34.027409,102.723999],[34.027111,102.724083],[34.026871,102.724167],[34.026611,102.724319],[34.026119,102.724693],[34.025501,102.725212],[34.025318,102.725319],[34.02512,102.725502],[34.024391,102.726021],[34.023659,102.726501],[34.023232,102.726753],[34.023048,102.726883],[34.022831,102.726997],[34.021309,102.72789],[34.021019,102.728081],[34.020611,102.728416],[34.020409,102.72863],[34.019951,102.729271],[34.019691,102.729782],[34.018902,102.731781],[34.018452,102.732986],[34.018139,102.733757],[34.017879,102.734299],[34.01767,102.734619],[34.017479,102.734863],[34.01725,102.735107],[34.017052,102.735359],[34.016781,102.735641],[34.013119,102.738113],[34.008789,102.741043],[34.00354,102.74456],[34.002659,102.745171],[34.002548,102.745232],[34.001911,102.745667],[34.001431,102.745911],[34.000221,102.746902],[33.99966,102.747452],[33.999161,102.748161],[33.998959,102.74855],[33.998829,102.748894],[33.998611,102.749763],[33.99855,102.750549],[33.998581,102.751427],[33.998661,102.752113],[33.99894,102.753883],[33.998981,102.754433],[33.99905,102.754868],[33.999142,102.755241],[33.999321,102.756371],[33.999962,102.760437],[34.00042,102.763367],[34.00053,102.764191],[34.00061,102.765053],[34.00058,102.765778],[34.00045,102.766693],[34.000111,102.767281],[33.99979,102.767883],[33.997421,102.771591],[33.997379,102.77169],[33.997211,102.771896],[33.9944,102.77623],[33.991291,102.781052],[33.990311,102.782539],[33.988289,102.785713],[33.98724,102.787323],[33.985649,102.789726],[33.984509,102.791489],[33.983978,102.792351],[33.982471,102.794647],[33.980518,102.797699],[33.980141,102.798248],[33.979351,102.799507],[33.978889,102.800194],[33.97575,102.805038],[33.97533,102.805717],[33.974899,102.806343],[33.97456,102.806892],[33.97398,102.807747],[33.97361,102.808327],[33.973179,102.808983],[33.97274,102.809677],[33.97234,102.81028],[33.971889,102.810997],[33.967892,102.817139],[33.966999,102.818527],[33.966179,102.819763],[33.965462,102.820877],[33.96508,102.821442],[33.96019,102.828987],[33.95985,102.829529],[33.956089,102.83532],[33.955639,102.836037],[33.955219,102.836662],[33.954239,102.838188],[33.953659,102.83905],[33.953629,102.839073],[33.953621,102.839127],[33.953159,102.839882],[33.950729,102.843613],[33.950432,102.844116],[33.949982,102.844757],[33.943562,102.854668],[33.941631,102.857613],[33.937241,102.864418],[33.936729,102.865189],[33.936131,102.865997],[33.935501,102.866768],[33.93491,102.867416],[33.934181,102.868118],[33.930019,102.871872],[33.929482,102.872414],[33.928982,102.873016],[33.928581,102.873756],[33.928459,102.874039],[33.928261,102.874702],[33.927151,102.879211],[33.926868,102.880211],[33.92659,102.880882],[33.926262,102.881554],[33.92585,102.882187],[33.925751,102.882309],[33.92522,102.882874],[33.924709,102.883324],[33.92411,102.883743],[33.921749,102.8853],[33.912102,102.891747],[33.909801,102.893257],[33.908459,102.894173],[33.90493,102.896492],[33.90419,102.897003],[33.902908,102.897842],[33.900631,102.899384],[33.894958,102.903137],[33.894371,102.903549],[33.88932,102.906891],[33.88871,102.907333],[33.888161,102.907669],[33.885799,102.909233],[33.885151,102.909683],[33.88385,102.910522],[33.880421,102.912827],[33.872849,102.917847],[33.871632,102.918694],[33.871029,102.91906],[33.861191,102.925621],[33.84753,102.934692],[33.843861,102.937149],[33.8433,102.937508],[33.839359,102.94014],[33.838619,102.940613],[33.837799,102.94117],[33.83699,102.941803],[33.83633,102.942436],[33.835701,102.943169],[33.83033,102.950912],[33.830059,102.951248],[33.82962,102.951691],[33.829041,102.952103],[33.828609,102.952293],[33.828289,102.952393],[33.827839,102.952477],[33.825901,102.952759],[33.825291,102.952873],[33.824951,102.952972],[33.82473,102.953056],[33.82378,102.95359],[33.82267,102.954277],[33.822578,102.954353],[33.821991,102.954712],[33.821289,102.955017],[33.82061,102.9552],[33.817371,102.955978],[33.815041,102.95649],[33.814362,102.956612],[33.813492,102.95665],[33.812759,102.956581],[33.811111,102.95649],[33.809631,102.956383],[33.808189,102.956322],[33.80751,102.956383],[33.806839,102.956612],[33.806271,102.956963],[33.80566,102.957474],[33.803619,102.959358],[33.802921,102.959923],[33.802151,102.96032],[33.801472,102.960487],[33.800758,102.96051],[33.800201,102.960388],[33.799492,102.960083],[33.798309,102.959412],[33.797821,102.959167],[33.797161,102.958946],[33.796391,102.958923],[33.79549,102.959068],[33.795151,102.959137],[33.794991,102.959137],[33.79488,102.95919],[33.789989,102.960152],[33.788921,102.960342],[33.788219,102.960487],[33.787189,102.960617],[33.786499,102.960617],[33.78574,102.960587],[33.784649,102.96048],[33.783852,102.960327],[33.781792,102.96003],[33.781132,102.959969],[33.78038,102.959976],[33.779659,102.960052],[33.778271,102.960243],[33.777191,102.960342],[33.775761,102.960533],[33.77491,102.960587],[33.77422,102.960609],[33.773399,102.960564],[33.772469,102.960442],[33.771858,102.960327],[33.7701,102.959953],[33.767799,102.959488],[33.763859,102.958656],[33.76247,102.958344],[33.760979,102.957939],[33.759571,102.957527],[33.758968,102.957336],[33.75602,102.956253],[33.75528,102.955994],[33.74733,102.953102],[33.746521,102.952003],[33.739429,102.953453],[33.73904,102.95488],[33.738609,102.955276],[33.738121,102.955704],[33.737041,102.956688],[33.73307,102.960243],[33.732578,102.960716],[33.731289,102.961899],[33.730652,102.962433],[33.72995,102.962967],[33.729382,102.963333],[33.72916,102.963417],[33.728291,102.963753],[33.72757,102.963913],[33.726791,102.963966],[33.720871,102.964233],[33.71986,102.964287],[33.719379,102.964302],[33.717449,102.964409],[33.711418,102.964668],[33.706329,102.964928],[33.704552,102.964989],[33.703678,102.964943],[33.7029,102.96479],[33.700619,102.964142],[33.699989,102.963997],[33.699162,102.963982],[33.69836,102.964157],[33.696911,102.964821],[33.6945,102.966003],[33.68998,102.968147],[33.689308,102.968353],[33.68885,102.96843],[33.68819,102.968384],[33.687592,102.968231],[33.687099,102.967987],[33.686779,102.967796],[33.686111,102.967247],[33.685181,102.966362],[33.684639,102.965912],[33.684299,102.965668],[33.683739,102.965393],[33.683189,102.965149],[33.682461,102.964928],[33.681049,102.964546],[33.68066,102.96447],[33.67968,102.964203],[33.679169,102.964073],[33.678822,102.963959],[33.677391,102.9636],[33.677269,102.963593],[33.676781,102.963371],[33.676491,102.963211],[33.67598,102.962837],[33.675831,102.962708],[33.674549,102.961243],[33.674171,102.960907],[33.673759,102.960617],[33.673061,102.96032],[33.67297,102.960274],[33.672691,102.960243],[33.672081,102.96022],[33.672058,102.960243],[33.671799,102.960251],[33.67091,102.960327],[33.669979,102.960426],[33.668468,102.960564],[33.667591,102.960587],[33.666801,102.96048],[33.66629,102.960281],[33.66592,102.960052],[33.66552,102.959747],[33.66534,102.959587],[33.665039,102.959244],[33.66473,102.958801],[33.663448,102.956543],[33.662201,102.954262],[33.66201,102.953957],[33.66161,102.953217],[33.661018,102.952362],[33.66029,102.951698],[33.659512,102.951286],[33.659019,102.951157],[33.65802,102.950996],[33.653961,102.950623],[33.65266,102.95047],[33.651711,102.950119],[33.65136,102.949898],[33.650639,102.949242],[33.649712,102.94828],[33.648491,102.946968],[33.64846,102.946907],[33.647911,102.946327],[33.647621,102.946083],[33.6474,102.945847],[33.647099,102.945572],[33.646801,102.945328],[33.64645,102.945084],[33.646141,102.944893],[33.645821,102.944748],[33.64521,102.944527],[33.644489,102.944389],[33.643711,102.944397],[33.64344,102.944443],[33.64278,102.944603],[33.64246,102.94471],[33.641861,102.945023],[33.641541,102.945221],[33.641239,102.945457],[33.640751,102.945892],[33.640251,102.946373],[33.63728,102.9496],[33.63625,102.950737],[33.635609,102.951401],[33.635101,102.951851],[33.634411,102.95224],[33.634312,102.952278],[33.633221,102.95253],[33.631989,102.952599],[33.631111,102.952782],[33.630299,102.953247],[33.62973,102.953773],[33.628448,102.955116],[33.627991,102.955566],[33.627449,102.955917],[33.626678,102.956131],[33.625938,102.956017],[33.625351,102.955704],[33.624329,102.954811],[33.624031,102.954567],[33.623772,102.954407],[33.623371,102.954208],[33.623089,102.954109],[33.622799,102.954048],[33.622501,102.95401],[33.622181,102.954018],[33.620621,102.954269],[33.620171,102.954308],[33.619781,102.954308],[33.61916,102.954224],[33.618759,102.954086],[33.618351,102.953903],[33.618019,102.95369],[33.617241,102.95314],[33.616989,102.952904],[33.616562,102.95256],[33.615978,102.952049],[33.615711,102.951843],[33.615139,102.951447],[33.614639,102.951218],[33.614071,102.951111],[33.613449,102.951157],[33.61269,102.951347],[33.612331,102.951462],[33.611542,102.95166],[33.61105,102.951683],[33.610149,102.951462],[33.609959,102.951347],[33.609249,102.950798],[33.609169,102.950706],[33.60878,102.950104],[33.607841,102.947853],[33.607712,102.94751],[33.607029,102.945877],[33.60688,102.945473],[33.606258,102.944077],[33.605999,102.943443],[33.606239,102.942429],[33.605961,102.942207],[33.605289,102.941772],[33.603168,102.941093],[33.602612,102.939697],[33.598629,102.938179],[33.598061,102.937988],[33.597691,102.937843],[33.597599,102.937843],[33.596951,102.937767],[33.59639,102.937759],[33.595661,102.93869],[33.594891,102.938461],[33.59399,102.938477],[33.59269,102.940697],[33.592319,102.940483],[33.592289,102.940483],[33.59235,102.940598],[33.592289,102.940742],[33.59235,102.941292],[33.59026,102.944901],[33.588982,102.944992],[33.588531,102.945557],[33.588219,102.94593],[33.58786,102.946457],[33.586781,102.947868],[33.586369,102.948547],[33.58622,102.948624],[33.58601,102.948837],[33.585121,102.949966],[33.584629,102.950562],[33.584221,102.950989],[33.583839,102.951408],[33.582951,102.952339],[33.582539,102.952797],[33.580509,102.954964],[33.579029,102.956596],[33.57869,102.95694],[33.577942,102.957771],[33.577641,102.958038],[33.57756,102.958092],[33.577511,102.958138],[33.577469,102.958168],[33.57653,102.961349],[33.576649,102.961388],[33.576839,102.9618],[33.577148,102.962677],[33.577599,102.964157],[33.577709,102.964577],[33.578209,102.965652],[33.577011,102.967728],[33.562309,102.992767],[33.56229,102.995613],[33.56152,102.997063],[33.560551,102.998123],[33.558681,102.998947],[33.55827,103.000237],[33.558331,103.003082],[33.55722,103.005333],[33.556961,103.007217],[33.556789,103.008347],[33.55669,103.00946],[33.55669,103.016533],[33.556629,103.018227],[33.556561,103.018593],[33.556301,103.019386],[33.556061,103.019974],[33.55497,103.022774],[33.554691,103.023613],[33.554531,103.024307],[33.554489,103.024986],[33.554611,103.025681],[33.554852,103.026299],[33.555038,103.026611],[33.55547,103.027077],[33.556049,103.027412],[33.556301,103.027473],[33.558159,103.027588],[33.558571,103.027443],[33.560741,103.027687],[33.562149,103.02787],[33.564812,103.028107],[33.56588,103.028259],[33.566101,103.028313],[33.566521,103.02845],[33.567268,103.028893],[33.568119,103.029701],[33.568401,103.03009],[33.568619,103.030518],[33.569099,103.031937],[33.56929,103.032692],[33.570278,103.03598],[33.570869,103.037613],[33.571529,103.038567],[33.571819,103.038918],[33.572639,103.039703],[33.57436,103.041023],[33.576141,103.042473],[33.577438,103.043503],[33.578541,103.044456],[33.57946,103.045403],[33.58009,103.046387],[33.580711,103.047668],[33.581051,103.048508],[33.581772,103.050163],[33.582081,103.050926],[33.582359,103.051498],[33.583759,103.054657],[33.584389,103.05619],[33.5853,103.058311],[33.585911,103.059708],[33.58717,103.062637],[33.587841,103.064102],[33.588612,103.066017],[33.589489,103.067993],[33.590069,103.069412],[33.59116,103.072006],[33.592331,103.0737],[33.592239,103.076012],[33.591888,103.077469],[33.588421,103.091187],[33.58823,103.093384],[33.587769,103.099693],[33.586311,103.101318],[33.58577,103.102692],[33.58519,103.103661],[33.584728,103.104362],[33.584541,103.104553],[33.583931,103.10508],[33.583511,103.105438],[33.582981,103.105759],[33.581848,103.106354],[33.576511,103.108421],[33.56625,103.112213],[33.562092,103.113823],[33.560051,103.114532],[33.557999,103.115288],[33.556381,103.115921],[33.554642,103.116798],[33.55278,103.118057],[33.540932,103.12635],[33.540051,103.126831],[33.53867,103.127197],[33.536831,103.127403],[33.534981,103.127831],[33.533508,103.128571],[33.532131,103.129562],[33.530449,103.130882],[33.528648,103.132103],[33.52784,103.132584],[33.526031,103.13372],[33.525089,103.134483],[33.523491,103.136093],[33.52187,103.137619],[33.520359,103.138779],[33.518581,103.139954],[33.51659,103.141243],[33.51403,103.142937],[33.512081,103.144287],[33.510559,103.145508],[33.5093,103.146713],[33.508282,103.147774],[33.506821,103.149513],[33.505219,103.151497],[33.503681,103.153297],[33.502419,103.154572],[33.501141,103.155182],[33.498909,103.156174],[33.49741,103.157066],[33.496059,103.158203],[33.494041,103.160233],[33.490829,103.163582],[33.4893,103.164886],[33.488022,103.165588],[33.48666,103.165993],[33.482281,103.167053],[33.48,103.167587],[33.47776,103.167923],[33.47578,103.167976],[33.47366,103.167992],[33.473042,103.168053],[33.472118,103.168411],[33.471451,103.168877],[33.46891,103.171303],[33.46743,103.172752],[33.466019,103.173973],[33.465092,103.174339],[33.464039,103.174347],[33.463402,103.17424],[33.460442,103.17347],[33.459129,103.173553],[33.458099,103.17395],[33.456661,103.174797],[33.452709,103.177162],[33.451981,103.177551],[33.450802,103.177933],[33.448799,103.178253],[33.4459,103.178673],[33.444172,103.178818],[33.442329,103.178841],[33.440689,103.178886],[33.43597,103.178757],[33.43486,103.178963],[33.434509,103.179077],[33.43354,103.179619],[33.432861,103.180191],[33.432621,103.180367],[33.428909,103.183418],[33.427761,103.184303],[33.426731,103.185028],[33.426079,103.185371],[33.424889,103.185768],[33.423561,103.186249],[33.42234,103.186783],[33.42144,103.187538],[33.420849,103.188568],[33.41993,103.190323],[33.419071,103.191368],[33.41795,103.1922],[33.416611,103.192886],[33.41518,103.193527],[33.414162,103.193932],[33.412579,103.19426],[33.411289,103.194458],[33.409969,103.194748],[33.409081,103.195297],[33.408409,103.195999],[33.407421,103.197197],[33.40657,103.198158],[33.40559,103.198967],[33.40443,103.199654],[33.403301,103.200119],[33.402142,103.200333],[33.400848,103.200493],[33.3992,103.20047],[33.39814,103.200737],[33.397228,103.201271],[33.395699,103.202797],[33.39473,103.20369],[33.393841,103.204552],[33.393452,103.204903],[33.39249,103.205544],[33.391548,103.20594],[33.39053,103.205963],[33.38789,103.205322],[33.3843,103.204483],[33.38155,103.203796],[33.380268,103.203644],[33.380119,103.203667],[33.37936,103.20401],[33.378689,103.204781],[33.377628,103.206673],[33.377392,103.20694],[33.376301,103.207603],[33.37542,103.207771],[33.375221,103.207787],[33.373589,103.207779],[33.371601,103.207703],[33.369869,103.20768],[33.368271,103.207527],[33.364609,103.206711],[33.363331,103.206749],[33.362511,103.206848],[33.35915,103.207161],[33.35651,103.207298],[33.354771,103.207253],[33.352612,103.206963],[33.350712,103.206741],[33.350052,103.206711],[33.348801,103.20694],[33.34761,103.207336],[33.346218,103.207764],[33.344971,103.207817],[33.34351,103.207718],[33.340851,103.207443],[33.339149,103.207283],[33.337589,103.207191],[33.33651,103.207367],[33.335629,103.207718],[33.335289,103.207893],[33.33448,103.208481],[33.33342,103.209343],[33.332958,103.209671],[33.331921,103.210167],[33.33073,103.210426],[33.328442,103.210587],[33.326839,103.21067],[33.32542,103.210709],[33.324169,103.210793],[33.322571,103.210983],[33.32114,103.211067],[33.31963,103.21125],[33.318501,103.211456],[33.318321,103.211517],[33.317341,103.212067],[33.317051,103.212341],[33.31641,103.213173],[33.315929,103.214523],[33.315769,103.215584],[33.315392,103.217644],[33.315022,103.218781],[33.31493,103.218964],[33.314308,103.219673],[33.31403,103.219887],[33.31282,103.220322],[33.310768,103.220886],[33.309471,103.221313],[33.308739,103.221474],[33.307789,103.221581],[33.307049,103.221519],[33.304871,103.221161],[33.30373,103.221107],[33.30304,103.221283],[33.301949,103.221893],[33.30154,103.222267],[33.3009,103.223007],[33.300018,103.223831],[33.29895,103.224327],[33.297581,103.224564],[33.296982,103.22464],[33.295471,103.22496],[33.294319,103.225349],[33.292728,103.226143],[33.291061,103.226891],[33.288261,103.227432],[33.286781,103.227943],[33.282139,103.229927],[33.280621,103.230652],[33.276501,103.233047],[33.274921,103.234009],[33.273731,103.234467],[33.27227,103.234741],[33.271271,103.23468],[33.270931,103.234619],[33.27002,103.234413],[33.26836,103.233803],[33.26722,103.233566],[33.266048,103.233704],[33.264832,103.233948],[33.261791,103.23468],[33.26038,103.234917],[33.25914,103.235062],[33.257462,103.235161],[33.253731,103.235443],[33.25238,103.235397],[33.25106,103.235001],[33.249592,103.234207],[33.245819,103.232117],[33.244678,103.231339],[33.24382,103.230408],[33.240059,103.225594],[33.238972,103.224113],[33.23819,103.223106],[33.23785,103.22274],[33.23695,103.222267],[33.236149,103.22216],[33.235329,103.222282],[33.233398,103.222618],[33.231781,103.22258],[33.231091,103.222488],[33.22718,103.221893],[33.225471,103.221657],[33.224178,103.221687],[33.223011,103.22187],[33.221619,103.222328],[33.219818,103.223061],[33.218491,103.223648],[33.21571,103.2248],[33.214199,103.225372],[33.212749,103.225952],[33.20895,103.227547],[33.202869,103.230019],[33.201542,103.230637],[33.199081,103.23204],[33.197811,103.23259],[33.19664,103.232933],[33.19558,103.233063],[33.194279,103.233063],[33.192841,103.23288],[33.191399,103.232643],[33.18642,103.231979],[33.185291,103.231842],[33.183811,103.231827],[33.18346,103.231873],[33.182259,103.232147],[33.180988,103.232643],[33.179909,103.233147],[33.178261,103.233887],[33.176609,103.234703],[33.1754,103.23526],[33.17424,103.235748],[33.173161,103.236099],[33.171631,103.236526],[33.168621,103.23732],[33.167042,103.237823],[33.16547,103.238548],[33.164291,103.239281],[33.160252,103.242126],[33.15736,103.244202],[33.155819,103.245247],[33.15461,103.245842],[33.15316,103.246277],[33.15181,103.246437],[33.14666,103.246887],[33.145031,103.24704],[33.1436,103.247307],[33.142368,103.247726],[33.14098,103.248497],[33.139992,103.249237],[33.134682,103.253471],[33.13332,103.254578],[33.132111,103.255623],[33.13126,103.256447],[33.130001,103.257912],[33.128738,103.259537],[33.127579,103.261253],[33.126831,103.262512],[33.12627,103.263611],[33.124859,103.266617],[33.124149,103.268204],[33.123569,103.269531],[33.12236,103.272102],[33.12175,103.273468],[33.121052,103.274872],[33.1194,103.278381],[33.118641,103.280159],[33.118469,103.281509],[33.118641,103.284523],[33.118599,103.285828],[33.118481,103.286583],[33.11805,103.287819],[33.116661,103.290291],[33.11607,103.291298],[33.114521,103.294037],[33.113831,103.295357],[33.110771,103.300713],[33.108799,103.30423],[33.10693,103.307663],[33.10585,103.309563],[33.10474,103.311562],[33.10376,103.313301],[33.10342,103.313927],[33.10157,103.317261],[33.100632,103.318848],[33.099758,103.320091],[33.096821,103.323883],[33.096001,103.324966],[33.095161,103.326042],[33.094471,103.327003],[33.093639,103.328377],[33.092258,103.331177],[33.091648,103.332573],[33.091042,103.333832],[33.090149,103.335831],[33.089481,103.337082],[33.088829,103.338371],[33.08831,103.339577],[33.087849,103.340714],[33.087318,103.342339],[33.087101,103.343529],[33.086899,103.345703],[33.086929,103.347954],[33.08675,103.349571],[33.0863,103.350693],[33.08556,103.351624],[33.084641,103.352303],[33.078941,103.355186],[33.078522,103.35537],[33.077671,103.355667],[33.076359,103.355904],[33.075459,103.355949],[33.0746,103.355873],[33.07333,103.355553],[33.07206,103.355103],[33.071529,103.354889],[33.069302,103.35408],[33.06802,103.353828],[33.066929,103.353844],[33.06506,103.35424],[33.063622,103.354446],[33.062641,103.354362],[33.061691,103.354103],[33.060921,103.353767],[33.060162,103.353394],[33.05899,103.352783],[33.056351,103.351448],[33.055248,103.350853],[33.05402,103.350143],[33.052711,103.349342],[33.051449,103.348427],[33.050282,103.347649],[33.049179,103.347076],[33.048111,103.346832],[33.046661,103.346809],[33.04493,103.347054],[33.043259,103.347359],[33.04216,103.347313],[33.040951,103.347214],[33.039921,103.347031],[33.038059,103.346832],[33.037102,103.347107],[33.029449,103.349022],[33.028889,103.349289],[33.02813,103.349907],[33.027081,103.351288],[33.026409,103.352318],[33.025848,103.353027],[33.024971,103.353699],[33.023991,103.354027],[33.021801,103.354317],[33.020592,103.354553],[33.019341,103.354713],[33.017941,103.354828],[33.016911,103.35479],[33.016479,103.354752],[33.01535,103.354446],[33.01424,103.354088],[33.013458,103.353592],[33.01091,103.352257],[33.0103,103.351982],[33.008732,103.351624],[33.005501,103.351112],[33.004581,103.3507],[33.003799,103.350021],[33.003651,103.349854],[33.003201,103.349083],[33.002541,103.347862],[33.001862,103.346657],[33.001579,103.346313],[33.00087,103.345573],[32.999931,103.345062],[32.998878,103.344803],[32.992008,103.343224],[32.990391,103.343048],[32.989071,103.34304],[32.987709,103.343117],[32.986309,103.343323],[32.984741,103.343651],[32.979359,103.344963],[32.977219,103.345512],[32.974861,103.346077],[32.970989,103.347076],[32.96925,103.347572],[32.967682,103.348213],[32.966331,103.348824],[32.965172,103.349152],[32.964169,103.349197],[32.963829,103.349136],[32.962742,103.348732],[32.960621,103.347633],[32.959702,103.347198],[32.95908,103.347054],[32.95863,103.347038],[32.958031,103.347107],[32.957119,103.347351],[32.955151,103.347977],[32.952831,103.348663],[32.952141,103.3489],[32.951641,103.349167],[32.95116,103.349442],[32.949409,103.350571],[32.94825,103.351273],[32.94762,103.351593],[32.947079,103.351791],[32.945309,103.35257],[32.944351,103.3526],[32.943501,103.352821],[32.943272,103.352859],[32.941738,103.353241],[32.940842,103.353378],[32.940022,103.353416],[32.93951,103.353409],[32.938541,103.353279],[32.937328,103.352989],[32.936821,103.352829],[32.935581,103.352386],[32.93502,103.352127],[32.93438,103.35173],[32.92968,103.348557],[32.928959,103.348389],[32.92881,103.348389],[32.927872,103.348579],[32.927238,103.348923],[32.926979,103.349167],[32.926231,103.350121],[32.92588,103.350883],[32.92561,103.351929],[32.925621,103.353188],[32.926079,103.354408],[32.92646,103.355003],[32.926689,103.355247],[32.926819,103.35537],[32.927231,103.355652],[32.92894,103.356537],[32.92939,103.356903],[32.92963,103.357208],[32.929829,103.357567],[32.929981,103.358223],[32.930019,103.358673],[32.93,103.359138],[32.929909,103.3601],[32.930092,103.361542],[32.93021,103.362022],[32.93042,103.36274],[32.930618,103.364227],[32.930641,103.364723],[32.930511,103.366203],[32.93037,103.366928],[32.929901,103.370033],[32.929829,103.370567],[32.92918,103.373558],[32.928799,103.375076],[32.928452,103.376228],[32.928242,103.377434],[32.928139,103.378677],[32.928169,103.3797],[32.928249,103.38044],[32.928341,103.380913],[32.928692,103.382339],[32.928909,103.382988],[32.929192,103.383743],[32.929409,103.384277],[32.929859,103.385559],[32.930119,103.386688],[32.93008,103.38781],[32.929829,103.388687],[32.92976,103.388863],[32.929501,103.389328],[32.929329,103.389587],[32.928612,103.390182],[32.927959,103.390533],[32.92667,103.391029],[32.9259,103.391296],[32.924332,103.391922],[32.924019,103.392059],[32.921459,103.393173],[32.92033,103.393883],[32.918991,103.394997],[32.91835,103.397507],[32.918289,103.399567],[32.918541,103.402367],[32.918579,103.403191],[32.918869,103.404228],[32.91993,103.406593],[32.920429,103.408546],[32.9212,103.410851],[32.921989,103.412651],[32.922771,103.414688],[32.92392,103.417473],[32.9244,103.418663],[32.92532,103.420891],[32.92561,103.421631],[32.925999,103.422462],[32.926659,103.423683],[32.927441,103.424919],[32.928329,103.426208],[32.928848,103.427254],[32.928989,103.427818],[32.92905,103.429153],[32.928909,103.430054],[32.928532,103.431862],[32.928421,103.432999],[32.928551,103.434288],[32.928719,103.435532],[32.928741,103.436203],[32.92852,103.437347],[32.92844,103.437569],[32.927872,103.438599],[32.926811,103.440201],[32.92614,103.441238],[32.925838,103.441612],[32.92487,103.442177],[32.924221,103.442284],[32.923759,103.442238],[32.92308,103.442139],[32.92284,103.442032],[32.922298,103.441994],[32.921169,103.441811],[32.919289,103.441727],[32.917931,103.441872],[32.917221,103.442162],[32.916569,103.442596],[32.914398,103.444443],[32.913891,103.444946],[32.912571,103.446381],[32.911499,103.447723],[32.91016,103.449493],[32.90984,103.449928],[32.909279,103.450684],[32.90884,103.451134],[32.907711,103.452148],[32.90715,103.452873],[32.906818,103.453522],[32.90646,103.454453],[32.906151,103.455406],[32.905731,103.456581],[32.905121,103.457428],[32.904419,103.458252],[32.90411,103.458588],[32.903252,103.459747],[32.903019,103.460037],[32.90263,103.460426],[32.90176,103.461113],[32.901588,103.461182],[32.901039,103.461357],[32.900089,103.461479],[32.89872,103.461533],[32.897171,103.46167],[32.896172,103.461678],[32.894901,103.461601],[32.89386,103.461304],[32.893242,103.461021],[32.892818,103.460808],[32.88744,103.45845],[32.885921,103.458076],[32.884232,103.45826],[32.88364,103.458801],[32.88335,103.459244],[32.883228,103.460114],[32.883331,103.461067],[32.883701,103.462151],[32.884941,103.464317],[32.885361,103.465477],[32.88559,103.466217],[32.885941,103.46756],[32.886768,103.471481],[32.88702,103.472878],[32.88702,103.473999],[32.886959,103.474541],[32.8867,103.475273],[32.886589,103.475487],[32.886299,103.475929],[32.885639,103.476753],[32.885151,103.477409],[32.884171,103.4786],[32.883739,103.479172],[32.883289,103.480072],[32.883289,103.481178],[32.88422,103.483498],[32.884609,103.484032],[32.885479,103.484833],[32.885681,103.485199],[32.885921,103.486977],[32.886101,103.48748],[32.88789,103.488998],[32.88847,103.489853],[32.889359,103.490211],[32.88966,103.490784],[32.89048,103.491524],[32.890678,103.491867],[32.890888,103.492531],[32.89201,103.494492],[32.89254,103.495956],[32.8932,103.496986],[32.893539,103.497864],[32.894569,103.499237],[32.894711,103.499672],[32.894741,103.500282],[32.895451,103.501518],[32.89576,103.503227],[32.895981,103.503563],[32.896961,103.504143],[32.898571,103.505417],[32.898788,103.505783],[32.89922,103.506897],[32.89954,103.508629],[32.899872,103.509567],[32.901138,103.512047],[32.9021,103.513329],[32.90271,103.514191],[32.90337,103.515282],[32.903599,103.5159],[32.90369,103.51725],[32.903641,103.5177],[32.903542,103.51815],[32.9034,103.51857],[32.903118,103.51918],[32.90287,103.519539],[32.901981,103.52021],[32.89875,103.521294],[32.897659,103.521713],[32.896591,103.52224],[32.895561,103.522926],[32.89481,103.523613],[32.89386,103.524544],[32.892632,103.525681],[32.89151,103.526657],[32.889999,103.528061],[32.88969,103.528328],[32.887032,103.530907],[32.88538,103.532829],[32.88414,103.534088],[32.883041,103.535133],[32.88232,103.535957],[32.88184,103.536827],[32.881329,103.538147],[32.880569,103.539284],[32.880119,103.539719],[32.87899,103.540367],[32.878181,103.540756],[32.876961,103.541527],[32.87677,103.541687],[32.875542,103.542923],[32.87439,103.544113],[32.87344,103.544777],[32.87281,103.54496],[32.872379,103.544991],[32.871529,103.544769],[32.869991,103.543968],[32.868919,103.543694],[32.86871,103.543694],[32.86792,103.543907],[32.865631,103.545013],[32.864841,103.545326],[32.863529,103.546043],[32.863209,103.546341],[32.862499,103.547562],[32.862141,103.548943],[32.861809,103.550858],[32.86142,103.552467],[32.86134,103.552696],[32.860748,103.55394],[32.860229,103.554649],[32.859379,103.555748],[32.858181,103.55687],[32.857422,103.557388],[32.855759,103.558571],[32.854111,103.559631],[32.852581,103.560661],[32.85178,103.56115],[32.850929,103.561546],[32.84938,103.560806],[32.847279,103.562027],[32.846119,103.561127],[32.844318,103.560806],[32.842979,103.560966],[32.83886,103.561691],[32.836922,103.561974],[32.835239,103.562263],[32.835041,103.562317],[32.833969,103.562889],[32.832489,103.56398],[32.832199,103.56424],[32.830921,103.565247],[32.829681,103.565933],[32.828079,103.566483],[32.826851,103.566849],[32.826199,103.566994],[32.825119,103.566849],[32.82309,103.565964],[32.82196,103.56604],[32.821091,103.566437],[32.819809,103.567093],[32.81958,103.567169],[32.818661,103.567421],[32.816849,103.567734],[32.81509,103.567963],[32.813641,103.568352],[32.81329,103.568604],[32.81266,103.569221],[32.81216,103.570007],[32.811611,103.570801],[32.810741,103.571503],[32.80975,103.571831],[32.80854,103.571991],[32.806389,103.572197],[32.80484,103.572342],[32.801029,103.572723],[32.800159,103.572884],[32.79948,103.573219],[32.79895,103.573669],[32.79842,103.574249],[32.79784,103.575233],[32.79734,103.576553],[32.79668,103.578011],[32.796631,103.578827],[32.796841,103.581757],[32.796799,103.582779],[32.796261,103.583809],[32.795582,103.584511],[32.793018,103.585953],[32.792259,103.586868],[32.79192,103.587959],[32.79147,103.592941],[32.79113,103.595108],[32.79044,103.596313],[32.789612,103.596863],[32.78825,103.597397],[32.788052,103.597458],[32.787029,103.597878],[32.786579,103.598267],[32.786301,103.598579],[32.78574,103.599663],[32.78553,103.60096],[32.78524,103.603996],[32.785069,103.605637],[32.785721,103.607887],[32.785721,103.608856],[32.785389,103.609711],[32.784641,103.610893],[32.78352,103.612663],[32.782211,103.614609],[32.78183,103.615097],[32.780869,103.616226],[32.78072,103.616257],[32.780609,103.61631],[32.780491,103.616371],[32.780258,103.616623],[32.779961,103.616898],[32.778049,103.618217],[32.776642,103.619171],[32.775639,103.619743],[32.774971,103.619812],[32.774311,103.619583],[32.773739,103.619347],[32.773289,103.619118],[32.772671,103.618927],[32.771999,103.618568],[32.771679,103.618523],[32.771259,103.618523],[32.770809,103.618294],[32.770481,103.618217],[32.770248,103.61824],[32.7701,103.618294],[32.769852,103.618462],[32.769402,103.618912],[32.769089,103.619797],[32.768589,103.620064],[32.76759,103.620682],[32.767712,103.618896],[32.767509,103.618248],[32.767559,103.617279],[32.767399,103.616951],[32.767208,103.616699],[32.766899,103.61644],[32.766251,103.616249],[32.76609,103.616226],[32.765862,103.616249],[32.765579,103.616241],[32.765041,103.616058],[32.76498,103.616013],[32.764648,103.615883],[32.76403,103.615891],[32.763828,103.615959],[32.763561,103.616081],[32.762581,103.616364],[32.76236,103.616409],[32.76173,103.616272],[32.76059,103.615753],[32.756771,103.614197],[32.755939,103.613922],[32.754959,103.613441],[32.754341,103.613152],[32.754169,103.613091],[32.753738,103.61306],[32.753349,103.613052],[32.75243,103.612778],[32.751999,103.612778],[32.751919,103.612762],[32.751499,103.612793],[32.750641,103.612663],[32.750401,103.61261],[32.749691,103.612511],[32.748161,103.612556],[32.747429,103.612289],[32.746552,103.611816],[32.745739,103.611656],[32.74556,103.611679],[32.745361,103.611656],[32.744301,103.611977],[32.74408,103.612099],[32.7439,103.612099],[32.743488,103.611992],[32.743408,103.611992],[32.743271,103.612053],[32.742981,103.61232],[32.742882,103.612396],[32.74255,103.61274],[32.742531,103.61274],[32.742401,103.612938],[32.74218,103.613113],[32.741951,103.613312],[32.74173,103.613472],[32.741379,103.613831],[32.741161,103.613983],[32.74057,103.614433],[32.740231,103.614548],[32.740028,103.614571],[32.739491,103.614548],[32.738289,103.614304],[32.737469,103.614227],[32.736851,103.614113],[32.736641,103.614113],[32.736401,103.614021],[32.736271,103.614014],[32.73555,103.613983],[32.734982,103.613892],[32.73439,103.614037],[32.73407,103.614166],[32.73391,103.614182],[32.73341,103.614281],[32.733051,103.614441],[32.73288,103.614662],[32.731121,103.615913],[32.733009,103.614578],[32.731171,103.616257],[32.728809,103.614731],[32.72821,103.614487],[32.72781,103.61451],[32.7276,103.614601],[32.727131,103.615219],[32.7267,103.615868],[32.726521,103.616058],[32.726341,103.616112],[32.725739,103.616089],[32.724991,103.615448],[32.723011,103.613426],[32.722759,103.613197],[32.722198,103.612961],[32.72105,103.612663],[32.720032,103.612297],[32.71991,103.612244],[32.719711,103.612053],[32.719181,103.611343],[32.718578,103.610367],[32.718201,103.60994],[32.717861,103.609596],[32.7174,103.609222],[32.716751,103.608887],[32.71611,103.608681],[32.714588,103.608047],[32.71349,103.607727],[32.712181,103.607422],[32.711411,103.607193],[32.71056,103.607246],[32.710251,103.607239],[32.709042,103.606903],[32.70776,103.606293],[32.707481,103.606216],[32.707062,103.606163],[32.706421,103.606087],[32.70546,103.605927],[32.704552,103.605583],[32.703732,103.605598],[32.70332,103.605667],[32.703072,103.605698],[32.702839,103.605667],[32.70211,103.605438],[32.701931,103.605408],[32.701771,103.605408],[32.701271,103.605263],[32.700932,103.605141],[32.700531,103.604874],[32.699711,103.604362],[32.699169,103.604118],[32.698891,103.604088],[32.698589,103.604118],[32.698139,103.604012],[32.6973,103.603699],[32.69627,103.6036],[32.695469,103.603432],[32.695122,103.60334],[32.694538,103.603218],[32.693939,103.603157],[32.69331,103.602837],[32.69286,103.602531],[32.692181,103.602127],[32.69138,103.602203],[32.690689,103.60231],[32.68866,103.601852],[32.687641,103.601738],[32.68716,103.601822],[32.686211,103.602089],[32.686081,103.602112],[32.684361,103.601738],[32.682961,103.601402],[32.682331,103.601341],[32.681709,103.601334],[32.680939,103.601372],[32.68008,103.601387],[32.679352,103.601357],[32.67865,103.60128],[32.67775,103.60128],[32.67635,103.601967],[32.67564,103.60199],[32.6745,103.601768],[32.673389,103.60173],[32.671902,103.601349],[32.671082,103.601578],[32.670502,103.601852],[32.669762,103.602242],[32.66906,103.602257],[32.667542,103.602127],[32.666489,103.602188],[32.665051,103.602013],[32.663712,103.601898],[32.661572,103.601799],[32.660351,103.601608],[32.659389,103.601212],[32.658588,103.60099],[32.657459,103.600868],[32.657021,103.600853],[32.655869,103.600868],[32.654869,103.600761],[32.652618,103.600151],[32.65189,103.599792],[32.651279,103.599457],[32.650551,103.598969],[32.650131,103.598763],[32.64856,103.59819],[32.64624,103.597343],[32.64613,103.597282],[32.646099,103.597252],[32.644691,103.596863],[32.64436,103.596947],[32.644329,103.59697],[32.64418,103.597214],[32.643421,103.598312],[32.643139,103.598549],[32.64296,103.598618],[32.64146,103.598503],[32.640888,103.598488],[32.638309,103.598106],[32.637669,103.597969],[32.637081,103.597794],[32.63623,103.597557],[32.635571,103.597229],[32.634159,103.59642],[32.633621,103.595932],[32.633099,103.595192],[32.63298,103.595062],[32.630989,103.593307],[32.630871,103.593224],[32.63018,103.593033],[32.62859,103.592728],[32.627861,103.592484],[32.627331,103.592087],[32.626701,103.591553],[32.626431,103.591339],[32.625969,103.591042],[32.625401,103.590927],[32.624741,103.590843],[32.623569,103.590637],[32.62336,103.590607],[32.620441,103.590843],[32.61964,103.590919],[32.618912,103.591141],[32.618301,103.591522],[32.617229,103.592491],[32.61618,103.593407],[32.613911,103.59549],[32.612141,103.597343],[32.60939,103.600151],[32.60881,103.600609],[32.60812,103.600983],[32.607559,103.601189],[32.60487,103.602074],[32.60397,103.601501],[32.599178,103.605614],[32.598019,103.605003],[32.597408,103.605362],[32.597099,103.605637],[32.596779,103.605873],[32.5961,103.606407],[32.59581,103.607697],[32.58968,103.610817],[32.588779,103.609818],[32.587219,103.609459],[32.58707,103.609444],[32.586552,103.60965],[32.58593,103.61013],[32.585361,103.610619],[32.585091,103.61097],[32.584961,103.611092],[32.58469,103.611214],[32.584171,103.611511],[32.58358,103.612038],[32.583382,103.613289],[32.573071,103.617027],[32.572479,103.61599],[32.572121,103.61599],[32.57011,103.616623],[32.56966,103.616882],[32.569519,103.617027],[32.569351,103.617126],[32.56926,103.617233],[32.568729,103.617599],[32.56815,103.617767],[32.567829,103.61776],[32.567451,103.617661],[32.566639,103.617523],[32.566261,103.61763],[32.565498,103.618553],[32.565231,103.618668],[32.561069,103.620064],[32.560051,103.620728],[32.560001,103.62178],[32.54961,103.625549],[32.546169,103.626801],[32.544022,103.627579],[32.5396,103.629181],[32.539082,103.628212],[32.530869,103.630623],[32.528111,103.630257],[32.527721,103.630333],[32.526001,103.631042],[32.52544,103.631203],[32.52467,103.631088],[32.523991,103.630859],[32.523708,103.630859],[32.522869,103.631157],[32.52224,103.631233],[32.521599,103.631126],[32.520771,103.631111],[32.520168,103.631279],[32.519741,103.6315],[32.519482,103.631683],[32.519119,103.632027],[32.518742,103.632233],[32.51857,103.632362],[32.518261,103.632889],[32.518059,103.633118],[32.517811,103.633324],[32.517342,103.633774],[32.516441,103.634323],[32.5159,103.634613],[32.515598,103.634857],[32.515469,103.635094],[32.515301,103.636017],[32.515099,103.636948],[32.514881,103.637337],[32.514751,103.63868],[32.510632,103.641068],[32.509769,103.639954],[32.509331,103.639832],[32.508751,103.63958],[32.508579,103.639526],[32.508289,103.639519],[32.507221,103.639709],[32.506599,103.639847],[32.505138,103.64035],[32.504871,103.640373],[32.504539,103.640282],[32.504421,103.640213],[32.504131,103.639923],[32.504051,103.639793],[32.502449,103.639282],[32.502102,103.639664],[32.501961,103.639877],[32.501869,103.640083],[32.50156,103.641472],[32.501389,103.642082],[32.500481,103.644814],[32.4991,103.645393],[32.498219,103.645126],[32.49791,103.645111],[32.49778,103.645119],[32.49712,103.645409],[32.496429,103.645859],[32.493111,103.648804],[32.492649,103.648972],[32.49192,103.649017],[32.49152,103.648979],[32.491261,103.648872],[32.491058,103.648666],[32.49078,103.648216],[32.490429,103.647552],[32.490261,103.647293],[32.48975,103.646797],[32.489422,103.646507],[32.488869,103.646133],[32.488708,103.646088],[32.488609,103.646103],[32.488419,103.646156],[32.488251,103.646294],[32.487968,103.646683],[32.487228,103.647362],[32.4869,103.647827],[32.486591,103.648651],[32.486309,103.649246],[32.485149,103.651466],[32.484699,103.652138],[32.484268,103.652397],[32.483719,103.652641],[32.482811,103.652809],[32.481812,103.653061],[32.481209,103.653191],[32.480999,103.653259],[32.48045,103.653709],[32.480061,103.654411],[32.479839,103.655159],[32.479599,103.656219],[32.479561,103.656441],[32.479481,103.657791],[32.47961,103.659042],[32.475731,103.661293],[32.474949,103.660133],[32.474339,103.660072],[32.47393,103.660149],[32.472481,103.660339],[32.47221,103.660408],[32.469349,103.661484],[32.468899,103.662041],[32.46833,103.662727],[32.467201,103.664032],[32.466019,103.66507],[32.464512,103.666359],[32.464039,103.666801],[32.463879,103.66703],[32.463669,103.667793],[32.463581,103.668404],[32.463928,103.669243],[32.455311,103.675484],[32.44862,103.680344],[32.443989,103.683693],[32.438961,103.687317],[32.43782,103.686546],[32.43652,103.686813],[32.436062,103.686958],[32.435749,103.687141],[32.43425,103.688454],[32.433849,103.688766],[32.43364,103.688881],[32.43288,103.689041],[32.432201,103.689087],[32.431709,103.689262],[32.43148,103.689537],[32.431221,103.689781],[32.430901,103.690392],[32.430779,103.690521],[32.430569,103.690689],[32.430302,103.691002],[32.43005,103.691017],[32.429619,103.691109],[32.429199,103.691223],[32.428699,103.691429],[32.4282,103.691597],[32.427891,103.691879],[32.427719,103.692093],[32.427269,103.692978],[32.42688,103.693932],[32.426559,103.694733],[32.426208,103.695396],[32.425591,103.695999],[32.42511,103.6968],[32.424549,103.697533],[32.423981,103.698036],[32.42355,103.69838],[32.42337,103.698738],[32.423248,103.699593],[32.42337,103.700943],[32.42247,103.701736],[32.42268,103.703369],[32.422531,103.703758],[32.421791,103.704437],[32.42112,103.705002],[32.420502,103.705597],[32.419819,103.70636],[32.41909,103.707314],[32.41893,103.707489],[32.4179,103.709068],[32.41293,103.713463],[32.411888,103.713661],[32.410511,103.71376],[32.409721,103.713173],[32.4021,103.720001],[32.401299,103.720428],[32.387909,103.726318],[32.387878,103.727661],[32.387779,103.727737],[32.387428,103.728081],[32.387211,103.728348],[32.386478,103.728844],[32.38607,103.728958],[32.385349,103.728912],[32.384682,103.728897],[32.383949,103.728867],[32.38303,103.727943],[32.37851,103.728539],[32.378052,103.729881],[32.377319,103.730423],[32.377121,103.730499],[32.37574,103.730873],[32.374809,103.731003],[32.374081,103.731056],[32.373859,103.73111],[32.373112,103.73143],[32.37228,103.731667],[32.371811,103.73175],[32.371632,103.731697],[32.37093,103.731216],[32.369781,103.730347],[32.369221,103.729057],[32.365871,103.728638],[32.36549,103.726868],[32.365139,103.726471],[32.364941,103.726196],[32.364769,103.726021],[32.3647,103.725861],[32.36459,103.725563],[32.364441,103.724899],[32.364208,103.724403],[32.363659,103.723984],[32.36335,103.723862],[32.36224,103.723877],[32.361752,103.723869],[32.361462,103.723907],[32.3605,103.724121],[32.360321,103.724121],[32.35928,103.723869],[32.358891,103.724007],[32.358719,103.724167],[32.358139,103.725037],[32.35788,103.725449],[32.357471,103.726189],[32.35717,103.72718],[32.357121,103.727638],[32.357059,103.727814],[32.356861,103.727661],[32.35606,103.728683],[32.356659,103.730026],[32.356579,103.730827],[32.356449,103.731697],[32.356121,103.733276],[32.355782,103.735153],[32.355492,103.735832],[32.35524,103.736168],[32.35519,103.736282],[32.35503,103.736519],[32.35458,103.736748],[32.353859,103.736992],[32.3536,103.73703],[32.35339,103.73703],[32.352219,103.736847],[32.350929,103.736702],[32.350719,103.736748],[32.350319,103.736893],[32.350101,103.736282],[32.34993,103.737289],[32.34943,103.737503],[32.348598,103.737381],[32.348,103.737122],[32.347729,103.736923],[32.347641,103.735962],[32.34623,103.735779],[32.345821,103.734337],[32.34568,103.7342],[32.345551,103.734009],[32.345379,103.733856],[32.340771,103.727203],[32.34053,103.726822],[32.340481,103.726677],[32.340439,103.726479],[32.34045,103.726242],[32.3405,103.726082],[32.34066,103.72567],[32.340672,103.725456],[32.340439,103.724876],[32.340099,103.724167],[32.340019,103.723389],[32.340031,103.72316],[32.340111,103.7229],[32.340462,103.722481],[32.340611,103.722221],[32.340599,103.721718],[32.340519,103.721527],[32.340092,103.720932],[32.339809,103.720772],[32.33762,103.72052],[32.33683,103.72049],[32.336369,103.720421],[32.335609,103.720207],[32.33519,103.720032],[32.334728,103.719711],[32.334259,103.71933],[32.333832,103.719162],[32.333599,103.719109],[32.332722,103.718712],[32.33234,103.718613],[32.331558,103.71875],[32.330231,103.719467],[32.329472,103.719803],[32.329041,103.719841],[32.328621,103.719849],[32.32827,103.71981],[32.327869,103.719887],[32.327389,103.719841],[32.327122,103.719658],[32.327019,103.719437],[32.32682,103.718987],[32.32658,103.718788],[32.32629,103.718719],[32.326061,103.718613],[32.325771,103.718536],[32.325531,103.71859],[32.325089,103.718727],[32.324959,103.718803],[32.32428,103.719032],[32.32365,103.719139],[32.323429,103.719193],[32.3232,103.719276],[32.323051,103.71936],[32.322319,103.719917],[32.321701,103.720268],[32.320808,103.72068],[32.320461,103.720589],[32.32016,103.720291],[32.319981,103.7202],[32.31926,103.720177],[32.319061,103.7202],[32.318741,103.720169],[32.318642,103.720329],[32.318451,103.720284],[32.31786,103.720062],[32.317741,103.720062],[32.317532,103.720154],[32.317039,103.720467],[32.316441,103.721413],[32.316071,103.721367],[32.315369,103.72123],[32.314651,103.720978],[32.313961,103.720818],[32.313251,103.720802],[32.312721,103.720818],[32.312141,103.720993],[32.31142,103.721336],[32.31131,103.721367],[32.310471,103.721367],[32.310162,103.721313],[32.30938,103.720802],[32.30904,103.72068],[32.308788,103.720657],[32.30843,103.720863],[32.308201,103.7211],[32.307041,103.721878],[32.30603,103.722488],[32.30579,103.722588],[32.305161,103.723068],[32.304489,103.723373],[32.30444,103.723373],[32.303829,103.723457],[32.303188,103.72361],[32.302551,103.723793],[32.301521,103.723824],[32.300659,103.723892],[32.300339,103.723938],[32.29982,103.724121],[32.299648,103.724281],[32.299541,103.724426],[32.29929,103.725037],[32.299129,103.725609],[32.299,103.726334],[32.29895,103.726807],[32.29908,103.72802],[32.28278,103.735847],[32.282139,103.734863],[32.281811,103.734901],[32.281319,103.734909],[32.280991,103.734932],[32.280048,103.735046],[32.279228,103.734962],[32.27861,103.735107],[32.278561,103.73513],[32.2784,103.735298],[32.277771,103.736427],[32.277031,103.737267],[32.276718,103.737709],[32.27663,103.7388],[32.27467,103.739754],[32.274441,103.741219],[32.273811,103.741577],[32.27319,103.741737],[32.272499,103.741997],[32.271721,103.742462],[32.27121,103.742844],[32.270771,103.743271],[32.27013,103.743736],[32.269711,103.743942],[32.26902,103.744179],[32.26878,103.744217],[32.268242,103.7444],[32.267399,103.744713],[32.266949,103.745033],[32.266449,103.745407],[32.266289,103.745499],[32.26561,103.745697],[32.264511,103.745117],[32.26244,103.74675],[32.26263,103.748032],[32.262428,103.748466],[32.26202,103.748802],[32.261749,103.748993],[32.26149,103.749092],[32.261181,103.749313],[32.260849,103.749634],[32.260441,103.749863],[32.259892,103.749931],[32.259129,103.749352],[32.255508,103.75219],[32.255661,103.75383],[32.25523,103.755402],[32.2547,103.756187],[32.254581,103.756477],[32.25425,103.756783],[32.25404,103.757088],[32.253658,103.757812],[32.253181,103.758797],[32.252628,103.759499],[32.252041,103.759956],[32.251362,103.76017],[32.250881,103.760178],[32.250431,103.760246],[32.250271,103.760193],[32.250019,103.760139],[32.24942,103.760101],[32.24892,103.760193],[32.24855,103.760353],[32.248371,103.760628],[32.24818,103.760788],[32.247921,103.76078],[32.247719,103.760857],[32.247601,103.760986],[32.24733,103.761414],[32.24699,103.761803],[32.24659,103.762108],[32.246311,103.762253],[32.24559,103.762543],[32.24535,103.762657],[32.24522,103.762688],[32.244541,103.762772],[32.24379,103.762787],[32.243359,103.762917],[32.243111,103.763077],[32.242298,103.764],[32.24152,103.764717],[32.240849,103.765167],[32.2402,103.76545],[32.239552,103.765663],[32.238811,103.765701],[32.23835,103.765701],[32.23772,103.765602],[32.237068,103.765427],[32.236561,103.76516],[32.236031,103.764816],[32.23555,103.764458],[32.234901,103.763496],[32.233509,103.764069],[32.23288,103.764282],[32.224331,103.765762],[32.220219,103.766548],[32.219711,103.765091],[32.219559,103.764893],[32.219341,103.764732],[32.219231,103.764687],[32.21899,103.764641],[32.218861,103.764603],[32.217991,103.764503],[32.216721,103.764427],[32.21656,103.764503],[32.21627,103.76458],[32.215931,103.764526],[32.215691,103.764557],[32.215611,103.764603],[32.215092,103.7649],[32.21487,103.765068],[32.214329,103.765556],[32.213848,103.765984],[32.21368,103.766083],[32.213299,103.766129],[32.21262,103.765923],[32.212448,103.765938],[32.212139,103.765953],[32.21146,103.766144],[32.211151,103.766167],[32.210129,103.766037],[32.20974,103.765907],[32.208851,103.765282],[32.20853,103.765259],[32.20784,103.765244],[32.207291,103.765198],[32.206909,103.765213],[32.205502,103.765457],[32.20406,103.765137],[32.20266,103.764061],[32.202389,103.763924],[32.202091,103.763809],[32.201061,103.763603],[32.200821,103.763321],[32.200741,103.762932],[32.200588,103.762619],[32.200359,103.762421],[32.200008,103.762177],[32.199879,103.762032],[32.199371,103.762123],[32.19912,103.762032],[32.197449,103.761223],[32.19677,103.760948],[32.19651,103.760857],[32.19553,103.760399],[32.195431,103.760384],[32.194851,103.760391],[32.19352,103.760483],[32.193169,103.76049],[32.192711,103.760437],[32.19249,103.760361],[32.192451,103.760384],[32.19223,103.760292],[32.191719,103.760223],[32.19112,103.760071],[32.190578,103.759804],[32.190128,103.759468],[32.189541,103.758987],[32.189251,103.758774],[32.189072,103.758713],[32.1884,103.758659],[32.18734,103.75856],[32.186588,103.758537],[32.18642,103.758507],[32.185841,103.758492],[32.185539,103.758423],[32.18528,103.758179],[32.185169,103.757729],[32.184952,103.757149],[32.184818,103.756958],[32.184601,103.756721],[32.183971,103.756264],[32.182529,103.755493],[32.18235,103.755463],[32.180672,103.755501],[32.18037,103.755623],[32.180271,103.755722],[32.179218,103.756973],[32.17902,103.757111],[32.178589,103.757187],[32.178162,103.757187],[32.17794,103.757133],[32.1782,103.757179],[32.177479,103.756889],[32.176491,103.756157],[32.175869,103.755608],[32.17561,103.755188],[32.175282,103.754471],[32.17485,103.753616],[32.174622,103.752991],[32.174191,103.751953],[32.174129,103.751694],[32.173981,103.75135],[32.173321,103.750267],[32.172981,103.749519],[32.172749,103.748756],[32.17263,103.748497],[32.17244,103.748177],[32.171909,103.747513],[32.171791,103.747299],[32.171471,103.746872],[32.171249,103.746223],[32.171101,103.745667],[32.171001,103.745117],[32.171021,103.744598],[32.171059,103.744263],[32.17112,103.743896],[32.171131,103.743523],[32.171082,103.743179],[32.170929,103.742683],[32.1707,103.742149],[32.17046,103.741623],[32.170261,103.741432],[32.170029,103.74147],[32.169788,103.741653],[32.169571,103.741737],[32.16925,103.741951],[32.168861,103.742126],[32.168369,103.742264],[32.167759,103.742081],[32.167648,103.741997],[32.16708,103.741257],[32.166809,103.741043],[32.16544,103.740593],[32.164761,103.740387],[32.164242,103.740181],[32.163879,103.739899],[32.163651,103.739647],[32.163429,103.739227],[32.16325,103.738724],[32.163109,103.738358],[32.162701,103.737907],[32.162079,103.737297],[32.16188,103.737061],[32.161549,103.736763],[32.161449,103.736633],[32.161121,103.73629],[32.16048,103.735924],[32.159801,103.735672],[32.158619,103.735321],[32.158321,103.735168],[32.157829,103.734978],[32.157619,103.734871],[32.157261,103.734863],[32.15641,103.734749],[32.156132,103.734734],[32.155869,103.734741],[32.15556,103.734787],[32.15498,103.734978],[32.154881,103.734993],[32.15456,103.734863],[32.154018,103.734497],[32.153561,103.734306],[32.153309,103.734123],[32.153069,103.733887],[32.15284,103.73362],[32.152649,103.733353],[32.152611,103.7332],[32.152512,103.733101],[32.152302,103.732964],[32.152199,103.732933],[32.151611,103.732811],[32.150921,103.732643],[32.150028,103.73246],[32.149891,103.732407],[32.14967,103.732384],[32.149471,103.732323],[32.149132,103.732269],[32.148769,103.732162],[32.148399,103.732109],[32.148102,103.732147],[32.147652,103.732246],[32.147018,103.732269],[32.146889,103.732231],[32.146309,103.731903],[32.146118,103.731773],[32.145882,103.731682],[32.145241,103.731667],[32.14481,103.731697],[32.144581,103.731773],[32.143681,103.732109],[32.14352,103.732193],[32.14336,103.732239],[32.143082,103.732399],[32.142429,103.732674],[32.142059,103.732903],[32.14172,103.7332],[32.141521,103.733467],[32.14122,103.733803],[32.140888,103.733917],[32.14045,103.733757],[32.140251,103.733597],[32.139679,103.733017],[32.13945,103.732826],[32.138981,103.732613],[32.138741,103.732536],[32.138519,103.732513],[32.138199,103.732567],[32.137489,103.732903],[32.13707,103.733231],[32.136742,103.733437],[32.136459,103.733528],[32.136021,103.73365],[32.135731,103.733757],[32.13538,103.733849],[32.135151,103.733849],[32.134472,103.733772],[32.134109,103.733658],[32.1339,103.733612],[32.133678,103.733719],[32.13327,103.734016],[32.132912,103.734138],[32.132721,103.734177],[32.132309,103.734451],[32.13208,103.734528],[32.131302,103.734627],[32.130322,103.734642],[32.129959,103.734703],[32.129459,103.734818],[32.128342,103.734962],[32.12801,103.734932],[32.12796,103.734947],[32.127811,103.734932],[32.127411,103.734818],[32.127129,103.734779],[32.126709,103.734642],[32.126419,103.734444],[32.12624,103.734329],[32.12587,103.733849],[32.125641,103.733711],[32.125179,103.733582],[32.124821,103.733543],[32.123871,103.733559],[32.12331,103.733521],[32.122761,103.733383],[32.12159,103.732971],[32.12088,103.732597],[32.120209,103.732147],[32.119419,103.731651],[32.118851,103.731148],[32.118061,103.73037],[32.11755,103.729736],[32.117001,103.728928],[32.11657,103.728508],[32.116482,103.728447],[32.11618,103.728317],[32.115959,103.728271],[32.115841,103.728233],[32.11515,103.728073],[32.114681,103.727882],[32.114521,103.727791],[32.11412,103.727226],[32.11396,103.727127],[32.1138,103.726967],[32.113609,103.726753],[32.11338,103.726562],[32.112801,103.726143],[32.11261,103.726112],[32.112209,103.726151],[32.112041,103.726128],[32.111629,103.725693],[32.111462,103.725578],[32.111382,103.725487],[32.11079,103.725159],[32.110691,103.725189],[32.110519,103.725319],[32.110249,103.725563],[32.11005,103.725731],[32.109749,103.725662],[32.109631,103.725563],[32.109341,103.725449],[32.108501,103.725731],[32.108212,103.725983],[32.107979,103.726227],[32.107899,103.726288],[32.107689,103.726372],[32.107262,103.726448],[32.107059,103.726433],[32.106621,103.726227],[32.1064,103.725937],[32.106468,103.725822],[32.10664,103.725662],[32.106419,103.725403],[32.106838,103.724632],[32.106541,103.724342],[32.106781,103.723579],[32.10656,103.723412],[32.106461,103.723213],[32.105831,103.723534],[32.10561,103.723511],[32.105389,103.723541],[32.103531,103.725349],[32.103321,103.725487],[32.103142,103.725563],[32.102829,103.725723],[32.102638,103.725754],[32.102261,103.725891],[32.102081,103.725922],[32.1017,103.725937],[32.100639,103.725937],[32.100368,103.725883],[32.100151,103.725639],[32.099911,103.725288],[32.099491,103.724838],[32.0994,103.724709],[32.09919,103.724068],[32.09903,103.723351],[32.09874,103.722366],[32.09869,103.722183],[32.098431,103.721733],[32.098091,103.721329],[32.098011,103.721268],[32.097778,103.72123],[32.09734,103.721336],[32.096729,103.721321],[32.096039,103.721069],[32.095852,103.72084],[32.095718,103.720329],[32.095692,103.720032],[32.095558,103.719658],[32.095242,103.71949],[32.094551,103.719528],[32.093971,103.719597],[32.093029,103.719841],[32.092461,103.720016],[32.092072,103.719994],[32.09169,103.720093],[32.09132,103.720222],[32.090988,103.720383],[32.090691,103.720467],[32.09034,103.720451],[32.090019,103.72039],[32.08976,103.720177],[32.089458,103.719994],[32.089298,103.719978],[32.08894,103.719887],[32.088661,103.71965],[32.088459,103.719582],[32.08799,103.719368],[32.0877,103.71917],[32.087158,103.718628],[32.086891,103.718407],[32.08662,103.718384],[32.08622,103.718437],[32.085991,103.718513],[32.085491,103.718719],[32.085121,103.718826],[32.08485,103.718964],[32.08456,103.719177],[32.084278,103.719513],[32.083988,103.719597],[32.083691,103.719414],[32.08334,103.719078],[32.083149,103.71891],[32.082939,103.718788],[32.082661,103.718811],[32.082359,103.718948],[32.081539,103.719131],[32.081551,103.719147],[32.08149,103.719147],[32.081402,103.719177],[32.081322,103.719177],[32.081108,103.719292],[32.0807,103.719437],[32.080441,103.719467],[32.079571,103.719292],[32.079418,103.7192],[32.079071,103.718903],[32.078289,103.718468],[32.077709,103.71804],[32.07732,103.717697],[32.077068,103.717644],[32.076691,103.717667],[32.07597,103.71785],[32.075291,103.717949],[32.074791,103.717903],[32.07415,103.717781],[32.073978,103.71769],[32.073811,103.717697],[32.073521,103.71759],[32.073269,103.71756],[32.073101,103.717461],[32.072868,103.717392],[32.072659,103.7173],[32.072201,103.717331],[32.071869,103.717308],[32.071651,103.717239],[32.071442,103.717163],[32.071369,103.717056],[32.071178,103.716927],[32.070919,103.716942],[32.070351,103.717209],[32.069969,103.717339],[32.069939,103.717133],[32.069771,103.716927],[32.071201,103.716042],[32.07135,103.715736],[32.07127,103.715477],[32.070969,103.715363],[32.070621,103.715279],[32.070332,103.715103],[32.070061,103.714867],[32.06992,103.714828],[32.06934,103.714539],[32.06897,103.714447],[32.068741,103.714417],[32.068489,103.714371],[32.068489,103.714256],[32.068359,103.714127],[32.068241,103.71376],[32.068069,103.71347],[32.067909,103.713387],[32.067501,103.713242],[32.06707,103.713173],[32.066971,103.713188],[32.06673,103.713463],[32.066639,103.713783],[32.06649,103.71405],[32.065781,103.714432],[32.065659,103.714233],[32.065651,103.713913],[32.06575,103.71283],[32.065701,103.712608],[32.065639,103.712532],[32.065121,103.71212],[32.065071,103.711838],[32.065239,103.711227],[32.065262,103.710899],[32.06509,103.710602],[32.064751,103.710327],[32.064442,103.710121],[32.064159,103.710213],[32.063801,103.71051],[32.063591,103.710823],[32.06345,103.711143],[32.063278,103.711411],[32.063019,103.711502],[32.06271,103.711517],[32.062469,103.71138],[32.062168,103.711082],[32.06192,103.710777],[32.06189,103.710609],[32.061798,103.710243],[32.061611,103.709633],[32.06134,103.709129],[32.0611,103.708908],[32.06097,103.70874],[32.06094,103.708641],[32.060879,103.708618],[32.060692,103.708397],[32.060551,103.708183],[32.06041,103.707863],[32.06041,103.707817],[32.060459,103.707581],[32.060478,103.707321],[32.06041,103.707062],[32.060181,103.706543],[32.06015,103.70636],[32.060181,103.705681],[32.05999,103.705177],[32.059761,103.704674],[32.05954,103.704399],[32.059391,103.704086],[32.05901,103.703987],[32.058632,103.703957],[32.05806,103.703819],[32.057991,103.703613],[32.05806,103.703194],[32.057499,103.703552],[32.057331,103.703819],[32.05698,103.704231],[32.05648,103.704903],[32.05624,103.705261],[32.056068,103.705452],[32.055962,103.705627],[32.055691,103.705872],[32.0555,103.705994],[32.05529,103.70607],[32.055061,103.7062],[32.054859,103.706284],[32.0546,103.706306],[32.054409,103.705971],[32.0541,103.705528],[32.05405,103.705307],[32.053959,103.705109],[32.053959,103.704964],[32.054081,103.704842],[32.054539,103.704552],[32.054741,103.704468],[32.054859,103.704231],[32.05481,103.703911],[32.054722,103.703659],[32.0546,103.703461],[32.054501,103.703247],[32.054451,103.703056],[32.054619,103.702797],[32.05455,103.702911],[32.056252,103.701553],[32.056499,103.701393],[32.056709,103.70118],[32.056801,103.701027],[32.057209,103.700912],[32.057961,103.700989],[32.058311,103.700768],[32.058529,103.700684],[32.058811,103.700706],[32.059181,103.700844],[32.0592,103.700867],[32.059509,103.701019],[32.059669,103.701073],[32.060009,103.700996],[32.060581,103.700813],[32.06073,103.700661],[32.06078,103.700417],[32.06076,103.700233],[32.06057,103.699951],[32.060429,103.699837],[32.060169,103.699677],[32.058109,103.698669],[32.057529,103.698318],[32.057381,103.698257],[32.057308,103.69825],[32.057011,103.698143],[32.056919,103.69809],[32.05685,103.698013],[32.056671,103.697723],[32.056561,103.697388],[32.056461,103.696854],[32.0564,103.696701],[32.055801,103.695648],[32.055531,103.695229],[32.055012,103.694649],[32.054909,103.69442],[32.05484,103.693748],[32.054829,103.693298],[32.054821,103.693039],[32.05484,103.69265],[32.054699,103.692177],[32.05471,103.692101],[32.054562,103.691803],[32.053829,103.690521],[32.053612,103.690224],[32.053162,103.689713],[32.052589,103.688713],[32.052509,103.688606],[32.05228,103.688454],[32.051979,103.688316],[32.051769,103.688171],[32.05154,103.687897],[32.05138,103.687752],[32.051041,103.687187],[32.05088,103.687027],[32.050549,103.687027],[32.04998,103.687103],[32.049671,103.686989],[32.04921,103.686707],[32.04884,103.68615],[32.048988,103.685677],[32.048859,103.684868],[32.048698,103.684334],[32.04834,103.6828],[32.048092,103.681953],[32.048038,103.681664],[32.048149,103.68132],[32.04829,103.681358],[32.048149,103.681213],[32.047981,103.680946],[32.047791,103.680733],[32.04731,103.680023],[32.046822,103.679764],[32.046478,103.679703],[32.046249,103.679611],[32.046211,103.679604],[32.0462,103.679619],[32.045959,103.679878],[32.045879,103.680122],[32.045681,103.680962],[32.045631,103.681129],[32.045521,103.681473],[32.045311,103.682533],[32.045219,103.682877],[32.04509,103.683601],[32.044991,103.683937],[32.044788,103.684158],[32.044609,103.684196],[32.043598,103.68428],[32.042339,103.684319],[32.04211,103.684349],[32.04179,103.684509],[32.041679,103.684669],[32.0415,103.684883],[32.04113,103.684967],[32.041069,103.684937],[32.040691,103.684624],[32.04034,103.68454],[32.03973,103.684624],[32.039589,103.684593],[32.039341,103.684464],[32.038689,103.683983],[32.038311,103.68383],[32.0382,103.683769],[32.038101,103.683678],[32.037682,103.683083],[32.037521,103.682961],[32.037281,103.682922],[32.037289,103.682953],[32.037029,103.683006],[32.03677,103.68309],[32.036461,103.683273],[32.036072,103.683601],[32.036011,103.683693],[32.035789,103.684303],[32.035461,103.684898],[32.035381,103.686089],[32.033588,103.686653],[32.03339,103.687881],[32.033291,103.688087],[32.033081,103.688461],[32.032982,103.68856],[32.032951,103.688622],[32.03281,103.688744],[32.032391,103.689171],[32.032379,103.689217],[32.03233,103.689247],[32.031929,103.689728],[32.031879,103.689758],[32.0317,103.689934],[32.031361,103.69017],[32.031109,103.690269],[32.030891,103.690323],[32.030621,103.690323],[32.030411,103.690247],[32.029942,103.690117],[32.029812,103.690063],[32.029789,103.690041],[32.029701,103.69001],[32.02953,103.689987],[32.02906,103.689789],[32.02874,103.689713],[32.028679,103.689682],[32.02832,103.689552],[32.027969,103.689598],[32.02779,103.689713],[32.02774,103.689789],[32.027599,103.689911],[32.02747,103.690048],[32.02689,103.690582],[32.026562,103.690826],[32.025902,103.691238],[32.025791,103.691353],[32.02533,103.691628],[32.025211,103.691757],[32.025082,103.691963],[32.02504,103.692108],[32.025021,103.692329],[32.025021,103.692688],[32.02504,103.69278],[32.025021,103.693359],[32.024921,103.693649],[32.024811,103.69381],[32.024632,103.693947],[32.02438,103.694],[32.024231,103.693916],[32.023949,103.693527],[32.02346,103.693108],[32.023392,103.693024],[32.023048,103.692467],[32.0228,103.692017],[32.022049,103.690773],[32.02161,103.68985],[32.02132,103.68856],[32.021198,103.68856],[32.018799,103.687172],[32.018398,103.687973],[32.017841,103.688713],[32.017681,103.688873],[32.01749,103.688988],[32.017269,103.689072],[32.016529,103.689171],[32.01627,103.689232],[32.016109,103.68924],[32.015911,103.689194],[32.015789,103.689087],[32.015659,103.688873],[32.015282,103.688042],[32.01524,103.687988],[32.015141,103.687767],[32.01498,103.6875],[32.014832,103.687309],[32.014671,103.687241],[32.014599,103.687248],[32.014469,103.687302],[32.014351,103.687393],[32.01403,103.687553],[32.013962,103.68763],[32.013512,103.687889],[32.013248,103.687958],[32.013031,103.687897],[32.012581,103.687714],[32.012291,103.687553],[32.01202,103.687332],[32.01173,103.686836],[32.01165,103.686684],[32.011608,103.686623],[32.01152,103.686417],[32.0112,103.685883],[32.01107,103.685593],[32.010941,103.68515],[32.010891,103.684738],[32.010761,103.683968],[32.010681,103.683746],[32.01062,103.683708],[32.010551,103.683678],[32.01012,103.683777],[32.00996,103.683853],[32.009838,103.683937],[32.00935,103.684143],[32.0093,103.684174],[32.009121,103.684242],[32.00806,103.684708],[32.00771,103.684776],[32.006889,103.684822],[32.005989,103.684822],[32.005859,103.684799],[32.00555,103.684593],[32.005421,103.684341],[32.005329,103.684013],[32.00515,103.683601],[32.005001,103.683434],[32.004749,103.683296],[32.004169,103.683273],[32.003941,103.68338],[32.00388,103.68364],[32.00391,103.684212],[32.004059,103.68502],[32.004089,103.685089],[32.004139,103.685707],[32.004219,103.686089],[32.00441,103.686531],[32.004959,103.687462],[32.005562,103.688522],[32.005859,103.689491],[32.005871,103.69001],[32.00568,103.690758],[32.00552,103.691643],[32.004871,103.693199],[32.004799,103.693359],[32.0047,103.693489],[32.00449,103.693489],[32.004379,103.69326],[32.00444,103.692886],[32.004509,103.692108],[32.00449,103.691849],[32.00444,103.691673],[32.004009,103.690979],[32.00378,103.690742],[32.003441,103.690742],[32.003101,103.690804],[32.00272,103.690826],[32.002499,103.690697],[32.002419,103.690392],[32.0023,103.689796],[32.002209,103.689667],[32.00145,103.688766],[32.00124,103.688393],[32.00082,103.687828],[32.000992,103.687607],[32.000961,103.687553],[32.00106,103.687531],[32.001209,103.687347],[32.00016,103.685837],[31.99964,103.685143],[31.99942,103.684769],[31.999229,103.684349],[31.99905,103.683792],[31.998989,103.683434],[31.998949,103.683281],[31.998859,103.683098],[31.998819,103.68306],[31.998409,103.682907],[31.998079,103.682671],[31.997959,103.682503],[31.997829,103.682228],[31.997499,103.682091],[31.997,103.682266],[31.996469,103.682426],[31.99605,103.682426],[31.99486,103.682411],[31.994129,103.681923],[31.99395,103.681549],[31.99382,103.680733],[31.99361,103.680489],[31.993389,103.680641],[31.992479,103.681931],[31.992331,103.682098],[31.99192,103.682259],[31.991211,103.682198],[31.990641,103.682121],[31.989719,103.681847],[31.98885,103.681557],[31.98814,103.681267],[31.98777,103.681091],[31.98768,103.680992],[31.987761,103.680817],[31.987921,103.680878],[31.988609,103.681297],[31.990959,103.681488],[31.991449,103.681488],[31.991989,103.68116],[31.9921,103.680992],[31.99231,103.680511],[31.99242,103.680313],[31.99271,103.680031],[31.992861,103.679916],[31.99299,103.679764],[31.993219,103.67907],[31.9935,103.678726],[31.993641,103.67865],[31.993731,103.678436],[31.99354,103.678329],[31.993441,103.678413],[31.99317,103.678703],[31.99308,103.678848],[31.992929,103.67939],[31.992689,103.67968],[31.992359,103.679787],[31.99194,103.680229],[31.99155,103.680397],[31.99077,103.680252],[31.990499,103.680153],[31.99,103.679901],[31.989771,103.679802],[31.98945,103.679733],[31.98896,103.679604],[31.988859,103.679558],[31.98881,103.679497],[31.988251,103.679222],[31.987749,103.679077],[31.98703,103.679077],[31.98654,103.679153],[31.98535,103.679413],[31.98514,103.67942],[31.984949,103.67939],[31.98477,103.679337],[31.98423,103.678902],[31.98399,103.678673],[31.98382,103.678413],[31.98365,103.677872],[31.983561,103.67691],[31.983561,103.676697],[31.983521,103.676399],[31.983509,103.676422],[31.983419,103.6763],[31.98321,103.676147],[31.983049,103.676079],[31.982861,103.676041],[31.9825,103.676003],[31.982321,103.676003],[31.98192,103.675957],[31.98172,103.675972],[31.981541,103.676003],[31.981211,103.676132],[31.98065,103.67646],[31.98004,103.676773],[31.979469,103.677017],[31.978901,103.677094],[31.97864,103.677101],[31.978121,103.677193],[31.97716,103.677322],[31.97678,103.677353],[31.97662,103.677361],[31.976391,103.677406],[31.975889,103.677467],[31.97518,103.677452],[31.97434,103.677452],[31.972851,103.677422],[31.972481,103.677498],[31.972269,103.677597],[31.972019,103.677711],[31.97098,103.678223],[31.970699,103.678268],[31.97035,103.67823],[31.970209,103.678169],[31.9692,103.677452],[31.969009,103.677406],[31.968861,103.677422],[31.968651,103.677467],[31.968149,103.677643],[31.96809,103.677628],[31.96797,103.677681],[31.96767,103.677963],[31.96734,103.678337],[31.96706,103.678772],[31.96677,103.679108],[31.96656,103.679268],[31.96627,103.679611],[31.96604,103.680023],[31.965691,103.680557],[31.9653,103.680649],[31.964319,103.680389],[31.963421,103.680183],[31.96328,103.679947],[31.96348,103.679878],[31.963539,103.679893],[31.96409,103.680153],[31.96434,103.680191],[31.96452,103.680191],[31.964701,103.680153],[31.96505,103.679962],[31.96534,103.679703],[31.96578,103.679398],[31.966209,103.678726],[31.966619,103.67791],[31.966999,103.677277],[31.96771,103.676239],[31.967979,103.675949],[31.96834,103.675743],[31.96888,103.675522],[31.96911,103.675323],[31.969009,103.675201],[31.96888,103.675278],[31.968691,103.675461],[31.968349,103.675697],[31.96773,103.67601],[31.96744,103.676178],[31.967239,103.676422],[31.96682,103.67717],[31.96637,103.677567],[31.965931,103.677887],[31.965731,103.677994],[31.96524,103.678032],[31.964569,103.677971],[31.96418,103.678108],[31.96356,103.678459],[31.963341,103.678352],[31.963449,103.678131],[31.964211,103.677711],[31.96497,103.677437],[31.96604,103.677391],[31.966471,103.677063],[31.96681,103.676117],[31.967119,103.675697],[31.96789,103.675049],[31.968349,103.674713],[31.968861,103.674477],[31.968941,103.674232],[31.968691,103.674118],[31.968611,103.674133],[31.968361,103.674217],[31.96801,103.674431],[31.96714,103.675072],[31.96664,103.67527],[31.966471,103.675247],[31.966181,103.675323],[31.96574,103.675484],[31.965521,103.675537],[31.96493,103.675636],[31.963949,103.675972],[31.96307,103.676208],[31.96254,103.67617],[31.96192,103.675827],[31.960951,103.675194],[31.960871,103.675133],[31.960739,103.674927],[31.96084,103.67482],[31.961069,103.674911],[31.96154,103.675346],[31.962179,103.675468],[31.962669,103.675468],[31.962879,103.67543],[31.96319,103.675293],[31.96376,103.674843],[31.96398,103.674622],[31.964001,103.674301],[31.963751,103.674339],[31.963039,103.674927],[31.962721,103.675018],[31.962061,103.674911],[31.96166,103.674683],[31.96077,103.673447],[31.96077,103.673424],[31.95982,103.672707],[31.95936,103.672493],[31.95837,103.672241],[31.95751,103.672234],[31.9566,103.672363],[31.95599,103.67218],[31.95553,103.671944],[31.95491,103.671677],[31.953979,103.671417],[31.953461,103.671089],[31.95289,103.67086],[31.95249,103.670731],[31.95084,103.670067],[31.950411,103.670029],[31.950081,103.670082],[31.94912,103.670319],[31.94894,103.670326],[31.948771,103.670303],[31.948521,103.670303],[31.94829,103.670341],[31.948021,103.670441],[31.94791,103.670509],[31.947599,103.670509],[31.94602,103.67038],[31.945841,103.670433],[31.94503,103.670418],[31.94383,103.670372],[31.943661,103.670387],[31.943171,103.670403],[31.942419,103.670448],[31.941509,103.67067],[31.941351,103.670692],[31.941111,103.670776],[31.940821,103.670929],[31.94002,103.671257],[31.93902,103.671547],[31.93849,103.671623],[31.93815,103.671692],[31.937639,103.671738],[31.937469,103.671783],[31.93697,103.671852],[31.93646,103.672043],[31.93585,103.672333],[31.934759,103.672752],[31.93413,103.672867],[31.933599,103.673019],[31.93354,103.673058],[31.932859,103.673279],[31.93256,103.67334],[31.931919,103.673264],[31.931589,103.673149],[31.931379,103.673042],[31.93117,103.672859],[31.930771,103.67276],[31.930531,103.67276],[31.93025,103.672691],[31.929951,103.672691],[31.92959,103.672623],[31.929331,103.672401],[31.929041,103.672379],[31.92865,103.672188],[31.92831,103.672058],[31.92807,103.672012],[31.927919,103.671783],[31.92782,103.671547],[31.92782,103.671547],[31.927719,103.671501],[31.92771,103.671417],[31.92749,103.671432],[31.926901,103.671623],[31.92679,103.671707],[31.926661,103.671753],[31.926371,103.671883],[31.92581,103.672043],[31.925119,103.672096],[31.9249,103.67215],[31.92481,103.672127],[31.92453,103.671997],[31.92415,103.671989],[31.923849,103.672096],[31.92359,103.67215],[31.922529,103.672409],[31.922079,103.672539],[31.921459,103.672783],[31.92091,103.673141],[31.920349,103.673569],[31.919979,103.67379],[31.919319,103.674133],[31.918659,103.674423],[31.91729,103.675049],[31.91678,103.675262],[31.91613,103.675682],[31.91539,103.676239],[31.915359,103.676582],[31.914511,103.677742],[31.914009,103.678291],[31.913601,103.678833],[31.91308,103.678993],[31.912729,103.679131],[31.9121,103.679466],[31.911579,103.679718],[31.91099,103.679832],[31.910271,103.679893],[31.90967,103.679993],[31.9091,103.68026],[31.907619,103.681168],[31.907049,103.681503],[31.906269,103.681839],[31.90589,103.681938],[31.904499,103.682213],[31.904249,103.682297],[31.90403,103.682281],[31.904119,103.682426],[31.903959,103.68248],[31.903431,103.682518],[31.90321,103.682602],[31.901991,103.683411],[31.90144,103.683746],[31.90024,103.684357],[31.899611,103.684769],[31.898359,103.685959],[31.897631,103.686348],[31.89703,103.686691],[31.896799,103.68679],[31.896139,103.686897],[31.89554,103.68692],[31.89493,103.686859],[31.894199,103.68663],[31.89382,103.686569],[31.893709,103.686577],[31.89315,103.686852],[31.89258,103.687492],[31.892191,103.68811],[31.891279,103.689301],[31.890841,103.689812],[31.89011,103.690804],[31.889391,103.691223],[31.889191,103.691292],[31.888929,103.691277],[31.888611,103.691231],[31.88792,103.690979],[31.887289,103.690666],[31.88656,103.690437],[31.886129,103.690376],[31.88599,103.690407],[31.885361,103.690712],[31.885,103.690567],[31.884661,103.690491],[31.884489,103.690613],[31.88435,103.690804],[31.884199,103.691093],[31.88397,103.691597],[31.883671,103.692062],[31.88357,103.692192],[31.88382,103.692307],[31.88278,103.69278],[31.882139,103.69313],[31.88139,103.693382],[31.87995,103.693489],[31.879089,103.693687],[31.87871,103.693871],[31.87858,103.693947],[31.878481,103.693916],[31.878059,103.694077],[31.87727,103.694649],[31.8771,103.694809],[31.876459,103.695236],[31.876011,103.69548],[31.87565,103.695534],[31.875521,103.695457],[31.874981,103.695259],[31.874701,103.695236],[31.874319,103.695343],[31.873831,103.695557],[31.87311,103.695923],[31.872299,103.696114],[31.871611,103.696136],[31.87063,103.696083],[31.87023,103.696098],[31.86994,103.696152],[31.869049,103.696487],[31.86899,103.696548],[31.86886,103.696854],[31.868799,103.697189],[31.86879,103.697708],[31.86862,103.698029],[31.868509,103.698059],[31.86772,103.698013],[31.867599,103.69796],[31.86746,103.69796],[31.867069,103.697998],[31.866871,103.697891],[31.86672,103.69767],[31.866501,103.697449],[31.866051,103.697197],[31.865761,103.696892],[31.865219,103.696541],[31.864599,103.696083],[31.864519,103.695999],[31.86438,103.695717],[31.863899,103.69545],[31.86322,103.695358],[31.862711,103.695427],[31.86134,103.695557],[31.861099,103.695442],[31.86097,103.695412],[31.860649,103.695374],[31.860359,103.695358],[31.860029,103.695427],[31.859529,103.695686],[31.85914,103.695938],[31.858879,103.695969],[31.85874,103.69603],[31.85832,103.696037],[31.858009,103.696136],[31.85664,103.696747],[31.856409,103.696793],[31.856199,103.696777],[31.8557,103.696693],[31.855379,103.696671],[31.85475,103.696823],[31.853951,103.69706],[31.853689,103.69709],[31.853081,103.697052],[31.852369,103.696953],[31.85146,103.696747],[31.850861,103.696648],[31.849831,103.696602],[31.849291,103.696671],[31.848949,103.696671],[31.8487,103.696831],[31.848021,103.696877],[31.847349,103.696777],[31.84696,103.696739],[31.8466,103.696617],[31.8458,103.695999],[31.845579,103.695717],[31.845369,103.695389],[31.845169,103.694893],[31.844761,103.694054],[31.844509,103.693748],[31.84387,103.693314],[31.8437,103.693169],[31.843361,103.693047],[31.84314,103.693153],[31.843069,103.693283],[31.843031,103.693367],[31.842939,103.693893],[31.842859,103.694023],[31.84277,103.694077],[31.841921,103.694344],[31.841619,103.694389],[31.841511,103.694489],[31.841459,103.694504],[31.84137,103.694862],[31.841339,103.695251],[31.84124,103.695763],[31.841061,103.696518],[31.84091,103.696716],[31.8407,103.696854],[31.840509,103.697037],[31.84016,103.697861],[31.839609,103.698853],[31.839121,103.699532],[31.83886,103.70108],[31.838499,103.701141],[31.838421,103.701653],[31.838369,103.702339],[31.838329,103.702591],[31.838249,103.702843],[31.83782,103.703659],[31.836781,103.704193],[31.836821,103.705048],[31.83672,103.705704],[31.83482,103.710823],[31.835489,103.71196],[31.83531,103.712517],[31.835011,103.713013],[31.83404,103.712936],[31.832781,103.716331],[31.83177,103.715919],[31.831129,103.716087],[31.830839,103.716331],[31.83029,103.716728],[31.83008,103.716957],[31.829781,103.717499],[31.829479,103.71814],[31.829161,103.718758],[31.82902,103.718933],[31.828711,103.719254],[31.82844,103.719498],[31.82836,103.719704],[31.828369,103.71981],[31.82831,103.719887],[31.828291,103.719978],[31.82782,103.720734],[31.826111,103.721161],[31.823009,103.724838],[31.822451,103.725182],[31.821369,103.725723],[31.820841,103.726112],[31.82028,103.72644],[31.820021,103.726547],[31.81946,103.726852],[31.819099,103.727173],[31.81893,103.727631],[31.818899,103.727852],[31.818899,103.727951],[31.81883,103.728271],[31.8188,103.728691],[31.81778,103.728409],[31.81743,103.7286],[31.81723,103.728737],[31.81683,103.728958],[31.81637,103.729111],[31.81601,103.729378],[31.815741,103.729462],[31.815371,103.729492],[31.81517,103.729584],[31.814989,103.729752],[31.814989,103.729897],[31.815599,103.730919],[31.81551,103.731392],[31.81539,103.731552],[31.81481,103.731583],[31.813641,103.731087],[31.813419,103.73127],[31.813231,103.731483],[31.81304,103.731712],[31.81291,103.73201],[31.812599,103.732117],[31.81226,103.732399],[31.81201,103.732559],[31.81159,103.732712],[31.81119,103.732674],[31.811069,103.732788],[31.81065,103.732727],[31.81044,103.732819],[31.81044,103.732948],[31.8099,103.732964],[31.809681,103.732986],[31.809259,103.733231],[31.809,103.73333],[31.808741,103.733383],[31.808281,103.733231],[31.8078,103.733177],[31.80777,103.733208],[31.80809,103.734016],[31.80801,103.734131],[31.80776,103.734138],[31.80702,103.733963],[31.806049,103.73391],[31.80595,103.734001],[31.80534,103.734131],[31.805201,103.734467],[31.805201,103.735077],[31.805111,103.735077],[31.805019,103.735962],[31.804911,103.736061],[31.80488,103.736153],[31.804291,103.735771],[31.803391,103.735138],[31.802799,103.734863],[31.802441,103.734749],[31.80213,103.73468],[31.801661,103.734596],[31.801189,103.734482],[31.80093,103.734444],[31.80147,103.733681],[31.80092,103.733597],[31.800369,103.733429],[31.79858,103.732971],[31.7983,103.732933],[31.797649,103.732811],[31.79673,103.732826],[31.796431,103.732918],[31.79594,103.733017],[31.79587,103.73307],[31.795811,103.73317],[31.79587,103.733437],[31.796009,103.733582],[31.795839,103.733742],[31.79594,103.73407],[31.79627,103.734894],[31.795931,103.735298],[31.79587,103.735443],[31.79578,103.735764],[31.795811,103.735786],[31.795839,103.735947],[31.795971,103.73629],[31.796049,103.736839],[31.796089,103.737083],[31.796089,103.737518],[31.79598,103.738052],[31.795971,103.738373],[31.795919,103.738823],[31.795839,103.739319],[31.79579,103.739769],[31.79587,103.740547],[31.796141,103.742592],[31.79608,103.742622],[31.79587,103.742081],[31.79582,103.742561],[31.79558,103.742851],[31.79524,103.743011],[31.79487,103.743393],[31.791531,103.753731],[31.790319,103.753754],[31.78965,103.754066],[31.789061,103.754578],[31.7887,103.755051],[31.78842,103.7556],[31.78825,103.755981],[31.787979,103.756798],[31.787901,103.756958],[31.787571,103.757446],[31.787069,103.758057],[31.78665,103.758438],[31.78623,103.758682],[31.786051,103.758743],[31.784121,103.759537],[31.783621,103.759697],[31.78343,103.759697],[31.783079,103.759857],[31.78252,103.760017],[31.78229,103.760429],[31.781969,103.760643],[31.781691,103.760643],[31.781321,103.760651],[31.78089,103.760803],[31.780479,103.760918],[31.78023,103.761017],[31.780081,103.761139],[31.77957,103.761681],[31.77924,103.762138],[31.7792,103.762253],[31.779119,103.762688],[31.77916,103.763138],[31.77915,103.763344],[31.77903,103.763603],[31.778959,103.763962],[31.77894,103.764267],[31.77887,103.764503],[31.77846,103.765358],[31.778111,103.765938],[31.777809,103.766518],[31.777611,103.766853],[31.777361,103.767357],[31.777241,103.767723],[31.77718,103.768112],[31.777109,103.76886],[31.7771,103.769501],[31.777121,103.769859],[31.77721,103.770309],[31.777361,103.771294],[31.77734,103.771584],[31.777189,103.77227],[31.7771,103.773232],[31.77759,103.774353],[31.776859,103.776382],[31.77779,103.777153],[31.777719,103.777412],[31.777571,103.777603],[31.77737,103.777733],[31.776951,103.777908],[31.77623,103.778259],[31.776159,103.778313],[31.77593,103.778969],[31.774679,103.778999],[31.774561,103.779083],[31.774309,103.779404],[31.77387,103.780411],[31.77351,103.781342],[31.773149,103.782097],[31.773479,103.78299],[31.76511,103.789299],[31.76424,103.788803],[31.764059,103.788918],[31.76396,103.789017],[31.76359,103.78933],[31.763201,103.789612],[31.76284,103.790092],[31.76256,103.790787],[31.76247,103.791367],[31.762871,103.792313],[31.7623,103.793083],[31.763201,103.794403],[31.76347,103.794762],[31.764099,103.795464],[31.764521,103.796158],[31.765039,103.797447],[31.765289,103.798141],[31.765409,103.798553],[31.765511,103.799088],[31.76552,103.799751],[31.765471,103.800423],[31.76553,103.801903],[31.765551,103.802116],[31.76556,103.802422],[31.76553,103.80323],[31.765539,103.805206],[31.76553,103.805862],[31.765511,103.805923],[31.765459,103.807419],[31.765499,103.807999],[31.76549,103.808167],[31.765591,103.808479],[31.765671,103.808777],[31.765909,103.809509],[31.766029,103.809807],[31.7661,103.810127],[31.76622,103.810516],[31.766491,103.81205],[31.76668,103.812691],[31.767071,103.813316],[31.76815,103.814392],[31.768391,103.814743],[31.76856,103.815079],[31.76861,103.815353],[31.76865,103.815804],[31.768539,103.816299],[31.76837,103.816772],[31.76803,103.817413],[31.767691,103.817787],[31.76757,103.817833],[31.76709,103.818169],[31.766491,103.818489],[31.765921,103.818359],[31.765209,103.818123],[31.76478,103.818001],[31.76436,103.817917],[31.764151,103.81794],[31.76396,103.818024],[31.7638,103.818176],[31.762899,103.818771],[31.762751,103.818893],[31.762119,103.819878],[31.761869,103.820221],[31.761511,103.820778],[31.761311,103.821159],[31.760889,103.821877],[31.760509,103.822403],[31.760389,103.822533],[31.76022,103.822693],[31.76004,103.822823],[31.75967,103.822952],[31.759541,103.822952],[31.75906,103.822998],[31.758619,103.823097],[31.75794,103.823311],[31.757521,103.823471],[31.75667,103.823486],[31.751591,103.831108],[31.75139,103.831291],[31.75066,103.831802],[31.75094,103.833023],[31.750351,103.833847],[31.750219,103.833977],[31.750019,103.834091],[31.749229,103.834328],[31.74898,103.834503],[31.748501,103.835091],[31.748199,103.835854],[31.748199,103.835838],[31.747869,103.836678],[31.747589,103.837143],[31.747339,103.83744],[31.74721,103.837669],[31.74711,103.837692],[31.74708,103.837738],[31.746849,103.837769],[31.7467,103.837723],[31.746651,103.837738],[31.74621,103.837601],[31.745951,103.837608],[31.74544,103.837784],[31.74523,103.83783],[31.744459,103.83783],[31.74403,103.837967],[31.74374,103.838074],[31.743549,103.838203],[31.74305,103.838676],[31.74268,103.839233],[31.74264,103.839241],[31.74234,103.839577],[31.74229,103.839592],[31.74169,103.840752],[31.741409,103.841141],[31.741159,103.841011],[31.74094,103.841164],[31.740669,103.841454],[31.738171,103.843643],[31.737659,103.844048],[31.737391,103.844177],[31.737169,103.844238],[31.7369,103.844383],[31.73649,103.84449],[31.73601,103.844513],[31.734369,103.844421],[31.734011,103.844353],[31.73353,103.843582],[31.73074,103.845497],[31.722481,103.851181],[31.721781,103.850327],[31.72146,103.850388],[31.721239,103.850449],[31.7208,103.850632],[31.720289,103.850891],[31.719749,103.851257],[31.71924,103.851646],[31.718679,103.852013],[31.71838,103.852097],[31.71792,103.852119],[31.717039,103.852493],[31.7167,103.8526],[31.716,103.853142],[31.71582,103.853348],[31.7155,103.852966],[31.71513,103.853149],[31.714649,103.853256],[31.714319,103.853317],[31.713989,103.853409],[31.713329,103.853523],[31.712799,103.853447],[31.71246,103.853416],[31.71192,103.853363],[31.711491,103.853279],[31.711149,103.853256],[31.710831,103.853287],[31.710279,103.853523],[31.710039,103.853561],[31.709749,103.853569],[31.709419,103.8535],[31.70919,103.853378],[31.709021,103.853363],[31.70867,103.853432],[31.70829,103.853592],[31.707581,103.85379],[31.707319,103.853844],[31.706829,103.853851],[31.70647,103.853882],[31.706051,103.853889],[31.705891,103.853859],[31.704599,103.853119],[31.704229,103.852859],[31.703501,103.851593],[31.70344,103.851463],[31.70225,103.850548],[31.701151,103.84977],[31.7006,103.849579],[31.700199,103.850067],[31.699499,103.850227],[31.69916,103.850357],[31.697941,103.850883],[31.697689,103.850838],[31.697639,103.850853],[31.698191,103.850487],[31.697781,103.850502],[31.697229,103.850662],[31.696899,103.850662],[31.69673,103.850693],[31.696581,103.850632],[31.696159,103.850243],[31.695869,103.849747],[31.69516,103.848351],[31.69486,103.847588],[31.69433,103.846321],[31.69418,103.845993],[31.69404,103.845657],[31.693939,103.845467],[31.69384,103.845367],[31.69348,103.845093],[31.69335,103.844971],[31.69327,103.844948],[31.69294,103.844727],[31.69268,103.844513],[31.69241,103.844414],[31.692181,103.844368],[31.69173,103.844383],[31.691389,103.844437],[31.69006,103.844933],[31.68998,103.844948],[31.689449,103.844887],[31.68928,103.844833],[31.68854,103.844673],[31.686399,103.844727],[31.685869,103.844772],[31.68545,103.844772],[31.68499,103.84481],[31.6845,103.844833],[31.684099,103.844887],[31.68379,103.84491],[31.68375,103.844948],[31.683599,103.844994],[31.68347,103.844978],[31.683081,103.844879],[31.682541,103.844589],[31.682091,103.844261],[31.681471,103.843887],[31.68079,103.84359],[31.67959,103.84343],[31.6793,103.843353],[31.67861,103.842819],[31.677931,103.842216],[31.677271,103.841614],[31.676781,103.841202],[31.67572,103.84024],[31.67477,103.83934],[31.67441,103.83905],[31.67417,103.838814],[31.673901,103.838577],[31.673281,103.83799],[31.67313,103.837891],[31.672689,103.837433],[31.67164,103.836563],[31.6712,103.836143],[31.669941,103.834976],[31.669479,103.834534],[31.66906,103.834213],[31.66855,103.833969],[31.6682,103.833893],[31.66783,103.833763],[31.667379,103.833633],[31.66733,103.833656],[31.666821,103.833366],[31.66638,103.833031],[31.66555,103.832458],[31.664881,103.831863],[31.663839,103.830544],[31.663401,103.829941],[31.662809,103.829079],[31.662411,103.8284],[31.662041,103.827629],[31.66198,103.827469],[31.661921,103.827377],[31.661631,103.826813],[31.66135,103.826134],[31.66128,103.825989],[31.66123,103.825844],[31.661119,103.82563],[31.66086,103.824982],[31.66082,103.824669],[31.660879,103.824387],[31.661119,103.824112],[31.6614,103.8237],[31.66165,103.823158],[31.66206,103.822563],[31.66206,103.822166],[31.66115,103.82093],[31.6605,103.819977],[31.66037,103.819511],[31.6604,103.819298],[31.66054,103.819008],[31.661131,103.818253],[31.662029,103.817177],[31.66238,103.816566],[31.66254,103.816109],[31.66251,103.816078],[31.662821,103.815193],[31.662979,103.814796],[31.663099,103.814362],[31.66312,103.813957],[31.663,103.813606],[31.662861,103.813271],[31.662609,103.812897],[31.662161,103.812553],[31.661501,103.812119],[31.661381,103.812057],[31.66119,103.811897],[31.66066,103.811737],[31.657261,103.811653],[31.656969,103.811607],[31.656799,103.811607],[31.65591,103.811508],[31.65435,103.811256],[31.65407,103.81115],[31.65349,103.810959],[31.65291,103.810699],[31.65218,103.810318],[31.65169,103.810028],[31.651421,103.809837],[31.65086,103.809486],[31.650181,103.809013],[31.64917,103.80835],[31.64901,103.808273],[31.648069,103.80764],[31.64772,103.807457],[31.64661,103.806664],[31.646,103.806282],[31.645321,103.805817],[31.64521,103.805771],[31.644779,103.805473],[31.64201,103.803658],[31.64163,103.803429],[31.641411,103.803261],[31.640711,103.802788],[31.640459,103.80265],[31.640051,103.802353],[31.63879,103.801537],[31.638399,103.801224],[31.63818,103.800911],[31.637899,103.800056],[31.637699,103.799606],[31.63752,103.79937],[31.637421,103.799309],[31.637091,103.799179],[31.636299,103.798683],[31.63612,103.798439],[31.636049,103.79818],[31.63599,103.797836],[31.63596,103.797417],[31.63578,103.796913],[31.63439,103.795692],[31.633631,103.79509],[31.633011,103.794724],[31.63138,103.793823],[31.630911,103.793266],[31.63064,103.792877],[31.630251,103.792221],[31.628441,103.789413],[31.627769,103.788399],[31.62665,103.786667],[31.626141,103.786324],[31.625351,103.786057],[31.624701,103.785873],[31.62455,103.785858],[31.623051,103.786079],[31.62244,103.785873],[31.622271,103.78569],[31.621571,103.784348],[31.620819,103.782867],[31.62027,103.781723],[31.620211,103.781509],[31.62023,103.780823],[31.620359,103.779968],[31.620359,103.779022],[31.62023,103.776962],[31.62007,103.77623],[31.619789,103.775642],[31.61961,103.775467],[31.619471,103.775192],[31.619471,103.775131],[31.61939,103.775017],[31.61923,103.774712],[31.618891,103.77417],[31.618549,103.773529],[31.6182,103.772949],[31.617941,103.772743],[31.6178,103.772667],[31.617611,103.772621],[31.615549,103.772438],[31.615431,103.772453],[31.61515,103.772438],[31.61446,103.772339],[31.6124,103.772141],[31.611521,103.771957],[31.611401,103.771889],[31.61091,103.771347],[31.610479,103.770729],[31.609631,103.769333],[31.609159,103.768631],[31.608749,103.767776],[31.60873,103.767029],[31.60874,103.766586],[31.60874,103.766281],[31.608841,103.765717],[31.60885,103.765213],[31.608801,103.764809],[31.60874,103.764587],[31.6085,103.763832],[31.608351,103.763412],[31.608299,103.763184],[31.60766,103.7612],[31.607519,103.760681],[31.60745,103.760246],[31.60742,103.759247],[31.60746,103.758263],[31.607491,103.758011],[31.607479,103.757538],[31.60751,103.755051],[31.60742,103.754303],[31.60717,103.753563],[31.6071,103.753403],[31.606939,103.753181],[31.606911,103.753014],[31.606859,103.752869],[31.60623,103.751663],[31.606039,103.751427],[31.605419,103.750862],[31.60511,103.750618],[31.604509,103.750183],[31.603661,103.749817],[31.60322,103.749542],[31.602449,103.749207],[31.60186,103.749046],[31.60113,103.748894],[31.600531,103.748779],[31.600149,103.748749],[31.599739,103.74881],[31.599489,103.748947],[31.599791,103.750053],[31.59976,103.750511],[31.59939,103.750511],[31.598949,103.750381],[31.598301,103.749687],[31.597931,103.749947],[31.59779,103.750061],[31.59738,103.750267],[31.597139,103.750298],[31.596889,103.750267],[31.59667,103.750229],[31.595501,103.750107],[31.595249,103.750107],[31.594379,103.750031],[31.593941,103.749969],[31.593651,103.749893],[31.59326,103.749657],[31.59285,103.749336],[31.591949,103.748558],[31.59079,103.74762],[31.589581,103.74659],[31.58902,103.746071],[31.58843,103.745483],[31.587721,103.744789],[31.586809,103.743843],[31.585581,103.742828],[31.585119,103.742523],[31.58432,103.741852],[31.584089,103.741547],[31.583691,103.740662],[31.5835,103.740356],[31.58338,103.74012],[31.583389,103.739594],[31.58337,103.739517],[31.583269,103.73941],[31.58316,103.739052],[31.58317,103.738792],[31.583099,103.738708],[31.582979,103.738319],[31.582911,103.738052],[31.58285,103.737244],[31.583099,103.735764],[31.58333,103.734688],[31.583441,103.733932],[31.583599,103.73304],[31.58354,103.732521],[31.583509,103.732407],[31.583321,103.732109],[31.583139,103.731934],[31.582781,103.731773],[31.58251,103.731468],[31.582439,103.731194],[31.582399,103.730988],[31.58235,103.730873],[31.582319,103.730713],[31.58205,103.730408],[31.581869,103.730232],[31.58148,103.729797],[31.581249,103.729568],[31.57992,103.728477],[31.579309,103.728127],[31.578699,103.727837],[31.57826,103.727676],[31.577909,103.727654],[31.57765,103.727661],[31.577391,103.727859],[31.57725,103.728027],[31.577181,103.728218],[31.577049,103.728989],[31.57687,103.729736],[31.57692,103.729759],[31.576811,103.730118],[31.576521,103.73053],[31.57486,103.731537],[31.574511,103.731621],[31.57411,103.731613],[31.572451,103.731178],[31.572081,103.731049],[31.57181,103.730904],[31.571581,103.730659],[31.57115,103.730003],[31.57091,103.729698],[31.570841,103.729446],[31.570551,103.728958],[31.570419,103.728668],[31.570259,103.727829],[31.570221,103.727303],[31.570259,103.726196],[31.570601,103.725067],[31.571039,103.723846],[31.571091,103.723778],[31.571409,103.723427],[31.571951,103.723061],[31.572781,103.72226],[31.572981,103.721764],[31.573111,103.720444],[31.57321,103.719803],[31.57345,103.717644],[31.57349,103.717079],[31.57333,103.716583],[31.572769,103.715477],[31.57268,103.715317],[31.57251,103.714951],[31.572399,103.714767],[31.572121,103.714607],[31.570459,103.714119],[31.57028,103.714073],[31.56971,103.714188],[31.569071,103.714523],[31.56881,103.71463],[31.56859,103.714638],[31.56839,103.714592],[31.56753,103.714233],[31.567221,103.71405],[31.566891,103.713669],[31.56612,103.712608],[31.56591,103.712273],[31.56567,103.711967],[31.565531,103.7117],[31.565269,103.710907],[31.565241,103.710709],[31.56505,103.708588],[31.564871,103.707779],[31.56448,103.70652],[31.56403,103.7052],[31.563551,103.704109],[31.56237,103.701767],[31.56175,103.70079],[31.561319,103.700592],[31.56106,103.700706],[31.560499,103.701073],[31.560169,103.700996],[31.559509,103.700127],[31.55743,103.697662],[31.557249,103.697479],[31.55703,103.697067],[31.556971,103.696693],[31.556971,103.696404],[31.55706,103.695908],[31.5571,103.695534],[31.55711,103.695259],[31.557211,103.694489],[31.557289,103.693314],[31.55723,103.692993],[31.55699,103.692467],[31.556499,103.691849],[31.555901,103.691437],[31.555229,103.691093],[31.554729,103.690727],[31.553869,103.690033],[31.55308,103.689453],[31.55245,103.689293],[31.55179,103.689331],[31.5515,103.689194],[31.551279,103.688927],[31.551201,103.68882],[31.551069,103.68856],[31.550911,103.688332],[31.55088,103.688263],[31.550791,103.688141],[31.55068,103.687943],[31.550501,103.687691],[31.55039,103.687492],[31.550249,103.687332],[31.550039,103.686989],[31.549721,103.686569],[31.549561,103.686401],[31.54932,103.686073],[31.549061,103.685806],[31.548849,103.685654],[31.548201,103.685471],[31.546721,103.685173],[31.54623,103.685043],[31.545071,103.684883],[31.544661,103.684914],[31.54361,103.685059],[31.542259,103.685219],[31.541861,103.685226],[31.54143,103.68512],[31.54108,103.684959],[31.540331,103.684486],[31.539591,103.684113],[31.539339,103.683937],[31.538879,103.683456],[31.53878,103.683273],[31.538549,103.682693],[31.53841,103.682228],[31.538349,103.682083],[31.53797,103.681633],[31.537781,103.681549],[31.53731,103.681503],[31.536909,103.681633],[31.536739,103.681793],[31.53632,103.682243],[31.535919,103.682571],[31.53581,103.682632],[31.53521,103.682831],[31.5347,103.682961],[31.534069,103.683067],[31.533119,103.683151],[31.532459,103.683151],[31.532169,103.682983],[31.531931,103.682549],[31.53187,103.682388],[31.531691,103.682007],[31.531469,103.681419],[31.531269,103.681068],[31.53096,103.680771],[31.53055,103.680618],[31.53031,103.680397],[31.53005,103.680122],[31.52984,103.679527],[31.529831,103.679237],[31.52985,103.678467],[31.529909,103.678139],[31.529831,103.677742],[31.529591,103.677254],[31.529289,103.676773],[31.52895,103.676277],[31.52866,103.675941],[31.528271,103.675453],[31.527849,103.675003],[31.526911,103.674347],[31.525351,103.67337],[31.5249,103.673058],[31.524019,103.672531],[31.523661,103.672401],[31.52273,103.672012],[31.522129,103.671738],[31.521561,103.671509],[31.521231,103.67131],[31.52075,103.670868],[31.52038,103.670471],[31.520069,103.670227],[31.519911,103.670128],[31.51977,103.670013],[31.518841,103.669434],[31.518539,103.669327],[31.5182,103.669296],[31.516991,103.669312],[31.516451,103.669228],[31.516319,103.669167],[31.51606,103.668999],[31.515751,103.668556],[31.51548,103.668114],[31.515421,103.667801],[31.5154,103.667542],[31.515381,103.666924],[31.515329,103.666283],[31.515261,103.665817],[31.51515,103.665497],[31.51512,103.664787],[31.51515,103.664192],[31.51516,103.66349],[31.51511,103.66272],[31.5149,103.662178],[31.514629,103.661797],[31.514311,103.66124],[31.51392,103.660606],[31.513571,103.660072],[31.51343,103.65992],[31.51298,103.659317],[31.51251,103.658638],[31.512381,103.658386],[31.5123,103.658096],[31.51219,103.657417],[31.5121,103.656967],[31.512091,103.65657],[31.5121,103.656174],[31.51206,103.655632],[31.51227,103.654694],[31.51231,103.653923],[31.51231,103.653488],[31.512251,103.653],[31.51214,103.652657],[31.51195,103.652367],[31.511379,103.651993],[31.51108,103.651909],[31.51009,103.651833],[31.509399,103.651611],[31.509001,103.65139],[31.50861,103.651253],[31.508169,103.651001],[31.50762,103.650551],[31.507179,103.650223],[31.506929,103.650146],[31.506809,103.650017],[31.50654,103.649467],[31.506161,103.648819],[31.505791,103.648247],[31.505501,103.647942],[31.50522,103.647743],[31.50474,103.64743],[31.5044,103.647377],[31.503639,103.647423],[31.50312,103.647408],[31.50276,103.647362],[31.50252,103.647293],[31.502279,103.647186],[31.50178,103.647293],[31.50156,103.647324],[31.501129,103.647163],[31.50087,103.647011],[31.499599,103.646423],[31.499189,103.64592],[31.49877,103.64518],[31.49864,103.644798],[31.498529,103.644257],[31.49844,103.643959],[31.498249,103.643623],[31.49818,103.643509],[31.49803,103.643204],[31.49761,103.642769],[31.49737,103.64241],[31.497351,103.642281],[31.496889,103.641319],[31.49667,103.640373],[31.49663,103.640022],[31.49654,103.639511],[31.49651,103.639214],[31.496559,103.638962],[31.496651,103.638741],[31.496771,103.638527],[31.496889,103.638321],[31.49692,103.638],[31.496679,103.637642],[31.496361,103.637306],[31.49608,103.637123],[31.495819,103.637016],[31.495211,103.636902],[31.495001,103.636887],[31.4946,103.636818],[31.49444,103.636742],[31.49408,103.636436],[31.493879,103.636208],[31.49338,103.635498],[31.493259,103.635101],[31.49325,103.63456],[31.493299,103.634087],[31.49329,103.634064],[31.49328,103.633797],[31.493179,103.633537],[31.49304,103.633362],[31.49292,103.63311],[31.49287,103.632629],[31.492889,103.632347],[31.49287,103.632141],[31.49279,103.631889],[31.49268,103.631683],[31.492519,103.631279],[31.49246,103.631027],[31.49229,103.630524],[31.492279,103.630211],[31.49213,103.629646],[31.49206,103.629494],[31.492041,103.629478],[31.49194,103.629204],[31.49168,103.628479],[31.491529,103.627823],[31.491541,103.627007],[31.491779,103.625931],[31.49194,103.625412],[31.49206,103.625076],[31.49214,103.624893],[31.492161,103.624718],[31.49226,103.624557],[31.49284,103.624184],[31.493641,103.623482],[31.494209,103.622757],[31.49416,103.622543],[31.493589,103.621727],[31.493231,103.621323],[31.492849,103.621063],[31.49229,103.620827],[31.49198,103.62072],[31.491289,103.620644],[31.4911,103.620537],[31.490971,103.62043],[31.49082,103.62014],[31.490959,103.619667],[31.491131,103.619537],[31.49202,103.619431],[31.49262,103.619301],[31.492849,103.619164],[31.493589,103.618568],[31.493971,103.618217],[31.49407,103.618088],[31.49424,103.617722],[31.494249,103.617439],[31.494209,103.61702],[31.49416,103.616814],[31.49394,103.616463],[31.493799,103.616333],[31.49304,103.615288],[31.49287,103.614967],[31.49275,103.614693],[31.49246,103.61438],[31.49251,103.614326],[31.492359,103.614159],[31.4921,103.613907],[31.492029,103.613792],[31.491261,103.612923],[31.49037,103.611641],[31.489941,103.611397],[31.48942,103.611343],[31.489161,103.611237],[31.488001,103.611008],[31.48781,103.611],[31.48749,103.610901],[31.48715,103.610863],[31.48699,103.610863],[31.48642,103.610641],[31.485809,103.610527],[31.485399,103.610321],[31.48514,103.610168],[31.4848,103.609711],[31.48461,103.609352],[31.484529,103.609108],[31.48443,103.608566],[31.484421,103.608223],[31.484249,103.60759],[31.484171,103.60746],[31.484011,103.607246],[31.48378,103.60685],[31.483641,103.606483],[31.48325,103.605629],[31.48311,103.605347],[31.48307,103.605148],[31.48288,103.604584],[31.48271,103.604187],[31.482441,103.603287],[31.482109,103.602463],[31.481991,103.602074],[31.48176,103.601486],[31.481529,103.601044],[31.48126,103.600342],[31.48111,103.60006],[31.480829,103.599457],[31.48035,103.598396],[31.479919,103.597481],[31.479851,103.597382],[31.479401,103.596352],[31.47921,103.596039],[31.47884,103.59549],[31.478701,103.595261],[31.47863,103.59478],[31.478609,103.594254],[31.47863,103.59391],[31.478939,103.591682],[31.47924,103.590721],[31.47921,103.590088],[31.47917,103.589813],[31.479179,103.589661],[31.47929,103.588966],[31.47933,103.588593],[31.479521,103.587677],[31.479679,103.586761],[31.479891,103.585663],[31.47998,103.584953],[31.48003,103.584641],[31.480061,103.584351],[31.480089,103.584023],[31.47991,103.583214],[31.47979,103.58284],[31.47925,103.581673],[31.479031,103.581337],[31.478769,103.580887],[31.478291,103.580223],[31.47813,103.579971],[31.47789,103.579399],[31.477711,103.578911],[31.477579,103.578613],[31.47744,103.57827],[31.477369,103.578049],[31.477171,103.577744],[31.47682,103.577278],[31.476589,103.577057],[31.47645,103.576981],[31.47596,103.576874],[31.475651,103.576843],[31.47522,103.576736],[31.474939,103.576721],[31.474701,103.576691],[31.474701,103.576538],[31.47485,103.57589],[31.47493,103.575394],[31.474899,103.575012],[31.47488,103.574982],[31.474701,103.574913],[31.47438,103.574913],[31.4736,103.574699],[31.47336,103.574677],[31.47287,103.574707],[31.472691,103.574692],[31.472071,103.573463],[31.47057,103.572227],[31.469021,103.570557],[31.467991,103.569771],[31.467079,103.569771],[31.46619,103.570038],[31.46537,103.570297],[31.464979,103.570297],[31.46344,103.569809],[31.46101,103.568909],[31.460279,103.568176],[31.459869,103.566643],[31.459511,103.564423],[31.45912,103.562363],[31.45895,103.561737],[31.45866,103.561172],[31.457279,103.558601],[31.456921,103.557899],[31.45583,103.555847],[31.45546,103.555267],[31.45499,103.554581],[31.454519,103.55394],[31.454309,103.553558],[31.454201,103.552887],[31.454559,103.551971],[31.454941,103.551086],[31.45583,103.549187],[31.45603,103.548561],[31.456051,103.547821],[31.455839,103.54734],[31.45536,103.546867],[31.45483,103.546669],[31.454321,103.546539],[31.45405,103.54644],[31.45322,103.545769],[31.452959,103.545502],[31.45269,103.545273],[31.452419,103.545273],[31.45207,103.545097],[31.45167,103.544968],[31.4515,103.544937],[31.45006,103.544777],[31.449619,103.544678],[31.448759,103.544289],[31.447929,103.543854],[31.446199,103.542969],[31.445761,103.542709],[31.445221,103.542221],[31.44474,103.541649],[31.444201,103.5411],[31.44396,103.540993],[31.44367,103.540916],[31.44301,103.54097],[31.439659,103.541473],[31.43886,103.541656],[31.43778,103.542038],[31.43689,103.542381],[31.436449,103.542473],[31.4356,103.542572],[31.43504,103.542603],[31.43441,103.542709],[31.43392,103.542732],[31.43346,103.542732],[31.433439,103.542702],[31.43302,103.542763],[31.43259,103.542961],[31.42981,103.544456],[31.429331,103.544563],[31.429131,103.54454],[31.428671,103.544243],[31.42819,103.543793],[31.42675,103.542313],[31.42621,103.541862],[31.425631,103.541344],[31.4251,103.540894],[31.42322,103.539574],[31.42255,103.539131],[31.420071,103.537849],[31.419399,103.537537],[31.418791,103.537178],[31.41828,103.536774],[31.41699,103.535599],[31.41613,103.534889],[31.415621,103.534599],[31.415159,103.534439],[31.414471,103.534264],[31.4142,103.534172],[31.4135,103.533989],[31.41247,103.533699],[31.41194,103.533478],[31.4118,103.533379],[31.411671,103.533257],[31.41148,103.533012],[31.411209,103.532547],[31.41111,103.53241],[31.410629,103.531464],[31.41045,103.531174],[31.410061,103.530838],[31.409889,103.530731],[31.40934,103.530617],[31.409149,103.530602],[31.40756,103.530182],[31.405861,103.52977],[31.405149,103.529556],[31.404869,103.529404],[31.40461,103.529167],[31.404289,103.528397],[31.4041,103.527321],[31.403919,103.526123],[31.403549,103.523849],[31.403299,103.523109],[31.403049,103.522797],[31.402411,103.522438],[31.401699,103.522278],[31.4014,103.522232],[31.399179,103.521721],[31.398439,103.52153],[31.39542,103.520851],[31.39481,103.520683],[31.394239,103.520287],[31.39345,103.5196],[31.39155,103.517853],[31.39131,103.517677],[31.38913,103.515678],[31.389139,103.515663],[31.389111,103.515671],[31.38839,103.515022],[31.38792,103.514572],[31.3871,103.513901],[31.386959,103.513748],[31.372419,103.509407],[31.372141,103.509369],[31.37159,103.509079],[31.371031,103.508568],[31.370649,103.508171],[31.370449,103.507912],[31.36974,103.507149],[31.369089,103.506401],[31.36894,103.506187],[31.36865,103.505577],[31.36833,103.5047],[31.36797,103.503563],[31.36692,103.500427],[31.36664,103.499542],[31.366489,103.499138],[31.366409,103.498779],[31.366329,103.49865],[31.366199,103.498291],[31.36598,103.49752],[31.365681,103.49704],[31.364771,103.496407],[31.36245,103.494919],[31.36208,103.494667],[31.361071,103.494041],[31.359541,103.493042],[31.35741,103.491707],[31.35729,103.491661],[31.35708,103.491631],[31.3564,103.4916],[31.355619,103.491638],[31.355021,103.491547],[31.35438,103.491257],[31.35321,103.490623],[31.35268,103.490349],[31.352221,103.490082],[31.35165,103.489799],[31.35129,103.489647],[31.350531,103.489464],[31.34993,103.489326],[31.34919,103.489143],[31.34828,103.488937],[31.347219,103.488564],[31.346821,103.488358],[31.346279,103.488037],[31.34433,103.486763],[31.34374,103.486504],[31.343491,103.486443],[31.342831,103.486427],[31.342421,103.486519],[31.342251,103.486572],[31.34177,103.486649],[31.340799,103.486862],[31.340321,103.486931],[31.339331,103.487167],[31.339029,103.48719],[31.338591,103.487122],[31.33721,103.486099],[31.336519,103.485413],[31.33604,103.484711],[31.33556,103.483917],[31.335421,103.483276],[31.33383,103.480087],[31.333611,103.479721],[31.333361,103.479378],[31.333019,103.479057],[31.332359,103.478569],[31.33135,103.477859],[31.330931,103.477432],[31.33073,103.477013],[31.32996,103.47448],[31.329849,103.474258],[31.32967,103.47403],[31.32946,103.473862],[31.32926,103.473793],[31.328569,103.473801],[31.32366,103.474693],[31.322969,103.474777],[31.322241,103.474907],[31.321489,103.474937],[31.320959,103.47477],[31.320721,103.474617],[31.32004,103.474167],[31.31922,103.473587],[31.31871,103.473312],[31.31826,103.473183],[31.3176,103.473129],[31.31675,103.473099],[31.314791,103.473061],[31.314131,103.472977],[31.313431,103.472839],[31.31291,103.472748],[31.311569,103.472473],[31.31142,103.47245],[31.310841,103.47229],[31.310711,103.472237],[31.31061,103.472168],[31.310511,103.472069],[31.310221,103.471672],[31.30938,103.470322],[31.30928,103.470108],[31.30896,103.469612],[31.30871,103.469307],[31.308189,103.468964],[31.30788,103.468842],[31.30744,103.468697],[31.306231,103.468193],[31.30521,103.467827],[31.303169,103.466942],[31.302691,103.466766],[31.302429,103.46669],[31.301991,103.466507],[31.3016,103.466209],[31.301519,103.466164],[31.3015,103.466057],[31.301161,103.465897],[31.30098,103.465851],[31.300831,103.465759],[31.30061,103.465729],[31.300011,103.465698],[31.299561,103.465477],[31.2994,103.465157],[31.299179,103.464828],[31.29841,103.464378],[31.29821,103.464104],[31.298149,103.463753],[31.29805,103.463463],[31.29759,103.463226],[31.297171,103.462921],[31.295549,103.462402],[31.289801,103.460899],[31.28867,103.461166],[31.280279,103.469017],[31.27939,103.469353],[31.27865,103.470039],[31.277781,103.471283],[31.27607,103.474007],[31.274839,103.474609],[31.273741,103.474922],[31.27346,103.474907],[31.27326,103.474876],[31.273069,103.474823],[31.272539,103.474747],[31.27182,103.475014],[31.271271,103.475098],[31.27033,103.475189],[31.269159,103.475159],[31.26734,103.475319],[31.26685,103.475456],[31.26601,103.475906],[31.26573,103.476089],[31.264391,103.477097],[31.26379,103.477753],[31.26339,103.478279],[31.263041,103.479218],[31.26285,103.479637],[31.26289,103.480217],[31.26284,103.480522],[31.262449,103.481049],[31.261801,103.481667],[31.26133,103.482147],[31.260521,103.482559],[31.25906,103.480049],[31.257441,103.480988],[31.250851,103.486687],[31.249491,103.488113],[31.24909,103.488403],[31.24823,103.488411],[31.2472,103.487907],[31.24691,103.487778],[31.24605,103.487694],[31.231581,103.492683],[31.22551,103.486893],[31.20331,103.497948],[31.17948,103.496834],[31.160801,103.494209],[31.156799,103.491173],[31.148029,103.488243],[31.140209,103.48967],[31.13055,103.494873],[31.122959,103.496063],[31.118771,103.494431],[31.11475,103.489479],[31.11301,103.485519],[31.11005,103.483063],[31.107821,103.481087],[31.10568,103.479523],[31.1042,103.478653],[31.102659,103.478302],[31.1021,103.478157],[31.101521,103.478127],[31.1012,103.478233],[31.10042,103.478691],[31.09967,103.478943],[31.098499,103.479149],[31.098141,103.479118],[31.097481,103.479111],[31.097071,103.479134],[31.096581,103.479263],[31.0959,103.479858],[31.09536,103.480507],[31.09507,103.481194],[31.09473,103.482063],[31.094601,103.482246],[31.09396,103.483131],[31.09333,103.483788],[31.092581,103.484711],[31.091961,103.485336],[31.09182,103.485428],[31.091551,103.485481],[31.09111,103.485313],[31.0909,103.48513],[31.090441,103.484558],[31.09029,103.484444],[31.089769,103.484253],[31.089439,103.484322],[31.089211,103.484489],[31.088739,103.484894],[31.08844,103.485107],[31.08814,103.48526],[31.08798,103.485313],[31.087151,103.485283],[31.08099,103.485023],[31.08004,103.484787],[31.07909,103.484596],[31.07826,103.484528],[31.07803,103.484528],[31.076891,103.484703],[31.076639,103.484787],[31.07621,103.484901],[31.07493,103.485321],[31.07374,103.486191],[31.07304,103.486572],[31.072531,103.4869],[31.072001,103.487381],[31.07168,103.487602],[31.071199,103.487823],[31.07078,103.488029],[31.070181,103.488373],[31.06941,103.488876],[31.06925,103.489197],[31.068439,103.489433],[31.06757,103.489807],[31.06679,103.490547],[31.066259,103.490631],[31.065491,103.490921],[31.06476,103.491257],[31.064449,103.491547],[31.06436,103.491722],[31.064289,103.491898],[31.0641,103.492142],[31.063959,103.492287],[31.06378,103.492561],[31.06341,103.493294],[31.063021,103.494453],[31.04641,103.526978],[31.045561,103.528099],[31.045469,103.528198],[31.044621,103.52887],[31.04331,103.529427],[31.04154,103.529877],[31.03215,103.534622],[31.031231,103.535057],[31.02936,103.535568],[31.028521,103.535843],[31.028061,103.536072],[31.02762,103.536369],[31.0271,103.536819],[31.026369,103.537727],[31.02529,103.539307],[31.024401,103.540733],[31.02223,103.543907],[31.0205,103.546577],[31.01989,103.547508],[31.019421,103.548233],[31.018761,103.549217],[31.01827,103.550056],[31.016239,103.554207],[31,103.586853],[30.998091,103.59005],[30.997681,103.590523],[30.997181,103.590973],[30.996849,103.591232],[30.99613,103.591728],[30.994261,103.592941],[30.99297,103.593803],[30.99185,103.594482],[30.989941,103.594841],[30.988621,103.594322],[30.987591,103.59417],[30.986259,103.593773],[30.98485,103.593773],[30.98218,103.594559],[30.98111,103.594566],[30.979811,103.594269],[30.977461,103.59359],[30.976021,103.5933],[30.975691,103.593277],[30.974489,103.5933],[30.968679,103.594116],[30.964621,103.594727],[30.964001,103.594841],[30.96237,103.595337],[30.96122,103.596024],[30.960211,103.59697],[30.959351,103.598152],[30.958561,103.599762],[30.956551,103.604424],[30.955151,103.607269],[30.95435,103.608627],[30.95089,103.613831],[30.95076,103.614052],[30.950279,103.614952],[30.94981,103.615753],[30.95084,103.615593],[30.95225,103.615532],[30.953581,103.61544],[30.95606,103.615318],[30.95643,103.615288],[30.956989,103.615211],[30.957359,103.615143],[30.957899,103.614998],[30.958441,103.614822],[30.959141,103.614571],[30.959829,103.614304],[30.96102,103.613876],[30.96183,103.613579],[30.962391,103.613373],[30.9631,103.614807],[30.96336,103.615799],[30.963539,103.616302],[30.96368,103.616631],[30.96384,103.616966],[30.965599,103.620323],[30.96623,103.621567],[30.967489,103.624222],[30.9722,103.633148],[30.977289,103.642822],[30.979099,103.645447],[30.978251,103.646347],[30.976589,103.647888],[30.974079,103.650269],[30.97238,103.65197],[30.970909,103.653526],[30.969839,103.654716],[30.968639,103.656143],[30.96751,103.657547],[30.96689,103.658363],[30.96583,103.65979],[30.964109,103.662231],[30.96328,103.663368],[30.962151,103.664833],[30.96097,103.66626],[30.960381,103.667],[30.96023,103.667236],[30.960091,103.667473],[30.95998,103.667747],[30.959789,103.667877],[30.95978,103.667747],[30.959209,103.668411],[30.9589,103.668793],[30.958099,103.669853],[30.957161,103.671143],[30.95595,103.672943],[30.955231,103.674072],[30.952909,103.677902],[30.95179,103.679703],[30.95059,103.681709],[30.949539,103.683418],[30.948919,103.684387],[30.948441,103.685112],[30.946659,103.687637],[30.945499,103.689217],[30.944401,103.690613],[30.94367,103.691513],[30.941299,103.694313],[30.93787,103.698303],[30.9366,103.69986],[30.935209,103.701637],[30.933901,103.703407],[30.933069,103.704597],[30.932249,103.705803],[30.93026,103.708878],[30.92915,103.710564],[30.928301,103.711777],[30.92745,103.712952],[30.926741,103.713837],[30.926001,103.714722],[30.92543,103.715347],[30.924641,103.716148],[30.923651,103.717117],[30.922649,103.718063],[30.92116,103.71936],[30.919451,103.720932],[30.918831,103.721542],[30.91785,103.722572],[30.917471,103.722992],[30.91674,103.723831],[30.91588,103.724892],[30.91522,103.725761],[30.914129,103.727333],[30.913691,103.728027],[30.913139,103.728973],[30.9126,103.729927],[30.912069,103.730949],[30.91169,103.731743],[30.911209,103.732803],[30.91054,103.734383],[30.910151,103.735451],[30.90979,103.736519],[30.907459,103.744202],[30.90659,103.746933],[30.906219,103.747978],[30.90593,103.748749],[30.90542,103.749992],[30.904989,103.750977],[30.904369,103.752274],[30.90366,103.753609],[30.902901,103.754898],[30.902121,103.756119],[30.901489,103.757042],[30.900669,103.758133],[30.900181,103.758751],[30.899691,103.759354],[30.89871,103.760468],[30.897711,103.76152],[30.8972,103.762016],[30.896469,103.762703],[30.895241,103.763748],[30.894569,103.764267],[30.89386,103.764793],[30.892929,103.765442],[30.89245,103.765747],[30.89105,103.766602],[30.888321,103.768097],[30.887011,103.768806],[30.885719,103.769524],[30.884649,103.770149],[30.88401,103.770561],[30.88294,103.771317],[30.88183,103.772202],[30.88139,103.772591],[30.880751,103.773193],[30.87995,103.773979],[30.879379,103.774582],[30.87867,103.775398],[30.87817,103.776016],[30.87768,103.776649],[30.877211,103.777298],[30.87676,103.777946],[30.876011,103.779152],[30.875561,103.779938],[30.875271,103.780487],[30.87471,103.781616],[30.873949,103.783363],[30.873369,103.784813],[30.872669,103.786507],[30.87229,103.787331],[30.871759,103.788399],[30.871731,103.78846],[30.871059,103.789703],[30.87076,103.790207],[30.8703,103.790939],[30.86948,103.792137],[30.869141,103.792603],[30.86861,103.793266],[30.867701,103.794357],[30.867149,103.794991],[30.86639,103.795761],[30.86561,103.796501],[30.864811,103.797203],[30.861601,103.799957],[30.859289,103.80191],[30.858471,103.802628],[30.85726,103.803719],[30.856291,103.804657],[30.85533,103.805634],[30.854509,103.806503],[30.8498,103.811783],[30.848881,103.812798],[30.84778,103.813957],[30.846491,103.815239],[30.84572,103.815941],[30.844299,103.817162],[30.84318,103.818062],[30.842051,103.818932],[30.84137,103.819427],[30.840231,103.820213],[30.8391,103.820953],[30.8354,103.823181],[30.83396,103.824097],[30.833031,103.824722],[30.832359,103.825211],[30.83148,103.825867],[30.83041,103.826736],[30.82938,103.827629],[30.82819,103.828728],[30.8272,103.829712],[30.82618,103.830788],[30.82559,103.831444],[30.824631,103.832573],[30.82229,103.835541],[30.821581,103.836411],[30.82119,103.836853],[30.820379,103.83773],[30.819759,103.838371],[30.81912,103.838989],[30.818251,103.839783],[30.817591,103.840332],[30.81691,103.840874],[30.816,103.841553],[30.81461,103.842506],[30.810249,103.84536],[30.809401,103.845963],[30.808769,103.84642],[30.80835,103.846733],[30.807949,103.847061],[30.807341,103.84758],[30.806721,103.848129],[30.80587,103.848938],[30.80525,103.849564],[30.804661,103.850189],[30.8039,103.851044],[30.80353,103.851471],[30.80266,103.852547],[30.802,103.853439],[30.80117,103.854637],[30.80069,103.8554],[30.79991,103.856697],[30.7966,103.862488],[30.795549,103.864281],[30.79442,103.866318],[30.79245,103.869789],[30.790501,103.873192],[30.78861,103.876472],[30.78834,103.876984],[30.78797,103.877747],[30.7875,103.878838],[30.787291,103.879433],[30.78709,103.88002],[30.786909,103.880638],[30.786751,103.881271],[30.78661,103.881897],[30.786501,103.882553],[30.786409,103.883186],[30.786341,103.883827],[30.786289,103.88446],[30.786261,103.885094],[30.786261,103.886047],[30.78632,103.887306],[30.78647,103.889542],[30.78635,103.891296],[30.78624,103.892967],[30.785839,103.895668],[30.78549,103.897171],[30.78499,103.898582],[30.784599,103.899689],[30.78377,103.901466],[30.783159,103.902473],[30.78298,103.902771],[30.782511,103.903587],[30.78203,103.904282],[30.78134,103.905197],[30.77743,103.910294],[30.773211,103.915771],[30.772129,103.91713],[30.77091,103.91864],[30.769369,103.920647],[30.7686,103.921638],[30.766121,103.924881],[30.7631,103.929024],[30.76078,103.93219],[30.75775,103.936234],[30.757311,103.936577],[30.7565,103.93766],[30.75602,103.938057],[30.755301,103.938583],[30.754761,103.938843],[30.7542,103.939056],[30.75358,103.939201],[30.752729,103.939293],[30.7521,103.939232],[30.75139,103.939072],[30.750839,103.938889],[30.75004,103.938591],[30.748631,103.937691],[30.746429,103.936737],[30.74535,103.936371],[30.74428,103.93605],[30.7437,103.935883],[30.739031,103.934921],[30.736521,103.934418],[30.736271,103.934357],[30.734831,103.934059],[30.73411,103.933907],[30.73082,103.933296],[30.72954,103.933067],[30.729179,103.933006],[30.725719,103.93264],[30.725229,103.932571],[30.72271,103.932442],[30.719419,103.932381],[30.715771,103.932343],[30.712839,103.932167],[30.71044,103.931961],[30.70717,103.931511],[30.702971,103.930763],[30.70075,103.930359],[30.698931,103.930107],[30.6966,103.929947],[30.693951,103.929916],[30.69375,103.929916],[30.69273,103.929947],[30.69128,103.930038],[30.6903,103.930122],[30.685061,103.930573],[30.682341,103.930847],[30.67981,103.931221],[30.676941,103.931831],[30.674351,103.932541],[30.67045,103.93396],[30.66506,103.935852],[30.663919,103.936203],[30.66292,103.936432],[30.66181,103.936653],[30.660431,103.936867],[30.65892,103.936996],[30.65756,103.937042],[30.65484,103.937103],[30.650579,103.93708],[30.648371,103.93718],[30.64661,103.937378],[30.64509,103.937637],[30.64365,103.938019],[30.64196,103.938469],[30.63983,103.939247],[30.63492,103.941093],[30.633631,103.941528],[30.63224,103.941971],[30.630779,103.94239],[30.629311,103.942734],[30.627041,103.943169],[30.62483,103.943512],[30.619511,103.944397],[30.61833,103.944679],[30.616791,103.945107],[30.615311,103.945686],[30.61389,103.946373],[30.61227,103.947456],[30.61113,103.94841],[30.60972,103.949783],[30.60885,103.950798],[30.607639,103.952438],[30.606489,103.954514],[30.605459,103.956711],[30.60393,103.960114],[30.601891,103.964783],[30.60046,103.96785],[30.599171,103.970444],[30.597589,103.973083],[30.59609,103.975372],[30.59486,103.977203],[30.592131,103.981133],[30.591129,103.982712],[30.589991,103.985039],[30.589319,103.986877],[30.58885,103.988724],[30.58856,103.990677],[30.588461,103.992706],[30.58849,103.994728],[30.58868,104.002876],[30.58857,104.005081],[30.588181,104.007187],[30.58745,104.009308],[30.5863,104.011383],[30.584311,104.014137],[30.58374,104.014938],[30.58132,104.018349],[30.5807,104.019234],[30.579081,104.022034],[30.57872,104.02272],[30.578449,104.023232],[30.57793,104.023956],[30.577459,104.024513],[30.57682,104.024979],[30.576241,104.025208],[30.57585,104.025307],[30.575529,104.025391],[30.57468,104.025391],[30.57391,104.025269],[30.57362,104.025162],[30.571671,104.024368],[30.570181,104.023758],[30.56801,104.022743],[30.56468,104.020882],[30.554741,104.014908],[30.55094,104.012497],[30.548651,104.010696],[30.54603,104.008163],[30.54306,104.004494],[30.54019,103.999863],[30.538441,103.997513],[30.536329,103.995216],[30.528799,103.987923],[30.525129,103.984543],[30.522129,103.982224],[30.51981,103.980797],[30.51687,103.979141],[30.51384,103.977158],[30.51082,103.974457],[30.50326,103.967072],[30.50028,103.964706],[30.497601,103.96299],[30.48823,103.958504],[30.482201,103.955002],[30.476259,103.950844],[30.47337,103.948822],[30.470671,103.947304],[30.46776,103.94593],[30.45928,103.942421],[30.455521,103.940567],[30.452351,103.938187],[30.450029,103.935883],[30.44676,103.931976],[30.443501,103.928284],[30.43807,103.92318],[30.42778,103.913887],[30.424299,103.910683],[30.42137,103.908173],[30.418739,103.906342],[30.415751,103.904572],[30.409611,103.900833],[30.408791,103.900307],[30.40811,103.899879],[30.40642,103.89872],[30.406269,103.898613],[30.406139,103.898514],[30.405199,103.897797],[30.404831,103.897507],[30.404539,103.897301],[30.4027,103.895752],[30.402639,103.895714],[30.400829,103.894089],[30.395901,103.889481],[30.38553,103.878517],[30.38382,103.876129],[30.382191,103.873322],[30.381121,103.870064],[30.380699,103.86879],[30.38039,103.867699],[30.379641,103.864769],[30.378071,103.858124],[30.37772,103.856689],[30.376881,103.85466],[30.375919,103.852417],[30.374901,103.850273],[30.3745,103.849602],[30.373409,103.848267],[30.37274,103.847504],[30.371759,103.846527],[30.37007,103.845253],[30.37002,103.845222],[30.36821,103.844131],[30.36706,103.843628],[30.364889,103.842949],[30.362579,103.842438],[30.359209,103.841759],[30.35545,103.841057],[30.351959,103.840683],[30.349331,103.83992],[30.34514,103.838531],[30.342319,103.83725],[30.339621,103.836571],[30.336281,103.835983],[30.332951,103.835632],[30.32992,103.835281],[30.32859,103.835083],[30.3276,103.834839],[30.32691,103.834572],[30.326309,103.834229],[30.325581,103.833733],[30.32482,103.833267],[30.32445,103.833092],[30.324329,103.833061],[30.323629,103.832787],[30.32313,103.832687],[30.322559,103.832611],[30.32193,103.832611],[30.3211,103.83271],[30.32037,103.832901],[30.319811,103.833107],[30.319309,103.833397],[30.318569,103.8339],[30.318041,103.834328],[30.317631,103.834663],[30.31662,103.835457],[30.31559,103.835968],[30.3148,103.836304],[30.31304,103.83699],[30.311819,103.837433],[30.305599,103.839798],[30.303049,103.840767],[30.302441,103.841011],[30.301571,103.841316],[30.300711,103.841667],[30.300541,103.841743],[30.29854,103.842484],[30.29718,103.842903],[30.29463,103.843719],[30.293159,103.843903],[30.29126,103.844063],[30.28908,103.844002],[30.28517,103.843407],[30.279461,103.842461],[30.274309,103.84182],[30.272249,103.841682],[30.26882,103.841507],[30.263081,103.841637],[30.260481,103.841827],[30.25771,103.842117],[30.254551,103.842537],[30.252159,103.842957],[30.244909,103.844063],[30.238979,103.844971],[30.2346,103.845627],[30.228121,103.846626],[30.223459,103.847366],[30.21862,103.847878],[30.21557,103.848358],[30.21253,103.848862],[30.21196,103.848938],[30.21122,103.849037],[30.211149,103.849052],[30.21056,103.849129],[30.20863,103.849457],[30.206671,103.849739],[30.206619,103.849747],[30.20463,103.850037],[30.20118,103.850723],[30.19952,103.850739],[30.19763,103.850632],[30.195299,103.850273],[30.193661,103.849907],[30.192101,103.849403],[30.18655,103.847427],[30.18231,103.845909],[30.17621,103.843719],[30.170601,103.841721],[30.166719,103.840317],[30.161591,103.838501],[30.156549,103.83667],[30.15312,103.835442],[30.149229,103.83403],[30.14525,103.832611],[30.142139,103.831398],[30.139771,103.83033],[30.134809,103.827782],[30.13142,103.825974],[30.12595,103.82296],[30.12237,103.821037],[30.12002,103.819763],[30.11664,103.817947],[30.11326,103.816017],[30.111601,103.815163],[30.10816,103.813248],[30.1056,103.811852],[30.102711,103.810066],[30.099331,103.808411],[30.095301,103.806702],[30.09252,103.805687],[30.086599,103.80368],[30.08601,103.803482],[30.085569,103.803329],[30.08502,103.803139],[30.08182,103.80204],[30.081141,103.801811],[30.079639,103.8013],[30.07716,103.800453],[30.07605,103.800056],[30.074249,103.799438],[30.07411,103.799393],[30.07151,103.798538],[30.06843,103.797859],[30.06653,103.797302],[30.06459,103.796806],[30.062309,103.796303],[30.055731,103.795067],[30.050871,103.794098],[30.04826,103.793358],[30.046261,103.792587],[30.0441,103.791458],[30.042601,103.790527],[30.036551,103.786591],[30.03101,103.782967],[30.029051,103.781616],[30.024891,103.778503],[30.021879,103.775917],[30.0187,103.77298],[30.01498,103.769363],[30.013029,103.767441],[30.011021,103.765747],[30.009581,103.764793],[30.00824,103.764023],[30.00703,103.763443],[30.00528,103.762733],[30.004009,103.762444],[30.0023,103.762123],[30.00091,103.762047],[29.99885,103.762077],[29.996031,103.762238],[29.98945,103.762657],[29.98629,103.762863],[29.985081,103.762993],[29.983101,103.763489],[29.98243,103.763687],[29.9806,103.764481],[29.977921,103.765984],[29.97703,103.766487],[29.97328,103.768593],[29.97217,103.769096],[29.969801,103.769981],[29.969139,103.770142],[29.968201,103.770332],[29.965611,103.770554],[29.96287,103.770348],[29.96159,103.770027],[29.9582,103.769203],[29.956301,103.768723],[29.95241,103.767761],[29.94582,103.766167],[29.941891,103.764954],[29.938259,103.763428],[29.93232,103.760307],[29.9265,103.757187],[29.92123,103.754211],[29.9186,103.752403],[29.916189,103.75061],[29.9119,103.747131],[29.90592,103.742203],[29.90304,103.740356],[29.902201,103.739906],[29.90093,103.739372],[29.89822,103.738579],[29.89192,103.737061],[29.888399,103.735947],[29.886129,103.735092],[29.884081,103.734154],[29.88076,103.732521],[29.877239,103.730759],[29.87343,103.729156],[29.872789,103.728912],[29.86729,103.727081],[29.861521,103.725227],[29.8587,103.724289],[29.856159,103.723618],[29.854139,103.723183],[29.847811,103.72216],[29.84544,103.721687],[29.843941,103.72123],[29.842291,103.720627],[29.841141,103.720047],[29.839939,103.719368],[29.83886,103.718597],[29.834391,103.714973],[29.82803,103.709839],[29.824579,103.706779],[29.82353,103.705704],[29.818701,103.700737],[29.816549,103.699013],[29.81579,103.698471],[29.81492,103.69799],[29.81385,103.697479],[29.81284,103.697067],[29.81114,103.696518],[29.804569,103.694901],[29.801861,103.694099],[29.800591,103.693657],[29.79631,103.691856],[29.79286,103.690376],[29.78804,103.688293],[29.78281,103.686028],[29.7794,103.684883],[29.77482,103.683647],[29.771151,103.68325],[29.76623,103.682564],[29.7612,103.681862],[29.75733,103.680702],[29.752661,103.678726],[29.741501,103.673637],[29.735689,103.670433],[29.730261,103.667122],[29.728109,103.665894],[29.725889,103.665009],[29.723049,103.664223],[29.719179,103.663467],[29.71279,103.661957],[29.70635,103.660027],[29.70294,103.659363],[29.70014,103.659142],[29.68815,103.659363],[29.68462,103.659538],[29.68202,103.660202],[29.67861,103.661789],[29.669941,103.667168],[29.667179,103.669067],[29.66548,103.670013],[29.66226,103.671219],[29.65731,103.672684],[29.654421,103.673882],[29.651899,103.675377],[29.64912,103.677238],[29.64385,103.680489],[29.639219,103.682854],[29.63732,103.683731],[29.63269,103.685913],[29.629339,103.687523],[29.626249,103.68943],[29.62406,103.690987],[29.618151,103.695602],[29.61622,103.696747],[29.61463,103.697456],[29.61256,103.69812],[29.611,103.698418],[29.60833,103.698517],[29.59409,103.697853],[29.59317,103.697777],[29.59227,103.697708],[29.590639,103.697578],[29.589661,103.697533],[29.588791,103.697472],[29.588249,103.697449],[29.57856,103.697304],[29.5669,103.703148],[29.545259,103.705719],[29.533911,103.709663],[29.5194,103.710701],[29.50877,103.719643],[29.49684,103.726669],[29.47427,103.734573],[29.463039,103.741623],[29.456329,103.746758],[29.44392,103.752083],[29.435089,103.758949],[29.42598,103.763763],[29.41267,103.773537],[29.407921,103.7761],[29.388491,103.777473],[29.381571,103.779373],[29.375561,103.784538],[29.367929,103.790733],[29.359091,103.80069],[29.352209,103.809097],[29.335911,103.826767],[29.318411,103.840843],[29.305571,103.847687],[29.294029,103.850273],[29.289061,103.853722],[29.285049,103.858421],[29.28236,103.861847],[29.278641,103.865082],[29.27508,103.866959],[29.27075,103.867813],[29.266239,103.869019],[29.262159,103.871269],[29.25914,103.875252],[29.256281,103.880081],[29.254311,103.88562],[29.25462,103.892014],[29.25462,103.896103],[29.25388,103.89949],[29.25211,103.902519],[29.24992,103.903862],[29.24637,103.904198],[29.239189,103.902817],[29.2363,103.903],[29.2334,103.904572],[29.22904,103.90992],[29.22484,103.915077],[29.22064,103.922813],[29.217951,103.927429],[29.21423,103.930832],[29.210199,103.933403],[29.20557,103.936142],[29.201851,103.936989],[29.19854,103.937851],[29.19643,103.938721],[29.192829,103.940613],[29.18956,103.942139],[29.18597,103.942307],[29.18281,103.943001],[29.178619,103.944717],[29.171591,103.945229],[29.16573,103.945923],[29.161699,103.947372],[29.160009,103.947983],[29.158831,103.948608],[29.15626,103.949867],[29.152901,103.951424],[29.149111,103.953827],[29.1474,103.955566],[29.146151,103.957626],[29.145109,103.960457],[29.142111,103.970154],[29.14106,103.973381],[29.139879,103.975868],[29.13899,103.976921],[29.136841,103.97908],[29.134291,103.981583],[29.13253,103.984039],[29.13093,103.986557],[29.12966,103.987846],[29.12866,103.988503],[29.127199,103.98938],[29.125521,103.990341],[29.124041,103.991127],[29.119749,103.993317],[29.11607,103.995277],[29.11408,103.996292],[29.112249,103.997368],[29.11076,103.998611],[29.10943,104.000572],[29.108459,104.002899],[29.107861,104.005363],[29.107149,104.009163],[29.106421,104.012009],[29.10582,104.014008],[29.104271,104.017776],[29.103621,104.019836],[29.10293,104.023308],[29.102461,104.025742],[29.10177,104.027687],[29.100349,104.030693],[29.099409,104.032883],[29.098749,104.034416],[29.09796,104.036942],[29.097639,104.038231],[29.097269,104.039864],[29.09687,104.041733],[29.096081,104.043922],[29.09543,104.044937],[29.094481,104.04641],[29.093491,104.047684],[29.092251,104.049271],[29.09111,104.051208],[29.090521,104.053123],[29.09025,104.054497],[29.090191,104.055412],[29.09095,104.06636],[29.08976,104.070282],[29.086451,104.075089],[29.084789,104.082336],[29.08194,104.09523],[29.08194,104.100754],[29.083441,104.1138],[29.083441,104.123207],[29.08194,104.130234],[29.081051,104.137589],[29.078979,104.141144],[29.074051,104.144547],[29.07147,104.146637],[29.069349,104.150803],[29.0674,104.15818],[29.06502,104.162086],[29.06082,104.166382],[29.057659,104.171707],[29.053459,104.177032],[29.050289,104.182549],[29.04789,104.189774],[29.044889,104.195938],[29.042179,104.201973],[29.03993,104.212639],[29.03933,104.220207],[29.03903,104.228256],[29.03784,104.231812],[29.03484,104.236618],[29.028379,104.253113],[29.026449,104.257019],[29.021049,104.261993],[29.01655,104.268517],[29.01055,104.274857],[29.00544,104.280022],[29.00108,104.287064],[28.99402,104.295143],[28.98967,104.302856],[28.98292,104.309708],[28.97978,104.313469],[28.970779,104.318787],[28.95965,104.328072],[28.95751,104.330688],[28.9533,104.345627],[28.949699,104.352333],[28.94536,104.363281],[28.933331,104.374786],[28.93166,104.380173],[28.93046,104.396652],[28.928961,104.401611],[28.92506,104.414322],[28.92205,104.426697],[28.92115,104.433708],[28.91231,104.449966],[28.905689,104.457191],[28.902519,104.467171],[28.89502,104.482246],[28.8881,104.49015],[28.88599,104.496696],[28.88163,104.504936],[28.88027,104.513527],[28.873369,104.529999],[28.870211,104.537712],[28.86569,104.545631],[28.864491,104.554916],[28.860729,104.567627],[28.859831,104.576729],[28.857719,104.585152],[28.85787,104.598732],[28.857719,104.609558],[28.859831,104.621941],[28.861771,104.631523],[28.86043,104.638496],[28.857889,104.644302],[28.85685,104.64566],[28.856409,104.645889],[28.855829,104.645912],[28.85532,104.645851],[28.8547,104.645592],[28.854259,104.645401],[28.85355,104.644783],[28.85206,104.6436],[28.85038,104.642418],[28.84877,104.641296],[28.847361,104.64032],[28.84576,104.639198],[28.84403,104.637993],[28.84247,104.636917],[28.84119,104.636147],[28.839411,104.63517],[28.838369,104.634666],[28.83795,104.634483],[28.83754,104.634277],[28.83667,104.633926],[28.836451,104.633842],[28.83535,104.6334],[28.83428,104.63295],[28.833019,104.632332],[28.832069,104.631706],[28.83111,104.630867],[28.830311,104.629936],[28.830179,104.629784],[28.829399,104.628593],[28.82859,104.627098],[28.82773,104.625526],[28.82724,104.624779],[28.826429,104.623734],[28.82542,104.622673],[28.823549,104.621033],[28.82159,104.619324],[28.820299,104.618202],[28.81879,104.61689],[28.8176,104.615837],[28.816589,104.61496],[28.81525,104.6138],[28.81423,104.612862],[28.81304,104.611588],[28.811781,104.610023],[28.81085,104.608841],[28.809839,104.607529],[28.80899,104.606438],[28.80829,104.605591],[28.80397,104.599716],[28.79163,104.60006],[28.77869,104.590103],[28.768459,104.583923],[28.764999,104.582039],[28.75341,104.570534],[28.7498,104.564194],[28.741831,104.551826],[28.73023,104.546158],[28.723009,104.535347],[28.71352,104.533112],[28.71097,104.53157],[28.70705,104.521606],[28.703291,104.519379],[28.69832,104.519897],[28.68597,104.524361],[28.68507,104.523331],[28.682211,104.520752],[28.672421,104.509598],[28.66684,104.501183],[28.664129,104.500328],[28.65494,104.501701],[28.651779,104.500839],[28.63928,104.496384],[28.635811,104.493629],[28.62888,104.483849],[28.62285,104.476982],[28.61788,104.467537],[28.608089,104.457916],[28.599489,104.44368],[28.599649,104.435951],[28.59844,104.429077],[28.600401,104.421021],[28.601,104.411232],[28.603109,104.394073],[28.603109,104.384453],[28.59889,104.372437],[28.587891,104.364723],[28.56769,104.354424],[28.563009,104.348747],[28.56241,104.339653],[28.564819,104.332947],[28.564671,104.32798],[28.558189,104.323517],[28.549589,104.320587],[28.543711,104.312363],[28.544621,104.305489],[28.544769,104.295532],[28.53949,104.285919],[28.53919,104.276817],[28.542509,104.26532],[28.551399,104.260002],[28.55744,104.260857],[28.561199,104.257263],[28.563009,104.246437],[28.562111,104.240433],[28.555321,104.22876],[28.55216,104.226868],[28.5511,104.22155],[28.54492,104.213654],[28.54055,104.20919],[28.536169,104.200607],[28.536631,104.192368],[28.532709,104.189102],[28.52652,104.187729],[28.523661,104.184471],[28.51038,104.181381],[28.502541,104.186867],[28.49575,104.186363],[28.49379,104.184471],[28.491529,104.186012],[28.48896,104.190483],[28.484739,104.192879],[28.48217,104.192368],[28.47765,104.190987],[28.472059,104.191681],[28.46904,104.193222],[28.46467,104.192879],[28.45742,104.191849],[28.45561,104.192711],[28.45335,104.195969],[28.44837,104.196136],[28.446711,104.195107],[28.45335,104.187393],[28.45471,104.190132],[28.45335,104.192543],[28.451691,104.194427],[28.449881,104.194427],[28.44656,104.192711],[28.445049,104.187393],[28.44293,104.185837],[28.438709,104.184982],[28.436899,104.183441],[28.435989,104.179657],[28.43478,104.178802],[28.43207,104.179657],[28.430401,104.178978],[28.429199,104.177429],[28.427691,104.176743],[28.42573,104.176918],[28.41984,104.175369],[28.39855,104.157013],[28.39492,104.150993],[28.3916,104.147049],[28.38798,104.147217],[28.384649,104.147392],[28.38254,104.149452],[28.37635,104.150139],[28.372419,104.15168],[28.36698,104.152367],[28.35928,104.149803],[28.35656,104.14756],[28.350519,104.14035],[28.34553,104.13829],[28.340851,104.133324],[28.33481,104.132797],[28.328911,104.13623],[28.323021,104.135033],[28.318029,104.135536],[28.31501,104.134506],[28.3067,104.136063],[28.30216,104.138474],[28.298389,104.13726],[28.2943,104.138809],[28.2875,104.144302],[28.27949,104.143784],[28.27541,104.145683],[28.268,104.153397],[28.26059,104.152367],[28.254551,104.144989],[28.24925,104.141899],[28.24729,104.140869],[28.244869,104.137444],[28.228689,104.140869],[28.205839,104.139839],[28.204781,104.134506],[28.201611,104.131599],[28.202209,104.124557],[28.200399,104.118378],[28.19994,104.111],[28.188601,104.103104],[28.184361,104.1007],[28.17906,104.096581],[28.17725,104.092461],[28.17165,104.093658],[28.165291,104.094002],[28.16151,104.092796],[28.15213,104.084389],[28.14592,104.083191],[28.141991,104.082672],[28.13608,104.072548],[28.132151,104.072723],[28.1273,104.073227],[28.1273,104.079758],[28.1273,104.082848],[28.12488,104.083878],[28.119579,104.080788],[28.11731,104.081642],[28.114429,104.086792],[28.11458,104.090569],[28.09354,104.131943],[28.09066,104.134003],[28.08672,104.133141],[28.0846,104.133827],[28.074301,104.141899],[28.06855,104.141899],[28.063551,104.144989],[28.05961,104.144653],[28.053101,104.145844],[28.046881,104.143784],[28.04492,104.142593],[28.040979,104.132111],[28.03643,104.125237],[28.03734,104.121811],[28.03931,104.119408],[28.04492,104.104134],[28.04295,104.097778],[28.039459,104.089882],[28.036131,104.079582],[28.027639,104.075638],[28.023701,104.076317],[28.01643,104.066193],[28.01552,104.052979],[28.01749,104.047653],[28.02037,104.036842],[28.01128,104.010918],[28.00491,104.006973],[28.00279,104.00251],[27.992331,103.988777],[27.99157,103.974182],[27.97747,103.962509],[27.97505,103.953934],[27.966101,103.948952],[27.96595,103.941223],[27.963221,103.935913],[27.95549,103.935043],[27.94791,103.919937],[27.93684,103.917374],[27.928499,103.916679],[27.916361,103.915131],[27.904831,103.913254],[27.89315,103.909286],[27.89012,103.912041],[27.884649,103.910843],[27.874941,103.906197],[27.86569,103.89917],[27.861441,103.897621],[27.854151,103.889557],[27.85294,103.88784],[27.853701,103.88475],[27.8496,103.876343],[27.846411,103.875481],[27.84565,103.873253],[27.843229,103.872223],[27.840639,103.867073],[27.83503,103.867409],[27.831989,103.864151],[27.828501,103.863121],[27.824551,103.857109],[27.821369,103.855049],[27.817869,103.855217],[27.81332,103.856941],[27.81135,103.859512],[27.80846,103.858139],[27.804661,103.861923],[27.799959,103.863289],[27.797831,103.864838],[27.79814,103.868271],[27.787661,103.878403],[27.7869,103.880966],[27.77627,103.880287],[27.7749,103.883202],[27.7708,103.883202],[27.76852,103.88681],[27.75865,103.886978],[27.7547,103.88475],[27.749531,103.884918],[27.74634,103.887154],[27.74361,103.887321],[27.73844,103.891273],[27.73601,103.89299],[27.73358,103.895218],[27.732059,103.89196],[27.72872,103.892303],[27.725531,103.896927],[27.715651,103.891441],[27.712761,103.89196],[27.70896,103.889214],[27.703951,103.88681],[27.701361,103.887497],[27.698931,103.886467],[27.696199,103.886292],[27.69376,103.884918],[27.689659,103.884064],[27.686621,103.880463],[27.684799,103.879768],[27.682671,103.877876],[27.680389,103.877022],[27.67902,103.875481],[27.67598,103.874786],[27.67066,103.866722],[27.667311,103.865181],[27.66564,103.856598],[27.66412,103.852303],[27.65789,103.848183],[27.652719,103.846123],[27.65028,103.843552],[27.64694,103.843552],[27.64283,103.842857],[27.63949,103.839943],[27.63797,103.837029],[27.631729,103.83239],[27.628229,103.831017],[27.626101,103.827583],[27.623819,103.826393],[27.623671,103.82209],[27.621849,103.820717],[27.62261,103.816772],[27.61956,103.815567],[27.618191,103.811279],[27.61515,103.806824],[27.61059,103.80407],[27.605419,103.801147],[27.59964,103.800461],[27.59507,103.800461],[27.593861,103.801491],[27.592939,103.803207],[27.590811,103.804916],[27.588989,103.808357],[27.587311,103.807671],[27.588989,103.805267],[27.59005,103.80304],[27.59157,103.801826],[27.59157,103.798576],[27.592939,103.798576],[27.5931,103.795998],[27.587009,103.785873],[27.586399,103.783813],[27.58518,103.783813],[27.58518,103.781921],[27.582291,103.777107],[27.580311,103.774544],[27.57818,103.773682],[27.57773,103.771797],[27.57362,103.770416],[27.573931,103.768883],[27.57469,103.768021],[27.57453,103.765099],[27.57453,103.763039],[27.57469,103.761841],[27.57316,103.759781],[27.57073,103.758583],[27.56982,103.756172],[27.566931,103.756172],[27.56312,103.753937],[27.56053,103.754967],[27.55475,103.754112],[27.54973,103.752571],[27.54668,103.752739],[27.53923,103.748962],[27.53344,103.747589],[27.530701,103.746902],[27.52355,103.739182],[27.51639,103.736778],[27.51137,103.739182],[27.506189,103.740211],[27.50436,103.739349],[27.50071,103.734718],[27.49873,103.730423],[27.495081,103.729393],[27.494619,103.726646],[27.493549,103.726822],[27.491421,103.728203],[27.476191,103.728706],[27.454559,103.719437],[27.44207,103.725273],[27.41617,103.733856],[27.3988,103.720993],[27.38965,103.717033],[27.36128,103.693459],[27.35232,103.692528],[27.351521,103.692436],[27.34355,103.691467],[27.31587,103.685341],[27.29833,103.681534],[27.29615,103.68148],[27.294399,103.681831],[27.28997,103.683388],[27.2887,103.683456],[27.28771,103.683289],[27.269011,103.676178],[27.268061,103.67598],[27.25794,103.676392],[27.25091,103.676598],[27.24836,103.676224],[27.217649,103.667976],[27.210899,103.667221],[27.20487,103.667038],[27.200251,103.666199],[27.196159,103.664726],[27.19311,103.663017],[27.191919,103.662132],[27.182261,103.651466],[27.179991,103.649803],[27.1779,103.648628],[27.175831,103.647827],[27.17329,103.647232],[27.17054,103.647072],[27.167339,103.647293],[27.164,103.647942],[27.15872,103.649628],[27.154169,103.651733],[27.152031,103.652283],[27.147369,103.652802],[27.143101,103.653908],[27.14143,103.653961],[27.14053,103.65387],[27.131121,103.650887],[27.129351,103.650627],[27.127211,103.650993],[27.12598,103.651718],[27.125299,103.65181],[27.124319,103.651947],[27.12398,103.651947],[27.12299,103.651672],[27.12096,103.651001],[27.113211,103.649933],[27.11253,103.649673],[27.110041,103.648109],[27.10898,103.647667],[27.108009,103.647499],[27.104919,103.647614],[27.103239,103.647346],[27.10194,103.646919],[27.09943,103.645592],[27.09831,103.645218],[27.09693,103.645073],[27.095551,103.645157],[27.09359,103.64563],[27.091999,103.646187],[27.088079,103.647491],[27.08704,103.647629],[27.086451,103.647598],[27.08568,103.647453],[27.084551,103.646973],[27.083851,103.6465],[27.083,103.645699],[27.08264,103.645157],[27.082161,103.644569],[27.080271,103.641853],[27.07803,103.639061],[27.07766,103.63871],[27.077499,103.638573],[27.075359,103.636833],[27.07407,103.636208],[27.07329,103.636017],[27.072309,103.636047],[27.071739,103.636208],[27.07119,103.636482],[27.070351,103.637131],[27.0693,103.638069],[27.06863,103.638474],[27.068081,103.638657],[27.066259,103.638893],[27.065479,103.639137],[27.06492,103.639473],[27.064301,103.640038],[27.06389,103.640556],[27.06365,103.640984],[27.06341,103.641617],[27.063271,103.642319],[27.063351,103.645111],[27.06321,103.646027],[27.06299,103.646698],[27.06267,103.647324],[27.06238,103.647667],[27.06175,103.648239],[27.060841,103.64872],[27.06019,103.648888],[27.059589,103.648903],[27.058981,103.648804],[27.05514,103.647217],[27.05409,103.647003],[27.052629,103.647003],[27.051451,103.647293],[27.05052,103.647758],[27.04999,103.648079],[27.047319,103.650131],[27.045959,103.650383],[27.04484,103.650269],[27.043961,103.649933],[27.04318,103.649384],[27.04158,103.647636],[27.040319,103.646759],[27.039061,103.646202],[27.03179,103.644981],[27.0299,103.644348],[27.02809,103.643211],[27.027651,103.64283],[27.026739,103.641541],[27.02565,103.63929],[27.02478,103.638153],[27.023161,103.636528],[27.022461,103.635483],[27.02191,103.634117],[27.0217,103.632423],[27.02203,103.623558],[27.021061,103.613472],[27.02072,103.612587],[27.02059,103.612259],[27.020491,103.612167],[27.020229,103.61161],[27.01918,103.610069],[27.018311,103.6092],[27.01779,103.60881],[27.017229,103.608498],[27.015921,103.607979],[27.01515,103.607826],[27.0135,103.607803],[27.01181,103.608093],[27.011709,103.608093],[27.010019,103.608276],[27.00703,103.607964],[27.005871,103.608063],[27.00322,103.608597],[27.002371,103.60862],[27.00173,103.608582],[27.0007,103.608337],[26.999479,103.607758],[26.99892,103.607384],[26.99749,103.605911],[26.996691,103.604797],[26.99585,103.603188],[26.995411,103.601929],[26.99506,103.599991],[26.994711,103.594978],[26.994341,103.593391],[26.99378,103.592201],[26.990351,103.588181],[26.98736,103.583832],[26.98568,103.582413],[26.984591,103.581718],[26.98411,103.581467],[26.98325,103.581146],[26.98291,103.5811],[26.982059,103.58091],[26.977859,103.581146],[26.976681,103.580917],[26.97571,103.580482],[26.97448,103.579628],[26.97374,103.578789],[26.972731,103.577187],[26.97262,103.577072],[26.96594,103.565643],[26.965549,103.564171],[26.965549,103.561852],[26.96533,103.560837],[26.964781,103.559708],[26.9634,103.55764],[26.96254,103.556923],[26.96184,103.556503],[26.96139,103.556374],[26.951269,103.55677],[26.949631,103.55658],[26.94891,103.556358],[26.94841,103.556068],[26.947809,103.55555],[26.947411,103.555054],[26.94702,103.554291],[26.946119,103.5513],[26.945709,103.550461],[26.94334,103.547234],[26.94191,103.544724],[26.94112,103.543762],[26.94002,103.542824],[26.93877,103.542023],[26.93788,103.541611],[26.937149,103.541367],[26.93611,103.541443],[26.934299,103.541588],[26.933229,103.541473],[26.932819,103.541367],[26.932211,103.541054],[26.93066,103.539978],[26.93,103.539673],[26.92931,103.539543],[26.928841,103.539528],[26.928129,103.539642],[26.926069,103.540443],[26.925381,103.540588],[26.9245,103.540611],[26.923599,103.540489],[26.92186,103.539993],[26.92103,103.539917],[26.92061,103.539963],[26.919809,103.540237],[26.919241,103.540558],[26.9184,103.541283],[26.91699,103.542778],[26.915291,103.544022],[26.914021,103.544777],[26.91256,103.545868],[26.91078,103.547691],[26.907909,103.551788],[26.90708,103.552597],[26.9065,103.552979],[26.90564,103.553337],[26.904961,103.553467],[26.903021,103.553612],[26.90229,103.55378],[26.901381,103.554176],[26.90003,103.554817],[26.899111,103.555107],[26.898161,103.555237],[26.89669,103.555199],[26.89435,103.554764],[26.89176,103.553963],[26.89102,103.553658],[26.890181,103.553383],[26.888451,103.552727],[26.888281,103.552612],[26.882441,103.549599],[26.8783,103.547081],[26.87499,103.545753],[26.873461,103.545357],[26.870871,103.544884],[26.86898,103.544853],[26.866899,103.54525],[26.86474,103.545937],[26.863489,103.546127],[26.86207,103.546089],[26.86063,103.545738],[26.85984,103.545372],[26.85869,103.544601],[26.85038,103.53727],[26.84799,103.535637],[26.846399,103.534782],[26.84396,103.533813],[26.83536,103.531258],[26.8347,103.530968],[26.83407,103.530586],[26.83326,103.530037],[26.832041,103.528839],[26.83091,103.527328],[26.83005,103.525391],[26.82686,103.516579],[26.82457,103.512283],[26.821711,103.508636],[26.820379,103.507294],[26.81715,103.504631],[26.814951,103.502937],[26.812519,103.500366],[26.810841,103.498398],[26.809139,103.496788],[26.80666,103.495071],[26.80418,103.493851],[26.801371,103.493073],[26.79701,103.492371],[26.795879,103.492073],[26.79248,103.490677],[26.79015,103.489326],[26.78669,103.48716],[26.783381,103.485764],[26.78071,103.485107],[26.77058,103.482986],[26.766041,103.481598],[26.76531,103.481339],[26.76446,103.480957],[26.763821,103.480339],[26.76302,103.479523],[26.762051,103.478531],[26.761669,103.478287],[26.76128,103.478104],[26.76041,103.477943],[26.759781,103.477966],[26.759159,103.478119],[26.75857,103.478416],[26.757839,103.478989],[26.75737,103.479553],[26.75712,103.479958],[26.75683,103.480637],[26.756651,103.481377],[26.75659,103.482094],[26.756491,103.483223],[26.75629,103.483994],[26.756069,103.484467],[26.755079,103.486023],[26.753731,103.487671],[26.751841,103.489517],[26.75123,103.489983],[26.750151,103.490578],[26.74922,103.490883],[26.74822,103.491028],[26.747219,103.490982],[26.746269,103.490784],[26.744961,103.490211],[26.743071,103.489067],[26.742649,103.488876],[26.74197,103.488708],[26.74106,103.48864],[26.737221,103.488533],[26.737341,103.487473],[26.736679,103.486862],[26.736601,103.486687],[26.735531,103.485252],[26.734989,103.484703],[26.73424,103.484253],[26.732981,103.483849],[26.732,103.483582],[26.731449,103.483307],[26.7311,103.483078],[26.730499,103.482452],[26.730009,103.481682],[26.729321,103.480247],[26.728939,103.479683],[26.728479,103.479187],[26.728121,103.478951],[26.726521,103.478203],[26.72613,103.477951],[26.72559,103.477501],[26.725121,103.476929],[26.723829,103.474678],[26.72327,103.474121],[26.72208,103.473419],[26.721121,103.472977],[26.72057,103.472603],[26.71909,103.471123],[26.718109,103.470413],[26.716681,103.469528],[26.715919,103.468903],[26.71526,103.468147],[26.710609,103.461243],[26.708389,103.458847],[26.70776,103.457916],[26.70702,103.456749],[26.70652,103.456177],[26.705839,103.455643],[26.704889,103.455193],[26.70277,103.45462],[26.701481,103.454048],[26.691151,103.446541],[26.68638,103.443703],[26.685579,103.443001],[26.68322,103.440132],[26.67824,103.435547],[26.677401,103.43454],[26.67481,103.430267],[26.674141,103.429466],[26.67314,103.428673],[26.670521,103.426804],[26.669189,103.425629],[26.6684,103.424561],[26.668381,103.424461],[26.666929,103.423126],[26.666401,103.422836],[26.66445,103.420998],[26.663811,103.420197],[26.663759,103.41996],[26.66337,103.419403],[26.660549,103.416901],[26.65888,103.414871],[26.65806,103.414238],[26.654551,103.412773],[26.65377,103.41227],[26.65312,103.411682],[26.65242,103.410744],[26.650511,103.407066],[26.65012,103.406532],[26.64963,103.406036],[26.64196,103.400917],[26.638769,103.399353],[26.636061,103.398041],[26.634979,103.397331],[26.63376,103.396317],[26.63225,103.394592],[26.627741,103.389038],[26.62705,103.387947],[26.624969,103.382874],[26.62381,103.379868],[26.623381,103.379211],[26.622931,103.37886],[26.622601,103.378677],[26.62208,103.37851],[26.62118,103.378342],[26.620661,103.378143],[26.620199,103.3778],[26.618971,103.376579],[26.61879,103.376266],[26.6173,103.374977],[26.616819,103.374672],[26.61614,103.374443],[26.615271,103.374283],[26.614929,103.374153],[26.614441,103.373901],[26.613911,103.373398],[26.613041,103.372147],[26.612579,103.37178],[26.61199,103.371429],[26.610559,103.37085],[26.609949,103.370407],[26.60861,103.368393],[26.608141,103.367996],[26.60759,103.36776],[26.607281,103.367691],[26.60648,103.367706],[26.604321,103.368393],[26.603701,103.368401],[26.60276,103.368134],[26.602051,103.367638],[26.600719,103.3666],[26.600389,103.366402],[26.599649,103.366127],[26.594931,103.365623],[26.59449,103.365494],[26.59387,103.365181],[26.59334,103.364754],[26.593019,103.364357],[26.59199,103.363037],[26.58865,103.358833],[26.588079,103.358269],[26.587099,103.357651],[26.586571,103.357437],[26.585621,103.357277],[26.584681,103.357353],[26.58441,103.357368],[26.58337,103.357529],[26.582121,103.357491],[26.58202,103.35746],[26.57988,103.35688],[26.57847,103.356453],[26.576639,103.356483],[26.57616,103.356628],[26.57501,103.357262],[26.573641,103.358566],[26.572889,103.360184],[26.57221,103.361847],[26.57144,103.362839],[26.570829,103.363373],[26.570009,103.363831],[26.56896,103.36412],[26.56839,103.364113],[26.56765,103.364037],[26.56732,103.363983],[26.56605,103.36335],[26.565611,103.363037],[26.561211,103.358841],[26.56068,103.358238],[26.55739,103.352203],[26.55625,103.350777],[26.555281,103.349998],[26.551029,103.347748],[26.54763,103.345238],[26.543949,103.342262],[26.54328,103.341537],[26.54122,103.338219],[26.5352,103.32708],[26.5343,103.326233],[26.53418,103.326141],[26.5306,103.324722],[26.53013,103.324417],[26.52984,103.324158],[26.529591,103.323853],[26.52923,103.323128],[26.529131,103.322723],[26.529091,103.321892],[26.52928,103.32029],[26.529249,103.319679],[26.529091,103.319107],[26.52883,103.318604],[26.5261,103.315666],[26.5256,103.315247],[26.52487,103.314781],[26.52132,103.313271],[26.520399,103.313087],[26.51967,103.313087],[26.513321,103.313911],[26.512739,103.313904],[26.51181,103.31369],[26.511129,103.313377],[26.51038,103.312759],[26.5098,103.312019],[26.50769,103.307098],[26.506969,103.306129],[26.5065,103.305687],[26.505831,103.305313],[26.504841,103.305023],[26.499769,103.305023],[26.49926,103.304916],[26.49859,103.304657],[26.49827,103.304459],[26.49769,103.303886],[26.496719,103.302559],[26.49597,103.301826],[26.49544,103.301514],[26.494869,103.301292],[26.494061,103.301193],[26.49346,103.301247],[26.49209,103.301643],[26.487391,103.30336],[26.484831,103.303802],[26.484209,103.303802],[26.483999,103.303772],[26.482771,103.303909],[26.481871,103.304153],[26.480391,103.304916],[26.47942,103.305557],[26.4783,103.306091],[26.47756,103.306236],[26.477131,103.306213],[26.476629,103.306061],[26.476021,103.305687],[26.474951,103.304581],[26.473909,103.303993],[26.47316,103.30378],[26.472469,103.303741],[26.471979,103.303833],[26.47183,103.303886],[26.47172,103.304001],[26.471331,103.304131],[26.470421,103.304176],[26.46986,103.304047],[26.46932,103.303772],[26.468941,103.303452],[26.468309,103.302727],[26.466181,103.299278],[26.46574,103.298576],[26.46533,103.29808],[26.46483,103.297737],[26.464491,103.297577],[26.463921,103.297493],[26.46352,103.297531],[26.462311,103.297974],[26.460239,103.298714],[26.459629,103.298843],[26.459009,103.298889],[26.45858,103.298851],[26.457951,103.298683],[26.456949,103.298157],[26.456591,103.297897],[26.456091,103.297447],[26.455721,103.296959],[26.45507,103.295624],[26.453449,103.290291],[26.4531,103.289574],[26.45273,103.28907],[26.452141,103.288483],[26.447451,103.285461],[26.447041,103.285057],[26.44672,103.284607],[26.44651,103.284088],[26.44643,103.283531],[26.44644,103.282013],[26.44626,103.281258],[26.44591,103.280571],[26.442511,103.276314],[26.44105,103.274773],[26.42713,103.267792],[26.42532,103.266891],[26.424749,103.266602],[26.424561,103.266487],[26.393221,103.250977],[26.391689,103.250366],[26.391001,103.250252],[26.390511,103.250252],[26.38979,103.250359],[26.389311,103.250511],[26.388599,103.250839],[26.38796,103.251289],[26.387421,103.251831],[26.38199,103.258743],[26.380569,103.260162],[26.3787,103.261597],[26.37796,103.262077],[26.376129,103.262993],[26.374269,103.263718],[26.37236,103.264168],[26.36668,103.265137],[26.36566,103.26519],[26.36433,103.265091],[26.36381,103.264969],[26.36306,103.264641],[26.36236,103.264252],[26.359619,103.262039],[26.358789,103.261551],[26.35813,103.261337],[26.35747,103.261276],[26.355379,103.261307],[26.354601,103.261162],[26.34967,103.258942],[26.348619,103.25872],[26.34795,103.258759],[26.34745,103.258904],[26.34697,103.259163],[26.346371,103.259651],[26.34589,103.260277],[26.34553,103.261009],[26.34346,103.267906],[26.3433,103.269096],[26.343361,103.269836],[26.34374,103.271461],[26.3438,103.272087],[26.34333,103.27475],[26.34334,103.27597],[26.343531,103.277008],[26.34387,103.278038],[26.34478,103.280586],[26.344999,103.281326],[26.34659,103.285301],[26.346701,103.285789],[26.346741,103.28656],[26.346519,103.288887],[26.346769,103.292091],[26.34671,103.29287],[26.34654,103.29332],[26.344839,103.296158],[26.344681,103.296356],[26.34429,103.296669],[26.343599,103.296982],[26.34197,103.297363],[26.34129,103.297623],[26.3395,103.298767],[26.338619,103.299133],[26.334459,103.300262],[26.333811,103.300591],[26.333441,103.30088],[26.332121,103.302429],[26.328951,103.30632],[26.328211,103.307053],[26.327579,103.307518],[26.32666,103.307922],[26.32531,103.308357],[26.32243,103.309929],[26.32165,103.310471],[26.31884,103.314163],[26.31797,103.315041],[26.31698,103.315773],[26.315729,103.316521],[26.315001,103.317123],[26.31403,103.318253],[26.312361,103.320862],[26.31218,103.321312],[26.311239,103.325974],[26.31101,103.326736],[26.309771,103.329491],[26.309549,103.330276],[26.30946,103.330818],[26.30946,103.332451],[26.309401,103.332977],[26.309179,103.33374],[26.30858,103.334938],[26.3076,103.336472],[26.30689,103.338226],[26.30661,103.339333],[26.30633,103.340973],[26.30619,103.341461],[26.305849,103.342163],[26.305531,103.342537],[26.30406,103.343918],[26.30307,103.344681],[26.30007,103.347366],[26.298969,103.348038],[26.29743,103.348663],[26.294941,103.349159],[26.294559,103.349297],[26.29011,103.352043],[26.28854,103.353416],[26.287861,103.354118],[26.287491,103.354378],[26.286869,103.354637],[26.28377,103.355232],[26.283331,103.355377],[26.28273,103.355713],[26.280279,103.358047],[26.279699,103.358467],[26.277109,103.359993],[26.2764,103.360291],[26.27462,103.360687],[26.273331,103.36097],[26.27282,103.361153],[26.27235,103.361397],[26.27169,103.361893],[26.26902,103.364273],[26.26837,103.36467],[26.2679,103.364868],[26.267389,103.36499],[26.266621,103.36499],[26.26524,103.364647],[26.26186,103.363678],[26.261129,103.363548],[26.260429,103.363541],[26.26001,103.363602],[26.25942,103.363823],[26.257891,103.364769],[26.257271,103.365021],[26.256359,103.365173],[26.253691,103.365349],[26.25301,103.365479],[26.24645,103.367821],[26.244711,103.368767],[26.24288,103.370148],[26.238939,103.373947],[26.2377,103.375526],[26.236839,103.377007],[26.235729,103.379669],[26.235359,103.38105],[26.234341,103.389236],[26.23395,103.390549],[26.23344,103.39151],[26.233101,103.391953],[26.23229,103.392693],[26.23144,103.393372],[26.230499,103.394333],[26.229891,103.395218],[26.22916,103.396698],[26.22888,103.397476],[26.228121,103.400261],[26.227501,103.40213],[26.227301,103.402931],[26.227091,103.403427],[26.226641,103.404121],[26.22611,103.404709],[26.22547,103.405182],[26.224661,103.405533],[26.221069,103.406113],[26.219521,103.406143],[26.218451,103.40596],[26.21789,103.405693],[26.215919,103.404037],[26.21559,103.403633],[26.21291,103.401031],[26.21072,103.399094],[26.207279,103.39798],[26.203951,103.398811],[26.2036,103.399063],[26.203199,103.3992],[26.202829,103.399406],[26.20146,103.399971],[26.200609,103.400146],[26.19997,103.400192],[26.19912,103.400063],[26.19795,103.399513],[26.196461,103.398643],[26.195471,103.398148],[26.19492,103.397797],[26.194241,103.397324],[26.194031,103.397247],[26.19183,103.396027],[26.190729,103.39579],[26.189899,103.395866],[26.188931,103.396301],[26.18684,103.397659],[26.1859,103.39827],[26.18556,103.398376],[26.183399,103.398598],[26.18268,103.398857],[26.181829,103.399399],[26.18091,103.400352],[26.178711,103.403313],[26.17831,103.403709],[26.177891,103.403923],[26.177549,103.403999],[26.177019,103.403893],[26.176781,103.403763],[26.176559,103.403557],[26.176319,103.403137],[26.17622,103.402802],[26.17618,103.402283],[26.176229,103.401787],[26.176371,103.4011],[26.17642,103.400589],[26.17622,103.398972],[26.17621,103.397568],[26.17647,103.39576],[26.176189,103.393623],[26.175739,103.391579],[26.175739,103.391418],[26.17531,103.390739],[26.174931,103.390457],[26.174641,103.390373],[26.174351,103.390373],[26.17407,103.390442],[26.173679,103.390701],[26.173361,103.391098],[26.173,103.391907],[26.172779,103.392677],[26.172409,103.393379],[26.17231,103.393494],[26.17207,103.393646],[26.171659,103.393723],[26.168779,103.393097],[26.168171,103.392822],[26.16744,103.392273],[26.167351,103.392174],[26.166031,103.391159],[26.16197,103.38813],[26.160919,103.387016],[26.160311,103.386307],[26.15793,103.384117],[26.157539,103.383659],[26.155451,103.380707],[26.154449,103.379318],[26.153799,103.377769],[26.153231,103.375031],[26.153231,103.374878],[26.15317,103.374748],[26.15295,103.374046],[26.152229,103.373108],[26.151541,103.372322],[26.15114,103.371468],[26.1509,103.370163],[26.150761,103.369881],[26.15069,103.36956],[26.15045,103.369148],[26.14999,103.368767],[26.149561,103.368652],[26.14912,103.368683],[26.1486,103.368927],[26.147631,103.369682],[26.147181,103.369873],[26.14687,103.369904],[26.146391,103.369827],[26.14535,103.369431],[26.14488,103.36937],[26.144581,103.369408],[26.144341,103.36953],[26.14411,103.369728],[26.14381,103.370247],[26.143709,103.370888],[26.143721,103.372162],[26.1436,103.372597],[26.143379,103.373001],[26.1432,103.373222],[26.142719,103.373543],[26.14189,103.373787],[26.137711,103.373772],[26.136459,103.373596],[26.135691,103.373672],[26.13501,103.373833],[26.12385,103.377121],[26.122641,103.377708],[26.11801,103.381523],[26.116779,103.382263],[26.1161,103.38253],[26.11503,103.382759],[26.113741,103.382843],[26.111959,103.382561],[26.11124,103.382233],[26.110331,103.381683],[26.110001,103.381363],[26.108641,103.379333],[26.10817,103.378563],[26.107849,103.377998],[26.107479,103.377693],[26.10696,103.377563],[26.10442,103.377533],[26.10367,103.377296],[26.102921,103.376793],[26.102301,103.376068],[26.100321,103.372772],[26.099701,103.371986],[26.099489,103.371803],[26.09893,103.371521],[26.098669,103.371498],[26.098049,103.371613],[26.097521,103.371902],[26.096581,103.372757],[26.095949,103.373337],[26.09532,103.373833],[26.09458,103.3741],[26.09387,103.374077],[26.09329,103.373894],[26.090401,103.372589],[26.083139,103.368111],[26.082951,103.368011],[26.07933,103.364166],[26.078779,103.363388],[26.078369,103.362213],[26.078131,103.361214],[26.07766,103.360123],[26.07703,103.359161],[26.07538,103.356583],[26.07522,103.356468],[26.07472,103.356041],[26.074341,103.355797],[26.07395,103.355652],[26.07341,103.355598],[26.07279,103.35569],[26.066151,103.35788],[26.06604,103.357964],[26.06423,103.358704],[26.054621,103.363274],[26.05266,103.3638],[26.05201,103.364159],[26.051319,103.364777],[26.05094,103.365219],[26.050579,103.365707],[26.050171,103.366112],[26.049669,103.366417],[26.04929,103.366547],[26.048889,103.366623],[26.04748,103.36657],[26.04694,103.366669],[26.04641,103.36689],[26.045811,103.367363],[26.043739,103.369476],[26.042669,103.370308],[26.037701,103.373703],[26.03702,103.373978],[26.036551,103.374069],[26.035601,103.374107],[26.03249,103.37413],[26.030939,103.374496],[26.027519,103.375816],[26.02634,103.376213],[26.025709,103.376297],[26.02487,103.376244],[26.02202,103.375542],[26.015551,103.374832],[26.014351,103.374496],[26.01321,103.374023],[26.0124,103.373756],[26.011789,103.373688],[26.007721,103.373962],[26.00436,103.373741],[26.00349,103.37384],[26.000931,103.374496],[26.00028,103.374527],[25.99984,103.374474],[25.99917,103.374283],[25.99048,103.369667],[25.98843,103.368462],[25.987419,103.367493],[25.98374,103.362061],[25.98126,103.359642],[25.974859,103.354439],[25.97471,103.354286],[25.968161,103.348991],[25.967581,103.348373],[25.967051,103.347679],[25.96632,103.346207],[25.966,103.34536],[25.965891,103.344963],[25.965139,103.343102],[25.96468,103.3423],[25.96401,103.341583],[25.96048,103.339149],[25.95989,103.338921],[25.95927,103.33886],[25.95841,103.338966],[25.95583,103.339653],[25.954,103.339706],[25.95211,103.339279],[25.95129,103.339073],[25.95068,103.339043],[25.950279,103.339081],[25.949671,103.339279],[25.94873,103.339767],[25.94838,103.340057],[25.946369,103.342346],[25.945511,103.343246],[25.945009,103.343643],[25.944611,103.343849],[25.944201,103.343979],[25.943991,103.344009],[25.943371,103.343933],[25.942789,103.343681],[25.94227,103.343277],[25.941629,103.34256],[25.937929,103.337509],[25.93656,103.335693],[25.935539,103.334587],[25.934219,103.33329],[25.933281,103.33181],[25.93195,103.32885],[25.93116,103.327721],[25.93108,103.327606],[25.930941,103.327522],[25.93082,103.32737],[25.93,103.326981],[25.928551,103.326042],[25.92778,103.325394],[25.926069,103.323463],[25.925529,103.323059],[25.924589,103.322632],[25.92318,103.322243],[25.922449,103.3218],[25.921789,103.321243],[25.920389,103.319901],[25.920111,103.319733],[25.919769,103.319641],[25.91926,103.319649],[25.915279,103.321182],[25.9137,103.321838],[25.91114,103.321938],[25.91078,103.319809],[25.91044,103.316429],[25.910641,103.316177],[25.910789,103.315857],[25.911779,103.314079],[25.912121,103.313232],[25.912319,103.312576],[25.9126,103.310478],[25.913059,103.308723],[25.913099,103.308289],[25.912689,103.306068],[25.91288,103.303902],[25.912809,103.303436],[25.912411,103.302567],[25.91205,103.302177],[25.911591,103.301903],[25.91148,103.301888],[25.910851,103.301537],[25.910299,103.301361],[25.908951,103.300728],[25.9088,103.300598],[25.906731,103.299622],[25.905649,103.299858],[25.905439,103.300003],[25.905359,103.299957],[25.904671,103.300102],[25.903919,103.300034],[25.903509,103.299767],[25.90321,103.299316],[25.902201,103.295471],[25.90147,103.293877],[25.90085,103.293854],[25.90065,103.293762],[25.90052,103.293427],[25.900061,103.292648],[25.89992,103.291634],[25.899891,103.291107],[25.899771,103.290756],[25.899521,103.290352],[25.89922,103.290131],[25.899059,103.290092],[25.89883,103.290108],[25.89856,103.290039],[25.897209,103.290359],[25.8962,103.290253],[25.895651,103.289963],[25.89509,103.289436],[25.894699,103.288834],[25.894199,103.287666],[25.893629,103.287033],[25.893419,103.28688],[25.89274,103.286728],[25.89192,103.286789],[25.890381,103.287148],[25.8895,103.287239],[25.887739,103.286926],[25.88566,103.286507],[25.88493,103.286583],[25.883249,103.287277],[25.88265,103.287369],[25.881981,103.287216],[25.879101,103.28566],[25.87722,103.284523],[25.876011,103.284119],[25.871019,103.283287],[25.86895,103.283157],[25.86727,103.282509],[25.86611,103.281937],[25.865749,103.28183],[25.86347,103.281464],[25.86125,103.280663],[25.85948,103.280479],[25.856489,103.280434],[25.854349,103.280251],[25.8536,103.279984],[25.853001,103.279556],[25.852051,103.278236],[25.850981,103.276466],[25.850651,103.276039],[25.8494,103.275017],[25.849079,103.274834],[25.84857,103.274673],[25.848049,103.274628],[25.847309,103.274696],[25.84659,103.274849],[25.845449,103.274872],[25.84498,103.274757],[25.844231,103.274399],[25.843599,103.274246],[25.84259,103.274292],[25.838961,103.274857],[25.837351,103.274857],[25.83423,103.273956],[25.833731,103.273933],[25.833059,103.274109],[25.832451,103.27446],[25.8311,103.275482],[25.83045,103.275703],[25.829679,103.275757],[25.827801,103.275658],[25.82725,103.275711],[25.826559,103.275932],[25.82596,103.27626],[25.82546,103.276657],[25.82526,103.276878],[25.8204,103.277748],[25.8202,103.277733],[25.820049,103.277649],[25.81978,103.277359],[25.81876,103.276527],[25.8181,103.276207],[25.817751,103.276108],[25.816999,103.276108],[25.81418,103.276428],[25.81275,103.276459],[25.810659,103.276108],[25.80863,103.276161],[25.803711,103.276512],[25.799,103.275848],[25.797159,103.275597],[25.796749,103.275597],[25.796009,103.275749],[25.7952,103.276108],[25.79451,103.276657],[25.79405,103.277161],[25.793079,103.278763],[25.79258,103.279327],[25.79213,103.279648],[25.791451,103.279907],[25.790899,103.279999],[25.790331,103.279953],[25.789801,103.279778],[25.78635,103.277962],[25.78553,103.277649],[25.784929,103.277496],[25.784149,103.277458],[25.78261,103.277557],[25.78163,103.277496],[25.78021,103.277199],[25.77636,103.276031],[25.771879,103.274979],[25.77083,103.274529],[25.769979,103.274109],[25.769329,103.273857],[25.76755,103.273407],[25.76668,103.273247],[25.76523,103.272781],[25.76408,103.272308],[25.763359,103.272102],[25.762831,103.272057],[25.762381,103.272133],[25.76111,103.27253],[25.7603,103.272797],[25.75943,103.272858],[25.759081,103.272781],[25.7582,103.272346],[25.75625,103.271156],[25.755899,103.271004],[25.75555,103.270882],[25.75481,103.27076],[25.75461,103.27076],[25.75441,103.270798],[25.75098,103.27066],[25.74658,103.27095],[25.745951,103.270882],[25.74535,103.270699],[25.741751,103.269157],[25.740379,103.268951],[25.727909,103.269653],[25.72686,103.269577],[25.72611,103.269402],[25.72541,103.269096],[25.723101,103.267998],[25.722099,103.267677],[25.721081,103.267548],[25.72028,103.267563],[25.719259,103.267677],[25.7166,103.267754],[25.714849,103.267647],[25.71176,103.267097],[25.709009,103.26635],[25.708229,103.266197],[25.70643,103.266159],[25.703899,103.266403],[25.70166,103.266502],[25.695101,103.266151],[25.69413,103.26593],[25.69368,103.265709],[25.692631,103.26506],[25.69173,103.264702],[25.69101,103.26458],[25.6898,103.264664],[25.68721,103.265106],[25.685909,103.265381],[25.6849,103.265511],[25.68416,103.26548],[25.683701,103.265358],[25.681999,103.264557],[25.68136,103.264351],[25.68075,103.264259],[25.67716,103.265152],[25.676611,103.265182],[25.67605,103.265083],[25.67461,103.264557],[25.67281,103.263763],[25.67136,103.26326],[25.668329,103.262451],[25.667351,103.261978],[25.665979,103.261162],[25.665279,103.260902],[25.664801,103.260811],[25.664061,103.260811],[25.661209,103.261253],[25.66028,103.261253],[25.65893,103.261002],[25.65873,103.260933],[25.657881,103.26078],[25.65686,103.260857],[25.65041,103.263283],[25.64731,103.264412],[25.64706,103.264481],[25.646259,103.264603],[25.645109,103.264549],[25.64435,103.264412],[25.63361,103.261147],[25.63203,103.260757],[25.63093,103.260399],[25.62985,103.259933],[25.628759,103.259354],[25.62656,103.257698],[25.62546,103.256607],[25.62421,103.254982],[25.62351,103.25383],[25.62183,103.250664],[25.620859,103.249229],[25.61961,103.247726],[25.607679,103.235161],[25.599199,103.226303],[25.597651,103.224983],[25.595449,103.223511],[25.5819,103.217506],[25.5807,103.217133],[25.57921,103.216927],[25.578711,103.216911],[25.577959,103.216927],[25.57568,103.216881],[25.574659,103.216698],[25.566509,103.214333],[25.5655,103.213852],[25.5634,103.212646],[25.5632,103.212509],[25.55838,103.209663],[25.556431,103.208527],[25.55505,103.207977],[25.553829,103.20768],[25.550329,103.207092],[25.54949,103.206947],[25.549971,103.207581],[25.55011,103.207863],[25.55036,103.208107],[25.550711,103.208153],[25.551161,103.208252],[25.551571,103.208557],[25.55184,103.206657],[25.55212,103.2062],[25.552441,103.206009],[25.55271,103.205597],[25.552811,103.204437],[25.55295,103.201317],[25.55307,103.197433],[25.553141,103.196373],[25.553471,103.191902],[25.55352,103.191704],[25.55443,103.188454],[25.55512,103.185707],[25.55559,103.183983],[25.556129,103.182167],[25.556459,103.181473],[25.556829,103.180923],[25.557421,103.18029],[25.557961,103.179893],[25.558849,103.179443],[25.56251,103.177856],[25.56278,103.177696],[25.563021,103.177513],[25.56337,103.176979],[25.56349,103.176689],[25.56361,103.176163],[25.5637,103.175423],[25.56385,103.174667],[25.566589,103.167618],[25.56706,103.166313],[25.56739,103.165588],[25.568171,103.164452],[25.568741,103.163582],[25.569189,103.163292],[25.57011,103.16304],[25.57065,103.162827],[25.57196,103.16214],[25.572519,103.161873],[25.573351,103.16143],[25.573721,103.161507],[25.5742,103.161903],[25.57464,103.161949],[25.574829,103.161812],[25.57535,103.161179],[25.57547,103.160851],[25.575331,103.160667],[25.57497,103.160606],[25.57469,103.160347],[25.574699,103.15976],[25.5748,103.159492],[25.57592,103.158859],[25.57621,103.158661],[25.576571,103.158234],[25.57695,103.157837],[25.57728,103.157677],[25.57756,103.157677],[25.577869,103.1576],[25.578381,103.15728],[25.578501,103.157158],[25.578569,103.156998],[25.578751,103.156227],[25.57889,103.155884],[25.578951,103.155617],[25.578899,103.155373],[25.57851,103.154999],[25.578341,103.154762],[25.5783,103.154556],[25.578291,103.153717],[25.578421,103.153511],[25.578581,103.153572],[25.578779,103.153908],[25.57897,103.154114],[25.579531,103.154411],[25.5797,103.154297],[25.579691,103.154083],[25.57925,103.153549],[25.579029,103.153137],[25.57893,103.152763],[25.57901,103.152313],[25.579121,103.152031],[25.57951,103.151489],[25.57963,103.15123],[25.57971,103.150513],[25.57984,103.15023],[25.580021,103.15023],[25.58012,103.150337],[25.580151,103.150909],[25.58033,103.151741],[25.580509,103.15197],[25.580709,103.152061],[25.58091,103.152077],[25.58124,103.151878],[25.582331,103.149551],[25.583521,103.147102],[25.58371,103.146568],[25.583759,103.14608],[25.58305,103.142853],[25.582661,103.141586],[25.582661,103.141121],[25.583111,103.139793],[25.58313,103.139458],[25.58235,103.136772],[25.581261,103.134132],[25.58086,103.133087],[25.580469,103.132187],[25.58016,103.131752],[25.57819,103.130074],[25.57766,103.129532],[25.577579,103.129402],[25.57732,103.128807],[25.576981,103.127869],[25.57686,103.127609],[25.576509,103.127213],[25.57601,103.126793],[25.575859,103.126587],[25.57546,103.125763],[25.575029,103.125343],[25.574381,103.125191],[25.57383,103.125221],[25.573139,103.125366],[25.572701,103.125343],[25.572411,103.12513],[25.572041,103.124657],[25.57058,103.12236],[25.570129,103.121719],[25.56999,103.121452],[25.56992,103.12104],[25.570089,103.120644],[25.57011,103.120171],[25.569851,103.119743],[25.569521,103.119537],[25.567829,103.119141],[25.567499,103.11882],[25.567249,103.118172],[25.566469,103.117126],[25.566259,103.116653],[25.566311,103.116257],[25.56665,103.115494],[25.566719,103.114906],[25.5667,103.11467],[25.566521,103.114182],[25.56608,103.113403],[25.56568,103.112846],[25.565281,103.112373],[25.56498,103.112122],[25.563419,103.111099],[25.55805,103.107399],[25.55769,103.107231],[25.5539,103.105881],[25.5509,103.104362],[25.54928,103.103989],[25.54875,103.103996],[25.548,103.10421],[25.547489,103.104179],[25.546881,103.103958],[25.546,103.103523],[25.54587,103.103317],[25.5459,103.103203],[25.546021,103.102921],[25.54619,103.10276],[25.546551,103.102676],[25.547609,103.102509],[25.54808,103.102531],[25.548491,103.102364],[25.548651,103.102249],[25.548809,103.101883],[25.54903,103.101791],[25.549311,103.102112],[25.549601,103.102226],[25.55043,103.102081],[25.55094,103.101936],[25.55117,103.101807],[25.55135,103.101593],[25.551689,103.101341],[25.55188,103.101341],[25.55261,103.101448],[25.552971,103.101334],[25.553209,103.101028],[25.55323,103.100754],[25.552891,103.099854],[25.55262,103.099663],[25.55237,103.099602],[25.55221,103.099319],[25.552,103.098473],[25.551741,103.097923],[25.55172,103.097511],[25.55191,103.097099],[25.552271,103.096809],[25.5527,103.09684],[25.552879,103.096947],[25.553631,103.097603],[25.554001,103.097733],[25.555149,103.097931],[25.555559,103.098129],[25.55596,103.098267],[25.55673,103.097969],[25.55715,103.097763],[25.557779,103.097687],[25.558451,103.097481],[25.559259,103.096878],[25.559469,103.096367],[25.55983,103.096092],[25.55995,103.09584],[25.559891,103.095459],[25.55999,103.095337],[25.56019,103.095222],[25.56027,103.094994],[25.560261,103.09491],[25.56045,103.094612],[25.56053,103.094597],[25.560789,103.094353],[25.56094,103.093941],[25.561159,103.093773],[25.56131,103.093964],[25.56152,103.094498],[25.561859,103.094933],[25.562401,103.095062],[25.562771,103.095047],[25.563141,103.09494],[25.56348,103.094719],[25.564951,103.093613],[25.565281,103.093552],[25.56558,103.093719],[25.56576,103.093781],[25.566071,103.093773],[25.56847,103.093002],[25.568859,103.09269],[25.570089,103.091476],[25.570459,103.091301],[25.570709,103.091263],[25.571011,103.09111],[25.571091,103.090919],[25.571091,103.090347],[25.57073,103.089706],[25.570801,103.089394],[25.57111,103.089249],[25.571381,103.08902],[25.57136,103.088783],[25.570959,103.088074],[25.57095,103.087837],[25.571119,103.087791],[25.57139,103.087784],[25.572081,103.087608],[25.57238,103.08741],[25.57251,103.087021],[25.572309,103.083817],[25.57247,103.082024],[25.572451,103.081833],[25.572371,103.081642],[25.571899,103.080872],[25.57159,103.080421],[25.571381,103.08004],[25.57136,103.079712],[25.571541,103.079498],[25.571911,103.079277],[25.572201,103.078949],[25.57238,103.078491],[25.572651,103.078102],[25.573219,103.077606],[25.57412,103.076927],[25.57445,103.076408],[25.57472,103.075829],[25.57514,103.07444],[25.57538,103.073853],[25.576191,103.072327],[25.576509,103.071617],[25.576969,103.070282],[25.57692,103.069893],[25.57634,103.068428],[25.576241,103.068283],[25.57583,103.067947],[25.575491,103.067886],[25.57477,103.067917],[25.57431,103.067993],[25.573549,103.068024],[25.573231,103.067886],[25.573071,103.067589],[25.572729,103.06546],[25.572651,103.065163],[25.572309,103.064743],[25.571779,103.064262],[25.571659,103.063957],[25.57176,103.063797],[25.573151,103.062553],[25.57329,103.062248],[25.57332,103.058449],[25.57328,103.057503],[25.573191,103.056824],[25.572861,103.05513],[25.57259,103.054642],[25.5718,103.053482],[25.57119,103.052803],[25.57078,103.052467],[25.5707,103.052429],[25.5704,103.052116],[25.57029,103.051788],[25.570129,103.051514],[25.56991,103.051277],[25.569401,103.051086],[25.56897,103.051041],[25.568569,103.050858],[25.568251,103.050484],[25.56826,103.050209],[25.568439,103.050117],[25.56875,103.050163],[25.56941,103.050034],[25.56971,103.049828],[25.570129,103.049744],[25.57021,103.049751],[25.57085,103.049637],[25.57099,103.049553],[25.571159,103.049057],[25.571171,103.048843],[25.5711,103.048607],[25.57073,103.047859],[25.57004,103.046677],[25.56974,103.046463],[25.56904,103.04615],[25.56856,103.04583],[25.56805,103.045403],[25.56785,103.045097],[25.567631,103.044533],[25.567249,103.044243],[25.566759,103.044067],[25.56636,103.044167],[25.56559,103.044731],[25.56531,103.044678],[25.565241,103.043938],[25.56517,103.043663],[25.565241,103.043167],[25.565371,103.042923],[25.56538,103.042542],[25.565269,103.042374],[25.56428,103.041054],[25.563749,103.040413],[25.562929,103.039612],[25.562571,103.03894],[25.56245,103.038544],[25.562031,103.037956],[25.561899,103.037437],[25.561741,103.037323],[25.561319,103.037193],[25.56114,103.037109],[25.56098,103.036812],[25.561119,103.036598],[25.56152,103.036247],[25.56159,103.036003],[25.56147,103.035896],[25.561171,103.035744],[25.56093,103.035667],[25.56032,103.035713],[25.56004,103.035538],[25.55975,103.035011],[25.55949,103.034401],[25.55925,103.034157],[25.55895,103.033997],[25.55879,103.033691],[25.558889,103.033432],[25.55932,103.032944],[25.559469,103.032471],[25.55938,103.032204],[25.55883,103.031616],[25.55821,103.031197],[25.55794,103.030731],[25.55785,103.030411],[25.5576,103.030113],[25.556141,103.029617],[25.555771,103.029457],[25.555401,103.02948],[25.555309,103.029533],[25.554899,103.029587],[25.55475,103.029381],[25.554729,103.028687],[25.554689,103.028503],[25.554489,103.028358],[25.55349,103.028343],[25.55323,103.028152],[25.55324,103.027718],[25.55316,103.027229],[25.55294,103.026657],[25.5527,103.026413],[25.55253,103.026337],[25.552259,103.025993],[25.552361,103.025703],[25.552589,103.025459],[25.55295,103.025337],[25.55312,103.025436],[25.553419,103.025757],[25.55369,103.025909],[25.555309,103.025841],[25.55563,103.025673],[25.55615,103.025169],[25.556259,103.024849],[25.55616,103.024689],[25.55513,103.023552],[25.555019,103.023193],[25.55521,103.023087],[25.555559,103.023102],[25.556179,103.022926],[25.556749,103.02269],[25.55724,103.022552],[25.55743,103.022537],[25.557711,103.022598],[25.55817,103.022781],[25.559549,103.023666],[25.56052,103.024246],[25.561411,103.024841],[25.562189,103.025307],[25.56303,103.025551],[25.56348,103.025864],[25.563971,103.025993],[25.56423,103.026016],[25.564751,103.025917],[25.565861,103.025681],[25.566389,103.025398],[25.566771,103.025307],[25.567551,103.025284],[25.567841,103.025299],[25.56811,103.025513],[25.568371,103.02594],[25.568729,103.026199],[25.568899,103.026283],[25.569241,103.026222],[25.569469,103.026047],[25.569651,103.025772],[25.569889,103.0252],[25.569969,103.024673],[25.57015,103.024231],[25.570391,103.023933],[25.57065,103.023376],[25.57066,103.022972],[25.570589,103.022568],[25.57069,103.022057],[25.57078,103.021828],[25.570761,103.021362],[25.570669,103.021133],[25.570669,103.020638],[25.570841,103.019882],[25.570829,103.019081],[25.570971,103.018578],[25.57155,103.017769],[25.572029,103.017174],[25.572241,103.016777],[25.573,103.014839],[25.573151,103.01416],[25.573271,103.013031],[25.573271,103.012833],[25.57338,103.012459],[25.573601,103.012138],[25.5737,103.011833],[25.57345,103.011597],[25.57276,103.011101],[25.572639,103.010773],[25.57287,103.010193],[25.57291,103.009628],[25.5728,103.008873],[25.572901,103.008636],[25.573071,103.00869],[25.574011,103.009239],[25.57431,103.009277],[25.574421,103.009071],[25.574459,103.00782],[25.574369,103.007431],[25.574089,103.00692],[25.57399,103.006683],[25.57394,103.006271],[25.573971,103.005928],[25.5744,103.004807],[25.574659,103.003403],[25.574949,103.002617],[25.575359,103.001923],[25.5756,103.001801],[25.5758,103.001961],[25.576151,103.002373],[25.5765,103.002541],[25.57749,103.001961],[25.577869,103.0019],[25.578369,103.001999],[25.57873,103.001869],[25.57901,103.001549],[25.579069,103.001289],[25.577009,102.99852],[25.57688,102.998253],[25.57686,102.997772],[25.577089,102.996407],[25.57708,102.996094],[25.57691,102.995811],[25.5767,102.995773],[25.576521,102.995819],[25.575609,102.996269],[25.575411,102.99617],[25.57548,102.996048],[25.5763,102.995232],[25.57654,102.995064],[25.57675,102.995033],[25.57715,102.995049],[25.577591,102.99514],[25.57785,102.995064],[25.57794,102.99482],[25.57836,102.993217],[25.578449,102.992981],[25.578621,102.992683],[25.578791,102.992439],[25.579309,102.991913],[25.5812,102.990082],[25.58205,102.989059],[25.582279,102.988907],[25.58251,102.988792],[25.58301,102.988663],[25.583771,102.988411],[25.58437,102.988167],[25.5846,102.988037],[25.585039,102.987671],[25.58606,102.98629],[25.58633,102.986267],[25.586519,102.986343],[25.58758,102.986969],[25.587811,102.987312],[25.587959,102.987717],[25.58802,102.988091],[25.588169,102.988327],[25.588539,102.988564],[25.58975,102.988907],[25.590191,102.988777],[25.590389,102.988503],[25.590839,102.987663],[25.59111,102.987282],[25.591299,102.987152],[25.591869,102.987137],[25.592039,102.986992],[25.59201,102.986649],[25.59215,102.986328],[25.592461,102.986252],[25.5931,102.986252],[25.59341,102.986153],[25.593769,102.985893],[25.594481,102.985092],[25.59498,102.984711],[25.595209,102.984337],[25.595329,102.98391],[25.59564,102.983597],[25.59643,102.983238],[25.59668,102.983063],[25.597679,102.981483],[25.59775,102.98114],[25.597561,102.980873],[25.59642,102.979721],[25.59584,102.979057],[25.59581,102.978737],[25.59623,102.977921],[25.596569,102.977707],[25.597219,102.977814],[25.59786,102.978073],[25.59832,102.978287],[25.599661,102.9786],[25.599911,102.978561],[25.60006,102.97834],[25.6001,102.977921],[25.599991,102.977463],[25.599779,102.976967],[25.5998,102.976639],[25.600031,102.976479],[25.60071,102.976173],[25.60117,102.975754],[25.60154,102.975067],[25.601641,102.974602],[25.601561,102.974007],[25.60165,102.973717],[25.60182,102.973747],[25.602051,102.974007],[25.60243,102.97509],[25.6024,102.975471],[25.60183,102.976227],[25.60181,102.976547],[25.602011,102.976547],[25.603609,102.975906],[25.603821,102.975647],[25.603769,102.97541],[25.603359,102.974609],[25.603331,102.974472],[25.60346,102.974319],[25.604481,102.974373],[25.604771,102.974297],[25.60491,102.974197],[25.605009,102.973938],[25.60498,102.973549],[25.60494,102.973457],[25.604691,102.973167],[25.604469,102.973106],[25.60416,102.973312],[25.603689,102.973396],[25.603491,102.973343],[25.60321,102.973167],[25.60293,102.972801],[25.60251,102.972412],[25.60206,102.972237],[25.601959,102.97213],[25.601971,102.971931],[25.602171,102.971863],[25.602819,102.971992],[25.60317,102.972214],[25.60331,102.972351],[25.603649,102.972473],[25.60388,102.972321],[25.60404,102.972183],[25.60442,102.972023],[25.60486,102.972092],[25.60602,102.972649],[25.60634,102.972748],[25.606899,102.97274],[25.60745,102.972878],[25.607981,102.972961],[25.608231,102.972862],[25.60829,102.972633],[25.608471,102.972298],[25.60874,102.972343],[25.608879,102.972397],[25.60988,102.972366],[25.610029,102.972321],[25.610189,102.972076],[25.61021,102.971901],[25.610331,102.971603],[25.61055,102.971573],[25.61134,102.971786],[25.61194,102.972267],[25.612289,102.972359],[25.613131,102.972153],[25.613319,102.972054],[25.61364,102.971764],[25.613831,102.971558],[25.614111,102.971474],[25.614429,102.97155],[25.615049,102.971512],[25.615311,102.971291],[25.6154,102.971161],[25.61553,102.971077],[25.615829,102.971008],[25.615959,102.970932],[25.616211,102.970627],[25.616461,102.970528],[25.616739,102.970497],[25.617399,102.969994],[25.61771,102.969803],[25.617941,102.969498],[25.61805,102.969223],[25.618219,102.969032],[25.61842,102.969048],[25.618561,102.969223],[25.618561,102.969383],[25.618481,102.970016],[25.618481,102.970551],[25.618549,102.971062],[25.618759,102.971489],[25.618971,102.971657],[25.619221,102.97171],[25.61978,102.971733],[25.62006,102.971626],[25.620211,102.971413],[25.62038,102.970863],[25.620449,102.970512],[25.620649,102.970238],[25.62126,102.969719],[25.62174,102.969093],[25.6222,102.968323],[25.622499,102.968132],[25.62294,102.96814],[25.6234,102.968117],[25.62351,102.968178],[25.623699,102.968407],[25.623911,102.96859],[25.625469,102.967621],[25.627781,102.966187],[25.627621,102.965813],[25.627621,102.965477],[25.627859,102.96505],[25.6283,102.964462],[25.628889,102.963753],[25.629,102.963387],[25.629089,102.962563],[25.62904,102.962257],[25.628839,102.961777],[25.62862,102.961403],[25.62833,102.961143],[25.62796,102.960907],[25.627819,102.960747],[25.62731,102.959862],[25.62722,102.959396],[25.62723,102.959007],[25.627291,102.958633],[25.627211,102.958298],[25.62694,102.95784],[25.62648,102.957329],[25.62628,102.956963],[25.62595,102.956596],[25.625601,102.956352],[25.62553,102.956039],[25.62541,102.955711],[25.62524,102.955406],[25.62499,102.955162],[25.62484,102.955063],[25.623581,102.954483],[25.62315,102.954224],[25.622629,102.953583],[25.62224,102.953362],[25.62196,102.953468],[25.62182,102.953552],[25.621469,102.953529],[25.620239,102.952423],[25.61982,102.951881],[25.61858,102.950859],[25.61842,102.95076],[25.618259,102.9505],[25.61829,102.950073],[25.61845,102.949753],[25.618719,102.949577],[25.61883,102.949387],[25.618811,102.949226],[25.618719,102.948967],[25.618641,102.948402],[25.618441,102.947952],[25.61828,102.94735],[25.618179,102.946892],[25.61812,102.94632],[25.617769,102.945633],[25.61768,102.945137],[25.61776,102.94471],[25.617649,102.944382],[25.617491,102.944077],[25.61746,102.943748],[25.617781,102.942963],[25.617809,102.942078],[25.61795,102.941742],[25.61797,102.941528],[25.617781,102.94117],[25.61776,102.940407],[25.617861,102.939972],[25.617901,102.939339],[25.6178,102.938782],[25.61771,102.938461],[25.61768,102.937958],[25.617781,102.937714],[25.617821,102.937241],[25.618,102.936813],[25.61805,102.936348],[25.618099,102.935249],[25.617941,102.934036],[25.61797,102.933632],[25.617861,102.932953],[25.617729,102.932457],[25.617479,102.932083],[25.617371,102.931808],[25.617081,102.931541],[25.616779,102.931427],[25.61676,102.931282],[25.61688,102.931107],[25.61673,102.930267],[25.616631,102.929993],[25.616199,102.929237],[25.615931,102.928963],[25.614639,102.928253],[25.61445,102.928078],[25.613991,102.927422],[25.613489,102.927032],[25.6127,102.92659],[25.61248,102.926521],[25.61199,102.926628],[25.61153,102.926666],[25.611259,102.926537],[25.61105,102.925926],[25.610781,102.925697],[25.610479,102.925613],[25.6103,102.925392],[25.610371,102.924728],[25.610371,102.924301],[25.61043,102.923973],[25.610491,102.923828],[25.610439,102.9235],[25.610201,102.923363],[25.609949,102.923264],[25.609461,102.923233],[25.60914,102.923157],[25.6084,102.922737],[25.60824,102.922859],[25.608191,102.923111],[25.608259,102.923241],[25.608219,102.923508],[25.60812,102.923492],[25.607941,102.923561],[25.607849,102.923927],[25.607771,102.924011],[25.60762,102.92395],[25.60759,102.923622],[25.607691,102.922592],[25.60787,102.922256],[25.60795,102.921982],[25.607821,102.921707],[25.607491,102.921211],[25.60722,102.921173],[25.607071,102.921188],[25.60692,102.921127],[25.60644,102.92083],[25.606291,102.920807],[25.606211,102.920982],[25.606159,102.921494],[25.606091,102.921577],[25.605961,102.921516],[25.60586,102.921082],[25.60568,102.92099],[25.605619,102.920792],[25.60569,102.920547],[25.60565,102.92009],[25.60545,102.919838],[25.604271,102.91967],[25.60396,102.91951],[25.60379,102.919617],[25.60364,102.919807],[25.603559,102.920151],[25.603359,102.920151],[25.602989,102.919861],[25.60272,102.919739],[25.602579,102.919456],[25.60223,102.919037],[25.60183,102.918709],[25.60136,102.918083],[25.601191,102.917763],[25.600969,102.917557],[25.60087,102.917397],[25.600599,102.917236],[25.6003,102.917297],[25.600161,102.917664],[25.600241,102.918022],[25.60009,102.918243],[25.599541,102.918098],[25.59934,102.918182],[25.599211,102.918518],[25.599051,102.918556],[25.5989,102.918793],[25.59885,102.918968],[25.59865,102.919121],[25.59852,102.918968],[25.598511,102.918709],[25.59864,102.918373],[25.59866,102.918228],[25.598579,102.918022],[25.598511,102.917908],[25.598511,102.917587],[25.598379,102.917328],[25.598351,102.917107],[25.59819,102.916779],[25.59796,102.916611],[25.59761,102.916496],[25.59729,102.916458],[25.596769,102.916283],[25.59659,102.916077],[25.59671,102.915573],[25.596649,102.914948],[25.596519,102.914742],[25.596359,102.914711],[25.59586,102.914703],[25.59573,102.914757],[25.5954,102.915154],[25.59506,102.91571],[25.59487,102.915878],[25.59474,102.915932],[25.594431,102.915878],[25.59407,102.915756],[25.593691,102.915382],[25.593519,102.914993],[25.592871,102.914192],[25.592609,102.913803],[25.59234,102.913513],[25.59211,102.912987],[25.59197,102.912491],[25.591669,102.911789],[25.59071,102.91037],[25.590469,102.91021],[25.590071,102.910103],[25.58975,102.90995],[25.58959,102.909912],[25.589211,102.909927],[25.58868,102.910004],[25.5884,102.909897],[25.588261,102.909798],[25.58798,102.909813],[25.58782,102.909859],[25.5875,102.909882],[25.58699,102.90976],[25.585819,102.909187],[25.585449,102.908943],[25.58544,102.908699],[25.5858,102.908569],[25.586081,102.908386],[25.586241,102.908234],[25.586269,102.908043],[25.58604,102.907837],[25.585581,102.90773],[25.584961,102.907799],[25.584629,102.907753],[25.58371,102.907288],[25.583099,102.906822],[25.58275,102.906807],[25.582661,102.906822],[25.58205,102.906647],[25.58185,102.90641],[25.58164,102.905609],[25.581699,102.905273],[25.58185,102.905029],[25.581779,102.904793],[25.58152,102.904533],[25.58119,102.904556],[25.58087,102.904472],[25.580669,102.904457],[25.5804,102.904388],[25.580099,102.904373],[25.580009,102.904198],[25.58032,102.903831],[25.58083,102.903282],[25.580879,102.903183],[25.580811,102.903053],[25.580469,102.902924],[25.57958,102.902191],[25.57937,102.901939],[25.57925,102.901649],[25.57921,102.901337],[25.5791,102.901031],[25.57893,102.901062],[25.578751,102.90136],[25.578501,102.901573],[25.578369,102.901543],[25.57807,102.90139],[25.57753,102.900818],[25.577379,102.900467],[25.577169,102.899788],[25.57715,102.899384],[25.5774,102.899071],[25.57745,102.898804],[25.577271,102.898483],[25.577089,102.898247],[25.57703,102.897957],[25.577141,102.897652],[25.577379,102.897438],[25.577539,102.897362],[25.577721,102.897148],[25.577629,102.897003],[25.57741,102.896973],[25.577209,102.897003],[25.576229,102.897469],[25.57593,102.897659],[25.5756,102.897598],[25.57543,102.897522],[25.57514,102.897453],[25.57485,102.897209],[25.57473,102.896812],[25.57469,102.896591],[25.57452,102.896301],[25.57415,102.896103],[25.573811,102.896027],[25.572241,102.896133],[25.572001,102.896263],[25.57193,102.896683],[25.57172,102.896973],[25.57151,102.897011],[25.57128,102.896873],[25.571131,102.896721],[25.57074,102.896187],[25.570379,102.89521],[25.57044,102.89476],[25.57066,102.894417],[25.57089,102.894234],[25.57114,102.894127],[25.57148,102.894119],[25.571859,102.893997],[25.572029,102.893837],[25.571951,102.893669],[25.571739,102.893547],[25.57148,102.893463],[25.57128,102.893227],[25.57128,102.89296],[25.5714,102.892723],[25.571951,102.892273],[25.57198,102.892021],[25.57176,102.891647],[25.57155,102.891586],[25.571421,102.891663],[25.571011,102.891693],[25.570869,102.891327],[25.57057,102.891052],[25.57011,102.890793],[25.569719,102.890694],[25.569361,102.89035],[25.568489,102.889229],[25.567909,102.887688],[25.56793,102.88752],[25.567909,102.886253],[25.567949,102.885918],[25.56806,102.885567],[25.568069,102.885399],[25.56794,102.885048],[25.56743,102.884483],[25.567261,102.884377],[25.567141,102.884232],[25.566931,102.883827],[25.56671,102.883163],[25.566589,102.882423],[25.56633,102.881477],[25.56632,102.881042],[25.56641,102.880409],[25.56662,102.880058],[25.56691,102.879951],[25.5672,102.879997],[25.567471,102.880219],[25.567591,102.88018],[25.56765,102.878922],[25.567579,102.878487],[25.56748,102.878326],[25.5672,102.87812],[25.56711,102.877892],[25.56727,102.877777],[25.567751,102.877922],[25.56814,102.878143],[25.56839,102.878052],[25.568529,102.877747],[25.56867,102.877533],[25.568661,102.877319],[25.56848,102.877167],[25.56822,102.876717],[25.567921,102.875954],[25.56743,102.875412],[25.567089,102.874863],[25.56694,102.874687],[25.566811,102.874443],[25.56683,102.873787],[25.566799,102.873581],[25.566589,102.873062],[25.566509,102.872383],[25.566549,102.872101],[25.56629,102.871712],[25.56604,102.871521],[25.565519,102.871399],[25.565491,102.871338],[25.56555,102.87114],[25.56568,102.871109],[25.566219,102.871094],[25.566681,102.871117],[25.566839,102.871063],[25.56694,102.870743],[25.567181,102.870689],[25.567419,102.870743],[25.56765,102.870598],[25.5679,102.870247],[25.56834,102.87001],[25.56852,102.869949],[25.56879,102.869957],[25.568951,102.869881],[25.568781,102.86982],[25.56852,102.869843],[25.568211,102.869904],[25.56769,102.870216],[25.56748,102.870209],[25.567341,102.870003],[25.567181,102.869881],[25.56711,102.869911],[25.566959,102.869873],[25.56674,102.869568],[25.566549,102.869568],[25.5662,102.869759],[25.565901,102.869751],[25.565769,102.869553],[25.565639,102.869141],[25.565439,102.868973],[25.565161,102.86927],[25.56481,102.869278],[25.564409,102.869057],[25.56431,102.868896],[25.564449,102.868843],[25.564699,102.869011],[25.56496,102.868927],[25.56514,102.868698],[25.565149,102.86824],[25.565331,102.867973],[25.56554,102.867981],[25.565651,102.868149],[25.56567,102.868233],[25.56596,102.868752],[25.566059,102.86882],[25.56624,102.868729],[25.56636,102.8685],[25.56641,102.868118],[25.566561,102.867844],[25.566719,102.867844],[25.56735,102.867981],[25.56756,102.868156],[25.567579,102.868401],[25.56781,102.868553],[25.568159,102.86853],[25.568399,102.868423],[25.56855,102.868217],[25.568529,102.867973],[25.568211,102.867592],[25.568029,102.867249],[25.56786,102.867027],[25.567881,102.866783],[25.568911,102.866707],[25.569241,102.866783],[25.570761,102.86763],[25.57093,102.867523],[25.570921,102.867348],[25.57099,102.867012],[25.571159,102.86647],[25.57136,102.866241],[25.57143,102.866257],[25.571569,102.866379],[25.57169,102.866524],[25.57197,102.866653],[25.572149,102.866577],[25.572069,102.866501],[25.57164,102.866364],[25.57136,102.866058],[25.571199,102.865608],[25.571171,102.864967],[25.57122,102.864708],[25.57115,102.864471],[25.570881,102.864357],[25.570511,102.864471],[25.57025,102.864342],[25.57019,102.864197],[25.569851,102.863907],[25.569229,102.86396],[25.568859,102.863937],[25.568781,102.863853],[25.56867,102.863609],[25.568251,102.863373],[25.56687,102.86322],[25.56637,102.86319],[25.566031,102.863022],[25.565651,102.862617],[25.56531,102.862083],[25.56517,102.861656],[25.56525,102.86129],[25.565519,102.860847],[25.565741,102.860687],[25.56608,102.860863],[25.56629,102.860771],[25.566311,102.860611],[25.566139,102.860527],[25.565479,102.860512],[25.565109,102.860558],[25.56468,102.860573],[25.564329,102.860741],[25.56365,102.861557],[25.563601,102.861717],[25.563629,102.861923],[25.563789,102.862122],[25.563881,102.862328],[25.563761,102.862427],[25.563601,102.862373],[25.56307,102.861832],[25.562429,102.861343],[25.561569,102.860893],[25.561119,102.860367],[25.560459,102.859528],[25.56015,102.859093],[25.56003,102.85833],[25.559959,102.857964],[25.559919,102.857437],[25.559719,102.856163],[25.55953,102.855972],[25.55942,102.855942],[25.55896,102.855942],[25.55772,102.856003],[25.55703,102.855904],[25.55681,102.855904],[25.55654,102.855782],[25.55633,102.855614],[25.55617,102.855263],[25.55599,102.855133],[25.555901,102.855164],[25.555651,102.855431],[25.555321,102.855392],[25.55456,102.85511],[25.554291,102.855057],[25.553921,102.855179],[25.553591,102.855324],[25.553341,102.855362],[25.55294,102.855301],[25.552679,102.855202],[25.55188,102.855217],[25.55147,102.855087],[25.550859,102.854698],[25.54953,102.853508],[25.54875,102.852898],[25.548559,102.852814],[25.54796,102.852661],[25.547449,102.852577],[25.546801,102.852379],[25.546551,102.852379],[25.54578,102.852631],[25.54534,102.85257],[25.544741,102.852402],[25.544359,102.852173],[25.543779,102.85141],[25.543341,102.850937],[25.542999,102.850693],[25.54266,102.850594],[25.54203,102.850563],[25.54142,102.850288],[25.54101,102.849953],[25.540751,102.849663],[25.540251,102.849312],[25.53968,102.849091],[25.539049,102.8489],[25.53875,102.848778],[25.53825,102.848732],[25.537319,102.848907],[25.53697,102.848846],[25.53651,102.848648],[25.53606,102.848587],[25.53561,102.848587],[25.53496,102.84845],[25.53355,102.848106],[25.53294,102.847832],[25.532459,102.847412],[25.53199,102.846916],[25.53117,102.846443],[25.53091,102.846397],[25.530769,102.846527],[25.530701,102.846657],[25.530491,102.846817],[25.52914,102.847054],[25.52866,102.846939],[25.528021,102.846474],[25.526331,102.84597],[25.525669,102.845963],[25.52438,102.845863],[25.5235,102.845863],[25.521919,102.845772],[25.521441,102.845711],[25.520981,102.845543],[25.520729,102.845329],[25.520269,102.84507],[25.519991,102.844971],[25.51977,102.84494],[25.51848,102.845047],[25.51799,102.845009],[25.517521,102.844788],[25.51539,102.843437],[25.515289,102.843292],[25.51527,102.84272],[25.51557,102.841843],[25.51557,102.841537],[25.5149,102.840942],[25.514481,102.840714],[25.514111,102.840759],[25.513929,102.840874],[25.513559,102.841217],[25.513269,102.841309],[25.513109,102.841232],[25.51281,102.841003],[25.512461,102.8405],[25.51214,102.840179],[25.51178,102.839981],[25.511009,102.840279],[25.50868,102.841408],[25.507601,102.841782],[25.5072,102.841812],[25.50643,102.841499],[25.505911,102.841209],[25.50576,102.84108],[25.50568,102.840912],[25.50565,102.840752],[25.505659,102.840363],[25.50563,102.840202],[25.505501,102.840057],[25.50535,102.839996],[25.504881,102.840202],[25.50456,102.840401],[25.50433,102.840698],[25.50415,102.841026],[25.504129,102.841652],[25.504061,102.84185],[25.50346,102.842682],[25.503401,102.84285],[25.50321,102.843002],[25.50305,102.84301],[25.502899,102.842857],[25.5028,102.842712],[25.50263,102.842163],[25.502251,102.841728],[25.50206,102.841614],[25.501881,102.84156],[25.50173,102.841629],[25.50161,102.841751],[25.501551,102.841911],[25.50153,102.842102],[25.501699,102.842911],[25.50173,102.843353],[25.5016,102.843964],[25.501631,102.844162],[25.501949,102.844704],[25.502001,102.844856],[25.50201,102.845062],[25.501961,102.845253],[25.501881,102.845398],[25.50091,102.845932],[25.500811,102.846062],[25.50058,102.846848],[25.50036,102.84716],[25.500231,102.84726],[25.50005,102.847298],[25.499531,102.847183],[25.498911,102.846977],[25.498529,102.846832],[25.498199,102.846657],[25.497431,102.846008],[25.49725,102.846008],[25.497061,102.846153],[25.496731,102.846649],[25.49658,102.846779],[25.496401,102.846878],[25.49621,102.846901],[25.49605,102.846802],[25.49593,102.846649],[25.495649,102.8461],[25.49518,102.845451],[25.495001,102.845131],[25.494949,102.844948],[25.494949,102.844711],[25.495131,102.844299],[25.495461,102.84388],[25.495529,102.843681],[25.49548,102.843483],[25.495279,102.843407],[25.49511,102.843452],[25.494909,102.843552],[25.494711,102.843559],[25.49456,102.843483],[25.494431,102.843353],[25.494129,102.842613],[25.493851,102.842361],[25.49333,102.842079],[25.492979,102.842056],[25.492781,102.842102],[25.491449,102.842697],[25.491261,102.842728],[25.49066,102.842682],[25.49048,102.842712],[25.490351,102.84285],[25.49028,102.843033],[25.49025,102.843262],[25.490259,102.843498],[25.49033,102.843758],[25.49045,102.843979],[25.49118,102.844856],[25.491461,102.845497],[25.491579,102.84568],[25.492001,102.846497],[25.492149,102.846931],[25.492149,102.847107],[25.49206,102.847298],[25.491211,102.848328],[25.491131,102.84848],[25.4911,102.848663],[25.49118,102.848877],[25.492599,102.849213],[25.492929,102.849411],[25.49305,102.849602],[25.493059,102.849762],[25.492979,102.849998],[25.49276,102.850098],[25.4921,102.850159],[25.49176,102.850311],[25.491449,102.850578],[25.491261,102.850861],[25.49118,102.851227],[25.491199,102.851608],[25.491501,102.853897],[25.491631,102.854309],[25.492001,102.854851],[25.492149,102.854958],[25.492611,102.855202],[25.493151,102.855362],[25.49333,102.855461],[25.49346,102.855598],[25.493629,102.855713],[25.49371,102.855827],[25.493759,102.856033],[25.49371,102.856232],[25.49328,102.857147],[25.493151,102.857277],[25.49301,102.857353],[25.492701,102.857353],[25.49131,102.857033],[25.49065,102.856781],[25.490499,102.856781],[25.49036,102.85688],[25.49025,102.857033],[25.49,102.857529],[25.489611,102.858009],[25.48958,102.8582],[25.489651,102.858528],[25.48966,102.858711],[25.48963,102.858963],[25.489429,102.859299],[25.489309,102.859428],[25.488501,102.860626],[25.48835,102.860809],[25.48811,102.861008],[25.4869,102.861458],[25.486309,102.861809],[25.48605,102.862099],[25.485649,102.8629],[25.485399,102.863228],[25.48378,102.864662],[25.48358,102.864731],[25.4834,102.864632],[25.48321,102.864349],[25.48316,102.864159],[25.48311,102.863579],[25.482929,102.863258],[25.482731,102.863152],[25.482559,102.863007],[25.482531,102.862801],[25.48255,102.862549],[25.482599,102.862381],[25.482599,102.862183],[25.48255,102.861961],[25.48246,102.861801],[25.48225,102.861702],[25.4821,102.861763],[25.481661,102.862099],[25.48148,102.862152],[25.48131,102.862099],[25.48101,102.8619],[25.48085,102.861847],[25.4807,102.861847],[25.479509,102.862251],[25.479111,102.862358],[25.478609,102.86235],[25.478559,102.862152],[25.47875,102.861504],[25.478649,102.860329],[25.4786,102.86013],[25.47851,102.859947],[25.478331,102.859802],[25.47753,102.859261],[25.47735,102.859261],[25.477261,102.859413],[25.477261,102.860153],[25.477501,102.860397],[25.477831,102.860603],[25.47805,102.860832],[25.47806,102.861],[25.478029,102.861183],[25.477949,102.861351],[25.47761,102.861801],[25.47753,102.861977],[25.47748,102.862228],[25.47735,102.86261],[25.47736,102.862808],[25.477409,102.862999],[25.47806,102.863533],[25.478251,102.863564],[25.47891,102.863503],[25.47913,102.863411],[25.47933,102.863403],[25.47953,102.863449],[25.47961,102.863663],[25.4795,102.864311],[25.479259,102.864883],[25.47893,102.865448],[25.478809,102.865578],[25.478661,102.865662],[25.47813,102.865753],[25.4769,102.865433],[25.476549,102.86541],[25.47576,102.865562],[25.47558,102.86573],[25.47566,102.865913],[25.4758,102.866051],[25.476049,102.866379],[25.47608,102.866547],[25.476049,102.866707],[25.47596,102.866882],[25.47571,102.867126],[25.4744,102.868561],[25.47431,102.868759],[25.474331,102.868927],[25.4744,102.86911],[25.47456,102.869263],[25.47488,102.869331],[25.47506,102.869476],[25.47513,102.869713],[25.475109,102.869904],[25.47493,102.870232],[25.47411,102.87101],[25.47381,102.871529],[25.47368,102.871658],[25.473551,102.871712],[25.473181,102.871696],[25.473,102.871727],[25.47283,102.871803],[25.472731,102.871948],[25.47266,102.87236],[25.472759,102.87291],[25.4729,102.8731],[25.47308,102.873131],[25.47341,102.873062],[25.473579,102.873062],[25.473749,102.873207],[25.473881,102.873734],[25.47385,102.874153],[25.47378,102.874352],[25.473499,102.874611],[25.4734,102.874748],[25.473249,102.875282],[25.473129,102.875481],[25.473,102.875557],[25.472799,102.875633],[25.47246,102.875664],[25.47233,102.875732],[25.472231,102.875908],[25.47226,102.876083],[25.472349,102.876228],[25.472509,102.876381],[25.47296,102.87661],[25.47303,102.876762],[25.473,102.876953],[25.47278,102.87735],[25.472811,102.877548],[25.47291,102.877747],[25.473249,102.878059],[25.47333,102.878258],[25.473351,102.878433],[25.473301,102.878609],[25.4732,102.878761],[25.47295,102.878998],[25.47263,102.879112],[25.472281,102.879128],[25.471979,102.879333],[25.471901,102.879501],[25.471861,102.879677],[25.471951,102.879913],[25.47208,102.880051],[25.472361,102.880257],[25.47258,102.8806],[25.472731,102.880707],[25.473961,102.881401],[25.47415,102.881332],[25.474279,102.881203],[25.47476,102.880508],[25.474899,102.880402],[25.4751,102.880333],[25.475281,102.880432],[25.475349,102.880653],[25.47525,102.881012],[25.474911,102.881432],[25.47423,102.881828],[25.473909,102.882057],[25.473749,102.882133],[25.47356,102.882149],[25.47341,102.882103],[25.471951,102.881058],[25.47163,102.880852],[25.47106,102.880859],[25.470329,102.881081],[25.470011,102.881081],[25.46986,102.881012],[25.469761,102.880852],[25.469761,102.880661],[25.469931,102.88031],[25.47015,102.879349],[25.47028,102.879181],[25.470631,102.879051],[25.470831,102.878906],[25.47093,102.8787],[25.470949,102.878532],[25.470751,102.877808],[25.470659,102.877632],[25.47053,102.87751],[25.469311,102.876862],[25.46911,102.876801],[25.46891,102.876778],[25.46871,102.876831],[25.468081,102.877312],[25.467911,102.877861],[25.46788,102.878082],[25.467779,102.87825],[25.466949,102.879158],[25.466749,102.879227],[25.466579,102.87925],[25.46641,102.879211],[25.466129,102.87896],[25.46583,102.878448],[25.4657,102.878326],[25.465549,102.878258],[25.465401,102.87825],[25.46493,102.878311],[25.46476,102.87825],[25.464649,102.878113],[25.4646,102.87793],[25.4646,102.877731],[25.464531,102.87735],[25.464411,102.877251],[25.46426,102.877182],[25.46298,102.877258],[25.462259,102.876953],[25.461411,102.876801],[25.46125,102.87661],[25.461229,102.87645],[25.461309,102.876297],[25.46216,102.875549],[25.462311,102.875381],[25.462811,102.874962],[25.46335,102.874832],[25.463511,102.874763],[25.463631,102.874657],[25.46373,102.874512],[25.46385,102.87413],[25.46406,102.873802],[25.464211,102.873779],[25.46493,102.873901],[25.465111,102.873863],[25.465231,102.873749],[25.4653,102.87355],[25.46533,102.873352],[25.4652,102.873161],[25.464729,102.873001],[25.464581,102.87291],[25.46446,102.87278],[25.46406,102.872147],[25.463909,102.872002],[25.46356,102.87178],[25.462851,102.871513],[25.4627,102.871407],[25.46258,102.871277],[25.462379,102.870979],[25.461849,102.870407],[25.46151,102.870262],[25.4608,102.870033],[25.460461,102.869881],[25.460329,102.869759],[25.45993,102.869049],[25.45923,102.868309],[25.4587,102.868134],[25.45853,102.868027],[25.458401,102.867897],[25.45816,102.867561],[25.45788,102.866852],[25.457781,102.866699],[25.4575,102.866402],[25.457411,102.866226],[25.457399,102.866051],[25.457451,102.865463],[25.45743,102.864883],[25.457199,102.864357],[25.4571,102.863602],[25.45698,102.863449],[25.45653,102.863258],[25.456181,102.863258],[25.45583,102.863129],[25.455709,102.862984],[25.455629,102.862801],[25.45566,102.86261],[25.455851,102.862129],[25.455851,102.861954],[25.455759,102.861763],[25.455231,102.86145],[25.454981,102.861061],[25.454651,102.86071],[25.454359,102.860558],[25.45381,102.86013],[25.453501,102.859932],[25.452881,102.859734],[25.45211,102.859901],[25.45195,102.859978],[25.45178,102.860107],[25.45166,102.86026],[25.45155,102.860611],[25.4515,102.861214],[25.45145,102.861382],[25.451361,102.861526],[25.451031,102.861748],[25.450661,102.861877],[25.44981,102.862411],[25.44965,102.862556],[25.44873,102.863228],[25.447849,102.863831],[25.44751,102.863998],[25.44698,102.864159],[25.44636,102.864182],[25.44566,102.864281],[25.445311,102.86425],[25.44516,102.864159],[25.44491,102.863899],[25.44475,102.863808],[25.444401,102.863762],[25.44418,102.863808],[25.44401,102.863899],[25.44385,102.864029],[25.44346,102.864449],[25.44326,102.864563],[25.44306,102.864609],[25.44265,102.864632],[25.44243,102.864609],[25.44228,102.864563],[25.441481,102.864502],[25.441059,102.864502],[25.440861,102.864548],[25.440359,102.864807],[25.440201,102.864799],[25.440029,102.864708],[25.439581,102.864227],[25.43918,102.863983],[25.438959,102.86393],[25.438749,102.863953],[25.43853,102.864014],[25.43811,102.864197],[25.437929,102.86425],[25.4377,102.864258],[25.43751,102.864357],[25.437229,102.864754],[25.436661,102.866081],[25.43648,102.86618],[25.4363,102.86618],[25.436131,102.866081],[25.436029,102.865898],[25.435961,102.865677],[25.43586,102.865013],[25.435961,102.864311],[25.435949,102.863708],[25.436001,102.86351],[25.436279,102.862808],[25.436279,102.862633],[25.43618,102.862511],[25.436029,102.862427],[25.435881,102.862396],[25.43536,102.862381],[25.43516,102.862297],[25.435011,102.86216],[25.43471,102.861603],[25.434561,102.861427],[25.433929,102.861099],[25.43343,102.860611],[25.43306,102.860382],[25.43128,102.859863],[25.430349,102.859657],[25.43,102.85968],[25.429359,102.859863],[25.42898,102.859833],[25.4284,102.859848],[25.428209,102.859909],[25.42803,102.860031],[25.427879,102.860184],[25.427759,102.860359],[25.427731,102.86058],[25.427759,102.860802],[25.42828,102.862396],[25.42823,102.862579],[25.428101,102.862701],[25.42786,102.862709],[25.42775,102.862633],[25.427629,102.86248],[25.427481,102.862106],[25.427361,102.861931],[25.427151,102.861351],[25.427059,102.861183],[25.426809,102.860878],[25.426611,102.860558],[25.426359,102.860352],[25.4258,102.859497],[25.42568,102.859001],[25.425659,102.858482],[25.4256,102.858261],[25.425501,102.858101],[25.42535,102.857964],[25.42518,102.857857],[25.424311,102.857552],[25.42363,102.85733],[25.423401,102.8573],[25.423161,102.857307],[25.422029,102.857483],[25.42161,102.857384],[25.42083,102.857002],[25.420059,102.856499],[25.419701,102.856201],[25.4195,102.856079],[25.419081,102.855957],[25.41791,102.855911],[25.41675,102.855782],[25.416531,102.855698],[25.416349,102.855583],[25.41605,102.855278],[25.41556,102.854599],[25.41531,102.853363],[25.41511,102.852951],[25.414961,102.852783],[25.414631,102.852531],[25.413759,102.85218],[25.413309,102.851929],[25.41258,102.851334],[25.412251,102.850998],[25.411699,102.850212],[25.41028,102.848152],[25.409849,102.847504],[25.409679,102.847298],[25.409401,102.846863],[25.4091,102.846481],[25.408279,102.84568],[25.40801,102.845253],[25.407801,102.84481],[25.40765,102.84465],[25.40731,102.844383],[25.4069,102.844254],[25.406731,102.844162],[25.406561,102.844002],[25.40645,102.843811],[25.406099,102.842812],[25.40543,102.841782],[25.40526,102.841614],[25.4046,102.84108],[25.4042,102.841011],[25.404011,102.841026],[25.403851,102.840958],[25.403749,102.840828],[25.4037,102.84063],[25.403629,102.839958],[25.403549,102.839752],[25.403231,102.839432],[25.403049,102.839333],[25.402849,102.839302],[25.402651,102.83931],[25.40205,102.8395],[25.401831,102.839478],[25.401649,102.839378],[25.401461,102.839211],[25.40118,102.838852],[25.400949,102.838432],[25.400551,102.83786],[25.40011,102.83741],[25.399799,102.837196],[25.399509,102.837151],[25.399111,102.837181],[25.39893,102.83725],[25.3983,102.83741],[25.3981,102.83741],[25.397079,102.837151],[25.39666,102.837158],[25.396259,102.83725],[25.395309,102.837646],[25.394609,102.838028],[25.394279,102.838058],[25.39415,102.838013],[25.39385,102.837807],[25.39315,102.837379],[25.39286,102.837112],[25.392679,102.836731],[25.39233,102.836159],[25.392151,102.835747],[25.39205,102.835327],[25.391781,102.834534],[25.3915,102.83416],[25.388599,102.83271],[25.38818,102.832428],[25.387711,102.831909],[25.38728,102.830551],[25.38706,102.830101],[25.386909,102.829613],[25.386909,102.829399],[25.38703,102.828911],[25.38703,102.828697],[25.38698,102.828499],[25.38686,102.828346],[25.386101,102.827682],[25.3855,102.826782],[25.38496,102.825996],[25.38435,102.824959],[25.384211,102.824753],[25.38353,102.823349],[25.38341,102.823128],[25.38328,102.823029],[25.38295,102.822678],[25.382799,102.822433],[25.38241,102.821632],[25.38208,102.821159],[25.38188,102.820961],[25.381451,102.82061],[25.3806,102.82],[25.380381,102.819878],[25.37966,102.819252],[25.37941,102.81913],[25.378929,102.819061],[25.37793,102.81913],[25.37746,102.81926],[25.3766,102.81971],[25.375759,102.820084],[25.375549,102.820213],[25.375311,102.820297],[25.37466,102.820213],[25.373779,102.819809],[25.373329,102.819809],[25.371929,102.820152],[25.371679,102.820259],[25.37105,102.820633],[25.370449,102.82106],[25.369749,102.8218],[25.368879,102.822632],[25.368311,102.82296],[25.368111,102.823013],[25.36688,102.823463],[25.36648,102.823509],[25.365629,102.823448],[25.365499,102.823311],[25.365379,102.823112],[25.365179,102.822479],[25.36491,102.8218],[25.36458,102.820801],[25.36446,102.820549],[25.36393,102.819061],[25.3638,102.818878],[25.363649,102.818581],[25.36335,102.817749],[25.36265,102.816528],[25.36178,102.814552],[25.361549,102.813408],[25.36161,102.81295],[25.361879,102.811958],[25.36203,102.811501],[25.362061,102.811028],[25.3619,102.809761],[25.3619,102.809196],[25.36198,102.808327],[25.362181,102.805733],[25.36215,102.805511],[25.36198,102.805099],[25.36161,102.804459],[25.36153,102.804001],[25.361549,102.803726],[25.361429,102.803261],[25.3612,102.802811],[25.36083,102.801811],[25.36063,102.800056],[25.360531,102.79985],[25.36006,102.799309],[25.35881,102.798058],[25.35746,102.795761],[25.357,102.795113],[25.356331,102.79451],[25.35531,102.793701],[25.35508,102.793411],[25.355009,102.793198],[25.355009,102.792198],[25.35533,102.790901],[25.35535,102.790398],[25.355129,102.78878],[25.355181,102.786247],[25.35511,102.785751],[25.3549,102.785332],[25.354759,102.785133],[25.354259,102.78418],[25.35335,102.782707],[25.353201,102.782562],[25.35285,102.782303],[25.352551,102.781883],[25.352051,102.781357],[25.35166,102.781197],[25.35148,102.781181],[25.35108,102.78125],[25.350901,102.781258],[25.3507,102.781197],[25.35051,102.781097],[25.350361,102.78093],[25.3501,102.780533],[25.349751,102.780312],[25.349609,102.780159],[25.349449,102.779877],[25.3491,102.779411],[25.348579,102.779114],[25.34816,102.77903],[25.347561,102.779129],[25.34738,102.779251],[25.347231,102.779411],[25.347,102.779846],[25.346861,102.780006],[25.34668,102.780128],[25.345711,102.78035],[25.344999,102.780563],[25.3444,102.780884],[25.343981,102.781029],[25.3438,102.781128],[25.343451,102.781433],[25.342911,102.782227],[25.342751,102.782303],[25.34256,102.782303],[25.342381,102.782249],[25.341379,102.781799],[25.340401,102.780952],[25.339411,102.779709],[25.33926,102.779549],[25.339149,102.779358],[25.3389,102.779053],[25.338699,102.7789],[25.338511,102.778847],[25.33835,102.778862],[25.33798,102.77906],[25.337681,102.779182],[25.33713,102.779282],[25.33671,102.779228],[25.335751,102.778976],[25.334999,102.778748],[25.33411,102.778229],[25.33375,102.778152],[25.3332,102.778198],[25.332109,102.778458],[25.33078,102.77903],[25.329651,102.779747],[25.329109,102.780182],[25.328581,102.78038],[25.328159,102.780403],[25.32778,102.780296],[25.327459,102.780029],[25.327101,102.779297],[25.3269,102.778999],[25.326759,102.778877],[25.32641,102.778709],[25.32626,102.778709],[25.32546,102.778847],[25.32505,102.778862],[25.32481,102.778809],[25.324249,102.778603],[25.32403,102.77858],[25.32296,102.778801],[25.32276,102.778801],[25.32201,102.778458],[25.320801,102.778099],[25.3204,102.777901],[25.31953,102.777107],[25.31885,102.7761],[25.318029,102.775299],[25.3179,102.775131],[25.317801,102.774902],[25.317751,102.774658],[25.317711,102.774178],[25.317579,102.773697],[25.31743,102.773514],[25.317101,102.773201],[25.31636,102.772697],[25.31525,102.771652],[25.314301,102.770958],[25.313709,102.770607],[25.313061,102.770683],[25.312851,102.77066],[25.311979,102.770409],[25.311359,102.770302],[25.30946,102.769798],[25.30933,102.769707],[25.30883,102.769157],[25.30838,102.768501],[25.308109,102.767357],[25.308149,102.765984],[25.30813,102.76503],[25.307949,102.764412],[25.307699,102.764076],[25.30756,102.763977],[25.306709,102.762749],[25.3062,102.762283],[25.305599,102.761902],[25.30525,102.761581],[25.305149,102.761383],[25.30501,102.76091],[25.30493,102.760429],[25.3048,102.760231],[25.304609,102.760078],[25.303801,102.759712],[25.3027,102.759331],[25.30253,102.759209],[25.30241,102.759048],[25.30233,102.758827],[25.30221,102.758148],[25.3022,102.757431],[25.30213,102.75721],[25.301979,102.757057],[25.301611,102.756882],[25.301479,102.756729],[25.301081,102.755898],[25.300461,102.754181],[25.3002,102.753799],[25.300011,102.753632],[25.299101,102.752998],[25.298161,102.752251],[25.297831,102.75193],[25.29756,102.751534],[25.296909,102.750809],[25.29673,102.750702],[25.29631,102.750633],[25.295959,102.750458],[25.295811,102.750313],[25.295549,102.749947],[25.29483,102.749382],[25.29401,102.749008],[25.293579,102.748901],[25.29213,102.748711],[25.2918,102.748528],[25.289631,102.747597],[25.288031,102.7472],[25.286249,102.746384],[25.285561,102.746201],[25.28441,102.745758],[25.28348,102.745483],[25.282261,102.745361],[25.282009,102.7453],[25.281601,102.745148],[25.28043,102.744957],[25.279409,102.745033],[25.27891,102.744911],[25.27791,102.744728],[25.2775,102.744583],[25.277309,102.744453],[25.276699,102.743713],[25.276501,102.743584],[25.276331,102.74353],[25.27615,102.743553],[25.27533,102.743752],[25.27416,102.74411],[25.27375,102.744377],[25.27355,102.744476],[25.273331,102.74453],[25.272881,102.744461],[25.27243,102.744431],[25.27141,102.744263],[25.27063,102.744202],[25.26993,102.7444],[25.26943,102.744408],[25.268709,102.744331],[25.26803,102.744263],[25.26738,102.744247],[25.267179,102.744308],[25.26638,102.744659],[25.266159,102.744682],[25.26573,102.744553],[25.2649,102.74408],[25.264681,102.744034],[25.2642,102.74398],[25.263729,102.743797],[25.26333,102.74353],[25.262911,102.742996],[25.26273,102.742607],[25.26263,102.742012],[25.26255,102.741852],[25.26235,102.74176],[25.26218,102.741882],[25.261999,102.74221],[25.261829,102.74231],[25.2614,102.742279],[25.261181,102.742302],[25.260981,102.742363],[25.260799,102.742477],[25.260611,102.742554],[25.26041,102.742531],[25.260031,102.742348],[25.25985,102.742203],[25.25935,102.741982],[25.25881,102.741859],[25.25831,102.741814],[25.25808,102.74173],[25.257111,102.741249],[25.25668,102.740982],[25.256451,102.740898],[25.256201,102.740883],[25.25573,102.740952],[25.25548,102.740959],[25.254749,102.741096],[25.254511,102.741096],[25.253901,102.740807],[25.25366,102.740761],[25.252911,102.740898],[25.252159,102.740959],[25.25168,102.740883],[25.251129,102.740631],[25.250759,102.740601],[25.250111,102.740707],[25.2498,102.740646],[25.249359,102.740402],[25.249201,102.740356],[25.24901,102.740356],[25.24855,102.740601],[25.24818,102.740631],[25.24753,102.740608],[25.24736,102.740646],[25.247129,102.740578],[25.246811,102.740402],[25.24625,102.739906],[25.24605,102.739777],[25.245609,102.739662],[25.24523,102.739449],[25.245001,102.739197],[25.244551,102.7388],[25.24441,102.738731],[25.2442,102.738747],[25.243811,102.738899],[25.24361,102.738876],[25.2435,102.738777],[25.243299,102.73851],[25.24305,102.738281],[25.24271,102.738129],[25.24238,102.73806],[25.241579,102.738113],[25.241211,102.738159],[25.24103,102.738129],[25.2409,102.738029],[25.24078,102.737862],[25.24066,102.737747],[25.240179,102.737511],[25.240009,102.73748],[25.239229,102.73745],[25.238729,102.737282],[25.23835,102.737251],[25.237881,102.737297],[25.237221,102.737343],[25.235609,102.736977],[25.234329,102.736778],[25.2339,102.736633],[25.233561,102.73645],[25.23329,102.736298],[25.23288,102.736214],[25.23233,102.73616],[25.230209,102.736107],[25.229759,102.736511],[25.229549,102.736862],[25.22921,102.737083],[25.22872,102.737267],[25.228609,102.737549],[25.2286,102.737953],[25.228479,102.738281],[25.2283,102.738564],[25.2281,102.738861],[25.228081,102.739014],[25.22818,102.739159],[25.228359,102.739212],[25.22863,102.739128],[25.229,102.738701],[25.229481,102.738197],[25.229851,102.738068],[25.230709,102.738083],[25.231279,102.738281],[25.231649,102.738281],[25.231859,102.738297],[25.2321,102.738564],[25.23221,102.738762],[25.23258,102.738907],[25.232929,102.738853],[25.233179,102.739014],[25.23344,102.739212],[25.233629,102.739616],[25.23385,102.739777],[25.23403,102.73983],[25.23436,102.739761],[25.234619,102.739822],[25.235109,102.740349],[25.23571,102.740593],[25.23596,102.740913],[25.235979,102.74115],[25.235941,102.74144],[25.23563,102.741623],[25.235201,102.741631],[25.23461,102.741753],[25.234079,102.742081],[25.233801,102.742172],[25.233379,102.742126],[25.23267,102.742027],[25.2323,102.742172],[25.232019,102.742378],[25.23185,102.742706],[25.231701,102.74308],[25.231529,102.743401],[25.231359,102.743507],[25.2311,102.743477],[25.230749,102.74321],[25.230709,102.742867],[25.230579,102.742317],[25.230129,102.742027],[25.229601,102.741783],[25.22872,102.741814],[25.227989,102.741661],[25.227409,102.741661],[25.22665,102.741447],[25.226259,102.741127],[25.225981,102.74073],[25.225731,102.740448],[25.225559,102.740402],[25.22541,102.74041],[25.22529,102.740593],[25.225189,102.74073],[25.224751,102.741013],[25.22418,102.741211],[25.223949,102.741653],[25.22373,102.741837],[25.22183,102.742447],[25.219999,102.742653],[25.21899,102.742851],[25.21788,102.742699],[25.2171,102.742561],[25.215811,102.742683],[25.214781,102.742683],[25.21406,102.742882],[25.21328,102.742981],[25.21253,102.742828],[25.212231,102.743088],[25.211861,102.743858],[25.21159,102.744217],[25.211161,102.744347],[25.211029,102.744209],[25.210899,102.743446],[25.210871,102.742729],[25.21055,102.742264],[25.21018,102.74202],[25.20965,102.741982],[25.20941,102.742279],[25.209459,102.742699],[25.209351,102.742912],[25.20911,102.742943],[25.207479,102.742851],[25.205999,102.742462],[25.20532,102.742371],[25.204309,102.741959],[25.20381,102.741859],[25.203341,102.741959],[25.202749,102.741966],[25.20096,102.741631],[25.19952,102.741211],[25.19906,102.74118],[25.19445,102.741096],[25.192699,102.740768],[25.192181,102.7407],[25.191839,102.740784],[25.19108,102.741158],[25.19055,102.741158],[25.189501,102.741226],[25.18906,102.741074],[25.18828,102.740822],[25.187519,102.740784],[25.186279,102.740784],[25.185511,102.740677],[25.18507,102.740356],[25.184259,102.739868],[25.182449,102.73896],[25.180901,102.738281],[25.17981,102.737999],[25.17901,102.737846],[25.178101,102.737534],[25.177349,102.737221],[25.17658,102.736443],[25.176279,102.736061],[25.17568,102.73568],[25.17518,102.735573],[25.174761,102.735382],[25.17448,102.73513],[25.174141,102.734596],[25.174101,102.734512],[25.174061,102.734062],[25.17408,102.733528],[25.17395,102.733047],[25.173759,102.732803],[25.173281,102.732712],[25.171709,102.733147],[25.17136,102.733078],[25.170719,102.732887],[25.17041,102.73288],[25.17008,102.733032],[25.16971,102.733414],[25.169359,102.733856],[25.169081,102.734032],[25.16876,102.734001],[25.167959,102.733429],[25.166889,102.73288],[25.16662,102.732826],[25.166071,102.732826],[25.165831,102.73275],[25.16568,102.73243],[25.165621,102.732117],[25.165449,102.731796],[25.165211,102.731827],[25.16507,102.732018],[25.16501,102.732109],[25.16511,102.732559],[25.1654,102.733002],[25.16581,102.733147],[25.16637,102.733238],[25.1667,102.733253],[25.166901,102.733482],[25.16687,102.73362],[25.16671,102.733849],[25.166439,102.733757],[25.165951,102.73349],[25.165461,102.733429],[25.165001,102.733307],[25.16473,102.733078],[25.164579,102.73278],[25.164591,102.732483],[25.164579,102.732147],[25.164551,102.731758],[25.16436,102.731583],[25.16415,102.731651],[25.16408,102.731979],[25.1642,102.732529],[25.16419,102.732811],[25.164301,102.733307],[25.16448,102.733551],[25.164829,102.733658],[25.16518,102.733711],[25.165421,102.733833],[25.16543,102.734154],[25.1653,102.734283],[25.165001,102.734253],[25.16433,102.73391],[25.16366,102.733597],[25.1635,102.73317],[25.16338,102.732651],[25.163231,102.732201],[25.16297,102.731949],[25.162689,102.73188],[25.162411,102.732079],[25.16213,102.73278],[25.16194,102.733513],[25.161711,102.733711],[25.160521,102.734306],[25.1602,102.734238],[25.15971,102.733849],[25.15906,102.733299],[25.158609,102.73307],[25.158409,102.733078],[25.158159,102.732979],[25.157909,102.732857],[25.157761,102.732536],[25.157579,102.732353],[25.157471,102.732361],[25.157301,102.732452],[25.15723,102.732613],[25.1572,102.732948],[25.15723,102.733299],[25.157459,102.733528],[25.15806,102.733688],[25.15843,102.733833],[25.158751,102.734261],[25.15893,102.734871],[25.15921,102.735603],[25.15962,102.735992],[25.160009,102.736122],[25.160339,102.736259],[25.1609,102.736732],[25.161659,102.737053],[25.16231,102.737183],[25.162661,102.73716],[25.162769,102.737213],[25.162979,102.73735],[25.163139,102.73777],[25.1632,102.737846],[25.1633,102.738113],[25.16328,102.73838],[25.163059,102.738678],[25.162661,102.739052],[25.16227,102.739311],[25.161751,102.739433],[25.16147,102.739403],[25.16116,102.739403],[25.161051,102.739372],[25.160629,102.73925],[25.160061,102.739029],[25.15967,102.738876],[25.15741,102.738419],[25.156481,102.738129],[25.15554,102.737587],[25.153151,102.736588],[25.150579,102.735527],[25.149429,102.735031],[25.148701,102.734787],[25.14473,102.733528],[25.143021,102.73275],[25.141371,102.732208],[25.136999,102.730568],[25.130501,102.728256],[25.12912,102.727676],[25.12747,102.726837],[25.12598,102.725861],[25.12476,102.72522],[25.123051,102.724701],[25.121719,102.72422],[25.119909,102.72393],[25.118311,102.723679],[25.117149,102.723381],[25.11606,102.723129],[25.11553,102.723099],[25.115311,102.723259],[25.11496,102.724297],[25.114599,102.725632],[25.114111,102.72641],[25.11356,102.727448],[25.1129,102.728729],[25.108379,102.726807],[25.10449,102.725151],[25.101049,102.723686],[25.10005,102.72654],[25.09898,102.729637],[25.09713,102.73497],[25.096161,102.737579],[25.09581,102.737534],[25.09334,102.736557],[25.09148,102.735909],[25.09123,102.735817],[25.0889,102.73497],[25.08815,102.734673],[25.087391,102.734383],[25.085621,102.732613],[25.0839,102.730911],[25.081699,102.733963],[25.08021,102.736153],[25.07494,102.743919],[25.074869,102.744019],[25.071899,102.74762],[25.07069,102.749336],[25.07015,102.751411],[25.067841,102.750389],[25.066681,102.749413],[25.065109,102.747681],[25.063669,102.746552],[25.06233,102.745644],[25.060631,102.744438],[25.060289,102.744202],[25.057619,102.742691],[25.057409,102.742462],[25.05604,102.742752],[25.051701,102.742897],[25.049891,102.742989],[25.04567,102.743103],[25.04431,102.743134],[25.0413,102.743263],[25.03709,102.743469],[25.035601,102.743599],[25.033911,102.743767],[25.03154,102.74382],[25.030161,102.74353],[25.02953,102.743271],[25.02825,102.742767],[25.026091,102.741898],[25.025089,102.741814],[25.0238,102.74205],[25.0231,102.742233],[25.022341,102.742371],[25.02179,102.742477],[25.021219,102.742592],[25.01985,102.742943],[25.01964,102.743042],[25.019501,102.743187],[25.019449,102.743347],[25.01948,102.743477],[25.01955,102.74366],[25.0198,102.74395],[25.01992,102.744102],[25.02,102.744362],[25.020029,102.744621],[25.01989,102.745796],[25.01976,102.746368],[25.01919,102.749313],[25.01759,102.755577],[25.017191,102.756592],[25.01643,102.757927],[25.01516,102.759399],[25.01408,102.760368],[25.00745,102.764168],[25.005659,102.76519],[25.004789,102.765747],[25.004169,102.766327],[25.00341,102.767403],[25.00296,102.768417],[25.00198,102.770973],[25.00152,102.771751],[25.0009,102.772476],[24.9932,102.778389],[24.992041,102.779327],[24.99118,102.779999],[24.990601,102.780243],[24.98991,102.780342],[24.98925,102.780243],[24.98415,102.778168],[24.982491,102.777603],[24.98114,102.777588],[24.978029,102.777863],[24.973841,102.778633],[24.973101,102.778778],[24.972031,102.779068],[24.971201,102.779381],[24.96909,102.780296],[24.967541,102.781143],[24.966209,102.781967],[24.957451,102.787659],[24.956369,102.788292],[24.955509,102.788712],[24.95487,102.788963],[24.95372,102.78936],[24.951731,102.789703],[24.95056,102.78978],[24.93424,102.789619],[24.926109,102.788887],[24.924629,102.788948],[24.923161,102.789169],[24.92104,102.789757],[24.919081,102.79068],[24.917391,102.791763],[24.904909,102.800919],[24.90271,102.802032],[24.900499,102.802696],[24.898359,102.802963],[24.89703,102.80323],[24.895639,102.803741],[24.894461,102.804321],[24.89431,102.804398],[24.89344,102.804947],[24.89315,102.805153],[24.891251,102.806808],[24.88316,102.814201],[24.880819,102.815666],[24.878929,102.816467],[24.876221,102.817123],[24.874001,102.817291],[24.84852,102.817581],[24.84655,102.81736],[24.84318,102.816437],[24.839991,102.814957],[24.830021,102.808449],[24.828449,102.807693],[24.82411,102.806129],[24.822969,102.805481],[24.819901,102.802963],[24.817209,102.801666],[24.81572,102.801048],[24.814489,102.800247],[24.81016,102.795677],[24.8069,102.793289],[24.8011,102.787453],[24.800039,102.78669],[24.79859,102.785896],[24.79657,102.785118],[24.795799,102.784828],[24.785509,102.780983],[24.784889,102.780609],[24.784161,102.780037],[24.783541,102.779297],[24.78186,102.776398],[24.779381,102.77179],[24.77845,102.770477],[24.77702,102.76889],[24.776011,102.768021],[24.77453,102.766991],[24.77227,102.765877],[24.770599,102.765327],[24.76366,102.764069],[24.734501,102.754677],[24.732719,102.753777],[24.73086,102.752457],[24.72957,102.751198],[24.709591,102.725899],[24.69681,102.713463],[24.696119,102.712807],[24.694839,102.710548],[24.69313,102.706947],[24.69272,102.706306],[24.69241,102.705963],[24.691811,102.705513],[24.69121,102.70517],[24.68935,102.704407],[24.688761,102.704002],[24.68825,102.703491],[24.68782,102.702888],[24.68749,102.70192],[24.685551,102.695763],[24.678829,102.681763],[24.67807,102.680649],[24.67717,102.67971],[24.67095,102.675392],[24.670059,102.674568],[24.669491,102.67379],[24.668909,102.672684],[24.668631,102.671654],[24.664829,102.653343],[24.66445,102.65229],[24.66386,102.651253],[24.66073,102.647186],[24.65988,102.646393],[24.6506,102.638947],[24.643311,102.630211],[24.64097,102.628479],[24.627899,102.623543],[24.627211,102.623138],[24.626381,102.622452],[24.62466,102.620277],[24.623949,102.619698],[24.617371,102.616913],[24.61204,102.614761],[24.605829,102.610237],[24.601089,102.607674],[24.599501,102.606468],[24.597919,102.604881],[24.58987,102.595268],[24.579691,102.585068],[24.57741,102.583359],[24.57579,102.58242],[24.56934,102.579987],[24.55953,102.577469],[24.555241,102.575607],[24.554131,102.57534],[24.549549,102.575256],[24.54882,102.575157],[24.54788,102.574913],[24.542219,102.572319],[24.541121,102.571609],[24.54015,102.570663],[24.53915,102.569366],[24.53838,102.568626],[24.537069,102.567719],[24.53651,102.567162],[24.536051,102.566528],[24.53557,102.565552],[24.535021,102.56356],[24.5345,102.56234],[24.53392,102.56147],[24.533079,102.560638],[24.53204,102.55999],[24.53105,102.559647],[24.52458,102.558792],[24.523661,102.558517],[24.522989,102.558189],[24.52256,102.557877],[24.519461,102.555054],[24.51862,102.554459],[24.517719,102.554039],[24.516569,102.553757],[24.515289,102.553772],[24.514521,102.55397],[24.50947,102.556023],[24.50729,102.556717],[24.50609,102.557312],[24.500919,102.560722],[24.5002,102.561043],[24.494989,102.561996],[24.493891,102.562347],[24.49102,102.563553],[24.489889,102.563797],[24.488701,102.563843],[24.487949,102.563721],[24.487209,102.563522],[24.485359,102.562782],[24.484381,102.562553],[24.481859,102.562187],[24.481131,102.561974],[24.48068,102.561729],[24.47967,102.560867],[24.47547,102.556763],[24.471451,102.554123],[24.470181,102.55291],[24.468599,102.550987],[24.467661,102.550163],[24.466789,102.549622],[24.466089,102.549316],[24.46512,102.549049],[24.41419,102.541649],[24.40333,102.539558],[24.399929,102.53891],[24.398029,102.538544],[24.391729,102.537331],[24.390289,102.537117],[24.37652,102.535439],[24.37458,102.534958],[24.370319,102.533524],[24.359261,102.530693],[24.3577,102.530441],[24.35693,102.530312],[24.355539,102.53009],[24.353239,102.529762],[24.350981,102.529442],[24.349449,102.529114],[24.34881,102.528976],[24.33872,102.52536],[24.335779,102.523987],[24.331289,102.521278],[24.328819,102.519768],[24.32793,102.519234],[24.324511,102.517273],[24.32218,102.516609],[24.317949,102.515617],[24.316759,102.515068],[24.31604,102.514557],[24.315069,102.513573],[24.3137,102.511871],[24.312799,102.511147],[24.31176,102.510597],[24.30479,102.508911],[24.3043,102.508743],[24.30143,102.507187],[24.291599,102.50116],[24.290791,102.500458],[24.29007,102.499619],[24.28937,102.498367],[24.288759,102.497108],[24.288271,102.496353],[24.2878,102.495827],[24.28723,102.495407],[24.286591,102.495087],[24.285919,102.494888],[24.28525,102.494797],[24.282829,102.494797],[24.282221,102.494743],[24.28142,102.494476],[24.280569,102.493973],[24.2794,102.492844],[24.276489,102.4879],[24.27578,102.487053],[24.274691,102.486198],[24.273609,102.485657],[24.272449,102.485382],[24.26977,102.485046],[24.268471,102.48465],[24.26585,102.483528],[24.26474,102.483238],[24.26259,102.483109],[24.25843,102.483162],[24.25771,102.483017],[24.25713,102.482857],[24.25701,102.482826],[24.25679,102.48275],[24.256611,102.482689],[24.256069,102.482513],[24.25515,102.482117],[24.253349,102.48143],[24.25172,102.480797],[24.250879,102.480476],[24.25012,102.480263],[24.248831,102.480049],[24.247219,102.480019],[24.23737,102.481071],[24.235371,102.480927],[24.224079,102.478661],[24.212351,102.474663],[24.210661,102.473763],[24.20948,102.472878],[24.20829,102.471649],[24.204809,102.466621],[24.203409,102.46524],[24.20174,102.464043],[24.196659,102.461678],[24.19556,102.460876],[24.194941,102.460243],[24.19416,102.459106],[24.193331,102.457581],[24.191719,102.455399],[24.191389,102.454742],[24.191139,102.454033],[24.19101,102.45327],[24.19099,102.452591],[24.19091,102.45002],[24.190901,102.449692],[24.19076,102.444458],[24.19109,102.441818],[24.191771,102.437843],[24.19174,102.436836],[24.191641,102.436348],[24.19136,102.435623],[24.191099,102.435181],[24.18651,102.43042],[24.185989,102.429581],[24.185711,102.428879],[24.184311,102.419518],[24.183969,102.418533],[24.183371,102.417389],[24.182409,102.415947],[24.181881,102.414803],[24.18154,102.413551],[24.1812,102.403793],[24.180929,102.402191],[24.18042,102.400688],[24.177509,102.395042],[24.176331,102.392754],[24.17631,102.392723],[24.176149,102.392403],[24.17314,102.386574],[24.172701,102.385933],[24.170879,102.384216],[24.17062,102.383812],[24.17046,102.383347],[24.170179,102.381378],[24.16997,102.380669],[24.169609,102.380043],[24.169121,102.379478],[24.16855,102.379021],[24.16753,102.378349],[24.167021,102.377808],[24.166389,102.377007],[24.166019,102.376701],[24.165569,102.376472],[24.16416,102.376099],[24.16374,102.3759],[24.163389,102.375603],[24.163139,102.375191],[24.162661,102.374092],[24.162411,102.373703],[24.162251,102.37352],[24.16185,102.373238],[24.161409,102.373077],[24.15999,102.37294],[24.15954,102.372833],[24.159321,102.372726],[24.158939,102.372467],[24.15859,102.372147],[24.158319,102.371773],[24.15811,102.37133],[24.15798,102.37085],[24.157841,102.369583],[24.15766,102.368828],[24.157379,102.368118],[24.15666,102.367088],[24.156179,102.366371],[24.155479,102.364662],[24.15521,102.364029],[24.154329,102.363487],[24.153721,102.363167],[24.152889,102.362442],[24.15229,102.361687],[24.15196,102.361397],[24.15155,102.361153],[24.15045,102.360817],[24.149799,102.360527],[24.149441,102.360222],[24.149151,102.35984],[24.14892,102.359413],[24.14876,102.358917],[24.148399,102.356651],[24.148041,102.355782],[24.14629,102.353394],[24.14595,102.35276],[24.145611,102.35183],[24.14521,102.350128],[24.145029,102.349693],[24.14465,102.349068],[24.14324,102.347618],[24.142731,102.346786],[24.1418,102.344177],[24.14126,102.343384],[24.140659,102.342873],[24.140129,102.342621],[24.13954,102.342499],[24.138929,102.342506],[24.136841,102.342957],[24.1362,102.343002],[24.135571,102.342903],[24.13516,102.342743],[24.132589,102.340973],[24.13216,102.340759],[24.131701,102.340622],[24.130989,102.340523],[24.127661,102.340523],[24.12628,102.340202],[24.124981,102.339577],[24.12085,102.33638],[24.117701,102.334648],[24.11706,102.334412],[24.11635,102.334328],[24.11565,102.334381],[24.114941,102.334572],[24.114281,102.334923],[24.113449,102.33548],[24.11302,102.335693],[24.11256,102.335808],[24.11208,102.335823],[24.11161,102.335716],[24.111179,102.335503],[24.10861,102.333557],[24.106741,102.33268],[24.10528,102.331383],[24.10442,102.330612],[24.102909,102.329628],[24.10244,102.329132],[24.102039,102.328522],[24.101669,102.327477],[24.101049,102.32486],[24.10013,102.319603],[24.09733,102.308762],[24.097191,102.307899],[24.096939,102.306992],[24.09639,102.305817],[24.09561,102.304764],[24.094851,102.304039],[24.093651,102.30307],[24.093321,102.302711],[24.09306,102.302307],[24.092791,102.301651],[24.092609,102.300667],[24.092541,102.29995],[24.092421,102.29953],[24.092239,102.299141],[24.091841,102.298592],[24.09063,102.297256],[24.0902,102.296577],[24.08963,102.295433],[24.08935,102.295059],[24.08901,102.294746],[24.0886,102.294563],[24.088381,102.29451],[24.087959,102.294518],[24.087219,102.29483],[24.08667,102.295097],[24.08625,102.295174],[24.08585,102.295242],[24.082951,102.296356],[24.082621,102.296516],[24.08209,102.296532],[24.0816,102.296417],[24.081181,102.296318],[24.08079,102.296112],[24.08042,102.295807],[24.08012,102.295441],[24.07991,102.295013],[24.07976,102.29454],[24.079679,102.294022],[24.0797,102.293243],[24.0802,102.290543],[24.08024,102.290009],[24.08013,102.28923],[24.079941,102.288757],[24.07933,102.287903],[24.077909,102.28611],[24.0777,102.285744],[24.0776,102.285332],[24.07761,102.284912],[24.077709,102.2845],[24.077909,102.284126],[24.078409,102.283669],[24.078991,102.283257],[24.079321,102.282921],[24.07955,102.282509],[24.07966,102.282051],[24.07967,102.281578],[24.07852,102.277153],[24.07806,102.276161],[24.075491,102.272011],[24.075199,102.271309],[24.0748,102.269821],[24.074591,102.269386],[24.074459,102.269173],[24.073931,102.2686],[24.07037,102.266113],[24.069981,102.265747],[24.06966,102.26532],[24.06941,102.264839],[24.069151,102.264069],[24.06813,102.258057],[24.067631,102.25647],[24.063391,102.248207],[24.063089,102.247742],[24.06238,102.246918],[24.06155,102.246246],[24.059299,102.244904],[24.057791,102.243858],[24.057039,102.243134],[24.05673,102.242722],[24.05632,102.242027],[24.05582,102.240761],[24.054319,102.236038],[24.05357,102.234596],[24.05155,102.231468],[24.050631,102.22953],[24.04875,102.224281],[24.048401,102.223633],[24.04619,102.221077],[24.04599,102.220711],[24.045799,102.220093],[24.045759,102.219177],[24.045759,102.21759],[24.045759,102.217461],[24.04575,102.214523],[24.04575,102.213913],[24.045691,102.207733],[24.045561,102.206467],[24.045349,102.205673],[24.04513,102.205132],[24.04483,102.204391],[24.044189,102.203178],[24.037531,102.195297],[24.036949,102.194763],[24.03628,102.194359],[24.031691,102.192528],[24.03071,102.192322],[24.029181,102.192192],[24.02747,102.192032],[24.026331,102.191757],[24.02446,102.191139],[24.023439,102.190964],[24.014271,102.191002],[24.01329,102.190872],[24.0121,102.190483],[24.0112,102.189987],[24.010401,102.189377],[24.00802,102.186996],[24.007721,102.186577],[24.00737,102.18586],[24.006901,102.18457],[24.00667,102.18409],[24.006371,102.183662],[24.005791,102.183144],[24.005569,102.182983],[24.00429,102.182053],[24.004009,102.181839],[24.00309,102.181152],[24.002621,102.180801],[23.999161,102.178482],[23.99815,102.178101],[23.997219,102.177979],[23.993441,102.17823],[23.991911,102.17807],[23.98851,102.17717],[23.987881,102.177116],[23.98723,102.17717],[23.986589,102.17733],[23.98562,102.177834],[23.98452,102.178513],[23.983761,102.178818],[23.982731,102.178993],[23.981871,102.178902],[23.98102,102.178642],[23.979971,102.178177],[23.979059,102.177948],[23.9765,102.177856],[23.975559,102.177658],[23.97468,102.177238],[23.974079,102.176819],[23.971951,102.174683],[23.97135,102.174232],[23.96685,102.171967],[23.96616,102.171738],[23.965191,102.171669],[23.96447,102.171761],[23.963039,102.172127],[23.962561,102.172188],[23.96209,102.172127],[23.96162,102.171944],[23.96122,102.171661],[23.958651,102.168922],[23.95356,102.16555],[23.953131,102.16507],[23.952921,102.164711],[23.952669,102.163879],[23.95248,102.162537],[23.952339,102.162109],[23.952101,102.161728],[23.95179,102.161423],[23.946501,102.158653],[23.94496,102.157494],[23.942419,102.154846],[23.9419,102.154488],[23.941311,102.154297],[23.94047,102.154228],[23.93947,102.154266],[23.939091,102.154243],[23.93854,102.154083],[23.937599,102.153488],[23.93655,102.152649],[23.935699,102.152184],[23.93387,102.15155],[23.933331,102.151237],[23.932699,102.150703],[23.932409,102.150391],[23.931231,102.148399],[23.93082,102.14798],[23.93018,102.147568],[23.929529,102.147186],[23.92911,102.146828],[23.92877,102.146393],[23.928169,102.145157],[23.92758,102.144363],[23.926809,102.14373],[23.92609,102.143349],[23.91666,102.14122],[23.914061,102.140831],[23.913349,102.140778],[23.908159,102.14093],[23.90766,102.140877],[23.897499,102.139458],[23.89678,102.139381],[23.896061,102.139252],[23.89463,102.13871],[23.89208,102.137512],[23.890499,102.136703],[23.88798,102.134712],[23.887449,102.134132],[23.88703,102.133453],[23.88681,102.132957],[23.886379,102.13176],[23.885281,102.129013],[23.877159,102.123848],[23.876949,102.123734],[23.87628,102.123627],[23.874849,102.12368],[23.874399,102.12365],[23.87398,102.123482],[23.87368,102.123154],[23.873461,102.12278],[23.872881,102.121277],[23.872459,102.120659],[23.87211,102.1203],[23.870911,102.119453],[23.87038,102.118896],[23.87023,102.118698],[23.86998,102.118233],[23.86936,102.116547],[23.86911,102.11615],[23.86895,102.115959],[23.868561,102.115646],[23.86725,102.114952],[23.865561,102.113297],[23.864361,102.11203],[23.86401,102.11145],[23.863859,102.110832],[23.86388,102.110413],[23.864111,102.10981],[23.864361,102.109459],[23.86471,102.109177],[23.86515,102.109001],[23.867279,102.108498],[23.86791,102.108231],[23.868099,102.108109],[23.868401,102.107727],[23.86895,102.106552],[23.869209,102.10611],[23.869551,102.105713],[23.869949,102.105431],[23.870399,102.105209],[23.87126,102.104851],[23.871599,102.104584],[23.871849,102.104279],[23.871929,102.104057],[23.87195,102.103851],[23.87188,102.103378],[23.87175,102.103012],[23.871481,102.102699],[23.871111,102.102448],[23.870911,102.102364],[23.870501,102.102333],[23.87026,102.102379],[23.86981,102.1026],[23.86916,102.102798],[23.86871,102.102829],[23.8685,102.102814],[23.867149,102.102249],[23.86648,102.10183],[23.865879,102.101303],[23.86536,102.100647],[23.86388,102.098213],[23.86368,102.09761],[23.863661,102.097412],[23.8638,102.096764],[23.864031,102.096359],[23.86445,102.095848],[23.864981,102.095001],[23.865299,102.094254],[23.865681,102.093201],[23.86581,102.092934],[23.866131,102.092484],[23.86668,102.091904],[23.867149,102.091263],[23.867399,102.090759],[23.86763,102.089981],[23.867781,102.088951],[23.86775,102.088509],[23.867701,102.088303],[23.867479,102.087929],[23.867149,102.087646],[23.8666,102.087448],[23.8664,102.087448],[23.86618,102.087509],[23.865761,102.087761],[23.86545,102.088081],[23.865259,102.088478],[23.865049,102.0896],[23.864811,102.090233],[23.864599,102.090599],[23.864059,102.091103],[23.861059,102.092583],[23.86046,102.092957],[23.860161,102.093208],[23.85955,102.094032],[23.85935,102.094452],[23.859079,102.09481],[23.85873,102.095154],[23.857849,102.095581],[23.85738,102.095703],[23.857161,102.095711],[23.85676,102.095901],[23.856409,102.096161],[23.85626,102.096313],[23.856159,102.096497],[23.85605,102.096626],[23.85606,102.0989],[23.85601,102.099152],[23.855801,102.099579],[23.855511,102.099983],[23.85516,102.100304],[23.85471,102.100906],[23.854309,102.101929],[23.854,102.102547],[23.853701,102.102913],[23.853161,102.10331],[23.852949,102.103401],[23.85203,102.10363],[23.85128,102.103683],[23.85055,102.1036],[23.84981,102.103409],[23.84853,102.10321],[23.84803,102.103027],[23.847799,102.102913],[23.847401,102.102577],[23.846701,102.101784],[23.84593,102.101196],[23.84486,102.100601],[23.84428,102.100159],[23.843531,102.099258],[23.84318,102.09893],[23.842779,102.098663],[23.841961,102.098312],[23.84136,102.097954],[23.841181,102.097809],[23.84103,102.097633],[23.8407,102.096977],[23.84058,102.096527],[23.8403,102.095161],[23.840151,102.094727],[23.84005,102.094551],[23.83938,102.093979],[23.839199,102.093857],[23.837481,102.093353],[23.83728,102.093262],[23.835831,102.092857],[23.835409,102.092659],[23.835011,102.092377],[23.834681,102.092049],[23.83445,102.091698],[23.834129,102.090881],[23.8332,102.088898],[23.83288,102.08831],[23.830799,102.084099],[23.83016,102.083054],[23.829861,102.08271],[23.82933,102.082359],[23.828329,102.081863],[23.822161,102.078331],[23.82205,102.078178],[23.82181,102.077698],[23.821199,102.076813],[23.82086,102.076462],[23.8188,102.074661],[23.818331,102.074333],[23.817829,102.074112],[23.817329,102.074013],[23.81706,102.074051],[23.81608,102.073959],[23.81583,102.073883],[23.815359,102.073601],[23.81246,102.070953],[23.811911,102.070358],[23.810949,102.069153],[23.810579,102.068832],[23.81036,102.06871],[23.809879,102.068527],[23.809629,102.068497],[23.80913,102.06855],[23.808661,102.068703],[23.80765,102.069527],[23.80718,102.069809],[23.806931,102.069908],[23.806431,102.069977],[23.805929,102.069809],[23.8057,102.069702],[23.805111,102.069206],[23.804449,102.068359],[23.804079,102.067978],[23.80345,102.067581],[23.80213,102.067047],[23.80155,102.066658],[23.801029,102.0662],[23.79903,102.064003],[23.798861,102.06385],[23.79821,102.063148],[23.797501,102.062531],[23.79648,102.061852],[23.795851,102.061501],[23.79565,102.061363],[23.79418,102.060448],[23.792999,102.059502],[23.791599,102.058357],[23.79055,102.057701],[23.78875,102.056847],[23.78598,102.056],[23.78591,102.055946],[23.785601,102.055771],[23.785271,102.05555],[23.78495,102.055313],[23.784639,102.055054],[23.78433,102.054779],[23.783991,102.054497],[23.78377,102.054321],[23.783541,102.054138],[23.7833,102.053963],[23.78306,102.05378],[23.78281,102.053612],[23.78229,102.053284],[23.782021,102.053123],[23.78175,102.052963],[23.781481,102.052818],[23.7812,102.052673],[23.780661,102.052353],[23.78039,102.052193],[23.780121,102.05204],[23.77984,102.05188],[23.77957,102.05172],[23.779301,102.051559],[23.77903,102.051399],[23.77877,102.051224],[23.778509,102.051064],[23.778259,102.05088],[23.778009,102.05069],[23.777769,102.050507],[23.77754,102.050323],[23.777309,102.050117],[23.777081,102.049919],[23.776859,102.049721],[23.77664,102.049507],[23.77643,102.049316],[23.77622,102.049118],[23.77602,102.04892],[23.77581,102.048721],[23.775511,102.048431],[23.7752,102.048141],[23.7749,102.047859],[23.77459,102.047569],[23.77438,102.047371],[23.774179,102.04718],[23.773979,102.046982],[23.77376,102.046783],[23.77355,102.046593],[23.77322,102.046303],[23.772989,102.046112],[23.77276,102.045937],[23.77252,102.045761],[23.77227,102.045593],[23.77202,102.045433],[23.77178,102.045273],[23.771521,102.04512],[23.771271,102.044983],[23.771021,102.04483],[23.770769,102.044693],[23.77051,102.04454],[23.77026,102.044403],[23.77002,102.044243],[23.76977,102.044098],[23.76952,102.043953],[23.76927,102.043793],[23.76902,102.043663],[23.76878,102.04351],[23.76853,102.043373],[23.76829,102.043221],[23.76804,102.043083],[23.767799,102.042938],[23.76755,102.042801],[23.767309,102.042664],[23.767071,102.042503],[23.76683,102.042351],[23.7666,102.042198],[23.766371,102.042038],[23.766041,102.041786],[23.76582,102.041618],[23.76549,102.041344],[23.76528,102.041161],[23.76507,102.04097],[23.76486,102.040771],[23.76465,102.040573],[23.764441,102.040367],[23.764231,102.040161],[23.76403,102.039963],[23.763821,102.039757],[23.76362,102.039551],[23.76321,102.039162],[23.76289,102.038918],[23.76255,102.038696],[23.762199,102.038513],[23.76182,102.038368],[23.761419,102.038277],[23.761141,102.038239],[23.76086,102.038223],[23.760571,102.038193],[23.760269,102.038147],[23.759979,102.038116],[23.759689,102.038078],[23.757641,102.03775],[23.757311,102.037598],[23.756981,102.03743],[23.756651,102.037262],[23.756321,102.037079],[23.755989,102.036888],[23.755011,102.036324],[23.754681,102.036102],[23.75433,102.035889],[23.753969,102.03569],[23.753599,102.035492],[23.753241,102.035309],[23.752871,102.035103],[23.75251,102.034882],[23.75218,102.034607],[23.7519,102.034271],[23.751671,102.033897],[23.751459,102.033508],[23.75127,102.033119],[23.75107,102.032738],[23.750851,102.032372],[23.750629,102.032013],[23.75038,102.031677],[23.75012,102.031349],[23.749861,102.031029],[23.74958,102.030724],[23.7493,102.030403],[23.74902,102.030083],[23.748791,102.029701],[23.74864,102.029289],[23.748581,102.028877],[23.748619,102.028458],[23.74872,102.028053],[23.74893,102.027687],[23.74921,102.02739],[23.74954,102.027168],[23.749901,102.027031],[23.750259,102.026939],[23.750629,102.026894],[23.750999,102.026817],[23.75135,102.026718],[23.751659,102.026527],[23.751909,102.026268],[23.75206,102.025917],[23.752131,102.025558],[23.752119,102.025169],[23.75209,102.024773],[23.75205,102.024353],[23.752041,102.023933],[23.752081,102.023499],[23.75218,102.023071],[23.7523,102.022659],[23.752541,102.021828],[23.75256,102.021408],[23.752501,102.021004],[23.75231,102.020653],[23.75205,102.020363],[23.75172,102.02021],[23.751369,102.020126],[23.75102,102.020172],[23.750681,102.020287],[23.75042,102.020561],[23.75021,102.020889],[23.75001,102.02124],[23.74964,102.021957],[23.749451,102.022324],[23.74926,102.022667],[23.749041,102.023003],[23.748739,102.023247],[23.748409,102.02343],[23.74807,102.023537],[23.747721,102.023613],[23.74737,102.023666],[23.74703,102.023781],[23.746719,102.023956],[23.74645,102.024193],[23.74621,102.024467],[23.745991,102.024773],[23.74575,102.02507],[23.74552,102.02536],[23.74523,102.025597],[23.74489,102.025787],[23.74453,102.025871],[23.744169,102.02581],[23.74382,102.025681],[23.74349,102.02549],[23.743179,102.025299],[23.74287,102.025101],[23.742559,102.024902],[23.74225,102.024696],[23.74193,102.024513],[23.74161,102.024307],[23.741289,102.024109],[23.74095,102.023911],[23.740601,102.02372],[23.740259,102.023529],[23.73991,102.023338],[23.739571,102.023163],[23.739229,102.022987],[23.738899,102.022812],[23.73856,102.022629],[23.738239,102.022461],[23.737909,102.022293],[23.737579,102.022118],[23.737261,102.021942],[23.736931,102.021767],[23.736589,102.021599],[23.73625,102.021431],[23.73591,102.021248],[23.735571,102.021057],[23.735241,102.020844],[23.73493,102.020592],[23.734631,102.020317],[23.73436,102.020027],[23.734131,102.019699],[23.73391,102.019363],[23.733709,102.019028],[23.73349,102.0187],[23.733231,102.018402],[23.73295,102.01815],[23.73263,102.01799],[23.732281,102.017921],[23.73192,102.01796],[23.731581,102.018059],[23.73127,102.018257],[23.73101,102.018532],[23.73082,102.01886],[23.730709,102.019241],[23.730671,102.019638],[23.73073,102.020042],[23.73086,102.020432],[23.731039,102.020798],[23.73127,102.021141],[23.731501,102.021477],[23.73172,102.021843],[23.731939,102.022202],[23.73214,102.02256],[23.73234,102.022926],[23.73254,102.023277],[23.732731,102.023651],[23.732901,102.024033],[23.73307,102.024406],[23.733231,102.024803],[23.733379,102.0252],[23.73353,102.025597],[23.733681,102.026009],[23.73382,102.026413],[23.733959,102.02681],[23.73411,102.027206],[23.734249,102.027611],[23.73439,102.028023],[23.734541,102.028419],[23.734699,102.028816],[23.73485,102.029213],[23.735001,102.02961],[23.73514,102.030022],[23.735229,102.030441],[23.73527,102.030884],[23.73526,102.031319],[23.73522,102.031761],[23.73513,102.032173],[23.734989,102.03257],[23.7348,102.032944],[23.734591,102.033287],[23.734341,102.033592],[23.734051,102.033867],[23.733749,102.034103],[23.733419,102.034286],[23.73308,102.034439],[23.732719,102.034561],[23.732349,102.034653],[23.731979,102.034683],[23.7316,102.034668],[23.731199,102.034607],[23.730789,102.034538],[23.73037,102.034447],[23.729919,102.03437],[23.729469,102.034286],[23.72901,102.034233],[23.728559,102.03418],[23.728109,102.034126],[23.727659,102.034103],[23.7272,102.03405],[23.726749,102.033997],[23.726311,102.033928],[23.72587,102.033821],[23.725451,102.033691],[23.725031,102.033539],[23.724621,102.033371],[23.724211,102.033188],[23.723789,102.03302],[23.723351,102.032913],[23.7229,102.032883],[23.72246,102.032944],[23.72204,102.033089],[23.721649,102.03331],[23.721291,102.033546],[23.72093,102.033798],[23.72056,102.034027],[23.7202,102.034264],[23.71983,102.034462],[23.71946,102.034668],[23.71908,102.034866],[23.71871,102.035072],[23.71833,102.035263],[23.717951,102.035461],[23.71756,102.035637],[23.717171,102.035828],[23.716789,102.036011],[23.716419,102.036209],[23.71603,102.036308],[23.71563,102.036346],[23.71525,102.036301],[23.714899,102.036148],[23.714581,102.035927],[23.714291,102.035683],[23.71402,102.035408],[23.71372,102.035156],[23.713409,102.03492],[23.713079,102.034714],[23.712721,102.034538],[23.71236,102.034393],[23.711981,102.034264],[23.711599,102.034103],[23.711229,102.033951],[23.710871,102.033783],[23.71052,102.033577],[23.71019,102.033363],[23.709869,102.033119],[23.70957,102.032867],[23.709261,102.032623],[23.708941,102.032402],[23.708611,102.032211],[23.70826,102.032066],[23.707911,102.03196],[23.70755,102.031891],[23.70718,102.031853],[23.70681,102.031837],[23.70644,102.031822],[23.70606,102.031792],[23.7057,102.031723],[23.705351,102.031593],[23.705009,102.031433],[23.704691,102.031227],[23.704399,102.030983],[23.704121,102.030693],[23.703871,102.03038],[23.70363,102.030052],[23.703381,102.029716],[23.703119,102.029404],[23.70257,102.028763],[23.70228,102.02845],[23.701969,102.028137],[23.70167,102.027847],[23.701361,102.02755],[23.70105,102.02726],[23.700741,102.026993],[23.70059,102.026863],[23.70014,102.026466],[23.699841,102.02623],[23.699539,102.025978],[23.699261,102.025703],[23.698999,102.025414],[23.698771,102.025078],[23.69857,102.024727],[23.698389,102.024361],[23.69825,102.023987],[23.698139,102.023598],[23.698071,102.023209],[23.698021,102.022812],[23.698009,102.022423],[23.698021,102.022034],[23.698021,102.021652],[23.69804,102.021271],[23.69805,102.020889],[23.698059,102.020493],[23.698071,102.020103],[23.69809,102.019676],[23.698099,102.019257],[23.698099,102.018837],[23.698099,102.018417],[23.69808,102.017982],[23.69805,102.017548],[23.698009,102.017113],[23.69796,102.01667],[23.697889,102.016228],[23.697809,102.015793],[23.697729,102.01535],[23.69763,102.014923],[23.697531,102.014503],[23.69742,102.014076],[23.697321,102.01368],[23.69721,102.013283],[23.697109,102.012894],[23.69701,102.012489],[23.696911,102.012093],[23.6968,102.011703],[23.696699,102.011307],[23.69659,102.01091],[23.696489,102.010513],[23.69639,102.010117],[23.696289,102.009727],[23.69619,102.009331],[23.696079,102.008942],[23.69598,102.008537],[23.695869,102.008148],[23.69577,102.007751],[23.695669,102.007362],[23.69557,102.006973],[23.695471,102.006577],[23.69537,102.006203],[23.695271,102.005829],[23.695169,102.005463],[23.69507,102.005089],[23.694969,102.004723],[23.69488,102.004356],[23.69478,102.00399],[23.694679,102.003616],[23.69458,102.003242],[23.694481,102.002869],[23.694389,102.002487],[23.69429,102.002121],[23.694189,102.001747],[23.69409,102.001373],[23.693991,102.000999],[23.693899,102.000633],[23.6938,102.000259],[23.693701,101.999893],[23.693609,101.999542],[23.69352,101.999191],[23.693411,101.998848],[23.693279,101.998497],[23.69315,101.998154],[23.69301,101.997803],[23.692869,101.997437],[23.692711,101.99707],[23.692539,101.996696],[23.692381,101.996323],[23.6922,101.995949],[23.692011,101.995567],[23.69183,101.995193],[23.691641,101.994797],[23.691441,101.994423],[23.69125,101.994034],[23.69105,101.993637],[23.690861,101.993248],[23.69066,101.992859],[23.69047,101.992462],[23.690281,101.992073],[23.6901,101.991653],[23.689939,101.991241],[23.689791,101.990822],[23.68964,101.990387],[23.689501,101.989967],[23.689369,101.989563],[23.689251,101.989128],[23.68915,101.988708],[23.689051,101.988281],[23.688971,101.987862],[23.68889,101.987442],[23.68882,101.987022],[23.688761,101.986603],[23.688721,101.986183],[23.688681,101.985764],[23.68865,101.985352],[23.688629,101.98494],[23.68861,101.984528],[23.688589,101.984123],[23.68858,101.983711],[23.68856,101.983307],[23.688551,101.98291],[23.68852,101.982513],[23.68849,101.982101],[23.68845,101.981697],[23.688391,101.981293],[23.688311,101.980888],[23.688219,101.980492],[23.68811,101.980087],[23.68799,101.979691],[23.687851,101.979301],[23.687691,101.978912],[23.687531,101.978523],[23.68737,101.978127],[23.68722,101.977753],[23.687059,101.977364],[23.686899,101.976967],[23.686741,101.976593],[23.68659,101.976212],[23.68643,101.97583],[23.686279,101.975456],[23.686131,101.975098],[23.685961,101.974747],[23.68578,101.974442],[23.685579,101.974136],[23.68536,101.973877],[23.68512,101.973633],[23.684879,101.973412],[23.684629,101.973221],[23.68438,101.973053],[23.684151,101.9729],[23.68383,101.972603],[23.683571,101.972458],[23.68306,101.972168],[23.682819,101.971977],[23.682501,101.971779],[23.682249,101.971626],[23.681971,101.971443],[23.681641,101.971237],[23.681391,101.971077],[23.68115,101.970932],[23.680889,101.970779],[23.68063,101.970627],[23.680349,101.970459],[23.680071,101.970284],[23.679779,101.970108],[23.679489,101.969933],[23.67918,101.969757],[23.678881,101.969597],[23.67857,101.969452],[23.678261,101.96933],[23.67794,101.969223],[23.67762,101.969131],[23.677299,101.969063],[23.67697,101.969009],[23.67663,101.968971],[23.676291,101.968933],[23.675949,101.968887],[23.6756,101.968826],[23.67527,101.968727],[23.67462,101.968483],[23.67432,101.968277],[23.67403,101.968079],[23.67374,101.967857],[23.67345,101.967644],[23.673161,101.96743],[23.672859,101.967239],[23.67255,101.967056],[23.672239,101.966927],[23.67193,101.96682],[23.671619,101.966743],[23.67131,101.966667],[23.671021,101.966621],[23.67075,101.966614],[23.670349,101.966614],[23.66995,101.966637],[23.66091,101.97168],[23.660431,101.971909],[23.66013,101.972076],[23.659809,101.972214],[23.659479,101.972313],[23.65914,101.972366],[23.658791,101.972412],[23.658449,101.97242],[23.65773,101.972427],[23.65737,101.97242],[23.657,101.972412],[23.65662,101.972397],[23.65624,101.972389],[23.655849,101.972366],[23.65547,101.972298],[23.6551,101.97216],[23.654751,101.97197],[23.65443,101.971764],[23.65411,101.971542],[23.65379,101.971336],[23.65346,101.971184],[23.65312,101.971046],[23.652769,101.970978],[23.652399,101.970947],[23.65204,101.970963],[23.651661,101.970993],[23.65127,101.971024],[23.650909,101.971001],[23.65053,101.970917],[23.650181,101.970757],[23.649851,101.970558],[23.649561,101.970299],[23.649281,101.970032],[23.64901,101.969772],[23.64875,101.969513],[23.648491,101.969261],[23.64823,101.969002],[23.64797,101.96875],[23.647699,101.968491],[23.64743,101.968231],[23.64716,101.967957],[23.646891,101.967682],[23.646641,101.967377],[23.64642,101.967056],[23.64624,101.966698],[23.646099,101.966316],[23.645969,101.965927],[23.64583,101.965553],[23.6457,101.965149],[23.645559,101.964767],[23.645399,101.964409],[23.64522,101.964088],[23.644991,101.963814],[23.644739,101.963562],[23.64447,101.963341],[23.643101,101.962318],[23.64275,101.96209],[23.64241,101.961853],[23.642071,101.961632],[23.641741,101.961411],[23.641399,101.961182],[23.641069,101.96096],[23.640751,101.960716],[23.64043,101.96048],[23.640141,101.96022],[23.63987,101.959953],[23.63962,101.959686],[23.638901,101.958862],[23.63866,101.958588],[23.638479,101.958397],[23.63728,101.957024],[23.63489,101.954277],[23.63361,101.952621],[23.633329,101.951576],[23.63299,101.948517],[23.632059,101.946426],[23.63175,101.945503],[23.632021,101.944267],[23.63216,101.943573],[23.632389,101.942902],[23.63249,101.942574],[23.632521,101.942223],[23.632259,101.93898],[23.632299,101.938667],[23.632351,101.938339],[23.63238,101.938011],[23.632401,101.937683],[23.632401,101.937332],[23.63241,101.936653],[23.632389,101.936287],[23.63237,101.935944],[23.632351,101.935593],[23.632339,101.935226],[23.63236,101.934883],[23.63245,101.934517],[23.632561,101.934174],[23.63269,101.93383],[23.63283,101.933472],[23.63298,101.933113],[23.633129,101.932747],[23.633289,101.932404],[23.633591,101.931664],[23.63368,101.931267],[23.633711,101.930862],[23.63368,101.930473],[23.633631,101.930069],[23.63357,101.929688],[23.633459,101.929329],[23.633369,101.92897],[23.63332,101.928612],[23.63331,101.928253],[23.633329,101.927528],[23.63336,101.927162],[23.633511,101.926819],[23.633711,101.926514],[23.63435,101.925613],[23.635139,101.924377],[23.635309,101.923653],[23.63538,101.923286],[23.635441,101.92292],[23.6355,101.922546],[23.635559,101.922188],[23.63562,101.921806],[23.635691,101.921448],[23.635771,101.921082],[23.635851,101.920723],[23.63595,101.920349],[23.636061,101.919983],[23.636169,101.919609],[23.63629,101.919243],[23.63641,101.918869],[23.63653,101.918503],[23.636641,101.918121],[23.636761,101.917747],[23.636869,101.917374],[23.63698,101.917],[23.63711,101.916634],[23.637251,101.916267],[23.637409,101.915909],[23.637581,101.915573],[23.637791,101.915253],[23.63802,101.914963],[23.63826,101.914673],[23.638519,101.914398],[23.638809,101.914162],[23.63909,101.913933],[23.639971,101.913269],[23.640249,101.913033],[23.640499,101.912773],[23.640751,101.912514],[23.64097,101.912216],[23.641159,101.911926],[23.641331,101.911613],[23.64147,101.911301],[23.641581,101.91098],[23.64167,101.91066],[23.641729,101.910339],[23.641781,101.910027],[23.64183,101.909714],[23.64188,101.909401],[23.64193,101.909103],[23.641979,101.908813],[23.64201,101.908386],[23.642031,101.90799],[23.64205,101.9076],[23.642071,101.907204],[23.64213,101.906799],[23.642191,101.906387],[23.64225,101.905983],[23.6423,101.905571],[23.64238,101.905151],[23.642521,101.904739],[23.642651,101.904472],[23.642799,101.904221],[23.642969,101.903976],[23.64316,101.903763],[23.64337,101.903542],[23.643591,101.903343],[23.64382,101.903152],[23.644039,101.902946],[23.64427,101.90274],[23.64447,101.902519],[23.644661,101.902283],[23.644831,101.902023],[23.645029,101.901604],[23.64513,101.901299],[23.64521,101.900993],[23.645281,101.900658],[23.64535,101.900337],[23.64542,101.900009],[23.6455,101.899681],[23.645611,101.899353],[23.645729,101.89904],[23.64588,101.898743],[23.646061,101.898438],[23.646259,101.898163],[23.646469,101.897881],[23.646681,101.897598],[23.646891,101.897301],[23.647091,101.897003],[23.647261,101.896683],[23.647421,101.896362],[23.647539,101.896019],[23.64765,101.895683],[23.64773,101.895317],[23.647791,101.894958],[23.647829,101.894592],[23.647881,101.894234],[23.647921,101.893852],[23.647961,101.893494],[23.64802,101.89312],[23.6481,101.892761],[23.648199,101.892403],[23.648319,101.892067],[23.648451,101.891739],[23.6486,101.891434],[23.64876,101.891121],[23.64893,101.890831],[23.64909,101.890533],[23.64922,101.890244],[23.649361,101.889954],[23.64949,101.889671],[23.649639,101.889397],[23.649771,101.889122],[23.64991,101.888847],[23.650049,101.888573],[23.65019,101.888298],[23.65033,101.888023],[23.650471,101.887733],[23.65062,101.887428],[23.65077,101.887123],[23.650921,101.88681],[23.65107,101.886497],[23.65123,101.886177],[23.65139,101.885849],[23.65156,101.885521],[23.65172,101.885178],[23.65189,101.884842],[23.65204,101.884499],[23.65221,101.884163],[23.65237,101.88382],[23.65254,101.883492],[23.6527,101.883179],[23.652849,101.882874],[23.653009,101.882584],[23.653151,101.882294],[23.653299,101.882019],[23.653521,101.88163],[23.65366,101.881378],[23.653799,101.881149],[23.6539,101.880768],[23.6546,101.878288],[23.65497,101.877052],[23.65519,101.876587],[23.65564,101.875954],[23.657261,101.874313],[23.657681,101.873672],[23.657881,101.873199],[23.65803,101.8722],[23.658001,101.868111],[23.65777,101.867126],[23.657431,101.866409],[23.656799,101.865631],[23.65568,101.864571],[23.65534,101.864098],[23.655069,101.863403],[23.654449,101.860573],[23.653891,101.859253],[23.65309,101.857887],[23.652849,101.857109],[23.6527,101.855202],[23.652519,101.854607],[23.652201,101.854088],[23.65103,101.852982],[23.650789,101.852661],[23.650499,101.851913],[23.65053,101.851082],[23.650631,101.85022],[23.6506,101.849571],[23.650471,101.849152],[23.650129,101.848633],[23.649679,101.848213],[23.647881,101.847023],[23.64748,101.846626],[23.647169,101.846169],[23.64691,101.845627],[23.64591,101.842331],[23.64588,101.841537],[23.646021,101.840973],[23.646509,101.839737],[23.64658,101.839371],[23.646561,101.838982],[23.646391,101.838463],[23.6462,101.838158],[23.645679,101.837677],[23.644739,101.836983],[23.64422,101.836113],[23.643431,101.833298],[23.643379,101.832687],[23.643419,101.832283],[23.643539,101.831909],[23.64373,101.831596],[23.64398,101.831306],[23.644661,101.830681],[23.645029,101.830032],[23.64509,101.829674],[23.645069,101.829277],[23.644979,101.828918],[23.64468,101.82843],[23.64443,101.828194],[23.64377,101.827888],[23.64187,101.827499],[23.641439,101.827347],[23.641121,101.827271],[23.64064,101.827003],[23.64023,101.82666],[23.6397,101.825867],[23.638741,101.824013],[23.63851,101.823723],[23.63822,101.823479],[23.63772,101.823273],[23.634621,101.822853],[23.63373,101.822456],[23.633289,101.822166],[23.63265,101.821503],[23.632271,101.820862],[23.63167,101.819717],[23.631189,101.819206],[23.630751,101.818939],[23.63028,101.818771],[23.629459,101.818718],[23.628241,101.818901],[23.627939,101.818893],[23.62748,101.818764],[23.62705,101.818542],[23.626699,101.818192],[23.62628,101.817398],[23.625401,101.815086],[23.625311,101.814537],[23.62536,101.813812],[23.62553,101.813271],[23.62578,101.812782],[23.627951,101.810028],[23.628139,101.809547],[23.628189,101.809029],[23.62818,101.808868],[23.627979,101.808357],[23.627661,101.807938],[23.627119,101.807632],[23.62405,101.80632],[23.625191,101.808884],[23.62512,101.809036],[23.625,101.80941],[23.624729,101.809753],[23.624331,101.8106],[23.623581,101.811707],[23.623159,101.811996],[23.622641,101.812172],[23.62188,101.81218],[23.619591,101.811241],[23.618839,101.811234],[23.61693,101.811867],[23.616489,101.81189],[23.616039,101.811752],[23.61566,101.81147],[23.615379,101.811073],[23.615351,101.810913],[23.615259,101.810677],[23.61528,101.810501],[23.61525,101.810333],[23.6154,101.809113],[23.61533,101.808052],[23.615101,101.807381],[23.61482,101.806931],[23.61384,101.805931],[23.61338,101.804947],[23.612089,101.804108],[23.606489,101.800911],[23.60602,101.800377],[23.605721,101.79985],[23.60515,101.798477],[23.60471,101.798012],[23.603531,101.797302],[23.602871,101.79673],[23.601749,101.795517],[23.601049,101.794998],[23.600031,101.794533],[23.59981,101.794533],[23.597759,101.793373],[23.59746,101.793297],[23.59713,101.79306],[23.596479,101.792343],[23.59548,101.790649],[23.59395,101.787376],[23.593281,101.787666],[23.593069,101.787567],[23.59271,101.787483],[23.59218,101.787453],[23.591379,101.787331],[23.591049,101.787209],[23.59067,101.786911],[23.588079,101.784103],[23.58736,101.783546],[23.583599,101.781487],[23.58288,101.780853],[23.58206,101.779671],[23.581341,101.77845],[23.579889,101.77681],[23.57777,101.773178],[23.57704,101.772392],[23.57626,101.771942],[23.574301,101.771294],[23.57362,101.770897],[23.569811,101.767776],[23.568859,101.767281],[23.56444,101.765839],[23.563801,101.765472],[23.56325,101.764969],[23.56292,101.764526],[23.56076,101.761436],[23.56049,101.761147],[23.560011,101.760841],[23.559481,101.760651],[23.55802,101.760628],[23.557501,101.760529],[23.55702,101.760277],[23.556749,101.760063],[23.556431,101.759598],[23.55628,101.759247],[23.55587,101.756828],[23.555571,101.756027],[23.55514,101.75531],[23.554581,101.754723],[23.55154,101.752617],[23.55105,101.752113],[23.55064,101.751312],[23.549629,101.747353],[23.5494,101.746819],[23.54907,101.746384],[23.54847,101.745941],[23.547041,101.74514],[23.54565,101.743851],[23.540291,101.738487],[23.52383,101.719322],[23.52364,101.719063],[23.523529,101.718758],[23.523479,101.718697],[23.52347,101.718613],[23.523279,101.718323],[23.522591,101.716637],[23.521999,101.715767],[23.52058,101.714523],[23.52,101.713913],[23.519779,101.713562],[23.51964,101.71315],[23.5196,101.712479],[23.519739,101.711777],[23.521111,101.707848],[23.52124,101.70697],[23.521231,101.706749],[23.52112,101.706306],[23.520889,101.705887],[23.52058,101.705521],[23.520399,101.70536],[23.51824,101.70433],[23.51787,101.704071],[23.51755,101.703743],[23.51734,101.703331],[23.51722,101.702873],[23.51722,101.7024],[23.517321,101.701958],[23.518999,101.698547],[23.51775,101.698097],[23.51767,101.6978],[23.517309,101.697159],[23.51687,101.69648],[23.516701,101.695976],[23.516529,101.69442],[23.51643,101.693939],[23.516211,101.693497],[23.515921,101.693123],[23.515539,101.692818],[23.515129,101.692596],[23.51243,101.691757],[23.51194,101.691704],[23.51141,101.691719],[23.51091,101.691818],[23.50996,101.692207],[23.507971,101.693314],[23.507601,101.693588],[23.50729,101.693932],[23.507059,101.694366],[23.50691,101.694847],[23.506861,101.695351],[23.507,101.696098],[23.50742,101.697243],[23.5075,101.697701],[23.507481,101.698158],[23.507339,101.698608],[23.507099,101.699013],[23.506781,101.699333],[23.506161,101.699654],[23.50526,101.700027],[23.504829,101.700287],[23.504471,101.700638],[23.50415,101.701057],[23.503901,101.701538],[23.503441,101.703049],[23.503309,101.703537],[23.50313,101.703979],[23.50301,101.704163],[23.50268,101.704491],[23.502291,101.70472],[23.501909,101.704857],[23.501499,101.704849],[23.50091,101.704697],[23.50058,101.704491],[23.500111,101.704033],[23.49843,101.701653],[23.498051,101.700943],[23.49762,101.699638],[23.497089,101.697792],[23.49687,101.697281],[23.496441,101.696579],[23.49609,101.696167],[23.493389,101.694],[23.492741,101.693573],[23.49201,101.69326],[23.491501,101.693169],[23.49099,101.693161],[23.49048,101.693253],[23.49,101.69342],[23.482491,101.698227],[23.481791,101.698517],[23.481319,101.698624],[23.47983,101.698692],[23.47933,101.698769],[23.478849,101.698921],[23.47797,101.699402],[23.476339,101.700623],[23.47547,101.701134],[23.474991,101.701286],[23.47427,101.701363],[23.473539,101.701248],[23.47261,101.70092],[23.471729,101.700432],[23.470921,101.699806],[23.4702,101.699051],[23.469601,101.698143],[23.467279,101.693512],[23.4664,101.692177],[23.46524,101.690804],[23.46394,101.689568],[23.462299,101.688393],[23.45648,101.68544],[23.45483,101.684227],[23.451571,101.679291],[23.45013,101.677612],[23.44994,101.67746],[23.449751,101.677254],[23.44949,101.677063],[23.44916,101.676651],[23.44833,101.676033],[23.44721,101.675468],[23.446461,101.675232],[23.445459,101.675049],[23.444201,101.675041],[23.44323,101.675217],[23.43902,101.67688],[23.43664,101.677452],[23.432159,101.677811],[23.43161,101.677773],[23.431431,101.677727],[23.431009,101.677711],[23.43075,101.677757],[23.430719,101.677887],[23.43041,101.678017],[23.42782,101.678543],[23.42403,101.680153],[23.423691,101.680183],[23.42275,101.680458],[23.422331,101.68055],[23.42065,101.680603],[23.41925,101.680367],[23.41754,101.679703],[23.416361,101.679008],[23.41523,101.678017],[23.41408,101.67662],[23.409769,101.67025],[23.409281,101.66922],[23.408991,101.667892],[23.408939,101.666992],[23.40909,101.665619],[23.409439,101.664513],[23.410669,101.661987],[23.4111,101.660606],[23.41157,101.658386],[23.4119,101.657417],[23.41876,101.645554],[23.422489,101.637756],[23.4282,101.62957],[23.42873,101.628517],[23.429131,101.626556],[23.42959,101.622337],[23.42943,101.621048],[23.42898,101.619904],[23.42824,101.618896],[23.427191,101.618149],[23.42573,101.617706],[23.424709,101.617783],[23.42399,101.617973],[23.421801,101.619003],[23.42082,101.619186],[23.41987,101.61908],[23.4189,101.618713],[23.418091,101.617973],[23.417589,101.617203],[23.417191,101.615929],[23.41724,101.6147],[23.41798,101.611702],[23.41794,101.610687],[23.417459,101.60936],[23.417101,101.608871],[23.416019,101.608063],[23.41116,101.606781],[23.410561,101.606598],[23.409781,101.606407],[23.408819,101.605873],[23.40723,101.604347],[23.40661,101.603989],[23.40645,101.603943],[23.40589,101.603752],[23.40432,101.603638],[23.403259,101.603188],[23.40159,101.602028],[23.393909,101.58802],[23.392799,101.586533],[23.392191,101.585709],[23.391319,101.584778],[23.390221,101.583527],[23.38945,101.582977],[23.38868,101.582642],[23.383381,101.580978],[23.382919,101.580917],[23.376631,101.581413],[23.37141,101.58181],[23.370029,101.581902],[23.365709,101.581863],[23.364161,101.581528],[23.36342,101.580582],[23.36319,101.579971],[23.363119,101.57975],[23.36302,101.578888],[23.363171,101.577911],[23.36417,101.574783],[23.36421,101.57399],[23.36409,101.572906],[23.36302,101.568893],[23.362671,101.566399],[23.36252,101.565987],[23.36227,101.565643],[23.36195,101.565338],[23.360991,101.564751],[23.36055,101.564323],[23.36034,101.563942],[23.36025,101.563507],[23.360241,101.563011],[23.36146,101.555557],[23.361481,101.555077],[23.36145,101.554817],[23.3613,101.554359],[23.361059,101.553932],[23.35988,101.552742],[23.359739,101.552559],[23.359541,101.552139],[23.35944,101.551666],[23.359461,101.551193],[23.3596,101.550743],[23.35985,101.550331],[23.360359,101.549797],[23.3624,101.548019],[23.36273,101.547653],[23.363001,101.547234],[23.363171,101.546722],[23.36323,101.546188],[23.363171,101.545624],[23.362129,101.542778],[23.36191,101.542297],[23.361429,101.541649],[23.36083,101.54113],[23.356621,101.539139],[23.355459,101.538544],[23.35391,101.537888],[23.353291,101.53775],[23.35309,101.53775],[23.35268,101.537857],[23.35231,101.538101],[23.352011,101.538452],[23.35129,101.539688],[23.351,101.539993],[23.35067,101.540222],[23.350281,101.540352],[23.349859,101.540367],[23.349211,101.54026],[23.34816,101.539841],[23.347811,101.539619],[23.34753,101.53933],[23.34734,101.538963],[23.34724,101.538513],[23.347269,101.537819],[23.347429,101.53669],[23.34742,101.536232],[23.347321,101.535797],[23.346979,101.535103],[23.346121,101.533829],[23.34573,101.533813],[23.344851,101.533127],[23.344709,101.532967],[23.34454,101.532593],[23.344469,101.532181],[23.344481,101.531754],[23.344749,101.531113],[23.345341,101.530067],[23.34547,101.52964],[23.34549,101.529419],[23.34544,101.528961],[23.345369,101.528732],[23.34515,101.528313],[23.344681,101.527786],[23.343719,101.526917],[23.34347,101.526573],[23.343281,101.526154],[23.34318,101.525703],[23.34318,101.525223],[23.343321,101.52449],[23.343639,101.523193],[23.34362,101.522339],[23.34285,101.519333],[23.34116,101.5177],[23.34013,101.517014],[23.33942,101.516563],[23.33905,101.51619],[23.335939,101.511429],[23.335501,101.510902],[23.335039,101.510536],[23.333469,101.510399],[23.3328,101.510399],[23.332359,101.510406],[23.331421,101.510529],[23.33069,101.510742],[23.33045,101.510841],[23.32917,101.511803],[23.32873,101.512032],[23.328251,101.512169],[23.327749,101.51223],[23.327009,101.512154],[23.323721,101.511398],[23.32324,101.511223],[23.322809,101.510941],[23.322451,101.510597],[23.322161,101.510147],[23.320351,101.505699],[23.32012,101.505348],[23.319851,101.505074],[23.316191,101.503098],[23.316031,101.50293],[23.315781,101.502434],[23.315651,101.501892],[23.315639,101.501511],[23.31591,101.500183],[23.31591,101.499603],[23.31584,101.499207],[23.31547,101.498512],[23.31509,101.4981],[23.313749,101.497139],[23.313049,101.4963],[23.311449,101.493736],[23.310949,101.49324],[23.310511,101.49295],[23.309811,101.492706],[23.309259,101.49263],[23.308701,101.492653],[23.30798,101.492867],[23.307329,101.493263],[23.30624,101.494263],[23.30578,101.494499],[23.30526,101.494598],[23.30475,101.494522],[23.30443,101.494408],[23.304001,101.494133],[23.30332,101.493523],[23.302679,101.493134],[23.302151,101.492973],[23.300329,101.492828],[23.29982,101.492691],[23.29936,101.492416],[23.29896,101.492058],[23.298651,101.49157],[23.29851,101.491203],[23.29841,101.490593],[23.298441,101.489937],[23.29887,101.488731],[23.29994,101.486298],[23.30003,101.485863],[23.300039,101.485397],[23.299959,101.484947],[23.29982,101.484512],[23.29916,101.483093],[23.29899,101.48246],[23.298941,101.479362],[23.29888,101.478943],[23.29845,101.477783],[23.29397,101.471352],[23.293539,101.470367],[23.293381,101.469688],[23.29336,101.469353],[23.293779,101.464844],[23.2936,101.460899],[23.29335,101.459717],[23.29188,101.454727],[23.29196,101.453789],[23.292139,101.453323],[23.29254,101.452782],[23.293091,101.452377],[23.29735,101.450317],[23.29784,101.450218],[23.298019,101.450157],[23.29837,101.45005],[23.300659,101.448982],[23.301109,101.448647],[23.301611,101.448097],[23.30344,101.445053],[23.303631,101.44455],[23.30373,101.44381],[23.303711,101.443443],[23.302691,101.440353],[23.30262,101.439346],[23.303419,101.434143],[23.30341,101.433594],[23.30246,101.428864],[23.30212,101.426933],[23.30205,101.425301],[23.30209,101.423752],[23.30225,101.423042],[23.302509,101.422371],[23.30275,101.421272],[23.30324,101.419991],[23.30357,101.418121],[23.304411,101.41581],[23.30448,101.414879],[23.3043,101.414093],[23.303921,101.412971],[23.30341,101.411713],[23.303289,101.411186],[23.302959,101.410378],[23.302151,101.407608],[23.302019,101.403557],[23.30205,101.399788],[23.301559,101.398216],[23.299601,101.394699],[23.29941,101.394173],[23.298491,101.388153],[23.29851,101.387039],[23.299,101.381798],[23.299179,101.379967],[23.299601,101.375473],[23.29952,101.37381],[23.29854,101.368073],[23.298491,101.367287],[23.298559,101.366814],[23.29862,101.366577],[23.29883,101.366158],[23.298969,101.365967],[23.299129,101.365807],[23.29973,101.365448],[23.30014,101.365318],[23.300591,101.365318],[23.300791,101.365372],[23.301411,101.365631],[23.302679,101.366463],[23.30315,101.366669],[23.305269,101.367111],[23.308611,101.368553],[23.30908,101.368668],[23.309549,101.368683],[23.30978,101.368637],[23.310221,101.368462],[23.31061,101.368179],[23.310921,101.367813],[23.311159,101.367348],[23.311291,101.366852],[23.31131,101.3666],[23.31126,101.366089],[23.31119,101.365829],[23.310949,101.365372],[23.310631,101.36496],[23.31044,101.364777],[23.308399,101.363472],[23.30801,101.363098],[23.30773,101.362648],[23.307541,101.362137],[23.30748,101.361893],[23.30747,101.361351],[23.307541,101.360817],[23.30772,101.360313],[23.30801,101.359863],[23.30838,101.359489],[23.30883,101.3592],[23.309771,101.358704],[23.310181,101.358353],[23.31049,101.357941],[23.31069,101.357468],[23.31078,101.356972],[23.310459,101.352417],[23.31035,101.351883],[23.310141,101.351357],[23.30983,101.350891],[23.309111,101.350021],[23.308661,101.349297],[23.30788,101.347549],[23.3076,101.347076],[23.30723,101.346687],[23.305611,101.345879],[23.305229,101.345596],[23.304939,101.345253],[23.30475,101.344803],[23.304661,101.344322],[23.30468,101.343826],[23.304729,101.343597],[23.30492,101.343163],[23.305201,101.342789],[23.30537,101.342644],[23.306009,101.34227],[23.308861,101.341087],[23.309299,101.340843],[23.309669,101.3405],[23.309959,101.340073],[23.310141,101.3396],[23.31019,101.339104],[23.310141,101.338593],[23.30998,101.338097],[23.309719,101.337692],[23.309549,101.337517],[23.30913,101.337242],[23.308649,101.337067],[23.30817,101.337013],[23.30768,101.337082],[23.30719,101.337273],[23.305771,101.33799],[23.301991,101.340103],[23.30154,101.340286],[23.30106,101.340393],[23.30057,101.34037],[23.29932,101.340088],[23.29855,101.34005],[23.297001,101.340271],[23.29649,101.34024],[23.29598,101.340118],[23.293831,101.339027],[23.293381,101.338768],[23.29261,101.338577],[23.29154,101.338562],[23.288971,101.338783],[23.288191,101.338737],[23.287689,101.338608],[23.287201,101.338387],[23.28404,101.335876],[23.283569,101.335587],[23.283079,101.335388],[23.28257,101.335274],[23.282049,101.335251],[23.281521,101.33532],[23.28101,101.335487],[23.28054,101.335732],[23.27841,101.337212],[23.277769,101.337517],[23.277321,101.337593],[23.27689,101.337547],[23.27648,101.33741],[23.2761,101.337143],[23.27562,101.336594],[23.27515,101.335983],[23.27478,101.335617],[23.274361,101.335373],[23.274139,101.335289],[23.273899,101.335243],[23.273439,101.335251],[23.272051,101.335579],[23.27157,101.335564],[23.27112,101.335403],[23.27072,101.335167],[23.27021,101.334663],[23.26919,101.333076],[23.269051,101.332809],[23.26845,101.332222],[23.267771,101.331757],[23.267241,101.331573],[23.266479,101.33149],[23.265961,101.331558],[23.265221,101.331787],[23.263969,101.332336],[23.263201,101.332497],[23.261641,101.332603],[23.261129,101.332733],[23.260651,101.332947],[23.260201,101.333229],[23.26,101.333397],[23.259661,101.333832],[23.259109,101.334793],[23.259041,101.334999],[23.257879,101.336838],[23.25754,101.337242],[23.256929,101.337769],[23.25646,101.33802],[23.25596,101.338181],[23.255699,101.338219],[23.255159,101.338188],[23.25489,101.338142],[23.24906,101.335602],[23.248369,101.335197],[23.24132,101.329826],[23.24147,101.328873],[23.24135,101.32872],[23.24053,101.327087],[23.24011,101.326118],[23.2397,101.325417],[23.239361,101.325027],[23.23761,101.323486],[23.23728,101.323082],[23.23691,101.322357],[23.236731,101.321823],[23.236641,101.321274],[23.236641,101.320442],[23.23761,101.314987],[23.23786,101.314232],[23.238091,101.313751],[23.23838,101.313309],[23.238939,101.312729],[23.239361,101.312393],[23.240049,101.312019],[23.24082,101.311768],[23.241579,101.311661],[23.24288,101.311569],[23.24366,101.311401],[23.244169,101.311203],[23.24485,101.310791],[23.24724,101.308578],[23.249371,101.306458],[23.25046,101.305717],[23.2514,101.305183],[23.252029,101.304672],[23.25238,101.30426],[23.253401,101.302597],[23.25375,101.3022],[23.254169,101.301857],[23.25576,101.300957],[23.256809,101.300117],[23.25803,101.298683],[23.259621,101.296432],[23.26001,101.295692],[23.260309,101.294907],[23.260509,101.293823],[23.260599,101.28904],[23.260759,101.28791],[23.26182,101.283836],[23.26189,101.283279],[23.261841,101.282417],[23.26166,101.281563],[23.2612,101.280502],[23.25816,101.275703],[23.25787,101.27494],[23.25729,101.272781],[23.25692,101.271729],[23.256861,101.271446],[23.25684,101.270866],[23.25701,101.269768],[23.2575,101.267838],[23.257601,101.266983],[23.257561,101.265312],[23.25761,101.264763],[23.25774,101.264198],[23.25815,101.263153],[23.258499,101.261742],[23.259399,101.259422],[23.26021,101.255463],[23.2605,101.254677],[23.261391,101.253326],[23.26161,101.252808],[23.261709,101.252228],[23.26173,101.251953],[23.26165,101.251404],[23.26148,101.2509],[23.261221,101.25042],[23.257629,101.245293],[23.25453,101.24102],[23.25424,101.240463],[23.25411,101.240051],[23.25407,101.239372],[23.254141,101.238907],[23.25489,101.237106],[23.255079,101.236382],[23.255131,101.235603],[23.25507,101.234787],[23.25494,101.234009],[23.254641,101.232986],[23.253679,101.230522],[23.253099,101.228249],[23.25218,101.224899],[23.252119,101.224251],[23.252159,101.223793],[23.25227,101.223343],[23.25267,101.222473],[23.255369,101.21814],[23.25563,101.217392],[23.255819,101.216293],[23.255989,101.211189],[23.25593,101.210632],[23.255699,101.209801],[23.25515,101.208397],[23.255079,101.207947],[23.255119,101.207291],[23.25556,101.205559],[23.25559,101.204849],[23.255541,101.204369],[23.253651,101.197647],[23.25321,101.190193],[23.253139,101.189636],[23.252899,101.18885],[23.25223,101.187347],[23.252081,101.186821],[23.252029,101.186028],[23.252029,101.184959],[23.251909,101.184181],[23.251471,101.182693],[23.251419,101.182167],[23.251471,101.181671],[23.251711,101.180946],[23.25214,101.179993],[23.252359,101.179207],[23.25268,101.176117],[23.253679,101.172638],[23.253969,101.17189],[23.25404,101.171608],[23.25423,101.17112],[23.25482,101.170181],[23.255159,101.169746],[23.259211,101.165756],[23.259529,101.165337],[23.25967,101.165108],[23.2598,101.164597],[23.25979,101.164093],[23.258751,101.160049],[23.25845,101.159592],[23.258369,101.15921],[23.258289,101.158447],[23.258169,101.158096],[23.257179,101.156563],[23.25629,101.155159],[23.255951,101.154793],[23.255541,101.154503],[23.25308,101.15316],[23.24979,101.150223],[23.247089,101.148514],[23.246321,101.147751],[23.244961,101.146111],[23.244539,101.145798],[23.244101,101.145569],[23.243641,101.145447],[23.243139,101.145439],[23.237881,101.146713],[23.23527,101.146896],[23.23027,101.148399],[23.227171,101.148933],[23.226601,101.149139],[23.226101,101.149513],[23.225031,101.150719],[23.22471,101.150948],[23.22401,101.151237],[23.223459,101.151314],[23.2229,101.151283],[23.21833,101.149529],[23.217529,101.149437],[23.21492,101.150093],[23.214319,101.150146],[23.21393,101.150101],[23.213551,101.149986],[23.212259,101.149292],[23.211651,101.149101],[23.20582,101.149193],[23.20516,101.149101],[23.20451,101.148857],[23.20013,101.146408],[23.197161,101.144211],[23.196699,101.14399],[23.196171,101.143883],[23.19566,101.143867],[23.18998,101.145264],[23.18713,101.146263],[23.182751,101.14782],[23.18214,101.147957],[23.18144,101.147972],[23.17918,101.148079],[23.176701,101.148148],[23.176439,101.148087],[23.1756,101.147591],[23.173691,101.145157],[23.173109,101.144783],[23.17226,101.144508],[23.17214,101.144493],[23.171379,101.144051],[23.17091,101.143517],[23.17028,101.14193],[23.17,101.14164],[23.16972,101.141602],[23.169439,101.141708],[23.168489,101.142616],[23.168249,101.142776],[23.167931,101.142853],[23.16761,101.14283],[23.167219,101.142616],[23.166941,101.142342],[23.165541,101.140137],[23.165371,101.139969],[23.165131,101.139893],[23.1649,101.1399],[23.16469,101.140007],[23.164539,101.140213],[23.16445,101.14048],[23.16448,101.140793],[23.16538,101.143227],[23.16543,101.14357],[23.16539,101.143867],[23.165239,101.144112],[23.16502,101.14431],[23.16489,101.144363],[23.16461,101.144333],[23.16432,101.144157],[23.163019,101.142433],[23.16272,101.142174],[23.162319,101.142067],[23.16206,101.142113],[23.16169,101.142326],[23.16151,101.142563],[23.16139,101.143013],[23.161699,101.14537],[23.161659,101.145683],[23.161551,101.14595],[23.16135,101.146149],[23.16123,101.146217],[23.161091,101.14624],[23.16082,101.146202],[23.16057,101.146072],[23.160259,101.145714],[23.159731,101.144867],[23.159531,101.144707],[23.159149,101.144577],[23.157949,101.144608],[23.157829,101.144577],[23.15764,101.144417],[23.15748,101.144173],[23.15741,101.14389],[23.15745,101.143623],[23.157551,101.143349],[23.159639,101.140259],[23.159769,101.139923],[23.15979,101.139557],[23.159719,101.139076],[23.159531,101.138649],[23.15921,101.138329],[23.156639,101.137047],[23.156389,101.136993],[23.156059,101.137062],[23.1558,101.137283],[23.155689,101.137459],[23.1556,101.137772],[23.155609,101.138649],[23.155491,101.139977],[23.15535,101.140266],[23.15517,101.140411],[23.154699,101.140518],[23.153589,101.140503],[23.15336,101.140556],[23.153191,101.140694],[23.15309,101.140862],[23.152969,101.14135],[23.15296,101.141541],[23.152849,101.141853],[23.152651,101.142036],[23.15243,101.142143],[23.15204,101.142143],[23.15184,101.142113],[23.151449,101.142242],[23.1513,101.14238],[23.15011,101.145851],[23.149879,101.146141],[23.149561,101.146332],[23.149179,101.146339],[23.148781,101.146133],[23.14868,101.146019],[23.14852,101.145737],[23.148199,101.14447],[23.14818,101.144096],[23.148239,101.143761],[23.148491,101.14312],[23.148529,101.142517],[23.14846,101.142067],[23.147579,101.140503],[23.14716,101.139427],[23.146629,101.138603],[23.1465,101.13829],[23.146351,101.137589],[23.146191,101.137383],[23.1458,101.137131],[23.1457,101.137131],[23.14535,101.136864],[23.145149,101.136597],[23.14497,101.136078],[23.145,101.135048],[23.144831,101.134483],[23.144569,101.134003],[23.14341,101.13269],[23.14303,101.131958],[23.14296,101.131317],[23.142981,101.130791],[23.143021,101.13031],[23.14278,101.12957],[23.142031,101.128441],[23.14192,101.12812],[23.14188,101.127731],[23.14192,101.127457],[23.14204,101.12693],[23.141991,101.126511],[23.141701,101.125992],[23.140921,101.124786],[23.140791,101.124329],[23.140751,101.123627],[23.140591,101.123238],[23.13983,101.122459],[23.139219,101.122047],[23.13895,101.121941],[23.13866,101.12191],[23.137951,101.122078],[23.13674,101.122704],[23.135241,101.123283],[23.13401,101.123489],[23.133511,101.123459],[23.13283,101.123253],[23.13246,101.123253],[23.130779,101.123734],[23.130409,101.123901],[23.12991,101.124283],[23.12949,101.124657],[23.129351,101.124763],[23.128851,101.12487],[23.12851,101.124863],[23.126789,101.12442],[23.126419,101.124367],[23.12533,101.124573],[23.12499,101.124588],[23.12468,101.124496],[23.124411,101.124329],[23.124189,101.124077],[23.123911,101.123688],[23.123671,101.123543],[23.1227,101.12326],[23.12211,101.122917],[23.120399,101.121613],[23.119591,101.120728],[23.11902,101.120232],[23.117861,101.119186],[23.11676,101.118294],[23.11643,101.117828],[23.11591,101.116852],[23.115431,101.116112],[23.113951,101.11451],[23.113501,101.114166],[23.112789,101.11393],[23.112261,101.113762],[23.11195,101.113548],[23.111401,101.112953],[23.111071,101.112709],[23.110701,101.112541],[23.110331,101.112419],[23.11002,101.112228],[23.10965,101.111816],[23.10878,101.110573],[23.107849,101.109497],[23.107559,101.1091],[23.10708,101.108177],[23.10644,101.106758],[23.10614,101.105141],[23.106171,101.104942],[23.106541,101.103653],[23.10606,101.099571],[23.10594,101.099129],[23.105619,101.098534],[23.102871,101.095078],[23.102421,101.094269],[23.10216,101.093369],[23.10181,101.091087],[23.10194,101.087334],[23.101749,101.084717],[23.101681,101.084343],[23.10136,101.08358],[23.095289,101.071663],[23.092871,101.062553],[23.09272,101.062317],[23.092489,101.062149],[23.088921,101.061073],[23.08243,101.056297],[23.0809,101.055191],[23.080441,101.055038],[23.078341,101.055092],[23.07649,101.055237],[23.07522,101.055809],[23.074841,101.05587],[23.074341,101.055779],[23.073879,101.055496],[23.073151,101.054863],[23.07061,101.053688],[23.070391,101.053497],[23.07021,101.053238],[23.069651,101.050728],[23.069481,101.050293],[23.06922,101.050041],[23.06679,101.048531],[23.066,101.048271],[23.06559,101.048264],[23.065319,101.048363],[23.0651,101.048523],[23.06461,101.048958],[23.06423,101.049133],[23.063789,101.049156],[23.063459,101.049057],[23.062389,101.048508],[23.059759,101.048233],[23.058189,101.048424],[23.057249,101.048233],[23.05648,101.047813],[23.055799,101.047012],[23.05534,101.046501],[23.055099,101.046356],[23.05422,101.046242],[23.04863,101.048233],[23.04837,101.04837],[23.047871,101.048431],[23.02458,101.048302],[23.024071,101.048157],[23.02363,101.047836],[23.02182,101.045883],[23.01825,101.044289],[23.017651,101.044228],[23.010521,101.045853],[23.01018,101.045998],[23.009899,101.046257],[23.009689,101.0466],[23.00923,101.047546],[23.00905,101.047729],[23.008829,101.047852],[23.008591,101.047897],[23.008221,101.047829],[23.0072,101.047447],[23.00699,101.04744],[23.00671,101.047546],[23.00486,101.049133],[23.004459,101.049347],[23.004141,101.049469],[23.003429,101.049538],[23.002609,101.049538],[23.001209,101.0495],[22.99102,101.050056],[22.990601,101.050232],[22.988979,101.051308],[22.986931,101.052177],[22.983101,101.053596],[22.98258,101.053596],[22.98111,101.053093],[22.980881,101.052917],[22.98064,101.052544],[22.98027,101.051727],[22.980181,101.051598],[22.979851,101.051323],[22.977791,101.050697],[22.977329,101.050682],[22.97683,101.050743],[22.97641,101.05069],[22.976101,101.050507],[22.97517,101.049477],[22.975031,101.049393],[22.97488,101.049339],[22.97471,101.049347],[22.97455,101.049408],[22.974409,101.049507],[22.974291,101.049789],[22.974131,101.051559],[22.973989,101.051819],[22.9736,101.052063],[22.97324,101.052071],[22.97154,101.051743],[22.97117,101.05188],[22.97064,101.052979],[22.9704,101.053261],[22.9699,101.053467],[22.969589,101.053482],[22.96904,101.053253],[22.967541,101.051788],[22.96735,101.051491],[22.967199,101.050926],[22.96707,101.050056],[22.966869,101.04985],[22.96673,101.049789],[22.966591,101.049767],[22.966249,101.049873],[22.96386,101.051697],[22.9636,101.05175],[22.963301,101.051643],[22.959089,101.045609],[22.956141,101.043243],[22.95582,101.042763],[22.95554,101.041786],[22.955561,101.041611],[22.955469,101.041199],[22.95533,101.040993],[22.955111,101.040871],[22.95499,101.04084],[22.95459,101.040916],[22.95439,101.041054],[22.95409,101.041618],[22.95377,101.042618],[22.953621,101.0429],[22.9533,101.043198],[22.95293,101.043343],[22.952551,101.043373],[22.95105,101.043114],[22.94944,101.042679],[22.94734,101.042618],[22.945259,101.041969],[22.943899,101.041206],[22.9433,101.0411],[22.94108,101.041023],[22.940371,101.040817],[22.93914,101.040337],[22.938881,101.040291],[22.937981,101.040459],[22.937111,101.040733],[22.936819,101.040688],[22.93659,101.040581],[22.9363,101.040291],[22.935471,101.038452],[22.934389,101.037483],[22.93408,101.036903],[22.933861,101.03627],[22.93358,101.035828],[22.930759,101.033897],[22.928329,101.0327],[22.92807,101.032654],[22.92779,101.032707],[22.925079,101.034653],[22.923201,101.035942],[22.92071,101.03714],[22.91906,101.038437],[22.918779,101.038589],[22.91832,101.038673],[22.913601,101.038834],[22.90958,101.038292],[22.909451,101.0383],[22.907591,101.039146],[22.90667,101.039864],[22.906139,101.040077],[22.903391,101.040199],[22.9011,101.039917],[22.899839,101.04007],[22.898951,101.040367],[22.894341,101.042671],[22.892481,101.043266],[22.89069,101.044769],[22.890381,101.04493],[22.89023,101.044968],[22.89006,101.044968],[22.88994,101.044899],[22.88973,101.04493],[22.885571,101.044243],[22.885229,101.044144],[22.884729,101.044144],[22.883869,101.044243],[22.882971,101.044228],[22.88155,101.043968],[22.879829,101.044067],[22.87952,101.044228],[22.87929,101.044434],[22.879181,101.044807],[22.87919,101.045258],[22.87907,101.045502],[22.878929,101.045624],[22.878759,101.045647],[22.87855,101.045624],[22.87825,101.045418],[22.87788,101.044594],[22.877769,101.044441],[22.87748,101.044289],[22.87735,101.044273],[22.87706,101.044327],[22.87561,101.045067],[22.87435,101.045563],[22.874069,101.045738],[22.873659,101.046143],[22.87348,101.046463],[22.873461,101.046783],[22.87372,101.047661],[22.873671,101.048126],[22.873381,101.048607],[22.8731,101.049057],[22.87294,101.049553],[22.872959,101.049843],[22.87299,101.051071],[22.873091,101.051468],[22.87307,101.051727],[22.872841,101.052048],[22.87248,101.052231],[22.872129,101.052238],[22.871901,101.052139],[22.871731,101.05201],[22.87158,101.051781],[22.87137,101.051331],[22.870871,101.050537],[22.87031,101.050301],[22.87015,101.050247],[22.86977,101.050247],[22.868971,101.05014],[22.868629,101.050194],[22.86834,101.050377],[22.86783,101.051132],[22.867571,101.051727],[22.86725,101.052254],[22.86702,101.052406],[22.866871,101.052437],[22.86664,101.052406],[22.8664,101.052299],[22.86628,101.0522],[22.86537,101.051041],[22.864679,101.049889],[22.864491,101.049759],[22.86417,101.04966],[22.863911,101.049744],[22.863689,101.049896],[22.86302,101.050751],[22.862921,101.050842],[22.8627,101.050903],[22.862459,101.050858],[22.862341,101.050789],[22.862141,101.050583],[22.86179,101.049911],[22.86162,101.049759],[22.861549,101.049652],[22.861429,101.049568],[22.861179,101.04953],[22.860901,101.049637],[22.86054,101.050079],[22.860201,101.050247],[22.85998,101.050201],[22.859751,101.050087],[22.85951,101.049782],[22.85891,101.049133],[22.858801,101.048973],[22.85874,101.048752],[22.85858,101.04847],[22.85841,101.047997],[22.858,101.047462],[22.857731,101.047256],[22.85655,101.046967],[22.8563,101.046959],[22.855829,101.046768],[22.85537,101.04673],[22.854799,101.046623],[22.85006,101.045921],[22.845831,101.044746],[22.84557,101.044601],[22.84523,101.044167],[22.84511,101.043877],[22.845091,101.043388],[22.845209,101.042717],[22.84556,101.04084],[22.84547,101.039772],[22.84502,101.038681],[22.84433,101.037338],[22.844259,101.03698],[22.84441,101.03569],[22.84409,101.032707],[22.843941,101.032372],[22.84374,101.032219],[22.843361,101.032143],[22.84267,101.032249],[22.842449,101.032204],[22.84227,101.032082],[22.84207,101.03154],[22.84198,101.029114],[22.842051,101.028877],[22.842239,101.02861],[22.84289,101.028084],[22.843069,101.027802],[22.843121,101.027473],[22.842661,101.025063],[22.84259,101.023514],[22.8423,101.022087],[22.842039,101.021744],[22.841921,101.021637],[22.840469,101.021187],[22.83992,101.020882],[22.839251,101.020699],[22.83877,101.020607],[22.83643,101.020943],[22.83602,101.020882],[22.83543,101.020538],[22.835251,101.02018],[22.835159,101.019417],[22.835239,101.019051],[22.835609,101.018333],[22.835791,101.017487],[22.83559,101.016022],[22.835461,101.015701],[22.835409,101.015404],[22.83482,101.014267],[22.83457,101.014038],[22.83433,101.013992],[22.833139,101.014503],[22.83259,101.014458],[22.831869,101.014343],[22.83053,101.014374],[22.830259,101.014282],[22.83005,101.014122],[22.82991,101.013893],[22.82984,101.013634],[22.829969,101.011917],[22.829901,101.011574],[22.829679,101.011261],[22.82835,101.010513],[22.82818,101.01033],[22.82806,101.010017],[22.828091,101.009712],[22.82819,101.009499],[22.828621,101.008827],[22.82872,101.008507],[22.828699,101.008148],[22.828489,101.007767],[22.828329,101.007561],[22.828199,101.007271],[22.82818,101.006958],[22.828251,101.006508],[22.82892,101.004562],[22.828939,101.004387],[22.82892,101.004211],[22.82877,101.003937],[22.828609,101.00386],[22.82851,101.003838],[22.827129,101.004417],[22.82692,101.004593],[22.8267,101.004982],[22.82649,101.006523],[22.82633,101.00679],[22.82616,101.006943],[22.82592,101.007004],[22.825689,101.006958],[22.82403,101.006088],[22.823681,101.00605],[22.82346,101.006119],[22.82337,101.006187],[22.82324,101.006432],[22.823219,101.006813],[22.82399,101.008453],[22.82399,101.008774],[22.823879,101.008957],[22.823681,101.009087],[22.82329,101.009109],[22.822479,101.008789],[22.8221,101.00872],[22.82177,101.008583],[22.821529,101.008583],[22.820789,101.008713],[22.81996,101.008583],[22.81974,101.008629],[22.81953,101.008781],[22.81933,101.009148],[22.819201,101.009819],[22.818939,101.010223],[22.81875,101.01033],[22.81855,101.010323],[22.81834,101.010223],[22.81811,101.009933],[22.81785,101.008659],[22.817579,101.008057],[22.817181,101.007607],[22.81698,101.007149],[22.816971,101.006393],[22.817101,101.005531],[22.81698,101.004761],[22.81669,101.004066],[22.81662,101.003967],[22.816351,101.003433],[22.816111,101.00322],[22.8158,101.003128],[22.815439,101.003159],[22.81422,101.003883],[22.813881,101.003998],[22.81366,101.004013],[22.813259,101.003754],[22.81312,101.00354],[22.813089,101.003281],[22.813181,101.002853],[22.813629,101.002243],[22.81424,101.001587],[22.814421,101.00119],[22.81451,100.999588],[22.81435,100.99884],[22.813931,100.997803],[22.81389,100.997131],[22.8141,100.995453],[22.81406,100.995247],[22.813869,100.99498],[22.81354,100.994713],[22.812071,100.994713],[22.811621,100.994812],[22.811399,100.994797],[22.811131,100.994667],[22.811001,100.994537],[22.810301,100.993599],[22.810169,100.99321],[22.809681,100.992577],[22.808121,100.991653],[22.80743,100.990997],[22.80442,100.986687],[22.803289,100.985558],[22.800989,100.9842],[22.79668,100.982613],[22.79608,100.982559],[22.795641,100.98262],[22.79413,100.983139],[22.79402,100.983147],[22.78949,100.984673],[22.78833,100.984734],[22.78718,100.984337],[22.786381,100.98378],[22.785009,100.982468],[22.783701,100.981873],[22.78307,100.981773],[22.778049,100.982323],[22.775881,100.981888],[22.773491,100.98156],[22.77161,100.981628],[22.770651,100.981438],[22.76981,100.98101],[22.769211,100.980476],[22.76837,100.979477],[22.76026,100.960899],[22.757999,100.955803],[22.757441,100.955391],[22.75708,100.955048],[22.75721,100.954697],[22.757549,100.954514],[22.75704,100.954567],[22.755301,100.954819],[22.75485,100.955139],[22.7547,100.95517],[22.75456,100.955002],[22.75416,100.954086],[22.7537,100.952957],[22.75363,100.952232],[22.753639,100.951859],[22.753731,100.95031],[22.75379,100.949226],[22.75386,100.948143],[22.753901,100.947762],[22.754181,100.947342],[22.754499,100.947273],[22.75466,100.947357],[22.75481,100.947609],[22.754841,100.947906],[22.754721,100.948082],[22.75465,100.948151],[22.75444,100.948288],[22.75411,100.948311],[22.753559,100.948311],[22.751921,100.947998],[22.75135,100.947693],[22.74992,100.946747],[22.74894,100.945709],[22.74827,100.944641],[22.74794,100.943817],[22.747869,100.943604],[22.747629,100.942703],[22.74728,100.940529],[22.747,100.939323],[22.746799,100.938171],[22.74645,100.937271],[22.74609,100.936653],[22.74593,100.936523],[22.74559,100.936256],[22.745041,100.935921],[22.744431,100.935699],[22.743589,100.935547],[22.74295,100.935478],[22.742531,100.935432],[22.742319,100.93541],[22.74148,100.935318],[22.740669,100.935219],[22.73987,100.935173],[22.73967,100.935181],[22.738371,100.935532],[22.737089,100.935951],[22.737221,100.937561],[22.736879,100.938103],[22.736759,100.93824],[22.736469,100.938568],[22.735411,100.939491],[22.735109,100.939758],[22.73385,100.938789],[22.73255,100.937866],[22.73188,100.937424],[22.7313,100.937263],[22.73031,100.937019],[22.72901,100.936897],[22.72834,100.93692],[22.727659,100.936996],[22.726971,100.937157],[22.72587,100.937553],[22.725189,100.937759],[22.72473,100.937843],[22.72377,100.937927],[22.723061,100.937889],[22.72282,100.937859],[22.72212,100.937721],[22.721439,100.937607],[22.72052,100.937538],[22.71982,100.937569],[22.718861,100.937721],[22.71837,100.937798],[22.71788,100.937851],[22.71763,100.937859],[22.716881,100.937851],[22.716391,100.937813],[22.715691,100.937683],[22.714161,100.937149],[22.71335,100.936859],[22.70923,100.935532],[22.706129,100.935272],[22.7059,100.935303],[22.70228,100.935913],[22.698429,100.936508],[22.697969,100.936501],[22.695841,100.935799],[22.69434,100.934319],[22.693859,100.933487],[22.692881,100.931847],[22.692579,100.931488],[22.69058,100.929947],[22.688129,100.929352],[22.687429,100.929367],[22.686251,100.929581],[22.68441,100.93026],[22.684179,100.930351],[22.6835,100.930618],[22.68281,100.93087],[22.681641,100.931152],[22.680941,100.93116],[22.68004,100.930992],[22.678801,100.930367],[22.67804,100.92984],[22.677851,100.92971],[22.675659,100.928902],[22.67326,100.929527],[22.673059,100.929657],[22.672211,100.930489],[22.671471,100.931808],[22.67083,100.933502],[22.67029,100.934967],[22.66975,100.936409],[22.669571,100.936882],[22.668791,100.938911],[22.668209,100.940453],[22.667789,100.941566],[22.667259,100.942947],[22.666759,100.944099],[22.666229,100.944946],[22.66468,100.94651],[22.664499,100.946678],[22.663601,100.9478],[22.6632,100.94841],[22.66169,100.949921],[22.661079,100.950256],[22.65884,100.951897],[22.65867,100.952042],[22.65498,100.95533],[22.652889,100.957962],[22.650261,100.962303],[22.649429,100.963142],[22.646749,100.965019],[22.64267,100.968117],[22.637991,100.972588],[22.635099,100.975403],[22.634501,100.975807],[22.63336,100.976723],[22.632851,100.977272],[22.63204,100.97821],[22.630671,100.979149],[22.62907,100.979347],[22.626699,100.979889],[22.62571,100.98082],[22.625561,100.981003],[22.625271,100.981339],[22.624451,100.982117],[22.621981,100.983459],[22.621571,100.983727],[22.62063,100.984596],[22.62031,100.985008],[22.619671,100.986153],[22.619551,100.986382],[22.61792,100.989319],[22.617081,100.990868],[22.616619,100.99173],[22.615801,100.99321],[22.615339,100.994034],[22.613991,100.99749],[22.61388,100.99794],[22.613501,101.000053],[22.613371,101.000763],[22.612659,101.004387],[22.612049,101.00573],[22.611759,101.006104],[22.610201,101.00721],[22.609751,101.007362],[22.607679,101.007797],[22.606541,101.008034],[22.605619,101.008209],[22.604639,101.006989],[22.60265,101.008003],[22.602079,101.008499],[22.601891,101.008682],[22.600941,101.009567],[22.60054,101.009903],[22.599701,101.010483],[22.599489,101.010628],[22.598221,101.011467],[22.59697,101.012291],[22.595961,101.013023],[22.5944,101.014282],[22.5931,101.015518],[22.59235,101.016289],[22.591801,101.016899],[22.591261,101.017517],[22.590919,101.01796],[22.59057,101.018387],[22.59005,101.01902],[22.589531,101.019653],[22.58902,101.020264],[22.58886,101.020462],[22.58802,101.021461],[22.58716,101.0224],[22.5863,101.023323],[22.5856,101.024063],[22.58543,101.024239],[22.58489,101.024803],[22.583969,101.025703],[22.583059,101.026604],[22.582319,101.027351],[22.58213,101.027542],[22.58135,101.02832],[22.580959,101.028717],[22.58037,101.029327],[22.579769,101.02993],[22.579161,101.03051],[22.578529,101.031021],[22.577629,101.031601],[22.576929,101.031967],[22.57407,101.032806],[22.57268,101.033127],[22.569481,101.033974],[22.566851,101.035629],[22.564631,101.038254],[22.562571,101.04084],[22.561569,101.042],[22.56105,101.042549],[22.55653,101.046677],[22.551979,101.050056],[22.549089,101.051498],[22.54871,101.051857],[22.547211,101.054031],[22.545851,101.055611],[22.54336,101.057426],[22.538851,101.060677],[22.536671,101.062241],[22.535339,101.063202],[22.53406,101.064117],[22.53334,101.064636],[22.533159,101.064774],[22.532261,101.065422],[22.530951,101.066353],[22.53075,101.06649],[22.52914,101.067642],[22.527901,101.068542],[22.52706,101.069153],[22.525999,101.069908],[22.52557,101.070213],[22.524731,101.070824],[22.523899,101.071411],[22.523279,101.071854],[22.52087,101.073593],[22.519039,101.074821],[22.515511,101.076576],[22.51333,101.077263],[22.51284,101.077393],[22.507811,101.078346],[22.502991,101.079971],[22.4993,101.081062],[22.49831,101.081284],[22.497311,101.081467],[22.49608,101.081688],[22.4951,101.081871],[22.49365,101.082123],[22.49098,101.082588],[22.49074,101.082626],[22.48781,101.08316],[22.48311,101.084023],[22.479179,101.084732],[22.47846,101.084869],[22.47751,101.085037],[22.47727,101.085091],[22.474871,101.085403],[22.472151,101.084801],[22.47193,101.084686],[22.469971,101.083214],[22.46851,101.081123],[22.46838,101.080887],[22.46525,101.076134],[22.46405,101.075218],[22.46118,101.073936],[22.46097,101.07383],[22.46055,101.073578],[22.46015,101.073303],[22.45813,101.071114],[22.454941,101.066788],[22.45241,101.063629],[22.451441,101.062912],[22.450809,101.062576],[22.450399,101.062378],[22.449249,101.061684],[22.44907,101.061531],[22.448311,101.060661],[22.44747,101.058617],[22.44726,101.057877],[22.447041,101.057114],[22.446621,101.055618],[22.44656,101.055382],[22.44626,101.054199],[22.446159,101.053268],[22.44618,101.052567],[22.446199,101.052338],[22.44644,101.051201],[22.44669,101.050537],[22.446791,101.050323],[22.44743,101.049301],[22.44944,101.047501],[22.45256,101.045052],[22.45421,101.043716],[22.45508,101.042671],[22.455469,101.041603],[22.45558,101.040413],[22.455441,101.039482],[22.455299,101.039047],[22.454571,101.037857],[22.453421,101.036743],[22.452419,101.035797],[22.451059,101.034531],[22.44902,101.032204],[22.448139,101.03109],[22.448,101.030907],[22.447321,101.030052],[22.446791,101.029404],[22.446239,101.028793],[22.445601,101.028267],[22.445089,101.027977],[22.44455,101.027733],[22.44379,101.027473],[22.442869,101.027039],[22.44202,101.026077],[22.441919,101.025887],[22.440689,101.022301],[22.439899,101.018692],[22.43993,101.01844],[22.44076,101.016403],[22.441521,101.014671],[22.441589,101.013519],[22.441429,101.012611],[22.441191,101.011757],[22.440969,101.010933],[22.44091,101.010727],[22.440741,101.010117],[22.44063,101.009697],[22.44046,101.009087],[22.440399,101.008888],[22.44026,101.008293],[22.43997,101.007103],[22.43926,101.005013],[22.438971,101.004204],[22.43878,101.003777],[22.43825,101.003036],[22.43762,101.002419],[22.437071,101.002037],[22.435881,101.001503],[22.43569,101.001411],[22.43453,101.000877],[22.432699,101.00032],[22.431379,100.999817],[22.429871,100.999237],[22.429649,100.999161],[22.42835,100.998688],[22.42729,100.998253],[22.425751,100.997887],[22.425079,100.997864],[22.424191,100.99781],[22.422859,100.997726],[22.42264,100.997711],[22.42198,100.997673],[22.42152,100.996429],[22.421169,100.995857],[22.420839,100.995033],[22.420691,100.994614],[22.420389,100.993767],[22.42004,100.992973],[22.41968,100.992416],[22.41955,100.992264],[22.41909,100.991814],[22.418539,100.991493],[22.41814,100.991341],[22.417721,100.991249],[22.416821,100.99128],[22.41659,100.991333],[22.414579,100.991943],[22.413879,100.992104],[22.41272,100.992363],[22.412491,100.992409],[22.412029,100.992523],[22.411489,100.99173],[22.410629,100.991402],[22.409349,100.990982],[22.408449,100.990921],[22.40686,100.991699],[22.406151,100.992973],[22.406,100.993713],[22.40591,100.994217],[22.40572,100.995506],[22.405109,100.997917],[22.40416,100.998901],[22.403561,100.999229],[22.40292,100.999512],[22.40205,100.999962],[22.40163,101.000214],[22.401421,101.000351],[22.400829,101.000778],[22.40065,101.000923],[22.399929,101.001457],[22.398781,101.001991],[22.39797,101.001999],[22.39777,101.001953],[22.39657,101.001633],[22.396379,101.001579],[22.39558,101.001373],[22.39538,101.001312],[22.39526,100.999611],[22.394581,100.999031],[22.39352,100.99868],[22.39287,100.998627],[22.39201,100.998672],[22.391159,100.998779],[22.390329,100.998871],[22.389509,100.99894],[22.38932,100.998947],[22.38833,100.999069],[22.38817,100.999077],[22.38769,100.999107],[22.386909,100.999184],[22.386049,100.999191],[22.385309,100.99913],[22.38492,100.999077],[22.384109,100.998894],[22.38331,100.998627],[22.38269,100.998428],[22.382271,100.998299],[22.38162,100.9981],[22.381399,100.998016],[22.379789,100.997589],[22.37746,100.997719],[22.37701,100.997803],[22.37565,100.99794],[22.374069,100.997757],[22.371149,100.996773],[22.36879,100.996872],[22.36677,100.998077],[22.36544,100.998917],[22.363939,100.999222],[22.36371,100.999207],[22.361771,100.998497],[22.361561,100.998383],[22.36068,100.997917],[22.35667,100.996277],[22.355659,100.996132],[22.35545,100.996094],[22.3552,100.996048],[22.35351,100.995506],[22.352989,100.995354],[22.35206,100.994911],[22.351191,100.9944],[22.350361,100.99382],[22.349239,100.992828],[22.3489,100.992477],[22.347679,100.990936],[22.34753,100.990723],[22.347231,100.990303],[22.3466,100.989418],[22.346451,100.989197],[22.345881,100.988319],[22.3456,100.987877],[22.344879,100.987053],[22.34469,100.986832],[22.3444,100.986397],[22.343929,100.985764],[22.34325,100.984917],[22.342899,100.98452],[22.34236,100.983963],[22.341551,100.983261],[22.341339,100.983093],[22.340931,100.982758],[22.340309,100.982277],[22.33968,100.98185],[22.33882,100.981354],[22.337931,100.980911],[22.337259,100.980621],[22.33658,100.980331],[22.335899,100.980011],[22.335011,100.979507],[22.334351,100.979088],[22.333929,100.978783],[22.333309,100.978302],[22.33271,100.977814],[22.332319,100.97747],[22.33115,100.976021],[22.33066,100.975357],[22.33033,100.974922],[22.32984,100.974281],[22.32935,100.97364],[22.328871,100.973007],[22.328541,100.972603],[22.328211,100.972168],[22.327511,100.971367],[22.32696,100.970787],[22.32638,100.970261],[22.325781,100.969727],[22.32449,100.968719],[22.323839,100.968231],[22.322981,100.967537],[22.32235,100.966988],[22.32173,100.966423],[22.32111,100.965813],[22.320511,100.965157],[22.31974,100.964256],[22.319361,100.963791],[22.319,100.963318],[22.31883,100.963081],[22.318489,100.962601],[22.318001,100.961853],[22.317539,100.961113],[22.31683,100.959846],[22.3167,100.959587],[22.316441,100.959053],[22.31583,100.95768],[22.315411,100.956596],[22.31521,100.956093],[22.314989,100.955597],[22.314751,100.955116],[22.31435,100.954437],[22.31389,100.953796],[22.31356,100.953377],[22.3132,100.953003],[22.313021,100.952812],[22.312639,100.952461],[22.312241,100.952141],[22.31143,100.951508],[22.310619,100.950844],[22.309799,100.950172],[22.30938,100.949837],[22.30875,100.949333],[22.30834,100.948967],[22.30776,100.948433],[22.307011,100.947678],[22.30665,100.947304],[22.30629,100.94693],[22.305771,100.946358],[22.30448,100.944847],[22.302361,100.942863],[22.30135,100.942192],[22.300039,100.941544],[22.29891,100.941139],[22.298679,100.941078],[22.29401,100.939636],[22.29364,100.939407],[22.29315,100.939018],[22.292601,100.938454],[22.292191,100.937828],[22.291941,100.937363],[22.29166,100.936699],[22.29142,100.936028],[22.291241,100.935516],[22.291,100.934837],[22.290689,100.933968],[22.29043,100.933243],[22.290171,100.932518],[22.289909,100.931793],[22.28965,100.931053],[22.28944,100.930489],[22.289181,100.929733],[22.288919,100.92897],[22.288719,100.928398],[22.288429,100.927658],[22.288191,100.927109],[22.28772,100.926224],[22.28751,100.925888],[22.28701,100.925056],[22.286711,100.924561],[22.286501,100.924217],[22.2857,100.922897],[22.283091,100.922768],[22.2829,100.922638],[22.282551,100.92234],[22.282061,100.921547],[22.28171,100.920723],[22.281401,100.919838],[22.28109,100.919243],[22.280649,100.918709],[22.280479,100.918556],[22.279711,100.918083],[22.27906,100.917793],[22.27845,100.917397],[22.27788,100.916908],[22.27706,100.91597],[22.276711,100.915627],[22.27635,100.915314],[22.275961,100.915047],[22.275339,100.914749],[22.274691,100.91449],[22.27426,100.914291],[22.273479,100.913727],[22.27298,100.913193],[22.27249,100.912582],[22.271811,100.911751],[22.271299,100.911133],[22.2708,100.9105],[22.270121,100.909691],[22.269621,100.909081],[22.26911,100.908478],[22.2686,100.907867],[22.267941,100.907059],[22.26745,100.906471],[22.26729,100.906281],[22.266529,100.905327],[22.26638,100.905159],[22.266109,100.904793],[22.265181,100.903084],[22.26512,100.902878],[22.26486,100.901817],[22.264759,100.901176],[22.264681,100.900543],[22.26461,100.900162],[22.264441,100.899437],[22.264219,100.898758],[22.264151,100.89859],[22.263769,100.897781],[22.262951,100.896568],[22.26133,100.89476],[22.25939,100.892632],[22.257799,100.890877],[22.25618,100.889526],[22.254049,100.888847],[22.252899,100.888924],[22.249889,100.889832],[22.24725,100.890663],[22.24247,100.892181],[22.24225,100.89225],[22.241619,100.892464],[22.240801,100.892723],[22.240601,100.892776],[22.239651,100.893082],[22.23909,100.89325],[22.237379,100.893532],[22.23546,100.892883],[22.233191,100.891357],[22.23279,100.891243],[22.229931,100.891037],[22.227671,100.891037],[22.22744,100.891037],[22.22624,100.890999],[22.226,100.890961],[22.22529,100.890846],[22.224819,100.890739],[22.222071,100.889473],[22.221689,100.889198],[22.220579,100.88842],[22.217211,100.886803],[22.216749,100.886673],[22.21537,100.886177],[22.215151,100.88607],[22.213539,100.884918],[22.21335,100.884743],[22.21269,100.883972],[22.211559,100.88224],[22.21076,100.881287],[22.209181,100.880188],[22.20785,100.879623],[22.20566,100.878441],[22.20363,100.876953],[22.20343,100.876793],[22.20179,100.875679],[22.20072,100.875061],[22.199169,100.874298],[22.19618,100.873253],[22.19453,100.872864],[22.192659,100.872551],[22.191271,100.872337],[22.189659,100.872108],[22.18873,100.872002],[22.18466,100.871529],[22.184441,100.871552],[22.18379,100.871658],[22.18276,100.872009],[22.18195,100.872292],[22.181749,100.872353],[22.18115,100.872498],[22.18075,100.872551],[22.17971,100.872528],[22.1782,100.872253],[22.17522,100.871643],[22.17458,100.871513],[22.1733,100.871239],[22.172661,100.871101],[22.17029,100.87149],[22.168579,100.872566],[22.16478,100.875488],[22.164101,100.877136],[22.164101,100.878738],[22.16431,100.880547],[22.163891,100.882553],[22.162741,100.884567],[22.16111,100.888344],[22.15967,100.889977],[22.15947,100.890106],[22.15798,100.8908],[22.156429,100.891068],[22.154831,100.890587],[22.15423,100.890297],[22.15365,100.889992],[22.15346,100.889893],[22.15308,100.889687],[22.1521,100.889374],[22.1511,100.889267],[22.1509,100.889297],[22.15032,100.889381],[22.149731,100.889503],[22.1486,100.889763],[22.147829,100.889931],[22.146811,100.890137],[22.146601,100.890182],[22.1453,100.890213],[22.1434,100.889481],[22.141661,100.88871],[22.14024,100.888573],[22.13888,100.88858],[22.13842,100.888573],[22.136339,100.888329],[22.13586,100.888229],[22.13463,100.888077],[22.133619,100.88813],[22.133141,100.88826],[22.132429,100.888542],[22.13179,100.888947],[22.13122,100.889442],[22.13084,100.889793],[22.130289,100.890343],[22.13011,100.890518],[22.129749,100.890877],[22.12937,100.891243],[22.12919,100.891434],[22.128811,100.891777],[22.128059,100.892509],[22.12748,100.893066],[22.127279,100.893272],[22.12668,100.893837],[22.125839,100.894562],[22.125389,100.894897],[22.124491,100.895523],[22.12426,100.895668],[22.123569,100.896049],[22.12311,100.896271],[22.122881,100.896378],[22.121969,100.896767],[22.12151,100.896927],[22.121059,100.897087],[22.120359,100.897293],[22.1199,100.8974],[22.119209,100.897537],[22.118031,100.897697],[22.117319,100.897758],[22.117081,100.897774],[22.116381,100.897797],[22.115919,100.897781],[22.115219,100.897751],[22.114771,100.897697],[22.11454,100.897667],[22.113411,100.897438],[22.113171,100.897377],[22.112221,100.897087],[22.1113,100.896767],[22.109541,100.896072],[22.109329,100.896004],[22.108931,100.895844],[22.107821,100.895363],[22.10671,100.894867],[22.1063,100.894707],[22.105659,100.894447],[22.104509,100.894028],[22.10401,100.893913],[22.102751,100.893784],[22.102249,100.893806],[22.10034,100.894386],[22.09577,100.896683],[22.09535,100.896889],[22.09514,100.897003],[22.091,100.899063],[22.09016,100.899467],[22.08934,100.899872],[22.0875,100.90078],[22.086281,100.901398],[22.086069,100.901497],[22.084459,100.90229],[22.082359,100.903587],[22.08218,100.90374],[22.080879,100.904747],[22.08029,100.905144],[22.079691,100.905487],[22.07802,100.906349],[22.076559,100.907097],[22.074671,100.908073],[22.074459,100.90818],[22.07284,100.909088],[22.072651,100.909233],[22.071779,100.910347],[22.07155,100.911049],[22.07114,100.91275],[22.07007,100.914352],[22.06971,100.914612],[22.06798,100.915222],[22.06732,100.915314],[22.06707,100.915398],[22.067011,100.915398],[22.066839,100.915367],[22.06671,100.915428],[22.06671,100.915428],[22.066191,100.915527],[22.065809,100.915627],[22.065701,100.915657],[22.0648,100.915863],[22.064171,100.915993],[22.06389,100.916054],[22.063181,100.916206],[22.06303,100.916252],[22.06241,100.916389],[22.06175,100.916527],[22.061239,100.916649],[22.059919,100.916832],[22.05904,100.916962],[22.05825,100.916946],[22.05735,100.916603],[22.05529,100.916061],[22.052691,100.91539],[22.043591,100.899223],[22.04199,100.896301],[22.040911,100.894302],[22.04068,100.893753],[22.04048,100.893158],[22.040251,100.892387],[22.04018,100.892197],[22.03977,100.891548],[22.039471,100.891258],[22.03857,100.890778],[22.03838,100.890678],[22.037889,100.890312],[22.037439,100.889587],[22.037371,100.889359],[22.03727,100.888687],[22.03849,100.887321],[22.038231,100.886932],[22.03797,100.886543],[22.03784,100.886353],[22.037319,100.885567],[22.03694,100.884987],[22.0368,100.884804],[22.03665,100.884613],[22.03618,100.885109],[22.035931,100.885269],[22.03573,100.885452],[22.035629,100.886169],[22.035851,100.886627],[22.036329,100.887131],[22.03694,100.887589],[22.037371,100.887947],[22.037769,100.888542],[22.038059,100.889397],[22.038601,100.890022],[22.038759,100.890091],[22.03908,100.890213],[22.039551,100.890381],[22.039709,100.890427],[22.040171,100.890617],[22.04055,100.890907],[22.04085,100.891487],[22.04088,100.891983],[22.040859,100.892303],[22.041019,100.893082],[22.04133,100.893448],[22.04187,100.893829],[22.042009,100.893929],[22.04236,100.894287],[22.042669,100.894897],[22.042761,100.895416],[22.04281,100.89608],[22.04302,100.896843],[22.043171,100.8974],[22.043329,100.897919],[22.04336,100.898033],[22.04343,100.898308],[22.043329,100.898941],[22.043221,100.899231],[22.04311,100.89959],[22.04307,100.899696],[22.042959,100.900017],[22.042801,100.900459],[22.04266,100.901329],[22.04273,100.901848],[22.042891,100.902496],[22.043011,100.903023],[22.04307,100.90329],[22.0431,100.903831],[22.04306,100.904114],[22.04298,100.904373],[22.042709,100.904846],[22.0425,100.905212],[22.042471,100.90583],[22.042601,100.906067],[22.042801,100.906258],[22.043329,100.906708],[22.04343,100.906807],[22.0436,100.907654],[22.04347,100.907928],[22.0432,100.908363],[22.042931,100.908813],[22.042509,100.909538],[22.042471,100.910461],[22.0427,100.910889],[22.042801,100.911018],[22.04372,100.911949],[22.043859,100.912079],[22.044359,100.912582],[22.04472,100.913528],[22.04451,100.913986],[22.04413,100.91433],[22.043119,100.915154],[22.04287,100.915573],[22.04269,100.916199],[22.04266,100.916359],[22.042521,100.917137],[22.04232,100.917717],[22.042139,100.918114],[22.04208,100.918228],[22.041771,100.919312],[22.041821,100.920036],[22.041901,100.920273],[22.04212,100.920998],[22.041929,100.921722],[22.041439,100.922592],[22.04129,100.924171],[22.04126,100.92466],[22.04137,100.925926],[22.041439,100.926308],[22.0415,100.928253],[22.041519,100.929138],[22.04121,100.929947],[22.0408,100.930191],[22.038839,100.931381],[22.03824,100.932617],[22.03816,100.932838],[22.03783,100.933723],[22.0376,100.93438],[22.03727,100.935242],[22.037001,100.935867],[22.03648,100.936867],[22.035589,100.938187],[22.03503,100.938904],[22.03474,100.939247],[22.03359,100.940689],[22.03301,100.941406],[22.032301,100.942299],[22.031099,100.943787],[22.03026,100.94487],[22.029539,100.945839],[22.029261,100.946281],[22.029091,100.946602],[22.02861,100.94767],[22.028391,100.948227],[22.02833,100.948433],[22.02803,100.949387],[22.02774,100.950394],[22.027679,100.950592],[22.02737,100.95163],[22.027,100.952888],[22.026939,100.953102],[22.0266,100.954163],[22.026011,100.955406],[22.02549,100.956146],[22.02519,100.956497],[22.02504,100.956673],[22.02302,100.958931],[22.02248,100.959717],[22.02177,100.960983],[22.021351,100.961884],[22.021231,100.962097],[22.020651,100.963203],[22.019051,100.965302],[22.01857,100.965767],[22.017229,100.967117],[22.016939,100.967453],[22.01679,100.967613],[22.016109,100.968483],[22.01552,100.96946],[22.015409,100.969658],[22.015011,100.970444],[22.01482,100.970802],[22.014271,100.971931],[22.014071,100.972328],[22.013821,100.972816],[22.013639,100.97316],[22.01335,100.973732],[22.01317,100.974136],[22.01281,100.974823],[22.011311,100.976913],[22.011169,100.977074],[22.010731,100.977562],[22.01045,100.97789],[22.010059,100.978409],[22.00983,100.978767],[22.00942,100.979523],[22.00905,100.980263],[22.0086,100.981056],[22.008369,100.981331],[22.00786,100.981812],[22.007601,100.982002],[22.007469,100.982094],[22.00699,100.982437],[22.006559,100.982841],[22.00647,100.982948],[22.005951,100.983681],[22.005751,100.9841],[22.005449,100.985153],[22.005381,100.985611],[22.00523,100.986397],[22.0049,100.987267],[22.00474,100.987556],[22.00428,100.98819],[22.00396,100.988487],[22.003151,100.989082],[22.00243,100.989517],[22.001011,100.990921],[22.000919,100.991051],[22.000191,100.992073],[21.99983,100.992554],[21.99975,100.992683],[21.999149,100.993523],[21.99906,100.993629],[21.998871,100.993843],[21.99811,100.994507],[21.99707,100.995071],[21.99651,100.995293],[21.995951,100.995506],[21.995399,100.995743],[21.99486,100.995956],[21.99436,100.996239],[21.992809,100.99765],[21.992701,100.99781],[21.99198,100.998779],[21.99185,100.998947],[21.99131,100.999641],[21.99102,100.999992],[21.990459,101.000717],[21.9888,101.00293],[21.98838,101.003487],[21.98786,101.003998],[21.987049,101.004883],[21.98671,101.005211],[21.986349,101.005539],[21.986179,101.005699],[21.98562,101.006172],[21.98525,101.006493],[21.984249,101.007271],[21.983841,101.007568],[21.98321,101.008003],[21.98258,101.008438],[21.98197,101.008873],[21.98177,101.009018],[21.98078,101.009811],[21.97967,101.010818],[21.976709,101.013283],[21.97607,101.013962],[21.975679,101.014252],[21.97489,101.014801],[21.97427,101.015198],[21.973869,101.015503],[21.973471,101.015793],[21.973101,101.016113],[21.97262,101.016701],[21.97249,101.016899],[21.97216,101.017563],[21.972071,101.017776],[21.971621,101.01918],[21.97146,101.019653],[21.971149,101.020576],[21.970921,101.021278],[21.97084,101.021507],[21.9706,101.022209],[21.97053,101.022453],[21.970289,101.02314],[21.970209,101.023376],[21.96982,101.024544],[21.969509,101.025467],[21.96785,101.026176],[21.967251,101.026573],[21.96661,101.026871],[21.966169,101.027061],[21.965309,101.027412],[21.96509,101.027496],[21.96422,101.027847],[21.964001,101.027946],[21.96335,101.028214],[21.9627,101.028503],[21.96207,101.028816],[21.961081,101.02951],[21.959749,101.030479],[21.95956,101.030617],[21.95937,101.031616],[21.95859,101.033081],[21.95812,101.034248],[21.95792,101.034698],[21.957279,101.035843],[21.956381,101.037048],[21.95595,101.037666],[21.95558,101.038307],[21.955469,101.038544],[21.955259,101.038979],[21.95509,101.039436],[21.954941,101.039902],[21.954729,101.040619],[21.95439,101.041817],[21.95418,101.042542],[21.95396,101.043243],[21.953409,101.044312],[21.953291,101.04451],[21.95188,101.046097],[21.95171,101.046272],[21.950581,101.047478],[21.95042,101.047653],[21.94935,101.048798],[21.94685,101.05146],[21.946529,101.051804],[21.94636,101.051964],[21.94483,101.053726],[21.94429,101.054443],[21.943529,101.055481],[21.943279,101.055817],[21.942329,101.057137],[21.942209,101.057312],[21.941851,101.0578],[21.941481,101.058273],[21.94095,101.058861],[21.940399,101.059402],[21.940269,101.05954],[21.939581,101.060219],[21.93902,101.060753],[21.93784,101.061127],[21.936701,101.061577],[21.93651,101.061684],[21.935301,101.062218],[21.933491,101.063057],[21.933109,101.063278],[21.930639,101.065109],[21.929501,101.066231],[21.92934,101.066391],[21.92901,101.066727],[21.92783,101.067917],[21.926649,101.069092],[21.925051,101.07045],[21.923241,101.071693],[21.921989,101.072533],[21.92062,101.073593],[21.92009,101.074112],[21.919189,101.075279],[21.917681,101.078453],[21.91642,101.081444],[21.916321,101.081673],[21.91571,101.083008],[21.915051,101.084587],[21.914379,101.087097],[21.914391,101.08876],[21.91444,101.089287],[21.914471,101.089722],[21.91452,101.090286],[21.914539,101.090439],[21.914579,101.091003],[21.914721,101.092216],[21.91493,101.095016],[21.91506,101.097748],[21.915051,101.103523],[21.914909,101.107643],[21.9149,101.107872],[21.914909,101.109596],[21.91526,101.113564],[21.91547,101.115044],[21.915751,101.11705],[21.915939,101.118347],[21.915991,101.118874],[21.916019,101.119141],[21.916071,101.119949],[21.91601,101.121269],[21.9158,101.122299],[21.915449,101.123268],[21.91511,101.123947],[21.914339,101.125504],[21.913811,101.127823],[21.91431,101.129951],[21.9146,101.13063],[21.91634,101.134247],[21.91654,101.134712],[21.91663,101.134933],[21.91839,101.139374],[21.918449,101.139603],[21.918631,101.140579],[21.91876,101.14238],[21.918859,101.14476],[21.9189,101.145813],[21.91894,101.146584],[21.918949,101.147102],[21.91897,101.147614],[21.91897,101.147873],[21.918949,101.148628],[21.91885,101.149399],[21.91869,101.150139],[21.918539,101.150879],[21.918449,101.151123],[21.91787,101.151672],[21.91713,101.152397],[21.914841,101.154327],[21.914499,101.154694],[21.914339,101.154877],[21.91366,101.155952],[21.913231,101.156891],[21.912741,101.158127],[21.91255,101.158638],[21.912081,101.159897],[21.911791,101.160652],[21.911501,101.1614],[21.911221,101.16214],[21.910749,101.163353],[21.910561,101.163811],[21.91011,101.164993],[21.909559,101.166382],[21.90947,101.166618],[21.90922,101.167343],[21.908661,101.170502],[21.908001,101.175049],[21.90786,101.175529],[21.907351,101.177269],[21.9072,101.177757],[21.90691,101.178757],[21.90649,101.180817],[21.906509,101.182121],[21.906549,101.182381],[21.90708,101.184097],[21.90826,101.186363],[21.90966,101.189034],[21.909769,101.189247],[21.911289,101.191254],[21.91147,101.191406],[21.912081,101.191833],[21.91445,101.193123],[21.91466,101.193253],[21.91526,101.193687],[21.916121,101.194618],[21.91687,101.195992],[21.91704,101.196457],[21.91711,101.196709],[21.91733,101.197769],[21.9175,101.198914],[21.917601,101.199783],[21.91777,101.200951],[21.91785,101.201508],[21.917971,101.202339],[21.918619,101.205002],[21.918949,101.20575],[21.92004,101.207611],[21.92045,101.208313],[21.920891,101.209213],[21.92137,101.210838],[21.92153,101.212631],[21.92156,101.213158],[21.921659,101.215263],[21.922371,101.219688],[21.922689,101.220886],[21.922979,101.221992],[21.92321,101.222763],[21.92333,101.223259],[21.923441,101.223701],[21.92392,101.226082],[21.92395,101.22644],[21.923969,101.226624],[21.923981,101.227013],[21.923981,101.227837],[21.923941,101.228706],[21.92392,101.228943],[21.9238,101.23037],[21.92371,101.231903],[21.923519,101.233963],[21.92304,101.239906],[21.92206,101.242363],[21.920389,101.244179],[21.920219,101.24437],[21.91906,101.246536],[21.918921,101.247253],[21.918831,101.249329],[21.918831,101.250221],[21.91881,101.250877],[21.91881,101.251099],[21.91873,101.252403],[21.918659,101.252838],[21.917749,101.255157],[21.91548,101.257736],[21.9149,101.258217],[21.9147,101.258377],[21.913401,101.259087],[21.912701,101.259354],[21.91222,101.259483],[21.910749,101.259811],[21.909769,101.26001],[21.90855,101.260277],[21.904751,101.261467],[21.904381,101.261726],[21.90402,101.262016],[21.902321,101.264214],[21.90143,101.265541],[21.90106,101.26609],[21.90019,101.267357],[21.89957,101.26825],[21.899309,101.26857],[21.898569,101.269302],[21.897261,101.269974],[21.89506,101.26992],[21.89484,101.269852],[21.89373,101.269432],[21.89328,101.269257],[21.89189,101.268799],[21.889059,101.268402],[21.88468,101.268173],[21.88446,101.26815],[21.880329,101.268433],[21.87883,101.269524],[21.87771,101.271393],[21.87731,101.273888],[21.87648,101.276787],[21.874929,101.278214],[21.8743,101.278458],[21.87303,101.278679],[21.872,101.278687],[21.871189,101.278717],[21.870171,101.278763],[21.868931,101.278839],[21.868509,101.278893],[21.86767,101.279099],[21.86746,101.279167],[21.86684,101.279404],[21.866631,101.279488],[21.864929,101.280167],[21.86426,101.280296],[21.86335,101.280312],[21.86289,101.280228],[21.86204,101.279892],[21.861469,101.279503],[21.860571,101.278488],[21.85997,101.277496],[21.85952,101.276718],[21.859289,101.276337],[21.85895,101.275749],[21.858391,101.274803],[21.85804,101.274223],[21.857809,101.273827],[21.857309,101.273087],[21.85689,101.272568],[21.856409,101.272102],[21.855659,101.271606],[21.855261,101.271423],[21.85461,101.271233],[21.854389,101.271179],[21.853291,101.271133],[21.852421,101.27121],[21.851561,101.271378],[21.851351,101.271423],[21.85051,101.271637],[21.849689,101.27195],[21.84889,101.272293],[21.8487,101.272392],[21.848129,101.272713],[21.847771,101.272957],[21.847429,101.273247],[21.84683,101.273911],[21.84646,101.274467],[21.846029,101.275543],[21.84589,101.276451],[21.845881,101.276939],[21.845921,101.277412],[21.84621,101.278847],[21.84626,101.279083],[21.846439,101.280022],[21.846581,101.280724],[21.84668,101.281174],[21.846979,101.282547],[21.847031,101.282784],[21.84713,101.283241],[21.847349,101.284653],[21.847349,101.285362],[21.8473,101.285828],[21.847019,101.286682],[21.84655,101.287537],[21.846081,101.288116],[21.84572,101.288437],[21.844709,101.288986],[21.844259,101.28907],[21.84314,101.2892],[21.842449,101.289177],[21.84178,101.289192],[21.840891,101.289299],[21.840441,101.289413],[21.83959,101.289742],[21.838961,101.290031],[21.838329,101.290314],[21.83728,101.290787],[21.83707,101.290894],[21.836439,101.291168],[21.83539,101.291641],[21.83518,101.291733],[21.837179,101.294617],[21.83725,101.295601],[21.837299,101.296066],[21.837339,101.296532],[21.83736,101.296997],[21.837311,101.297943],[21.83708,101.298828],[21.836729,101.299622],[21.836349,101.300133],[21.835699,101.300697],[21.83474,101.301224],[21.833679,101.301613],[21.832809,101.301918],[21.832371,101.302078],[21.83148,101.302383],[21.83082,101.302612],[21.829941,101.302917],[21.82951,101.303078],[21.82864,101.303383],[21.82777,101.303688],[21.827339,101.303841],[21.827129,101.303917],[21.82626,101.304222],[21.825411,101.304497],[21.82457,101.304688],[21.82436,101.304718],[21.823521,101.304771],[21.822651,101.304733],[21.822201,101.30468],[21.821079,101.304573],[21.82085,101.304527],[21.819771,101.304443],[21.81955,101.304428],[21.81811,101.304497],[21.81752,101.30468],[21.816549,101.305153],[21.81568,101.305801],[21.815121,101.306473],[21.81469,101.307243],[21.81444,101.307861],[21.81424,101.308502],[21.81418,101.308723],[21.81395,101.309578],[21.8139,101.309792],[21.81373,101.310448],[21.81356,101.311096],[21.81325,101.31218],[21.81319,101.312401],[21.81284,101.313881],[21.81263,101.31456],[21.8123,101.315376],[21.81167,101.316238],[21.81151,101.316383],[21.81098,101.31675],[21.810591,101.316917],[21.80978,101.317047],[21.808729,101.316933],[21.808331,101.316833],[21.80751,101.316612],[21.80731,101.316551],[21.806709,101.316383],[21.806101,101.316223],[21.8053,101.316002],[21.804489,101.315781],[21.804079,101.315666],[21.80308,101.315407],[21.802679,101.315308],[21.80188,101.315117],[21.801279,101.31498],[21.80068,101.314873],[21.79945,101.314781],[21.79841,101.314857],[21.798201,101.314888],[21.797569,101.315033],[21.795139,101.316109],[21.793831,101.316849],[21.792339,101.317703],[21.79178,101.318008],[21.789539,101.319283],[21.78265,101.342934],[21.78219,101.344131],[21.781931,101.34478],[21.781851,101.344978],[21.781731,101.345337],[21.781601,101.345802],[21.781321,101.347321],[21.781321,101.348717],[21.78134,101.348991],[21.78142,101.349808],[21.781549,101.350937],[21.78159,101.351227],[21.781731,101.352409],[21.78182,101.353279],[21.781839,101.353569],[21.781839,101.354141],[21.781771,101.35498],[21.78137,101.356293],[21.78125,101.356529],[21.780661,101.357407],[21.780331,101.357803],[21.780149,101.357986],[21.779631,101.35849],[21.77928,101.35881],[21.778761,101.359261],[21.778431,101.359573],[21.77767,101.360451],[21.77689,101.361717],[21.77639,101.362892],[21.776091,101.363632],[21.7756,101.364861],[21.77527,101.365578],[21.77515,101.365807],[21.774731,101.366463],[21.77421,101.367027],[21.77383,101.36734],[21.773621,101.36747],[21.77272,101.367897],[21.77083,101.368332],[21.770361,101.368439],[21.768511,101.368843],[21.76614,101.369759],[21.765829,101.370018],[21.765699,101.370163],[21.7647,101.371513],[21.764299,101.372093],[21.763041,101.37394],[21.76263,101.374557],[21.762211,101.375183],[21.76193,101.375603],[21.7612,101.375648],[21.75919,101.376251],[21.757509,101.376091],[21.7568,101.375893],[21.75511,101.375412],[21.754869,101.375359],[21.75362,101.375191],[21.752081,101.375168],[21.75131,101.375191],[21.750299,101.375198],[21.749281,101.375198],[21.748529,101.375168],[21.74777,101.37513],[21.74675,101.375053],[21.745741,101.374924],[21.745489,101.374878],[21.744989,101.374809],[21.74449,101.374741],[21.74399,101.37468],[21.74349,101.374619],[21.74324,101.374588],[21.74173,101.374428],[21.74098,101.374313],[21.73995,101.374153],[21.738661,101.373993],[21.73815,101.373947],[21.737619,101.373917],[21.736851,101.373947],[21.73633,101.374008],[21.735069,101.374283],[21.73406,101.37468],[21.73381,101.374786],[21.73307,101.375107],[21.73283,101.375229],[21.73185,101.375648],[21.7311,101.375923],[21.730591,101.376083],[21.7293,101.376266],[21.728769,101.376282],[21.727711,101.376221],[21.72718,101.37619],[21.72665,101.376152],[21.72613,101.376167],[21.725349,101.376213],[21.724819,101.376312],[21.72456,101.376373],[21.72378,101.376556],[21.723,101.376747],[21.72221,101.3769],[21.720619,101.37709],[21.71957,101.377083],[21.718781,101.377083],[21.718,101.37706],[21.71748,101.377029],[21.71697,101.377022],[21.715139,101.376961],[21.71434,101.37693],[21.713289,101.376907],[21.712761,101.376877],[21.712231,101.376862],[21.71196,101.376839],[21.71143,101.376793],[21.71064,101.376678],[21.710131,101.376579],[21.709869,101.376511],[21.708151,101.375938],[21.707439,101.375671],[21.70673,101.375397],[21.70648,101.375298],[21.705759,101.375038],[21.70479,101.374771],[21.70454,101.374733],[21.703791,101.374649],[21.703541,101.374641],[21.70084,101.374786],[21.699369,101.374687],[21.696461,101.374207],[21.69548,101.374046],[21.694759,101.373917],[21.69404,101.373779],[21.692101,101.373558],[21.68832,101.373627],[21.68716,101.373703],[21.68671,101.373718],[21.68626,101.373734],[21.68581,101.373756],[21.684259,101.373848],[21.68294,101.373917],[21.68227,101.373962],[21.68181,101.373993],[21.677691,101.374207],[21.6772,101.374252],[21.67627,101.37429],[21.67564,101.374329],[21.675261,101.374352],[21.674931,101.374367],[21.674431,101.374397],[21.674231,101.374382],[21.67403,101.374367],[21.673719,101.374367],[21.67363,101.374397],[21.67362,101.374397],[21.673281,101.374443],[21.672291,101.374519],[21.672041,101.374527],[21.669769,101.374817],[21.668909,101.374962],[21.66818,101.375053],[21.667589,101.375069],[21.66655,101.374992],[21.66567,101.37484],[21.66522,101.374733],[21.66452,101.374573],[21.66358,101.374336],[21.662609,101.374107],[21.660681,101.37365],[21.66044,101.373596],[21.65901,101.37326],[21.658279,101.373192],[21.65803,101.373199],[21.65778,101.37323],[21.65707,101.373413],[21.656429,101.373741],[21.65411,101.375397],[21.65262,101.376442],[21.651871,101.376961],[21.651131,101.37748],[21.649639,101.378517],[21.64854,101.379333],[21.648359,101.379478],[21.647209,101.38092],[21.64658,101.382469],[21.646481,101.382919],[21.646391,101.383598],[21.64636,101.384529],[21.64633,101.385681],[21.646311,101.386139],[21.646299,101.386581],[21.64628,101.387253],[21.64625,101.388138],[21.64624,101.38858],[21.646231,101.389023],[21.646259,101.389893],[21.646299,101.390961],[21.64636,101.391586],[21.646391,101.392227],[21.64641,101.392662],[21.646429,101.392883],[21.646481,101.394188],[21.646429,101.395058],[21.646339,101.395477],[21.646061,101.396561],[21.645821,101.3974],[21.64576,101.397614],[21.645651,101.398033],[21.64547,101.398666],[21.64535,101.399094],[21.64529,101.3993],[21.645109,101.399933],[21.64506,101.400139],[21.643129,101.399544],[21.64254,101.399788],[21.6415,101.400208],[21.640881,101.400436],[21.639811,101.400787],[21.639601,101.400864],[21.639179,101.400993],[21.638599,101.401253],[21.63805,101.401588],[21.637421,101.402153],[21.63689,101.402802],[21.636669,101.403191],[21.63641,101.40377],[21.63624,101.404167],[21.63607,101.404556],[21.63582,101.405159],[21.635731,101.405357],[21.635389,101.406151],[21.635139,101.406754],[21.6348,101.407539],[21.63463,101.407944],[21.63438,101.408531],[21.634041,101.409317],[21.633869,101.409721],[21.638929,101.41069],[21.6392,101.411049],[21.63945,101.411423],[21.639811,101.411957],[21.64032,101.412682],[21.64068,101.413223],[21.641041,101.41375],[21.641399,101.414284],[21.641649,101.414627],[21.641899,101.414993],[21.64266,101.416107],[21.643089,101.416939],[21.64325,101.417381],[21.643419,101.418068],[21.643499,101.418533],[21.6436,101.419006],[21.64378,101.41996],[21.64397,101.420914],[21.64411,101.421623],[21.644251,101.42234],[21.64114,101.423126],[21.640671,101.423347],[21.64003,101.423569],[21.63954,101.423698],[21.63903,101.423843],[21.6387,101.423912],[21.638,101.424049],[21.6373,101.424187],[21.63678,101.424309],[21.63625,101.424438],[21.634991,101.424744],[21.63446,101.424873],[21.63378,101.425079],[21.63345,101.425209],[21.632799,101.425537],[21.632339,101.42585],[21.631901,101.426201],[21.63147,101.426613],[21.631081,101.42704],[21.630831,101.427322],[21.630569,101.427612],[21.63015,101.427834],[21.62956,101.42836],[21.62854,101.429283],[21.628099,101.42968],[21.62752,101.430206],[21.62678,101.430862],[21.618349,101.454582],[21.618311,101.454857],[21.61771,101.456886],[21.616671,101.45816],[21.61628,101.458443],[21.615459,101.458977],[21.61483,101.459373],[21.613991,101.459908],[21.61311,101.46048],[21.61268,101.460747],[21.61224,101.460999],[21.61179,101.461197],[21.610849,101.461502],[21.6096,101.461723],[21.60911,101.4618],[21.60862,101.461884],[21.60788,101.462013],[21.606421,101.462273],[21.6057,101.462334],[21.60523,101.462303],[21.60499,101.46225],[21.604521,101.46212],[21.60429,101.462029],[21.603821,101.461838],[21.60358,101.461731],[21.6031,101.461517],[21.60235,101.461327],[21.601851,101.461273],[21.601089,101.461357],[21.599911,101.461807],[21.59948,101.462097],[21.598249,101.463051],[21.597851,101.463371],[21.597231,101.463837],[21.597031,101.463997],[21.596621,101.46431],[21.59622,101.464577],[21.595289,101.465027],[21.594259,101.465149],[21.593731,101.465141],[21.592951,101.46508],[21.59244,101.465012],[21.59144,101.464943],[21.59119,101.464928],[21.5907,101.464928],[21.59045,101.464943],[21.588699,101.465279],[21.58823,101.465553],[21.58778,101.465813],[21.586901,101.466393],[21.585779,101.467117],[21.5851,101.467484],[21.58486,101.46759],[21.58313,101.467796],[21.581961,101.467537],[21.58009,101.467323],[21.57918,101.467537],[21.57896,101.467628],[21.578751,101.467743],[21.57708,101.469528],[21.57564,101.471237],[21.573721,101.47213],[21.57185,101.47226],[21.571609,101.472267],[21.570921,101.47242],[21.5707,101.472504],[21.56967,101.473106],[21.56683,101.474373],[21.56468,101.474983],[21.564091,101.475304],[21.563181,101.47596],[21.562389,101.476761],[21.56115,101.478378],[21.561001,101.478561],[21.55938,101.480637],[21.559231,101.480827],[21.55831,101.481956],[21.5578,101.482483],[21.55722,101.48291],[21.556589,101.483231],[21.556141,101.483383],[21.554979,101.483566],[21.55451,101.483582],[21.554279,101.483589],[21.552191,101.48365],[21.551279,101.483681],[21.55061,101.483704],[21.548849,101.483757],[21.547979,101.483788],[21.54689,101.483841],[21.546671,101.483856],[21.546049,101.483971],[21.54414,101.484978],[21.54397,101.48513],[21.54348,101.485657],[21.542891,101.48642],[21.54274,101.48661],[21.542,101.487556],[21.541861,101.487747],[21.540859,101.489021],[21.54043,101.48954],[21.540291,101.489708],[21.539841,101.490173],[21.5392,101.4907],[21.53886,101.490921],[21.538691,101.49102],[21.538151,101.491287],[21.537781,101.491432],[21.537041,101.491669],[21.536671,101.491783],[21.5347,101.492409],[21.53422,101.492554],[21.533739,101.492706],[21.533421,101.492813],[21.53117,101.493507],[21.52005,101.497276],[21.51823,101.497932],[21.516729,101.498421],[21.516121,101.498749],[21.515369,101.499313],[21.51487,101.499863],[21.5142,101.500954],[21.51395,101.501404],[21.51309,101.502617],[21.512489,101.50341],[21.5119,101.504204],[21.51145,101.504799],[21.51115,101.505203],[21.509859,101.505867],[21.50952,101.506233],[21.508989,101.506767],[21.508471,101.507317],[21.508301,101.5075],[21.50812,101.507683],[21.50765,101.508568],[21.50758,101.508743],[21.50746,101.509407],[21.507481,101.510117],[21.507641,101.511124],[21.50786,101.512627],[21.507959,101.513397],[21.507151,101.514633],[21.50692,101.515289],[21.506491,101.516243],[21.5063,101.516731],[21.506149,101.517258],[21.506001,101.518044],[21.50596,101.518547],[21.50596,101.518784],[21.50597,101.518982],[21.505989,101.519333],[21.506029,101.519653],[21.506069,101.519997],[21.50596,101.522263],[21.50559,101.523567],[21.50539,101.524117],[21.505199,101.524643],[21.50493,101.525421],[21.504669,101.526169],[21.504499,101.526657],[21.50436,101.527168],[21.50421,101.527679],[21.50399,101.528442],[21.503691,101.529457],[21.50388,101.531113],[21.503839,101.531891],[21.50375,101.532417],[21.503469,101.53344],[21.503189,101.534187],[21.502741,101.535393],[21.502649,101.535629],[21.50247,101.536118],[21.50219,101.53685],[21.502001,101.537354],[21.50169,101.538101],[21.50135,101.539108],[21.50128,101.540138],[21.50182,101.541763],[21.502119,101.54213],[21.502279,101.542297],[21.502819,101.542686],[21.50433,101.543671],[21.505131,101.544182],[21.50856,101.546333],[21.50975,101.547249],[21.51009,101.547607],[21.51037,101.548019],[21.510691,101.548714],[21.51091,101.549713],[21.51087,101.550743],[21.510019,101.552643],[21.50943,101.553497],[21.507971,101.555656],[21.507099,101.556976],[21.50695,101.55722],[21.506689,101.557663],[21.50597,101.558723],[21.5054,101.55957],[21.50499,101.560188],[21.504021,101.561607],[21.50321,101.562866],[21.501711,101.565132],[21.500299,101.567253],[21.49931,101.568764],[21.498329,101.570236],[21.496941,101.572327],[21.49625,101.573372],[21.49472,101.575684],[21.491819,101.579353],[21.48933,101.58075],[21.48888,101.580887],[21.486139,101.581078],[21.48407,101.580566],[21.481621,101.579582],[21.481171,101.579399],[21.480721,101.579224],[21.47644,101.57753],[21.474199,101.57666],[21.47193,101.57579],[21.467951,101.574188],[21.46373,101.572517],[21.46306,101.572258],[21.46283,101.572166],[21.461531,101.571663],[21.45727,101.570129],[21.45557,101.56974],[21.450569,101.568871],[21.450121,101.568939],[21.449129,101.569443],[21.448389,101.570358],[21.447821,101.571732],[21.44714,101.573059],[21.447001,101.573257],[21.44635,101.573936],[21.44599,101.574226],[21.44524,101.574738],[21.44451,101.575249],[21.44367,101.576317],[21.443371,101.57695],[21.44311,101.577583],[21.44302,101.577797],[21.44268,101.578644],[21.442419,101.579277],[21.442169,101.579933],[21.442089,101.580139],[21.441589,101.581169],[21.441469,101.581367],[21.439939,101.583168],[21.43919,101.583748],[21.43844,101.584328],[21.43825,101.584473],[21.43788,101.584763],[21.437309,101.58519],[21.43712,101.585327],[21.43615,101.584167],[21.43479,101.583832],[21.4333,101.582962],[21.43273,101.582451],[21.432541,101.582253],[21.431669,101.581284],[21.430969,101.580513],[21.430269,101.57975],[21.43008,101.579567],[21.429501,101.579071],[21.428391,101.578491],[21.427919,101.578346],[21.427429,101.578247],[21.425461,101.578407],[21.424049,101.579048],[21.420389,101.581108],[21.419979,101.581337],[21.41571,101.583321],[21.41457,101.583511],[21.41366,101.583542],[21.41206,101.583427],[21.408621,101.583557],[21.40716,101.584686],[21.4049,101.588074],[21.403959,101.589478],[21.40303,101.590919],[21.402679,101.592781],[21.403009,101.593674],[21.40378,101.594841],[21.40402,101.595253],[21.40432,101.595886],[21.404461,101.596336],[21.404591,101.597549],[21.40451,101.598282],[21.40427,101.599258],[21.404169,101.599762],[21.40451,101.601669],[21.406111,101.604439],[21.40613,101.605873],[21.4058,101.606552],[21.404699,101.607536],[21.404261,101.607697],[21.403339,101.607971],[21.402929,101.608177],[21.402559,101.608459],[21.401739,101.610237],[21.401871,101.611267],[21.40221,101.612251],[21.402809,101.613823],[21.40299,101.614487],[21.40303,101.614967],[21.40284,101.616112],[21.401939,101.618828],[21.40192,101.619072],[21.40217,101.620598],[21.40247,101.621201],[21.40373,101.623901],[21.40465,101.626793],[21.40407,101.628906],[21.40324,101.63076],[21.403139,101.630989],[21.40155,101.634537],[21.40093,101.636017],[21.40012,101.637909],[21.399981,101.638763],[21.400181,101.639793],[21.400709,101.640717],[21.40102,101.641144],[21.401131,101.641296],[21.40196,101.642464],[21.402081,101.642639],[21.402981,101.643921],[21.404921,101.645638],[21.40534,101.645882],[21.406879,101.646599],[21.407089,101.646721],[21.40806,101.647476],[21.40929,101.649406],[21.40995,101.651413],[21.410191,101.652168],[21.412201,101.65831],[21.412661,101.659714],[21.413031,101.660873],[21.41342,101.661987],[21.413731,101.66288],[21.414021,101.663788],[21.4142,101.664726],[21.4142,101.665672],[21.414061,101.666344],[21.41399,101.66655],[21.41383,101.666992],[21.413389,101.66777],[21.41296,101.668297],[21.41247,101.668762],[21.411989,101.669197],[21.411329,101.669762],[21.410851,101.670174],[21.409861,101.671089],[21.409519,101.671387],[21.40654,101.674118],[21.40633,101.674179],[21.405331,101.675163],[21.40472,101.675667],[21.403,101.676773],[21.402309,101.677094],[21.402069,101.677193],[21.401581,101.677368],[21.40037,101.677727],[21.39938,101.678017],[21.397619,101.678543],[21.39686,101.678772],[21.39661,101.678848],[21.39558,101.679153],[21.393749,101.679703],[21.39349,101.679787],[21.39068,101.680634],[21.3897,101.680923],[21.388531,101.681267],[21.3883,101.681343],[21.38497,101.681824],[21.38472,101.681793],[21.38423,101.681709],[21.383301,101.681473],[21.38283,101.681328],[21.381849,101.681137],[21.3811,101.681099],[21.37989,101.681252],[21.374399,101.682503],[21.371639,101.683113],[21.37097,101.683243],[21.370119,101.683434],[21.369711,101.683517],[21.36779,101.683937],[21.366369,101.684273],[21.363689,101.684883],[21.358419,101.68605],[21.355499,101.686691],[21.35397,101.687172],[21.351471,101.688713],[21.34923,101.689758],[21.34716,101.689621],[21.346491,101.689499],[21.34627,101.689461],[21.3445,101.68914],[21.34428,101.68911],[21.34269,101.688812],[21.340111,101.68895],[21.33828,101.689888],[21.337641,101.690331],[21.334961,101.692108],[21.332781,101.692627],[21.3321,101.692612],[21.331181,101.692581],[21.330429,101.692551],[21.330179,101.692528],[21.326281,101.692917],[21.324341,101.693268],[21.324089,101.693314],[21.32147,101.693352],[21.31986,101.693321],[21.317921,101.694153],[21.317711,101.69426],[21.31728,101.694427],[21.316139,101.69445],[21.314119,101.693893],[21.3139,101.693832],[21.31188,101.693459],[21.30991,101.693947],[21.308069,101.69548],[21.30736,101.696136],[21.306259,101.697166],[21.30348,101.699059],[21.30176,101.699493],[21.29907,101.699257],[21.293909,101.698067],[21.292749,101.697807],[21.289789,101.697159],[21.289129,101.697006],[21.28742,101.696632],[21.286369,101.696388],[21.28471,101.696053],[21.28323,101.696136],[21.281811,101.696793],[21.28023,101.698433],[21.27973,101.699074],[21.279221,101.699722],[21.27784,101.701424],[21.27766,101.70163],[21.276819,101.70269],[21.276661,101.702904],[21.275181,101.70472],[21.27319,101.706131],[21.271839,101.706734],[21.271469,101.707047],[21.270941,101.70787],[21.26981,101.711739],[21.26972,101.711983],[21.2689,101.713188],[21.2665,101.715477],[21.26597,101.715958],[21.265369,101.716316],[21.26404,101.716522],[21.263161,101.716293],[21.260771,101.714844],[21.25922,101.713852],[21.257099,101.712517],[21.25647,101.712128],[21.256081,101.711884],[21.255791,101.711723],[21.25561,101.711571],[21.25526,101.711327],[21.25515,101.711273],[21.2542,101.710693],[21.253139,101.710037],[21.253019,101.709969],[21.252831,101.709846],[21.251011,101.708702],[21.250351,101.708321],[21.249781,101.70813],[21.24929,101.707947],[21.24873,101.70787],[21.24799,101.707802],[21.246639,101.707718],[21.24645,101.707703],[21.24424,101.707573],[21.24391,101.707512],[21.24243,101.707199],[21.23983,101.706123],[21.237459,101.705139],[21.232361,101.703072],[21.232071,101.702988],[21.229389,101.702309],[21.229059,101.702217],[21.22883,101.702263],[21.22781,101.702744],[21.227631,101.702858],[21.226589,101.703712],[21.22473,101.704857],[21.22368,101.705063],[21.221531,101.704613],[21.22003,101.704063],[21.217899,101.703362],[21.21722,101.703201],[21.21579,101.703049],[21.21278,101.70285],[21.209311,101.702278],[21.207649,101.701683],[21.20392,101.700203],[21.202351,101.699127],[21.200911,101.696533],[21.1991,101.693657],[21.19673,101.692017],[21.194309,101.690483],[21.19376,101.690102],[21.193081,101.689651],[21.1917,101.688637],[21.190769,101.687233],[21.19038,101.68663],[21.190069,101.686272],[21.189859,101.686096],[21.18948,101.685799],[21.188499,101.68512],[21.18718,101.684097],[21.18701,101.683723],[21.186689,101.683517],[21.186279,101.683693],[21.18615,101.683632],[21.185841,101.683296],[21.18573,101.682793],[21.18601,101.681519],[21.18609,101.680992],[21.18647,101.680603],[21.186871,101.680237],[21.187,101.679932],[21.18693,101.678787],[21.18714,101.678131],[21.187559,101.677711],[21.18775,101.677139],[21.18775,101.676033],[21.187361,101.675491],[21.18634,101.67466],[21.186001,101.674156],[21.185749,101.673912],[21.18507,101.673508],[21.184771,101.673378],[21.184389,101.673187],[21.18375,101.672913],[21.182159,101.67215],[21.180889,101.671158],[21.179991,101.670067],[21.17861,101.669197],[21.17667,101.668991],[21.17417,101.668457],[21.173349,101.668541],[21.17028,101.669739],[21.16925,101.670959],[21.1682,101.672523],[21.16785,101.672813],[21.166189,101.673027],[21.16534,101.672256],[21.16515,101.671768],[21.16436,101.671318],[21.164221,101.671341],[21.162239,101.671417],[21.15913,101.672249],[21.158449,101.672173],[21.157101,101.671822],[21.156509,101.671494],[21.15626,101.671288],[21.155239,101.671181],[21.15383,101.6716],[21.153191,101.672234],[21.15299,101.67263],[21.152439,101.67305],[21.151421,101.673592],[21.150631,101.67337],[21.15029,101.672989],[21.15037,101.672081],[21.150669,101.671257],[21.150391,101.670158],[21.15033,101.670067],[21.14954,101.669273],[21.14859,101.668411],[21.14756,101.668449],[21.14698,101.668678],[21.145809,101.668266],[21.14555,101.667824],[21.14522,101.666992],[21.14439,101.666809],[21.14426,101.666893],[21.14325,101.666779],[21.141621,101.665131],[21.140881,101.664749],[21.139521,101.664429],[21.138849,101.664528],[21.13736,101.665062],[21.1367,101.665047],[21.133381,101.664391],[21.13324,101.66433],[21.132509,101.663429],[21.13204,101.662064],[21.13155,101.661484],[21.12817,101.657883],[21.12644,101.656097],[21.124781,101.654663],[21.123831,101.654449],[21.122801,101.654503],[21.121611,101.653748],[21.12063,101.65239],[21.119909,101.652184],[21.119591,101.652199],[21.118719,101.651787],[21.116011,101.64978],[21.114189,101.648827],[21.11272,101.647827],[21.11216,101.647171],[21.11198,101.646858],[21.110399,101.645432],[21.10799,101.643784],[21.1066,101.642517],[21.105141,101.642128],[21.10467,101.642021],[21.10405,101.641533],[21.10235,101.639343],[21.10084,101.638039],[21.10059,101.637817],[21.099581,101.637688],[21.098789,101.637917],[21.097651,101.637497],[21.09745,101.636864],[21.097389,101.636368],[21.0968,101.635696],[21.09623,101.635429],[21.095579,101.635422],[21.094721,101.635567],[21.093611,101.635033],[21.0937,101.634087],[21.093571,101.633324],[21.093201,101.633339],[21.09173,101.633362],[21.091311,101.634033],[21.091339,101.634407],[21.090811,101.634972],[21.090679,101.634956],[21.090429,101.634933],[21.09004,101.63427],[21.090031,101.633827],[21.08955,101.633232],[21.08824,101.63266],[21.08761,101.631882],[21.08699,101.629753],[21.086281,101.629288],[21.085979,101.629883],[21.085951,101.630363],[21.085409,101.631233],[21.08371,101.633232],[21.08346,101.633499],[21.08213,101.634163],[21.081591,101.634033],[21.08135,101.633919],[21.08079,101.63427],[21.08078,101.634552],[21.080839,101.635437],[21.08036,101.63588],[21.08003,101.635902],[21.07967,101.636673],[21.079691,101.638252],[21.079399,101.639343],[21.078541,101.639977],[21.077511,101.640182],[21.07645,101.639679],[21.076229,101.639442],[21.075251,101.639282],[21.0749,101.639587],[21.074249,101.640633],[21.0742,101.641724],[21.074301,101.642326],[21.073811,101.642967],[21.07135,101.643784],[21.06925,101.644409],[21.06815,101.643997],[21.06529,101.641731],[21.06399,101.64122],[21.063589,101.640419],[21.06303,101.6399],[21.062799,101.640053],[21.06217,101.640602],[21.061819,101.641602],[21.061831,101.641678],[21.061939,101.64257],[21.061939,101.643494],[21.06189,101.64373],[21.06179,101.644058],[21.061331,101.644096],[21.060949,101.644112],[21.060551,101.64415],[21.058901,101.644211],[21.05814,101.644142],[21.057421,101.643707],[21.0557,101.641777],[21.054649,101.639397],[21.054371,101.637123],[21.05472,101.636192],[21.05496,101.635902],[21.055201,101.634933],[21.05521,101.633789],[21.05562,101.633133],[21.056,101.632858],[21.056259,101.632507],[21.056231,101.631889],[21.056009,101.631126],[21.056009,101.63031],[21.055611,101.629601],[21.05542,101.629463],[21.055229,101.629066],[21.05549,101.628708],[21.055759,101.628609],[21.056959,101.628326],[21.05728,101.628036],[21.057211,101.627663],[21.05706,101.627472],[21.056881,101.627289],[21.056749,101.626503],[21.056881,101.625992],[21.056391,101.625427],[21.056259,101.62542],[21.055861,101.625381],[21.055531,101.624649],[21.05567,101.624107],[21.05521,101.623482],[21.055071,101.623451],[21.054529,101.623337],[21.053841,101.623421],[21.05345,101.623573],[21.05257,101.623238],[21.052481,101.623108],[21.05212,101.622597],[21.05159,101.622292],[21.05098,101.622124],[21.05027,101.621071],[21.04999,101.617973],[21.050171,101.617203],[21.0518,101.614067],[21.053329,101.611893],[21.05361,101.610832],[21.054119,101.609283],[21.05393,101.608627],[21.05303,101.606812],[21.05307,101.605743],[21.053431,101.604851],[21.05352,101.60408],[21.05327,101.602287],[21.05216,101.599876],[21.052219,101.598587],[21.052691,101.596916],[21.052589,101.596092],[21.051649,101.59243],[21.05213,101.591179],[21.054859,101.588188],[21.055071,101.586418],[21.055019,101.58622],[21.053671,101.583351],[21.053471,101.583023],[21.05316,101.581673],[21.05213,101.580551],[21.05195,101.580467],[21.048651,101.579102],[21.047661,101.577583],[21.047159,101.575447],[21.04752,101.574654],[21.047939,101.574249],[21.047831,101.573502],[21.04771,101.573387],[21.045891,101.571762],[21.04542,101.57132],[21.044941,101.570572],[21.043739,101.569817],[21.043119,101.569893],[21.040911,101.57045],[21.039921,101.570267],[21.03924,101.569939],[21.038771,101.569153],[21.038679,101.568779],[21.03887,101.567871],[21.03911,101.56739],[21.038759,101.56649],[21.03618,101.56472],[21.034491,101.564079],[21.03421,101.563957],[21.033649,101.563393],[21.033291,101.562782],[21.03249,101.562347],[21.03064,101.561867],[21.02869,101.56057],[21.027941,101.558998],[21.028431,101.557823],[21.02883,101.557358],[21.0292,101.556396],[21.02948,101.554993],[21.03001,101.553947],[21.030121,101.553062],[21.03009,101.55275],[21.02957,101.552261],[21.0285,101.551842],[21.02776,101.551918],[21.02747,101.551987],[21.02669,101.551743],[21.025669,101.550957],[21.02426,101.549026],[21.024151,101.548843],[21.02359,101.546783],[21.022961,101.546013],[21.022449,101.545723],[21.02191,101.545181],[21.02103,101.544579],[21.01865,101.544144],[21.01754,101.543259],[21.017481,101.543068],[21.01631,101.540771],[21.01417,101.53756],[21.01343,101.536171],[21.01198,101.534866],[21.01107,101.533409],[21.01088,101.532593],[21.01087,101.53167],[21.01041,101.530777],[21.00898,101.529266],[21.00782,101.526787],[21.00745,101.525253],[21.00626,101.522858],[21.00585,101.522148],[21.005159,101.521637],[21.0049,101.521523],[21.004641,101.520668],[21.00502,101.518944],[21.00486,101.518288],[21.004499,101.517731],[21.003889,101.517303],[21.003651,101.517212],[21.003281,101.516609],[21.00312,101.515732],[21.002621,101.515251],[21.001989,101.514832],[21.00145,101.514183],[21.000019,101.513237],[20.99921,101.513107],[20.99798,101.513229],[20.997299,101.513573],[20.995371,101.514557],[20.99423,101.514267],[20.99411,101.514107],[20.993151,101.51326],[20.99276,101.512451],[20.99169,101.509193],[20.99136,101.508392],[20.99144,101.507004],[20.99139,101.506577],[20.99114,101.505531],[20.990749,101.504936],[20.990391,101.50457],[20.9893,101.504051],[20.988171,101.503937],[20.987301,101.503036],[20.986629,101.502098],[20.986059,101.501862],[20.98563,101.501823],[20.985189,101.501129],[20.98535,101.5009],[20.98554,101.500671],[20.985479,101.499657],[20.985201,101.499428],[20.984381,101.498848],[20.9841,101.4981],[20.98411,101.497597],[20.983919,101.496964],[20.982651,101.493713],[20.982571,101.49353],[20.98209,101.492943],[20.98139,101.492027],[20.98027,101.491493],[20.979931,101.491463],[20.97905,101.490608],[20.978979,101.490211],[20.97872,101.486893],[20.97826,101.484161],[20.977501,101.481491],[20.977671,101.480797],[20.97838,101.479523],[20.978571,101.478737],[20.97826,101.477966],[20.97625,101.475441],[20.975889,101.474953],[20.97571,101.474243],[20.97571,101.473801],[20.975189,101.473083],[20.974569,101.472763],[20.971781,101.472397],[20.971319,101.472343],[20.97085,101.471573],[20.9708,101.470627],[20.970989,101.469879],[20.97171,101.468323],[20.9718,101.46756],[20.97176,101.466614],[20.97085,101.464706],[20.96999,101.464142],[20.96937,101.463982],[20.968889,101.463127],[20.969021,101.462761],[20.96921,101.462219],[20.969311,101.459877],[20.96875,101.458588],[20.96818,101.458328],[20.967899,101.458344],[20.96715,101.457619],[20.966829,101.456596],[20.96603,101.456177],[20.964979,101.456093],[20.964399,101.455673],[20.96394,101.455139],[20.96306,101.454193],[20.96171,101.452744],[20.96068,101.451591],[20.956091,101.446877],[20.95311,101.443123],[20.94928,101.435982],[20.947901,101.432739],[20.947109,101.430893],[20.944679,101.423531],[20.94459,101.423302],[20.94437,101.422813],[20.94393,101.422318],[20.94335,101.421989],[20.940571,101.421303],[20.937679,101.420601],[20.93697,101.42028],[20.934799,101.41803],[20.934759,101.417976],[20.933929,101.41713],[20.931311,101.414238],[20.930401,101.411774],[20.928591,101.406677],[20.92713,101.402611],[20.926319,101.400558],[20.9261,101.400032],[20.92557,101.399147],[20.924749,101.397987],[20.92362,101.397202],[20.92201,101.396652],[20.919701,101.396263],[20.916941,101.396027],[20.91567,101.396103],[20.91518,101.396057],[20.91395,101.395683],[20.912701,101.395607],[20.912001,101.395248],[20.91086,101.393898],[20.91008,101.392738],[20.90941,101.39241],[20.908859,101.392418],[20.908319,101.392258],[20.907619,101.391838],[20.90641,101.391373],[20.90514,101.390343],[20.90481,101.390007],[20.90452,101.389236],[20.904369,101.387253],[20.90424,101.386543],[20.90419,101.385681],[20.904249,101.385193],[20.903959,101.384361],[20.902889,101.383614],[20.902361,101.382896],[20.901699,101.381378],[20.901421,101.38102],[20.90081,101.380478],[20.900419,101.379936],[20.89982,101.378464],[20.89942,101.377693],[20.89913,101.376877],[20.898861,101.375717],[20.89913,101.374657],[20.899389,101.373901],[20.899771,101.373192],[20.900129,101.372658],[20.900181,101.371742],[20.89929,101.370667],[20.899111,101.369743],[20.89933,101.36908],[20.89933,101.368187],[20.89893,101.366798],[20.898621,101.365959],[20.897791,101.364807],[20.89596,101.363327],[20.89566,101.363159],[20.894501,101.362846],[20.893221,101.362282],[20.89233,101.362289],[20.891911,101.362503],[20.89109,101.362419],[20.890869,101.361862],[20.890989,101.361412],[20.891991,101.359993],[20.892191,101.359543],[20.892321,101.359039],[20.892361,101.357803],[20.891979,101.356918],[20.89134,101.356422],[20.89098,101.355713],[20.89085,101.354797],[20.890739,101.354477],[20.890169,101.353882],[20.88908,101.35334],[20.887831,101.352203],[20.887449,101.351532],[20.887051,101.350227],[20.886459,101.347748],[20.88616,101.345627],[20.885771,101.344566],[20.885139,101.343468],[20.88505,101.342644],[20.885099,101.342339],[20.884859,101.341637],[20.88353,101.339973],[20.882351,101.338768],[20.880859,101.3377],[20.87953,101.335678],[20.878099,101.334183],[20.87734,101.333168],[20.876961,101.332138],[20.87657,101.331589],[20.87565,101.330719],[20.875271,101.329689],[20.875191,101.328537],[20.874901,101.327873],[20.87468,101.327583],[20.874399,101.326897],[20.87429,101.325577],[20.87417,101.325081],[20.87361,101.324387],[20.87336,101.323647],[20.87372,101.323196],[20.8745,101.322937],[20.87533,101.322411],[20.876341,101.321587],[20.87653,101.320892],[20.876419,101.320633],[20.87587,101.319832],[20.8755,101.319199],[20.874941,101.31871],[20.8743,101.318604],[20.87339,101.318153],[20.87311,101.317917],[20.872601,101.317039],[20.87215,101.316429],[20.87092,101.316002],[20.87092,101.315643],[20.87122,101.314941],[20.871281,101.314583],[20.871241,101.314484],[20.87109,101.314323],[20.870701,101.314133],[20.87014,101.313477],[20.869671,101.313187],[20.869301,101.312759],[20.86846,101.312218],[20.86771,101.311951],[20.8671,101.311447],[20.86688,101.311409],[20.866301,101.3116],[20.86607,101.311523],[20.865959,101.311409],[20.865801,101.310837],[20.86561,101.31041],[20.865049,101.309357],[20.86484,101.309067],[20.86454,101.308907],[20.86376,101.309387],[20.86334,101.309227],[20.86293,101.308487],[20.862379,101.308144],[20.86187,101.308067],[20.86134,101.307678],[20.86109,101.307343],[20.86058,101.307114],[20.859579,101.306999],[20.859261,101.307022],[20.858521,101.306557],[20.85837,101.306557],[20.85812,101.306839],[20.857849,101.307281],[20.85762,101.307373],[20.85746,101.307266],[20.85737,101.306808],[20.85758,101.304932],[20.85774,101.304482],[20.857809,101.303909],[20.85762,101.303467],[20.857031,101.302849],[20.85684,101.302551],[20.856741,101.301697],[20.85685,101.301376],[20.857031,101.301117],[20.857401,101.300873],[20.8578,101.300407],[20.857809,101.299911],[20.85775,101.299751],[20.85659,101.298553],[20.85626,101.298347],[20.85582,101.297791],[20.8554,101.297028],[20.8552,101.296783],[20.85458,101.296593],[20.854441,101.296631],[20.85359,101.296577],[20.85334,101.296173],[20.853201,101.295738],[20.852631,101.295326],[20.85215,101.295288],[20.85099,101.294746],[20.849661,101.293571],[20.84874,101.292473],[20.84767,101.291672],[20.845869,101.291008],[20.845289,101.290916],[20.84473,101.290749],[20.8437,101.289886],[20.84339,101.289398],[20.842211,101.288437],[20.842039,101.288353],[20.84111,101.288147],[20.839911,101.287758],[20.839411,101.287682],[20.837811,101.286537],[20.836929,101.2864],[20.83576,101.286842],[20.83511,101.28685],[20.834379,101.286758],[20.83363,101.286812],[20.83313,101.286972],[20.832451,101.28698],[20.83209,101.286903],[20.83136,101.286858],[20.8307,101.286659],[20.82987,101.286171],[20.827419,101.284218],[20.82687,101.283821],[20.826639,101.2836],[20.826469,101.282822],[20.827129,101.280853],[20.827259,101.280098],[20.827181,101.279358],[20.827009,101.278397],[20.82641,101.276901],[20.82559,101.276009],[20.823879,101.273521],[20.823151,101.272568],[20.82159,101.269386],[20.82069,101.2687],[20.81974,101.268578],[20.81888,101.268013],[20.818501,101.26712],[20.818159,101.266602],[20.81764,101.265961],[20.8174,101.265213],[20.817101,101.263397],[20.81666,101.26268],[20.81521,101.260689],[20.81455,101.2593],[20.81427,101.257919],[20.813629,101.256981],[20.812321,101.256058],[20.81144,101.255783],[20.81056,101.255829],[20.80987,101.255524],[20.809561,101.254936],[20.809259,101.254532],[20.808781,101.25428],[20.80657,101.253616],[20.8057,101.252892],[20.805111,101.25174],[20.804529,101.251251],[20.804199,101.25116],[20.80361,101.250793],[20.803249,101.25042],[20.802361,101.250076],[20.80204,101.250076],[20.80131,101.249603],[20.801081,101.248833],[20.800421,101.248154],[20.799601,101.24794],[20.79903,101.247581],[20.79871,101.247009],[20.79841,101.246651],[20.798059,101.246368],[20.797729,101.245918],[20.79738,101.245552],[20.796869,101.245453],[20.796061,101.245071],[20.795691,101.244034],[20.79571,101.24337],[20.79591,101.242928],[20.79604,101.242363],[20.79582,101.242012],[20.79541,101.241859],[20.79455,101.241829],[20.79377,101.241577],[20.79318,101.241508],[20.792471,101.241676],[20.791559,101.241417],[20.79118,101.241043],[20.79059,101.240044],[20.79001,101.239571],[20.78912,101.239166],[20.788349,101.238457],[20.78746,101.23822],[20.787109,101.238312],[20.7859,101.238449],[20.78516,101.238167],[20.784611,101.237091],[20.78401,101.236816],[20.783689,101.236809],[20.78311,101.236382],[20.782841,101.235779],[20.78194,101.234947],[20.78125,101.234741],[20.780479,101.234016],[20.780319,101.233017],[20.7799,101.232117],[20.77844,101.230377],[20.778259,101.229301],[20.778521,101.22863],[20.778641,101.228104],[20.77836,101.227226],[20.77755,101.225906],[20.77619,101.222702],[20.775499,101.221542],[20.775351,101.220627],[20.775431,101.219948],[20.775299,101.21936],[20.774981,101.219063],[20.774429,101.218277],[20.77429,101.217552],[20.774059,101.21685],[20.77401,101.21595],[20.7736,101.214958],[20.77289,101.214157],[20.772711,101.213707],[20.77206,101.213028],[20.77157,101.212852],[20.77067,101.212082],[20.769079,101.211403],[20.76856,101.210831],[20.7684,101.210358],[20.76782,101.209717],[20.766581,101.208923],[20.766041,101.208389],[20.76475,101.206596],[20.7642,101.20533],[20.763359,101.204628],[20.76206,101.204338],[20.76133,101.203827],[20.760889,101.203232],[20.76026,101.202133],[20.75979,101.201714],[20.75909,101.201591],[20.758789,101.201103],[20.758659,101.200577],[20.758289,101.199913],[20.756969,101.198578],[20.75625,101.197777],[20.75568,101.197388],[20.754919,101.196739],[20.754379,101.196007],[20.753799,101.194603],[20.753019,101.193871],[20.752131,101.193619],[20.75107,101.192886],[20.75004,101.191017],[20.749201,101.190369],[20.74798,101.190247],[20.747049,101.189789],[20.746679,101.189377],[20.74592,101.18782],[20.744631,101.186089],[20.744249,101.185173],[20.743811,101.18457],[20.742531,101.18351],[20.74172,101.181969],[20.740219,101.179893],[20.739519,101.178558],[20.73938,101.178192],[20.73859,101.177406],[20.73609,101.17572],[20.735571,101.175194],[20.735161,101.174278],[20.734949,101.173271],[20.73436,101.171417],[20.73366,101.16983],[20.733391,101.168877],[20.73332,101.167488],[20.73292,101.166161],[20.732599,101.165382],[20.7318,101.164146],[20.730471,101.162468],[20.729731,101.161346],[20.728519,101.158813],[20.727631,101.157448],[20.727249,101.156227],[20.72673,101.155281],[20.72649,101.154922],[20.72521,101.153793],[20.72459,101.152687],[20.724159,101.150543],[20.723579,101.148811],[20.722309,101.14669],[20.721519,101.145203],[20.72089,101.142311],[20.72014,101.139526],[20.719931,101.138321],[20.71986,101.13755],[20.71986,101.135567],[20.71977,101.135147],[20.71953,101.134521],[20.719139,101.133034],[20.719021,101.131973],[20.71859,101.131027],[20.716841,101.128883],[20.715891,101.127151],[20.71361,101.123306],[20.713131,101.122078],[20.71228,101.120903],[20.71139,101.119331],[20.71073,101.116898],[20.71067,101.116501],[20.71023,101.115593],[20.70933,101.11425],[20.70879,101.112427],[20.70808,101.111382],[20.70723,101.10994],[20.70668,101.108551],[20.706181,101.106972],[20.70561,101.10614],[20.70388,101.104538],[20.70244,101.102783],[20.70118,101.09993],[20.70072,101.09906],[20.6994,101.097847],[20.69784,101.095589],[20.69607,101.093971],[20.69558,101.093132],[20.69499,101.0914],[20.69352,101.089119],[20.689859,101.084457],[20.68833,101.082237],[20.68816,101.081863],[20.68788,101.079727],[20.68796,101.077667],[20.688219,101.076057],[20.688129,101.075287],[20.68651,101.071457],[20.686211,101.070671],[20.68609,101.069862],[20.68597,101.068253],[20.685909,101.066559],[20.68614,101.0644],[20.686119,101.062973],[20.686029,101.062637],[20.685539,101.061783],[20.68491,101.061203],[20.68383,101.060493],[20.68259,101.059792],[20.68153,101.059624],[20.68082,101.059608],[20.67993,101.059982],[20.67845,101.061462],[20.67696,101.063042],[20.676001,101.063911],[20.67528,101.064041],[20.67485,101.063957],[20.674549,101.06398],[20.67375,101.06414],[20.672791,101.063828],[20.67153,101.063164],[20.67119,101.063087],[20.670349,101.06321],[20.66991,101.063431],[20.669331,101.063477],[20.66877,101.063271],[20.66786,101.063087],[20.667271,101.062637],[20.66712,101.06237],[20.666519,101.061897],[20.666201,101.061867],[20.664379,101.061996],[20.663731,101.062233],[20.6633,101.0625],[20.66238,101.0625],[20.662001,101.061981],[20.661909,101.061668],[20.661579,101.061172],[20.66132,101.061043],[20.660379,101.060806],[20.659349,101.060799],[20.658239,101.06041],[20.657511,101.060318],[20.656771,101.060303],[20.656139,101.060768],[20.65538,101.064034],[20.654011,101.066132],[20.653879,101.06678],[20.65395,101.067062],[20.653839,101.067787],[20.65346,101.068527],[20.65251,101.069458],[20.65188,101.069992],[20.65143,101.070847],[20.651449,101.073021],[20.65098,101.073807],[20.650551,101.073967],[20.647909,101.074493],[20.647511,101.07473],[20.647209,101.075127],[20.647039,101.076431],[20.64661,101.077271],[20.646231,101.07766],[20.645269,101.078148],[20.64476,101.078644],[20.644279,101.07943],[20.64299,101.080406],[20.64089,101.081017],[20.640221,101.081093],[20.639441,101.081612],[20.638889,101.082474],[20.63821,101.082863],[20.63739,101.082977],[20.63587,101.08374],[20.63508,101.083847],[20.633369,101.083763],[20.63271,101.083946],[20.632099,101.084244],[20.631451,101.084351],[20.629339,101.083977],[20.628559,101.083351],[20.628071,101.082176],[20.62792,101.081711],[20.627359,101.080887],[20.626101,101.079613],[20.62479,101.078598],[20.622829,101.077782],[20.62022,101.076309],[20.61867,101.07502],[20.617029,101.073868],[20.616859,101.073776],[20.615549,101.073547],[20.614929,101.073242],[20.61466,101.072731],[20.61433,101.071564],[20.61392,101.070877],[20.61338,101.069649],[20.612909,101.069092],[20.611031,101.068062],[20.6094,101.067436],[20.608749,101.067139],[20.607571,101.066399],[20.60638,101.065758],[20.605659,101.065567],[20.604589,101.065857],[20.60412,101.066147],[20.6033,101.0662],[20.602989,101.066032],[20.60177,101.064842],[20.601231,101.064377],[20.60047,101.063942],[20.59808,101.063057],[20.597231,101.062599],[20.596189,101.06221],[20.59548,101.061638],[20.59498,101.060852],[20.59428,101.060387],[20.59376,101.060303],[20.593109,101.059952],[20.591631,101.058723],[20.59132,101.058113],[20.590731,101.055931],[20.589729,101.053772],[20.58914,101.051903],[20.588221,101.050682],[20.586269,101.048897],[20.585609,101.048561],[20.584181,101.048302],[20.58263,101.048203],[20.58144,101.047684],[20.579809,101.047829],[20.578791,101.046982],[20.578609,101.046478],[20.578621,101.045578],[20.578329,101.045082],[20.57781,101.04483],[20.576771,101.043968],[20.575359,101.04261],[20.57526,101.042007],[20.57534,101.041771],[20.5756,101.041321],[20.57601,101.040932],[20.57641,101.04068],[20.57692,101.040031],[20.57786,101.038063],[20.57855,101.037613],[20.57943,101.037949],[20.579651,101.0382],[20.580391,101.039436],[20.58083,101.039673],[20.58103,101.039307],[20.58106,101.03894],[20.58148,101.0383],[20.581739,101.038254],[20.582291,101.037956],[20.58223,101.037659],[20.582001,101.03701],[20.582211,101.036247],[20.582529,101.036034],[20.58309,101.035378],[20.583151,101.034973],[20.58288,101.034416],[20.582211,101.03434],[20.581659,101.03476],[20.58082,101.034737],[20.58021,101.033791],[20.58004,101.033241],[20.58007,101.032333],[20.579781,101.031731],[20.577749,101.029953],[20.57756,101.029602],[20.577141,101.029343],[20.57696,101.029427],[20.57642,101.029877],[20.57612,101.02993],[20.575781,101.0299],[20.57556,101.029831],[20.57505,101.028816],[20.574751,101.028816],[20.57456,101.028908],[20.57383,101.028847],[20.572729,101.028511],[20.57069,101.028091],[20.5688,101.027817],[20.56827,101.027237],[20.568291,101.026779],[20.568439,101.026031],[20.56822,101.025513],[20.567841,101.025352],[20.567329,101.02552],[20.566971,101.025757],[20.56641,101.025757],[20.564489,101.024986],[20.564039,101.02459],[20.56389,101.024231],[20.563801,101.02388],[20.563551,101.023453],[20.563129,101.023178],[20.562531,101.023003],[20.562229,101.022728],[20.56225,101.02198],[20.56193,101.021362],[20.561541,101.021072],[20.56139,101.020493],[20.561449,101.020393],[20.56163,101.019592],[20.561159,101.019112],[20.560499,101.018959],[20.55938,101.019341],[20.558701,101.01915],[20.55862,101.019051],[20.55801,101.018784],[20.5574,101.01857],[20.55698,101.01754],[20.556499,101.01696],[20.55608,101.016747],[20.555599,101.016113],[20.55518,101.014618],[20.554899,101.013847],[20.55479,101.012917],[20.555,101.012421],[20.555349,101.011757],[20.555389,101.011497],[20.55579,101.011002],[20.55604,101.01088],[20.55661,101.01004],[20.556971,101.008743],[20.557289,101.008118],[20.557541,101.007347],[20.55731,101.006798],[20.55694,101.006767],[20.556709,101.006798],[20.55617,101.006683],[20.555639,101.006241],[20.55555,101.005898],[20.555599,101.005508],[20.555901,101.004578],[20.555861,101.00415],[20.555599,101.003983],[20.55525,101.003532],[20.555149,101.003014],[20.55477,101.002808],[20.554411,101.002403],[20.554399,101.002052],[20.55467,101.000832],[20.55497,101.000343],[20.555241,101.000122],[20.5555,100.999748],[20.555519,100.99926],[20.555429,100.996834],[20.554729,100.995697],[20.55479,100.995163],[20.55497,100.994797],[20.55489,100.994133],[20.55426,100.993599],[20.55397,100.993568],[20.55353,100.993156],[20.55308,100.992416],[20.552521,100.992332],[20.55209,100.992523],[20.551741,100.99231],[20.551531,100.991898],[20.55085,100.990868],[20.55032,100.990334],[20.549789,100.990082],[20.549299,100.989761],[20.54896,100.989288],[20.54842,100.988937],[20.547911,100.989052],[20.547541,100.989052],[20.54726,100.988808],[20.547199,100.988564],[20.547291,100.988129],[20.54792,100.987732],[20.548281,100.987221],[20.54855,100.986969],[20.54892,100.98597],[20.549141,100.985703],[20.54917,100.985458],[20.549219,100.984077],[20.548691,100.982964],[20.54842,100.981506],[20.548479,100.980377],[20.5481,100.978722],[20.54752,100.978149],[20.54685,100.977989],[20.54624,100.97744],[20.5457,100.976273],[20.5452,100.975906],[20.544399,100.975807],[20.54377,100.975662],[20.542471,100.975243],[20.54208,100.974892],[20.54159,100.974548],[20.539921,100.973717],[20.53916,100.973557],[20.538691,100.973351],[20.538179,100.973351],[20.5369,100.974091],[20.536739,100.974319],[20.536341,100.974571],[20.535971,100.974487],[20.535299,100.974068],[20.53492,100.973717],[20.534109,100.973328],[20.53293,100.973343],[20.531759,100.97274],[20.53125,100.972107],[20.53051,100.970657],[20.53039,100.969528],[20.5303,100.969162],[20.53018,100.968811],[20.5298,100.968231],[20.52944,100.967308],[20.529369,100.966843],[20.528959,100.966469],[20.528351,100.966072],[20.528219,100.965103],[20.527941,100.963737],[20.527439,100.963303],[20.526911,100.962936],[20.526951,100.962593],[20.526859,100.962067],[20.526461,100.961693],[20.526291,100.961227],[20.526251,100.960648],[20.525999,100.960114],[20.525721,100.959808],[20.525379,100.959648],[20.52515,100.95961],[20.52487,100.959358],[20.524879,100.959],[20.52479,100.958633],[20.524349,100.957977],[20.52438,100.957527],[20.52458,100.956757],[20.524401,100.956306],[20.523899,100.955887],[20.52313,100.955688],[20.521749,100.955513],[20.52129,100.955353],[20.520531,100.955307],[20.519991,100.955101],[20.51984,100.954948],[20.51955,100.954887],[20.51899,100.954674],[20.51889,100.954483],[20.518459,100.954193],[20.517891,100.954369],[20.51753,100.954918],[20.517229,100.955589],[20.516911,100.955673],[20.516781,100.955406],[20.51675,100.955177],[20.516399,100.95488],[20.516001,100.955002],[20.51556,100.954964],[20.515129,100.955009],[20.51465,100.954941],[20.514441,100.954613],[20.514151,100.954613],[20.513359,100.954933],[20.512911,100.955147],[20.512659,100.955383],[20.512381,100.955353],[20.512211,100.955177],[20.511669,100.954857],[20.510799,100.954773],[20.51033,100.95462],[20.509859,100.95462],[20.509159,100.954979],[20.508619,100.95491],[20.508591,100.954819],[20.50824,100.954483],[20.507959,100.954536],[20.50754,100.954376],[20.50742,100.953873],[20.5072,100.953484],[20.506941,100.953117],[20.506491,100.952904],[20.50629,100.95295],[20.50569,100.952927],[20.505541,100.952667],[20.505461,100.95208],[20.505541,100.951523],[20.50552,100.951027],[20.50514,100.95005],[20.504801,100.949707],[20.5047,100.949722],[20.504009,100.949532],[20.50391,100.949249],[20.50391,100.948463],[20.504061,100.94799],[20.50411,100.947418],[20.50355,100.946037],[20.503401,100.945763],[20.503059,100.945679],[20.502661,100.945686],[20.50226,100.945457],[20.501881,100.945129],[20.50157,100.945236],[20.501011,100.945084],[20.500731,100.944633],[20.500641,100.944183],[20.49922,100.941566],[20.499359,100.940933],[20.499519,100.94046],[20.499371,100.940048],[20.499241,100.93988],[20.498859,100.93972],[20.498159,100.939621],[20.4972,100.939293],[20.496759,100.939034],[20.495871,100.938087],[20.49571,100.937851],[20.49563,100.937263],[20.495661,100.93663],[20.495871,100.936119],[20.49629,100.935638],[20.496309,100.935127],[20.496031,100.934868],[20.49571,100.934036],[20.49589,100.933388],[20.495741,100.932892],[20.49498,100.932777],[20.49445,100.932426],[20.49431,100.931923],[20.494341,100.931267],[20.49431,100.931099],[20.494011,100.930893],[20.49321,100.930763],[20.492571,100.930313],[20.49185,100.928413],[20.491751,100.927803],[20.49176,100.927254],[20.49139,100.92659],[20.49098,100.926178],[20.490841,100.925911],[20.490829,100.925552],[20.491171,100.924057],[20.49114,100.923424],[20.49077,100.92276],[20.489731,100.921677],[20.48945,100.921021],[20.489349,100.920464],[20.489,100.919884],[20.4884,100.919647],[20.48777,100.919579],[20.487341,100.919411],[20.487,100.918861],[20.486811,100.918312],[20.485781,100.918266],[20.48568,100.918182],[20.485201,100.917587],[20.48465,100.916412],[20.484159,100.91584],[20.482771,100.914902],[20.4821,100.914253],[20.48135,100.912987],[20.480671,100.912178],[20.480471,100.911392],[20.480471,100.91098],[20.480089,100.910461],[20.479731,100.910301],[20.479071,100.90979],[20.47794,100.909103],[20.477369,100.908531],[20.476601,100.906883],[20.47571,100.90554],[20.474541,100.904732],[20.473881,100.904083],[20.472811,100.903282],[20.47242,100.903183],[20.472,100.903503],[20.471279,100.904449],[20.470301,100.904877],[20.469681,100.904831],[20.46957,100.904793],[20.46909,100.904823],[20.46899,100.9049],[20.468519,100.905083],[20.468321,100.904953],[20.467649,100.904373],[20.46719,100.904243],[20.466841,100.904373],[20.46665,100.904541],[20.4662,100.90477],[20.466,100.904678],[20.46546,100.903999],[20.465309,100.903397],[20.465151,100.902946],[20.464861,100.902763],[20.464399,100.902634],[20.464001,100.902367],[20.463751,100.901993],[20.463631,100.901466],[20.46343,100.901207],[20.463039,100.901466],[20.46282,100.90168],[20.462469,100.901588],[20.46212,100.900787],[20.46162,100.900551],[20.46133,100.900681],[20.46069,100.900719],[20.45845,100.899513],[20.457861,100.899582],[20.45747,100.899841],[20.456659,100.900284],[20.456261,100.900414],[20.455641,100.900398],[20.455151,100.900307],[20.455021,100.900269],[20.454729,100.900047],[20.45451,100.899963],[20.45429,100.899986],[20.45396,100.900497],[20.45385,100.901176],[20.453739,100.90139],[20.453609,100.901497],[20.452829,100.901802],[20.452379,100.902184],[20.452061,100.902313],[20.451651,100.902046],[20.451401,100.902023],[20.451059,100.902046],[20.450279,100.902458],[20.45005,100.902367],[20.449881,100.902206],[20.44982,100.902008],[20.4499,100.901688],[20.45009,100.90136],[20.45014,100.900932],[20.449961,100.900688],[20.449631,100.900429],[20.44912,100.900352],[20.448231,100.900642],[20.447929,100.900574],[20.44776,100.900124],[20.447121,100.899727],[20.446989,100.89901],[20.446911,100.898842],[20.44643,100.898232],[20.44639,100.897873],[20.446119,100.897621],[20.445709,100.897324],[20.44548,100.897087],[20.44516,100.896988],[20.44486,100.896957],[20.44445,100.896759],[20.443979,100.896339],[20.44319,100.89537],[20.44272,100.895103],[20.44248,100.894997],[20.44202,100.894943],[20.441351,100.894531],[20.441059,100.893669],[20.44046,100.892189],[20.43977,100.890793],[20.43943,100.890282],[20.438919,100.889763],[20.43788,100.889023],[20.43775,100.888542],[20.437759,100.888077],[20.43762,100.887833],[20.43714,100.887604],[20.43623,100.887047],[20.43495,100.886482],[20.43429,100.886368],[20.433781,100.886124],[20.433281,100.885551],[20.432489,100.884438],[20.43186,100.883698],[20.431721,100.883377],[20.43148,100.882393],[20.43161,100.881477],[20.431881,100.880569],[20.432011,100.879272],[20.432039,100.878532],[20.4324,100.877853],[20.43273,100.877502],[20.432911,100.877068],[20.43289,100.876793],[20.4321,100.875381],[20.43191,100.874802],[20.43194,100.87458],[20.432581,100.872719],[20.432581,100.872276],[20.43252,100.872063],[20.43162,100.870483],[20.431311,100.870262],[20.430981,100.870163],[20.43005,100.869987],[20.429199,100.869553],[20.428631,100.869164],[20.42746,100.868912],[20.42679,100.868423],[20.425791,100.865967],[20.425171,100.865547],[20.42388,100.865791],[20.42346,100.865646],[20.422541,100.865097],[20.42201,100.865021],[20.42149,100.86512],[20.421021,100.865021],[20.42034,100.864563],[20.41993,100.86441],[20.418819,100.864616],[20.4179,100.864693],[20.417549,100.864601],[20.417191,100.864342],[20.416691,100.863647],[20.41651,100.863052],[20.416361,100.862183],[20.41654,100.86145],[20.417061,100.861153],[20.417681,100.86113],[20.418091,100.860687],[20.41827,100.859192],[20.418051,100.858353],[20.41744,100.857529],[20.41696,100.856644],[20.41647,100.855377],[20.416161,100.854729],[20.41585,100.853371],[20.41531,100.852493],[20.414829,100.851921],[20.41411,100.851807],[20.413851,100.851913],[20.41334,100.851891],[20.41227,100.851173],[20.411011,100.850693],[20.41024,100.850456],[20.409161,100.850647],[20.4083,100.851181],[20.40797,100.851501],[20.407829,100.85173],[20.407471,100.851898],[20.40719,100.851692],[20.406799,100.851608],[20.406441,100.85186],[20.40589,100.851952],[20.405939,100.851692],[20.40617,100.851547],[20.406401,100.851303],[20.406481,100.850723],[20.4063,100.850304],[20.4062,100.849747],[20.406031,100.849426],[20.40575,100.84903],[20.405689,100.848663],[20.405701,100.848289],[20.4056,100.848053],[20.405199,100.847672],[20.404961,100.847282],[20.4039,100.844551],[20.40336,100.84343],[20.40317,100.84256],[20.402519,100.841721],[20.40229,100.841179],[20.402269,100.840698],[20.40242,100.840233],[20.40267,100.839737],[20.402769,100.838913],[20.40255,100.838364],[20.402349,100.838127],[20.401461,100.837593],[20.401011,100.837212],[20.40053,100.836159],[20.400261,100.835037],[20.39954,100.833992],[20.399269,100.83374],[20.398939,100.83287],[20.398991,100.832283],[20.39875,100.83165],[20.398331,100.83136],[20.3974,100.83091],[20.39673,100.83007],[20.396311,100.829826],[20.3958,100.829758],[20.395069,100.82946],[20.39382,100.828629],[20.39279,100.828011],[20.392191,100.827499],[20.391821,100.826736],[20.391741,100.825974],[20.39159,100.8255],[20.391411,100.825127],[20.38825,100.819542],[20.38793,100.819183],[20.387569,100.818626],[20.387489,100.818451],[20.387341,100.817963],[20.38714,100.816818],[20.386801,100.815941],[20.386749,100.815369],[20.38707,100.81385],[20.387199,100.813408],[20.387409,100.813042],[20.387449,100.81279],[20.38743,100.812622],[20.387119,100.812263],[20.386539,100.81205],[20.386061,100.811661],[20.385509,100.811409],[20.38489,100.811539],[20.3846,100.811523],[20.38423,100.811234],[20.383739,100.810417],[20.38348,100.810173],[20.38299,100.809921],[20.382561,100.809387],[20.38196,100.807297],[20.38113,100.805763],[20.380911,100.804916],[20.38061,100.804077],[20.38055,100.803352],[20.38064,100.802711],[20.3804,100.801903],[20.379869,100.801193],[20.3792,100.8004],[20.378929,100.799477],[20.378759,100.798393],[20.37841,100.797707],[20.377251,100.796219],[20.376989,100.795158],[20.376949,100.793961],[20.37689,100.793716],[20.375931,100.79213],[20.37571,100.791107],[20.375681,100.789543],[20.375401,100.788361],[20.374701,100.786774],[20.374371,100.785843],[20.372959,100.782387],[20.372789,100.781883],[20.3727,100.781303],[20.37212,100.780533],[20.37154,100.779892],[20.371189,100.779694],[20.37081,100.779663],[20.37048,100.7798],[20.36981,100.780281],[20.368521,100.780807],[20.368019,100.780952],[20.367649,100.780861],[20.367491,100.780609],[20.367319,100.780083],[20.367041,100.779579],[20.36451,100.776817],[20.364189,100.776627],[20.363819,100.776787],[20.363609,100.777168],[20.3634,100.777367],[20.362921,100.777603],[20.3626,100.777847],[20.36236,100.777977],[20.362089,100.77774],[20.362089,100.777489],[20.362631,100.776283],[20.36305,100.774963],[20.363199,100.7743],[20.36344,100.773872],[20.363831,100.773392],[20.363911,100.77298],[20.363729,100.772507],[20.363569,100.772301],[20.36347,100.771698],[20.363581,100.771027],[20.36319,100.770531],[20.36265,100.769958],[20.36215,100.769112],[20.36161,100.768837],[20.36137,100.768867],[20.36116,100.768822],[20.36088,100.768646],[20.360689,100.768097],[20.360809,100.767242],[20.360649,100.766617],[20.36017,100.765137],[20.36006,100.764549],[20.360109,100.763947],[20.360519,100.763573],[20.36062,100.763557],[20.36084,100.76339],[20.360979,100.762657],[20.361469,100.762306],[20.36165,100.762062],[20.361641,100.761658],[20.361,100.760948],[20.36079,100.760422],[20.36071,100.76001],[20.3608,100.759506],[20.360941,100.759323],[20.361179,100.759109],[20.36128,100.758728],[20.361179,100.758553],[20.36101,100.757988],[20.361059,100.757187],[20.361031,100.756912],[20.36109,100.756393],[20.360991,100.75592],[20.360701,100.755699],[20.360519,100.755363],[20.3605,100.755219],[20.360491,100.754608],[20.3606,100.754219],[20.36092,100.753792],[20.36104,100.752907],[20.360901,100.752434],[20.36084,100.750587],[20.36058,100.749977],[20.360451,100.749313],[20.3603,100.748833],[20.360041,100.748421],[20.359171,100.747307],[20.35895,100.746758],[20.358841,100.745842],[20.358509,100.744392],[20.358709,100.743652],[20.35891,100.743362],[20.35898,100.742538],[20.3589,100.742188],[20.35845,100.741653],[20.357941,100.741547],[20.35754,100.741432],[20.356831,100.740913],[20.356331,100.740807],[20.35593,100.740837],[20.35537,100.740517],[20.355209,100.740196],[20.354429,100.738113],[20.35376,100.736107],[20.353001,100.734627],[20.352421,100.733772],[20.352209,100.733543],[20.351999,100.733192],[20.351879,100.73275],[20.351839,100.732262],[20.351891,100.731537],[20.35169,100.730789],[20.351521,100.730362],[20.35149,100.729736],[20.35153,100.729507],[20.35186,100.729012],[20.353081,100.727547],[20.355471,100.725609],[20.355841,100.724991],[20.35594,100.724503],[20.35598,100.721733],[20.355761,100.721252],[20.354799,100.7202],[20.354271,100.719833],[20.35388,100.719398],[20.35384,100.718674],[20.35331,100.717789],[20.35264,100.717194],[20.35252,100.71669],[20.35284,100.715897],[20.35318,100.715599],[20.353701,100.715561],[20.35397,100.715111],[20.35391,100.714462],[20.354231,100.713768],[20.35479,100.713478],[20.35507,100.71312],[20.355579,100.712921],[20.35626,100.713051],[20.357,100.71286],[20.35745,100.712578],[20.358089,100.711929],[20.35874,100.711441],[20.35887,100.711403],[20.35931,100.711357],[20.35961,100.711456],[20.36083,100.712143],[20.36128,100.71212],[20.36129,100.711639],[20.36125,100.71096],[20.36128,100.710663],[20.361561,100.710159],[20.36167,100.709839],[20.361679,100.709351],[20.36149,100.708809],[20.3615,100.70829],[20.36186,100.707458],[20.361879,100.706818],[20.36179,100.705933],[20.361799,100.704933],[20.361879,100.704659],[20.36215,100.704163],[20.36253,100.703773],[20.36327,100.703308],[20.36344,100.70314],[20.363621,100.702858],[20.363569,100.7024],[20.363199,100.701279],[20.36265,100.700531],[20.362511,100.700272],[20.3627,100.698997],[20.363359,100.69799],[20.363741,100.696861],[20.364189,100.695938],[20.365049,100.694862],[20.36602,100.693771],[20.367121,100.692047],[20.367201,100.691879],[20.36727,100.690613],[20.36672,100.689194],[20.366659,100.688438],[20.366449,100.687683],[20.366079,100.687073],[20.365471,100.686607],[20.36454,100.686203],[20.364031,100.685371],[20.364111,100.684464],[20.36484,100.682533],[20.36484,100.682167],[20.364559,100.680946],[20.364309,100.680222],[20.364389,100.679558],[20.36446,100.679359],[20.364479,100.678917],[20.364429,100.678467],[20.364491,100.678032],[20.364611,100.677727],[20.364639,100.677147],[20.36442,100.676842],[20.36405,100.676666],[20.3631,100.676376],[20.36293,100.676277],[20.362341,100.675774],[20.36183,100.675163],[20.36145,100.674423],[20.361349,100.674026],[20.361389,100.672523],[20.36096,100.670631],[20.36039,100.66877],[20.36035,100.667908],[20.3601,100.667038],[20.359289,100.665192],[20.358999,100.664146],[20.35878,100.663017],[20.35887,100.662514],[20.358971,100.662277],[20.35936,100.661819],[20.359591,100.661163],[20.359501,100.660599],[20.359249,100.659683],[20.35911,100.657623],[20.358919,100.657127],[20.35828,100.656113],[20.358061,100.655678],[20.358009,100.654892],[20.3578,100.65432],[20.356991,100.653603],[20.356319,100.652359],[20.35602,100.651573],[20.355881,100.650909],[20.355579,100.648392],[20.355459,100.647987],[20.355089,100.647163],[20.355061,100.646568],[20.35541,100.646088],[20.3556,100.6455],[20.35557,100.644867],[20.355499,100.644569],[20.35507,100.643646],[20.35486,100.642967],[20.35471,100.642616],[20.354441,100.642212],[20.354469,100.641777],[20.355169,100.641617],[20.35548,100.641289],[20.355471,100.641037],[20.35537,100.640633],[20.35556,100.640099],[20.35564,100.639603],[20.35552,100.639214],[20.35527,100.638763],[20.35511,100.637718],[20.35515,100.637253],[20.355499,100.636238],[20.355551,100.635612],[20.35533,100.634941],[20.355101,100.634422],[20.355089,100.633911],[20.35535,100.633087],[20.355749,100.632797],[20.356001,100.632721],[20.35652,100.632339],[20.35663,100.632118],[20.357059,100.631897],[20.357349,100.632187],[20.35779,100.633057],[20.35833,100.633522],[20.359249,100.633881],[20.35972,100.633789],[20.3606,100.633453],[20.36109,100.63372],[20.36145,100.633698],[20.36198,100.633423],[20.36241,100.6325],[20.36285,100.631653],[20.36348,100.631264],[20.36356,100.630981],[20.36334,100.629883],[20.363649,100.629463],[20.363951,100.629417],[20.364241,100.629646],[20.36475,100.630089],[20.366261,100.630089],[20.36676,100.630257],[20.36722,100.630241],[20.367359,100.630096],[20.367661,100.62915],[20.36801,100.628601],[20.36879,100.628143],[20.369249,100.627342],[20.36919,100.6269],[20.368679,100.626373],[20.36817,100.624977],[20.36775,100.62352],[20.36764,100.622238],[20.36821,100.621208],[20.368561,100.620399],[20.36894,100.617233],[20.36931,100.615646],[20.369789,100.614014],[20.370131,100.613327],[20.37133,100.612297],[20.371679,100.611603],[20.37171,100.611191],[20.371889,100.610779],[20.37208,100.610573],[20.372219,100.610008],[20.371969,100.609047],[20.372511,100.607971],[20.374069,100.606483],[20.374969,100.605927],[20.376051,100.606056],[20.38036,100.602577],[20.38096,100.601677],[20.381519,100.600143],[20.38242,100.598907],[20.382891,100.596527],[20.383659,100.594353],[20.385059,100.59182],[20.38669,100.590233],[20.387131,100.587471],[20.387171,100.586563],[20.38603,100.583878],[20.380939,100.576797],[20.380171,100.575996],[20.36994,100.571991],[20.36841,100.570488],[20.3664,100.568863],[20.36528,100.567017],[20.364679,100.564987],[20.360701,100.554718],[20.358471,100.553917],[20.35429,100.54924],[20.35074,100.543022],[20.349541,100.541199],[20.348101,100.539291],[20.347191,100.538368],[20.342621,100.534698],[20.341419,100.533577],[20.340731,100.532547],[20.338511,100.530228],[20.337061,100.528732],[20.336281,100.528328],[20.33316,100.527657],[20.33197,100.526894],[20.33049,100.525299],[20.329559,100.524841],[20.32822,100.524857],[20.32708,100.524368],[20.32666,100.523468],[20.326349,100.5215],[20.325621,100.518784],[20.324909,100.518204],[20.324181,100.518158],[20.323641,100.518646],[20.321939,100.520767],[20.321239,100.521683],[20.320419,100.522118],[20.319901,100.522209],[20.318251,100.522148],[20.317381,100.522507],[20.316191,100.523354],[20.31547,100.523369],[20.31489,100.522926],[20.314529,100.52272],[20.313761,100.522552],[20.311609,100.520554],[20.310949,100.519928],[20.30965,100.518463],[20.30732,100.516968],[20.306,100.516747],[20.30275,100.517471],[20.300171,100.516441],[20.29899,100.51564],[20.29772,100.514442],[20.29727,100.512657],[20.297359,100.511261],[20.29715,100.510277],[20.296301,100.509506],[20.29497,100.509071],[20.29368,100.509033],[20.29195,100.506844],[20.2903,100.50457],[20.285521,100.502708],[20.283449,100.498299],[20.283251,100.496407],[20.280399,100.493027],[20.27717,100.491127],[20.27722,100.485771],[20.27581,100.479683],[20.274639,100.478523],[20.276501,100.473183],[20.27618,100.469414],[20.274891,100.467171],[20.273279,100.463387],[20.26845,100.46254],[20.26667,100.463539],[20.264891,100.464142],[20.263081,100.463921],[20.261669,100.464081],[20.26067,100.463333],[20.25362,100.451843],[20.251631,100.44397],[20.249929,100.44194],[20.24954,100.441002],[20.24959,100.439781],[20.249439,100.438667],[20.24979,100.437653],[20.250509,100.43676],[20.251249,100.436211],[20.251579,100.435791],[20.2516,100.434952],[20.25148,100.434082],[20.251381,100.433037],[20.25115,100.432297],[20.250879,100.431953],[20.25086,100.43148],[20.251381,100.430908],[20.25153,100.430489],[20.25128,100.430344],[20.25071,100.430359],[20.25016,100.430138],[20.25004,100.429741],[20.24996,100.428307],[20.25029,100.426987],[20.2505,100.426437],[20.25102,100.425758],[20.251671,100.425217],[20.252331,100.42408],[20.25292,100.42347],[20.25317,100.422729],[20.25334,100.422363],[20.254629,100.420921],[20.25526,100.420212],[20.25573,100.419533],[20.256161,100.418854],[20.2575,100.418037],[20.26022,100.416687],[20.26158,100.416077],[20.26276,100.415337],[20.263371,100.415131],[20.264509,100.415283],[20.26535,100.415337],[20.26556,100.415237],[20.26605,100.414757],[20.26685,100.414177],[20.267191,100.414017],[20.26763,100.413971],[20.26852,100.413879],[20.269581,100.413933],[20.270361,100.413727],[20.27227,100.413208],[20.27359,100.412773],[20.274349,100.412514],[20.27471,100.412376],[20.27606,100.411873],[20.276831,100.411552],[20.276409,100.410561],[20.276279,100.410294],[20.27615,100.409988],[20.27606,100.409683],[20.27594,100.409302],[20.275141,100.406822],[20.27511,100.40654],[20.275169,100.406197],[20.275311,100.406013],[20.275841,100.405251],[20.27589,100.404793],[20.275749,100.404839],[20.27441,100.405243],[20.27425,100.403351],[20.27413,100.402611],[20.27413,100.401932],[20.27434,100.401443],[20.274639,100.401062],[20.274851,100.400742],[20.274929,100.400337],[20.27487,100.399857],[20.27471,100.399567],[20.27459,100.399223],[20.274679,100.398827],[20.27494,100.398552],[20.27527,100.398163],[20.275551,100.397858],[20.275881,100.397522],[20.276079,100.397163],[20.276199,100.396843],[20.27632,100.396652],[20.27663,100.396622],[20.276911,100.396667],[20.27717,100.396584],[20.277411,100.396347],[20.27774,100.396149],[20.278099,100.39595],[20.27853,100.395973],[20.27895,100.396049],[20.279409,100.396217],[20.279831,100.396118],[20.280199,100.395813],[20.28047,100.3955],[20.280781,100.395203],[20.281601,100.394882],[20.282761,100.394447],[20.28368,100.394043],[20.28441,100.393593],[20.28524,100.393028],[20.28595,100.392647],[20.28698,100.391853],[20.28813,100.390877],[20.288759,100.390312],[20.289141,100.390083],[20.289619,100.389954],[20.289841,100.389992],[20.290581,100.390106],[20.291149,100.390129],[20.291599,100.390091],[20.29217,100.389877],[20.292589,100.389542],[20.292999,100.389359],[20.293369,100.389374],[20.293961,100.389542],[20.29447,100.389641],[20.294821,100.38961],[20.295271,100.38929],[20.295679,100.388977],[20.296261,100.388687],[20.296801,100.388641],[20.29731,100.388573],[20.29837,100.388542],[20.30019,100.388527],[20.30183,100.388512],[20.302429,100.388474],[20.30319,100.38829],[20.303801,100.388153],[20.3043,100.388008],[20.304621,100.387787],[20.304831,100.387444],[20.30509,100.386993],[20.30526,100.386574],[20.305479,100.386139],[20.30575,100.385818],[20.30608,100.385567],[20.306459,100.385223],[20.30687,100.38485],[20.307541,100.384323],[20.308189,100.383972],[20.30883,100.383537],[20.309139,100.383232],[20.309401,100.382782],[20.309681,100.382477],[20.31003,100.382294],[20.31057,100.382057],[20.31098,100.381866],[20.31156,100.381599],[20.31197,100.381378],[20.3123,100.381279],[20.312639,100.381027],[20.312889,100.380707],[20.313,100.380417],[20.313311,100.380112],[20.313641,100.379959],[20.31443,100.380043],[20.314791,100.380081],[20.315161,100.380127],[20.315491,100.379982],[20.31592,100.379784],[20.31637,100.379608],[20.31674,100.379433],[20.317169,100.379242],[20.3176,100.379158],[20.318119,100.379059],[20.31848,100.378937],[20.31889,100.37886],[20.319321,100.37886],[20.319889,100.37899],[20.3204,100.379143],[20.3209,100.379341],[20.321369,100.379547],[20.3218,100.379631],[20.322241,100.379623],[20.322611,100.379562],[20.32299,100.379532],[20.323339,100.379608],[20.323641,100.379692],[20.32411,100.379707],[20.32449,100.379662],[20.324921,100.379608],[20.32535,100.379517],[20.325729,100.379341],[20.326059,100.379143],[20.326441,100.379028],[20.32682,100.378967],[20.327221,100.37899],[20.32765,100.37886],[20.328011,100.378616],[20.32826,100.378326],[20.32863,100.377823],[20.328859,100.377487],[20.329109,100.377243],[20.32934,100.37706],[20.32963,100.376953],[20.329941,100.37664],[20.330299,100.376266],[20.330561,100.376167],[20.330811,100.376137],[20.331169,100.37616],[20.33145,100.376137],[20.331779,100.37606],[20.33213,100.375977],[20.332411,100.375961],[20.33263,100.376106],[20.332979,100.376221],[20.33329,100.376259],[20.33354,100.376228],[20.3339,100.37606],[20.3342,100.375877],[20.334539,100.375771],[20.334829,100.375763],[20.335251,100.37574],[20.335541,100.375763],[20.336029,100.375687],[20.33626,100.375671],[20.33643,100.375603],[20.3367,100.375473],[20.33703,100.37532],[20.337179,100.375252],[20.33742,100.375221],[20.337721,100.375191],[20.33802,100.375168],[20.338261,100.375038],[20.3384,100.37484],[20.33847,100.374542],[20.338579,100.374367],[20.33876,100.374283],[20.33905,100.374123],[20.339331,100.37397],[20.33963,100.373917],[20.33988,100.373917],[20.340219,100.37394],[20.34067,100.374039],[20.34096,100.374138],[20.34128,100.374191],[20.341631,100.374268],[20.34194,100.374222],[20.342171,100.374153],[20.34252,100.373993],[20.342779,100.373787],[20.342979,100.373619],[20.343149,100.37355],[20.343321,100.373573],[20.343439,100.373718],[20.343571,100.373993],[20.343639,100.374237],[20.343809,100.374451],[20.343969,100.374527],[20.3442,100.374588],[20.34449,100.374496],[20.34466,100.374367],[20.34499,100.374252],[20.345261,100.374168],[20.34564,100.373993],[20.3459,100.373756],[20.346201,100.373489],[20.346491,100.373222],[20.346901,100.372871],[20.34734,100.372421],[20.347401,100.372139],[20.347389,100.371803],[20.34742,100.371429],[20.34758,100.371147],[20.347691,100.370857],[20.347719,100.370499],[20.34775,100.370102],[20.34761,100.369751],[20.34746,100.369431],[20.347361,100.369164],[20.347429,100.368942],[20.34758,100.368767],[20.347799,100.368683],[20.348209,100.368736],[20.34856,100.368912],[20.34897,100.36911],[20.34931,100.369164],[20.349791,100.369118],[20.349871,100.368912],[20.34984,100.368584],[20.349751,100.368134],[20.34972,100.367828],[20.349819,100.367561],[20.35001,100.367409],[20.35022,100.367233],[20.3503,100.367058],[20.35021,100.366707],[20.34993,100.366386],[20.349001,100.365578],[20.34866,100.365158],[20.34852,100.364922],[20.34848,100.364563],[20.348579,100.364326],[20.34877,100.36412],[20.34897,100.363853],[20.348961,100.363533],[20.348801,100.363327],[20.348669,100.362938],[20.34873,100.362701],[20.348989,100.362427],[20.349251,100.362289],[20.34955,100.362137],[20.349911,100.362083],[20.35025,100.362068],[20.350719,100.361977],[20.351009,100.361893],[20.35121,100.361671],[20.35161,100.361397],[20.35191,100.361214],[20.35211,100.360901],[20.352079,100.360527],[20.35183,100.360138],[20.35158,100.359779],[20.35137,100.359253],[20.351299,100.358719],[20.351219,100.358002],[20.351151,100.357384],[20.35108,100.356857],[20.35088,100.356483],[20.3505,100.35611],[20.350109,100.355629],[20.349871,100.355217],[20.349701,100.354683],[20.349489,100.353912],[20.3491,100.352753],[20.348801,100.351936],[20.347561,100.350304],[20.346901,100.349297],[20.34656,100.348129],[20.34656,100.346901],[20.34639,100.345123],[20.34589,100.342987],[20.34516,100.339973],[20.344601,100.337914],[20.34466,100.335854],[20.344879,100.334167],[20.345329,100.333328],[20.34606,100.332893],[20.346901,100.333107],[20.34745,100.332718],[20.34734,100.3321],[20.34667,100.3321],[20.34568,100.33152],[20.34479,100.33123],[20.344589,100.330742],[20.34436,100.330368],[20.3437,100.330139],[20.34333,100.329803],[20.343019,100.32917],[20.342899,100.328369],[20.342899,100.32785],[20.343189,100.327393],[20.34322,100.326973],[20.34284,100.326714],[20.341669,100.326073],[20.341101,100.325531],[20.34067,100.325218],[20.339979,100.325218],[20.33952,100.325363],[20.338831,100.325241],[20.337999,100.324783],[20.33737,100.324211],[20.336769,100.323593],[20.335369,100.321274],[20.33522,100.320747],[20.334881,100.320259],[20.334339,100.319633],[20.334311,100.319199],[20.334391,100.318741],[20.33345,100.317093],[20.33288,100.317253],[20.332331,100.317337],[20.332081,100.317047],[20.33202,100.316566],[20.331619,100.316277],[20.32967,100.315422],[20.328091,100.314957],[20.32715,100.314362],[20.32658,100.313927],[20.326229,100.313393],[20.32612,100.312607],[20.32629,100.311546],[20.326151,100.310982],[20.325741,100.310516],[20.325371,100.310013],[20.325371,100.30941],[20.325689,100.307892],[20.32563,100.307426],[20.32514,100.306969],[20.324711,100.306427],[20.324051,100.305222],[20.323879,100.304573],[20.32357,100.303909],[20.32328,100.302879],[20.32291,100.301643],[20.322769,100.299751],[20.322571,100.298439],[20.32239,100.298073],[20.32202,100.297722],[20.32185,100.297348],[20.32165,100.296204],[20.321079,100.29483],[20.32073,100.293877],[20.32056,100.293022],[20.320789,100.290817],[20.320669,100.290329],[20.32053,100.289558],[20.31967,100.287437],[20.319361,100.287117],[20.31864,100.287163],[20.31818,100.28672],[20.31793,100.286179],[20.317381,100.284973],[20.31695,100.284317],[20.31624,100.283859],[20.31472,100.282997],[20.31423,100.2826],[20.313431,100.281357],[20.311621,100.277206],[20.31111,100.275887],[20.31082,100.275146],[20.30908,100.273827],[20.308451,100.273232],[20.307671,100.27137],[20.306641,100.269279],[20.306499,100.268623],[20.306499,100.265617],[20.306391,100.264183],[20.306129,100.263184],[20.305241,100.259972],[20.304871,100.258171],[20.304581,100.256622],[20.304291,100.253304],[20.30401,100.252586],[20.30341,100.252007],[20.302691,100.251839],[20.30192,100.251839],[20.301399,100.251747],[20.301121,100.251442],[20.300911,100.250214],[20.301001,100.247398],[20.30077,100.24614],[20.30043,100.245506],[20.29974,100.243019],[20.29954,100.240044],[20.29954,100.239563],[20.2992,100.239067],[20.29874,100.23864],[20.29825,100.238319],[20.29814,100.238037],[20.298161,100.234253],[20.29882,100.231483],[20.29908,100.229813],[20.299391,100.228607],[20.29949,100.227859],[20.299549,100.227211],[20.299721,100.226501],[20.299419,100.226082],[20.29817,100.224533],[20.29698,100.223846],[20.29533,100.22316],[20.29389,100.222473],[20.29315,100.222061],[20.292789,100.22155],[20.29199,100.221207],[20.29141,100.220932],[20.29093,100.220421],[20.29035,100.220078],[20.289249,100.219971],[20.288321,100.219727],[20.28706,100.219116],[20.28581,100.218048],[20.28484,100.217056],[20.283461,100.215637],[20.28233,100.214523],[20.280979,100.213013],[20.280149,100.211906],[20.27915,100.210457],[20.27844,100.209396],[20.278021,100.208717],[20.27783,100.207817],[20.27783,100.206902],[20.277571,100.205872],[20.27689,100.204773],[20.27615,100.203918],[20.27496,100.202103],[20.27429,100.200829],[20.27364,100.199516],[20.27281,100.19873],[20.271811,100.197639],[20.27062,100.196159],[20.27001,100.195267],[20.26927,100.194267],[20.26849,100.193413],[20.266081,100.191048],[20.265209,100.190262],[20.264339,100.189812],[20.26322,100.188988],[20.262699,100.188507],[20.26235,100.187859],[20.26174,100.186447],[20.260771,100.184647],[20.26021,100.182938],[20.26037,100.181908],[20.260679,100.180908],[20.2579,100.180527],[20.25491,100.17997],[20.253241,100.179314],[20.25135,100.179642],[20.249689,100.178421],[20.24847,100.17775],[20.247311,100.177437],[20.24621,100.177254],[20.2451,100.176331],[20.2435,100.174347],[20.242241,100.171883],[20.24194,100.171043],[20.24098,100.169128],[20.240601,100.167412],[20.24003,100.166458],[20.23889,100.165314],[20.238159,100.16391],[20.2374,100.161568],[20.237129,100.160439],[20.23694,100.157692],[20.23774,100.155632],[20.240351,100.150452],[20.24041,100.149551],[20.24004,100.149002],[20.238899,100.148613],[20.230089,100.145058],[20.227119,100.143799],[20.2234,100.144203],[20.22238,100.144028],[20.22163,100.14357],[20.22163,100.142311],[20.221689,100.136833],[20.22123,100.135452],[20.220779,100.134201],[20.2202,100.133003],[20.22032,100.132187],[20.220551,100.131569],[20.220949,100.130943],[20.22146,100.130539],[20.22238,100.130081],[20.2234,100.130028],[20.22426,100.130081],[20.225401,100.12957],[20.226839,100.128822],[20.228889,100.127907],[20.231239,100.126938],[20.232719,100.126312],[20.234501,100.125633],[20.235689,100.125282],[20.236549,100.125282],[20.23838,100.125557],[20.238951,100.125633],[20.239269,100.125359],[20.24003,100.124641],[20.24082,100.124222],[20.24209,100.123596],[20.24258,100.123177],[20.24321,100.122581],[20.24362,100.121933],[20.244169,100.120911],[20.244329,100.11969],[20.244141,100.114143],[20.244221,100.112823],[20.24461,100.111748],[20.24552,100.107658],[20.245569,100.105873],[20.246019,100.10495],[20.247499,100.102898],[20.248671,100.102791],[20.24914,100.102608],[20.25177,100.100777],[20.25688,100.097267],[20.258829,100.095711],[20.260731,100.093811],[20.259911,100.086281],[20.26025,100.084396],[20.261,100.082962],[20.262091,100.08181],[20.26926,100.076973],[20.26903,100.076843],[20.26845,100.076431],[20.26779,100.075684],[20.267691,100.075569],[20.2675,100.075333],[20.26725,100.074577],[20.267429,100.073776],[20.267599,100.073517],[20.267969,100.073036],[20.26873,100.072037],[20.268869,100.071808],[20.26894,100.071388],[20.268921,100.071098],[20.268801,100.069023],[20.26877,100.068626],[20.268709,100.067993],[20.26874,100.06781],[20.268801,100.067451],[20.269529,100.065788],[20.269621,100.065353],[20.26969,100.058792],[20.269739,100.057213],[20.269831,100.05687],[20.269979,100.056557],[20.27109,100.05513],[20.27137,100.054642],[20.27169,100.053932],[20.271879,100.053352],[20.2719,100.053291],[20.27212,100.051521],[20.27227,100.050903],[20.272511,100.050468],[20.272829,100.050049],[20.27322,100.049713],[20.27532,100.048187],[20.27696,100.046913],[20.278509,100.045799],[20.27902,100.04528],[20.279329,100.045052],[20.28196,100.043381],[20.28227,100.042969],[20.28232,100.042664],[20.28199,100.039772],[20.28216,100.037811],[20.28245,100.036713],[20.28249,100.03656],[20.283291,100.033943],[20.283461,100.032356],[20.28355,100.031937],[20.284889,100.027328],[20.28492,100.027069],[20.284889,100.026711],[20.284451,100.025642],[20.283649,100.02253],[20.282631,100.019608],[20.282459,100.019379],[20.2822,100.019218],[20.281549,100.018822],[20.281281,100.018517],[20.28104,100.017998],[20.28096,100.01783],[20.28046,100.016228],[20.280319,100.015823],[20.27994,100.014809],[20.27947,100.013863],[20.27894,100.012939],[20.278629,100.01239],[20.278191,100.011948],[20.277611,100.011673],[20.276871,100.011414],[20.276529,100.011253],[20.27626,100.010933],[20.2761,100.010567],[20.276011,100.009956],[20.276039,100.008537],[20.276131,100.008118],[20.276381,100.007423],[20.27643,100.007057],[20.27619,100.006447],[20.27611,100.005913],[20.276131,100.005661],[20.276541,100.004341],[20.27739,100.002243],[20.277519,100.001602],[20.27751,100.00135],[20.27717,100.000137],[20.27632,99.99839],[20.27622,99.997864],[20.27598,99.995117],[20.27578,99.994469],[20.2752,99.993393],[20.27483,99.992889],[20.274389,99.992393],[20.273899,99.991982],[20.2733,99.991608],[20.272711,99.991333],[20.27207,99.991112],[20.271151,99.990799],[20.26943,99.990196],[20.267929,99.989693],[20.26746,99.989517],[20.265051,99.98867],[20.260799,99.986908],[20.26021,99.986603],[20.25956,99.986122],[20.258579,99.98526],[20.25312,99.980637],[20.250441,99.978249],[20.249901,99.977707],[20.24902,99.976723],[20.24851,99.976128],[20.24799,99.975517],[20.243361,99.969711],[20.24229,99.968307],[20.23768,99.961952],[20.237089,99.961243],[20.23678,99.960907],[20.236469,99.960709],[20.23546,99.960403],[20.235189,99.960258],[20.235001,99.960167],[20.23457,99.959831],[20.23427,99.959534],[20.231171,99.955971],[20.23019,99.954781],[20.229759,99.954353],[20.22612,99.950317],[20.225361,99.949493],[20.223261,99.947304],[20.22253,99.946472],[20.22105,99.944946],[20.2173,99.940514],[20.21426,99.936852],[20.213909,99.936417],[20.210979,99.933022],[20.20336,99.924316],[20.20289,99.923752],[20.20256,99.923363],[20.20229,99.922813],[20.20085,99.919243],[20.200251,99.917732],[20.199671,99.916267],[20.199181,99.915077],[20.19784,99.911629],[20.19697,99.90963],[20.19672,99.908997],[20.196461,99.908287],[20.19632,99.907944],[20.19614,99.907539],[20.195181,99.905983],[20.19488,99.905342],[20.19462,99.904213],[20.19449,99.903137],[20.194229,99.901459],[20.19413,99.900963],[20.193979,99.90033],[20.19376,99.899719],[20.19334,99.898857],[20.192921,99.898331],[20.192261,99.897476],[20.1915,99.896606],[20.190639,99.895409],[20.187269,99.891022],[20.18634,99.889763],[20.185221,99.888191],[20.18457,99.887154],[20.18409,99.886269],[20.18368,99.885536],[20.18329,99.884857],[20.182751,99.883904],[20.18235,99.883186],[20.181841,99.882294],[20.181511,99.881844],[20.18092,99.881378],[20.18082,99.881287],[20.180349,99.880959],[20.179501,99.880363],[20.17819,99.879387],[20.176781,99.878387],[20.174061,99.87645],[20.17366,99.876106],[20.17345,99.875771],[20.1723,99.87352],[20.17215,99.873253],[20.17174,99.872673],[20.17095,99.872009],[20.169439,99.871193],[20.169069,99.87088],[20.16851,99.870308],[20.1668,99.869034],[20.16614,99.868408],[20.164459,99.866531],[20.163719,99.866043],[20.162889,99.865593],[20.160891,99.86451],[20.160801,99.864464],[20.16007,99.864059],[20.15867,99.863297],[20.157801,99.862694],[20.156269,99.861603],[20.156019,99.861389],[20.15589,99.861023],[20.15583,99.860527],[20.15589,99.860184],[20.155491,99.860199],[20.1551,99.860184],[20.1548,99.860092],[20.154181,99.859833],[20.154079,99.859734],[20.153299,99.8591],[20.152769,99.858704],[20.15164,99.858276],[20.147631,99.857521],[20.14694,99.857384],[20.14674,99.857361],[20.145821,99.857262],[20.14502,99.85717],[20.144711,99.85714],[20.143869,99.85704],[20.143379,99.856987],[20.142599,99.856903],[20.139759,99.856598],[20.13909,99.856613],[20.13855,99.856728],[20.137991,99.856918],[20.137341,99.85746],[20.13419,99.860947],[20.13195,99.862442],[20.13092,99.863426],[20.130289,99.863953],[20.12956,99.864464],[20.12685,99.867111],[20.12649,99.867317],[20.126051,99.867447],[20.12459,99.867813],[20.122669,99.868134],[20.12114,99.868584],[20.119909,99.869034],[20.119301,99.869392],[20.118059,99.87043],[20.11643,99.872063],[20.11577,99.87249],[20.11545,99.872627],[20.114981,99.872757],[20.09539,99.874527],[20.09425,99.874573],[20.090561,99.874893],[20.08865,99.874657],[20.08559,99.874527],[20.08499,99.87455],[20.080891,99.874908],[20.079241,99.875107],[20.07443,99.875717],[20.07328,99.875687],[20.06992,99.875542],[20.064859,99.875557],[20.06189,99.875443],[20.05637,99.875359],[20.05394,99.875443],[20.05282,99.875542],[20.049891,99.875992],[20.046709,99.876244],[20.0462,99.876266],[20.04603,99.876282],[20.045691,99.876312],[20.04425,99.876404],[20.04303,99.876297],[20.041679,99.876137],[20.04003,99.875839],[20.03854,99.875542],[20.03141,99.874046],[20.028919,99.873497],[20.026489,99.872787],[20.02272,99.87146],[20.01881,99.870377],[20.014919,99.86937],[20.01181,99.868759],[20.00489,99.867264],[20.004431,99.867188],[20.001101,99.866623],[19.99958,99.866287],[19.998461,99.865959],[19.994511,99.864754],[19.993469,99.864433],[19.991541,99.86377],[19.987789,99.862572],[19.983509,99.861198],[19.977421,99.859497],[19.9772,99.859444],[19.973289,99.858208],[19.969009,99.856873],[19.968769,99.856796],[19.967291,99.856339],[19.962219,99.854317],[19.96102,99.853737],[19.95957,99.853073],[19.956461,99.851562],[19.950371,99.848991],[19.95006,99.848846],[19.94776,99.848],[19.94174,99.8461],[19.941191,99.845947],[19.940399,99.845627],[19.939939,99.845512],[19.939461,99.845451],[19.93458,99.844978],[19.93329,99.844856],[19.9328,99.844833],[19.932329,99.844788],[19.93128,99.844658],[19.930479,99.844559],[19.92926,99.844452],[19.928101,99.844383],[19.927031,99.844254],[19.926519,99.844254],[19.9261,99.844322],[19.925659,99.844429],[19.924841,99.844704],[19.92466,99.844772],[19.92452,99.844833],[19.92285,99.84539],[19.91926,99.84671],[19.919029,99.846786],[19.9188,99.846863],[19.91856,99.846893],[19.918301,99.846916],[19.918011,99.846939],[19.9177,99.846916],[19.91733,99.846863],[19.91716,99.846832],[19.91688,99.846786],[19.91614,99.846657],[19.91597,99.846603],[19.915791,99.846542],[19.915649,99.846451],[19.9156,99.846413],[19.915449,99.846298],[19.91519,99.8461],[19.91506,99.845932],[19.914909,99.845734],[19.91482,99.845551],[19.9144,99.844727],[19.914,99.843964],[19.9137,99.843246],[19.913469,99.842857],[19.9133,99.842613],[19.913071,99.842331],[19.912821,99.842087],[19.91238,99.841667],[19.912121,99.841469],[19.911831,99.841248],[19.911221,99.840927],[19.9109,99.840782],[19.910589,99.840668],[19.910259,99.840652],[19.909861,99.840714],[19.90881,99.840759],[19.908581,99.840767],[19.90823,99.840813],[19.907591,99.840927],[19.907049,99.840973],[19.90662,99.840919],[19.906231,99.840958],[19.90579,99.840981],[19.90518,99.840973],[19.904579,99.840897],[19.903761,99.840767],[19.90309,99.840523],[19.9025,99.840378],[19.901751,99.840179],[19.901529,99.840134],[19.89817,99.839073],[19.896799,99.838638],[19.895309,99.838242],[19.89484,99.838097],[19.89209,99.837196],[19.89089,99.836861],[19.88945,99.836433],[19.879311,99.833359],[19.878031,99.832413],[19.87665,99.831192],[19.872709,99.827423],[19.862711,99.821381],[19.84935,99.809143],[19.836611,99.787727],[19.82707,99.775383],[19.824829,99.766403],[19.82202,99.763603],[19.80855,99.75489],[19.800699,99.753487],[19.78414,99.743393],[19.76815,99.736092],[19.7572,99.733566],[19.746201,99.726852],[19.74276,99.724037],[19.73921,99.722839],[19.72596,99.716492],[19.72014,99.716148],[19.716591,99.71666],[19.71174,99.720444],[19.708179,99.720268],[19.70447,99.719063],[19.688629,99.723358],[19.68475,99.727127],[19.679899,99.727821],[19.67149,99.731598],[19.6681,99.734169],[19.664539,99.734337],[19.65662,99.735718],[19.653709,99.736923],[19.64983,99.737259],[19.644501,99.738632],[19.637711,99.743103],[19.620081,99.743271],[19.61006,99.747726],[19.600519,99.749619],[19.595181,99.748589],[19.591459,99.746529],[19.582239,99.744987],[19.57626,99.746529],[19.57011,99.751678],[19.56736,99.752197],[19.550541,99.747391],[19.541479,99.742073],[19.51705,99.745667],[19.504271,99.746872],[19.50135,99.746696],[19.49699,99.748589],[19.48016,99.751678],[19.472389,99.753738],[19.469641,99.754082],[19.467211,99.755112],[19.462839,99.75563],[19.45928,99.755798],[19.453939,99.757172],[19.44973,99.758034],[19.44228,99.758202],[19.432249,99.761978],[19.42415,99.766098],[19.410549,99.770393],[19.37849,99.78756],[19.357759,99.799057],[19.339621,99.811943],[19.3218,99.838371],[19.310631,99.845917],[19.30415,99.852272],[19.29945,99.853127],[19.290051,99.855881],[19.275141,99.856392],[19.268181,99.857773],[19.255369,99.857422],[19.24938,99.858627],[19.240629,99.860863],[19.23674,99.862923],[19.229931,99.863426],[19.227011,99.863953],[19.20772,99.871498],[19.2001,99.872528],[19.19735,99.874763],[19.188431,99.889008],[19.178049,99.901016],[19.17128,99.906563],[19.16725,99.909927],[19.161579,99.914177],[19.158171,99.914436],[19.152809,99.912689],[19.141399,99.910896],[19.12985,99.910072],[19.115681,99.90567],[19.106331,99.908417],[19.095181,99.912193],[19.09145,99.913727],[19.082689,99.92231],[19.075069,99.927979],[19.069059,99.92746],[19.05657,99.932098],[19.05316,99.933472],[19.050079,99.935867],[19.04554,99.935532],[19.043261,99.934669],[19.04018,99.931236],[19.038719,99.931068],[19.03775,99.930382],[19.02947,99.927116],[19.02639,99.923523],[19.019899,99.920433],[19.019251,99.919052],[19.01503,99.911163],[19.00983,99.906013],[19.00659,99.902573],[19.005449,99.899307],[19.00334,99.898109],[19.00042,99.899483],[18.99782,99.901367],[18.994419,99.903259],[18.991011,99.904289],[18.988569,99.906174],[18.985979,99.906349],[18.98127,99.907204],[18.977051,99.91098],[18.976231,99.912872],[18.97364,99.914413],[18.9699,99.915283],[18.96796,99.918709],[18.96455,99.920937],[18.95822,99.920593],[18.95627,99.922829],[18.95075,99.923523],[18.93889,99.929008],[18.934999,99.931923],[18.93354,99.932793],[18.929319,99.931763],[18.924931,99.933983],[18.922171,99.935013],[18.91876,99.937424],[18.905769,99.943771],[18.902519,99.944633],[18.89814,99.946342],[18.893259,99.946693],[18.887251,99.944633],[18.88319,99.945312],[18.8741,99.947548],[18.867599,99.948402],[18.858829,99.948921],[18.851681,99.948059],[18.846161,99.947891],[18.834141,99.949432],[18.82406,99.949089],[18.821791,99.949608],[18.807159,99.958527],[18.804079,99.960587],[18.78701,99.964371],[18.78587,99.965233],[18.781969,99.969177],[18.776609,99.970032],[18.76491,99.97364],[18.76214,99.973457],[18.757429,99.970032],[18.753201,99.970032],[18.7428,99.975014],[18.74004,99.975357],[18.73597,99.973984],[18.733049,99.971237],[18.73012,99.971237],[18.72703,99.968491],[18.72541,99.968491],[18.72323,99.967339],[18.72118,99.966263],[18.719721,99.966263],[18.718901,99.964706],[18.71516,99.960938],[18.71386,99.958527],[18.71175,99.957161],[18.7085,99.958023],[18.706869,99.957497],[18.7059,99.956131],[18.70134,99.954758],[18.699551,99.952698],[18.69809,99.948753],[18.696951,99.947548],[18.68996,99.944283],[18.687691,99.944801],[18.68573,99.943604],[18.68037,99.934502],[18.674021,99.928673],[18.6724,99.927803],[18.66736,99.92643],[18.661659,99.924202],[18.65711,99.921967],[18.655649,99.92025],[18.65044,99.920433],[18.64784,99.920593],[18.645069,99.918709],[18.641821,99.91819],[18.635799,99.914589],[18.63434,99.911667],[18.626699,99.909103],[18.62442,99.90892],[18.618561,99.907722],[18.61824,99.906349],[18.614981,99.908234],[18.61091,99.907043],[18.6075,99.9048],[18.6049,99.904289],[18.60343,99.903603],[18.601971,99.902397],[18.598881,99.900681],[18.596109,99.898453],[18.592529,99.898621],[18.589769,99.896744],[18.588461,99.89502],[18.58684,99.89399],[18.58391,99.893471],[18.582609,99.89296],[18.58082,99.89193],[18.57691,99.886597],[18.575769,99.886093],[18.575121,99.886597],[18.57398,99.88575],[18.57333,99.88472],[18.572029,99.883858],[18.571541,99.882141],[18.56975,99.881287],[18.568291,99.879051],[18.5665,99.878883],[18.56373,99.875618],[18.56324,99.872871],[18.56275,99.87133],[18.56292,99.86927],[18.560801,99.866348],[18.55966,99.865997],[18.55966,99.864288],[18.558359,99.861198],[18.55673,99.859657],[18.555269,99.854507],[18.55348,99.853821],[18.5525,99.852448],[18.550871,99.851418],[18.54925,99.849182],[18.547291,99.848328],[18.543711,99.840767],[18.540131,99.839912],[18.53964,99.838707],[18.537849,99.838203],[18.53558,99.835617],[18.530531,99.832191],[18.529881,99.830299],[18.52581,99.828934],[18.51783,99.82412],[18.513769,99.820862],[18.5149,99.81897],[18.499439,99.812279],[18.47893,99.807472],[18.47648,99.806099],[18.47323,99.805237],[18.47225,99.80558],[18.466881,99.804207],[18.466709,99.802673],[18.463301,99.804382],[18.462971,99.803703],[18.459061,99.801292],[18.455641,99.797684],[18.45402,99.797173],[18.45385,99.795113],[18.451571,99.793404],[18.452061,99.790131],[18.45125,99.788589],[18.448311,99.786697],[18.448311,99.783607],[18.44245,99.776047],[18.44066,99.775017],[18.43952,99.772797],[18.43692,99.772453],[18.434799,99.769867],[18.42487,99.754601],[18.42519,99.752022],[18.42161,99.749107],[18.42128,99.747902],[18.4221,99.743103],[18.42112,99.741547],[18.420309,99.739487],[18.41995,99.737396],[18.42004,99.735573],[18.42008,99.733253],[18.41995,99.732552],[18.41889,99.730331],[18.41873,99.729698],[18.418711,99.72905],[18.418791,99.728363],[18.4195,99.727074],[18.419979,99.726349],[18.420231,99.726128],[18.421,99.7258],[18.424561,99.724602],[18.425671,99.724037],[18.426571,99.723328],[18.427401,99.722572],[18.428101,99.721451],[18.42823,99.720734],[18.42827,99.719788],[18.42893,99.718018],[18.429291,99.716713],[18.42931,99.715942],[18.429251,99.714172],[18.42909,99.71257],[18.42915,99.711746],[18.429159,99.710548],[18.42911,99.709961],[18.42881,99.709312],[18.42832,99.708794],[18.42795,99.708214],[18.427919,99.707649],[18.42795,99.706039],[18.42767,99.704086],[18.427589,99.702888],[18.427589,99.70208],[18.426929,99.700233],[18.426741,99.699043],[18.426781,99.698059],[18.42658,99.697319],[18.42609,99.696053],[18.42481,99.694153],[18.424101,99.693573],[18.423691,99.692886],[18.42347,99.69194],[18.423491,99.689323],[18.423241,99.688538],[18.423031,99.68734],[18.42272,99.686203],[18.422131,99.684937],[18.422041,99.684174],[18.42222,99.683647],[18.422501,99.683128],[18.422661,99.682358],[18.42264,99.680542],[18.422541,99.679131],[18.42197,99.675194],[18.42194,99.67244],[18.42174,99.671631],[18.421301,99.670486],[18.420971,99.669319],[18.42094,99.665627],[18.42099,99.663811],[18.42087,99.663017],[18.42053,99.66185],[18.417959,99.653954],[18.4172,99.651909],[18.41601,99.649818],[18.412809,99.644562],[18.406851,99.639587],[18.40027,99.634438],[18.392811,99.624962],[18.385281,99.615044],[18.37586,99.599113],[18.36557,99.581909],[18.355709,99.565353],[18.34586,99.548767],[18.33902,99.541557],[18.31636,99.528687],[18.310011,99.528687],[18.305771,99.527657],[18.285431,99.512939],[18.2847,99.512192],[18.284321,99.511879],[18.28384,99.511429],[18.283501,99.511009],[18.28231,99.50872],[18.282021,99.506973],[18.281969,99.506752],[18.281931,99.506447],[18.28183,99.504372],[18.281799,99.503326],[18.2817,99.501801],[18.28154,99.498703],[18.281389,99.496017],[18.28134,99.495178],[18.281179,99.492928],[18.28109,99.491997],[18.28097,99.491493],[18.280741,99.490639],[18.280491,99.490067],[18.280251,99.489571],[18.276279,99.484016],[18.275089,99.482361],[18.271931,99.477943],[18.26992,99.475143],[18.265791,99.469559],[18.264151,99.467949],[18.263901,99.467728],[18.259399,99.462921],[18.254829,99.457451],[18.25322,99.45546],[18.25285,99.455002],[18.252251,99.454407],[18.251181,99.453377],[18.248911,99.451523],[18.24684,99.449829],[18.246321,99.449249],[18.246229,99.449158],[18.24357,99.446136],[18.240339,99.442268],[18.240231,99.442131],[18.23794,99.439133],[18.237009,99.43779],[18.234949,99.434761],[18.234051,99.433434],[18.233271,99.432281],[18.232941,99.431862],[18.23254,99.431396],[18.231871,99.43087],[18.23115,99.430443],[18.23048,99.430099],[18.223049,99.426353],[18.219999,99.42485],[18.214729,99.422234],[18.2141,99.421783],[18.213449,99.421173],[18.21044,99.417763],[18.20784,99.414848],[18.206091,99.41288],[18.20507,99.411789],[18.2041,99.410851],[18.203369,99.410233],[18.202881,99.409859],[18.202271,99.409431],[18.20149,99.408997],[18.20116,99.408768],[18.20055,99.408447],[18.199909,99.408142],[18.198891,99.40773],[18.19791,99.407379],[18.19705,99.407158],[18.19627,99.40699],[18.195271,99.406807],[18.194441,99.406723],[18.193081,99.406639],[18.19174,99.406708],[18.190941,99.406807],[18.190041,99.406929],[18.18878,99.407204],[18.186609,99.407761],[18.184031,99.408447],[18.182199,99.408928],[18.18095,99.409187],[18.180309,99.409233],[18.17975,99.409233],[18.179211,99.409149],[18.17749,99.408699],[18.17017,99.406662],[18.166981,99.405777],[18.163481,99.404831],[18.15963,99.403793],[18.158501,99.403519],[18.157089,99.403229],[18.15344,99.402649],[18.150881,99.402184],[18.15004,99.402046],[18.149481,99.401962],[18.149,99.401863],[18.148581,99.401703],[18.147989,99.401352],[18.14753,99.400978],[18.14703,99.40033],[18.1467,99.399567],[18.14559,99.395081],[18.1453,99.394173],[18.144859,99.393402],[18.144341,99.3927],[18.14374,99.392097],[18.142941,99.391563],[18.14249,99.391312],[18.14209,99.391144],[18.141621,99.390961],[18.14101,99.390823],[18.14044,99.390778],[18.139891,99.390747],[18.13619,99.390709],[18.13114,99.390762],[18.128851,99.391121],[18.124069,99.392548],[18.10453,99.398163],[18.10178,99.398788],[18.099609,99.398727],[18.096781,99.398109],[18.094761,99.397583],[18.092661,99.397118],[18.091841,99.396919],[18.0884,99.396072],[18.085541,99.395348],[18.083891,99.394974],[18.075769,99.392998],[18.070539,99.391769],[18.066629,99.390846],[18.062481,99.390266],[18.05871,99.389839],[18.05596,99.389267],[18.054411,99.388397],[18.051821,99.386383],[18.050211,99.38546],[18.045561,99.383141],[18.043961,99.381851],[18.04265,99.380638],[18.041,99.379402],[18.036779,99.376457],[18.036421,99.376259],[18.034201,99.375107],[18.033239,99.374786],[18.032431,99.374603],[18.031601,99.374496],[18.030519,99.37442],[18.024441,99.373947],[18.0229,99.373329],[18.02154,99.37207],[18.012831,99.358124],[18.01133,99.357002],[18.009991,99.356583],[17.99893,99.355247],[17.98905,99.357224],[17.982321,99.356018],[17.979931,99.355743],[17.97489,99.356071],[17.973339,99.355614],[17.970539,99.353241],[17.969101,99.352692],[17.96756,99.352707],[17.962151,99.354393],[17.961781,99.354492],[17.96125,99.354637],[17.961029,99.35466],[17.96056,99.35466],[17.95981,99.354637],[17.959379,99.354561],[17.95863,99.354279],[17.95808,99.353981],[17.95723,99.353378],[17.95643,99.352737],[17.95587,99.352371],[17.955059,99.351822],[17.95433,99.351357],[17.95396,99.351189],[17.95359,99.351044],[17.953091,99.350883],[17.95245,99.350838],[17.951981,99.350853],[17.951429,99.350929],[17.95067,99.351082],[17.95013,99.351196],[17.94813,99.351593],[17.946581,99.351837],[17.946051,99.351921],[17.945681,99.351936],[17.945511,99.351929],[17.945129,99.351883],[17.944559,99.351707],[17.94421,99.351593],[17.943859,99.351433],[17.94348,99.351257],[17.94228,99.350517],[17.941111,99.349838],[17.93996,99.349243],[17.93936,99.348953],[17.93882,99.348679],[17.93819,99.348473],[17.9373,99.348289],[17.93652,99.348137],[17.934759,99.347778],[17.93421,99.347687],[17.932699,99.347427],[17.93189,99.347298],[17.92786,99.346573],[17.92705,99.346413],[17.92444,99.34594],[17.92285,99.345657],[17.92038,99.345207],[17.9198,99.345093],[17.91939,99.345001],[17.91836,99.344711],[17.91785,99.344589],[17.917351,99.344429],[17.917009,99.344269],[17.9163,99.343849],[17.915291,99.343246],[17.915051,99.343117],[17.91415,99.342613],[17.913731,99.342377],[17.913441,99.342216],[17.91333,99.342163],[17.913191,99.342133],[17.9125,99.342003],[17.91172,99.341957],[17.91118,99.341927],[17.910681,99.341873],[17.90926,99.341827],[17.908791,99.341797],[17.90661,99.341667],[17.904579,99.341522],[17.9039,99.341476],[17.903549,99.341469],[17.902691,99.341431],[17.902109,99.3414],[17.90139,99.341362],[17.900949,99.341331],[17.899851,99.341217],[17.899229,99.341133],[17.89868,99.341026],[17.898109,99.340927],[17.89765,99.340851],[17.89702,99.340736],[17.89642,99.340637],[17.895901,99.340553],[17.89366,99.340157],[17.89069,99.33963],[17.88946,99.339417],[17.888769,99.33931],[17.88637,99.338882],[17.88438,99.338531],[17.882891,99.33828],[17.881689,99.338081],[17.88026,99.337822],[17.87919,99.337646],[17.87808,99.337471],[17.87718,99.337318],[17.8766,99.337257],[17.87611,99.337181],[17.87467,99.337128],[17.874229,99.337143],[17.87361,99.337143],[17.871771,99.337196],[17.87114,99.337242],[17.870489,99.337273],[17.870131,99.337273],[17.86964,99.337196],[17.869011,99.337082],[17.8687,99.337013],[17.868401,99.336838],[17.86796,99.336563],[17.86767,99.336349],[17.86746,99.336197],[17.86726,99.336014],[17.86688,99.33551],[17.86599,99.334396],[17.865061,99.333237],[17.864401,99.332397],[17.863991,99.331802],[17.86343,99.331001],[17.86311,99.33049],[17.862749,99.32975],[17.86245,99.328903],[17.862289,99.328217],[17.86224,99.327454],[17.862181,99.326714],[17.862129,99.32605],[17.86191,99.322456],[17.861759,99.319107],[17.861549,99.315567],[17.86153,99.315292],[17.861521,99.31517],[17.861481,99.315033],[17.86117,99.313766],[17.8608,99.312477],[17.860331,99.310944],[17.86005,99.310051],[17.859909,99.309601],[17.859859,99.309486],[17.85973,99.309273],[17.85928,99.308662],[17.85885,99.308243],[17.858391,99.307747],[17.85741,99.306763],[17.85648,99.305923],[17.855591,99.305107],[17.85523,99.304764],[17.854839,99.304314],[17.854601,99.304031],[17.85445,99.303741],[17.85433,99.303513],[17.85412,99.303017],[17.85392,99.302223],[17.85384,99.30159],[17.85371,99.300491],[17.8533,99.296638],[17.853251,99.296318],[17.85321,99.296013],[17.853029,99.295303],[17.852871,99.2948],[17.852711,99.29451],[17.85252,99.294228],[17.852261,99.293854],[17.852079,99.293587],[17.85186,99.293404],[17.851761,99.293297],[17.85161,99.293198],[17.851259,99.292953],[17.850969,99.29277],[17.850731,99.292641],[17.85043,99.292542],[17.85,99.292397],[17.8496,99.29232],[17.84923,99.29229],[17.84869,99.29232],[17.84779,99.292458],[17.847481,99.292511],[17.844879,99.293228],[17.843941,99.293472],[17.843321,99.293587],[17.842369,99.293701],[17.841961,99.293739],[17.84166,99.293732],[17.84104,99.293709],[17.840599,99.293633],[17.840219,99.293533],[17.839899,99.293449],[17.83931,99.293243],[17.83873,99.292923],[17.83827,99.29261],[17.83799,99.292389],[17.836639,99.2911],[17.836531,99.291023],[17.836411,99.290932],[17.836281,99.290848],[17.835911,99.290672],[17.8354,99.290413],[17.83526,99.290337],[17.83514,99.290298],[17.834579,99.290268],[17.83226,99.290161],[17.831779,99.290154],[17.831591,99.290154],[17.831499,99.290138],[17.830999,99.289932],[17.83036,99.289597],[17.83024,99.28952],[17.83003,99.289322],[17.82963,99.288872],[17.82939,99.288643],[17.829281,99.28849],[17.82917,99.288239],[17.828871,99.287407],[17.82847,99.286018],[17.82832,99.285347],[17.828159,99.284813],[17.82811,99.284683],[17.82798,99.284462],[17.82766,99.284058],[17.82745,99.283836],[17.82724,99.2836],[17.827101,99.28347],[17.826941,99.283363],[17.826679,99.283234],[17.826389,99.283081],[17.82618,99.282997],[17.82585,99.282921],[17.825569,99.282867],[17.825081,99.282806],[17.824591,99.282799],[17.821569,99.28289],[17.82082,99.282898],[17.820551,99.282898],[17.81995,99.28286],[17.8197,99.282852],[17.819,99.282806],[17.818501,99.282753],[17.81819,99.282692],[17.8179,99.282547],[17.817579,99.282333],[17.817209,99.282066],[17.816971,99.281822],[17.816771,99.281609],[17.816601,99.281326],[17.81636,99.280884],[17.816179,99.280487],[17.816031,99.280083],[17.81386,99.273483],[17.81365,99.272911],[17.81352,99.272583],[17.813181,99.271957],[17.81295,99.271584],[17.8127,99.27124],[17.81225,99.270798],[17.81126,99.269852],[17.810381,99.269119],[17.80974,99.26857],[17.80872,99.267761],[17.80821,99.267357],[17.807859,99.267128],[17.80744,99.266907],[17.806999,99.266693],[17.80674,99.266617],[17.80644,99.266571],[17.80608,99.266533],[17.805759,99.266533],[17.805401,99.266533],[17.80504,99.266617],[17.80337,99.266998],[17.802469,99.267174],[17.802071,99.267227],[17.801889,99.267227],[17.801689,99.267227],[17.80142,99.267174],[17.8009,99.267036],[17.800541,99.266937],[17.80023,99.266861],[17.800051,99.266777],[17.798241,99.266006],[17.79715,99.265556],[17.79257,99.263641],[17.791861,99.263344],[17.78828,99.26181],[17.78756,99.261513],[17.78669,99.261124],[17.7859,99.260757],[17.78512,99.260429],[17.78488,99.260292],[17.784559,99.260033],[17.7843,99.259827],[17.783911,99.259506],[17.783489,99.259117],[17.78289,99.258347],[17.781799,99.257004],[17.78129,99.256287],[17.77948,99.254051],[17.7777,99.251877],[17.77697,99.251038],[17.77673,99.250763],[17.776421,99.250481],[17.77618,99.250313],[17.7756,99.250031],[17.775,99.249786],[17.773529,99.249382],[17.773161,99.249283],[17.770929,99.248657],[17.769039,99.248009],[17.768499,99.247833],[17.768101,99.247627],[17.7679,99.247437],[17.76725,99.246834],[17.76651,99.246017],[17.76532,99.244629],[17.76475,99.243988],[17.764339,99.243607],[17.763969,99.243401],[17.763491,99.243141],[17.76297,99.242897],[17.76252,99.242783],[17.761299,99.24247],[17.76108,99.242416],[17.76034,99.242218],[17.759871,99.242073],[17.759029,99.241737],[17.75853,99.241524],[17.758101,99.241241],[17.757481,99.240791],[17.756941,99.240318],[17.75658,99.239883],[17.754259,99.236938],[17.75318,99.235573],[17.752991,99.235367],[17.75267,99.235062],[17.752399,99.234879],[17.75209,99.234688],[17.751051,99.234238],[17.750351,99.234001],[17.7498,99.233772],[17.748859,99.233276],[17.748581,99.233093],[17.747829,99.232452],[17.746889,99.231583],[17.746691,99.231377],[17.74646,99.231194],[17.74609,99.230972],[17.74564,99.230827],[17.745159,99.230682],[17.744881,99.230637],[17.744419,99.230629],[17.743931,99.23069],[17.74349,99.230782],[17.743191,99.230873],[17.74276,99.231102],[17.74197,99.231628],[17.74017,99.232971],[17.73991,99.233147],[17.739531,99.233292],[17.73864,99.233566],[17.73842,99.233589],[17.73773,99.233589],[17.73707,99.233582],[17.736509,99.233513],[17.73584,99.233383],[17.73542,99.233292],[17.734819,99.233177],[17.73427,99.23304],[17.733521,99.232773],[17.732241,99.232307],[17.730801,99.231644],[17.730061,99.231293],[17.728479,99.230621],[17.727859,99.230362],[17.72703,99.230057],[17.726549,99.229881],[17.726231,99.229767],[17.725981,99.229721],[17.724819,99.229462],[17.72401,99.229309],[17.723749,99.229263],[17.723499,99.229233],[17.72278,99.229134],[17.72213,99.22905],[17.72184,99.229019],[17.72105,99.228928],[17.720671,99.228889],[17.720409,99.228859],[17.720261,99.228859],[17.720039,99.228882],[17.71792,99.229012],[17.71751,99.229027],[17.7131,99.229362],[17.71036,99.229683],[17.709999,99.229729],[17.709591,99.229782],[17.709379,99.229797],[17.70927,99.22982],[17.709061,99.229874],[17.708929,99.229912],[17.70859,99.230003],[17.703871,99.231422],[17.6992,99.232727],[17.69821,99.233017],[17.69763,99.233177],[17.697451,99.233223],[17.69726,99.233238],[17.696751,99.233276],[17.696369,99.233292],[17.69614,99.233307],[17.69598,99.233299],[17.69591,99.233292],[17.69561,99.233223],[17.69491,99.23304],[17.694389,99.23291],[17.694099,99.232841],[17.69388,99.232811],[17.69368,99.232803],[17.693279,99.23275],[17.692961,99.232727],[17.692671,99.232697],[17.69244,99.232697],[17.692301,99.232697],[17.692169,99.232727],[17.691891,99.232803],[17.69169,99.232857],[17.691191,99.233093],[17.691019,99.233177],[17.69067,99.233437],[17.690411,99.233658],[17.690121,99.233994],[17.689871,99.234283],[17.689671,99.234543],[17.689461,99.234879],[17.688641,99.236259],[17.68808,99.23719],[17.68734,99.238152],[17.68705,99.238503],[17.686781,99.238724],[17.6863,99.239014],[17.68573,99.239311],[17.68515,99.239563],[17.68358,99.24015],[17.679119,99.241768],[17.67421,99.243568],[17.670959,99.244667],[17.669821,99.24501],[17.66951,99.245102],[17.669319,99.245163],[17.669201,99.245171],[17.669081,99.245171],[17.66873,99.245163],[17.667709,99.245064],[17.66604,99.244743],[17.66552,99.244629],[17.66523,99.244583],[17.66506,99.24456],[17.664921,99.24456],[17.66469,99.244583],[17.6644,99.244614],[17.664009,99.244637],[17.663759,99.24469],[17.66358,99.244743],[17.663389,99.244812],[17.663219,99.244904],[17.662809,99.245117],[17.66263,99.245247],[17.662331,99.245453],[17.66197,99.245811],[17.660839,99.247223],[17.660061,99.248207],[17.659401,99.2491],[17.65922,99.249313],[17.659121,99.249413],[17.65889,99.249588],[17.658171,99.25016],[17.657921,99.250343],[17.657669,99.250473],[17.65728,99.250641],[17.656561,99.250893],[17.656309,99.250961],[17.655861,99.25103],[17.655359,99.251091],[17.654989,99.251106],[17.65469,99.251106],[17.654181,99.251038],[17.653561,99.25087],[17.653231,99.250763],[17.652941,99.250641],[17.652571,99.250427],[17.652439,99.250351],[17.652189,99.250183],[17.651711,99.249847],[17.65132,99.249489],[17.650909,99.249039],[17.650351,99.248322],[17.649651,99.247177],[17.64868,99.245667],[17.64819,99.244987],[17.647699,99.244331],[17.64736,99.243896],[17.647091,99.243652],[17.646799,99.243439],[17.646021,99.24292],[17.644899,99.242287],[17.643909,99.241737],[17.64311,99.24131],[17.641239,99.240349],[17.640791,99.240097],[17.640671,99.240044],[17.64039,99.239937],[17.640221,99.239883],[17.63924,99.239662],[17.639059,99.239616],[17.63826,99.239517],[17.63669,99.239388],[17.635361,99.23925],[17.63233,99.238876],[17.63176,99.238823],[17.631161,99.238739],[17.630199,99.238609],[17.63006,99.238586],[17.629971,99.238579],[17.62962,99.238541],[17.629141,99.238472],[17.62866,99.238403],[17.628309,99.23835],[17.627979,99.238281],[17.62742,99.238197],[17.62673,99.238037],[17.62583,99.237892],[17.625059,99.237633],[17.622801,99.236839],[17.621441,99.236008],[17.61692,99.232162],[17.61537,99.230904],[17.61335,99.229797],[17.60886,99.227928],[17.602249,99.22522],[17.597521,99.223282],[17.59412,99.222054],[17.587271,99.220108],[17.58593,99.219467],[17.584789,99.218277],[17.5783,99.208618],[17.57519,99.203941],[17.574329,99.203087],[17.573111,99.202309],[17.57239,99.202087],[17.57156,99.201981],[17.57074,99.202003],[17.564529,99.203102],[17.56094,99.203789],[17.559891,99.203529],[17.559389,99.203369],[17.55278,99.200447],[17.545259,99.197067],[17.537621,99.193703],[17.52972,99.190163],[17.522421,99.186867],[17.517151,99.184593],[17.511311,99.183838],[17.50985,99.183296],[17.508881,99.182648],[17.503361,99.178322],[17.499451,99.175423],[17.499241,99.175041],[17.48904,99.167084],[17.47415,99.162407],[17.469481,99.161247],[17.423571,99.157494],[17.41935,99.157249],[17.41753,99.156578],[17.411221,99.151299],[17.40942,99.150032],[17.40662,99.149208],[17.39879,99.149406],[17.39036,99.148537],[17.38191,99.147797],[17.377081,99.149017],[17.37434,99.149094],[17.36429,99.146599],[17.3626,99.146698],[17.354561,99.148918],[17.35183,99.149513],[17.34754,99.14946],[17.34433,99.149437],[17.34161,99.149643],[17.33868,99.151382],[17.335911,99.153374],[17.33367,99.154083],[17.33156,99.153992],[17.30291,99.147034],[17.295,99.142593],[17.28458,99.141388],[17.28159,99.140633],[17.25828,99.132843],[17.24894,99.128304],[17.23995,99.123833],[17.238461,99.122993],[17.237061,99.122704],[17.207069,99.123238],[17.20488,99.123596],[17.20418,99.123947],[17.2031,99.12455],[17.19191,99.130913],[17.179131,99.138077],[17.17695,99.138298],[17.17457,99.137848],[17.16736,99.135223],[17.15797,99.131851],[17.15015,99.129463],[17.147699,99.128029],[17.13851,99.112953],[17.13471,99.106644],[17.132629,99.104424],[17.126169,99.098793],[17.115339,99.091873],[17.113079,99.08847],[17.111059,99.084801],[17.109261,99.080406],[17.10791,99.077362],[17.105841,99.075607],[17.103371,99.074699],[17.089741,99.072487],[17.074369,99.06559],[17.07151,99.06543],[17.069031,99.066544],[17.06661,99.06781],[17.05814,99.072273],[17.047461,99.078308],[17.03545,99.087624],[17.023211,99.097221],[17.00762,99.108757],[16.997351,99.112717],[16.988581,99.117897],[16.980551,99.122093],[16.979561,99.122704],[16.978951,99.12368],[16.976191,99.128593],[16.97452,99.130058],[16.97257,99.130501],[16.968321,99.13092],[16.96356,99.131462],[16.96092,99.13134],[16.920919,99.115631],[16.919189,99.11586],[16.91795,99.11602],[16.91305,99.118767],[16.90901,99.121246],[16.9007,99.126984],[16.89715,99.128098],[16.893391,99.129143],[16.89175,99.129051],[16.885201,99.127052],[16.88372,99.126694],[16.881399,99.127083],[16.876499,99.130058],[16.87117,99.133377],[16.863501,99.13826],[16.85927,99.12957],[16.856239,99.123466],[16.855671,99.12233],[16.85342,99.117859],[16.85202,99.115067],[16.85084,99.113182],[16.84898,99.111923],[16.84684,99.111504],[16.84412,99.112358],[16.8416,99.11367],[16.84152,99.113724],[16.837959,99.115807],[16.835329,99.117531],[16.821699,99.130074],[16.801649,99.148598],[16.799669,99.150833],[16.798031,99.15358],[16.795401,99.157867],[16.79244,99.162163],[16.78866,99.166969],[16.76845,99.18911],[16.76483,99.192543],[16.7096,99.240257],[16.68836,99.258202],[16.679461,99.264771],[16.67762,99.266113],[16.677481,99.266212],[16.6754,99.267906],[16.67342,99.269623],[16.67309,99.270317],[16.67288,99.271057],[16.672859,99.271423],[16.67281,99.272797],[16.672779,99.273537],[16.672729,99.27478],[16.672661,99.275673],[16.672489,99.276649],[16.672251,99.277786],[16.67214,99.278313],[16.67173,99.280197],[16.671499,99.281181],[16.6712,99.283028],[16.671181,99.283287],[16.671249,99.285454],[16.671789,99.288597],[16.671829,99.288857],[16.672001,99.289909],[16.67218,99.290947],[16.672421,99.292236],[16.6726,99.293266],[16.67338,99.298218],[16.673161,99.300034],[16.672979,99.300537],[16.672041,99.302116],[16.66967,99.304527],[16.666189,99.308037],[16.665819,99.308411],[16.663031,99.31118],[16.66287,99.311348],[16.66259,99.31163],[16.6623,99.311943],[16.66151,99.312729],[16.6612,99.313026],[16.66095,99.313278],[16.66025,99.314003],[16.659611,99.314667],[16.659439,99.314842],[16.658159,99.316139],[16.65443,99.319923],[16.65276,99.321609],[16.652571,99.3218],[16.649229,99.325203],[16.647921,99.326508],[16.646601,99.32785],[16.64641,99.328041],[16.64311,99.331429],[16.64192,99.332878],[16.64097,99.334152],[16.64082,99.334373],[16.637951,99.338142],[16.63311,99.344543],[16.630091,99.348587],[16.629789,99.348991],[16.629169,99.349792],[16.628531,99.350601],[16.62711,99.352493],[16.62414,99.356438],[16.62381,99.35685],[16.62253,99.358543],[16.62108,99.360443],[16.618429,99.363991],[16.61496,99.368683],[16.61392,99.370857],[16.613609,99.37159],[16.61319,99.372566],[16.613079,99.37281],[16.61297,99.373062],[16.612749,99.373558],[16.611071,99.377563],[16.610439,99.379044],[16.60939,99.381523],[16.60792,99.384987],[16.60771,99.385483],[16.607599,99.385727],[16.607189,99.386703],[16.60689,99.387444],[16.606569,99.388168],[16.606159,99.389153],[16.605419,99.390877],[16.605009,99.391869],[16.603491,99.395462],[16.603121,99.396317],[16.60302,99.396568],[16.602591,99.397552],[16.600929,99.401466],[16.60062,99.402206],[16.600519,99.402458],[16.59807,99.408287],[16.596411,99.412201],[16.596001,99.41317],[16.595791,99.413658],[16.595591,99.414146],[16.594521,99.416603],[16.594311,99.417084],[16.594101,99.41758],[16.594,99.417831],[16.59269,99.420998],[16.591021,99.424927],[16.588301,99.431328],[16.586519,99.435532],[16.58543,99.437042],[16.584,99.438202],[16.58209,99.439056],[16.580641,99.439629],[16.580151,99.439812],[16.578939,99.440331],[16.57461,99.442101],[16.57412,99.442299],[16.57338,99.442596],[16.57313,99.442703],[16.571659,99.443283],[16.57023,99.443893],[16.567341,99.44503],[16.566139,99.445511],[16.563231,99.446663],[16.56251,99.446953],[16.55891,99.448486],[16.55868,99.448608],[16.558229,99.448868],[16.556589,99.45018],[16.554319,99.4524],[16.55036,99.456284],[16.548071,99.458511],[16.54731,99.459251],[16.544491,99.461937],[16.544331,99.462097],[16.543751,99.462677],[16.543159,99.463272],[16.54306,99.463379],[16.542561,99.463837],[16.5424,99.463989],[16.542191,99.464241],[16.542009,99.464417],[16.541679,99.464737],[16.541269,99.465134],[16.540661,99.465729],[16.540331,99.466057],[16.53981,99.466583],[16.539049,99.4673],[16.538851,99.467484],[16.53808,99.468224],[16.53751,99.468781],[16.536751,99.469521],[16.53598,99.470268],[16.53504,99.471191],[16.534849,99.471367],[16.53429,99.471931],[16.53392,99.472313],[16.533001,99.473228],[16.53264,99.473587],[16.530359,99.475601],[16.528509,99.47641],[16.52446,99.477753],[16.52404,99.47789],[16.52319,99.478142],[16.52297,99.47821],[16.522091,99.478523],[16.52186,99.478592],[16.521629,99.478683],[16.521151,99.478859],[16.51795,99.479942],[16.516251,99.480507],[16.51479,99.481003],[16.51083,99.482323],[16.50983,99.482658],[16.509581,99.482742],[16.508089,99.483253],[16.507589,99.483414],[16.507099,99.483589],[16.506849,99.483673],[16.50609,99.483887],[16.504271,99.484047],[16.502211,99.483627],[16.501431,99.483429],[16.50091,99.483299],[16.498619,99.482689],[16.497601,99.482422],[16.497089,99.482277],[16.49658,99.48214],[16.49402,99.481621],[16.492479,99.481903],[16.491171,99.482773],[16.48962,99.484154],[16.48595,99.487839],[16.485571,99.488213],[16.48538,99.488403],[16.483351,99.490791],[16.482929,99.491463],[16.48209,99.49276],[16.48167,99.493408],[16.481529,99.493629],[16.481239,99.494072],[16.481091,99.494301],[16.480101,99.495537],[16.479,99.496292],[16.47747,99.496696],[16.47649,99.496689],[16.476089,99.496658],[16.47576,99.496643],[16.475479,99.496613],[16.47537,99.496597],[16.47506,99.496567],[16.474609,99.496552],[16.472771,99.496483],[16.471889,99.496407],[16.471439,99.496384],[16.470751,99.496323],[16.470169,99.496246],[16.469761,99.496193],[16.468161,99.496147],[16.467911,99.496132],[16.46665,99.496063],[16.465639,99.495987],[16.464371,99.495918],[16.46105,99.495689],[16.460541,99.495644],[16.4568,99.495323],[16.455311,99.495621],[16.453951,99.496407],[16.45089,99.498993],[16.4485,99.500977],[16.447519,99.501823],[16.44635,99.5028],[16.445999,99.503113],[16.44545,99.503563],[16.44314,99.505539],[16.439569,99.508553],[16.438971,99.509071],[16.436991,99.51075],[16.43314,99.513939],[16.428801,99.517578],[16.424419,99.521103],[16.422661,99.521637],[16.421869,99.521713],[16.42108,99.521698],[16.4182,99.521629],[16.415039,99.521561],[16.414009,99.521538],[16.412491,99.5215],[16.411449,99.521492],[16.409679,99.521538],[16.409161,99.521561],[16.40608,99.521568],[16.405041,99.521561],[16.400579,99.521568],[16.40032,99.521568],[16.397169,99.521553],[16.395321,99.521553],[16.393999,99.521561],[16.39348,99.521561],[16.393221,99.521561],[16.391121,99.521568],[16.390341,99.521584],[16.38854,99.521942],[16.3883,99.522041],[16.38677,99.523033],[16.38658,99.523209],[16.385611,99.524483],[16.38533,99.52494],[16.38464,99.5261],[16.384501,99.526337],[16.38258,99.529541],[16.382441,99.529778],[16.382299,99.529999],[16.38088,99.53231],[16.380739,99.532539],[16.380051,99.53373],[16.37991,99.533958],[16.37948,99.53466],[16.377069,99.538559],[16.374229,99.543198],[16.37394,99.543663],[16.37365,99.544144],[16.370649,99.549042],[16.370359,99.549507],[16.36949,99.550911],[16.366779,99.555702],[16.365179,99.558617],[16.364639,99.559593],[16.36409,99.560547],[16.363819,99.561043],[16.363279,99.562012],[16.36249,99.563469],[16.360201,99.567574],[16.357809,99.572144],[16.354179,99.579102],[16.3515,99.584412],[16.35004,99.587318],[16.34803,99.591476],[16.345989,99.595329],[16.343031,99.599533],[16.341009,99.602783],[16.340269,99.605164],[16.338449,99.611328],[16.33709,99.614616],[16.33412,99.621323],[16.33148,99.627182],[16.331369,99.627449],[16.331261,99.627708],[16.330481,99.629509],[16.330259,99.630028],[16.327971,99.635368],[16.325199,99.641823],[16.32476,99.642838],[16.32181,99.649696],[16.319851,99.654007],[16.318529,99.655403],[16.31654,99.656693],[16.314871,99.657768],[16.312389,99.659416],[16.306021,99.663673],[16.305111,99.664284],[16.304211,99.664886],[16.303789,99.665169],[16.3034,99.665428],[16.30304,99.665657],[16.30287,99.665779],[16.30233,99.666168],[16.301941,99.666451],[16.3013,99.666878],[16.299049,99.668381],[16.29727,99.669563],[16.29705,99.669693],[16.2957,99.670593],[16.291679,99.673317],[16.28627,99.676964],[16.281839,99.679993],[16.279289,99.681396],[16.27492,99.682663],[16.27183,99.68354],[16.27051,99.683891],[16.269991,99.684036],[16.26354,99.685898],[16.26153,99.686478],[16.261141,99.6866],[16.260651,99.68676],[16.26017,99.686951],[16.25979,99.687103],[16.25938,99.687233],[16.258711,99.687469],[16.257021,99.688049],[16.252399,99.689629],[16.24692,99.691513],[16.2456,99.691933],[16.239849,99.693893],[16.238029,99.694511],[16.23308,99.696198],[16.23126,99.696831],[16.225599,99.698792],[16.218821,99.701103],[16.212601,99.703194],[16.20962,99.704193],[16.20705,99.70507],[16.206079,99.705429],[16.20174,99.706932],[16.19735,99.708397],[16.191231,99.710533],[16.188431,99.711472],[16.18173,99.713753],[16.18017,99.714302],[16.173941,99.716423],[16.16938,99.717972],[16.168091,99.718399],[16.16556,99.719292],[16.16477,99.719543],[16.16378,99.719856],[16.161659,99.720573],[16.16049,99.720901],[16.15974,99.721077],[16.159121,99.721191],[16.158421,99.721283],[16.157591,99.721336],[16.156981,99.721367],[16.15621,99.721359],[16.15048,99.721077],[16.14863,99.721024],[16.14603,99.720886],[16.13858,99.720573],[16.131781,99.720222],[16.12528,99.719902],[16.12373,99.719841],[16.122801,99.719818],[16.1194,99.719658],[16.118521,99.719597],[16.113729,99.719383],[16.11319,99.719353],[16.1068,99.719032],[16.105841,99.718987],[16.105129,99.719032],[16.10462,99.719116],[16.104019,99.719231],[16.10347,99.71936],[16.10277,99.719597],[16.10154,99.720123],[16.100809,99.720444],[16.099581,99.72094],[16.09844,99.72142],[16.09675,99.722153],[16.094219,99.723213],[16.09005,99.724953],[16.08955,99.725159],[16.084841,99.727127],[16.083389,99.72776],[16.077311,99.730301],[16.073151,99.732063],[16.07266,99.732262],[16.069929,99.733414],[16.06741,99.734489],[16.066401,99.73497],[16.065611,99.735367],[16.064939,99.735817],[16.06447,99.736214],[16.063801,99.73674],[16.06336,99.737137],[16.06078,99.739899],[16.056009,99.745132],[16.05513,99.746132],[16.05422,99.747093],[16.051439,99.750137],[16.050329,99.75135],[16.04903,99.752762],[16.04497,99.757187],[16.04143,99.761009],[16.041059,99.761414],[16.039579,99.763023],[16.037701,99.765007],[16.03714,99.76561],[16.036949,99.765823],[16.033899,99.769058],[16.03371,99.769257],[16.032,99.771072],[16.030279,99.772903],[16.03009,99.773102],[16.02557,99.777908],[16.02293,99.780693],[16.022169,99.781502],[16.02067,99.783081],[16.017441,99.786484],[16.016199,99.787788],[16.01602,99.787971],[16.01585,99.788147],[16.01568,99.788322],[16.015511,99.788498],[16.012739,99.791367],[16.011209,99.792999],[16.009171,99.795059],[16.00786,99.796494],[16.00614,99.798203],[16.0058,99.798553],[16.00466,99.799652],[16.003059,99.801308],[16.002541,99.801842],[16.00178,99.802597],[16.00106,99.803329],[15.99995,99.804489],[15.99944,99.805008],[15.99893,99.805519],[15.99852,99.805931],[15.99809,99.806351],[15.99742,99.807022],[15.99617,99.80825],[15.9937,99.810783],[15.98944,99.815048],[15.98454,99.819893],[15.97968,99.824661],[15.97439,99.829727],[15.97032,99.833603],[15.96583,99.83783],[15.96129,99.842163],[15.95713,99.846077],[15.95294,99.849953],[15.94795,99.854523],[15.9424,99.859627],[15.93697,99.864578],[15.93211,99.868973],[15.92862,99.872124],[15.9278,99.872879],[15.9247,99.875671],[15.92328,99.876953],[15.91854,99.880997],[15.91306,99.885612],[15.9105,99.887657],[15.90986,99.888168],[15.9086,99.889183],[15.90651,99.890747],[15.90628,99.890923],[15.90516,99.891769],[15.90126,99.894272],[15.89934,99.895317],[15.89693,99.896713],[15.8955,99.897507],[15.89383,99.898468],[15.89143,99.899841],[15.89,99.900673],[15.88886,99.90136],[15.88588,99.903069],[15.88534,99.903381],[15.88477,99.903732],[15.88452,99.903877],[15.8836,99.904411],[15.88287,99.904839],[15.8822,99.90519],[15.88194,99.905327],[15.88062,99.906067],[15.87939,99.906723],[15.87742,99.907837],[15.87723,99.907944],[15.87684,99.908173],[15.87643,99.908409],[15.87577,99.908791],[15.87485,99.909317],[15.87437,99.909599],[15.87366,99.910019],[15.86913,99.912613],[15.86472,99.915161],[15.86172,99.916901],[15.85842,99.918762],[15.8563,99.919983],[15.85584,99.920273],[15.85352,99.921623],[15.84915,99.924141],[15.848,99.924797],[15.84266,99.927872],[15.8408,99.92894],[15.83893,99.929993],[15.83869,99.930107],[15.83772,99.930634],[15.83604,99.931587],[15.83532,99.932007],[15.83225,99.933769],[15.83179,99.934036],[15.83115,99.934402],[15.83021,99.934952],[15.82925,99.935547],[15.82839,99.93605],[15.82702,99.936836],[15.82609,99.93734],[15.82586,99.937469],[15.82543,99.937714],[15.82486,99.938042],[15.82453,99.938217],[15.82423,99.938393],[15.82276,99.939194],[15.82242,99.939377],[15.82224,99.939491],[15.82184,99.939728],[15.81962,99.941002],[15.81839,99.941757],[15.81794,99.942009],[15.81565,99.943443],[15.81245,99.946007],[15.80879,99.949387],[15.80795,99.95015],[15.80672,99.951286],[15.80631,99.95166],[15.8061,99.951851],[15.80549,99.952423],[15.80023,99.957314],[15.79641,99.960907],[15.79151,99.965446],[15.79109,99.96582],[15.79089,99.966019],[15.79047,99.966408],[15.78922,99.967567],[15.78465,99.971817],[15.78341,99.972961],[15.77872,99.977364],[15.77314,99.98259],[15.77137,99.984322],[15.77118,99.984497],[15.771,99.98468],[15.7703,99.985336],[15.76963,99.985992],[15.76806,99.98748],[15.76747,99.988037],[15.76677,99.988701],[15.76587,99.989563],[15.76536,99.990021],[15.76506,99.990311],[15.76447,99.990868],[15.76404,99.99128],[15.76343,99.991859],[15.76275,99.9925],[15.76078,99.99437],[15.75662,99.99836],[15.75542,99.999496],[15.75523,99.99968],[15.75283,100.001961],[15.75206,100.002693],[15.75028,100.004356],[15.7501,100.004539],[15.74955,100.005058],[15.74901,100.005569],[15.74865,100.005913],[15.74847,100.006073],[15.74829,100.006241],[15.74811,100.006409],[15.74671,100.007736],[15.74604,100.008377],[15.74588,100.008537],[15.74571,100.00869],[15.74555,100.00885],[15.74347,100.010841],[15.74286,100.011513],[15.74271,100.011703],[15.74197,100.012627],[15.74139,100.013474],[15.74012,100.015778],[15.73951,100.017059],[15.73938,100.017326],[15.73767,100.020683],[15.73662,100.022697],[15.73636,100.023193],[15.73404,100.027718],[15.7334,100.028908],[15.73182,100.031929],[15.73156,100.03244],[15.73129,100.032944],[15.73064,100.034187],[15.72901,100.037308],[15.72816,100.038933],[15.72779,100.039627],[15.72742,100.040352],[15.72717,100.040833],[15.72655,100.042023],[15.7244,100.04612],[15.72409,100.046707],[15.72305,100.048714],[15.72204,100.050598],[15.72073,100.053078],[15.72005,100.054352],[15.71917,100.056023],[15.71907,100.05619],[15.71891,100.056511],[15.71863,100.057007],[15.71828,100.057648],[15.71801,100.058121],[15.71785,100.058388],[15.71766,100.058548],[15.71751,100.058578],[15.71732,100.058617],[15.71702,100.058617],[15.71687,100.058578],[15.71626,100.058357],[15.71531,100.058052],[15.71488,100.057907],[15.71418,100.057663],[15.71319,100.057289],[15.70982,100.056313],[15.70848,100.056099],[15.70526,100.055977],[15.70499,100.055977],[15.70418,100.055969],[15.69769,100.055939],[15.69256,100.055923],[15.68718,100.05587],[15.68639,100.055878],[15.68184,100.055962],[15.67809,100.056519],[15.67601,100.057114],[15.67575,100.05719],[15.67549,100.057281],[15.67423,100.05777],[15.67133,100.059227],[15.67039,100.059776],[15.66859,100.06102],[15.66796,100.061508],[15.66775,100.061684],[15.66653,100.062759],[15.66613,100.063141],[15.66593,100.063339],[15.66535,100.063927],[15.66513,100.064194],[15.66399,100.065514],[15.66335,100.066238],[15.6628,100.066879],[15.66244,100.067307],[15.65813,100.072357],[15.65441,100.076736],[15.65335,100.07798],[15.64987,100.082092],[15.64952,100.082497],[15.64579,100.086853],[15.64386,100.089127],[15.64161,100.091782],[15.63819,100.095734],[15.63676,100.097382],[15.63577,100.098457],[15.63527,100.099083],[15.63476,100.099693],[15.63253,100.10228],[15.63229,100.102562],[15.6313,100.103737],[15.63024,100.105003],[15.62668,100.109123],[15.6219,100.114677],[15.62155,100.115082],[15.62043,100.116333],[15.61751,100.119652],[15.61555,100.121933],[15.61525,100.122299],[15.61512,100.122459],[15.61465,100.122726],[15.61421,100.12278],[15.61356,100.12236],[15.61316,100.121872],[15.61283,100.121582],[15.6123,100.121407],[15.61209,100.121422],[15.61115,100.121536],[15.6109,100.121559],[15.61037,100.121597],[15.60577,100.122017],[15.60203,100.122414],[15.60097,100.122528],[15.59964,100.122673],[15.59883,100.122726],[15.59727,100.122887],[15.594,100.123238],[15.59322,100.123322],[15.59139,100.123497],[15.59112,100.123528],[15.58641,100.124046],[15.58456,100.12426],[15.58217,100.124512],[15.57952,100.124786],[15.57741,100.125023],[15.57477,100.125313],[15.57104,100.12571],[15.5673,100.126099],[15.56677,100.126152],[15.56257,100.126587],[15.55892,100.126907],[15.55866,100.126938],[15.55732,100.127083],[15.55625,100.12719],[15.55572,100.127258],[15.55546,100.127289],[15.55467,100.127388],[15.54787,100.128113],[15.54605,100.128242],[15.54499,100.128197],[15.54446,100.128113],[15.54343,100.127853],[15.5396,100.126534],[15.53935,100.126427],[15.53479,100.124977],[15.53266,100.124817],[15.53055,100.125191],[15.52954,100.125526],[15.52501,100.127136],[15.52288,100.127296],[15.52028,100.126984],[15.51816,100.126678],[15.51471,100.126213],[15.5098,100.125504],[15.50955,100.125473],[15.50904,100.125397],[15.50748,100.125252],[15.50665,100.125229],[15.50425,100.125526],[15.50321,100.125801],[15.50295,100.125893],[15.50144,100.126472],[15.49994,100.127098],[15.49968,100.127197],[15.4979,100.127907],[15.49206,100.130219],[15.49181,100.130333],[15.48732,100.132233],[15.48482,100.133888],[15.48358,100.134918],[15.48048,100.137543],[15.47986,100.138069],[15.47966,100.138237],[15.47863,100.139107],[15.4778,100.139793],[15.47758,100.139954],[15.4769,100.140404],[15.47667,100.140549],[15.4762,100.140823],[15.47547,100.141182],[15.47293,100.142067],[15.47161,100.142403],[15.46452,100.144142],[15.46318,100.144463],[15.46139,100.144882],[15.46078,100.145027],[15.45703,100.145958],[15.45379,100.14653],[15.45133,100.146538],[15.44864,100.146118],[15.44813,100.145958],[15.44761,100.145798],[15.44397,100.144928],[15.44036,100.144043],[15.43984,100.143913],[15.43825,100.143509],[15.43669,100.143097],[15.43405,100.142403],[15.43217,100.142311],[15.43031,100.142761],[15.42954,100.143051],[15.42879,100.143341],[15.42844,100.143471],[15.42729,100.143898],[15.42502,100.144737],[15.41997,100.146683],[15.41895,100.147003],[15.41788,100.147179],[15.41599,100.147247],[15.41572,100.147247],[15.41438,100.147217],[15.41276,100.147232],[15.41113,100.147217],[15.40869,100.147186],[15.40271,100.147087],[15.40135,100.147087],[15.40056,100.147079],[15.39872,100.147141],[15.39752,100.147209],[15.39729,100.147232],[15.39668,100.147301],[15.39601,100.147377],[15.39561,100.147438],[15.39551,100.147453],[15.3949,100.14756],[15.39478,100.147583],[15.39407,100.14772],[15.39362,100.147827],[15.393,100.148003],[15.39124,100.148438],[15.39037,100.148712],[15.39014,100.148788],[15.38919,100.149109],[15.38869,100.149261],[15.38818,100.149422],[15.38664,100.14994],[15.38307,100.151154],[15.38178,100.151604],[15.38048,100.152039],[15.38021,100.15213],[15.37995,100.152222],[15.37785,100.152931],[15.37759,100.153023],[15.37479,100.153976],[15.3707,100.155373],[15.36592,100.157043],[15.36289,100.158073],[15.35931,100.159286],[15.35477,100.16095],[15.35355,100.161484],[15.34929,100.163544],[15.34725,100.164627],[15.34634,100.165154],[15.34216,100.16748],[15.341,100.168121],[15.33988,100.168739],[15.3395,100.168953],[15.33886,100.169312],[15.33798,100.1698],[15.33737,100.170143],[15.33693,100.170387],[15.33648,100.170631],[15.33251,100.172836],[15.33088,100.173737],[15.32901,100.174782],[15.32783,100.17543],[15.32526,100.176849],[15.32505,100.176971],[15.32421,100.177437],[15.32274,100.178253],[15.32159,100.178886],[15.32127,100.17907],[15.31896,100.180351],[15.31723,100.18132],[15.3147,100.182716],[15.31442,100.182877],[15.31256,100.183907],[15.31003,100.185318],[15.30866,100.186073],[15.30612,100.187477],[15.30554,100.187843],[15.30511,100.18808],[15.30416,100.188568],[15.30307,100.189117],[15.30274,100.189278],[15.30025,100.190407],[15.2999,100.190559],[15.29957,100.190697],[15.2993,100.190811],[15.29896,100.190964],[15.29851,100.191147],[15.29838,100.1912],[15.29825,100.191261],[15.29813,100.191307],[15.29798,100.191368],[15.29782,100.191437],[15.2976,100.191521],[15.29703,100.191742],[15.29618,100.192047],[15.29541,100.192329],[15.29437,100.19268],[15.29415,100.192757],[15.29393,100.192833],[15.29348,100.192978],[15.29326,100.193047],[15.28926,100.194153],[15.28852,100.194344],[15.28729,100.194672],[15.28608,100.195],[15.28584,100.195061],[15.28535,100.19519],[15.28036,100.196571],[15.27729,100.197403],[15.27612,100.197723],[15.2747,100.198097],[15.27351,100.198418],[15.27231,100.198738],[15.26826,100.199837],[15.26282,100.201271],[15.26071,100.201843],[15.26047,100.20192],[15.25882,100.202377],[15.2581,100.202583],[15.25691,100.202904],[15.25644,100.203018],[15.25549,100.203247],[15.25526,100.2033],[15.2548,100.203407],[15.25265,100.203819],[15.24998,100.204338],[15.24949,100.20443],[15.24851,100.204643],[15.24778,100.204781],[15.24681,100.204987],[15.24633,100.205078],[15.24512,100.205307],[15.24278,100.20578],[15.24127,100.206078],[15.24049,100.20623],[15.23587,100.207352],[15.23538,100.207481],[15.23346,100.208],[15.23133,100.208572],[15.22951,100.209053],[15.22351,100.210709],[15.2228,100.210907],[15.22038,100.211639],[15.22014,100.211723],[15.21967,100.211884],[15.21848,100.212288],[15.21754,100.212608],[15.21614,100.21312],[15.21521,100.213493],[15.21316,100.214401],[15.20888,100.216461],[15.20757,100.217171],[15.20649,100.217796],[15.20231,100.220222],[15.19877,100.222237],[15.19429,100.224808],[15.19122,100.226486],[15.18906,100.227707],[15.18715,100.228844],[15.18267,100.231468],[15.18014,100.233093],[15.17931,100.23365],[15.17829,100.23436],[15.17748,100.234932],[15.17647,100.235672],[15.17547,100.236397],[15.17467,100.237],[15.17427,100.237297],[15.17085,100.239853],[15.16943,100.240891],[15.16743,100.242371],[15.16702,100.242668],[15.16662,100.242973],[15.1636,100.245178],[15.16119,100.246941],[15.15867,100.248703],[15.15807,100.249092],[15.1566,100.249992],[15.15618,100.250237],[15.1529,100.251968],[15.15093,100.25296],[15.14985,100.25354],[15.14877,100.254128],[15.14688,100.255127],[15.14652,100.25531],[15.14462,100.256218],[15.14441,100.25631],[15.14381,100.256569],[15.14345,100.256737],[15.14328,100.256813],[15.14258,100.257141],[15.1424,100.257233],[15.13979,100.258553],[15.13638,100.260277],[15.13618,100.260384],[15.13599,100.260468],[15.13366,100.261642],[15.13288,100.262032],[15.13269,100.262131],[15.13211,100.262428],[15.13091,100.263031],[15.13071,100.26313],[15.13028,100.263344],[15.13006,100.263458],[15.12984,100.263573],[15.12871,100.26413],[15.12803,100.26445],[15.12519,100.265984],[15.12263,100.267998],[15.12059,100.270264],[15.12029,100.270668],[15.11829,100.273659],[15.11704,100.275551],[15.11691,100.275757],[15.11476,100.279121],[15.11189,100.283524],[15.1103,100.286003],[15.10981,100.286713],[15.10929,100.287376],[15.107,100.289864],[15.1045,100.291901],[15.10075,100.294456],[15.09984,100.29509],[15.09925,100.295486],[15.09802,100.296333],[15.09573,100.29789],[15.09328,100.299507],[15.08991,100.301826],[15.08797,100.303169],[15.08675,100.304001],[15.08506,100.305168],[15.08359,100.306198],[15.08292,100.306671],[15.08214,100.307297],[15.08133,100.307953],[15.07951,100.30954],[15.07753,100.31144],[15.07606,100.312767],[15.07379,100.315063],[15.07118,100.317436],[15.06834,100.319649],[15.06525,100.32151],[15.05924,100.324608],[15.05301,100.327957],[15.04762,100.330757],[15.04751,100.330833],[15.04493,100.332314],[15.04151,100.334091],[15.0373,100.335579],[15.03228,100.336708],[15.02009,100.339088],[15.01539,100.340363],[15.01103,100.342216],[14.99827,100.348938],[14.98775,100.3545],[14.97862,100.359711],[14.94595,100.385002],[14.93855,100.390968],[14.93602,100.392723],[14.93327,100.394218],[14.9229,100.399612],[14.9125,100.405006],[14.90917,100.406914],[14.90763,100.408119],[14.90623,100.409462],[14.90454,100.411537],[14.90295,100.413712],[14.89979,100.418411],[14.89884,100.419594],[14.89781,100.420708],[14.89672,100.421722],[14.89556,100.422684],[14.88987,100.426567],[14.88409,100.430473],[14.87735,100.435089],[14.87514,100.43644],[14.87249,100.437813],[14.87109,100.438423],[14.86971,100.43895],[14.86837,100.439407],[14.86738,100.439743],[14.84928,100.445084],[14.84726,100.445663],[14.84332,100.446716],[14.83894,100.447487],[14.83473,100.44767],[14.82958,100.44735],[14.82374,100.446953],[14.81974,100.446632],[14.81552,100.447098],[14.81223,100.448128],[14.80827,100.450729],[14.80396,100.454041],[14.7992,100.45681],[14.79534,100.458],[14.79177,100.458366],[14.78836,100.457741],[14.78346,100.455803],[14.77892,100.453453],[14.77537,100.451897],[14.77126,100.450951],[14.76771,100.450951],[14.76466,100.451317],[14.76021,100.452454],[14.75194,100.45343],[14.74029,100.454597],[14.72864,100.454987],[14.71756,100.455673],[14.71203,100.455742],[14.70655,100.455513],[14.70081,100.456139],[14.69838,100.456802],[14.69604,100.457611],[14.69409,100.458519],[14.69224,100.459549],[14.68872,100.461807],[14.68175,100.466316],[14.67903,100.468048],[14.67772,100.468758],[14.67635,100.469383],[14.6747,100.470032],[14.6729,100.470589],[14.67138,100.470947],[14.6698,100.471199],[14.66144,100.472649],[14.65078,100.474442],[14.64606,100.474808],[14.6414,100.474693],[14.63213,100.473251],[14.61383,100.469772],[14.60978,100.468941],[14.60526,100.469658],[14.60155,100.470863],[14.596,100.473961],[14.58557,100.480904],[14.5814,100.483727],[14.57584,100.487503],[14.57241,100.489838],[14.56537,100.493813],[14.55793,100.497063],[14.5467,100.500923],[14.53397,100.504532],[14.52399,100.507629],[14.51725,100.512268],[14.51076,100.517433],[14.50352,100.520782],[14.48903,100.526711],[14.48318,100.529457],[14.47226,100.534416],[14.46707,100.536926],[14.46552,100.537682],[14.46439,100.538063],[14.4626,100.538567],[14.45988,100.539131],[14.45759,100.539543],[14.45528,100.540001],[14.45267,100.540497],[14.45009,100.540977],[14.44627,100.541733],[14.44432,100.542099],[14.4423,100.542282],[14.43974,100.54303],[14.43799,100.543922],[14.43635,100.545029],[14.43472,100.546593],[14.4333,100.548424],[14.42962,100.553459],[14.42807,100.555634],[14.42727,100.556686],[14.42557,100.558952],[14.41425,100.574028],[14.40527,100.584137],[14.40375,100.585831],[14.40259,100.587097],[14.40093,100.588966],[14.39634,100.594048],[14.39526,100.595238],[14.39514,100.595383],[14.39509,100.595413],[14.39261,100.597809],[14.38907,100.600853],[14.38355,100.604683],[14.38173,100.605766],[14.37816,100.607613],[14.37716,100.608047],[14.37459,100.609138],[14.37241,100.609978],[14.36911,100.610939],[14.36623,100.611748],[14.36269,100.612419],[14.35971,100.613007],[14.35777,100.613167],[14.35565,100.613297],[14.35309,100.613327],[14.34958,100.613258],[14.34487,100.613213],[14.332,100.613342],[14.32856,100.613327],[14.31873,100.613327],[14.30838,100.613342],[14.3044,100.613373],[14.30383,100.613373],[14.30248,100.613388],[14.28388,100.613457],[14.26434,100.613449],[14.26224,100.613487],[14.25709,100.613564],[14.2519,100.613564],[14.24813,100.613564],[14.24431,100.613411],[14.24005,100.612999],[14.23393,100.612228],[14.23293,100.612091],[14.23122,100.61187],[14.21575,100.609734],[14.21111,100.609123],[14.21052,100.609062],[14.20943,100.608963],[14.20799,100.60891],[14.20694,100.608932],[14.2055,100.608994],[14.2024,100.609047],[14.20071,100.609154],[14.19831,100.609467],[14.19601,100.609779],[14.19276,100.610519],[14.18953,100.61145],[14.18302,100.613777],[14.17835,100.61557],[14.17814,100.615677],[14.17804,100.615761],[14.17794,100.615837],[14.17783,100.615936],[14.17773,100.616058],[14.17759,100.616257],[14.17754,100.616348],[14.17745,100.616524],[14.17739,100.616699],[14.17736,100.616814],[14.17734,100.616943],[14.17734,100.617081],[14.17737,100.617218],[14.17741,100.617348],[14.17747,100.61747],[14.17755,100.617599],[14.17835,100.618568],[14.17858,100.618782],[14.17868,100.618927],[14.17905,100.619164],[14.17952,100.619453],[14.17988,100.619713],[14.18023,100.620003],[14.18057,100.620293],[14.18088,100.620598],[14.18122,100.620956],[14.18154,100.621353],[14.18183,100.621742],[14.1821,100.622139],[14.18238,100.622627],[14.18266,100.623169],[14.18351,100.624786],[14.18394,100.625603],[14.1876,100.6325],[14.18777,100.632629],[14.18804,100.632973],[14.18819,100.633118],[14.18844,100.633324],[14.1886,100.633423],[14.18879,100.633507],[14.18898,100.633583],[14.18944,100.633728],[14.18958,100.633781],[14.18973,100.633858],[14.18985,100.633949],[14.18996,100.634079],[14.19003,100.634178],[14.1901,100.6343],[14.19017,100.634453],[14.19021,100.634598],[14.19024,100.634697],[14.19024,100.634773],[14.19026,100.634903],[14.19025,100.635078],[14.19024,100.635193],[14.19022,100.635292],[14.1902,100.635384],[14.19014,100.635567],[14.19004,100.635803],[14.18993,100.636009],[14.18973,100.636276],[14.18955,100.636513],[14.18934,100.636711],[14.18917,100.636848],[14.18869,100.637123],[14.18505,100.63929],[14.18225,100.640869],[14.16198,100.65229],[14.15898,100.653976],[14.14369,100.662613],[14.14085,100.664207],[14.12254,100.67453],[14.11993,100.676003],[14.1014,100.686447],[14.09778,100.688477],[14.08837,100.693787],[14.08782,100.694069],[14.08718,100.694328],[14.08655,100.694542],[14.08592,100.694717],[14.08521,100.694847],[14.08467,100.694923],[14.0686,100.696533],[14.06346,100.697052],[14.05247,100.698151],[14.05158,100.698227],[14.05068,100.698273],[14.02581,100.698288],[14.02536,100.698311],[14.02491,100.698341],[14.02444,100.698387],[14.02399,100.698463],[14.0235,100.698547],[14.02317,100.698624],[14.02292,100.698692],[14.0224,100.698837],[14.02195,100.698982],[14.02148,100.69915],[14.02108,100.699318],[14.02067,100.699501],[14.01956,100.699989],[14.00956,100.704399],[13.99926,100.708946],[13.99298,100.711723],[13.99042,100.712837],[13.98989,100.713013],[13.98935,100.713173],[13.98881,100.713287],[13.98828,100.713371],[13.98776,100.713417],[13.98726,100.713463],[13.98675,100.713448],[13.9863,100.713417],[13.98523,100.713333],[13.98473,100.713333],[13.9826,100.713287],[13.95215,100.71286],[13.95173,100.712837],[13.95132,100.712822],[13.95075,100.712784],[13.9502,100.712723],[13.94955,100.712624],[13.94912,100.712547],[13.94865,100.712463],[13.94311,100.710999],[13.93615,100.709167],[13.93011,100.707581],[13.92421,100.706032],[13.92266,100.705643],[13.92128,100.705261],[13.92036,100.704964],[13.91983,100.704773],[13.91909,100.704483],[13.9177,100.703888],[13.91276,100.701317],[13.90788,100.698799],[13.90705,100.698357],[13.89609,100.692703],[13.89326,100.691231],[13.88801,100.688507],[13.88746,100.688217],[13.87732,100.682983],[13.87618,100.682381],[13.86972,100.679039],[13.86879,100.678574],[13.86822,100.678307],[13.86793,100.6782],[13.86763,100.678101],[13.86725,100.677994],[13.86686,100.677887],[13.8578,100.675797],[13.8572,100.675636],[13.85666,100.675484],[13.85623,100.675323],[13.85546,100.675003],[13.8538,100.674316],[13.85204,100.673592],[13.85131,100.673302],[13.85097,100.67318],[13.85063,100.67308],[13.85029,100.672997],[13.84993,100.672928],[13.84957,100.672882],[13.84612,100.672638],[13.84541,100.672592],[13.84291,100.672417],[13.84251,100.672401],[13.84197,100.672401],[13.84152,100.672432],[13.84111,100.672478],[13.84064,100.672546],[13.84026,100.672623],[13.83963,100.672783],[13.83788,100.673233],[13.83672,100.673523],[13.83597,100.673721],[13.83529,100.673866],[13.83487,100.673943],[13.83439,100.674011],[13.83402,100.674049],[13.83295,100.674118],[13.83175,100.674179],[13.82532,100.67453],[13.8245,100.674606],[13.82378,100.674713],[13.8232,100.674828],[13.82128,100.675308],[13.81476,100.677017],[13.79887,100.681221],[13.79574,100.682037],[13.78257,100.685516],[13.78209,100.685669],[13.78161,100.685822],[13.7809,100.686073],[13.78006,100.686363],[13.77943,100.686623],[13.77875,100.68692],[13.77829,100.687134],[13.77761,100.687462],[13.77604,100.688309],[13.77088,100.691109],[13.76983,100.691681],[13.76765,100.692863],[13.76654,100.693466],[13.76069,100.696648],[13.75988,100.69709],[13.75691,100.6987],[13.75131,100.701736],[13.75102,100.701881],[13.75072,100.702011],[13.75036,100.702148],[13.7501,100.70224],[13.74983,100.702316],[13.74956,100.7024],[13.74928,100.702469],[13.74898,100.70253],[13.7487,100.702583],[13.7481,100.70266],[13.74738,100.702713],[13.74684,100.702713],[13.74257,100.702789],[13.74221,100.70298],[13.73885,100.703033],[13.73849,100.703217],[13.73729,100.703247],[13.73711,100.703346],[13.7362,100.70343],[13.73587,100.703499],[13.73561,100.703598],[13.73523,100.70388],[13.73436,100.704857],[13.73386,100.705383],[13.73325,100.705803],[13.73292,100.706093],[13.73268,100.706451],[13.73245,100.707199],[13.73227,100.70813],[13.7322,100.708519],[13.73188,100.710297],[13.7304,100.723747],[13.73037,100.724022],[13.72961,100.73085],[13.72959,100.731033],[13.72935,100.73317],[13.72933,100.733917],[13.72933,100.734703],[13.72949,100.740051],[13.72953,100.741081],[13.72953,100.741257],[13.7296,100.744133],[13.7297,100.748718],[13.72977,100.751572],[13.72991,100.757378],[13.72997,100.757896],[13.7309,100.761551],[13.73172,100.764793],[13.7318,100.765182],[13.73183,100.765602],[13.73191,100.76786],[13.73211,100.771118],[13.73215,100.773232],[13.73228,100.783249],[13.73232,100.784142],[13.73249,100.785889],[13.73291,100.79023],[13.73429,100.803726],[13.73383,100.805557],[13.73315,100.807281],[13.73138,100.809334],[13.72858,100.811081],[13.72721,100.81176],[13.7256,100.812553],[13.71357,100.818466],[13.71015,100.820236],[13.67427,100.838043],[13.67241,100.840233],[13.66908,100.845444],[13.60214,100.949783],[13.59885,100.954903],[13.59275,100.964043],[13.57161,100.981888],[13.55248,100.997871],[13.5509,100.999191],[13.5466,101.002937],[13.54299,101.005966],[13.53928,101.009087],[13.5367,101.011261],[13.49601,101.045448],[13.4933,101.046761],[13.49057,101.04705],[13.47329,101.04612],[13.4541,101.046257],[13.44076,101.046288],[13.42756,101.046783],[13.39933,101.047531],[13.39226,101.047073],[13.38711,101.046272],[13.36243,101.038658],[13.35742,101.036041],[13.35643,101.035423],[13.35091,101.031921],[13.34394,101.027634],[13.32626,101.016411],[13.31824,101.010399],[13.303,100.998978],[13.30144,100.997482],[13.30042,100.99649],[13.29915,100.99559],[13.29733,100.994743],[13.29551,100.993729],[13.29331,100.992599],[13.29079,100.991959],[13.28824,100.991524],[13.2831,100.991096],[13.27806,100.990791],[13.27206,100.990356],[13.26595,100.989998],[13.26406,100.989861],[13.26223,100.989769],[13.26119,100.98983],[13.26009,100.98996],[13.25884,100.990173],[13.25766,100.990509],[13.25655,100.990868],[13.25397,100.991837],[13.25177,100.992706],[13.24063,100.996986],[13.23351,100.99971],[13.22734,101.002083],[13.22418,101.003311],[13.22106,101.004509],[13.21955,101.005058],[13.21801,101.005463],[13.21637,101.005692],[13.21487,101.005783],[13.21191,101.005524],[13.20789,101.004379],[13.20639,101.003883],[13.19684,101.00074],[13.19001,100.99852],[13.18317,100.996277],[13.17575,100.993828],[13.16839,100.99144],[13.16099,100.989037],[13.15633,100.987556],[13.15439,100.986961],[13.15364,100.986717],[13.15228,100.986397],[13.15062,100.986153],[13.14806,100.986031],[13.14536,100.985947],[13.14282,100.985809],[13.13809,100.985718],[13.13165,100.985413],[13.12547,100.985199],[13.12188,100.985008],[13.12003,100.985031],[13.11832,100.985123],[13.11127,100.986557],[13.10656,100.987534],[13.10132,100.988663],[13.09598,100.989754],[13.09082,100.990791],[13.08545,100.99192],[13.07498,100.994072],[13.06974,100.995102],[13.06474,100.996117],[13.05745,100.996262],[13.05021,100.996323],[13.03819,100.996429],[13.025,100.996498],[13.01834,100.996536],[13.01381,100.996597],[13.01173,100.996452],[13.00731,100.995232],[12.99751,100.991707],[12.99483,100.990753],[12.98278,100.986504],[12.97491,100.983803],[12.97186,100.982681],[12.96919,100.981857],[12.96762,100.981293],[12.96685,100.981194],[12.9663,100.981056],[12.96574,100.98101],[12.96515,100.981056],[12.96462,100.981377],[12.96341,100.982033],[12.96096,100.98378],[12.95902,100.984718],[12.95468,100.98716],[12.95261,100.988342],[12.94143,100.994949],[12.93028,101.001678],[12.92805,101.003357],[12.92681,101.00486],[12.92379,101.009621],[12.92007,101.015747],[12.91659,101.0214],[12.91547,101.022774],[12.9151,101.023117],[12.91215,101.025848],[12.90933,101.028763],[12.90849,101.029533],[12.90795,101.03009],[12.90274,101.035248],[12.90131,101.036652],[12.90082,101.03714],[12.89481,101.043053],[12.88653,101.051193],[12.88284,101.05481],[12.87155,101.065903],[12.86993,101.067871],[12.86114,101.083557],[12.85287,101.098701],[12.84665,101.109756],[12.84072,101.120407],[12.83925,101.121857],[12.83811,101.12278],[12.83599,101.12429],[12.83082,101.127808],[12.82666,101.130661],[12.82239,101.133537],[12.81921,101.135651],[12.81603,101.137787],[12.80908,101.142593],[12.80223,101.147209],[12.79566,101.151749],[12.78903,101.15638],[12.78129,101.163872],[12.77738,101.167793],[12.77337,101.171707],[12.76987,101.175087],[12.76591,101.179092],[12.76228,101.182678],[12.75869,101.186302],[12.75254,101.192291],[12.7495,101.195259],[12.74631,101.198151],[12.73827,101.20517],[12.73008,101.212349],[12.72737,101.214783],[12.72482,101.217682],[12.72087,101.222397],[12.71684,101.227226],[12.70798,101.237846],[12.70502,101.241524],[12.7044,101.242378],[12.7039,101.243347],[12.70129,101.250237],[12.69903,101.256577],[12.69825,101.264671],[12.69778,101.270447],[12.69759,101.273117],[12.69682,101.279663],[12.69649,101.282837],[12.69607,101.285477],[12.69359,101.291321],[12.69267,101.293213],[12.69164,101.294777],[12.69023,101.29615],[12.68867,101.297241],[12.68297,101.299988],[12.67723,101.302818],[12.66358,101.309792],[12.66238,101.311333],[12.66135,101.316528],[12.66116,101.317993],[12.65854,101.326317],[12.65777,101.328644],[12.65398,101.336578],[12.6483,101.344757],[12.64673,101.348091],[12.64639,101.348824],[12.64616,101.349297],[12.64595,101.349747],[12.64557,101.350563],[12.64334,101.355293],[12.64314,101.355721],[12.63985,101.362717],[12.63967,101.363518],[12.63899,101.372093],[12.64012,101.388603],[12.64075,101.398293],[12.64155,101.408882],[12.64237,101.422127],[12.64219,101.424332],[12.64124,101.42881],[12.64327,101.435623],[12.65019,101.447891],[12.65435,101.455276],[12.6613,101.472076],[12.66057,101.488861],[12.66082,101.495087],[12.66561,101.511528],[12.67204,101.521507],[12.68008,101.523369],[12.68229,101.525742],[12.68671,101.534187],[12.70008,101.541809],[12.70731,101.54882],[12.71304,101.560768],[12.71314,101.563553],[12.71917,101.568703],[12.72148,101.574471],[12.72651,101.577766],[12.73162,101.587303],[12.73595,101.595383],[12.75103,101.609909],[12.75394,101.613403],[12.7559,101.615753],[12.76348,101.624847],[12.77363,101.639168],[12.77632,101.64283],[12.78186,101.646896],[12.78272,101.650703],[12.78339,101.653229],[12.78356,101.653877],[12.78415,101.656662],[12.78494,101.6586],[12.7862,101.661133],[12.78678,101.662407],[12.78695,101.663277],[12.78691,101.664818],[12.78645,101.669197],[12.78565,101.679581],[12.78532,101.681557],[12.78398,101.68602],[12.78172,101.693832],[12.77642,101.711746],[12.77624,101.712372],[12.77546,101.715767],[12.77636,101.718887],[12.77753,101.722893],[12.78054,101.732933],[12.78879,101.760483],[12.78925,101.762283],[12.78942,101.766441],[12.78921,101.76889],[12.78892,101.772278],[12.78788,101.785912],[12.78737,101.788971],[12.78692,101.789993],[12.7862,101.791634],[12.78431,101.79554],[12.78356,101.796959],[12.78314,101.798241],[12.78285,101.800392],[12.78164,101.810562],[12.78092,101.815964],[12.78046,101.819359],[12.77996,101.821373],[12.77896,101.824249],[12.77678,101.830948],[12.77469,101.837212],[12.7741,101.838966],[12.77222,101.842232],[12.77109,101.843819],[12.76665,101.850388],[12.76581,101.851372],[12.76473,101.852402],[12.76247,101.854286],[12.76138,101.855186],[12.7597,101.857162],[12.75732,101.859947],[12.75564,101.861931],[12.75476,101.863258],[12.75255,101.867813],[12.74983,101.873299],[12.7466,101.880547],[12.74455,101.885017],[12.74267,101.889313],[12.74187,101.890121],[12.7407,101.8909],[12.73957,101.89167],[12.73878,101.892616],[12.73798,101.894157],[12.73551,101.899353],[12.73346,101.904243],[12.73224,101.907806],[12.73099,101.911499],[12.73091,101.912956],[12.73053,101.91626],[12.72299,101.941582],[12.72316,101.953247],[12.72295,101.954933],[12.72217,101.957153],[12.72216,101.958961],[12.72146,101.971413],[12.7209,101.972687],[12.72015,101.973846],[12.71939,101.975357],[12.71882,101.976128],[12.71659,101.978317],[12.71395,101.980293],[12.71165,101.981361],[12.70043,101.986168],[12.69917,101.986771],[12.69767,101.988274],[12.69088,101.995911],[12.68599,102.001244],[12.68335,102.00415],[12.6823,102.005096],[12.68121,102.005569],[12.67991,102.005608],[12.67862,102.005386],[12.67744,102.00518],[12.67636,102.005051],[12.67552,102.005013],[12.67451,102.00518],[12.65326,102.011581],[12.65151,102.012482],[12.65004,102.016434],[12.64939,102.018707],[12.64882,102.021049],[12.64871,102.021553],[12.64862,102.021927],[12.64854,102.022362],[12.6485,102.02282],[12.64855,102.023499],[12.64883,102.025787],[12.64942,102.03067],[12.65019,102.040031],[12.65722,102.058571],[12.66028,102.066811],[12.66145,102.071777],[12.66534,102.088951],[12.66677,102.0914],[12.66697,102.091743],[12.66748,102.092644],[12.6629,102.119957],[12.6499,102.129128],[12.64373,102.130623],[12.64176,102.131866],[12.63252,102.142036],[12.62387,102.151543],[12.62117,102.148933],[12.61644,102.141602],[12.61577,102.140556],[12.60959,102.134377],[12.60811,102.133591],[12.60534,102.133743],[12.60309,102.135002],[12.60275,102.1353],[12.60235,102.135674],[12.60058,102.137268],[12.59573,102.143303],[12.58852,102.155151],[12.57278,102.162529],[12.56758,102.162529],[12.55827,102.157852],[12.54606,102.155487],[12.54006,102.157417],[12.53078,102.157288],[12.53014,102.157707],[12.52137,102.163589],[12.51361,102.168503],[12.50319,102.170288],[12.50093,102.170937],[12.48798,102.174721],[12.48346,102.179352],[12.48312,102.181931],[12.47407,102.190857],[12.46938,102.195831],[12.46737,102.199783],[12.46502,102.206131],[12.4658,102.220001],[12.45995,102.230057],[12.45079,102.245682],[12.4543,102.258827],[12.45664,102.262444],[12.45698,102.269478],[12.45161,102.284752],[12.44726,102.288696],[12.4439,102.297287],[12.44038,102.300537],[12.43006,102.313637],[12.42664,102.318916],[12.41257,102.330421],[12.39741,102.350517],[12.39663,102.354973],[12.39218,102.364067],[12.38945,102.368896],[12.38737,102.370117],[12.38571,102.37117],[12.38241,102.373177],[12.381,102.374153],[12.37111,102.388428],[12.36611,102.395821],[12.36796,102.410751],[12.36292,102.425003],[12.34096,102.4468],[12.33492,102.456932],[12.32819,102.45916],[12.32289,102.459846],[12.31658,102.465607],[12.31094,102.468086],[12.30272,102.475471],[12.29473,102.480309],[12.28444,102.484909],[12.27337,102.493149],[12.25648,102.507713],[12.25171,102.509537],[12.25944,102.518356],[12.26459,102.532806],[12.26085,102.543793],[12.25926,102.553307],[12.25758,102.555817],[12.2537,102.560799],[12.25156,102.568703],[12.25103,102.578362],[12.25093,102.587677],[12.25035,102.608727],[12.25054,102.611641],[12.24529,102.625427],[12.23383,102.627869],[12.23004,102.632057],[12.22525,102.645149],[12.20238,102.657333],[12.19404,102.659683],[12.18628,102.665611],[12.16334,102.679649],[12.15023,102.683006],[12.13089,102.691048],[12.1194,102.694992],[12.11467,102.697151],[12.1053,102.700394],[12.09618,102.705383],[12.08143,102.718521],[12.07709,102.725151],[12.06748,102.731934],[12.06485,102.73616],[12.06065,102.739113],[12.05058,102.75132],[12.04662,102.753799],[12.04233,102.758507],[12.01981,102.769608],[12.01509,102.77037],[12.00404,102.770599],[11.98184,102.776588],[11.96461,102.783089],[11.92141,102.80452],[11.90769,102.808289],[11.90115,102.811401],[11.88415,102.814987],[11.87684,102.818672],[11.86838,102.820839],[11.84824,102.831734],[11.84367,102.837181],[11.81262,102.853706],[11.80578,102.860786],[11.78507,102.874878],[11.7791,102.883461],[11.77862,102.884491],[11.77812,102.886162],[11.77667,102.886948],[11.77323,102.888817],[11.77145,102.888847],[11.7708,102.889069],[11.76782,102.890984],[11.76454,102.894508],[11.75899,102.896049],[11.75711,102.896729],[11.75476,102.896507],[11.75231,102.897057],[11.75154,102.897423],[11.7498,102.897713],[11.74754,102.898857],[11.74599,102.899002],[11.74284,102.900726],[11.74084,102.901321],[11.73924,102.902321],[11.73823,102.902657],[11.73688,102.904053],[11.73105,102.906174],[11.72379,102.905197],[11.71887,102.907021],[11.71666,102.907227],[11.7156,102.907669],[11.71261,102.907578],[11.71073,102.907593],[11.70928,102.906769],[11.70047,102.906502],[11.69846,102.904984],[11.69535,102.904503],[11.69275,102.904793],[11.68926,102.903084],[11.68662,102.902481],[11.68326,102.903008],[11.68151,102.903816],[11.67983,102.904114],[11.67867,102.904861],[11.67712,102.905067],[11.67607,102.905533],[11.67155,102.904831],[11.6703,102.905792],[11.66651,102.906242],[11.66574,102.906036],[11.66491,102.906464],[11.66189,102.906693],[11.65979,102.907532],[11.65812,102.906967],[11.65571,102.907349],[11.65356,102.908577],[11.65165,102.908836],[11.64946,102.911377],[11.64477,102.916077],[11.6429,102.918373],[11.64362,102.923988],[11.64301,102.928268],[11.64347,102.933006],[11.63845,102.941254],[11.63771,102.943657],[11.63596,102.946564],[11.63056,102.94841],[11.62356,102.949257],[11.62305,102.959099],[11.61957,102.962143],[11.61888,102.962822],[11.6163,102.979683],[11.61549,102.983543],[11.6144,102.988731],[11.60786,102.99955],[11.602,103.010292],[11.60196,103.01226],[11.60207,103.013702],[11.60248,103.015457],[11.60349,103.018707],[11.60551,103.024986],[11.60552,103.025497],[11.60557,103.02755],[11.6056,103.030159],[11.60596,103.035187],[11.60501,103.03965],[11.60492,103.040741],[11.60497,103.043221],[11.60483,103.045799],[11.60459,103.051231],[11.60384,103.054947],[11.60387,103.055687],[11.60395,103.056992],[11.60426,103.060738],[11.60432,103.061996],[11.60429,103.062576],[11.60388,103.063538],[11.60186,103.065804],[11.60169,103.06633],[11.60166,103.066963],[11.60207,103.070351],[11.60197,103.071091],[11.60167,103.071609],[11.6012,103.072037],[11.60047,103.072578],[11.59986,103.072983],[11.59913,103.073311],[11.59821,103.073441],[11.59735,103.073799],[11.59625,103.074707],[11.59593,103.075119],[11.59537,103.076553],[11.59405,103.079643],[11.59234,103.082916],[11.59217,103.085197],[11.59172,103.085518],[11.58763,103.08609],[11.58631,103.087021],[11.58491,103.087578],[11.58245,103.087196],[11.58056,103.086647],[11.57998,103.08696],[11.57799,103.089256],[11.57315,103.091026],[11.5725,103.091621],[11.57233,103.091957],[11.57225,103.092667],[11.57285,103.094414],[11.57348,103.095551],[11.57386,103.096298],[11.5736,103.098068],[11.5731,103.099411],[11.57245,103.100128],[11.57032,103.103363],[11.57003,103.104584],[11.56918,103.108437],[11.56847,103.11319],[11.56842,103.117027],[11.56869,103.118782],[11.56872,103.119423],[11.56863,103.120323],[11.56853,103.121597],[11.56842,103.12207],[11.56795,103.122673],[11.5659,103.12368],[11.56546,103.124168],[11.56533,103.124733],[11.56502,103.128433],[11.5649,103.12986],[11.5649,103.130928],[11.56522,103.131577],[11.5656,103.131882],[11.56614,103.132057],[11.56714,103.132141],[11.56756,103.132301],[11.56791,103.132591],[11.56859,103.13308],[11.56917,103.133186],[11.57056,103.133148],[11.57129,103.133347],[11.57193,103.133659],[11.57353,103.135071],[11.57457,103.135872],[11.57491,103.136261],[11.57502,103.136902],[11.57487,103.137917],[11.57441,103.140404],[11.57429,103.141327],[11.57433,103.142113],[11.57444,103.142891],[11.57476,103.144463],[11.57497,103.144943],[11.57528,103.145447],[11.57682,103.146919],[11.57742,103.147034],[11.57778,103.147011],[11.57831,103.147133],[11.57866,103.147537],[11.57868,103.148178],[11.57848,103.148842],[11.57848,103.150169],[11.57856,103.15094],[11.57885,103.151627],[11.57896,103.152298],[11.57817,103.156929],[11.57748,103.15934],[11.57724,103.160477],[11.57753,103.162361],[11.57745,103.163803],[11.57709,103.165443],[11.57664,103.168533],[11.57636,103.172096],[11.57614,103.175041],[11.57617,103.176277],[11.5766,103.177353],[11.57753,103.179581],[11.57851,103.181953],[11.57915,103.183578],[11.57981,103.185051],[11.5804,103.185829],[11.58186,103.187073],[11.58236,103.187508],[11.58281,103.188171],[11.58325,103.188911],[11.58361,103.189934],[11.58373,103.193459],[11.58285,103.196899],[11.58268,103.199982],[11.58339,103.202049],[11.58439,103.203133],[11.58479,103.204308],[11.58481,103.206703],[11.58574,103.20929],[11.58657,103.21035],[11.58873,103.212334],[11.59018,103.213943],[11.5904,103.214432],[11.5906,103.21769],[11.59058,103.217781],[11.59035,103.218803],[11.5882,103.220268],[11.58678,103.221764],[11.58348,103.22261],[11.57834,103.220749],[11.57638,103.221848],[11.57541,103.223122],[11.57472,103.22464],[11.57318,103.228439],[11.57241,103.229523],[11.57052,103.231133],[11.56974,103.232101],[11.56895,103.233109],[11.5683,103.234047],[11.56771,103.234581],[11.56548,103.235992],[11.56257,103.237617],[11.56186,103.237663],[11.56118,103.237488],[11.5604,103.237297],[11.55926,103.237343],[11.55846,103.236687],[11.55735,103.234642],[11.55677,103.233994],[11.55431,103.233093],[11.55359,103.232971],[11.55289,103.233101],[11.55138,103.233681],[11.54972,103.234703],[11.54917,103.235039],[11.5485,103.235313],[11.54473,103.23539],[11.54185,103.236504],[11.54024,103.237099],[11.53936,103.237282],[11.53716,103.237579],[11.53528,103.237],[11.534,103.236366],[11.53277,103.235626],[11.53164,103.234917],[11.53099,103.234749],[11.52984,103.23455],[11.52888,103.234177],[11.52735,103.233299],[11.52659,103.232536],[11.5262,103.23188],[11.5253,103.230614],[11.52429,103.229973],[11.52392,103.229927],[11.52121,103.229973],[11.51972,103.229561],[11.51893,103.229263],[11.5182,103.229317],[11.51399,103.23159],[11.51297,103.231812],[11.51194,103.231857],[11.51011,103.23188],[11.50902,103.232224],[11.50693,103.233429],[11.50576,103.233551],[11.50494,103.233231],[11.50325,103.23259],[11.50252,103.232422],[11.50093,103.232712],[11.50011,103.232773],[11.49915,103.232857],[11.49806,103.232651],[11.49561,103.231987],[11.49041,103.228378],[11.48962,103.227768],[11.48887,103.227501],[11.48762,103.227386],[11.48165,103.227951],[11.47617,103.227783],[11.47501,103.227638],[11.47367,103.226982],[11.47107,103.225647],[11.46887,103.224922],[11.46673,103.224213],[11.46596,103.224083],[11.46513,103.224503],[11.46288,103.22673],[11.45861,103.229118],[11.45768,103.229927],[11.45594,103.235283],[11.45535,103.235847],[11.45436,103.235909],[11.45231,103.23494],[11.45074,103.234207],[11.44935,103.233437],[11.44882,103.232803],[11.4481,103.231903],[11.44777,103.231461],[11.44646,103.23069],[11.44483,103.229797],[11.44376,103.228737],[11.44315,103.22834],[11.44296,103.228027],[11.44312,103.227257],[11.44294,103.226593],[11.44219,103.225899],[11.44182,103.225731],[11.44121,103.225906],[11.44061,103.226013],[11.43851,103.225807],[11.43649,103.225662],[11.43577,103.225906],[11.43484,103.226486],[11.43371,103.22715],[11.43153,103.228653],[11.43091,103.228668],[11.43053,103.228401],[11.43026,103.22805],[11.42979,103.227699],[11.42935,103.227997],[11.42913,103.228737],[11.42871,103.229958],[11.42834,103.230888],[11.42772,103.232048],[11.42666,103.232628],[11.42512,103.231987],[11.42317,103.23111],[11.41956,103.229424],[11.41809,103.229721],[11.41689,103.230324],[11.41594,103.231331],[11.41515,103.232651],[11.41403,103.233566],[11.41247,103.233757],[11.41083,103.233849],[11.4076,103.234238],[11.40635,103.23497],[11.40458,103.235901],[11.40382,103.23703],[11.40074,103.243408],[11.39951,103.246849],[11.39861,103.247864],[11.39231,103.250717],[11.38318,103.25174],[11.38208,103.252617],[11.38027,103.256081],[11.37877,103.259323],[11.37654,103.260857],[11.37606,103.261749],[11.37449,103.264359],[11.37389,103.264664],[11.3691,103.264771],[11.36836,103.265198],[11.36669,103.267418],[11.35941,103.271683],[11.35284,103.28212],[11.34847,103.285744],[11.34724,103.286469],[11.34553,103.287643],[11.34518,103.288109],[11.34536,103.288788],[11.34643,103.289711],[11.34668,103.290863],[11.34588,103.292938],[11.34509,103.293678],[11.33875,103.295464],[11.33796,103.296097],[11.33729,103.297028],[11.33656,103.297882],[11.33186,103.300552],[11.33066,103.30188],[11.3304,103.302391],[11.33031,103.303093],[11.33047,103.305153],[11.33047,103.306183],[11.32961,103.30854],[11.32908,103.309013],[11.32749,103.309433],[11.32654,103.310249],[11.3261,103.311157],[11.32575,103.312737],[11.32507,103.31424],[11.32294,103.317398],[11.32109,103.320778],[11.32049,103.321167],[11.31987,103.321289],[11.31806,103.321457],[11.31508,103.321899],[11.31325,103.322609],[11.31258,103.322662],[11.3116,103.322113],[11.3109,103.321907],[11.30992,103.321991],[11.30893,103.32225],[11.30779,103.322746],[11.30688,103.323372],[11.3058,103.324211],[11.30497,103.324944],[11.30449,103.325333],[11.30392,103.325691],[11.30293,103.325844],[11.30268,103.325783],[11.29959,103.324966],[11.29905,103.324928],[11.2979,103.324837],[11.29723,103.324654],[11.29601,103.323753],[11.29476,103.323433],[11.29397,103.323624],[11.2925,103.324753],[11.29014,103.325653],[11.28738,103.326508],[11.28699,103.327026],[11.28605,103.32917],[11.28512,103.330017],[11.28327,103.330742],[11.28231,103.330727],[11.27854,103.329353],[11.27771,103.329453],[11.27648,103.330269],[11.27562,103.330856],[11.27447,103.331558],[11.27372,103.332024],[11.27274,103.332283],[11.27011,103.332947],[11.26775,103.333687],[11.26709,103.334099],[11.26572,103.335281],[11.26541,103.335876],[11.26491,103.337448],[11.26399,103.339478],[11.26304,103.341507],[11.26191,103.343407],[11.2606,103.345131],[11.25998,103.345482],[11.25803,103.345978],[11.25598,103.346603],[11.2535,103.347031],[11.25327,103.347191],[11.25276,103.34761],[11.25099,103.351044],[11.24909,103.354622],[11.24879,103.355293],[11.24842,103.355789],[11.24748,103.356209],[11.24567,103.356209],[11.24308,103.356209],[11.24239,103.356491],[11.24009,103.358109],[11.23948,103.358612],[11.23888,103.359482],[11.23785,103.361458],[11.23727,103.361908],[11.23649,103.362137],[11.23424,103.362457],[11.23186,103.36274],[11.23022,103.363487],[11.22925,103.363747],[11.22569,103.364067],[11.22477,103.364693],[11.22408,103.365273],[11.22289,103.366341],[11.22187,103.367439],[11.22114,103.36763],[11.22042,103.367523],[11.22021,103.367577],[11.21984,103.367989],[11.21934,103.368477],[11.21889,103.368767],[11.21749,103.369614],[11.21565,103.371063],[11.21389,103.37262],[11.21215,103.37439],[11.21129,103.375877],[11.21071,103.37722],[11.21017,103.377876],[11.20754,103.379547],[11.20646,103.380302],[11.20535,103.381142],[11.20467,103.382057],[11.20402,103.383331],[11.20299,103.385292],[11.20158,103.387016],[11.20094,103.387779],[11.19945,103.388924],[11.19743,103.390358],[11.19607,103.390877],[11.19556,103.390968],[11.19516,103.391029],[11.19458,103.391098],[11.19393,103.390984],[11.19326,103.390533],[11.19254,103.390106],[11.19202,103.389648],[11.19145,103.388702],[11.19104,103.388496],[11.19063,103.388634],[11.19037,103.389236],[11.19007,103.389633],[11.18963,103.389832],[11.1892,103.389771],[11.18897,103.389664],[11.18855,103.389473],[11.18803,103.389282],[11.1875,103.389397],[11.18686,103.390068],[11.18626,103.390823],[11.18613,103.391403],[11.18627,103.391899],[11.18647,103.392479],[11.18649,103.392998],[11.1864,103.393242],[11.18608,103.393578],[11.18541,103.393738],[11.1844,103.393951],[11.184,103.394127],[11.18359,103.394417],[11.18341,103.394943],[11.18338,103.395569],[11.18366,103.396118],[11.18396,103.396408],[11.18422,103.396881],[11.18416,103.397163],[11.18315,103.398163],[11.18271,103.399933],[11.18287,103.401947],[11.18255,103.403778],[11.18269,103.404312],[11.18305,103.404793],[11.18307,103.405411],[11.18288,103.407066],[11.183,103.407387],[11.18321,103.407898],[11.18416,103.408882],[11.18428,103.409531],[11.18365,103.410843],[11.18349,103.411758],[11.18326,103.414078],[11.18286,103.416344],[11.18285,103.420883],[11.18364,103.424301],[11.1816,103.43045],[11.18061,103.4356],[11.17133,103.445473],[11.17097,103.446518],[11.17128,103.447769],[11.17192,103.449387],[11.17298,103.450996],[11.17648,103.454811],[11.18074,103.458771],[11.18119,103.459801],[11.18182,103.464951],[11.18233,103.465736],[11.18585,103.468758],[11.18979,103.471992],[11.19473,103.474182],[11.19598,103.474953],[11.19772,103.476303],[11.19857,103.476929],[11.19942,103.477669],[11.20113,103.478958],[11.20304,103.480507],[11.20471,103.481773],[11.20656,103.483238],[11.20854,103.484772],[11.20998,103.486183],[11.21027,103.486923],[11.21045,103.487823],[11.21039,103.489372],[11.21008,103.49366],[11.20821,103.51046],[11.20727,103.51165],[11.20585,103.513023],[11.20319,103.515953],[11.20203,103.519188],[11.20101,103.522598],[11.19859,103.532829],[11.19582,103.539001],[11.19552,103.544373],[11.19414,103.549026],[11.19365,103.553429],[11.19193,103.557022],[11.19208,103.559959],[11.19363,103.562714],[11.19476,103.56871],[11.19292,103.574707],[11.19234,103.575996],[11.19049,103.579964],[11.19004,103.581207],[11.18869,103.585373],[11.18686,103.587471],[11.18619,103.589417],[11.18608,103.590813],[11.18591,103.594711],[11.18573,103.595322],[11.1852,103.595947],[11.1827,103.597633],[11.18065,103.598991],[11.1801,103.5998],[11.17972,103.600929],[11.17936,103.602127],[11.17823,103.604088],[11.1776,103.605919],[11.17711,103.607857],[11.17699,103.608253],[11.17684,103.608704],[11.17675,103.609093],[11.17663,103.609612],[11.176,103.611229],[11.17401,103.615463],[11.17314,103.619499],[11.17309,103.620338],[11.17312,103.621239],[11.17308,103.624657],[11.1727,103.631561],[11.17279,103.632179],[11.17314,103.632736],[11.17592,103.635521],[11.17691,103.636276],[11.17731,103.636833],[11.17748,103.637352],[11.1775,103.638008],[11.17767,103.639717],[11.17787,103.640297],[11.17843,103.640999],[11.17895,103.641747],[11.17928,103.642517],[11.17927,103.643646],[11.17883,103.645798],[11.17867,103.646828],[11.17881,103.648117],[11.17961,103.651459],[11.17982,103.652237],[11.18029,103.653122],[11.18186,103.654266],[11.1829,103.655678],[11.1831,103.657021],[11.18229,103.659958],[11.18197,103.661087],[11.18152,103.662033],[11.17997,103.663933],[11.17963,103.66465],[11.17872,103.666634],[11.17818,103.667557],[11.1777,103.668221],[11.17682,103.668671],[11.17575,103.669441],[11.17496,103.670227],[11.17445,103.671227],[11.17418,103.671707],[11.1741,103.673157],[11.17405,103.674454],[11.17397,103.67588],[11.17366,103.676682],[11.17308,103.677841],[11.17065,103.682823],[11.17009,103.686668],[11.16957,103.690979],[11.16915,103.692131],[11.16804,103.693398],[11.16752,103.694008],[11.16648,103.695183],[11.16421,103.697701],[11.15985,103.702187],[11.15614,103.711243],[11.15262,103.720367],[11.15229,103.72171],[11.15202,103.723969],[11.1517,103.726891],[11.15096,103.732788],[11.15073,103.733566],[11.15039,103.734428],[11.14969,103.735809],[11.1481,103.738739],[11.14768,103.74202],[11.14836,103.743347],[11.14942,103.744827],[11.15026,103.745934],[11.15069,103.74662],[11.15106,103.747192],[11.15114,103.747833],[11.15095,103.748703],[11.14987,103.750328],[11.14856,103.752373],[11.14835,103.753464],[11.14851,103.754333],[11.14922,103.756638],[11.14941,103.757294],[11.14952,103.757881],[11.14919,103.758911],[11.14651,103.76133],[11.1442,103.763733],[11.14196,103.766197],[11.13964,103.768623],[11.13886,103.769012],[11.1381,103.76931],[11.13718,103.769592],[11.13477,103.770317],[11.13238,103.771004],[11.13146,103.771141],[11.13038,103.771156],[11.12787,103.771088],[11.12668,103.77153],[11.12241,103.773743],[11.12171,103.773857],[11.12084,103.773911],[11.12001,103.773933],[11.11721,103.773972],[11.10998,103.775299],[11.10607,103.774773],[11.1045,103.775162],[11.10346,103.775337],[11.10286,103.775177],[11.1018,103.774887],[11.09952,103.775078],[11.09706,103.775284],[11.09649,103.775337],[11.09577,103.775627],[11.09525,103.776192],[11.0947,103.777184],[11.09453,103.779541],[11.09447,103.781898],[11.09466,103.783058],[11.09488,103.784233],[11.09502,103.78524],[11.09505,103.785767],[11.09496,103.786369],[11.09466,103.787041],[11.09433,103.787537],[11.09375,103.788277],[11.09328,103.789017],[11.09195,103.791183],[11.09117,103.792397],[11.09022,103.79364],[11.08845,103.796211],[11.08748,103.798477],[11.08641,103.7995],[11.08534,103.79982],[11.08406,103.799927],[11.08297,103.799973],[11.08174,103.799881],[11.07517,103.796448],[11.07028,103.795197],[11.06735,103.795021],[11.06615,103.794579],[11.06494,103.794243],[11.0645,103.794113],[11.06399,103.794029],[11.0629,103.793983],[11.06133,103.793953],[11.06056,103.793938],[11.06005,103.793953],[11.05928,103.794083],[11.05789,103.794296],[11.05707,103.794327],[11.05632,103.793892],[11.0545,103.79258],[11.05322,103.792236],[11.05209,103.792221],[11.05152,103.792267],[11.05095,103.79245],[11.04974,103.793556],[11.04763,103.795731],[11.04724,103.796448],[11.04712,103.797119],[11.04707,103.797707],[11.04714,103.798843],[11.04714,103.800903],[11.04725,103.802391],[11.04753,103.803543],[11.05113,103.81208],[11.05209,103.814003],[11.05402,103.816803],[11.05514,103.818604],[11.05573,103.820747],[11.05638,103.82383],[11.057,103.825287],[11.05763,103.826073],[11.06003,103.828537],[11.06042,103.83004],[11.06021,103.83284],[11.06045,103.833878],[11.06309,103.839684],[11.06362,103.840446],[11.07223,103.848389],[11.07265,103.849403],[11.07273,103.850739],[11.07205,103.852127],[11.07038,103.854652],[11.07001,103.856651],[11.07053,103.858231],[11.0738,103.861671],[11.07438,103.863029],[11.07604,103.867943],[11.08074,103.876663],[11.08276,103.883034],[11.08504,103.887573],[11.08747,103.891853],[11.09351,103.902863],[11.09626,103.907677],[11.09797,103.910271],[11.09986,103.912628],[11.10172,103.914497],[11.11719,103.928207],[11.12314,103.933548],[11.12609,103.937073],[11.12849,103.940979],[11.13351,103.950737],[11.13833,103.960007],[11.14351,103.970093],[11.14877,103.980263],[11.15045,103.983887],[11.15166,103.987389],[11.15335,103.990837],[11.15434,103.992569],[11.16036,104.000847],[11.1649,104.007309],[11.16648,104.00956],[11.17444,104.020821],[11.17617,104.023148],[11.17744,104.024361],[11.1804,104.026291],[11.18675,104.032623],[11.18853,104.034492],[11.18943,104.035606],[11.1903,104.037193],[11.19067,104.038139],[11.19143,104.040947],[11.19232,104.044868],[11.19301,104.049026],[11.19386,104.055923],[11.19406,104.057426],[11.19365,104.060654],[11.19418,104.071198],[11.19437,104.073151],[11.19465,104.074532],[11.19516,104.07576],[11.20094,104.086983],[11.20212,104.08889],[11.20234,104.089523],[11.20257,104.090561],[11.20284,104.091293],[11.20358,104.092796],[11.20381,104.093384],[11.20417,104.094589],[11.20428,104.095154],[11.20439,104.09597],[11.20459,104.096642],[11.20479,104.097198],[11.20496,104.097893],[11.20516,104.099487],[11.20535,104.100258],[11.20553,104.100502],[11.20604,104.10096],[11.20737,104.101891],[11.20792,104.102623],[11.20809,104.103104],[11.20937,104.108627],[11.21023,104.112587],[11.2122,104.117897],[11.21319,104.120369],[11.21763,104.127892],[11.22001,104.131653],[11.22482,104.137657],[11.2308,104.146797],[11.24009,104.161209],[11.24535,104.16938],[11.25656,104.18306],[11.26132,104.188797],[11.26612,104.195312],[11.26954,104.199753],[11.27281,104.205101],[11.27728,104.212517],[11.27887,104.215157],[11.28602,104.227188],[11.29414,104.241119],[11.30092,104.252647],[11.30841,104.265282],[11.31258,104.272278],[11.31552,104.278542],[11.31805,104.282516],[11.32065,104.286133],[11.32409,104.291763],[11.32748,104.297836],[11.33257,104.305969],[11.34071,104.319382],[11.34404,104.324768],[11.34898,104.329353],[11.35067,104.331482],[11.35595,104.340073],[11.35931,104.34671],[11.36522,104.355904],[11.36764,104.358238],[11.37237,104.362923],[11.37664,104.368263],[11.37729,104.369011],[11.38512,104.374298],[11.39029,104.38002],[11.39617,104.38681],[11.3989,104.392479],[11.4047,104.399544],[11.40971,104.409241],[11.41611,104.424797],[11.41866,104.42984],[11.42282,104.446877],[11.4267,104.457939],[11.43018,104.46505],[11.43874,104.476578],[11.44111,104.480171],[11.44412,104.485619],[11.44534,104.487007],[11.44653,104.488136],[11.4482,104.48912],[11.45309,104.491272],[11.45469,104.492531],[11.45604,104.495033],[11.4585,104.504662],[11.45999,104.51059],[11.46157,104.517471],[11.4626,104.521729],[11.46297,104.522919],[11.46348,104.523781],[11.46505,104.525787],[11.46582,104.527733],[11.46739,104.531898],[11.47216,104.544884],[11.47508,104.553177],[11.47558,104.566727],[11.47516,104.57859],[11.47593,104.584923],[11.47684,104.58889],[11.47796,104.591553],[11.4827,104.61026],[11.48373,104.615677],[11.48535,104.624268],[11.48672,104.630508],[11.48914,104.63916],[11.4909,104.647552],[11.49224,104.652893],[11.49312,104.657547],[11.49447,104.66188],[11.49498,104.663223],[11.49638,104.66687],[11.49774,104.670662],[11.49856,104.672638],[11.49964,104.676613],[11.50056,104.679749],[11.50305,104.686951],[11.50356,104.694168],[11.50428,104.699677],[11.50513,104.704674],[11.50695,104.712051],[11.50716,104.715637],[11.5071,104.724953],[11.50695,104.728851],[11.50735,104.733101],[11.50765,104.734657],[11.5088,104.738792],[11.51005,104.744072],[11.51144,104.750343],[11.51393,104.763412],[11.51486,104.767693],[11.51789,104.77317],[11.51962,104.776314],[11.52081,104.778954],[11.52391,104.790916],[11.52485,104.794319],[11.52508,104.794853],[11.52576,104.796127],[11.526,104.796539],[11.5275,104.799171],[11.52917,104.80204],[11.5295,104.802589],[11.52975,104.803032],[11.53017,104.803993],[11.53039,104.804741],[11.53051,104.805389],[11.53062,104.805977],[11.53119,104.809479],[11.53182,104.813492],[11.53254,104.81739],[11.53259,104.817734],[11.53285,104.819397],[11.53309,104.820824],[11.5333,104.822166],[11.53381,104.825127],[11.53402,104.826477],[11.53435,104.828453],[11.53438,104.828537],[11.53437,104.828773],[11.53431,104.829033],[11.5342,104.829201],[11.53414,104.829323],[11.53413,104.829643],[11.53463,104.830093],[11.53414,104.830704],[11.53351,104.831467],[11.53081,104.834793],[11.52835,104.837891],[11.52877,104.841797],[11.52904,104.844307],[11.52908,104.844551],[11.53072,104.855827],[11.53079,104.856331],[11.53114,104.858963],[11.53308,104.873177],[11.53473,104.885193],[11.53474,104.885353],[11.53458,104.885536],[11.53447,104.885757],[11.53425,104.885963],[11.53221,104.886429],[11.53208,104.886452],[11.52989,104.886871],[11.52962,104.886932],[11.52785,104.887291],[11.52576,104.887718],[11.52572,104.888298],[11.52556,104.889893],[11.52537,104.890633],[11.52427,104.894363],[11.52349,104.897171],[11.5231,104.898407],[11.52284,104.899269],[11.52256,104.9002],[11.52215,104.901703],[11.52156,104.903717],[11.52088,104.906128],[11.52042,104.907951],[11.5193,104.913322],[11.51897,104.915192],[11.51894,104.915604],[11.51896,104.916061],[11.51903,104.916496],[11.51917,104.916962],[11.51975,104.91864],[11.51983,104.918854],[11.52025,104.919617],[11.5207,104.920212],[11.52108,104.920509],[11.52147,104.920723],[11.52208,104.920898],[11.52358,104.920998],[11.52505,104.921097],[11.52677,104.921227],[11.527,104.92186],[11.52883,104.926086],[11.52992,104.928574],[11.5299,104.92897],[11.53005,104.929619],[11.5302,104.930206],[11.53026,104.930496],[11.53027,104.930717],[11.53014,104.930946],[11.5296,104.931168],[11.52902,104.931396],[11.52877,104.931587],[11.52823,104.931801],[11.52758,104.931999],[11.52638,104.932114],[11.5239,104.93235],[11.51604,104.935379],[11.51338,104.935677],[11.51252,104.935997],[11.50867,104.937866],[11.50674,104.938766],[11.50388,104.939621],[11.50249,104.940048],[11.49697,104.942436],[11.49289,104.94355],[11.49186,104.94355],[11.49092,104.943123],[11.48942,104.942436],[11.48809,104.941818],[11.48757,104.94165],[11.48726,104.941727],[11.48513,104.942841],[11.48492,104.942963],[11.48385,104.943527],[11.48288,104.944061],[11.48157,104.944771],[11.48138,104.944633],[11.48112,104.944733],[11.48108,104.945053],[11.47857,104.946381],[11.47776,104.946823],[11.47264,104.949509],[11.47149,104.950127],[11.46992,104.950981],[11.46587,104.953209],[11.46406,104.954208],[11.46098,104.955994],[11.46003,104.956543],[11.45616,104.958847],[11.45244,104.961067],[11.45039,104.962288],[11.44289,104.966873],[11.44102,104.968018],[11.43993,104.968681],[11.43116,104.973999],[11.42561,104.977943],[11.4193,104.985237],[11.40634,104.999748],[11.40146,105.004936],[11.40073,105.005623],[11.39999,105.005829],[11.39922,105.005791],[11.39655,105.005074],[11.39496,105.004761],[11.3919,105.00444],[11.38985,105.004044],[11.38363,105.001984],[11.37883,105.001343],[11.37475,105.001892],[11.37105,105.003014],[11.36419,105.000473],[11.35815,105.001381],[11.35153,105.004639],[11.34709,105.007607],[11.34363,105.010948],[11.34161,105.013443],[11.33983,105.016502],[11.33843,105.019676],[11.33641,105.022873],[11.33367,105.025948],[11.32995,105.028282]]; \ No newline at end of file diff --git a/extlib/leaflet/debug/vector/vector-mobile.html b/extlib/leaflet/debug/vector/vector-mobile.html new file mode 100644 index 00000000..519de0c6 --- /dev/null +++ b/extlib/leaflet/debug/vector/vector-mobile.html @@ -0,0 +1,38 @@ + + + + Leaflet debug page + + + + + + + + + + + +
+ + + + + \ No newline at end of file diff --git a/extlib/leaflet/debug/vector/vector.html b/extlib/leaflet/debug/vector/vector.html new file mode 100644 index 00000000..4886f3b4 --- /dev/null +++ b/extlib/leaflet/debug/vector/vector.html @@ -0,0 +1,38 @@ + + + + Leaflet debug page + + + + + + + + + +
+ + + + + \ No newline at end of file diff --git a/extlib/leaflet/spec/runner.html b/extlib/leaflet/spec/runner.html new file mode 100644 index 00000000..6931d2c9 --- /dev/null +++ b/extlib/leaflet/spec/runner.html @@ -0,0 +1,82 @@ + + + + Jasmine Test Runner + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/extlib/leaflet/spec/suites/LeafletSpec.js b/extlib/leaflet/spec/suites/LeafletSpec.js new file mode 100644 index 00000000..c67879cf --- /dev/null +++ b/extlib/leaflet/spec/suites/LeafletSpec.js @@ -0,0 +1,15 @@ +describe('L#noConflict', function() { + it('should restore the previous L value and return Leaflet namespace', function(){ + + expect(L.VERSION).toBeDefined(); + + var L2 = L.noConflict(); + + expect(L).toEqual('test'); + expect(L2.VERSION).toBeDefined(); + + this.after(function() { + window.L = L2; + }); + }); +}); \ No newline at end of file diff --git a/extlib/leaflet/spec/suites/SpecHelper.js b/extlib/leaflet/spec/suites/SpecHelper.js new file mode 100644 index 00000000..8b827041 --- /dev/null +++ b/extlib/leaflet/spec/suites/SpecHelper.js @@ -0,0 +1,5 @@ +function noSpecs() { + it('should have specs', function() { + expect('specs').toBe(); + }); +} \ No newline at end of file diff --git a/extlib/leaflet/spec/suites/core/ClassSpec.js b/extlib/leaflet/spec/suites/core/ClassSpec.js new file mode 100644 index 00000000..7a289154 --- /dev/null +++ b/extlib/leaflet/spec/suites/core/ClassSpec.js @@ -0,0 +1,120 @@ +describe("Class", function() { + + describe("#extend", function() { + var Klass, + constructor, + method; + + beforeEach(function() { + constructor = jasmine.createSpy(), + method = jasmine.createSpy(); + + Klass = L.Class.extend({ + statics: {bla: 1}, + includes: {mixin: true}, + + initialize: constructor, + foo: 5, + bar: method + }); + }); + + it("should create a class with the given constructor & properties", function() { + var a = new Klass(); + + expect(constructor).toHaveBeenCalled(); + expect(a.foo).toEqual(5); + + a.bar(); + + expect(method).toHaveBeenCalled(); + }); + + it("should inherit parent classes' constructor & properties", function() { + var Klass2 = Klass.extend({baz: 2}); + + var b = new Klass2(); + + expect(b instanceof Klass).toBeTruthy(); + expect(b instanceof Klass2).toBeTruthy(); + + expect(constructor).toHaveBeenCalled(); + expect(b.baz).toEqual(2); + + b.bar(); + + expect(method).toHaveBeenCalled(); + }); + + it("should grant the ability to call parent methods, including constructor", function() { + var Klass2 = Klass.extend({ + initialize: function() {}, + bar: function() {} + }); + + var b = new Klass2(); + + expect(constructor).not.toHaveBeenCalled(); + b.superclass.initialize.call(this); + expect(constructor).toHaveBeenCalled(); + + b.superclass.bar.call(this); + expect(method).toHaveBeenCalled(); + }); + + it("should support static properties", function() { + expect(Klass.bla).toEqual(1); + }); + + it("should inherit parent static properties", function() { + var Klass2 = Klass.extend({}); + + expect(Klass2.bla).toEqual(1); + }); + + it("should include the given mixin", function() { + var a = new Klass(); + expect(a.mixin).toBeTruthy(); + }); + + it("should be able to include multiple mixins", function() { + var Klass2 = L.Class.extend({ + includes: [{mixin: true}, {mixin2: true}] + }); + var a = new Klass2(); + + expect(a.mixin).toBeTruthy(); + expect(a.mixin2).toBeTruthy(); + }); + + it("should grant the ability to include the given mixin", function() { + Klass.include({mixin2: true}); + + var a = new Klass(); + expect(a.mixin2).toBeTruthy(); + }); + + it("should merge options instead of replacing them", function() { + var KlassWithOptions1 = L.Class.extend({ + options: { + foo1: 1, + foo2: 2 + } + }); + var KlassWithOptions2 = KlassWithOptions1.extend({ + options: { + foo2: 3, + foo3: 4 + } + }); + + var a = new KlassWithOptions2(); + + expect(a.options).toEqual({ + foo1: 1, + foo2: 3, + foo3: 4 + }); + }); + }); +}); \ No newline at end of file diff --git a/extlib/leaflet/spec/suites/core/EventsSpec.js b/extlib/leaflet/spec/suites/core/EventsSpec.js new file mode 100644 index 00000000..be143866 --- /dev/null +++ b/extlib/leaflet/spec/suites/core/EventsSpec.js @@ -0,0 +1,110 @@ +describe('Events', function() { + var Klass; + + beforeEach(function() { + Klass = L.Class.extend({ + includes: L.Mixin.Events + }); + }); + + describe('#fireEvent', function() { + + it('should fire all listeners added through #addEventListener', function() { + var obj = new Klass(), + spy = jasmine.createSpy(), + spy2 = jasmine.createSpy(), + spy3 = jasmine.createSpy(); + + obj.addEventListener('test', spy); + obj.addEventListener('test', spy2); + obj.addEventListener('other', spy3); + + expect(spy).not.toHaveBeenCalled(); + expect(spy2).not.toHaveBeenCalled(); + expect(spy3).not.toHaveBeenCalled(); + + obj.fireEvent('test'); + + expect(spy).toHaveBeenCalled(); + expect(spy2).toHaveBeenCalled(); + expect(spy3).not.toHaveBeenCalled(); + }); + + it('should provide event object to listeners and execute them in the right context', function() { + var obj = new Klass(), + obj2 = new Klass(), + foo = {}; + + function listener1(e) { + expect(e.type).toEqual('test'); + expect(e.target).toEqual(obj); + expect(this).toEqual(obj); + expect(e.bar).toEqual(3); + }; + + function listener2(e) { + expect(e.target).toEqual(obj2); + expect(this).toEqual(foo); + }; + + obj.addEventListener('test', listener1); + obj2.addEventListener('test', listener2, foo); + + obj.fireEvent('test', {bar: 3}); + }); + + it('should not call listeners removed through #removeEventListener', function() { + var obj = new Klass(), + spy = jasmine.createSpy(); + + obj.addEventListener('test', spy); + obj.removeEventListener('test', spy); + + obj.fireEvent('test'); + + expect(spy).not.toHaveBeenCalled(); + }); + }); + + describe('#on, #off & #fire', function() { + + it('should work like #addEventListener && #removeEventListener', function() { + var obj = new Klass(), + spy = jasmine.createSpy(); + + obj.on('test', spy); + obj.fire('test'); + + expect(spy).toHaveBeenCalled(); + + obj.off('test', spy); + obj.fireEvent('test'); + + expect(spy.callCount).toBeLessThan(2); + }); + + it('should not override existing methods with the same name', function() { + var spy1 = jasmine.createSpy(), + spy2 = jasmine.createSpy(), + spy3 = jasmine.createSpy(); + + var Klass2 = L.Class.extend({ + includes: L.Mixin.Events, + on: spy1, + off: spy2, + fire: spy3 + }); + + var obj = new Klass2(); + + obj.on(); + expect(spy1).toHaveBeenCalled(); + + obj.off(); + expect(spy2).toHaveBeenCalled(); + + obj.fire(); + expect(spy3).toHaveBeenCalled(); + }); + }); +}); \ No newline at end of file diff --git a/extlib/leaflet/spec/suites/core/UtilSpec.js b/extlib/leaflet/spec/suites/core/UtilSpec.js new file mode 100644 index 00000000..46cb8fba --- /dev/null +++ b/extlib/leaflet/spec/suites/core/UtilSpec.js @@ -0,0 +1,63 @@ +describe('Util', function() { + + describe('#extend', function() { + var a; + + beforeEach(function() { + a = { + foo: 5, + bar: 'asd' + }; + }); + + it('should extend the first argument with the properties of the second', function() { + L.Util.extend(a, { + bar: 7, + baz: 3 + }); + + expect(a).toEqual({ + foo: 5, + bar: 7, + baz: 3 + }); + }); + + it('should work with more than 2 arguments', function() { + L.Util.extend(a, {bar: 7}, {baz: 3}); + + expect(a).toEqual({ + foo: 5, + bar: 7, + baz: 3 + }); + }); + }); + + describe('#bind', function() { + it('should return the given function with the given context', function() { + var fn = function() { + return this; + }; + + var fn2 = L.Util.bind(fn, 5); + + expect(fn2()).toEqual(5); + }); + }); + + describe('#stamp', function() { + it('should set a unique id on the given object and return it', function() { + var a = {}, + id = L.Util.stamp(a); + + expect(typeof id).toEqual('number'); + expect(L.Util.stamp(a)).toEqual(id); + + var b = {}, + id2 = L.Util.stamp(b); + + expect(id2).not.toEqual(id); + }); + }); +}); \ No newline at end of file diff --git a/extlib/leaflet/spec/suites/dom/DomEventSpec.js b/extlib/leaflet/spec/suites/dom/DomEventSpec.js new file mode 100644 index 00000000..83d08541 --- /dev/null +++ b/extlib/leaflet/spec/suites/dom/DomEventSpec.js @@ -0,0 +1,102 @@ +describe('DomEvent', function() { + var el; + + function simulateClick(el) { + if (document.createEvent) { + var e = document.createEvent('MouseEvents'); + e.initMouseEvent('click', true, true, window, + 0, 0, 0, 0, 0, false, false, false, false, 0, null); + return el.dispatchEvent(e); + } else if (el.fireEvent) { + return el.fireEvent('onclick'); + } + } + + beforeEach(function() { + el = document.createElement('div'); + el.style.position = 'absolute'; + el.style.top = el.style.left = '-10000px'; + document.body.appendChild(el); + }); + + afterEach(function() { + document.body.removeChild(el); + }); + + describe('#addListener', function() { + it('should add a listener and call it on event', function() { + var listener1 = jasmine.createSpy('listener1'), + listener2 = jasmine.createSpy('listener2'); + + L.DomEvent.addListener(el, 'click', listener1); + L.DomEvent.addListener(el, 'click', listener2); + + simulateClick(el); + + expect(listener1).toHaveBeenCalled(); + expect(listener2).toHaveBeenCalled(); + }); + + it('should have "this" keyword point to the given context', function() { + var obj = {foo: 'bar'}, + result; + + L.DomEvent.addListener(el, 'click', function() { + result = this; + }, obj); + + simulateClick(el); + + expect(result).toEqual(obj); + }); + + it('should pass an event object to the listener', function() { + var type; + + L.DomEvent.addListener(el, 'click', function(e) { + type = e && e.type; + }); + simulateClick(el); + + expect(type).toEqual('click'); + }); + }); + + describe('#removeListener', function() { + it('should remove prevously added listener', function() { + var listener = jasmine.createSpy('listener'); + + L.DomEvent.addListener(el, 'click', listener); + L.DomEvent.removeListener(el, 'click', listener); + + simulateClick(el); + + expect(listener).not.toHaveBeenCalled(); + }); + }); + + describe('#stopPropagation', function() { + it('should stop propagation of the given event', function() { + var child = document.createElement('div'), + listener = jasmine.createSpy('listener'); + + el.appendChild(child); + + L.DomEvent.addListener(child, 'click', L.DomEvent.stopPropagation); + L.DomEvent.addListener(el, 'click', listener); + + simulateClick(child); + + expect(listener).not.toHaveBeenCalled(); + + el.removeChild(child); + }); + }); + describe('#preventDefault', function() { + it('should prevent the default action of event', function() { + L.DomEvent.addListener(el, 'click', L.DomEvent.preventDefault); + + expect(simulateClick(el)).toBe(false); + }); + }); +}); \ No newline at end of file diff --git a/extlib/leaflet/spec/suites/dom/DomUtilSpec.js b/extlib/leaflet/spec/suites/dom/DomUtilSpec.js new file mode 100644 index 00000000..60de22fe --- /dev/null +++ b/extlib/leaflet/spec/suites/dom/DomUtilSpec.js @@ -0,0 +1,29 @@ +describe('DomUtil', function() { + var el; + + beforeEach(function() { + el = document.createElement('div'); + el.style.position = 'absolute'; + el.style.top = el.style.left = '-10000px'; + document.body.appendChild(el); + }); + + afterEach(function() { + document.body.removeChild(el); + }); + + describe('#get', function() { + it('should get element by id if the given argument is string', function() { + el.id = 'testId'; + expect(L.DomUtil.get(el.id)).toBe(el); + }); + + it('should return the element if it is given as an argument', function() { + expect(L.DomUtil.get(el)).toBe(el); + }); + }); + + describe('#setPosition', noSpecs); + + describe('#getStyle', noSpecs); +}); \ No newline at end of file diff --git a/extlib/leaflet/spec/suites/geo/LatLngBoundsSpec.js b/extlib/leaflet/spec/suites/geo/LatLngBoundsSpec.js new file mode 100644 index 00000000..be9bf12b --- /dev/null +++ b/extlib/leaflet/spec/suites/geo/LatLngBoundsSpec.js @@ -0,0 +1 @@ +describe('LatLngBounds', noSpecs); \ No newline at end of file diff --git a/extlib/leaflet/spec/suites/geo/LatLngSpec.js b/extlib/leaflet/spec/suites/geo/LatLngSpec.js new file mode 100644 index 00000000..a7498e71 --- /dev/null +++ b/extlib/leaflet/spec/suites/geo/LatLngSpec.js @@ -0,0 +1,70 @@ +describe('LatLng', function() { + describe('constructor', function() { + it("should set lat and lng", function() { + var a = new L.LatLng(25, 74); + expect(a.lat).toEqual(25); + expect(a.lng).toEqual(74); + + var a = new L.LatLng(-25, -74); + expect(a.lat).toEqual(-25); + expect(a.lng).toEqual(-74); + }); + + it("should clamp latitude to lie between -90 and 90", function() { + var a = new L.LatLng(150, 0).lat; + expect(a).toEqual(90); + + var b = new L.LatLng(-230, 0).lat; + expect(b).toEqual(-90); + }); + + it("should clamp longtitude to lie between -180 and 180", function() { + var a = new L.LatLng(0, 190).lng; + expect(a).toEqual(-170); + + var b = new L.LatLng(0, 360).lng; + expect(b).toEqual(0); + + var c = new L.LatLng(0, 380).lng; + expect(c).toEqual(20); + + var d = new L.LatLng(0, -190).lng; + expect(d).toEqual(170); + + var e = new L.LatLng(0, -360).lng; + expect(e).toEqual(0); + + var f = new L.LatLng(0, -380).lng; + expect(f).toEqual(-20); + }); + + it("should not clamp latitude and longtitude if unbounded flag set to true", function() { + var a = new L.LatLng(150, 0, true).lat; + expect(a).toEqual(150); + + var b = new L.LatLng(-230, 0, true).lat; + expect(b).toEqual(-230); + + var c = new L.LatLng(0, 250, true).lng; + expect(c).toEqual(250); + + var d = new L.LatLng(0, -190, true).lng; + expect(d).toEqual(-190); + }); + }); + + describe('#equals', function() { + it("should return true if compared objects are equal within a certain margin", function() { + var a = new L.LatLng(10, 20); + var b = new L.LatLng(10 + 1.0E-10, 20 - 1.0E-10); + expect(a.equals(b)).toBe(true); + }); + + it("should return false if compared objects are not equal within a certain margin", function() { + var a = new L.LatLng(10, 20); + var b = new L.LatLng(10, 23.3); + expect(a.equals(b)).toBe(false); + }); + }); +}); + diff --git a/extlib/leaflet/spec/suites/geo/ProjectionSpec.js b/extlib/leaflet/spec/suites/geo/ProjectionSpec.js new file mode 100644 index 00000000..6b9c7b61 --- /dev/null +++ b/extlib/leaflet/spec/suites/geo/ProjectionSpec.js @@ -0,0 +1,42 @@ +describe("Projection.Mercator", function() { + var p = L.Projection.Mercator; + + beforeEach(function() { + function almostEqual(a, b, p) { + return Math.abs(a - b) <= (p || 1.0E-12); + }; + this.addMatchers({ + toAlmostEqual: function(expected, margin) { + var p1 = this.actual, + p2 = expected; + return almostEqual(p1.x, p2.x, margin) && almostEqual(p1.y, p2.y, margin); + } + }); + }); + + + describe("#project", function() { + it("should do projection properly", function() { + //edge cases + expect(p.project(new L.LatLng(0, 0))).toAlmostEqual(new L.Point(0, 0)); + expect(p.project(new L.LatLng(90, 180))).toAlmostEqual(new L.Point(-Math.PI, Math.PI)); + expect(p.project(new L.LatLng(-90, -180))).toAlmostEqual(new L.Point(-Math.PI, -Math.PI)); + + expect(p.project(new L.LatLng(50, 30))).toAlmostEqual(new L.Point(0.523598775598, 1.010683188683)); + }); + }); + + describe("#unproject", function() { + it("should do unprojection properly", function() { + function pr(point) { + return p.project(p.unproject(point)); + } + + expect(pr(new L.Point(0, 0))).toAlmostEqual(new L.Point(0, 0)); + expect(pr(new L.Point(-Math.PI, Math.PI))).toAlmostEqual(new L.Point(-Math.PI, Math.PI)); + expect(pr(new L.Point(-Math.PI, -Math.PI))).toAlmostEqual(new L.Point(-Math.PI, -Math.PI)); + + expect(pr(new L.Point(0.523598775598, 1.010683188683))).toAlmostEqual(new L.Point(0.523598775598, 1.010683188683)); + }); + }); +}); \ No newline at end of file diff --git a/extlib/leaflet/spec/suites/geometry/BoundsSpec.js b/extlib/leaflet/spec/suites/geometry/BoundsSpec.js new file mode 100644 index 00000000..eee05e4b --- /dev/null +++ b/extlib/leaflet/spec/suites/geometry/BoundsSpec.js @@ -0,0 +1,43 @@ +describe('Bounds', function() { + var a, b; + + beforeEach(function() { + a = new L.Bounds( + new L.Point(14, 12), + new L.Point(30, 40)); + b = new L.Bounds([ + new L.Point(20, 12), + new L.Point(14, 20), + new L.Point(30, 40) + ]); + }); + + describe('constructor', function() { + it('should create bounds with proper min & max on (Point, Point)', function() { + expect(a.min).toEqual(new L.Point(14, 12)); + expect(a.max).toEqual(new L.Point(30, 40)); + }); + it('should create bounds with proper min & max on (Point[])', function() { + expect(b.min).toEqual(new L.Point(14, 12)); + expect(b.max).toEqual(new L.Point(30, 40)); + }); + }); + + describe('#extend', function() { + it('should extend the bounds to contain the given point', function() { + a.extend(new L.Point(50, 20)); + expect(a.min).toEqual(new L.Point(14, 12)); + expect(a.max).toEqual(new L.Point(50, 40)); + + b.extend(new L.Point(25, 50)); + expect(b.min).toEqual(new L.Point(14, 12)); + expect(b.max).toEqual(new L.Point(30, 50)); + }); + }); + + describe('#getCenter', function() { + it('should return the center point', function() { + expect(a.getCenter()).toEqual(new L.Point(22, 26)); + }); + }); +}); \ No newline at end of file diff --git a/extlib/leaflet/spec/suites/geometry/PointSpec.js b/extlib/leaflet/spec/suites/geometry/PointSpec.js new file mode 100644 index 00000000..d004d60b --- /dev/null +++ b/extlib/leaflet/spec/suites/geometry/PointSpec.js @@ -0,0 +1,45 @@ +describe("Point", function() { + + describe('constructor', function() { + + it("should create a point with the given x and y", function() { + var p = new L.Point(1.5, 2.5); + expect(p.x).toEqual(1.5); + expect(p.y).toEqual(2.5); + }); + + it("should round the given x and y if the third argument is true", function() { + var p = new L.Point(1.3, 2.7, true); + expect(p.x).toEqual(1); + expect(p.y).toEqual(3); + }); + }); + + describe('#subtract', function() { + it('should subtract the given point from this one', function() { + var a = new L.Point(50, 30), + b = new L.Point(20, 10); + expect(a.subtract(b)).toEqual(new L.Point(30, 20)); + }); + }); + + describe('#add', function() { + it('should add the given point to this one', function() { + expect(new L.Point(50, 30).add(new L.Point(20, 10))).toEqual(new L.Point(70, 40)); + }); + }); + + describe('#divideBy', function() { + it('should divide this point by the given amount', function() { + expect(new L.Point(50, 30).divideBy(5)).toEqual(new L.Point(10, 6)); + }); + }); + + describe('#multiplyBy', function() { + it('should multiply this point by the given amount', function() { + expect(new L.Point(50, 30).multiplyBy(2)).toEqual(new L.Point(100, 60)); + }); + }); + + describe('#distanceTo', noSpecs); +}); \ No newline at end of file diff --git a/extlib/leaflet/spec/suites/geometry/TransformationSpec.js b/extlib/leaflet/spec/suites/geometry/TransformationSpec.js new file mode 100644 index 00000000..8a945df1 --- /dev/null +++ b/extlib/leaflet/spec/suites/geometry/TransformationSpec.js @@ -0,0 +1,19 @@ +describe("Transformation", function() { + var t, p; + + beforeEach(function() { + t = new L.Transformation(1, 2, 3, 4); + p = new L.Point(10, 20); + }); + + it("#transform should perform a transformation", function() { + var p2 = t.transform(p, 2); + expect(p2).toEqual(new L.Point(24, 128)); + }); + + it("#untransform should perform a reverse transformation", function() { + var p2 = t.transform(p, 2); + var p3 = t.untransform(p2, 2); + expect(p3).toEqual(p); + }); +}); \ No newline at end of file diff --git a/extlib/leaflet/spec/suites/layer/TileLayerSpec.js b/extlib/leaflet/spec/suites/layer/TileLayerSpec.js new file mode 100644 index 00000000..28517ad9 --- /dev/null +++ b/extlib/leaflet/spec/suites/layer/TileLayerSpec.js @@ -0,0 +1 @@ +describe('TileLayer', noSpecs); \ No newline at end of file diff --git a/extlib/leaflet/spec/suites/map/MapSpec.js b/extlib/leaflet/spec/suites/map/MapSpec.js new file mode 100644 index 00000000..7908b1a9 --- /dev/null +++ b/extlib/leaflet/spec/suites/map/MapSpec.js @@ -0,0 +1 @@ +describe("Map", noSpecs); \ No newline at end of file diff --git a/extlib/leaflet/src/Leaflet.js b/extlib/leaflet/src/Leaflet.js new file mode 100644 index 00000000..750a4a5f --- /dev/null +++ b/extlib/leaflet/src/Leaflet.js @@ -0,0 +1,35 @@ +/** + * @preserve Copyright (c) 2010-2011, CloudMade, Vladimir Agafonkin + * Leaflet is a BSD-licensed JavaScript library for map display and interaction. + * See http://cloudmade.github.com/Leaflet/ for more information. + */ + +(function(root) { + var L = { + VERSION: '0.2', + + ROOT_URL: (function() { + var scripts = document.getElementsByTagName('script'), + leafletRe = /^(.*\/)leaflet-?([\w-]*)\.js.*$/; + for (var i = 0, len = scripts.length; i < len; i++) { + var src = scripts[i].src, + res = src && src.match(leafletRe); + + if (res) { + if (res[2] == 'include') break; + return res[1]; + } + } + return '../../dist/'; + })(), + + noConflict: function() { + root.L = this._originalL; + return this; + }, + + _originalL: root.L + }; + + window.L = L; +}(this)); diff --git a/extlib/leaflet/src/control/Control.Attribution.js b/extlib/leaflet/src/control/Control.Attribution.js new file mode 100644 index 00000000..84b31f52 --- /dev/null +++ b/extlib/leaflet/src/control/Control.Attribution.js @@ -0,0 +1,55 @@ +L.Control.Attribution = L.Class.extend({ + onAdd: function(map) { + this._container = L.DomUtil.create('div', 'leaflet-control-attribution'); + this._map = map; + this._prefix = 'Powered by Leaflet'; + this._attributions = {}; + this._update(); + }, + + getPosition: function() { + return L.Control.Position.BOTTOM_RIGHT; + }, + + getContainer: function() { + return this._container; + }, + + setPrefix: function(prefix) { + this._prefix = prefix; + }, + + addAttribution: function(text) { + if (!text) return; + this._attributions[text] = true; + this._update(); + }, + + removeAttribution: function(text) { + if (!text) return; + delete this._attributions[text]; + this._update(); + }, + + _update: function() { + if (!this._map) return; + + var attribs = []; + + for (var i in this._attributions) { + if (this._attributions.hasOwnProperty(i)) { + attribs.push(i); + } + } + + var prefixAndAttribs = []; + if (this._prefix) { + prefixAndAttribs.push(this._prefix); + } + if (attribs.length) { + prefixAndAttribs.push(attribs.join(', ')); + } + + this._container.innerHTML = prefixAndAttribs.join(' — '); + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/control/Control.Zoom.js b/extlib/leaflet/src/control/Control.Zoom.js new file mode 100644 index 00000000..d6964fd6 --- /dev/null +++ b/extlib/leaflet/src/control/Control.Zoom.js @@ -0,0 +1,36 @@ + +L.Control.Zoom = L.Class.extend({ + onAdd: function(map) { + this._map = map; + this._container = L.DomUtil.create('div', 'leaflet-control-zoom'); + + this._zoomInButton = this._createButton( + 'Zoom in', 'leaflet-control-zoom-in', this._map.zoomIn, this._map); + this._zoomOutButton = this._createButton( + 'Zoom out', 'leaflet-control-zoom-out', this._map.zoomOut, this._map); + + this._container.appendChild(this._zoomInButton); + this._container.appendChild(this._zoomOutButton); + }, + + getContainer: function() { + return this._container; + }, + + getPosition: function() { + return L.Control.Position.TOP_LEFT; + }, + + _createButton: function(title, className, fn, context) { + var link = document.createElement('a'); + link.href = '#'; + link.title = title; + link.className = className; + + L.DomEvent.disableClickPropagation(link); + L.DomEvent.addListener(link, 'click', L.DomEvent.preventDefault); + L.DomEvent.addListener(link, 'click', fn, context); + + return link; + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/control/Control.js b/extlib/leaflet/src/control/Control.js new file mode 100644 index 00000000..a01c6807 --- /dev/null +++ b/extlib/leaflet/src/control/Control.js @@ -0,0 +1,9 @@ + +L.Control = {}; + +L.Control.Position = { + TOP_LEFT: 'topLeft', + TOP_RIGHT: 'topRight', + BOTTOM_LEFT: 'bottomLeft', + BOTTOM_RIGHT: 'bottomRight' +}; \ No newline at end of file diff --git a/extlib/leaflet/src/core/Browser.js b/extlib/leaflet/src/core/Browser.js new file mode 100644 index 00000000..0604ed6d --- /dev/null +++ b/extlib/leaflet/src/core/Browser.js @@ -0,0 +1,23 @@ +(function() { + var ua = navigator.userAgent.toLowerCase(), + ie = !!window.ActiveXObject, + webkit = ua.indexOf("webkit") != -1, + mobile = ua.indexOf("mobi") != -1, + android = ua.indexOf("android") != -1, + opera = window.opera; + + L.Browser = { + ie: ie, + ie6: ie && !window.XMLHttpRequest, + webkit: webkit, + webkit3d: webkit && ('WebKitCSSMatrix' in window) && ('m11' in new WebKitCSSMatrix()), + mobileWebkit: webkit && (mobile || android), + mobileOpera: mobile && opera, + gecko: ua.indexOf("gecko") != -1, + android: android + }; + + //TODO replace ugly ua sniffing with feature detection + + L.Browser.touch = L.Browser.mobileWebkit || L.Browser.mobileOpera; +})(); \ No newline at end of file diff --git a/extlib/leaflet/src/core/Class.js b/extlib/leaflet/src/core/Class.js new file mode 100644 index 00000000..09a9e539 --- /dev/null +++ b/extlib/leaflet/src/core/Class.js @@ -0,0 +1,66 @@ +/* + * Class powers the OOP facilities of the library. Thanks to John Resig and Dean Edwards for inspiration! + */ + +L.Class = function() {}; + +L.Class.extend = function(/*Object*/ props) /*-> Class*/ { + + // extended class with the new prototype + var NewClass = function() { + if (!L.Class._prototyping && this.initialize) { + this.initialize.apply(this, arguments); + } + }; + + // instantiate class without calling constructor + L.Class._prototyping = true; + var proto = new this(); + L.Class._prototyping = false; + + proto.constructor = NewClass; + NewClass.prototype = proto; + + // add superclass access + proto.superclass = this.prototype; + + // add class name + //proto.className = props; + + // mix static properties into the class + if (props.statics) { + L.Util.extend(NewClass, props.statics); + delete props.statics; + } + + // mix includes into the prototype + if (props.includes) { + L.Util.extend.apply(null, [proto].concat(props.includes)); + delete props.includes; + } + + // merge options + if (props.options && proto.options) { + props.options = L.Util.extend({}, proto.options, props.options); + } + + // mix given properties into the prototype + L.Util.extend(proto, props); + + // allow inheriting further + NewClass.extend = arguments.callee; + + // method for adding properties to prototype + NewClass.include = function(props) { + L.Util.extend(this.prototype, props); + }; + + //inherit parent's statics + for (var i in this) { + if (this.hasOwnProperty(i) && i != 'prototype') { + NewClass[i] = this[i]; + } + } + + return NewClass; +}; \ No newline at end of file diff --git a/extlib/leaflet/src/core/Events.js b/extlib/leaflet/src/core/Events.js new file mode 100644 index 00000000..53ea20fa --- /dev/null +++ b/extlib/leaflet/src/core/Events.js @@ -0,0 +1,58 @@ +/* + * L.Mixin.Events adds custom events functionality to Leaflet classes + */ + +L.Mixin = {}; + +L.Mixin.Events = { + addEventListener: function(/*String*/ type, /*Function*/ fn, /*(optional) Object*/ context) { + var events = this._leaflet_events = this._leaflet_events || {}; + events[type] = events[type] || []; + events[type].push({ + action: fn, + context: context + }); + return this; + }, + + hasEventListeners: function(/*String*/ type) /*-> Boolean*/ { + var k = '_leaflet_events'; + return (k in this) && (type in this[k]) && (this[k][type].length > 0); + }, + + removeEventListener: function(/*String*/ type, /*Function*/ fn, /*(optional) Object*/ context) { + if (!this.hasEventListeners(type)) { return this; } + + for (var i = 0, events = this._leaflet_events, len = events[type].length; i < len; i++) { + if ( + (events[type][i].action === fn) && + (!context || (events[type][i].context === context)) + ) { + events[type].splice(i, 1); + return this; + } + } + return this; + }, + + fireEvent: function(/*String*/ type, /*(optional) Object*/ data) { + if (!this.hasEventListeners(type)) { return; } + + var event = L.Util.extend({ + type: type, + target: this + }, data); + + var listeners = this._leaflet_events[type].slice(); + + for (var i = 0, len = listeners.length; i < len; i++) { + listeners[i].action.call(listeners[i].context || this, event); + } + + return this; + } +}; + +L.Mixin.Events.on = L.Mixin.Events.addEventListener; +L.Mixin.Events.off = L.Mixin.Events.removeEventListener; +L.Mixin.Events.fire = L.Mixin.Events.fireEvent; \ No newline at end of file diff --git a/extlib/leaflet/src/core/Util.js b/extlib/leaflet/src/core/Util.js new file mode 100644 index 00000000..28daa284 --- /dev/null +++ b/extlib/leaflet/src/core/Util.js @@ -0,0 +1,96 @@ +/* + * L.Util is a namespace for various utility functions. + */ + +L.Util = { + extend: function(/*Object*/ dest) /*-> Object*/ { // merge src properties into dest + var sources = Array.prototype.slice.call(arguments, 1); + for (var j = 0, len = sources.length, src; j < len; j++) { + src = sources[j] || {}; + for (var i in src) { + if (src.hasOwnProperty(i)) { + dest[i] = src[i]; + } + } + } + return dest; + }, + + bind: function(/*Function*/ fn, /*Object*/ obj) /*-> Object*/ { + return function() { + return fn.apply(obj, arguments); + }; + }, + + stamp: (function() { + var lastId = 0, key = '_leaflet_id'; + return function(/*Object*/ obj) { + obj[key] = obj[key] || ++lastId; + return obj[key]; + }; + })(), + + requestAnimFrame: (function() { + function timeoutDefer(callback) { + window.setTimeout(callback, 1000 / 60); + } + + var requestFn = window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame || + window.msRequestAnimationFrame || + timeoutDefer; + + return function(callback, context, immediate) { + callback = context ? L.Util.bind(callback, context) : context; + if (immediate && requestFn === timeoutDefer) { + callback(); + } else { + requestFn(callback); + } + }; + })(), + + limitExecByInterval: function(fn, time, context) { + var lock, execOnUnlock, args; + function exec(){ + lock = false; + if (execOnUnlock) { + args.callee.apply(context, args); + execOnUnlock = false; + } + } + return function() { + args = arguments; + if (!lock) { + lock = true; + setTimeout(exec, time); + fn.apply(context, args); + } else { + execOnUnlock = true; + } + }; + }, + + falseFn: function() { return false; }, + + formatNum: function(num, digits) { + var pow = Math.pow(10, digits || 5); + return Math.round(num * pow) / pow; + }, + + setOptions: function(obj, options) { + obj.options = L.Util.extend({}, obj.options, options); + }, + + getParamString: function(obj) { + var params = []; + for (var i in obj) { + if (obj.hasOwnProperty(i)) { + params.push(i + '=' + obj[i]); + } + } + return '?' + params.join('&'); + } +}; diff --git a/extlib/leaflet/src/dom/DomEvent.DoubleTap.js b/extlib/leaflet/src/dom/DomEvent.DoubleTap.js new file mode 100644 index 00000000..08bd79b9 --- /dev/null +++ b/extlib/leaflet/src/dom/DomEvent.DoubleTap.js @@ -0,0 +1,41 @@ +L.Util.extend(L.DomEvent, { + // inspired by Zepto touch code by Thomas Fuchs + addDoubleTapListener: function(obj, handler, id) { + var last, + doubleTap = false, + delay = 250, + touch, + pre = '_leaflet_', + touchstart = 'touchstart', + touchend = 'touchend'; + + function onTouchStart(e) { + if (e.touches.length != 1) return; + + var now = Date.now(), + delta = now - (last || now); + + touch = e.touches[0]; + doubleTap = (delta > 0 && delta <= delay); + last = now; + } + function onTouchEnd(e) { + if (doubleTap) { + touch.type = 'dblclick'; + handler(touch); + last = null; + } + } + obj[pre + touchstart + id] = onTouchStart; + obj[pre + touchend + id] = onTouchEnd; + + obj.addEventListener(touchstart, onTouchStart, false); + obj.addEventListener(touchend, onTouchEnd, false); + }, + + removeDoubleTapListener: function(obj, id) { + var pre = '_leaflet_'; + obj.removeEventListener(obj, obj[pre + 'touchstart' + id], false); + obj.removeEventListener(obj, obj[pre + 'touchend' + id], false); + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/dom/DomEvent.js b/extlib/leaflet/src/dom/DomEvent.js new file mode 100644 index 00000000..bcabebc2 --- /dev/null +++ b/extlib/leaflet/src/dom/DomEvent.js @@ -0,0 +1,132 @@ +/* + * L.DomEvent contains functions for working with DOM events. + */ + +L.DomEvent = { + /* inpired by John Resig, Dean Edwards and YUI addEvent implementations */ + addListener: function(/*HTMLElement*/ obj, /*String*/ type, /*Function*/ fn, /*Object*/ context) { + var id = L.Util.stamp(fn); + + function handler(e) { + return fn.call(context || obj, e || L.DomEvent._getEvent()); + } + + if (L.Browser.touch && (type == 'dblclick') && this.addDoubleTapListener) { + this.addDoubleTapListener(obj, handler, id); + } else if ('addEventListener' in obj) { + if (type == 'mousewheel') { + obj.addEventListener('DOMMouseScroll', handler, false); + obj.addEventListener(type, handler, false); + } else if ((type == 'mouseenter') || (type == 'mouseleave')) { + var originalHandler = handler, + newType = (type == 'mouseenter' ? 'mouseover' : 'mouseout'); + handler = function(e) { + if (!L.DomEvent._checkMouse(obj, e)) return; + return originalHandler(e); + }; + obj.addEventListener(newType, handler, false); + } else { + obj.addEventListener(type, handler, false); + } + } else if ('attachEvent' in obj) { + obj.attachEvent("on" + type, handler); + } + + obj['_leaflet_' + type + id] = handler; + }, + + removeListener: function(/*HTMLElement*/ obj, /*String*/ type, /*Function*/ fn) { + var id = L.Util.stamp(fn), + key = '_leaflet_' + type + id; + handler = obj[key]; + + if (L.Browser.mobileWebkit && (type == 'dblclick') && this.removeDoubleTapListener) { + this.removeDoubleTapListener(obj, id); + } else if ('removeEventListener' in obj) { + if (type == 'mousewheel') { + obj.removeEventListener('DOMMouseScroll', handler, false); + obj.removeEventListener(type, handler, false); + } else if ((type == 'mouseenter') || (type == 'mouseleave')) { + obj.removeEventListener((type == 'mouseenter' ? 'mouseover' : 'mouseout'), handler, false); + } else { + obj.removeEventListener(type, handler, false); + } + } else if ('detachEvent' in obj) { + obj.detachEvent("on" + type, handler); + } + obj[key] = null; + }, + + _checkMouse: function(el, e) { + var related = e.relatedTarget; + + if (!related) return true; + + try { + while (related && (related != el)) { + related = related.parentNode; + } + } catch(err) { return false; } + + return (related != el); + }, + + _getEvent: function()/*->Event*/ { + var e = window.event; + if (!e) { + var caller = arguments.callee.caller; + while (caller) { + e = caller['arguments'][0]; + if (e && Event == e.constructor) { break; } + caller = caller.caller; + } + } + return e; + }, + + stopPropagation: function(/*Event*/ e) { + if (e.stopPropagation) { + e.stopPropagation(); + } else { + e.cancelBubble = true; + } + }, + + disableClickPropagation: function(/*HTMLElement*/ el) { + L.DomEvent.addListener(el, 'mousedown', L.DomEvent.stopPropagation); + L.DomEvent.addListener(el, 'click', L.DomEvent.stopPropagation); + L.DomEvent.addListener(el, 'dblclick', L.DomEvent.stopPropagation); + }, + + preventDefault: function(/*Event*/ e) { + if (e.preventDefault) { + e.preventDefault(); + } else { + e.returnValue = false; + } + }, + + stop: function(e) { + L.DomEvent.preventDefault(e); + L.DomEvent.stopPropagation(e); + }, + + getMousePosition: function(e, container) { + var x = e.pageX ? e.pageX : e.clientX + + document.body.scrollLeft + document.documentElement.scrollLeft, + y = e.pageY ? e.pageY : e.clientY + + document.body.scrollTop + document.documentElement.scrollTop, + pos = new L.Point(x, y); + + return (container ? + pos.subtract(L.DomUtil.getCumulativeOffset(container)) : pos); + }, + + getWheelDelta: function(e) { + var delta = 0; + if (e.wheelDelta) { delta = e.wheelDelta/120; } + if (e.detail) { delta = -e.detail/3; } + return delta; + } +}; + diff --git a/extlib/leaflet/src/dom/DomUtil.js b/extlib/leaflet/src/dom/DomUtil.js new file mode 100644 index 00000000..7672bfba --- /dev/null +++ b/extlib/leaflet/src/dom/DomUtil.js @@ -0,0 +1,124 @@ +/* + * L.DomUtil contains various utility functions for working with DOM + */ + +L.DomUtil = { + get: function(id) { + return (typeof id == 'string' ? document.getElementById(id) : id); + }, + + getStyle: function(el, style) { + var value = el.style[style]; + if (!value && el.currentStyle) { + value = el.currentStyle[style]; + } + if (!value || value == 'auto') { + var css = document.defaultView.getComputedStyle(el, null); + value = css ? css[style] : null; + } + return (value == 'auto' ? null : value); + }, + + getCumulativeOffset: function(el) { + var top = 0, + left = 0; + do { + top += el.offsetTop || 0; + left += el.offsetLeft || 0; + el = el.offsetParent; + } while (el); + return new L.Point(left, top); + }, + + create: function(tagName, className, container) { + var el = document.createElement(tagName); + el.className = className; + if (container) { + container.appendChild(el); + } + return el; + }, + + disableTextSelection: function() { + if (document.selection && document.selection.empty) { + document.selection.empty(); + } + if (!this._onselectstart) { + this._onselectstart = document.onselectstart; + document.onselectstart = L.Util.falseFn; + } + }, + + enableTextSelection: function() { + document.onselectstart = this._onselectstart; + this._onselectstart = null; + }, + + CLASS_RE: /(\\s|^)'+cls+'(\\s|$)/, + + hasClass: function(el, name) { + return (el.className.length > 0) && + new RegExp("(^|\\s)" + name + "(\\s|$)").test(el.className); + }, + + addClass: function(el, name) { + if (!L.DomUtil.hasClass(el, name)) { + el.className += (el.className ? ' ' : '') + name; + } + }, + + setOpacity: function(el, value) { + if (L.Browser.ie) { + el.style.filter = 'alpha(opacity=' + Math.round(value * 100) + ')'; + } else { + el.style.opacity = value; + } + }, + + //TODO refactor away this ugly translate/position mess + + testProp: function(props) { + var style = document.documentElement.style; + + for (var i = 0; i < props.length; i++) { + if (props[i] in style) { + return props[i]; + } + } + return false; + }, + + getTranslateString: function(point) { + return L.DomUtil.TRANSLATE_OPEN + + point.x + 'px,' + point.y + 'px' + + L.DomUtil.TRANSLATE_CLOSE; + }, + + getScaleString: function(scale, origin) { + return L.DomUtil.getTranslateString(origin) + + ' scale(' + scale + ') ' + + L.DomUtil.getTranslateString(origin.multiplyBy(-1)); + }, + + setPosition: function(el, point) { + el._leaflet_pos = point; + if (L.Browser.webkit) { + el.style[L.DomUtil.TRANSFORM] = L.DomUtil.getTranslateString(point); + } else { + el.style.left = point.x + 'px'; + el.style.top = point.y + 'px'; + } + }, + + getPosition: function(el) { + return el._leaflet_pos; + } +}; + +L.Util.extend(L.DomUtil, { + TRANSITION: L.DomUtil.testProp(['transition', 'webkitTransition', 'OTransition', 'MozTransition', 'msTransition']), + TRANSFORM: L.DomUtil.testProp(['transformProperty', 'WebkitTransform', 'OTransform', 'MozTransform', 'msTransform']), + + TRANSLATE_OPEN: 'translate' + (L.Browser.webkit3d ? '3d(' : '('), + TRANSLATE_CLOSE: L.Browser.webkit3d ? ',0)' : ')' +}); \ No newline at end of file diff --git a/extlib/leaflet/src/dom/Draggable.js b/extlib/leaflet/src/dom/Draggable.js new file mode 100644 index 00000000..c0aea23e --- /dev/null +++ b/extlib/leaflet/src/dom/Draggable.js @@ -0,0 +1,129 @@ +/* + * L.Draggable allows you to add dragging capabilities to any element. Supports mobile devices too. + */ + +L.Draggable = L.Class.extend({ + includes: L.Mixin.Events, + + statics: { + START: L.Browser.touch ? 'touchstart' : 'mousedown', + END: L.Browser.touch ? 'touchend' : 'mouseup', + MOVE: L.Browser.touch ? 'touchmove' : 'mousemove', + TAP_TOLERANCE: 15 + }, + + initialize: function(element, dragStartTarget) { + this._element = element; + this._dragStartTarget = dragStartTarget || element; + }, + + enable: function() { + if (this._enabled) { return; } + L.DomEvent.addListener(this._dragStartTarget, L.Draggable.START, this._onDown, this); + this._enabled = true; + }, + + disable: function() { + if (!this._enabled) { return; } + L.DomEvent.removeListener(this._dragStartTarget, L.Draggable.START, this._onDown); + this._enabled = false; + }, + + _onDown: function(e) { + if (e.shiftKey || ((e.which != 1) && (e.button != 1) && !e.touches)) { return; } + + if (e.touches && e.touches.length > 1) { return; } + + var first = (e.touches && e.touches.length == 1 ? e.touches[0] : e); + + L.DomEvent.preventDefault(e); + + if (L.Browser.mobileWebkit) { + first.target.className += ' leaflet-active'; + } + + this._moved = false; + + L.DomUtil.disableTextSelection(); + this._setMovingCursor(); + + this._startPos = this._newPos = L.DomUtil.getPosition(this._element); + this._startPoint = new L.Point(first.clientX, first.clientY); + + L.DomEvent.addListener(document, L.Draggable.MOVE, this._onMove, this); + L.DomEvent.addListener(document, L.Draggable.END, this._onUp, this); + }, + + _onMove: function(e) { + if (e.touches && e.touches.length > 1) { return; } + + L.DomEvent.preventDefault(e); + + var first = (e.touches && e.touches.length == 1 ? e.touches[0] : e); + + if (!this._moved) { + this.fire('dragstart'); + this._moved = true; + } + + var newPoint = new L.Point(first.clientX, first.clientY); + this._newPos = this._startPos.add(newPoint).subtract(this._startPoint); + + L.Util.requestAnimFrame(this._updatePosition, this, true); + + this.fire('drag'); + }, + + _updatePosition: function() { + L.DomUtil.setPosition(this._element, this._newPos); + }, + + _onUp: function(e) { + if (e.changedTouches) { + var first = e.changedTouches[0], + el = first.target, + dist = (this._newPos && this._newPos.distanceTo(this._startPos)) || 0; + + el.className = el.className.replace(' leaflet-active', ''); + + if (dist < L.Draggable.TAP_TOLERANCE) { + this._simulateEvent('click', first); + } + } + + L.DomUtil.enableTextSelection(); + + this._restoreCursor(); + + L.DomEvent.removeListener(document, L.Draggable.MOVE, this._onMove); + L.DomEvent.removeListener(document, L.Draggable.END, this._onUp); + + if (this._moved) { + this.fire('dragend'); + } + }, + + _removeActiveClass: function(el) { + }, + + _setMovingCursor: function() { + this._bodyCursor = document.body.style.cursor; + document.body.style.cursor = 'move'; + }, + + _restoreCursor: function() { + document.body.style.cursor = this._bodyCursor; + }, + + _simulateEvent: function(type, e) { + var simulatedEvent = document.createEvent('MouseEvent'); + + simulatedEvent.initMouseEvent( + type, true, true, window, 1, + e.screenX, e.screenY, + e.clientX, e.clientY, + false, false, false, false, 0, null); + + e.target.dispatchEvent(simulatedEvent); + } +}); diff --git a/extlib/leaflet/src/dom/transition/Transition.Native.js b/extlib/leaflet/src/dom/transition/Transition.Native.js new file mode 100644 index 00000000..6ce16a67 --- /dev/null +++ b/extlib/leaflet/src/dom/transition/Transition.Native.js @@ -0,0 +1,89 @@ +/* + * L.Transition native implementation that powers Leaflet animation + * in browsers that support CSS3 Transitions + */ + +L.Transition = L.Transition.extend({ + statics: (function() { + var transition = L.DomUtil.TRANSITION, + transitionEnd = (transition == 'webkitTransition' || transition == 'OTransition' ? + transition + 'End' : 'transitionend'); + + return { + NATIVE: !!transition, + + TRANSITION: transition, + PROPERTY: transition + 'Property', + DURATION: transition + 'Duration', + EASING: transition + 'TimingFunction', + END: transitionEnd, + + // transition-property value to use with each particular custom property + CUSTOM_PROPS_PROPERTIES: { + position: L.Browser.webkit ? L.DomUtil.TRANSFORM : 'top, left' + } + }; + })(), + + options: { + fakeStepInterval: 100 + }, + + initialize: function(/*HTMLElement*/ el, /*Object*/ options) { + this._el = el; + L.Util.setOptions(this, options); + + L.DomEvent.addListener(el, L.Transition.END, this._onTransitionEnd, this); + this._onFakeStep = L.Util.bind(this._onFakeStep, this); + }, + + run: function(/*Object*/ props) { + var prop, + propsList = [], + customProp = L.Transition.CUSTOM_PROPS_PROPERTIES; + + for (prop in props) { + if (props.hasOwnProperty(prop)) { + prop = customProp[prop] ? customProp[prop] : prop; + prop = prop.replace(/([A-Z])/g, function(w) { return '-' + w.toLowerCase(); }); + propsList.push(prop); + } + } + + this._el.style[L.Transition.DURATION] = this.options.duration + 's'; + this._el.style[L.Transition.EASING] = this.options.easing; + this._el.style[L.Transition.PROPERTY] = propsList.join(', '); + + for (prop in props) { + if (props.hasOwnProperty(prop)) { + this._setProperty(prop, props[prop]); + } + } + + this._inProgress = true; + + this.fire('start'); + + if (L.Transition.NATIVE) { + this._timer = setInterval(this._onFakeStep, this.options.fakeStepInterval); + } else { + this._onTransitionEnd(); + } + }, + + _onFakeStep: function() { + this.fire('step'); + }, + + _onTransitionEnd: function() { + if (this._inProgress) { + this._inProgress = false; + clearInterval(this._timer); + + this._el.style[L.Transition.PROPERTY] = 'none'; + + this.fire('step'); + this.fire('end'); + } + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/dom/transition/Transition.Timer.js b/extlib/leaflet/src/dom/transition/Transition.Timer.js new file mode 100644 index 00000000..af4e4ef2 --- /dev/null +++ b/extlib/leaflet/src/dom/transition/Transition.Timer.js @@ -0,0 +1,124 @@ +/* + * L.Transition fallback implementation that powers Leaflet animation + * in browsers that don't support CSS3 Transitions + */ + +L.Transition = L.Transition.NATIVE ? L.Transition : L.Transition.extend({ + statics: { + getTime: Date.now || function() { return +new Date(); }, + + TIMER: true, + + EASINGS: { + 'ease': [0.25, 0.1, 0.25, 1.0], + 'linear': [0.0, 0.0, 1.0, 1.0], + 'ease-in': [0.42, 0, 1.0, 1.0], + 'ease-out': [0, 0, 0.58, 1.0], + 'ease-in-out': [0.42, 0, 0.58, 1.0] + }, + + CUSTOM_PROPS_GETTERS: { + position: L.DomUtil.getPosition + }, + + //used to get units from strings like "10.5px" (->px) + UNIT_RE: /^[\d\.]+(\D*)$/ + }, + + options: { + fps: 50 + }, + + initialize: function(el, options) { + this._el = el; + L.Util.extend(this.options, options); + + var easings = L.Transition.EASINGS[this.options.easing] || L.Transition.EASINGS['ease']; + + this._p1 = new L.Point(0, 0); + this._p2 = new L.Point(easings[0], easings[1]); + this._p3 = new L.Point(easings[2], easings[3]); + this._p4 = new L.Point(1, 1); + + this._step = L.Util.bind(this._step, this); + this._interval = Math.round(1000 / this.options.fps); + }, + + run: function(props) { + this._props = {}; + + var getters = L.Transition.CUSTOM_PROPS_GETTERS, + re = L.Transition.UNIT_RE; + + this.fire('start'); + + for (var prop in props) { + if (props.hasOwnProperty(prop)) { + var p = {}; + if (prop in getters) { + p.from = getters[prop](this._el); + } else { + var matches = this._el.style[prop].match(re); + p.from = parseFloat(matches[0]); + p.unit = matches[1]; + } + p.to = props[prop]; + this._props[prop] = p; + } + } + + clearInterval(this._timer); + this._timer = setInterval(this._step, this._interval); + this._startTime = L.Transition.getTime(); + }, + + _step: function() { + var time = L.Transition.getTime(), + elapsed = time - this._startTime, + duration = this.options.duration * 1000; + + if (elapsed < duration) { + this._runFrame(this._cubicBezier(elapsed / duration)); + } else { + this._runFrame(1); + this._complete(); + } + }, + + _runFrame: function(percentComplete) { + var setters = L.Transition.CUSTOM_PROPS_SETTERS, + prop, p, value; + + for (prop in this._props) { + if (this._props.hasOwnProperty(prop)) { + p = this._props[prop]; + if (prop in setters) { + value = p.to.subtract(p.from).multiplyBy(percentComplete).add(p.from); + setters[prop](this._el, value); + } else { + this._el.style[prop] = + ((p.to - p.from) * percentComplete + p.from) + p.unit; + } + } + } + this.fire('step'); + }, + + _complete: function() { + clearInterval(this._timer); + this.fire('end'); + }, + + _cubicBezier: function(t) { + var a = Math.pow(1 - t, 3), + b = 3 * Math.pow(1 - t, 2) * t, + c = 3 * (1 - t) * Math.pow(t, 2), + d = Math.pow(t, 3), + p1 = this._p1.multiplyBy(a), + p2 = this._p2.multiplyBy(b), + p3 = this._p3.multiplyBy(c), + p4 = this._p4.multiplyBy(d); + + return p1.add(p2).add(p3).add(p4).y; + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/dom/transition/Transition.js b/extlib/leaflet/src/dom/transition/Transition.js new file mode 100644 index 00000000..ccf48572 --- /dev/null +++ b/extlib/leaflet/src/dom/transition/Transition.js @@ -0,0 +1,28 @@ +L.Transition = L.Class.extend({ + includes: L.Mixin.Events, + + statics: { + CUSTOM_PROPS_SETTERS: { + position: L.DomUtil.setPosition + //TODO transform custom attr + }, + + implemented: function() { + return L.Transition.NATIVE || L.Transition.TIMER; + } + }, + + options: { + easing: 'ease', + duration: 0.5 + }, + + _setProperty: function(prop, value) { + var setters = L.Transition.CUSTOM_PROPS_SETTERS; + if (prop in setters) { + setters[prop](this._el, value); + } else { + this._el.style[prop] = value; + } + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/geo/LatLng.js b/extlib/leaflet/src/geo/LatLng.js new file mode 100644 index 00000000..fb916547 --- /dev/null +++ b/extlib/leaflet/src/geo/LatLng.js @@ -0,0 +1,35 @@ +/* + CM.LatLng represents a geographical point with latitude and longtitude coordinates. +*/ + +L.LatLng = function(/*Number*/ lat, /*Number*/ lng, /*Boolean*/ noWrap) { + if (noWrap !== true) { + lat = Math.max(Math.min(lat, 90), -90); // clamp latitude into -90..90 + lng = (lng + 180) % 360 + (lng < -180 ? 180 : -180); // wrap longtitude into -180..180 + } + + //TODO change to lat() & lng() + this.lat = lat; + this.lng = lng; +}; + +L.Util.extend(L.LatLng, { + DEG_TO_RAD: Math.PI / 180, + RAD_TO_DEG: 180 / Math.PI, + MAX_MARGIN: 1.0E-9 // max margin of error for the "equals" check +}); + +L.LatLng.prototype = { + equals: function(/*LatLng*/ obj) { + if (!(obj instanceof L.LatLng)) { return false; } + + var margin = Math.max(Math.abs(this.lat - obj.lat), Math.abs(this.lng - obj.lng)); + return margin <= L.LatLng.MAX_MARGIN; + }, + + toString: function() { + return 'LatLng(' + + L.Util.formatNum(this.lat) + ', ' + + L.Util.formatNum(this.lng) + ')'; + } +}; \ No newline at end of file diff --git a/extlib/leaflet/src/geo/LatLngBounds.js b/extlib/leaflet/src/geo/LatLngBounds.js new file mode 100644 index 00000000..c4e70ec3 --- /dev/null +++ b/extlib/leaflet/src/geo/LatLngBounds.js @@ -0,0 +1,62 @@ +/* + * L.LatLngBounds represents a rectangular area on the map in geographical coordinates. + */ + +L.LatLngBounds = L.Class.extend({ + initialize: function(southWest, northEast) { // (LatLng, LatLng) or (LatLng[]) + if (!southWest) return; + var latlngs = (southWest instanceof Array ? southWest : [southWest, northEast]); + for (var i = 0, len = latlngs.length; i < len; i++) { + this.extend(latlngs[i]); + } + }, + + // extend the bounds to contain the given point + extend: function(/*LatLng*/ latlng) { + if (!this._southWest && !this._northEast) { + this._southWest = new L.LatLng(latlng.lat, latlng.lng); + this._northEast = new L.LatLng(latlng.lat, latlng.lng); + } else { + this._southWest.lat = Math.min(latlng.lat, this._southWest.lat); + this._southWest.lng = Math.min(latlng.lng, this._southWest.lng); + this._northEast.lat = Math.max(latlng.lat, this._northEast.lat); + this._northEast.lng = Math.max(latlng.lng, this._northEast.lng); + } + }, + + getCenter: function() /*-> LatLng*/ { + return new L.LatLng( + (this._southWest.lat + this._northEast.lat) / 2, + (this._southWest.lng + this._northEast.lng) / 2); + }, + + getSouthWest: function() { return this._southWest; }, + + getNorthEast: function() { return this._northEast; }, + + getNorthWest: function() { + return new L.LatLng(this._northEast.lat, this._southWest.lng); + }, + + getSouthEast: function() { + return new L.LatLng(this._southWest.lat, this._northEast.lng); + }, + + contains: function(/*LatLngBounds or LatLng*/ obj) /*-> Boolean*/ { + var sw = this._southWest, + ne = this._northEast, + sw2, ne2; + + if (obj instanceof L.LatLngBounds) { + sw2 = obj.getSouthWest(); + ne2 = obj.getNorthEast(); + } else { + sw2 = ne2 = obj; + } + + return (sw2.lat >= sw.lat) && (ne2.lat <= ne.lat) && + (sw2.lng >= sw.lng) && (ne2.lng <= ne.lng); + } +}); + +//TODO International date line? \ No newline at end of file diff --git a/extlib/leaflet/src/geo/crs/CRS.EPSG3395.js b/extlib/leaflet/src/geo/crs/CRS.EPSG3395.js new file mode 100644 index 00000000..426dc73c --- /dev/null +++ b/extlib/leaflet/src/geo/crs/CRS.EPSG3395.js @@ -0,0 +1,13 @@ + +L.CRS.EPSG3395 = L.Util.extend({}, L.CRS, { + code: 'EPSG:3395', + + projection: L.Projection.Mercator, + transformation: (function() { + var m = L.Projection.Mercator, + r = m.R_MAJOR, + r2 = m.R_MINOR; + + return new L.Transformation(0.5/(Math.PI * r), 0.5, -0.5/(Math.PI * r2), 0.5); + })() +}); \ No newline at end of file diff --git a/extlib/leaflet/src/geo/crs/CRS.EPSG3857.js b/extlib/leaflet/src/geo/crs/CRS.EPSG3857.js new file mode 100644 index 00000000..cbdbd03a --- /dev/null +++ b/extlib/leaflet/src/geo/crs/CRS.EPSG3857.js @@ -0,0 +1,17 @@ + +L.CRS.EPSG3857 = L.Util.extend({}, L.CRS, { + code: 'EPSG:3857', + + projection: L.Projection.SphericalMercator, + transformation: new L.Transformation(0.5/Math.PI, 0.5, -0.5/Math.PI, 0.5), + + project: function(/*LatLng*/ latlng)/*-> Point*/ { + var projectedPoint = this.projection.project(latlng), + earthRadius = 6378137; + return projectedPoint.multiplyBy(earthRadius); + } +}); + +L.CRS.EPSG900913 = L.Util.extend({}, L.CRS.EPSG3857, { + code: 'EPSG:900913' +}); \ No newline at end of file diff --git a/extlib/leaflet/src/geo/crs/CRS.EPSG4326.js b/extlib/leaflet/src/geo/crs/CRS.EPSG4326.js new file mode 100644 index 00000000..1550718d --- /dev/null +++ b/extlib/leaflet/src/geo/crs/CRS.EPSG4326.js @@ -0,0 +1,7 @@ + +L.CRS.EPSG4326 = L.Util.extend({}, L.CRS, { + code: 'EPSG:4326', + + projection: L.Projection.LonLat, + transformation: new L.Transformation(1/360, 0.5, -1/360, 0.5) +}); \ No newline at end of file diff --git a/extlib/leaflet/src/geo/crs/CRS.js b/extlib/leaflet/src/geo/crs/CRS.js new file mode 100644 index 00000000..2dc2aa8d --- /dev/null +++ b/extlib/leaflet/src/geo/crs/CRS.js @@ -0,0 +1,17 @@ + +L.CRS = { + latLngToPoint: function(/*LatLng*/ latlng, /*Number*/ scale)/*-> Point*/ { + var projectedPoint = this.projection.project(latlng); + return this.transformation._transform(projectedPoint, scale); + }, + + pointToLatLng: function(/*Point*/ point, /*Number*/ scale, /*(optional) Boolean*/ unbounded)/*-> LatLng*/ { + var untransformedPoint = this.transformation.untransform(point, scale); + return this.projection.unproject(untransformedPoint, unbounded); + //TODO get rid of 'unbounded' everywhere + }, + + project: function(latlng) { + return this.projection.project(latlng); + } +}; \ No newline at end of file diff --git a/extlib/leaflet/src/geo/projection/Projection.LonLat.js b/extlib/leaflet/src/geo/projection/Projection.LonLat.js new file mode 100644 index 00000000..ece29717 --- /dev/null +++ b/extlib/leaflet/src/geo/projection/Projection.LonLat.js @@ -0,0 +1,10 @@ + +L.Projection.LonLat = { + project: function(latlng) { + return new L.Point(latlng.lng, latlng.lat); + }, + + unproject: function(point, unbounded) { + return new L.LatLng(point.y, point.x, unbounded); + } +}; diff --git a/extlib/leaflet/src/geo/projection/Projection.Mercator.js b/extlib/leaflet/src/geo/projection/Projection.Mercator.js new file mode 100644 index 00000000..9eafff18 --- /dev/null +++ b/extlib/leaflet/src/geo/projection/Projection.Mercator.js @@ -0,0 +1,49 @@ + +L.Projection.Mercator = { + MAX_LATITUDE: 85.0840591556, + + R_MINOR: 6356752.3142, + R_MAJOR: 6378137, + + project: function(/*LatLng*/ latlng) /*-> Point*/ { + var d = L.LatLng.DEG_TO_RAD, + max = this.MAX_LATITUDE, + lat = Math.max(Math.min(max, latlng.lat), -max), + r = this.R_MAJOR, + x = latlng.lng * d * r, + y = lat * d, + tmp = this.R_MINOR / r, + eccent = Math.sqrt(1.0 - tmp * tmp), + con = eccent * Math.sin(y); + + con = Math.pow((1 - con)/(1 + con), eccent * 0.5); + + var ts = Math.tan(0.5 * ((Math.PI * 0.5) - y)) / con; + y = -r * Math.log(ts); + + return new L.Point(x, y); + }, + + unproject: function(/*Point*/ point, /*Boolean*/ unbounded) /*-> LatLng*/ { + var d = L.LatLng.RAD_TO_DEG, + r = this.R_MAJOR, + lng = point.x * d / r, + tmp = this.R_MINOR / r, + eccent = Math.sqrt(1 - (tmp * tmp)), + ts = Math.exp(- point.y / r), + phi = Math.PI/2 - 2 * Math.atan(ts), + numIter = 15, + tol = 1e-7, + i = numIter, + dphi = 0.1, + con; + + while ((Math.abs(dphi) > tol) && (--i > 0)) { + con = eccent * Math.sin(phi); + dphi = Math.PI/2 - 2 * Math.atan(ts * Math.pow((1.0 - con)/(1.0 + con), 0.5 * eccent)) - phi; + phi += dphi; + } + + return new L.LatLng(phi * d, lng, unbounded); + } +}; diff --git a/extlib/leaflet/src/geo/projection/Projection.SphericalMercator.js b/extlib/leaflet/src/geo/projection/Projection.SphericalMercator.js new file mode 100644 index 00000000..be0532ff --- /dev/null +++ b/extlib/leaflet/src/geo/projection/Projection.SphericalMercator.js @@ -0,0 +1,23 @@ + +L.Projection.SphericalMercator = { + MAX_LATITUDE: 85.0511287798, + + project: function(/*LatLng*/ latlng) /*-> Point*/ { + var d = L.LatLng.DEG_TO_RAD, + max = this.MAX_LATITUDE, + lat = Math.max(Math.min(max, latlng.lat), -max), + x = latlng.lng * d, + y = lat * d; + y = Math.log(Math.tan(Math.PI/4 + y/2)); + + return new L.Point(x, y); + }, + + unproject: function(/*Point*/ point, /*Boolean*/ unbounded) /*-> LatLng*/ { + var d = L.LatLng.RAD_TO_DEG, + lng = point.x * d, + lat = (2 * Math.atan(Math.exp(point.y)) - Math.PI/2) * d; + + return new L.LatLng(lat, lng, unbounded); + } +}; diff --git a/extlib/leaflet/src/geo/projection/Projection.js b/extlib/leaflet/src/geo/projection/Projection.js new file mode 100644 index 00000000..84316b30 --- /dev/null +++ b/extlib/leaflet/src/geo/projection/Projection.js @@ -0,0 +1,5 @@ +/* + * L.Projection contains various geographical projections used by CRS classes. + */ + +L.Projection = {}; diff --git a/extlib/leaflet/src/geometry/Bounds.js b/extlib/leaflet/src/geometry/Bounds.js new file mode 100644 index 00000000..73448ceb --- /dev/null +++ b/extlib/leaflet/src/geometry/Bounds.js @@ -0,0 +1,48 @@ +/* + * L.Bounds represents a rectangular area on the screen in pixel coordinates. + */ + +L.Bounds = L.Class.extend({ + initialize: function(min, max) { //(Point, Point) or Point[] + if (!min) return; + var points = (min instanceof Array ? min : [min, max]); + for (var i = 0, len = points.length; i < len; i++) { + this.extend(points[i]); + } + }, + + // extend the bounds to contain the given point + extend: function(/*Point*/ point) { + if (!this.min && !this.max) { + this.min = new L.Point(point.x, point.y); + this.max = new L.Point(point.x, point.y); + } else { + this.min.x = Math.min(point.x, this.min.x); + this.max.x = Math.max(point.x, this.max.x); + this.min.y = Math.min(point.y, this.min.y); + this.max.y = Math.max(point.y, this.max.y); + } + }, + + getCenter: function(round)/*->Point*/ { + return new L.Point( + (this.min.x + this.max.x) / 2, + (this.min.y + this.max.y) / 2, round); + }, + + contains: function(/*Bounds or Point*/ obj)/*->Boolean*/ { + var min, max; + + if (obj instanceof L.Bounds) { + min = obj.min; + max = obj.max; + } else { + max = max = obj; + } + + return (min.x >= this.min.x) && + (max.x <= this.max.x) && + (min.y >= this.min.y) && + (max.y <= this.max.y); + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/geometry/LineUtil.js b/extlib/leaflet/src/geometry/LineUtil.js new file mode 100644 index 00000000..72a80855 --- /dev/null +++ b/extlib/leaflet/src/geometry/LineUtil.js @@ -0,0 +1,159 @@ +/* + * L.LineUtil contains different utility functions for line segments + * and polylines (clipping, simplification, distances, etc.) + */ + +L.LineUtil = { + /* + * Simplify polyline with vertex reduction and Douglas-Peucker simplification. + * Improves rendering performance dramatically by lessening the number of points to draw. + */ + simplify: function(/*Point[]*/ points, /*Number*/ tolerance) { + if (!tolerance) return points.slice(); + + // stage 1: vertex reduction + points = this.reducePoints(points, tolerance); + + // stage 2: Douglas-Peucker simplification + points = this.simplifyDP(points, tolerance); + + return points; + }, + + // distance from a point to a segment between two points + pointToSegmentDistance: function(/*Point*/ p, /*Point*/ p1, /*Point*/ p2) { + return Math.sqrt(this._sqPointToSegmentDist(p, p1, p2)); + }, + + // Douglas-Peucker simplification, see http://en.wikipedia.org/wiki/Douglas-Peucker_algorithm + simplifyDP: function(points, tol) { + var maxDist2 = 0, + index = 0, + t2 = tol * tol; + + for (var i = 1, len = points.length, dist2; i < len - 1; i++) { + dist2 = this._sqPointToSegmentDist(points[i], points[0], points[len - 1]); + if (dist2 > maxDist2) { + index = i; + maxDist2 = dist2; + } + } + + if (maxDist2 >= t2) { + var part1 = points.slice(0, index), + part2 = points.slice(index), + simplifiedPart1 = this.simplifyDP(part1, tol).slice(0, len - 2), + simplifiedPart2 = this.simplifyDP(part2, tol); + + return simplifiedPart1.concat(simplifiedPart2); + } else { + return [points[0], points[len - 1]]; + } + }, + + // reduce points that are too close to each other to a single point + reducePoints: function(points, tol) { + var reducedPoints = [points[0]], + t2 = tol * tol; + + for (var i = 1, prev = 0, len = points.length; i < len; i++) { + if (this._sqDist(points[i], points[prev]) < t2) continue; + reducedPoints.push(points[i]); + prev = i; + } + if (prev < len - 1) { + reducedPoints.push(points[len - 1]); + } + return reducedPoints; + }, + + /* + * Cohen-Sutherland line clipping algorithm. + * Used to avoid rendering parts of a polyline that are not currently visible. + */ + clipSegment: function(a, b, bounds, useLastCode) { + var min = bounds.min, + max = bounds.max; + + var codeA = useLastCode ? this._lastCode : this._getBitCode(a, bounds), + codeB = this._getBitCode(b, bounds); + + // save 2nd code to avoid calculating it on the next segment + this._lastCode = codeB; + + while (true) { + // if a,b is inside the clip window (trivial accept) + if (!(codeA | codeB)) { + return [a, b]; + // if a,b is outside the clip window (trivial reject) + } else if (codeA & codeB) { + return false; + // other cases + } else { + var codeOut = codeA || codeB, + p = this._getEdgeIntersection(a, b, codeOut, bounds), + newCode = this._getBitCode(p, bounds); + + if (codeOut == codeA) { + a = p; + codeA = newCode; + } else { + b = p; + codeB = newCode; + } + } + } + }, + + _getEdgeIntersection: function(a, b, code, bounds) { + var dx = b.x - a.x, + dy = b.y - a.y, + min = bounds.min, + max = bounds.max; + + if (code & 8) { // top + return new L.Point(a.x + dx * (max.y - a.y) / dy, max.y); + } else if (code & 4) { // bottom + return new L.Point(a.x + dx * (min.y - a.y) / dy, min.y); + } else if (code & 2){ // right + return new L.Point(max.x, a.y + dy * (max.x - a.x) / dx); + } else if (code & 1) { // left + return new L.Point(min.x, a.y + dy * (min.x - a.x) / dx); + } + }, + + _getBitCode: function(/*Point*/ p, bounds) { + var code = 0; + + if (p.x < bounds.min.x) code |= 1; // left + else if (p.x > bounds.max.x) code |= 2; // right + if (p.y < bounds.min.y) code |= 4; // bottom + else if (p.y > bounds.max.y) code |= 8; // top + + return code; + }, + + // square distance (to avoid unnecessary Math.sqrt calls) + _sqDist: function(p1, p2) { + var dx = p2.x - p1.x, + dy = p2.y - p1.y; + return dx * dx + dy * dy; + }, + + // square distance from point to a segment + _sqPointToSegmentDist: function(p, p1, p2) { + var x2 = p2.x - p1.x, + y2 = p2.y - p1.y; + + if (!x2 && !y2) return this._sqDist(p, p1); + + var dot = (p.x - p1.x) * x2 + (p.y - p1.y) * y2, + t = dot / this._sqDist(p1, p2); + + if (t < 0) return this._sqDist(p, p1); + if (t > 1) return this._sqDist(p, p2); + + var proj = new L.Point(p1.x + x2 * t, p1.y + y2 * t); + return this._sqDist(p, proj); + } +}; \ No newline at end of file diff --git a/extlib/leaflet/src/geometry/Point.js b/extlib/leaflet/src/geometry/Point.js new file mode 100644 index 00000000..d031ffe1 --- /dev/null +++ b/extlib/leaflet/src/geometry/Point.js @@ -0,0 +1,66 @@ +/* + * L.Point represents a point with x and y coordinates. + */ + +L.Point = function(/*Number*/ x, /*Number*/ y, /*Boolean*/ round) { + this.x = (round ? Math.round(x) : x); + this.y = (round ? Math.round(y) : y); +}; + +L.Point.prototype = { + add: function(point) { + return this.clone()._add(point); + }, + + _add: function(point) { + this.x += point.x; + this.y += point.y; + return this; + }, + + subtract: function(point) { + return this.clone()._subtract(point); + }, + + // destructive subtract (faster) + _subtract: function(point) { + this.x -= point.x; + this.y -= point.y; + return this; + }, + + divideBy: function(num, round) { + return new L.Point(this.x/num, this.y/num, round); + }, + + multiplyBy: function(num) { + return new L.Point(this.x * num, this.y * num); + }, + + distanceTo: function(point) { + var x = point.x - this.x, + y = point.y - this.y; + return Math.sqrt(x*x + y*y); + }, + + round: function() { + return this.clone()._round(); + }, + + // destructive round + _round: function() { + this.x = Math.round(this.x); + this.y = Math.round(this.y); + return this; + }, + + clone: function() { + return new L.Point(this.x, this.y); + }, + + toString: function() { + return 'Point(' + + L.Util.formatNum(this.x) + ', ' + + L.Util.formatNum(this.y) + ')'; + } +}; \ No newline at end of file diff --git a/extlib/leaflet/src/geometry/PolyUtil.js b/extlib/leaflet/src/geometry/PolyUtil.js new file mode 100644 index 00000000..c5460709 --- /dev/null +++ b/extlib/leaflet/src/geometry/PolyUtil.js @@ -0,0 +1,55 @@ +/* + * L.PolyUtil contains utilify functions for polygons (clipping, etc.). + */ + +L.PolyUtil = {}; + +/* + * Sutherland-Hodgeman polygon clipping algorithm. + * Used to avoid rendering parts of a polygon that are not currently visible. + */ +L.PolyUtil.clipPolygon = function(points, bounds) { + var min = bounds.min, + max = bounds.max, + clippedPoints, + edges = [1, 4, 2, 8], + i, j, k, + a, b, + len, edge, p, + lu = L.LineUtil; + + for (i = 0, len = points.length; i < len; i++) { + points[i]._code = lu._getBitCode(points[i], bounds); + } + + // for each edge (left, bottom, right, top) + for (k = 0; k < 4; k++) { + edge = edges[k]; + clippedPoints = []; + + for (i = 0, len = points.length, j = len - 1; i < len; j = i++) { + a = points[i]; + b = points[j]; + + // if a is inside the clip window + if (!(a._code & edge)) { + // if b is outside the clip window (a->b goes out of screen) + if (b._code & edge) { + p = lu._getEdgeIntersection(b, a, edge, bounds); + p._code = lu._getBitCode(p, bounds); + clippedPoints.push(p); + } + clippedPoints.push(a); + + // else if b is inside the clip window (a->b enters the screen) + } else if (!(b._code & edge)) { + p = lu._getEdgeIntersection(b, a, edge, bounds); + p._code = lu._getBitCode(p, bounds); + clippedPoints.push(p); + } + } + points = clippedPoints; + } + + return points; +}; \ No newline at end of file diff --git a/extlib/leaflet/src/geometry/Transformation.js b/extlib/leaflet/src/geometry/Transformation.js new file mode 100644 index 00000000..37f40968 --- /dev/null +++ b/extlib/leaflet/src/geometry/Transformation.js @@ -0,0 +1,31 @@ +/* + * L.Transformation is an utility class to perform simple point transformations through a 2d-matrix. + */ + +L.Transformation = L.Class.extend({ + initialize: function(/*Number*/ a, /*Number*/ b, /*Number*/ c, /*Number*/ d) { + this._a = a; + this._b = b; + this._c = c; + this._d = d; + }, + + transform: function(point, scale) { + return this._transform(point.clone(), scale); + }, + + // destructive transform (faster) + _transform: function(/*Point*/ point, /*Number*/ scale) /*-> Point*/ { + scale = scale || 1; + point.x = scale * (this._a * point.x + this._b); + point.y = scale * (this._c * point.y + this._d); + return point; + }, + + untransform: function(/*Point*/ point, /*Number*/ scale) /*-> Point*/ { + scale = scale || 1; + return new L.Point( + (point.x/scale - this._b) / this._a, + (point.y/scale - this._d) / this._c); + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/handler/DoubleClickZoom.js b/extlib/leaflet/src/handler/DoubleClickZoom.js new file mode 100644 index 00000000..121a5e20 --- /dev/null +++ b/extlib/leaflet/src/handler/DoubleClickZoom.js @@ -0,0 +1,21 @@ +/* + * L.Handler.DoubleClickZoom is used internally by L.Map to add double-click zooming. + */ + +L.Handler.DoubleClickZoom = L.Handler.extend({ + enable: function() { + if (this._enabled) { return; } + this._map.on('dblclick', this._onDoubleClick, this._map); + this._enabled = true; + }, + + disable: function() { + if (!this._enabled) { return; } + this._map.off('dblclick', this._onDoubleClick, this._map); + this._enabled = false; + }, + + _onDoubleClick: function(e) { + this.setView(e.latlng, this._zoom + 1); + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/handler/Handler.js b/extlib/leaflet/src/handler/Handler.js new file mode 100644 index 00000000..c38a6b6a --- /dev/null +++ b/extlib/leaflet/src/handler/Handler.js @@ -0,0 +1,13 @@ +/* + * L.Handler classes are used internally to inject interaction features to classes like Map and Marker. + */ + +L.Handler = L.Class.extend({ + initialize: function(map) { + this._map = map; + }, + + enabled: function() { + return !!this._enabled; + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/handler/MapDrag.js b/extlib/leaflet/src/handler/MapDrag.js new file mode 100644 index 00000000..1c407269 --- /dev/null +++ b/extlib/leaflet/src/handler/MapDrag.js @@ -0,0 +1,44 @@ +/* + * L.Handler.MapDrag is used internally by L.Map to make the map draggable. + */ + +L.Handler.MapDrag = L.Handler.extend({ + + enable: function() { + if (this._enabled) { return; } + if (!this._draggable) { + this._draggable = new L.Draggable(this._map._mapPane, this._map._container); + + this._draggable.on('dragstart', this._onDragStart, this); + this._draggable.on('drag', this._onDrag, this); + this._draggable.on('dragend', this._onDragEnd, this); + } + this._draggable.enable(); + this._enabled = true; + }, + + disable: function() { + if (!this._enabled) { return; } + this._draggable.disable(); + this._enabled = false; + }, + + moved: function() { + return this._draggable._moved; + }, + + _onDragStart: function() { + this._map.fire('movestart'); + this._map.fire('dragstart'); + }, + + _onDrag: function() { + this._map.fire('move'); + this._map.fire('drag'); + }, + + _onDragEnd: function() { + this._map.fire('moveend'); + this._map.fire('dragend'); + } +}); diff --git a/extlib/leaflet/src/handler/MarkerDrag.js b/extlib/leaflet/src/handler/MarkerDrag.js new file mode 100644 index 00000000..8e884d50 --- /dev/null +++ b/extlib/leaflet/src/handler/MarkerDrag.js @@ -0,0 +1,54 @@ +/* + * L.Handler.MarkerDrag is used internally by L.Marker to make the markers draggable. + */ + +L.Handler.MarkerDrag = L.Handler.extend({ + initialize: function(marker) { + this._marker = marker; + }, + + enable: function() { + if (this._enabled) { return; } + if (!this._draggable) { + this._draggable = new L.Draggable(this._marker._icon, this._marker._icon); + this._draggable.on('dragstart', this._onDragStart, this); + this._draggable.on('drag', this._onDrag, this); + this._draggable.on('dragend', this._onDragEnd, this); + } + this._draggable.enable(); + this._enabled = true; + }, + + disable: function() { + if (!this._enabled) { return; } + this._draggable.disable(); + this._enabled = false; + }, + + moved: function() { + return this._draggable && this._draggable._moved; + }, + + _onDragStart: function(e) { + this._marker.closePopup(); + + this._marker.fire('movestart'); + this._marker.fire('dragstart'); + }, + + _onDrag: function(e) { + // update shadow position + var iconPos = L.DomUtil.getPosition(this._marker._icon); + L.DomUtil.setPosition(this._marker._shadow, iconPos); + + this._marker._latlng = this._marker._map.layerPointToLatLng(iconPos); + + this._marker.fire('move'); + this._marker.fire('drag'); + }, + + _onDragEnd: function() { + this._marker.fire('moveend'); + this._marker.fire('dragend'); + } +}); diff --git a/extlib/leaflet/src/handler/ScrollWheelZoom.js b/extlib/leaflet/src/handler/ScrollWheelZoom.js new file mode 100644 index 00000000..dc877e17 --- /dev/null +++ b/extlib/leaflet/src/handler/ScrollWheelZoom.js @@ -0,0 +1,50 @@ +/* + * L.Handler.ScrollWheelZoom is used internally by L.Map to enable mouse scroll wheel zooming on the map. + */ + +L.Handler.ScrollWheelZoom = L.Handler.extend({ + enable: function() { + if (this._enabled) { return; } + L.DomEvent.addListener(this._map._container, 'mousewheel', this._onWheelScroll, this); + this._delta = 0; + this._enabled = true; + }, + + disable: function() { + if (!this._enabled) { return; } + L.DomEvent.removeListener(this._map._container, 'mousewheel', this._onWheelScroll); + this._enabled = false; + }, + + _onWheelScroll: function(e) { + this._delta += L.DomEvent.getWheelDelta(e); + this._lastMousePos = this._map.mouseEventToContainerPoint(e); + + clearTimeout(this._timer); + this._timer = setTimeout(L.Util.bind(this._performZoom, this), 50); + + L.DomEvent.preventDefault(e); + }, + + _performZoom: function() { + var delta = Math.round(this._delta); + this._delta = 0; + + if (!delta) { return; } + + var center = this._getCenterForScrollWheelZoom(this._lastMousePos, delta), + zoom = this._map.getZoom() + delta; + + if (this._map._limitZoom(zoom) == this._map._zoom) { return; } + + this._map.setView(center, zoom); + }, + + _getCenterForScrollWheelZoom: function(mousePos, delta) { + var centerPoint = this._map.getPixelBounds().getCenter(), + viewHalf = this._map.getSize().divideBy(2), + centerOffset = mousePos.subtract(viewHalf).multiplyBy(1 - Math.pow(2, -delta)), + newCenterPoint = centerPoint.add(centerOffset); + return this._map.unproject(newCenterPoint, this._map._zoom, true); + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/handler/ShiftDragZoom.js b/extlib/leaflet/src/handler/ShiftDragZoom.js new file mode 100644 index 00000000..ba216109 --- /dev/null +++ b/extlib/leaflet/src/handler/ShiftDragZoom.js @@ -0,0 +1,79 @@ +/* + * L.Handler.ShiftDragZoom is used internally by L.Map to add shift-drag zoom (zoom to a selected bounding box). + */ + +L.Handler.ShiftDragZoom = L.Handler.extend({ + initialize: function(map) { + this._map = map; + this._container = map._container; + this._pane = map._panes.overlayPane; + }, + + enable: function() { + if (this._enabled) { return; } + + L.DomEvent.addListener(this._container, 'mousedown', this._onMouseDown, this); + + this._enabled = true; + }, + + disable: function() { + if (!this._enabled) { return; } + + L.DomEvent.removeListener(this._container, 'mousedown', this._onMouseDown); + + this._enabled = false; + }, + + _onMouseDown: function(e) { + if (!e.shiftKey || ((e.which != 1) && (e.button != 1))) { return false; } + + L.DomUtil.disableTextSelection(); + + this._startLayerPoint = this._map.mouseEventToLayerPoint(e); + + this._box = L.DomUtil.create('div', 'leaflet-zoom-box', this._pane); + L.DomUtil.setPosition(this._box, this._startLayerPoint); + + //TODO move cursor to styles + this._container.style.cursor = 'crosshair'; + + L.DomEvent.addListener(document, 'mousemove', this._onMouseMove, this); + L.DomEvent.addListener(document, 'mouseup', this._onMouseUp, this); + + L.DomEvent.preventDefault(e); + }, + + _onMouseMove: function(e) { + var layerPoint = this._map.mouseEventToLayerPoint(e), + dx = layerPoint.x - this._startLayerPoint.x, + dy = layerPoint.y - this._startLayerPoint.y; + + var newX = Math.min(layerPoint.x, this._startLayerPoint.x), + newY = Math.min(layerPoint.y, this._startLayerPoint.y), + newPos = new L.Point(newX, newY); + + L.DomUtil.setPosition(this._box, newPos); + + this._box.style.width = (Math.abs(dx) - 4) + 'px'; + this._box.style.height = (Math.abs(dy) - 4) + 'px'; + }, + + _onMouseUp: function(e) { + this._pane.removeChild(this._box); + this._container.style.cursor = ''; + + L.DomUtil.enableTextSelection(); + + L.DomEvent.removeListener(document, 'mousemove', this._onMouseMove); + L.DomEvent.removeListener(document, 'mouseup', this._onMouseUp); + + var layerPoint = this._map.mouseEventToLayerPoint(e); + + var bounds = new L.LatLngBounds( + this._map.layerPointToLatLng(this._startLayerPoint), + this._map.layerPointToLatLng(layerPoint)); + + this._map.fitBounds(bounds); + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/handler/TouchZoom.js b/extlib/leaflet/src/handler/TouchZoom.js new file mode 100644 index 00000000..cc2ec73f --- /dev/null +++ b/extlib/leaflet/src/handler/TouchZoom.js @@ -0,0 +1,87 @@ +/* + * L.Handler.TouchZoom is used internally by L.Map to add touch-zooming on Webkit-powered mobile browsers. + */ + +L.Handler.TouchZoom = L.Handler.extend({ + enable: function() { + if (!L.Browser.mobileWebkit || this._enabled) { return; } + L.DomEvent.addListener(this._map._container, 'touchstart', this._onTouchStart, this); + this._enabled = true; + }, + + disable: function() { + if (!this._enabled) { return; } + L.DomEvent.removeListener(this._map._container, 'touchstart', this._onTouchStart, this); + this._enabled = false; + }, + + _onTouchStart: function(e) { + if (!e.touches || e.touches.length != 2 || this._map._animatingZoom) { return; } + + var p1 = this._map.mouseEventToLayerPoint(e.touches[0]), + p2 = this._map.mouseEventToLayerPoint(e.touches[1]), + viewCenter = this._map.containerPointToLayerPoint(this._map.getSize().divideBy(2)); + + this._startCenter = p1.add(p2).divideBy(2, true); + this._startDist = p1.distanceTo(p2); + //this._startTransform = this._map._mapPane.style.webkitTransform; + + this._moved = false; + this._zooming = true; + + this._centerOffset = viewCenter.subtract(this._startCenter); + + L.DomEvent.addListener(document, 'touchmove', this._onTouchMove, this); + L.DomEvent.addListener(document, 'touchend', this._onTouchEnd, this); + + L.DomEvent.preventDefault(e); + }, + + _onTouchMove: function(e) { + if (!e.touches || e.touches.length != 2) { return; } + + if (!this._moved) { + this._map._mapPane.className += ' leaflet-zoom-anim'; + this._map._prepareTileBg(); + this._moved = true; + } + + var p1 = this._map.mouseEventToLayerPoint(e.touches[0]), + p2 = this._map.mouseEventToLayerPoint(e.touches[1]); + + this._scale = p1.distanceTo(p2) / this._startDist; + this._delta = p1.add(p2).divideBy(2, true).subtract(this._startCenter); + + /* + * Used 2 translates instead of transform-origin because of a very strange bug - + * it didn't count the origin on the first touch-zoom but worked correctly afterwards + */ + this._map._tileBg.style.webkitTransform = [ + L.DomUtil.getTranslateString(this._delta), + L.DomUtil.getScaleString(this._scale, this._startCenter) + ].join(" "); + + L.DomEvent.preventDefault(e); + }, + + _onTouchEnd: function(e) { + if (!this._moved || !this._zooming) { return; } + this._zooming = false; + + var oldZoom = this._map.getZoom(), + floatZoomDelta = Math.log(this._scale)/Math.LN2, + roundZoomDelta = (floatZoomDelta > 0 ? Math.ceil(floatZoomDelta) : Math.floor(floatZoomDelta)), + zoom = this._map._limitZoom(oldZoom + roundZoomDelta), + zoomDelta = zoom - oldZoom, + centerOffset = this._centerOffset.subtract(this._delta).divideBy(this._scale), + centerPoint = this._map.getPixelOrigin().add(this._startCenter).add(centerOffset), + center = this._map.unproject(centerPoint); + + L.DomEvent.removeListener(document, 'touchmove', this._onTouchMove); + L.DomEvent.removeListener(document, 'touchend', this._onTouchEnd); + + var finalScale = Math.pow(2, zoomDelta); + + this._map._runAnimation(center, zoom, finalScale / this._scale, this._startCenter.add(centerOffset)); + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/layer/FeatureGroup.js b/extlib/leaflet/src/layer/FeatureGroup.js new file mode 100644 index 00000000..6e45d84c --- /dev/null +++ b/extlib/leaflet/src/layer/FeatureGroup.js @@ -0,0 +1,40 @@ +/* + * L.FeatureGroup extends L.LayerGroup by introducing mouse events and bindPopup method shared between a group of layers. + */ + +L.FeatureGroup = L.LayerGroup.extend({ + includes: L.Mixin.Events, + + addLayer: function(layer) { + this._initEvents(layer); + L.LayerGroup.prototype.addLayer.call(this, layer); + + if (this._popupContent && layer.bindPopup) { + layer.bindPopup(this._popupContent); + } + }, + + bindPopup: function(content) { + this._popupContent = content; + + for (var i in this._layers) { + if (this._layers.hasOwnProperty(i) && this._layers[i].bindPopup) { + this._layers[i].bindPopup(content); + } + } + }, + + _events: ['click', 'dblclick', 'mouseover', 'mouseout'], + + _initEvents: function(layer) { + for (var i = 0, len = this._events.length; i < len; i++) { + layer.on(this._events[i], this._propagateEvent, this); + } + }, + + _propagateEvent: function(e) { + e.layer = e.target; + e.target = this; + this.fire(e.type, e); + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/layer/GeoJSON.js b/extlib/leaflet/src/layer/GeoJSON.js new file mode 100644 index 00000000..6cbd4193 --- /dev/null +++ b/extlib/leaflet/src/layer/GeoJSON.js @@ -0,0 +1,106 @@ + +L.GeoJSON = L.LayerGroup.extend({ + includes: L.Mixin.Events, + + initialize: function(geojson, options) { + L.Util.setOptions(this, options); + this._geojson = geojson; + this._layers = {}; + + if (geojson) { + this.addGeoJSON(geojson); + } + }, + + addGeoJSON: function(geojson) { + if (geojson.features) { + for (var i = 0, len = geojson.features.length; i < len; i++) { + this.addGeoJSON(geojson.features[i]); + } + return; + } + + var isFeature = (geojson.type == 'Feature'), + geometry = (isFeature ? geojson.geometry : geojson), + layer = L.GeoJSON.geometryToLayer(geometry, this.options.pointToLayer); + + this.fire('featureparse', { + layer: layer, + properties: geojson.properties, + geometryType: geometry.type, + bbox: geojson.bbox, + id: geojson.id + }); + + this.addLayer(layer); + } +}); + +L.Util.extend(L.GeoJSON, { + geometryToLayer: function(geometry, pointToLayer) { + var coords = geometry.coordinates, + latlng, latlngs, + i, len, + layer, + layers = []; + + switch (geometry.type) { + case 'Point': + latlng = this.coordsToLatLng(coords); + return pointToLayer ? pointToLayer(latlng) : new L.Marker(latlng); + + case 'MultiPoint': + for (i = 0, len = coords.length; i < len; i++) { + latlng = this.coordsToLatLng(coords[i]); + layer = pointToLayer ? pointToLayer(latlng) : new L.Marker(latlng); + layers.push(layer); + } + return new L.FeatureGroup(layers); + + case 'LineString': + latlngs = this.coordsToLatLngs(coords); + return new L.Polyline(latlngs); + + case 'Polygon': + latlngs = this.coordsToLatLngs(coords, 1); + return new L.Polygon(latlngs); + + case 'MultiLineString': + latlngs = this.coordsToLatLngs(coords, 1); + return new L.MultiPolyline(latlngs); + + case "MultiPolygon": + latlngs = this.coordsToLatLngs(coords, 2); + return new L.MultiPolygon(latlngs); + + case "GeometryCollection": + for (i = 0, len = geometry.geometries.length; i < len; i++) { + layer = this.geometryToLayer(geometry.geometries[i]); + layers.push(layer); + } + return new L.FeatureGroup(layers); + + default: + throw new Error('Invalid GeoJSON object.'); + } + }, + + coordsToLatLng: function(/*Array*/ coords, /*Boolean*/ reverse)/*: LatLng*/ { + var lat = parseFloat(coords[reverse ? 0 : 1]), + lng = parseFloat(coords[reverse ? 1 : 0]); + return new L.LatLng(lat, lng); + }, + + coordsToLatLngs: function(/*Array*/ coords, /*Number*/ levelsDeep, /*Boolean*/ reverse)/*: Array*/ { + var latlng, latlngs = [], + i, len = coords.length; + + for (i = 0; i < len; i++) { + latlng = levelsDeep ? + this.coordsToLatLngs(coords[i], levelsDeep - 1, reverse) : + this.coordsToLatLng(coords[i], reverse); + latlngs.push(latlng); + } + return latlngs; + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/layer/ImageOverlay.js b/extlib/leaflet/src/layer/ImageOverlay.js new file mode 100644 index 00000000..4551b2e3 --- /dev/null +++ b/extlib/leaflet/src/layer/ImageOverlay.js @@ -0,0 +1,58 @@ +L.ImageOverlay = L.Class.extend({ + includes: L.Mixin.Events, + + initialize: function(/*String*/ url, /*LatLngBounds*/ bounds) { + this._url = url; + this._bounds = bounds; + }, + + onAdd: function(map) { + this._map = map; + + if (!this._image) { + this._initImage(); + } + + map.getPanes().overlayPane.appendChild(this._image); + + map.on('viewreset', this._reset, this); + this._reset(); + }, + + onRemove: function(map) { + map.getPanes().overlayPane.removeChild(this._image); + map.off('viewreset', this._reset, this); + }, + + _initImage: function() { + this._image = L.DomUtil.create('img', 'leaflet-image-layer'); + + this._image.style.visibility = 'hidden'; + //TODO opacity option + + //TODO createImage util method to remove duplication + L.Util.extend(this._image, { + galleryimg: 'no', + onselectstart: L.Util.falseFn, + onmousemove: L.Util.falseFn, + onload: this._onImageLoad, + src: this._url + }); + }, + + _reset: function() { + var topLeft = this._map.latLngToLayerPoint(this._bounds.getNorthWest()), + bottomRight = this._map.latLngToLayerPoint(this._bounds.getSouthEast()), + size = bottomRight.subtract(topLeft); + + L.DomUtil.setPosition(this._image, topLeft); + + this._image.style.width = size.x + 'px'; + this._image.style.height = size.y + 'px'; + }, + + _onImageLoad: function() { + this.style.visibility = ''; + //TODO fire layerload + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/layer/LayerGroup.js b/extlib/leaflet/src/layer/LayerGroup.js new file mode 100644 index 00000000..58940d40 --- /dev/null +++ b/extlib/leaflet/src/layer/LayerGroup.js @@ -0,0 +1,58 @@ +/* + * L.LayerGroup is a class to combine several layers so you can manipulate the group (e.g. add/remove it) as one layer. + */ + +L.LayerGroup = L.Class.extend({ + initialize: function(layers) { + this._layers = {}; + + if (layers) { + for (var i = 0, len = layers.length; i < len; i++) { + this.addLayer(layers[i]); + } + } + }, + + addLayer: function(layer) { + var id = L.Util.stamp(layer); + this._layers[id] = layer; + + if (this._map) { + this._map.addLayer(layer); + } + return this; + }, + + removeLayer: function(layer) { + var id = L.Util.stamp(layer); + delete this._layers[id]; + + if (this._map) { + this._map.removeLayer(layer); + } + return this; + }, + + clearLayers: function() { + this._iterateLayers(this.removeLayer, this); + return this; + }, + + onAdd: function(map) { + this._map = map; + this._iterateLayers(map.addLayer, map); + }, + + onRemove: function(map) { + this._iterateLayers(map.removeLayer, map); + delete this._map; + }, + + _iterateLayers: function(method, context) { + for (var i in this._layers) { + if (this._layers.hasOwnProperty(i)) { + method.call(context, this._layers[i]); + } + } + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/layer/Popup.js b/extlib/leaflet/src/layer/Popup.js new file mode 100644 index 00000000..4cb14e3c --- /dev/null +++ b/extlib/leaflet/src/layer/Popup.js @@ -0,0 +1,165 @@ + +L.Popup = L.Class.extend({ + includes: L.Mixin.Events, + + options: { + maxWidth: 300, + autoPan: true, + closeButton: true, + + offset: new L.Point(0, 2), + autoPanPadding: new L.Point(5, 5) + }, + + initialize: function(options) { + L.Util.setOptions(this, options); + }, + + onAdd: function(map) { + this._map = map; + if (!this._container) { + this._initLayout(); + } + this._updateContent(); + + this._container.style.opacity = '0'; + + this._map._panes.popupPane.appendChild(this._container); + this._map.on('viewreset', this._updatePosition, this); + if (this._map.options.closePopupOnClick) { + this._map.on('preclick', this._close, this); + } + this._update(); + + this._container.style.opacity = '1'; //TODO fix ugly opacity hack + + this._opened = true; + }, + + onRemove: function(map) { + map._panes.popupPane.removeChild(this._container); + map.off('viewreset', this._updatePosition, this); + map.off('click', this._close, this); + + this._container.style.opacity = '0'; + + this._opened = false; + }, + + setLatLng: function(latlng) { + this._latlng = latlng; + if (this._opened) { + this._update(); + } + return this; + }, + + setContent: function(content) { + this._content = content; + if (this._opened) { + this._update(); + } + return this; + }, + + _close: function() { + if (this._opened) { + this._map.removeLayer(this); + } + }, + + _initLayout: function() { + this._container = L.DomUtil.create('div', 'leaflet-popup'); + + this._closeButton = L.DomUtil.create('a', 'leaflet-popup-close-button', this._container); + this._closeButton.href = '#close'; + this._closeButton.onclick = L.Util.bind(this._onCloseButtonClick, this); + + this._wrapper = L.DomUtil.create('div', 'leaflet-popup-content-wrapper', this._container); + L.DomEvent.disableClickPropagation(this._wrapper); + this._contentNode = L.DomUtil.create('div', 'leaflet-popup-content', this._wrapper); + + this._tipContainer = L.DomUtil.create('div', 'leaflet-popup-tip-container', this._container); + this._tip = L.DomUtil.create('div', 'leaflet-popup-tip', this._tipContainer); + }, + + _update: function() { + this._container.style.visibility = 'hidden'; + + this._updateContent(); + this._updateLayout(); + this._updatePosition(); + + this._container.style.visibility = ''; + + this._adjustPan(); + }, + + _updateContent: function() { + if (!this._content) return; + + if (typeof this._content == 'string') { + this._contentNode.innerHTML = this._content; + } else { + this._contentNode.innerHTML = ''; + this._contentNode.appendChild(this._content); + } + }, + + _updateLayout: function() { + this._container.style.width = ''; + this._container.style.whiteSpace = 'nowrap'; + + var width = this._container.offsetWidth; + + this._container.style.width = (width > this.options.maxWidth ? this.options.maxWidth : width) + 'px'; + this._container.style.whiteSpace = ''; + + this._containerWidth = this._container.offsetWidth; + }, + + _updatePosition: function() { + var pos = this._map.latLngToLayerPoint(this._latlng); + + this._containerBottom = -pos.y - this.options.offset.y; + this._containerLeft = pos.x - Math.round(this._containerWidth/2) + this.options.offset.x; + + this._container.style.bottom = this._containerBottom + 'px'; + this._container.style.left = this._containerLeft + 'px'; + }, + + _adjustPan: function() { + if (!this.options.autoPan) { return; } + + var containerHeight = this._container.offsetHeight, + layerPos = new L.Point( + this._containerLeft, + -containerHeight - this._containerBottom), + containerPos = this._map.layerPointToContainerPoint(layerPos), + adjustOffset = new L.Point(0, 0), + padding = this.options.autoPanPadding, + size = this._map.getSize(); + + if (containerPos.x < 0) { + adjustOffset.x = containerPos.x - padding.x; + } + if (containerPos.x + this._containerWidth > size.x) { + adjustOffset.x = containerPos.x + this._containerWidth - size.x + padding.x; + } + if (containerPos.y < 0) { + adjustOffset.y = containerPos.y - padding.y; + } + if (containerPos.y + containerHeight > size.y) { + adjustOffset.y = containerPos.y + containerHeight - size.y + padding.y; + } + + if (adjustOffset.x || adjustOffset.y) { + this._map.panBy(adjustOffset); + } + }, + + _onCloseButtonClick: function(e) { + this._close(); + L.DomEvent.stop(e); + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/layer/marker/Icon.js b/extlib/leaflet/src/layer/marker/Icon.js new file mode 100644 index 00000000..6df036e4 --- /dev/null +++ b/extlib/leaflet/src/layer/marker/Icon.js @@ -0,0 +1,56 @@ +L.Icon = L.Class.extend({ + iconUrl: L.ROOT_URL + 'images/marker.png', + shadowUrl: L.ROOT_URL + 'images/marker-shadow.png', + + iconSize: new L.Point(25, 41), + shadowSize: new L.Point(41, 41), + + iconAnchor: new L.Point(13, 41), + popupAnchor: new L.Point(0, -33), + + initialize: function(iconUrl) { + if (iconUrl) { + this.iconUrl = iconUrl; + } + }, + + createIcon: function() { + return this._createIcon('icon'); + }, + + createShadow: function() { + return this._createIcon('shadow'); + }, + + _createIcon: function(name) { + var size = this[name + 'Size'], + src = this[name + 'Url'], + img = this._createImg(src); + + if (!src) { return null; } + + img.className = 'leaflet-marker-' + name; + + img.style.marginLeft = (-this.iconAnchor.x) + 'px'; + img.style.marginTop = (-this.iconAnchor.y) + 'px'; + + if (size) { + img.style.width = size.x + 'px'; + img.style.height = size.y + 'px'; + } + + return img; + }, + + _createImg: function(src) { + var el; + if (!L.Browser.ie6) { + el = document.createElement('img'); + el.src = src; + } else { + el = document.createElement('div'); + el.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + src + '")'; + } + return el; + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/layer/marker/Marker.Popup.js b/extlib/leaflet/src/layer/marker/Marker.Popup.js new file mode 100644 index 00000000..4c5cad04 --- /dev/null +++ b/extlib/leaflet/src/layer/marker/Marker.Popup.js @@ -0,0 +1,28 @@ +/* + * Popup extension to L.Marker, adding openPopup & bindPopup methods. + */ + +L.Marker.include({ + openPopup: function() { + this._popup.setLatLng(this._latlng); + this._map.openPopup(this._popup); + + return this; + }, + + closePopup: function() { + if (this._popup) { + this._popup._close(); + } + }, + + bindPopup: function(content, options) { + options = L.Util.extend({offset: this.options.icon.popupAnchor}, options); + + this._popup = new L.Popup(options); + this._popup.setContent(content); + this.on('click', this.openPopup, this); + + return this; + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/layer/marker/Marker.js b/extlib/leaflet/src/layer/marker/Marker.js new file mode 100644 index 00000000..b98bec4e --- /dev/null +++ b/extlib/leaflet/src/layer/marker/Marker.js @@ -0,0 +1,123 @@ +/* + * L.Marker is used to display clickable/draggable icons on the map. + */ + +L.Marker = L.Class.extend({ + + includes: L.Mixin.Events, + + options: { + icon: new L.Icon(), + title: '', + clickable: true, + draggable: false + }, + + initialize: function(latlng, options) { + L.Util.setOptions(this, options); + this._latlng = latlng; + }, + + onAdd: function(map) { + this._map = map; + + this._initIcon(); + + map.on('viewreset', this._reset, this); + this._reset(); + }, + + onRemove: function(map) { + this._removeIcon(); + + map.off('viewreset', this._reset, this); + }, + + getLatLng: function() { + return this._latlng; + }, + + setLatLng: function(latlng) { + this._latlng = latlng; + this._reset(); + }, + + setIcon: function(icon) { + this._removeIcon(); + + this._icon = this._shadow = null; + this.options.icon = icon; + + this._initIcon(); + }, + + _initIcon: function() { + if (!this._icon) { + this._icon = this.options.icon.createIcon(); + + if (this.options.title) { + this._icon.title = this.options.title; + } + + this._initInteraction(); + } + if (!this._shadow) { + this._shadow = this.options.icon.createShadow(); + } + + this._map._panes.markerPane.appendChild(this._icon); + if (this._shadow) { + this._map._panes.shadowPane.appendChild(this._shadow); + } + }, + + _removeIcon: function() { + this._map._panes.markerPane.removeChild(this._icon); + if (this._shadow) { + this._map._panes.shadowPane.removeChild(this._shadow); + } + }, + + _reset: function() { + var pos = this._map.latLngToLayerPoint(this._latlng).round(); + + L.DomUtil.setPosition(this._icon, pos); + if (this._shadow) { + L.DomUtil.setPosition(this._shadow, pos); + } + + this._icon.style.zIndex = pos.y; + }, + + _initInteraction: function() { + if (this.options.clickable) { + this._icon.className += ' leaflet-clickable'; + + L.DomEvent.addListener(this._icon, 'click', this._onMouseClick, this); + + var events = ['dblclick', 'mousedown', 'mouseover', 'mouseout']; + for (var i = 0; i < events.length; i++) { + L.DomEvent.addListener(this._icon, events[i], this._fireMouseEvent, this); + } + } + + if (L.Handler.MarkerDrag) { + this.dragging = new L.Handler.MarkerDrag(this); + + if (this.options.draggable) { + this.dragging.enable(); + } + } + }, + + _onMouseClick: function(e) { + L.DomEvent.stopPropagation(e); + if (this.dragging && this.dragging.moved()) { return; } + this.fire(e.type); + }, + + _fireMouseEvent: function(e) { + this.fire(e.type); + L.DomEvent.stopPropagation(e); + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/layer/tile/TileLayer.Canvas.js b/extlib/leaflet/src/layer/tile/TileLayer.Canvas.js new file mode 100644 index 00000000..08bbaae2 --- /dev/null +++ b/extlib/leaflet/src/layer/tile/TileLayer.Canvas.js @@ -0,0 +1,41 @@ +L.TileLayer.Canvas = L.TileLayer.extend({ + options: { + async: false + }, + + initialize: function(options) { + L.Util.setOptions(this, options); + }, + + _createTileProto: function() { + this._canvasProto = L.DomUtil.create('canvas', 'leaflet-tile'); + + var tileSize = this.options.tileSize; + this._canvasProto.width = tileSize; + this._canvasProto.height = tileSize; + }, + + _createTile: function() { + var tile = this._canvasProto.cloneNode(false); + tile.onselectstart = tile.onmousemove = L.Util.falseFn; + return tile; + }, + + _loadTile: function(tile, tilePoint, zoom) { + tile._layer = this; + + this.drawTile(tile, tilePoint, zoom); + + if (!this.options.async) { + this.tileDrawn(tile); + } + }, + + drawTile: function(tile, tilePoint, zoom) { + // override with rendering code + }, + + tileDrawn: function(tile) { + this._tileOnLoad.call(tile); + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/layer/tile/TileLayer.WMS.js b/extlib/leaflet/src/layer/tile/TileLayer.WMS.js new file mode 100644 index 00000000..2f4ad05a --- /dev/null +++ b/extlib/leaflet/src/layer/tile/TileLayer.WMS.js @@ -0,0 +1,47 @@ +L.TileLayer.WMS = L.TileLayer.extend({ + defaultWmsParams: { + service: 'WMS', + request: 'GetMap', + version: '1.1.1', + layers: '', + styles: '', + format: 'image/jpeg', + transparent: false + }, + + initialize: function(/*String*/ url, /*Object*/ options) { + this._url = url; + + this.wmsParams = L.Util.extend({}, this.defaultWmsParams); + this.wmsParams.width = this.wmsParams.height = this.options.tileSize; + + for (var i in options) { + // all keys that are not TileLayer options go to WMS params + if (!this.options.hasOwnProperty(i)) { + this.wmsParams[i] = options[i]; + } + } + + L.Util.setOptions(this, options); + }, + + onAdd: function(map) { + var projectionKey = (parseFloat(this.wmsParams.version) >= 1.3 ? 'crs' : 'srs'); + this.wmsParams[projectionKey] = map.options.crs.code; + + L.TileLayer.prototype.onAdd.call(this, map); + }, + + getTileUrl: function(/*Point*/ tilePoint, /*Number*/ zoom)/*-> String*/ { + var tileSize = this.options.tileSize, + nwPoint = tilePoint.multiplyBy(tileSize), + sePoint = nwPoint.add(new L.Point(tileSize, tileSize)), + nwMap = this._map.unproject(nwPoint, this._zoom, true), + seMap = this._map.unproject(sePoint, this._zoom, true), + nw = this._map.options.crs.project(nwMap), + se = this._map.options.crs.project(seMap), + bbox = [nw.x, se.y, se.x, nw.y].join(','); + + return this._url + L.Util.getParamString(this.wmsParams) + "&bbox=" + bbox; + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/layer/tile/TileLayer.js b/extlib/leaflet/src/layer/tile/TileLayer.js new file mode 100644 index 00000000..68072ee9 --- /dev/null +++ b/extlib/leaflet/src/layer/tile/TileLayer.js @@ -0,0 +1,262 @@ +/* + * L.TileLayer is used for standard xyz-numbered tile layers. + */ + +L.TileLayer = L.Class.extend({ + includes: L.Mixin.Events, + + options: { + minZoom: 0, + maxZoom: 18, + tileSize: 256, + subdomains: 'abc', + errorTileUrl: '', + attribution: '', + opacity: 1, + scheme: 'xyz', + noWrap: false, + + unloadInvisibleTiles: L.Browser.mobileWebkit, + updateWhenIdle: L.Browser.mobileWebkit + }, + + initialize: function(url, options) { + L.Util.setOptions(this, options); + + this._url = url; + + if (typeof this.options.subdomains == 'string') { + this.options.subdomains = this.options.subdomains.split(''); + } + }, + + onAdd: function(map) { + this._map = map; + + // create a container div for tiles + this._initContainer(); + + // create an image to clone for tiles + this._createTileProto(); + + // set up events + map.on('viewreset', this._reset, this); + + if (this.options.updateWhenIdle) { + map.on('moveend', this._update, this); + } else { + this._limitedUpdate = L.Util.limitExecByInterval(this._update, 100, this); + map.on('move', this._limitedUpdate, this); + } + + this._reset(); + this._update(); + }, + + onRemove: function(map) { + this._map.getPanes().tilePane.removeChild(this._container); + this._container = null; + + this._map.off('viewreset', this._reset, this); + + if (this.options.updateWhenIdle) { + this._map.off('moveend', this._update, this); + } else { + this._map.off('move', this._limitedUpdate, this); + } + }, + + getAttribution: function() { + return this.options.attribution; + }, + + setOpacity: function(opacity) { + this.options.opacity = opacity; + + this._setOpacity(opacity); + + // stupid webkit hack to force redrawing of tiles + if (L.Browser.webkit) { + for (i in this._tiles) { + this._tiles[i].style.webkitTransform += ' translate(0,0)'; + } + } + }, + + _setOpacity: function(opacity) { + if (opacity < 1) { + L.DomUtil.setOpacity(this._container, opacity); + } + }, + + _initContainer: function() { + var tilePane = this._map.getPanes().tilePane; + + if (!this._container || tilePane.empty) { + this._container = L.DomUtil.create('div', 'leaflet-layer', tilePane); + + this._setOpacity(this.options.opacity); + } + }, + + _reset: function() { + this._tiles = {}; + this._initContainer(); + this._container.innerHTML = ''; + }, + + _update: function() { + var bounds = this._map.getPixelBounds(), + tileSize = this.options.tileSize; + + var nwTilePoint = new L.Point( + Math.floor(bounds.min.x / tileSize), + Math.floor(bounds.min.y / tileSize)), + seTilePoint = new L.Point( + Math.floor(bounds.max.x / tileSize), + Math.floor(bounds.max.y / tileSize)), + tileBounds = new L.Bounds(nwTilePoint, seTilePoint); + + this._addTilesFromCenterOut(tileBounds); + + if (this.options.unloadInvisibleTiles) { + this._removeOtherTiles(tileBounds); + } + }, + + _addTilesFromCenterOut: function(bounds) { + var queue = [], + center = bounds.getCenter(); + + for (var j = bounds.min.y; j <= bounds.max.y; j++) { + for (var i = bounds.min.x; i <= bounds.max.x; i++) { + if ((i + ':' + j) in this._tiles) { continue; } + queue.push(new L.Point(i, j)); + } + } + + // load tiles in order of their distance to center + queue.sort(function(a, b) { + return a.distanceTo(center) - b.distanceTo(center); + }); + + this._tilesToLoad = queue.length; + for (var k = 0, len = this._tilesToLoad; k < len; k++) { + this._addTile(queue[k]); + } + }, + + _removeOtherTiles: function(bounds) { + var kArr, x, y, key; + + for (key in this._tiles) { + if (this._tiles.hasOwnProperty(key)) { + kArr = key.split(':'); + x = parseInt(kArr[0], 10); + y = parseInt(kArr[1], 10); + + // remove tile if it's out of bounds + if (x < bounds.min.x || x > bounds.max.x || y < bounds.min.y || y > bounds.max.y) { + this._tiles[key].src = ''; + if (this._tiles[key].parentNode == this._container) { + this._container.removeChild(this._tiles[key]); + } + delete this._tiles[key]; + } + } + } + }, + + _addTile: function(tilePoint) { + var tilePos = this._getTilePos(tilePoint), + zoom = this._map.getZoom(), + key = tilePoint.x + ':' + tilePoint.y; + + // wrap tile coordinates + var tileLimit = (1 << zoom); + if (!this.options.noWrap) { + tilePoint.x = ((tilePoint.x % tileLimit) + tileLimit) % tileLimit; + } + if (tilePoint.y < 0 || tilePoint.y >= tileLimit) { return; } + + // create tile + var tile = this._createTile(); + L.DomUtil.setPosition(tile, tilePos); + + this._tiles[key] = tile; + + if (this.options.scheme == 'tms') { + tilePoint.y = tileLimit - tilePoint.y - 1; + } + + this._loadTile(tile, tilePoint, zoom); + + this._container.appendChild(tile); + }, + + _getTilePos: function(tilePoint) { + var origin = this._map.getPixelOrigin(), + tileSize = this.options.tileSize; + + return tilePoint.multiplyBy(tileSize).subtract(origin); + }, + + // image-specific code (override to implement e.g. Canvas or SVG tile layer) + + getTileUrl: function(tilePoint, zoom) { + var subdomains = this.options.subdomains, + s = this.options.subdomains[(tilePoint.x + tilePoint.y) % subdomains.length]; + + return this._url + .replace('{s}', s) + .replace('{z}', zoom) + .replace('{x}', tilePoint.x) + .replace('{y}', tilePoint.y); + }, + + _createTileProto: function() { + this._tileImg = L.DomUtil.create('img', 'leaflet-tile'); + this._tileImg.galleryimg = 'no'; + + var tileSize = this.options.tileSize; + this._tileImg.style.width = tileSize + 'px'; + this._tileImg.style.height = tileSize + 'px'; + }, + + _createTile: function() { + var tile = this._tileImg.cloneNode(false); + tile.onselectstart = tile.onmousemove = L.Util.falseFn; + return tile; + }, + + _loadTile: function(tile, tilePoint, zoom) { + tile._layer = this; + tile.onload = this._tileOnLoad; + tile.onerror = this._tileOnError; + tile.src = this.getTileUrl(tilePoint, zoom); + }, + + _tileOnLoad: function(e) { + var layer = this._layer; + + this.className += ' leaflet-tile-loaded'; + + layer.fire('tileload', {tile: this, url: this.src}); + + layer._tilesToLoad--; + if (!layer._tilesToLoad) { + layer.fire('load'); + } + }, + + _tileOnError: function(e) { + var layer = this._layer; + + layer.fire('tileerror', {tile: this, url: this.src}); + + var newUrl = layer.options.errorTileUrl; + if (newUrl) { + this.src = newUrl; + } + } +}); diff --git a/extlib/leaflet/src/layer/vector/Circle.js b/extlib/leaflet/src/layer/vector/Circle.js new file mode 100644 index 00000000..c737c191 --- /dev/null +++ b/extlib/leaflet/src/layer/vector/Circle.js @@ -0,0 +1,51 @@ +/* + * L.Circle is a circle overlay (with a certain radius in meters). + */ + +L.Circle = L.Path.extend({ + initialize: function(latlng, radius, options) { + L.Path.prototype.initialize.call(this, options); + + this._latlng = latlng; + this._mRadius = radius; + }, + + options: { + fill: true + }, + + setLatLng: function(latlng) { + this._latlng = latlng; + this._redraw(); + return this; + }, + + setRadius: function(radius) { + this._mRadius = radius; + this._redraw(); + return this; + }, + + projectLatlngs: function() { + var equatorLength = 40075017, + scale = this._map.options.scale(this._map._zoom); + + this._point = this._map.latLngToLayerPoint(this._latlng); + this._radius = (this._mRadius / equatorLength) * scale; + }, + + getPathString: function() { + var p = this._point, + r = this._radius; + + if (L.Path.SVG) { + return "M" + p.x + "," + (p.y - r) + + "A" + r + "," + r + ",0,1,1," + + (p.x - 0.1) + "," + (p.y - r) + " z"; + } else { + p._round(); + r = Math.round(r); + return "AL " + p.x + "," + p.y + " " + r + "," + r + " 0," + (65535 * 360); + } + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/layer/vector/CircleMarker.js b/extlib/leaflet/src/layer/vector/CircleMarker.js new file mode 100644 index 00000000..fa4bacf0 --- /dev/null +++ b/extlib/leaflet/src/layer/vector/CircleMarker.js @@ -0,0 +1,25 @@ +/* + * L.CircleMarker is a circle overlay with a permanent pixel radius. + */ + +L.CircleMarker = L.Circle.extend({ + options: { + radius: 10, + weight: 2 + }, + + initialize: function(latlng, options) { + L.Circle.prototype.initialize.call(this, latlng, null, options); + this._radius = this.options.radius; + }, + + projectLatlngs: function() { + this._point = this._map.latLngToLayerPoint(this._latlng); + }, + + setRadius: function(radius) { + this._radius = radius; + this._redraw(); + return this; + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/layer/vector/MultiPoly.js b/extlib/leaflet/src/layer/vector/MultiPoly.js new file mode 100644 index 00000000..60d6de68 --- /dev/null +++ b/extlib/leaflet/src/layer/vector/MultiPoly.js @@ -0,0 +1,27 @@ +/* + * Contains L.MultiPolyline and L.MultiPolygon layers. + */ + +(function() { + function createMulti(klass) { + return L.FeatureGroup.extend({ + initialize: function(latlngs, options) { + this._layers = {}; + for (var i = 0, len = latlngs.length; i < len; i++) { + this.addLayer(new klass(latlngs[i], options)); + } + }, + + setStyle: function(style) { + for (var i in this._layers) { + if (this._layers.hasOwnProperty(i) && this._layers[i].setStyle) { + this._layers[i].setStyle(style); + } + } + } + }); + } + + L.MultiPolyline = createMulti(L.Polyline); + L.MultiPolygon = createMulti(L.Polygon); +}()); diff --git a/extlib/leaflet/src/layer/vector/Path.Popup.js b/extlib/leaflet/src/layer/vector/Path.Popup.js new file mode 100644 index 00000000..b82a4920 --- /dev/null +++ b/extlib/leaflet/src/layer/vector/Path.Popup.js @@ -0,0 +1,24 @@ +/* + * Popup extension to L.Path (polylines, polygons, circles), adding bindPopup method. + */ + +L.Path.include({ + bindPopup: function(content, options) { + if (!this._popup || this._popup.options !== options) { + this._popup = new L.Popup(options); + } + this._popup.setContent(content); + + if (!this._openPopupAdded) { + this.on('click', this._openPopup, this); + this._openPopupAdded = true; + } + + return this; + }, + + _openPopup: function(e) { + this._popup.setLatLng(e.latlng); + this._map.openPopup(this._popup); + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/layer/vector/Path.VML.js b/extlib/leaflet/src/layer/vector/Path.VML.js new file mode 100644 index 00000000..8481d994 --- /dev/null +++ b/extlib/leaflet/src/layer/vector/Path.VML.js @@ -0,0 +1,91 @@ +/* + * Vector rendering for IE6-8 through VML. + * Thanks to Dmitry Baranovsky and his Raphael library for inspiration! + */ + +L.Path.VML = (function() { + var d = document.createElement('div'), s; + d.innerHTML = ''; + s = d.firstChild; + s.style.behavior = 'url(#default#VML)'; + + return (s && (typeof s.adj == 'object')); +})(); + +L.Path = L.Path.SVG || !L.Path.VML ? L.Path : L.Path.extend({ + statics: { + CLIP_PADDING: 0.02 + }, + + _createElement: (function() { + try { + document.namespaces.add('lvml', 'urn:schemas-microsoft-com:vml'); + return function(name) { + return document.createElement(''); + }; + } catch (e) { + return function(name) { + return document.createElement('<' + name + ' xmlns="urn:schemas-microsoft.com:vml" class="lvml">'); + }; + } + })(), + + _initRoot: function() { + if (!this._map._pathRoot) { + this._map._pathRoot = document.createElement('div'); + this._map._pathRoot.className = 'leaflet-vml-container'; + this._map._panes.overlayPane.appendChild(this._map._pathRoot); + + this._map.on('moveend', this._updateViewport, this); + this._updateViewport(); + } + }, + + _initPath: function() { + this._container = this._createElement('shape'); + this._container.className += ' leaflet-vml-shape' + + (this.options.clickable ? ' leaflet-clickable' : ''); + this._container.coordsize = '1 1'; + + this._path = this._createElement('path'); + this._container.appendChild(this._path); + + this._map._pathRoot.appendChild(this._container); + }, + + _initStyle: function() { + if (this.options.stroke) { + this._stroke = this._createElement('stroke'); + this._stroke.endcap = 'round'; + this._container.appendChild(this._stroke); + } else { + this._container.stroked = false; + } + if (this.options.fill) { + this._container.filled = true; + this._fill = this._createElement('fill'); + this._container.appendChild(this._fill); + } else { + this._container.filled = false; + } + this._updateStyle(); + }, + + _updateStyle: function() { + if (this.options.stroke) { + this._stroke.weight = this.options.weight + 'px'; + this._stroke.color = this.options.color; + this._stroke.opacity = this.options.opacity; + } + if (this.options.fill) { + this._fill.color = this.options.fillColor || this.options.color; + this._fill.opacity = this.options.fillOpacity; + } + }, + + _updatePath: function() { + this._container.style.display = 'none'; + this._path.v = this.getPathString() + ' '; // the space fixes IE empty path string bug + this._container.style.display = ''; + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/layer/vector/Path.js b/extlib/leaflet/src/layer/vector/Path.js new file mode 100644 index 00000000..3d4837cc --- /dev/null +++ b/extlib/leaflet/src/layer/vector/Path.js @@ -0,0 +1,207 @@ +/* + * L.Path is a base class for rendering vector paths on a map. It's inherited by Polyline, Circle, etc. + */ + +L.Path = L.Class.extend({ + includes: [L.Mixin.Events], + + statics: (function() { + var svgns = 'http://www.w3.org/2000/svg', + ce = 'createElementNS'; + + return { + SVG_NS: svgns, + SVG: !!(document[ce] && document[ce](svgns, 'svg').createSVGRect), + + // how much to extend the clip area around the map view + // (relative to its size, e.g. 0.5 is half the screen in each direction) + CLIP_PADDING: 0.5 + }; + })(), + + options: { + stroke: true, + color: '#0033ff', + weight: 5, + opacity: 0.5, + + fill: false, + fillColor: null, //same as color by default + fillOpacity: 0.2, + + clickable: true, + + updateOnMoveEnd: false + }, + + initialize: function(options) { + L.Util.setOptions(this, options); + }, + + onAdd: function(map) { + this._map = map; + + this._initElements(); + this._initEvents(); + this.projectLatlngs(); + this._updatePath(); + + map.on('viewreset', this.projectLatlngs, this); + + this._updateTrigger = this.options.updateOnMoveEnd ? 'moveend' : 'viewreset'; + map.on(this._updateTrigger, this._updatePath, this); + }, + + onRemove: function(map) { + map._pathRoot.removeChild(this._container); + map.off('viewreset', this._projectLatlngs, this); + map.off(this._updateTrigger, this._updatePath, this); + }, + + projectLatlngs: function() { + // do all projection stuff here + }, + + getPathString: function() { + // form path string here + }, + + setStyle: function(style) { + L.Util.setOptions(this, style); + if (this._path) { + this._updateStyle(); + } + }, + + _initElements: function() { + this._initRoot(); + this._initPath(); + this._initStyle(); + }, + + _initRoot: function() { + if (!this._map._pathRoot) { + this._map._pathRoot = this._createElement('svg'); + this._map._panes.overlayPane.appendChild(this._map._pathRoot); + + this._map.on('moveend', this._updateSvgViewport, this); + this._updateSvgViewport(); + } + }, + + _updateSvgViewport: function() { + this._updateViewport(); + + var vp = this._map._pathViewport, + min = vp.min, + max = vp.max, + width = max.x - min.x, + height = max.y - min.y, + root = this._map._pathRoot, + pane = this._map._panes.overlayPane; + + // Hack to make flicker on drag end on mobile webkit less irritating + // Unfortunately I haven't found a good workaround for this yet + if (L.Browser.mobileWebkit) { pane.removeChild(root); } + + L.DomUtil.setPosition(root, min); + root.setAttribute('width', width); + root.setAttribute('height', height); + root.setAttribute('viewBox', [min.x, min.y, width, height].join(' ')); + + if (L.Browser.mobileWebkit) { pane.appendChild(root); } + }, + + _updateViewport: function() { + var p = L.Path.CLIP_PADDING, + size = this._map.getSize(), + //TODO this._map._getMapPanePos() + panePos = L.DomUtil.getPosition(this._map._mapPane), + min = panePos.multiplyBy(-1).subtract(size.multiplyBy(p)), + max = min.add(size.multiplyBy(1 + p * 2)); + + this._map._pathViewport = new L.Bounds(min, max); + }, + + _initPath: function() { + this._container = this._createElement('g'); + + this._path = this._createElement('path'); + this._container.appendChild(this._path); + + this._map._pathRoot.appendChild(this._container); + }, + + _initStyle: function() { + if (this.options.stroke) { + this._path.setAttribute('stroke-linejoin', 'round'); + this._path.setAttribute('stroke-linecap', 'round'); + } + if (this.options.fill) { + this._path.setAttribute('fill-rule', 'evenodd'); + } else { + this._path.setAttribute('fill', 'none'); + } + this._updateStyle(); + }, + + _updateStyle: function() { + if (this.options.stroke) { + this._path.setAttribute('stroke', this.options.color); + this._path.setAttribute('stroke-opacity', this.options.opacity); + this._path.setAttribute('stroke-width', this.options.weight); + } + if (this.options.fill) { + this._path.setAttribute('fill', this.options.fillColor || this.options.color); + this._path.setAttribute('fill-opacity', this.options.fillOpacity); + } + }, + + _updatePath: function() { + var str = this.getPathString(); + if (!str) { + // fix webkit empty string parsing bug + str = 'M0 0'; + } + this._path.setAttribute('d', str); + }, + + _createElement: function(name) { + return document.createElementNS(L.Path.SVG_NS, name); + }, + + // TODO remove duplication with L.Map + _initEvents: function() { + if (this.options.clickable) { + if (!L.Path.VML) { + this._path.setAttribute('class', 'leaflet-clickable'); + } + + L.DomEvent.addListener(this._container, 'click', this._onMouseClick, this); + + var events = ['dblclick', 'mousedown', 'mouseover', 'mouseout']; + for (var i = 0; i < events.length; i++) { + L.DomEvent.addListener(this._container, events[i], this._fireMouseEvent, this); + } + } + }, + + _onMouseClick: function(e) { + if (this._map.dragging && this._map.dragging.moved()) { return; } + this._fireMouseEvent(e); + }, + + _fireMouseEvent: function(e) { + if (!this.hasEventListeners(e.type)) { return; } + this.fire(e.type, { + latlng: this._map.mouseEventToLatLng(e), + layerPoint: this._map.mouseEventToLayerPoint(e) + }); + L.DomEvent.stopPropagation(e); + }, + + _redraw: function() { + this.projectLatlngs(); + this._updatePath(); + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/layer/vector/Polygon.js b/extlib/leaflet/src/layer/vector/Polygon.js new file mode 100644 index 00000000..52bf2d6b --- /dev/null +++ b/extlib/leaflet/src/layer/vector/Polygon.js @@ -0,0 +1,58 @@ +/* + * L.Polygon is used to display polygons on a map. + */ + +L.Polygon = L.Polyline.extend({ + options: { + fill: true + }, + + initialize: function(latlngs, options) { + L.Polyline.prototype.initialize.call(this, latlngs, options); + + if (latlngs[0] instanceof Array) { + this._latlngs = latlngs[0]; + this._holes = latlngs.slice(1); + } + }, + + projectLatlngs: function() { + L.Polyline.prototype.projectLatlngs.call(this); + + // project polygon holes points + // TODO move this logic to Polyline to get rid of duplication + this._holePoints = []; + + if (!this._holes) return; + + for (var i = 0, len = this._holes.length, hole; i < len; i++) { + this._holePoints[i] = []; + + for(var j = 0, len2 = this._holes[i].length; j < len2; j++) { + this._holePoints[i][j] = this._map.latLngToLayerPoint(this._holes[i][j]); + } + } + }, + + _clipPoints: function() { + var points = this._originalPoints, + newParts = []; + + this._parts = [points].concat(this._holePoints); + + if (this.options.noClip) return; + + for (var i = 0, len = this._parts.length; i < len; i++) { + var clipped = L.PolyUtil.clipPolygon(this._parts[i], this._map._pathViewport); + if (!clipped.length) continue; + newParts.push(clipped); + } + + this._parts = newParts; + }, + + _getPathPartStr: function(points) { + var str = L.Polyline.prototype._getPathPartStr.call(this, points); + return str + (L.Path.SVG ? 'z' : 'x'); + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/layer/vector/Polyline.js b/extlib/leaflet/src/layer/vector/Polyline.js new file mode 100644 index 00000000..606d7d71 --- /dev/null +++ b/extlib/leaflet/src/layer/vector/Polyline.js @@ -0,0 +1,112 @@ + +L.Polyline = L.Path.extend({ + initialize: function(latlngs, options) { + L.Path.prototype.initialize.call(this, options); + this._latlngs = latlngs; + }, + + options: { + // how much to simplify the polyline on each zoom level + // more = better performance and smoother look, less = more accurate + smoothFactor: 1.0, + noClip: false, + + updateOnMoveEnd: true + }, + + projectLatlngs: function() { + this._originalPoints = []; + + for (var i = 0, len = this._latlngs.length; i < len; i++) { + this._originalPoints[i] = this._map.latLngToLayerPoint(this._latlngs[i]); + } + }, + + getPathString: function() { + for (var i = 0, len = this._parts.length, str = ''; i < len; i++) { + str += this._getPathPartStr(this._parts[i]); + } + return str; + }, + + getLatLngs: function() { + return this._latlngs; + }, + + setLatLngs: function(latlngs) { + this._latlngs = latlngs; + this._redraw(); + return this; + }, + + addLatLng: function(latlng) { + this._latlngs.push(latlng); + this._redraw(); + return this; + }, + + spliceLatLngs: function(index, howMany) { + var removed = [].splice.apply(this._latlngs, arguments); + this._redraw(); + return removed; + }, + + _getPathPartStr: function(points) { + var round = L.Path.VML; + + for (var j = 0, len2 = points.length, str = '', p; j < len2; j++) { + p = points[j]; + if (round) p._round(); + str += (j ? 'L' : 'M') + p.x + ' ' + p.y; + } + return str; + }, + + _clipPoints: function() { + var points = this._originalPoints, + len = points.length, + i, k, segment; + + if (this.options.noClip) { + this._parts = [points]; + return; + } + + this._parts = []; + + var parts = this._parts, + vp = this._map._pathViewport, + lu = L.LineUtil; + + for (i = 0, k = 0; i < len - 1; i++) { + segment = lu.clipSegment(points[i], points[i+1], vp, i); + if (!segment) continue; + + parts[k] = parts[k] || []; + parts[k].push(segment[0]); + + // if segment goes out of screen, or it's the last one, it's the end of the line part + if ((segment[1] != points[i+1]) || (i == len - 2)) { + parts[k].push(segment[1]); + k++; + } + } + }, + + // simplify each clipped part of the polyline + _simplifyPoints: function() { + var parts = this._parts, + lu = L.LineUtil; + + for (var i = 0, len = parts.length; i < len; i++) { + parts[i] = lu.simplify(parts[i], this.options.smoothFactor); + } + }, + + _updatePath: function() { + this._clipPoints(); + this._simplifyPoints(); + + L.Path.prototype._updatePath.call(this); + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/map/Map.js b/extlib/leaflet/src/map/Map.js new file mode 100644 index 00000000..d460048e --- /dev/null +++ b/extlib/leaflet/src/map/Map.js @@ -0,0 +1,464 @@ +/* + * L.Map is the central class of the API - it is used to create a map. + */ + +L.Map = L.Class.extend({ + includes: L.Mixin.Events, + + options: { + // projection + crs: L.CRS.EPSG3857 || L.CRS.EPSG4326, + scale: function(zoom) { return 256 * (1 << zoom); }, + + // state + center: null, + zoom: null, + layers: [], + + // interaction + dragging: true, + touchZoom: L.Browser.mobileWebkit && !L.Browser.android, + scrollWheelZoom: !L.Browser.mobileWebkit, + doubleClickZoom: true, + shiftDragZoom: true, + + // controls + zoomControl: true, + attributionControl: true, + + // animation + fadeAnimation: L.DomUtil.TRANSITION && !L.Browser.android, + zoomAnimation: L.DomUtil.TRANSITION && !L.Browser.android && !L.Browser.mobileOpera, + + // misc + trackResize: true, + closePopupOnClick: true + }, + + + // constructor + + initialize: function(/*HTMLElement or String*/ id, /*Object*/ options) { + L.Util.setOptions(this, options); + + this._container = L.DomUtil.get(id); + + this._initLayout(); + + if (L.DomEvent) { + this._initEvents(); + if (L.Handler) { this._initInteraction(); } + if (L.Control) { this._initControls(); } + } + + var center = this.options.center, + zoom = this.options.zoom; + + if (center !== null && zoom !== null) { + this.setView(center, zoom, true); + } + + var layers = this.options.layers; + layers = (layers instanceof Array ? layers : [layers]); + this._tileLayersNum = 0; + this._initLayers(layers); + }, + + + // public methods that modify map state + + // replaced by animation-powered implementation in Map.PanAnimation.js + setView: function(center, zoom, forceReset) { + // reset the map view + this._resetView(center, this._limitZoom(zoom)); + return this; + }, + + setZoom: function(/*Number*/ zoom) { + return this.setView(this.getCenter(), zoom); + }, + + zoomIn: function() { + return this.setZoom(this._zoom + 1); + }, + + zoomOut: function() { + return this.setZoom(this._zoom - 1); + }, + + fitBounds: function(/*LatLngBounds*/ bounds) { + var zoom = this.getBoundsZoom(bounds); + return this.setView(bounds.getCenter(), zoom); + }, + + fitWorld: function() { + var sw = new L.LatLng(-60, -170), + ne = new L.LatLng(85, 179); + return this.fitBounds(new L.LatLngBounds(sw, ne)); + }, + + panTo: function(/*LatLng*/ center) { + return this.setView(center, this._zoom); + }, + + panBy: function(/*Point*/ offset) { + // replaced with animated panBy in Map.Animation.js + this.fire('movestart'); + + this._rawPanBy(offset); + + this.fire('move'); + this.fire('moveend'); + + return this; + }, + + addLayer: function(layer) { + var id = L.Util.stamp(layer); + + if (this._layers[id]) return this; + + this._layers[id] = layer; + + if (layer.options && !isNaN(layer.options.maxZoom)) { + this._layersMaxZoom = Math.max(this._layersMaxZoom || 0, layer.options.maxZoom); + } + if (layer.options && !isNaN(layer.options.minZoom)) { + this._layersMinZoom = Math.min(this._layersMinZoom || Infinity, layer.options.minZoom); + } + //TODO getMaxZoom, getMinZoom in ILayer (instead of options) + + if (this.options.zoomAnimation && L.TileLayer && (layer instanceof L.TileLayer)) { + this._tileLayersNum++; + layer.on('load', this._onTileLayerLoad, this); + } + if (this.attributionControl && layer.getAttribution) { + this.attributionControl.addAttribution(layer.getAttribution()); + } + + var onMapLoad = function() { + layer.onAdd(this); + this.fire('layeradd', {layer: layer}); + }; + + if (this._loaded) { + onMapLoad.call(this); + } else { + this.on('load', onMapLoad, this); + } + + return this; + }, + + removeLayer: function(layer) { + var id = L.Util.stamp(layer); + + if (this._layers[id]) { + layer.onRemove(this); + delete this._layers[id]; + + if (this.options.zoomAnimation && L.TileLayer && (layer instanceof L.TileLayer)) { + this._tileLayersNum--; + layer.off('load', this._onTileLayerLoad, this); + } + if (this.attributionControl && layer.getAttribution) { + this.attributionControl.removeAttribution(layer.getAttribution()); + } + + this.fire('layerremove', {layer: layer}); + } + return this; + }, + + invalidateSize: function() { + this._sizeChanged = true; + + this.fire('move'); + + clearTimeout(this._sizeTimer); + this._sizeTimer = setTimeout(L.Util.bind(function() { + this.fire('moveend'); + }, this), 200); + + return this; + }, + + + // public methods for getting map state + + getCenter: function(/*Boolean*/ unbounded) { + var viewHalf = this.getSize().divideBy(2), + centerPoint = this._getTopLeftPoint().add(viewHalf); + return this.unproject(centerPoint, this._zoom, unbounded); + }, + + getZoom: function() { + return this._zoom; + }, + + getBounds: function() { + var bounds = this.getPixelBounds(), + sw = this.unproject(new L.Point(bounds.min.x, bounds.max.y)), + ne = this.unproject(new L.Point(bounds.max.x, bounds.min.y)); + return new L.LatLngBounds(sw, ne); + }, + + getMinZoom: function() { + return isNaN(this.options.minZoom) ? this._layersMinZoom || 0 : this.options.minZoom; + }, + + getMaxZoom: function() { + return isNaN(this.options.maxZoom) ? this._layersMaxZoom || Infinity : this.options.maxZoom; + }, + + getBoundsZoom: function(/*LatLngBounds*/ bounds) { + var size = this.getSize(), + zoom = this.getMinZoom(), + maxZoom = this.getMaxZoom(), + ne = bounds.getNorthEast(), + sw = bounds.getSouthWest(), + boundsSize, + nePoint, swPoint; + do { + zoom++; + nePoint = this.project(ne, zoom); + swPoint = this.project(sw, zoom); + boundsSize = new L.Point(nePoint.x - swPoint.x, swPoint.y - nePoint.y); + } while ((boundsSize.x <= size.x) && + (boundsSize.y <= size.y) && (zoom <= maxZoom)); + + return zoom - 1; + }, + + getSize: function() { + if (!this._size || this._sizeChanged) { + this._size = new L.Point(this._container.clientWidth, this._container.clientHeight); + this._sizeChanged = false; + } + return this._size; + }, + + getPixelBounds: function() { + var topLeftPoint = this._getTopLeftPoint(), + size = this.getSize(); + return new L.Bounds(topLeftPoint, topLeftPoint.add(size)); + }, + + getPixelOrigin: function() { + return this._initialTopLeftPoint; + }, + + getPanes: function() { + return this._panes; + }, + + + // conversion methods + + mouseEventToContainerPoint: function(/*MouseEvent*/ e) { + return L.DomEvent.getMousePosition(e, this._container); + }, + + mouseEventToLayerPoint: function(/*MouseEvent*/ e) { + return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(e)); + }, + + mouseEventToLatLng: function(/*MouseEvent*/ e) { + return this.layerPointToLatLng(this.mouseEventToLayerPoint(e)); + }, + + containerPointToLayerPoint: function(/*Point*/ point) { + return point.subtract(L.DomUtil.getPosition(this._mapPane)); + }, + + layerPointToContainerPoint: function(/*Point*/ point) { + return point.add(L.DomUtil.getPosition(this._mapPane)); + }, + + layerPointToLatLng: function(/*Point*/ point) { + return this.unproject(point.add(this._initialTopLeftPoint)); + }, + + latLngToLayerPoint: function(/*LatLng*/ latlng) { + return this.project(latlng)._subtract(this._initialTopLeftPoint); + }, + + project: function(/*LatLng*/ latlng, /*(optional) Number*/ zoom)/*-> Point*/ { + zoom = (typeof zoom == 'undefined' ? this._zoom : zoom); + return this.options.crs.latLngToPoint(latlng, this.options.scale(zoom)); + }, + + unproject: function(/*Point*/ point, /*(optional) Number*/ zoom, /*(optional) Boolean*/ unbounded)/*-> Object*/ { + zoom = (typeof zoom == 'undefined' ? this._zoom : zoom); + return this.options.crs.pointToLatLng(point, this.options.scale(zoom), unbounded); + }, + + + // private methods that modify map state + + _initLayout: function() { + var container = this._container; + + container.className += ' leaflet-container'; + + if (this.options.fadeAnimation) { + container.className += ' leaflet-fade-anim'; + } + + var position = L.DomUtil.getStyle(container, 'position'); + if (position != 'absolute' && position != 'relative') { + container.style.position = 'relative'; + } + + this._initPanes(); + + if (this._initControlPos) this._initControlPos(); + }, + + _initPanes: function() { + var panes = this._panes = {}; + + this._mapPane = panes.mapPane = this._createPane('leaflet-map-pane', this._container); + + this._tilePane = panes.tilePane = this._createPane('leaflet-tile-pane', this._mapPane); + this._objectsPane = panes.objectsPane = this._createPane('leaflet-objects-pane', this._mapPane); + + panes.shadowPane = this._createPane('leaflet-shadow-pane'); + panes.overlayPane = this._createPane('leaflet-overlay-pane'); + panes.markerPane = this._createPane('leaflet-marker-pane'); + panes.popupPane = this._createPane('leaflet-popup-pane'); + }, + + _createPane: function(className, container) { + return L.DomUtil.create('div', className, container || this._objectsPane); + }, + + _resetView: function(center, zoom, preserveMapOffset) { + var zoomChanged = (this._zoom != zoom); + + this.fire('movestart'); + + this._zoom = zoom; + + this._initialTopLeftPoint = this._getNewTopLeftPoint(center); + + if (!preserveMapOffset) { + L.DomUtil.setPosition(this._mapPane, new L.Point(0, 0)); + } else { + var offset = L.DomUtil.getPosition(this._mapPane); + this._initialTopLeftPoint._add(offset); + } + + this._tileLayersToLoad = this._tileLayersNum; + this.fire('viewreset'); + + this.fire('move'); + if (zoomChanged) { this.fire('zoomend'); } + this.fire('moveend'); + + if (!this._loaded) { + this._loaded = true; + this.fire('load'); + } + }, + + _initLayers: function(layers) { + this._layers = {}; + for (var i = 0, len = layers.length; i < len; i++) { + this.addLayer(layers[i]); + } + }, + + _initControls: function() { + if (this.options.zoomControl) { + this.addControl(new L.Control.Zoom()); + } + if (this.options.attributionControl) { + this.attributionControl = new L.Control.Attribution(); + this.addControl(this.attributionControl); + } + }, + + _rawPanBy: function(offset) { + var mapPaneOffset = L.DomUtil.getPosition(this._mapPane); + L.DomUtil.setPosition(this._mapPane, mapPaneOffset.subtract(offset)); + }, + + + // map events + + _initEvents: function() { + L.DomEvent.addListener(this._container, 'click', this._onMouseClick, this); + + var events = ['dblclick', 'mousedown', 'mouseenter', 'mouseleave', 'mousemove']; + for (var i = 0; i < events.length; i++) { + L.DomEvent.addListener(this._container, events[i], this._fireMouseEvent, this); + } + + if (this.options.trackResize) { + L.DomEvent.addListener(window, 'resize', this.invalidateSize, this); + } + }, + + _onMouseClick: function(e) { + if (this.dragging && this.dragging.moved()) { return; } + + this.fire('pre' + e.type); + this._fireMouseEvent(e); + }, + + _fireMouseEvent: function(e) { + var type = e.type; + type = (type == 'mouseenter' ? 'mouseover' : (type == 'mouseleave' ? 'mouseout' : type)); + if (!this.hasEventListeners(type)) { return; } + this.fire(type, { + latlng: this.mouseEventToLatLng(e), + layerPoint: this.mouseEventToLayerPoint(e) + }); + }, + + _initInteraction: function() { + var handlers = { + dragging: L.Handler.MapDrag, + touchZoom: L.Handler.TouchZoom, + doubleClickZoom: L.Handler.DoubleClickZoom, + scrollWheelZoom: L.Handler.ScrollWheelZoom, + shiftDragZoom: L.Handler.ShiftDragZoom + }; + for (var i in handlers) { + if (handlers.hasOwnProperty(i) && handlers[i]) { + this[i] = new handlers[i](this); + if (this.options[i]) this[i].enable(); + } + } + }, + + _onTileLayerLoad: function() { + // clear scaled tiles after all new tiles are loaded (for performance) + this._tileLayersToLoad--; + if (this._tileLayersNum && !this._tileLayersToLoad && this._tileBg) { + clearTimeout(this._clearTileBgTimer); + this._clearTileBgTimer = setTimeout(L.Util.bind(this._clearTileBg, this), 500); + } + }, + + + // private methods for getting map state + + _getTopLeftPoint: function() { + if (!this._loaded) throw new Error('Set map center and zoom first.'); + var offset = L.DomUtil.getPosition(this._mapPane); + return this._initialTopLeftPoint.subtract(offset); + }, + + _getNewTopLeftPoint: function(center) { + var viewHalf = this.getSize().divideBy(2); + return this.project(center).subtract(viewHalf).round(); + }, + + _limitZoom: function(zoom) { + var min = this.getMinZoom(); + var max = this.getMaxZoom(); + return Math.max(min, Math.min(max, zoom)); + } +}); diff --git a/extlib/leaflet/src/map/ext/Map.Control.js b/extlib/leaflet/src/map/ext/Map.Control.js new file mode 100644 index 00000000..46711a82 --- /dev/null +++ b/extlib/leaflet/src/map/ext/Map.Control.js @@ -0,0 +1,50 @@ +L.Map.include({ + addControl: function(control) { + control.onAdd(this); + + var pos = control.getPosition(), + corner = this._controlCorners[pos], + container = control.getContainer(); + + L.DomUtil.addClass(container, 'leaflet-control'); + + if (pos.indexOf('bottom') != -1) { + corner.insertBefore(container, corner.firstChild); + } else { + corner.appendChild(container); + } + return this; + }, + + removeControl: function(control) { + var pos = control.getPosition(), + corner = this._controlCorners[pos], + container = control.getContainer(); + + corner.removeChild(container); + + if (control.onRemove) { + control.onRemove(this); + } + return this; + }, + + _initControlPos: function() { + var corners = this._controlCorners = {}, + classPart = 'leaflet-', + top = classPart + 'top', + bottom = classPart + 'bottom', + left = classPart + 'left', + right = classPart + 'right', + controlContainer = L.DomUtil.create('div', classPart + 'control-container', this._container); + + if (L.Browser.mobileWebkit) { + controlContainer.className += ' ' + classPart + 'big-buttons'; + } + + corners.topLeft = L.DomUtil.create('div', top + ' ' + left, controlContainer); + corners.topRight = L.DomUtil.create('div', top + ' ' + right, controlContainer); + corners.bottomLeft = L.DomUtil.create('div', bottom + ' ' + left, controlContainer); + corners.bottomRight = L.DomUtil.create('div', bottom + ' ' + right, controlContainer); + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/map/ext/Map.Geolocation.js b/extlib/leaflet/src/map/ext/Map.Geolocation.js new file mode 100644 index 00000000..328662b9 --- /dev/null +++ b/extlib/leaflet/src/map/ext/Map.Geolocation.js @@ -0,0 +1,69 @@ +/* + * Provides L.Map with convenient shortcuts for W3C geolocation. + */ + +L.Map.include({ + locate: function(/*Object*/ options) { + // W3C Geolocation API Spec position options, http://dev.w3.org/geo/api/spec-source.html#position-options + var opts = {timeout: 10000}; + L.Util.extend(opts, options); + + if (navigator.geolocation) { + navigator.geolocation.getCurrentPosition( + L.Util.bind(this._handleGeolocationResponse, this), + L.Util.bind(this._handleGeolocationError, this), + opts); + } else { + this.fire('locationerror', { + code: 0, + message: "Geolocation not supported." + }); + } + return this; + }, + + locateAndSetView: function(maxZoom, options) { + this._setViewOnLocate = true; + this._maxLocateZoom = maxZoom || Infinity; + return this.locate(options); + }, + + _handleGeolocationError: function(error) { + var c = error.code, + message = (c == 1 ? "permission denied" : + (c == 2 ? "position unavailable" : "timeout")); + + if (this._setViewOnLocate) { + this.fitWorld(); + this._setViewOnLocate = false; + } + + this.fire('locationerror', { + code: c, + message: "Geolocation error: " + message + "." + }); + }, + + _handleGeolocationResponse: function(pos) { + var latAccuracy = 180 * pos.coords.accuracy / 4e7, + lngAccuracy = latAccuracy * 2, + lat = pos.coords.latitude, + lng = pos.coords.longitude; + + var sw = new L.LatLng(lat - latAccuracy, lng - lngAccuracy), + ne = new L.LatLng(lat + latAccuracy, lng + lngAccuracy), + bounds = new L.LatLngBounds(sw, ne); + + if (this._setViewOnLocate) { + var zoom = Math.min(this.getBoundsZoom(bounds), this._maxLocateZoom); + this.setView(bounds.getCenter(), zoom); + this._setViewOnLocate = false; + } + + this.fire('locationfound', { + latlng: new L.LatLng(lat, lng), + bounds: bounds, + accuracy: pos.coords.accuracy + }); + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/map/ext/Map.PanAnimation.js b/extlib/leaflet/src/map/ext/Map.PanAnimation.js new file mode 100644 index 00000000..02ccfd15 --- /dev/null +++ b/extlib/leaflet/src/map/ext/Map.PanAnimation.js @@ -0,0 +1,62 @@ +L.Map.include(!(L.Transition && L.Transition.implemented()) ? {} : { + setView: function(center, zoom, forceReset) { + zoom = this._limitZoom(zoom); + var zoomChanged = (this._zoom != zoom); + + if (this._loaded && !forceReset && this._layers) { + // difference between the new and current centers in pixels + var offset = this._getNewTopLeftPoint(center).subtract(this._getTopLeftPoint()); + + var done = (zoomChanged ? + !!this._zoomToIfCenterInView && this._zoomToIfCenterInView(center, zoom, offset) : + this._panByIfClose(offset)); + + // exit if animated pan or zoom started + if (done) { return this; } + } + + // reset the map view + this._resetView(center, zoom); + + return this; + }, + + panBy: function(offset) { + if (!this._panTransition) { + this._panTransition = new L.Transition(this._mapPane, {duration: 0.3}); + + this._panTransition.on('step', this._onPanTransitionStep, this); + this._panTransition.on('end', this._onPanTransitionEnd, this); + } + this.fire(this, 'movestart'); + + this._panTransition.run({ + position: L.DomUtil.getPosition(this._mapPane).subtract(offset) + }); + + return this; + }, + + _onPanTransitionStep: function() { + this.fire('move'); + }, + + _onPanTransitionEnd: function() { + this.fire('moveend'); + }, + + _panByIfClose: function(offset) { + if (this._offsetIsWithinView(offset)) { + this.panBy(offset); + return true; + } + return false; + }, + + _offsetIsWithinView: function(offset, multiplyFactor) { + var m = multiplyFactor || 1, + size = this.getSize(); + return (Math.abs(offset.x) <= size.x * m) && + (Math.abs(offset.y) <= size.y * m); + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/map/ext/Map.Popup.js b/extlib/leaflet/src/map/ext/Map.Popup.js new file mode 100644 index 00000000..8b8de937 --- /dev/null +++ b/extlib/leaflet/src/map/ext/Map.Popup.js @@ -0,0 +1,15 @@ + +L.Map.include({ + openPopup: function(popup) { + this.closePopup(); + this._popup = popup; + return this.addLayer(popup); + }, + + closePopup: function() { + if (this._popup) { + this.removeLayer(this._popup); + } + return this; + } +}); \ No newline at end of file diff --git a/extlib/leaflet/src/map/ext/Map.ZoomAnimation.js b/extlib/leaflet/src/map/ext/Map.ZoomAnimation.js new file mode 100644 index 00000000..4bf7b9bf --- /dev/null +++ b/extlib/leaflet/src/map/ext/Map.ZoomAnimation.js @@ -0,0 +1,124 @@ +L.Map.include(!L.DomUtil.TRANSITION ? {} : { + _zoomToIfCenterInView: function(center, zoom, centerOffset) { + + if (this._animatingZoom) { return true; } + if (!this.options.zoomAnimation) { return false; } + + var zoomDelta = zoom - this._zoom, + scale = Math.pow(2, zoomDelta), + offset = centerOffset.divideBy(1 - 1/scale); + + //if offset does not exceed half of the view + if (!this._offsetIsWithinView(offset, 1)) { return false; } + + this._mapPane.className += ' leaflet-zoom-anim'; + + var centerPoint = this.containerPointToLayerPoint(this.getSize().divideBy(2)), + origin = centerPoint.add(offset); + + this._prepareTileBg(); + + this._runAnimation(center, zoom, scale, origin); + + return true; + }, + + + _runAnimation: function(center, zoom, scale, origin) { + this._animatingZoom = true; + + this._animateToCenter = center; + this._animateToZoom = zoom; + + var transform = L.DomUtil.TRANSFORM; + + //dumb FireFox hack, I have no idea why this magic zero translate fixes the scale transition problem + if (L.Browser.gecko || window.opera) { + this._tileBg.style[transform] += ' translate(0,0)'; + } + + var scaleStr; + + // Android doesn't like translate/scale chains, transformOrigin + scale works better but + // it breaks touch zoom which Anroid doesn't support anyway, so that's a really ugly hack + // TODO work around this prettier + if (L.Browser.android) { + this._tileBg.style[transform + 'Origin'] = origin.x + 'px ' + origin.y + 'px'; + scaleStr = 'scale(' + scale + ')'; + } else { + scaleStr = L.DomUtil.getScaleString(scale, origin); + } + + L.Util.falseFn(this._tileBg.offsetWidth); //hack to make sure transform is updated before running animation + + var options = {}; + options[transform] = this._tileBg.style[transform] + ' ' + scaleStr; + this._tileBg.transition.run(options); + }, + + _prepareTileBg: function() { + if (!this._tileBg) { + this._tileBg = this._createPane('leaflet-tile-pane', this._mapPane); + this._tileBg.style.zIndex = 1; + } + + var tilePane = this._tilePane, + tileBg = this._tileBg; + + // prepare the background pane to become the main tile pane + //tileBg.innerHTML = ''; + tileBg.style[L.DomUtil.TRANSFORM] = ''; + tileBg.style.visibility = 'hidden'; + + // tells tile layers to reinitialize their containers + tileBg.empty = true; + tilePane.empty = false; + + this._tilePane = this._panes.tilePane = tileBg; + this._tileBg = tilePane; + + if (!this._tileBg.transition) { + this._tileBg.transition = new L.Transition(this._tileBg, {duration: 0.3, easing: 'cubic-bezier(0.25,0.1,0.25,0.75)'}); + this._tileBg.transition.on('end', this._onZoomTransitionEnd, this); + } + + this._stopLoadingBgTiles(); + }, + + // stops loading all tiles in the background layer + _stopLoadingBgTiles: function() { + var tiles = [].slice.call(this._tileBg.getElementsByTagName('img')); + + for (var i = 0, len = tiles.length; i < len; i++) { + if (!tiles[i].complete) { + tiles[i].src = ''; + tiles[i].parentNode.removeChild(tiles[i]); + } + } + }, + + _onZoomTransitionEnd: function() { + this._restoreTileFront(); + + L.Util.falseFn(this._tileBg.offsetWidth); + this._resetView(this._animateToCenter, this._animateToZoom, true); + + //TODO clear tileBg on map layersload + + this._mapPane.className = this._mapPane.className.replace(' leaflet-zoom-anim', ''); //TODO toggleClass util + this._animatingZoom = false; + }, + + _restoreTileFront: function() { + this._tilePane.innerHTML = ''; + this._tilePane.style.visibility = ''; + this._tilePane.style.zIndex = 2; + this._tileBg.style.zIndex = 1; + }, + + _clearTileBg: function() { + if (!this._animatingZoom && !this.touchZoom._zooming) { + this._tileBg.innerHTML = ''; + } + } +}); \ No newline at end of file diff --git a/mediagoblin/static/extlib/leaflet b/mediagoblin/static/extlib/leaflet new file mode 120000 index 00000000..b47e2b1b --- /dev/null +++ b/mediagoblin/static/extlib/leaflet @@ -0,0 +1 @@ +../../../extlib/leaflet/dist/ \ No newline at end of file From 9bf7563d4c4c263fb6e5345bd1185aebb1c6ef8f Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Tue, 10 Jan 2012 02:14:37 +0100 Subject: [PATCH 1426/2731] Installed EXIF.py in extlibs/ --- extlib/exif/EXIF.py | 1767 +++++++++++++++++++++++++ mediagoblin/media_types/image/EXIF.py | 1 + 2 files changed, 1768 insertions(+) create mode 100755 extlib/exif/EXIF.py create mode 120000 mediagoblin/media_types/image/EXIF.py diff --git a/extlib/exif/EXIF.py b/extlib/exif/EXIF.py new file mode 100755 index 00000000..ed4192af --- /dev/null +++ b/extlib/exif/EXIF.py @@ -0,0 +1,1767 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Library to extract EXIF information from digital camera image files +# http://sourceforge.net/projects/exif-py/ +# +# VERSION 1.1.0 +# +# To use this library call with: +# f = open(path_name, 'rb') +# tags = EXIF.process_file(f) +# +# To ignore MakerNote tags, pass the -q or --quick +# command line arguments, or as +# tags = EXIF.process_file(f, details=False) +# +# To stop processing after a certain tag is retrieved, +# pass the -t TAG or --stop-tag TAG argument, or as +# tags = EXIF.process_file(f, stop_tag='TAG') +# +# where TAG is a valid tag name, ex 'DateTimeOriginal' +# +# These 2 are useful when you are retrieving a large list of images +# +# +# To return an error on invalid tags, +# pass the -s or --strict argument, or as +# tags = EXIF.process_file(f, strict=True) +# +# Otherwise these tags will be ignored +# +# Returned tags will be a dictionary mapping names of EXIF tags to their +# values in the file named by path_name. You can process the tags +# as you wish. In particular, you can iterate through all the tags with: +# for tag in tags.keys(): +# if tag not in ('JPEGThumbnail', 'TIFFThumbnail', 'Filename', +# 'EXIF MakerNote'): +# print "Key: %s, value %s" % (tag, tags[tag]) +# (This code uses the if statement to avoid printing out a few of the +# tags that tend to be long or boring.) +# +# The tags dictionary will include keys for all of the usual EXIF +# tags, and will also include keys for Makernotes used by some +# cameras, for which we have a good specification. +# +# Note that the dictionary keys are the IFD name followed by the +# tag name. For example: +# 'EXIF DateTimeOriginal', 'Image Orientation', 'MakerNote FocusMode' +# +# Copyright (c) 2002-2007 Gene Cash All rights reserved +# Copyright (c) 2007-2008 Ianaré Sévi 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 the authors 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. +# +# +# ----- See 'changes.txt' file for all contributors and changes ----- # +# + + +# Don't throw an exception when given an out of range character. +def make_string(seq): + str = '' + for c in seq: + # Screen out non-printing characters + if 32 <= c and c < 256: + str += chr(c) + # If no printing chars + if not str: + return seq + return str + +# Special version to deal with the code in the first 8 bytes of a user comment. +# First 8 bytes gives coding system e.g. ASCII vs. JIS vs Unicode +def make_string_uc(seq): + code = seq[0:8] + seq = seq[8:] + # Of course, this is only correct if ASCII, and the standard explicitly + # allows JIS and Unicode. + return make_string(seq) + +# field type descriptions as (length, abbreviation, full name) tuples +FIELD_TYPES = ( + (0, 'X', 'Proprietary'), # no such type + (1, 'B', 'Byte'), + (1, 'A', 'ASCII'), + (2, 'S', 'Short'), + (4, 'L', 'Long'), + (8, 'R', 'Ratio'), + (1, 'SB', 'Signed Byte'), + (1, 'U', 'Undefined'), + (2, 'SS', 'Signed Short'), + (4, 'SL', 'Signed Long'), + (8, 'SR', 'Signed Ratio'), + ) + +# dictionary of main EXIF tag names +# first element of tuple is tag name, optional second element is +# another dictionary giving names to values +EXIF_TAGS = { + 0x0100: ('ImageWidth', ), + 0x0101: ('ImageLength', ), + 0x0102: ('BitsPerSample', ), + 0x0103: ('Compression', + {1: 'Uncompressed', + 2: 'CCITT 1D', + 3: 'T4/Group 3 Fax', + 4: 'T6/Group 4 Fax', + 5: 'LZW', + 6: 'JPEG (old-style)', + 7: 'JPEG', + 8: 'Adobe Deflate', + 9: 'JBIG B&W', + 10: 'JBIG Color', + 32766: 'Next', + 32769: 'Epson ERF Compressed', + 32771: 'CCIRLEW', + 32773: 'PackBits', + 32809: 'Thunderscan', + 32895: 'IT8CTPAD', + 32896: 'IT8LW', + 32897: 'IT8MP', + 32898: 'IT8BL', + 32908: 'PixarFilm', + 32909: 'PixarLog', + 32946: 'Deflate', + 32947: 'DCS', + 34661: 'JBIG', + 34676: 'SGILog', + 34677: 'SGILog24', + 34712: 'JPEG 2000', + 34713: 'Nikon NEF Compressed', + 65000: 'Kodak DCR Compressed', + 65535: 'Pentax PEF Compressed'}), + 0x0106: ('PhotometricInterpretation', ), + 0x0107: ('Thresholding', ), + 0x010A: ('FillOrder', ), + 0x010D: ('DocumentName', ), + 0x010E: ('ImageDescription', ), + 0x010F: ('Make', ), + 0x0110: ('Model', ), + 0x0111: ('StripOffsets', ), + 0x0112: ('Orientation', + {1: 'Horizontal (normal)', + 2: 'Mirrored horizontal', + 3: 'Rotated 180', + 4: 'Mirrored vertical', + 5: 'Mirrored horizontal then rotated 90 CCW', + 6: 'Rotated 90 CW', + 7: 'Mirrored horizontal then rotated 90 CW', + 8: 'Rotated 90 CCW'}), + 0x0115: ('SamplesPerPixel', ), + 0x0116: ('RowsPerStrip', ), + 0x0117: ('StripByteCounts', ), + 0x011A: ('XResolution', ), + 0x011B: ('YResolution', ), + 0x011C: ('PlanarConfiguration', ), + 0x011D: ('PageName', make_string), + 0x0128: ('ResolutionUnit', + {1: 'Not Absolute', + 2: 'Pixels/Inch', + 3: 'Pixels/Centimeter'}), + 0x012D: ('TransferFunction', ), + 0x0131: ('Software', ), + 0x0132: ('DateTime', ), + 0x013B: ('Artist', ), + 0x013E: ('WhitePoint', ), + 0x013F: ('PrimaryChromaticities', ), + 0x0156: ('TransferRange', ), + 0x0200: ('JPEGProc', ), + 0x0201: ('JPEGInterchangeFormat', ), + 0x0202: ('JPEGInterchangeFormatLength', ), + 0x0211: ('YCbCrCoefficients', ), + 0x0212: ('YCbCrSubSampling', ), + 0x0213: ('YCbCrPositioning', + {1: 'Centered', + 2: 'Co-sited'}), + 0x0214: ('ReferenceBlackWhite', ), + + 0x4746: ('Rating', ), + + 0x828D: ('CFARepeatPatternDim', ), + 0x828E: ('CFAPattern', ), + 0x828F: ('BatteryLevel', ), + 0x8298: ('Copyright', ), + 0x829A: ('ExposureTime', ), + 0x829D: ('FNumber', ), + 0x83BB: ('IPTC/NAA', ), + 0x8769: ('ExifOffset', ), + 0x8773: ('InterColorProfile', ), + 0x8822: ('ExposureProgram', + {0: 'Unidentified', + 1: 'Manual', + 2: 'Program Normal', + 3: 'Aperture Priority', + 4: 'Shutter Priority', + 5: 'Program Creative', + 6: 'Program Action', + 7: 'Portrait Mode', + 8: 'Landscape Mode'}), + 0x8824: ('SpectralSensitivity', ), + 0x8825: ('GPSInfo', ), + 0x8827: ('ISOSpeedRatings', ), + 0x8828: ('OECF', ), + 0x9000: ('ExifVersion', make_string), + 0x9003: ('DateTimeOriginal', ), + 0x9004: ('DateTimeDigitized', ), + 0x9101: ('ComponentsConfiguration', + {0: '', + 1: 'Y', + 2: 'Cb', + 3: 'Cr', + 4: 'Red', + 5: 'Green', + 6: 'Blue'}), + 0x9102: ('CompressedBitsPerPixel', ), + 0x9201: ('ShutterSpeedValue', ), + 0x9202: ('ApertureValue', ), + 0x9203: ('BrightnessValue', ), + 0x9204: ('ExposureBiasValue', ), + 0x9205: ('MaxApertureValue', ), + 0x9206: ('SubjectDistance', ), + 0x9207: ('MeteringMode', + {0: 'Unidentified', + 1: 'Average', + 2: 'CenterWeightedAverage', + 3: 'Spot', + 4: 'MultiSpot', + 5: 'Pattern'}), + 0x9208: ('LightSource', + {0: 'Unknown', + 1: 'Daylight', + 2: 'Fluorescent', + 3: 'Tungsten', + 9: 'Fine Weather', + 10: 'Flash', + 11: 'Shade', + 12: 'Daylight Fluorescent', + 13: 'Day White Fluorescent', + 14: 'Cool White Fluorescent', + 15: 'White Fluorescent', + 17: 'Standard Light A', + 18: 'Standard Light B', + 19: 'Standard Light C', + 20: 'D55', + 21: 'D65', + 22: 'D75', + 255: 'Other'}), + 0x9209: ('Flash', + {0: 'No', + 1: 'Fired', + 5: 'Fired (?)', # no return sensed + 7: 'Fired (!)', # return sensed + 9: 'Fill Fired', + 13: 'Fill Fired (?)', + 15: 'Fill Fired (!)', + 16: 'Off', + 24: 'Auto Off', + 25: 'Auto Fired', + 29: 'Auto Fired (?)', + 31: 'Auto Fired (!)', + 32: 'Not Available'}), + 0x920A: ('FocalLength', ), + 0x9214: ('SubjectArea', ), + 0x927C: ('MakerNote', ), + 0x9286: ('UserComment', make_string_uc), + 0x9290: ('SubSecTime', ), + 0x9291: ('SubSecTimeOriginal', ), + 0x9292: ('SubSecTimeDigitized', ), + + # used by Windows Explorer + 0x9C9B: ('XPTitle', ), + 0x9C9C: ('XPComment', ), + 0x9C9D: ('XPAuthor', ), #(ignored by Windows Explorer if Artist exists) + 0x9C9E: ('XPKeywords', ), + 0x9C9F: ('XPSubject', ), + + 0xA000: ('FlashPixVersion', make_string), + 0xA001: ('ColorSpace', + {1: 'sRGB', + 2: 'Adobe RGB', + 65535: 'Uncalibrated'}), + 0xA002: ('ExifImageWidth', ), + 0xA003: ('ExifImageLength', ), + 0xA005: ('InteroperabilityOffset', ), + 0xA20B: ('FlashEnergy', ), # 0x920B in TIFF/EP + 0xA20C: ('SpatialFrequencyResponse', ), # 0x920C + 0xA20E: ('FocalPlaneXResolution', ), # 0x920E + 0xA20F: ('FocalPlaneYResolution', ), # 0x920F + 0xA210: ('FocalPlaneResolutionUnit', ), # 0x9210 + 0xA214: ('SubjectLocation', ), # 0x9214 + 0xA215: ('ExposureIndex', ), # 0x9215 + 0xA217: ('SensingMethod', # 0x9217 + {1: 'Not defined', + 2: 'One-chip color area', + 3: 'Two-chip color area', + 4: 'Three-chip color area', + 5: 'Color sequential area', + 7: 'Trilinear', + 8: 'Color sequential linear'}), + 0xA300: ('FileSource', + {1: 'Film Scanner', + 2: 'Reflection Print Scanner', + 3: 'Digital Camera'}), + 0xA301: ('SceneType', + {1: 'Directly Photographed'}), + 0xA302: ('CVAPattern', ), + 0xA401: ('CustomRendered', + {0: 'Normal', + 1: 'Custom'}), + 0xA402: ('ExposureMode', + {0: 'Auto Exposure', + 1: 'Manual Exposure', + 2: 'Auto Bracket'}), + 0xA403: ('WhiteBalance', + {0: 'Auto', + 1: 'Manual'}), + 0xA404: ('DigitalZoomRatio', ), + 0xA405: ('FocalLengthIn35mmFilm', ), + 0xA406: ('SceneCaptureType', + {0: 'Standard', + 1: 'Landscape', + 2: 'Portrait', + 3: 'Night)'}), + 0xA407: ('GainControl', + {0: 'None', + 1: 'Low gain up', + 2: 'High gain up', + 3: 'Low gain down', + 4: 'High gain down'}), + 0xA408: ('Contrast', + {0: 'Normal', + 1: 'Soft', + 2: 'Hard'}), + 0xA409: ('Saturation', + {0: 'Normal', + 1: 'Soft', + 2: 'Hard'}), + 0xA40A: ('Sharpness', + {0: 'Normal', + 1: 'Soft', + 2: 'Hard'}), + 0xA40B: ('DeviceSettingDescription', ), + 0xA40C: ('SubjectDistanceRange', ), + 0xA500: ('Gamma', ), + 0xC4A5: ('PrintIM', ), + 0xEA1C: ('Padding', ), + } + +# interoperability tags +INTR_TAGS = { + 0x0001: ('InteroperabilityIndex', ), + 0x0002: ('InteroperabilityVersion', ), + 0x1000: ('RelatedImageFileFormat', ), + 0x1001: ('RelatedImageWidth', ), + 0x1002: ('RelatedImageLength', ), + } + +# GPS tags (not used yet, haven't seen camera with GPS) +GPS_TAGS = { + 0x0000: ('GPSVersionID', ), + 0x0001: ('GPSLatitudeRef', ), + 0x0002: ('GPSLatitude', ), + 0x0003: ('GPSLongitudeRef', ), + 0x0004: ('GPSLongitude', ), + 0x0005: ('GPSAltitudeRef', ), + 0x0006: ('GPSAltitude', ), + 0x0007: ('GPSTimeStamp', ), + 0x0008: ('GPSSatellites', ), + 0x0009: ('GPSStatus', ), + 0x000A: ('GPSMeasureMode', ), + 0x000B: ('GPSDOP', ), + 0x000C: ('GPSSpeedRef', ), + 0x000D: ('GPSSpeed', ), + 0x000E: ('GPSTrackRef', ), + 0x000F: ('GPSTrack', ), + 0x0010: ('GPSImgDirectionRef', ), + 0x0011: ('GPSImgDirection', ), + 0x0012: ('GPSMapDatum', ), + 0x0013: ('GPSDestLatitudeRef', ), + 0x0014: ('GPSDestLatitude', ), + 0x0015: ('GPSDestLongitudeRef', ), + 0x0016: ('GPSDestLongitude', ), + 0x0017: ('GPSDestBearingRef', ), + 0x0018: ('GPSDestBearing', ), + 0x0019: ('GPSDestDistanceRef', ), + 0x001A: ('GPSDestDistance', ), + 0x001D: ('GPSDate', ), + } + +# Ignore these tags when quick processing +# 0x927C is MakerNote Tags +# 0x9286 is user comment +IGNORE_TAGS=(0x9286, 0x927C) + +# http://tomtia.plala.jp/DigitalCamera/MakerNote/index.asp +def nikon_ev_bias(seq): + # First digit seems to be in steps of 1/6 EV. + # Does the third value mean the step size? It is usually 6, + # but it is 12 for the ExposureDifference. + # + # Check for an error condition that could cause a crash. + # This only happens if something has gone really wrong in + # reading the Nikon MakerNote. + if len( seq ) < 4 : return "" + # + if seq == [252, 1, 6, 0]: + return "-2/3 EV" + if seq == [253, 1, 6, 0]: + return "-1/2 EV" + if seq == [254, 1, 6, 0]: + return "-1/3 EV" + if seq == [0, 1, 6, 0]: + return "0 EV" + if seq == [2, 1, 6, 0]: + return "+1/3 EV" + if seq == [3, 1, 6, 0]: + return "+1/2 EV" + if seq == [4, 1, 6, 0]: + return "+2/3 EV" + # Handle combinations not in the table. + a = seq[0] + # Causes headaches for the +/- logic, so special case it. + if a == 0: + return "0 EV" + if a > 127: + a = 256 - a + ret_str = "-" + else: + ret_str = "+" + b = seq[2] # Assume third value means the step size + whole = a / b + a = a % b + if whole != 0: + ret_str = ret_str + str(whole) + " " + if a == 0: + ret_str = ret_str + "EV" + else: + r = Ratio(a, b) + ret_str = ret_str + r.__repr__() + " EV" + return ret_str + +# Nikon E99x MakerNote Tags +MAKERNOTE_NIKON_NEWER_TAGS={ + 0x0001: ('MakernoteVersion', make_string), # Sometimes binary + 0x0002: ('ISOSetting', make_string), + 0x0003: ('ColorMode', ), + 0x0004: ('Quality', ), + 0x0005: ('Whitebalance', ), + 0x0006: ('ImageSharpening', ), + 0x0007: ('FocusMode', ), + 0x0008: ('FlashSetting', ), + 0x0009: ('AutoFlashMode', ), + 0x000B: ('WhiteBalanceBias', ), + 0x000C: ('WhiteBalanceRBCoeff', ), + 0x000D: ('ProgramShift', nikon_ev_bias), + # Nearly the same as the other EV vals, but step size is 1/12 EV (?) + 0x000E: ('ExposureDifference', nikon_ev_bias), + 0x000F: ('ISOSelection', ), + 0x0011: ('NikonPreview', ), + 0x0012: ('FlashCompensation', nikon_ev_bias), + 0x0013: ('ISOSpeedRequested', ), + 0x0016: ('PhotoCornerCoordinates', ), + # 0x0017: Unknown, but most likely an EV value + 0x0018: ('FlashBracketCompensationApplied', nikon_ev_bias), + 0x0019: ('AEBracketCompensationApplied', ), + 0x001A: ('ImageProcessing', ), + 0x001B: ('CropHiSpeed', ), + 0x001D: ('SerialNumber', ), # Conflict with 0x00A0 ? + 0x001E: ('ColorSpace', ), + 0x001F: ('VRInfo', ), + 0x0020: ('ImageAuthentication', ), + 0x0022: ('ActiveDLighting', ), + 0x0023: ('PictureControl', ), + 0x0024: ('WorldTime', ), + 0x0025: ('ISOInfo', ), + 0x0080: ('ImageAdjustment', ), + 0x0081: ('ToneCompensation', ), + 0x0082: ('AuxiliaryLens', ), + 0x0083: ('LensType', ), + 0x0084: ('LensMinMaxFocalMaxAperture', ), + 0x0085: ('ManualFocusDistance', ), + 0x0086: ('DigitalZoomFactor', ), + 0x0087: ('FlashMode', + {0x00: 'Did Not Fire', + 0x01: 'Fired, Manual', + 0x07: 'Fired, External', + 0x08: 'Fired, Commander Mode ', + 0x09: 'Fired, TTL Mode'}), + 0x0088: ('AFFocusPosition', + {0x0000: 'Center', + 0x0100: 'Top', + 0x0200: 'Bottom', + 0x0300: 'Left', + 0x0400: 'Right'}), + 0x0089: ('BracketingMode', + {0x00: 'Single frame, no bracketing', + 0x01: 'Continuous, no bracketing', + 0x02: 'Timer, no bracketing', + 0x10: 'Single frame, exposure bracketing', + 0x11: 'Continuous, exposure bracketing', + 0x12: 'Timer, exposure bracketing', + 0x40: 'Single frame, white balance bracketing', + 0x41: 'Continuous, white balance bracketing', + 0x42: 'Timer, white balance bracketing'}), + 0x008A: ('AutoBracketRelease', ), + 0x008B: ('LensFStops', ), + 0x008C: ('NEFCurve1', ), # ExifTool calls this 'ContrastCurve' + 0x008D: ('ColorMode', ), + 0x008F: ('SceneMode', ), + 0x0090: ('LightingType', ), + 0x0091: ('ShotInfo', ), # First 4 bytes are a version number in ASCII + 0x0092: ('HueAdjustment', ), + # ExifTool calls this 'NEFCompression', should be 1-4 + 0x0093: ('Compression', ), + 0x0094: ('Saturation', + {-3: 'B&W', + -2: '-2', + -1: '-1', + 0: '0', + 1: '1', + 2: '2'}), + 0x0095: ('NoiseReduction', ), + 0x0096: ('NEFCurve2', ), # ExifTool calls this 'LinearizationTable' + 0x0097: ('ColorBalance', ), # First 4 bytes are a version number in ASCII + 0x0098: ('LensData', ), # First 4 bytes are a version number in ASCII + 0x0099: ('RawImageCenter', ), + 0x009A: ('SensorPixelSize', ), + 0x009C: ('Scene Assist', ), + 0x009E: ('RetouchHistory', ), + 0x00A0: ('SerialNumber', ), + 0x00A2: ('ImageDataSize', ), + # 00A3: unknown - a single byte 0 + # 00A4: In NEF, looks like a 4 byte ASCII version number ('0200') + 0x00A5: ('ImageCount', ), + 0x00A6: ('DeletedImageCount', ), + 0x00A7: ('TotalShutterReleases', ), + # First 4 bytes are a version number in ASCII, with version specific + # info to follow. Its hard to treat it as a string due to embedded nulls. + 0x00A8: ('FlashInfo', ), + 0x00A9: ('ImageOptimization', ), + 0x00AA: ('Saturation', ), + 0x00AB: ('DigitalVariProgram', ), + 0x00AC: ('ImageStabilization', ), + 0x00AD: ('Responsive AF', ), # 'AFResponse' + 0x00B0: ('MultiExposure', ), + 0x00B1: ('HighISONoiseReduction', ), + 0x00B7: ('AFInfo', ), + 0x00B8: ('FileInfo', ), + # 00B9: unknown + 0x0100: ('DigitalICE', ), + 0x0103: ('PreviewCompression', + {1: 'Uncompressed', + 2: 'CCITT 1D', + 3: 'T4/Group 3 Fax', + 4: 'T6/Group 4 Fax', + 5: 'LZW', + 6: 'JPEG (old-style)', + 7: 'JPEG', + 8: 'Adobe Deflate', + 9: 'JBIG B&W', + 10: 'JBIG Color', + 32766: 'Next', + 32769: 'Epson ERF Compressed', + 32771: 'CCIRLEW', + 32773: 'PackBits', + 32809: 'Thunderscan', + 32895: 'IT8CTPAD', + 32896: 'IT8LW', + 32897: 'IT8MP', + 32898: 'IT8BL', + 32908: 'PixarFilm', + 32909: 'PixarLog', + 32946: 'Deflate', + 32947: 'DCS', + 34661: 'JBIG', + 34676: 'SGILog', + 34677: 'SGILog24', + 34712: 'JPEG 2000', + 34713: 'Nikon NEF Compressed', + 65000: 'Kodak DCR Compressed', + 65535: 'Pentax PEF Compressed',}), + 0x0201: ('PreviewImageStart', ), + 0x0202: ('PreviewImageLength', ), + 0x0213: ('PreviewYCbCrPositioning', + {1: 'Centered', + 2: 'Co-sited'}), + 0x0010: ('DataDump', ), + } + +MAKERNOTE_NIKON_OLDER_TAGS = { + 0x0003: ('Quality', + {1: 'VGA Basic', + 2: 'VGA Normal', + 3: 'VGA Fine', + 4: 'SXGA Basic', + 5: 'SXGA Normal', + 6: 'SXGA Fine'}), + 0x0004: ('ColorMode', + {1: 'Color', + 2: 'Monochrome'}), + 0x0005: ('ImageAdjustment', + {0: 'Normal', + 1: 'Bright+', + 2: 'Bright-', + 3: 'Contrast+', + 4: 'Contrast-'}), + 0x0006: ('CCDSpeed', + {0: 'ISO 80', + 2: 'ISO 160', + 4: 'ISO 320', + 5: 'ISO 100'}), + 0x0007: ('WhiteBalance', + {0: 'Auto', + 1: 'Preset', + 2: 'Daylight', + 3: 'Incandescent', + 4: 'Fluorescent', + 5: 'Cloudy', + 6: 'Speed Light'}), + } + +# decode Olympus SpecialMode tag in MakerNote +def olympus_special_mode(v): + a={ + 0: 'Normal', + 1: 'Unknown', + 2: 'Fast', + 3: 'Panorama'} + b={ + 0: 'Non-panoramic', + 1: 'Left to right', + 2: 'Right to left', + 3: 'Bottom to top', + 4: 'Top to bottom'} + if v[0] not in a or v[2] not in b: + return v + return '%s - sequence %d - %s' % (a[v[0]], v[1], b[v[2]]) + +MAKERNOTE_OLYMPUS_TAGS={ + # ah HAH! those sneeeeeaky bastids! this is how they get past the fact + # that a JPEG thumbnail is not allowed in an uncompressed TIFF file + 0x0100: ('JPEGThumbnail', ), + 0x0200: ('SpecialMode', olympus_special_mode), + 0x0201: ('JPEGQual', + {1: 'SQ', + 2: 'HQ', + 3: 'SHQ'}), + 0x0202: ('Macro', + {0: 'Normal', + 1: 'Macro', + 2: 'SuperMacro'}), + 0x0203: ('BWMode', + {0: 'Off', + 1: 'On'}), + 0x0204: ('DigitalZoom', ), + 0x0205: ('FocalPlaneDiagonal', ), + 0x0206: ('LensDistortionParams', ), + 0x0207: ('SoftwareRelease', ), + 0x0208: ('PictureInfo', ), + 0x0209: ('CameraID', make_string), # print as string + 0x0F00: ('DataDump', ), + 0x0300: ('PreCaptureFrames', ), + 0x0404: ('SerialNumber', ), + 0x1000: ('ShutterSpeedValue', ), + 0x1001: ('ISOValue', ), + 0x1002: ('ApertureValue', ), + 0x1003: ('BrightnessValue', ), + 0x1004: ('FlashMode', ), + 0x1004: ('FlashMode', + {2: 'On', + 3: 'Off'}), + 0x1005: ('FlashDevice', + {0: 'None', + 1: 'Internal', + 4: 'External', + 5: 'Internal + External'}), + 0x1006: ('ExposureCompensation', ), + 0x1007: ('SensorTemperature', ), + 0x1008: ('LensTemperature', ), + 0x100b: ('FocusMode', + {0: 'Auto', + 1: 'Manual'}), + 0x1017: ('RedBalance', ), + 0x1018: ('BlueBalance', ), + 0x101a: ('SerialNumber', ), + 0x1023: ('FlashExposureComp', ), + 0x1026: ('ExternalFlashBounce', + {0: 'No', + 1: 'Yes'}), + 0x1027: ('ExternalFlashZoom', ), + 0x1028: ('ExternalFlashMode', ), + 0x1029: ('Contrast int16u', + {0: 'High', + 1: 'Normal', + 2: 'Low'}), + 0x102a: ('SharpnessFactor', ), + 0x102b: ('ColorControl', ), + 0x102c: ('ValidBits', ), + 0x102d: ('CoringFilter', ), + 0x102e: ('OlympusImageWidth', ), + 0x102f: ('OlympusImageHeight', ), + 0x1034: ('CompressionRatio', ), + 0x1035: ('PreviewImageValid', + {0: 'No', + 1: 'Yes'}), + 0x1036: ('PreviewImageStart', ), + 0x1037: ('PreviewImageLength', ), + 0x1039: ('CCDScanMode', + {0: 'Interlaced', + 1: 'Progressive'}), + 0x103a: ('NoiseReduction', + {0: 'Off', + 1: 'On'}), + 0x103b: ('InfinityLensStep', ), + 0x103c: ('NearLensStep', ), + + # TODO - these need extra definitions + # http://search.cpan.org/src/EXIFTOOL/Image-ExifTool-6.90/html/TagNames/Olympus.html + 0x2010: ('Equipment', ), + 0x2020: ('CameraSettings', ), + 0x2030: ('RawDevelopment', ), + 0x2040: ('ImageProcessing', ), + 0x2050: ('FocusInfo', ), + 0x3000: ('RawInfo ', ), + } + +# 0x2020 CameraSettings +MAKERNOTE_OLYMPUS_TAG_0x2020={ + 0x0100: ('PreviewImageValid', + {0: 'No', + 1: 'Yes'}), + 0x0101: ('PreviewImageStart', ), + 0x0102: ('PreviewImageLength', ), + 0x0200: ('ExposureMode', + {1: 'Manual', + 2: 'Program', + 3: 'Aperture-priority AE', + 4: 'Shutter speed priority AE', + 5: 'Program-shift'}), + 0x0201: ('AELock', + {0: 'Off', + 1: 'On'}), + 0x0202: ('MeteringMode', + {2: 'Center Weighted', + 3: 'Spot', + 5: 'ESP', + 261: 'Pattern+AF', + 515: 'Spot+Highlight control', + 1027: 'Spot+Shadow control'}), + 0x0300: ('MacroMode', + {0: 'Off', + 1: 'On'}), + 0x0301: ('FocusMode', + {0: 'Single AF', + 1: 'Sequential shooting AF', + 2: 'Continuous AF', + 3: 'Multi AF', + 10: 'MF'}), + 0x0302: ('FocusProcess', + {0: 'AF Not Used', + 1: 'AF Used'}), + 0x0303: ('AFSearch', + {0: 'Not Ready', + 1: 'Ready'}), + 0x0304: ('AFAreas', ), + 0x0401: ('FlashExposureCompensation', ), + 0x0500: ('WhiteBalance2', + {0: 'Auto', + 16: '7500K (Fine Weather with Shade)', + 17: '6000K (Cloudy)', + 18: '5300K (Fine Weather)', + 20: '3000K (Tungsten light)', + 21: '3600K (Tungsten light-like)', + 33: '6600K (Daylight fluorescent)', + 34: '4500K (Neutral white fluorescent)', + 35: '4000K (Cool white fluorescent)', + 48: '3600K (Tungsten light-like)', + 256: 'Custom WB 1', + 257: 'Custom WB 2', + 258: 'Custom WB 3', + 259: 'Custom WB 4', + 512: 'Custom WB 5400K', + 513: 'Custom WB 2900K', + 514: 'Custom WB 8000K', }), + 0x0501: ('WhiteBalanceTemperature', ), + 0x0502: ('WhiteBalanceBracket', ), + 0x0503: ('CustomSaturation', ), # (3 numbers: 1. CS Value, 2. Min, 3. Max) + 0x0504: ('ModifiedSaturation', + {0: 'Off', + 1: 'CM1 (Red Enhance)', + 2: 'CM2 (Green Enhance)', + 3: 'CM3 (Blue Enhance)', + 4: 'CM4 (Skin Tones)'}), + 0x0505: ('ContrastSetting', ), # (3 numbers: 1. Contrast, 2. Min, 3. Max) + 0x0506: ('SharpnessSetting', ), # (3 numbers: 1. Sharpness, 2. Min, 3. Max) + 0x0507: ('ColorSpace', + {0: 'sRGB', + 1: 'Adobe RGB', + 2: 'Pro Photo RGB'}), + 0x0509: ('SceneMode', + {0: 'Standard', + 6: 'Auto', + 7: 'Sport', + 8: 'Portrait', + 9: 'Landscape+Portrait', + 10: 'Landscape', + 11: 'Night scene', + 13: 'Panorama', + 16: 'Landscape+Portrait', + 17: 'Night+Portrait', + 19: 'Fireworks', + 20: 'Sunset', + 22: 'Macro', + 25: 'Documents', + 26: 'Museum', + 28: 'Beach&Snow', + 30: 'Candle', + 35: 'Underwater Wide1', + 36: 'Underwater Macro', + 39: 'High Key', + 40: 'Digital Image Stabilization', + 44: 'Underwater Wide2', + 45: 'Low Key', + 46: 'Children', + 48: 'Nature Macro'}), + 0x050a: ('NoiseReduction', + {0: 'Off', + 1: 'Noise Reduction', + 2: 'Noise Filter', + 3: 'Noise Reduction + Noise Filter', + 4: 'Noise Filter (ISO Boost)', + 5: 'Noise Reduction + Noise Filter (ISO Boost)'}), + 0x050b: ('DistortionCorrection', + {0: 'Off', + 1: 'On'}), + 0x050c: ('ShadingCompensation', + {0: 'Off', + 1: 'On'}), + 0x050d: ('CompressionFactor', ), + 0x050f: ('Gradation', + {'-1 -1 1': 'Low Key', + '0 -1 1': 'Normal', + '1 -1 1': 'High Key'}), + 0x0520: ('PictureMode', + {1: 'Vivid', + 2: 'Natural', + 3: 'Muted', + 256: 'Monotone', + 512: 'Sepia'}), + 0x0521: ('PictureModeSaturation', ), + 0x0522: ('PictureModeHue?', ), + 0x0523: ('PictureModeContrast', ), + 0x0524: ('PictureModeSharpness', ), + 0x0525: ('PictureModeBWFilter', + {0: 'n/a', + 1: 'Neutral', + 2: 'Yellow', + 3: 'Orange', + 4: 'Red', + 5: 'Green'}), + 0x0526: ('PictureModeTone', + {0: 'n/a', + 1: 'Neutral', + 2: 'Sepia', + 3: 'Blue', + 4: 'Purple', + 5: 'Green'}), + 0x0600: ('Sequence', ), # 2 or 3 numbers: 1. Mode, 2. Shot number, 3. Mode bits + 0x0601: ('PanoramaMode', ), # (2 numbers: 1. Mode, 2. Shot number) + 0x0603: ('ImageQuality2', + {1: 'SQ', + 2: 'HQ', + 3: 'SHQ', + 4: 'RAW'}), + 0x0901: ('ManometerReading', ), + } + + +MAKERNOTE_CASIO_TAGS={ + 0x0001: ('RecordingMode', + {1: 'Single Shutter', + 2: 'Panorama', + 3: 'Night Scene', + 4: 'Portrait', + 5: 'Landscape'}), + 0x0002: ('Quality', + {1: 'Economy', + 2: 'Normal', + 3: 'Fine'}), + 0x0003: ('FocusingMode', + {2: 'Macro', + 3: 'Auto Focus', + 4: 'Manual Focus', + 5: 'Infinity'}), + 0x0004: ('FlashMode', + {1: 'Auto', + 2: 'On', + 3: 'Off', + 4: 'Red Eye Reduction'}), + 0x0005: ('FlashIntensity', + {11: 'Weak', + 13: 'Normal', + 15: 'Strong'}), + 0x0006: ('Object Distance', ), + 0x0007: ('WhiteBalance', + {1: 'Auto', + 2: 'Tungsten', + 3: 'Daylight', + 4: 'Fluorescent', + 5: 'Shade', + 129: 'Manual'}), + 0x000B: ('Sharpness', + {0: 'Normal', + 1: 'Soft', + 2: 'Hard'}), + 0x000C: ('Contrast', + {0: 'Normal', + 1: 'Low', + 2: 'High'}), + 0x000D: ('Saturation', + {0: 'Normal', + 1: 'Low', + 2: 'High'}), + 0x0014: ('CCDSpeed', + {64: 'Normal', + 80: 'Normal', + 100: 'High', + 125: '+1.0', + 244: '+3.0', + 250: '+2.0'}), + } + +MAKERNOTE_FUJIFILM_TAGS={ + 0x0000: ('NoteVersion', make_string), + 0x1000: ('Quality', ), + 0x1001: ('Sharpness', + {1: 'Soft', + 2: 'Soft', + 3: 'Normal', + 4: 'Hard', + 5: 'Hard'}), + 0x1002: ('WhiteBalance', + {0: 'Auto', + 256: 'Daylight', + 512: 'Cloudy', + 768: 'DaylightColor-Fluorescent', + 769: 'DaywhiteColor-Fluorescent', + 770: 'White-Fluorescent', + 1024: 'Incandescent', + 3840: 'Custom'}), + 0x1003: ('Color', + {0: 'Normal', + 256: 'High', + 512: 'Low'}), + 0x1004: ('Tone', + {0: 'Normal', + 256: 'High', + 512: 'Low'}), + 0x1010: ('FlashMode', + {0: 'Auto', + 1: 'On', + 2: 'Off', + 3: 'Red Eye Reduction'}), + 0x1011: ('FlashStrength', ), + 0x1020: ('Macro', + {0: 'Off', + 1: 'On'}), + 0x1021: ('FocusMode', + {0: 'Auto', + 1: 'Manual'}), + 0x1030: ('SlowSync', + {0: 'Off', + 1: 'On'}), + 0x1031: ('PictureMode', + {0: 'Auto', + 1: 'Portrait', + 2: 'Landscape', + 4: 'Sports', + 5: 'Night', + 6: 'Program AE', + 256: 'Aperture Priority AE', + 512: 'Shutter Priority AE', + 768: 'Manual Exposure'}), + 0x1100: ('MotorOrBracket', + {0: 'Off', + 1: 'On'}), + 0x1300: ('BlurWarning', + {0: 'Off', + 1: 'On'}), + 0x1301: ('FocusWarning', + {0: 'Off', + 1: 'On'}), + 0x1302: ('AEWarning', + {0: 'Off', + 1: 'On'}), + } + +MAKERNOTE_CANON_TAGS = { + 0x0006: ('ImageType', ), + 0x0007: ('FirmwareVersion', ), + 0x0008: ('ImageNumber', ), + 0x0009: ('OwnerName', ), + } + +# this is in element offset, name, optional value dictionary format +MAKERNOTE_CANON_TAG_0x001 = { + 1: ('Macromode', + {1: 'Macro', + 2: 'Normal'}), + 2: ('SelfTimer', ), + 3: ('Quality', + {2: 'Normal', + 3: 'Fine', + 5: 'Superfine'}), + 4: ('FlashMode', + {0: 'Flash Not Fired', + 1: 'Auto', + 2: 'On', + 3: 'Red-Eye Reduction', + 4: 'Slow Synchro', + 5: 'Auto + Red-Eye Reduction', + 6: 'On + Red-Eye Reduction', + 16: 'external flash'}), + 5: ('ContinuousDriveMode', + {0: 'Single Or Timer', + 1: 'Continuous'}), + 7: ('FocusMode', + {0: 'One-Shot', + 1: 'AI Servo', + 2: 'AI Focus', + 3: 'MF', + 4: 'Single', + 5: 'Continuous', + 6: 'MF'}), + 10: ('ImageSize', + {0: 'Large', + 1: 'Medium', + 2: 'Small'}), + 11: ('EasyShootingMode', + {0: 'Full Auto', + 1: 'Manual', + 2: 'Landscape', + 3: 'Fast Shutter', + 4: 'Slow Shutter', + 5: 'Night', + 6: 'B&W', + 7: 'Sepia', + 8: 'Portrait', + 9: 'Sports', + 10: 'Macro/Close-Up', + 11: 'Pan Focus'}), + 12: ('DigitalZoom', + {0: 'None', + 1: '2x', + 2: '4x'}), + 13: ('Contrast', + {0xFFFF: 'Low', + 0: 'Normal', + 1: 'High'}), + 14: ('Saturation', + {0xFFFF: 'Low', + 0: 'Normal', + 1: 'High'}), + 15: ('Sharpness', + {0xFFFF: 'Low', + 0: 'Normal', + 1: 'High'}), + 16: ('ISO', + {0: 'See ISOSpeedRatings Tag', + 15: 'Auto', + 16: '50', + 17: '100', + 18: '200', + 19: '400'}), + 17: ('MeteringMode', + {3: 'Evaluative', + 4: 'Partial', + 5: 'Center-weighted'}), + 18: ('FocusType', + {0: 'Manual', + 1: 'Auto', + 3: 'Close-Up (Macro)', + 8: 'Locked (Pan Mode)'}), + 19: ('AFPointSelected', + {0x3000: 'None (MF)', + 0x3001: 'Auto-Selected', + 0x3002: 'Right', + 0x3003: 'Center', + 0x3004: 'Left'}), + 20: ('ExposureMode', + {0: 'Easy Shooting', + 1: 'Program', + 2: 'Tv-priority', + 3: 'Av-priority', + 4: 'Manual', + 5: 'A-DEP'}), + 23: ('LongFocalLengthOfLensInFocalUnits', ), + 24: ('ShortFocalLengthOfLensInFocalUnits', ), + 25: ('FocalUnitsPerMM', ), + 28: ('FlashActivity', + {0: 'Did Not Fire', + 1: 'Fired'}), + 29: ('FlashDetails', + {14: 'External E-TTL', + 13: 'Internal Flash', + 11: 'FP Sync Used', + 7: '2nd("Rear")-Curtain Sync Used', + 4: 'FP Sync Enabled'}), + 32: ('FocusMode', + {0: 'Single', + 1: 'Continuous'}), + } + +MAKERNOTE_CANON_TAG_0x004 = { + 7: ('WhiteBalance', + {0: 'Auto', + 1: 'Sunny', + 2: 'Cloudy', + 3: 'Tungsten', + 4: 'Fluorescent', + 5: 'Flash', + 6: 'Custom'}), + 9: ('SequenceNumber', ), + 14: ('AFPointUsed', ), + 15: ('FlashBias', + {0xFFC0: '-2 EV', + 0xFFCC: '-1.67 EV', + 0xFFD0: '-1.50 EV', + 0xFFD4: '-1.33 EV', + 0xFFE0: '-1 EV', + 0xFFEC: '-0.67 EV', + 0xFFF0: '-0.50 EV', + 0xFFF4: '-0.33 EV', + 0x0000: '0 EV', + 0x000C: '0.33 EV', + 0x0010: '0.50 EV', + 0x0014: '0.67 EV', + 0x0020: '1 EV', + 0x002C: '1.33 EV', + 0x0030: '1.50 EV', + 0x0034: '1.67 EV', + 0x0040: '2 EV'}), + 19: ('SubjectDistance', ), + } + +# extract multibyte integer in Motorola format (little endian) +def s2n_motorola(str): + x = 0 + for c in str: + x = (x << 8) | ord(c) + return x + +# extract multibyte integer in Intel format (big endian) +def s2n_intel(str): + x = 0 + y = 0L + for c in str: + x = x | (ord(c) << y) + y = y + 8 + return x + +# ratio object that eventually will be able to reduce itself to lowest +# common denominator for printing +def gcd(a, b): + if b == 0: + return a + else: + return gcd(b, a % b) + +class Ratio: + def __init__(self, num, den): + self.num = num + self.den = den + + def __repr__(self): + self.reduce() + if self.den == 1: + return str(self.num) + return '%d/%d' % (self.num, self.den) + + def reduce(self): + div = gcd(self.num, self.den) + if div > 1: + self.num = self.num / div + self.den = self.den / div + +# for ease of dealing with tags +class IFD_Tag: + def __init__(self, printable, tag, field_type, values, field_offset, + field_length): + # printable version of data + self.printable = printable + # tag ID number + self.tag = tag + # field type as index into FIELD_TYPES + self.field_type = field_type + # offset of start of field in bytes from beginning of IFD + self.field_offset = field_offset + # length of data field in bytes + self.field_length = field_length + # either a string or array of data items + self.values = values + + def __str__(self): + return self.printable + + def __repr__(self): + return '(0x%04X) %s=%s @ %d' % (self.tag, + FIELD_TYPES[self.field_type][2], + self.printable, + self.field_offset) + +# class that handles an EXIF header +class EXIF_header: + def __init__(self, file, endian, offset, fake_exif, strict, debug=0): + self.file = file + self.endian = endian + self.offset = offset + self.fake_exif = fake_exif + self.strict = strict + self.debug = debug + self.tags = {} + + # convert slice to integer, based on sign and endian flags + # usually this offset is assumed to be relative to the beginning of the + # start of the EXIF information. For some cameras that use relative tags, + # this offset may be relative to some other starting point. + def s2n(self, offset, length, signed=0): + self.file.seek(self.offset+offset) + slice=self.file.read(length) + if self.endian == 'I': + val=s2n_intel(slice) + else: + val=s2n_motorola(slice) + # Sign extension ? + if signed: + msb=1L << (8*length-1) + if val & msb: + val=val-(msb << 1) + return val + + # convert offset to string + def n2s(self, offset, length): + s = '' + for dummy in range(length): + if self.endian == 'I': + s = s + chr(offset & 0xFF) + else: + s = chr(offset & 0xFF) + s + offset = offset >> 8 + return s + + # return first IFD + def first_IFD(self): + return self.s2n(4, 4) + + # return pointer to next IFD + def next_IFD(self, ifd): + entries=self.s2n(ifd, 2) + return self.s2n(ifd+2+12*entries, 4) + + # return list of IFDs in header + def list_IFDs(self): + i=self.first_IFD() + a=[] + while i: + a.append(i) + i=self.next_IFD(i) + return a + + # return list of entries in this IFD + def dump_IFD(self, ifd, ifd_name, dict=EXIF_TAGS, relative=0, stop_tag='UNDEF'): + entries=self.s2n(ifd, 2) + for i in range(entries): + # entry is index of start of this IFD in the file + entry = ifd + 2 + 12 * i + tag = self.s2n(entry, 2) + + # get tag name early to avoid errors, help debug + tag_entry = dict.get(tag) + if tag_entry: + tag_name = tag_entry[0] + else: + tag_name = 'Tag 0x%04X' % tag + + # ignore certain tags for faster processing + if not (not detailed and tag in IGNORE_TAGS): + field_type = self.s2n(entry + 2, 2) + + # unknown field type + if not 0 < field_type < len(FIELD_TYPES): + if not self.strict: + continue + else: + raise ValueError('unknown type %d in tag 0x%04X' % (field_type, tag)) + + typelen = FIELD_TYPES[field_type][0] + count = self.s2n(entry + 4, 4) + # Adjust for tag id/type/count (2+2+4 bytes) + # Now we point at either the data or the 2nd level offset + offset = entry + 8 + + # If the value fits in 4 bytes, it is inlined, else we + # need to jump ahead again. + if count * typelen > 4: + # offset is not the value; it's a pointer to the value + # if relative we set things up so s2n will seek to the right + # place when it adds self.offset. Note that this 'relative' + # is for the Nikon type 3 makernote. Other cameras may use + # other relative offsets, which would have to be computed here + # slightly differently. + if relative: + tmp_offset = self.s2n(offset, 4) + offset = tmp_offset + ifd - 8 + if self.fake_exif: + offset = offset + 18 + else: + offset = self.s2n(offset, 4) + + field_offset = offset + if field_type == 2: + # special case: null-terminated ASCII string + # XXX investigate + # sometimes gets too big to fit in int value + if count != 0 and count < (2**31): + self.file.seek(self.offset + offset) + values = self.file.read(count) + #print values + # Drop any garbage after a null. + values = values.split('\x00', 1)[0] + else: + values = '' + else: + values = [] + signed = (field_type in [6, 8, 9, 10]) + + # XXX investigate + # some entries get too big to handle could be malformed + # file or problem with self.s2n + if count < 1000: + for dummy in range(count): + if field_type in (5, 10): + # a ratio + value = Ratio(self.s2n(offset, 4, signed), + self.s2n(offset + 4, 4, signed)) + else: + value = self.s2n(offset, typelen, signed) + values.append(value) + offset = offset + typelen + # The test above causes problems with tags that are + # supposed to have long values! Fix up one important case. + elif tag_name == 'MakerNote' : + for dummy in range(count): + value = self.s2n(offset, typelen, signed) + values.append(value) + offset = offset + typelen + #else : + # print "Warning: dropping large tag:", tag, tag_name + + # now 'values' is either a string or an array + if count == 1 and field_type != 2: + printable=str(values[0]) + elif count > 50 and len(values) > 20 : + printable=str( values[0:20] )[0:-1] + ", ... ]" + else: + printable=str(values) + + # compute printable version of values + if tag_entry: + if len(tag_entry) != 1: + # optional 2nd tag element is present + if callable(tag_entry[1]): + # call mapping function + printable = tag_entry[1](values) + else: + printable = '' + for i in values: + # use lookup table for this tag + printable += tag_entry[1].get(i, repr(i)) + + self.tags[ifd_name + ' ' + tag_name] = IFD_Tag(printable, tag, + field_type, + values, field_offset, + count * typelen) + if self.debug: + print ' debug: %s: %s' % (tag_name, + repr(self.tags[ifd_name + ' ' + tag_name])) + + if tag_name == stop_tag: + break + + # extract uncompressed TIFF thumbnail (like pulling teeth) + # we take advantage of the pre-existing layout in the thumbnail IFD as + # much as possible + def extract_TIFF_thumbnail(self, thumb_ifd): + entries = self.s2n(thumb_ifd, 2) + # this is header plus offset to IFD ... + if self.endian == 'M': + tiff = 'MM\x00*\x00\x00\x00\x08' + else: + tiff = 'II*\x00\x08\x00\x00\x00' + # ... plus thumbnail IFD data plus a null "next IFD" pointer + self.file.seek(self.offset+thumb_ifd) + tiff += self.file.read(entries*12+2)+'\x00\x00\x00\x00' + + # fix up large value offset pointers into data area + for i in range(entries): + entry = thumb_ifd + 2 + 12 * i + tag = self.s2n(entry, 2) + field_type = self.s2n(entry+2, 2) + typelen = FIELD_TYPES[field_type][0] + count = self.s2n(entry+4, 4) + oldoff = self.s2n(entry+8, 4) + # start of the 4-byte pointer area in entry + ptr = i * 12 + 18 + # remember strip offsets location + if tag == 0x0111: + strip_off = ptr + strip_len = count * typelen + # is it in the data area? + if count * typelen > 4: + # update offset pointer (nasty "strings are immutable" crap) + # should be able to say "tiff[ptr:ptr+4]=newoff" + newoff = len(tiff) + tiff = tiff[:ptr] + self.n2s(newoff, 4) + tiff[ptr+4:] + # remember strip offsets location + if tag == 0x0111: + strip_off = newoff + strip_len = 4 + # get original data and store it + self.file.seek(self.offset + oldoff) + tiff += self.file.read(count * typelen) + + # add pixel strips and update strip offset info + old_offsets = self.tags['Thumbnail StripOffsets'].values + old_counts = self.tags['Thumbnail StripByteCounts'].values + for i in range(len(old_offsets)): + # update offset pointer (more nasty "strings are immutable" crap) + offset = self.n2s(len(tiff), strip_len) + tiff = tiff[:strip_off] + offset + tiff[strip_off + strip_len:] + strip_off += strip_len + # add pixel strip to end + self.file.seek(self.offset + old_offsets[i]) + tiff += self.file.read(old_counts[i]) + + self.tags['TIFFThumbnail'] = tiff + + # decode all the camera-specific MakerNote formats + + # Note is the data that comprises this MakerNote. The MakerNote will + # likely have pointers in it that point to other parts of the file. We'll + # use self.offset as the starting point for most of those pointers, since + # they are relative to the beginning of the file. + # + # If the MakerNote is in a newer format, it may use relative addressing + # within the MakerNote. In that case we'll use relative addresses for the + # pointers. + # + # As an aside: it's not just to be annoying that the manufacturers use + # relative offsets. It's so that if the makernote has to be moved by the + # picture software all of the offsets don't have to be adjusted. Overall, + # this is probably the right strategy for makernotes, though the spec is + # ambiguous. (The spec does not appear to imagine that makernotes would + # follow EXIF format internally. Once they did, it's ambiguous whether + # the offsets should be from the header at the start of all the EXIF info, + # or from the header at the start of the makernote.) + def decode_maker_note(self): + note = self.tags['EXIF MakerNote'] + + # Some apps use MakerNote tags but do not use a format for which we + # have a description, so just do a raw dump for these. + #if self.tags.has_key('Image Make'): + make = self.tags['Image Make'].printable + #else: + # make = '' + + # model = self.tags['Image Model'].printable # unused + + # Nikon + # The maker note usually starts with the word Nikon, followed by the + # type of the makernote (1 or 2, as a short). If the word Nikon is + # not at the start of the makernote, it's probably type 2, since some + # cameras work that way. + if 'NIKON' in make: + if note.values[0:7] == [78, 105, 107, 111, 110, 0, 1]: + if self.debug: + print "Looks like a type 1 Nikon MakerNote." + self.dump_IFD(note.field_offset+8, 'MakerNote', + dict=MAKERNOTE_NIKON_OLDER_TAGS) + elif note.values[0:7] == [78, 105, 107, 111, 110, 0, 2]: + if self.debug: + print "Looks like a labeled type 2 Nikon MakerNote" + if note.values[12:14] != [0, 42] and note.values[12:14] != [42L, 0L]: + raise ValueError("Missing marker tag '42' in MakerNote.") + # skip the Makernote label and the TIFF header + self.dump_IFD(note.field_offset+10+8, 'MakerNote', + dict=MAKERNOTE_NIKON_NEWER_TAGS, relative=1) + else: + # E99x or D1 + if self.debug: + print "Looks like an unlabeled type 2 Nikon MakerNote" + self.dump_IFD(note.field_offset, 'MakerNote', + dict=MAKERNOTE_NIKON_NEWER_TAGS) + return + + # Olympus + if make.startswith('OLYMPUS'): + self.dump_IFD(note.field_offset+8, 'MakerNote', + dict=MAKERNOTE_OLYMPUS_TAGS) + # XXX TODO + #for i in (('MakerNote Tag 0x2020', MAKERNOTE_OLYMPUS_TAG_0x2020),): + # self.decode_olympus_tag(self.tags[i[0]].values, i[1]) + #return + + # Casio + if 'CASIO' in make or 'Casio' in make: + self.dump_IFD(note.field_offset, 'MakerNote', + dict=MAKERNOTE_CASIO_TAGS) + return + + # Fujifilm + if make == 'FUJIFILM': + # bug: everything else is "Motorola" endian, but the MakerNote + # is "Intel" endian + endian = self.endian + self.endian = 'I' + # bug: IFD offsets are from beginning of MakerNote, not + # beginning of file header + offset = self.offset + self.offset += note.field_offset + # process note with bogus values (note is actually at offset 12) + self.dump_IFD(12, 'MakerNote', dict=MAKERNOTE_FUJIFILM_TAGS) + # reset to correct values + self.endian = endian + self.offset = offset + return + + # Canon + if make == 'Canon': + self.dump_IFD(note.field_offset, 'MakerNote', + dict=MAKERNOTE_CANON_TAGS) + for i in (('MakerNote Tag 0x0001', MAKERNOTE_CANON_TAG_0x001), + ('MakerNote Tag 0x0004', MAKERNOTE_CANON_TAG_0x004)): + self.canon_decode_tag(self.tags[i[0]].values, i[1]) + return + + + # XXX TODO decode Olympus MakerNote tag based on offset within tag + def olympus_decode_tag(self, value, dict): + pass + + # decode Canon MakerNote tag based on offset within tag + # see http://www.burren.cx/david/canon.html by David Burren + def canon_decode_tag(self, value, dict): + for i in range(1, len(value)): + x=dict.get(i, ('Unknown', )) + if self.debug: + print i, x + name=x[0] + if len(x) > 1: + val=x[1].get(value[i], 'Unknown') + else: + val=value[i] + # it's not a real IFD Tag but we fake one to make everybody + # happy. this will have a "proprietary" type + self.tags['MakerNote '+name]=IFD_Tag(str(val), None, 0, None, + None, None) + +# process an image file (expects an open file object) +# this is the function that has to deal with all the arbitrary nasty bits +# of the EXIF standard +def process_file(f, stop_tag='UNDEF', details=True, strict=False, debug=False): + # yah it's cheesy... + global detailed + detailed = details + + # by default do not fake an EXIF beginning + fake_exif = 0 + + # determine whether it's a JPEG or TIFF + data = f.read(12) + if data[0:4] in ['II*\x00', 'MM\x00*']: + # it's a TIFF file + f.seek(0) + endian = f.read(1) + f.read(1) + offset = 0 + elif data[0:2] == '\xFF\xD8': + # it's a JPEG file + while data[2] == '\xFF' and data[6:10] in ('JFIF', 'JFXX', 'OLYM', 'Phot'): + length = ord(data[4])*256+ord(data[5]) + f.read(length-8) + # fake an EXIF beginning of file + data = '\xFF\x00'+f.read(10) + fake_exif = 1 + if data[2] == '\xFF' and data[6:10] == 'Exif': + # detected EXIF header + offset = f.tell() + endian = f.read(1) + else: + # no EXIF information + return {} + else: + # file format not recognized + return {} + + # deal with the EXIF info we found + if debug: + print {'I': 'Intel', 'M': 'Motorola'}[endian], 'format' + hdr = EXIF_header(f, endian, offset, fake_exif, strict, debug) + ifd_list = hdr.list_IFDs() + ctr = 0 + for i in ifd_list: + if ctr == 0: + IFD_name = 'Image' + elif ctr == 1: + IFD_name = 'Thumbnail' + thumb_ifd = i + else: + IFD_name = 'IFD %d' % ctr + if debug: + print ' IFD %d (%s) at offset %d:' % (ctr, IFD_name, i) + hdr.dump_IFD(i, IFD_name, stop_tag=stop_tag) + # EXIF IFD + exif_off = hdr.tags.get(IFD_name+' ExifOffset') + if exif_off: + if debug: + print ' EXIF SubIFD at offset %d:' % exif_off.values[0] + hdr.dump_IFD(exif_off.values[0], 'EXIF', stop_tag=stop_tag) + # Interoperability IFD contained in EXIF IFD + intr_off = hdr.tags.get('EXIF SubIFD InteroperabilityOffset') + if intr_off: + if debug: + print ' EXIF Interoperability SubSubIFD at offset %d:' \ + % intr_off.values[0] + hdr.dump_IFD(intr_off.values[0], 'EXIF Interoperability', + dict=INTR_TAGS, stop_tag=stop_tag) + # GPS IFD + gps_off = hdr.tags.get(IFD_name+' GPSInfo') + if gps_off: + if debug: + print ' GPS SubIFD at offset %d:' % gps_off.values[0] + hdr.dump_IFD(gps_off.values[0], 'GPS', dict=GPS_TAGS, stop_tag=stop_tag) + ctr += 1 + + # extract uncompressed TIFF thumbnail + thumb = hdr.tags.get('Thumbnail Compression') + if thumb and thumb.printable == 'Uncompressed TIFF': + hdr.extract_TIFF_thumbnail(thumb_ifd) + + # JPEG thumbnail (thankfully the JPEG data is stored as a unit) + thumb_off = hdr.tags.get('Thumbnail JPEGInterchangeFormat') + if thumb_off: + f.seek(offset+thumb_off.values[0]) + size = hdr.tags['Thumbnail JPEGInterchangeFormatLength'].values[0] + hdr.tags['JPEGThumbnail'] = f.read(size) + + # deal with MakerNote contained in EXIF IFD + # (Some apps use MakerNote tags but do not use a format for which we + # have a description, do not process these). + if 'EXIF MakerNote' in hdr.tags and 'Image Make' in hdr.tags and detailed: + hdr.decode_maker_note() + + # Sometimes in a TIFF file, a JPEG thumbnail is hidden in the MakerNote + # since it's not allowed in a uncompressed TIFF IFD + if 'JPEGThumbnail' not in hdr.tags: + thumb_off=hdr.tags.get('MakerNote JPEGThumbnail') + if thumb_off: + f.seek(offset+thumb_off.values[0]) + hdr.tags['JPEGThumbnail']=file.read(thumb_off.field_length) + + return hdr.tags + + +# show command line usage +def usage(exit_status): + msg = 'Usage: EXIF.py [OPTIONS] file1 [file2 ...]\n' + msg += 'Extract EXIF information from digital camera image files.\n\nOptions:\n' + msg += '-q --quick Do not process MakerNotes.\n' + msg += '-t TAG --stop-tag TAG Stop processing when this tag is retrieved.\n' + msg += '-s --strict Run in strict mode (stop on errors).\n' + msg += '-d --debug Run in debug mode (display extra info).\n' + print msg + sys.exit(exit_status) + +# library test/debug function (dump given files) +if __name__ == '__main__': + import sys + import getopt + + # parse command line options/arguments + try: + opts, args = getopt.getopt(sys.argv[1:], "hqsdt:v", ["help", "quick", "strict", "debug", "stop-tag="]) + except getopt.GetoptError: + usage(2) + if args == []: + usage(2) + detailed = True + stop_tag = 'UNDEF' + debug = False + strict = False + for o, a in opts: + if o in ("-h", "--help"): + usage(0) + if o in ("-q", "--quick"): + detailed = False + if o in ("-t", "--stop-tag"): + stop_tag = a + if o in ("-s", "--strict"): + strict = True + if o in ("-d", "--debug"): + debug = True + + # output info for each file + for filename in args: + try: + file=open(filename, 'rb') + except: + print "'%s' is unreadable\n"%filename + continue + print filename + ':' + # get the tags + data = process_file(file, stop_tag=stop_tag, details=detailed, strict=strict, debug=debug) + if not data: + print 'No EXIF information found' + continue + + x=data.keys() + x.sort() + for i in x: + if i in ('JPEGThumbnail', 'TIFFThumbnail'): + continue + try: + print ' %s (%s): %s' % \ + (i, FIELD_TYPES[data[i].field_type][2], data[i].printable) + except: + print 'error', i, '"', data[i], '"' + if 'JPEGThumbnail' in data: + print 'File has JPEG thumbnail' + print + diff --git a/mediagoblin/media_types/image/EXIF.py b/mediagoblin/media_types/image/EXIF.py new file mode 120000 index 00000000..82a2fb30 --- /dev/null +++ b/mediagoblin/media_types/image/EXIF.py @@ -0,0 +1 @@ +../../../extlib/exif/EXIF.py \ No newline at end of file From 836df45dbecbaa5c8156dbbdb93c1c23bee44be4 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Tue, 10 Jan 2012 02:53:46 +0100 Subject: [PATCH 1427/2731] Added code for leaflet geolocation map --- mediagoblin/static/js/extlib/leaflet | 1 + mediagoblin/static/js/geolocation-map.js | 29 ++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 120000 mediagoblin/static/js/extlib/leaflet create mode 100644 mediagoblin/static/js/geolocation-map.js diff --git a/mediagoblin/static/js/extlib/leaflet b/mediagoblin/static/js/extlib/leaflet new file mode 120000 index 00000000..2fc302d7 --- /dev/null +++ b/mediagoblin/static/js/extlib/leaflet @@ -0,0 +1 @@ +../../../../extlib/leaflet/dist/ \ No newline at end of file diff --git a/mediagoblin/static/js/geolocation-map.js b/mediagoblin/static/js/geolocation-map.js new file mode 100644 index 00000000..22cbe2f3 --- /dev/null +++ b/mediagoblin/static/js/geolocation-map.js @@ -0,0 +1,29 @@ +$(document).ready(function () { + var longitude = Number( + $('#tile-map #gps-longitude').val()); + var latitude = Number( + $('#tile-map #gps-latitude').val()); + + console.log(longitude, latitude); + + var map = new L.Map('tile-map'); + + var mqtileUrl = 'http://otile{s}.mqcdn.com/tiles/1.0.0/osm/{z}/{x}/{y}.jpg'; + var mqtileAttrib = 'Map data © ' + + String(new Date().getFullYear()) + + ' OpenStreetMap contributors, CC-BY-SA.' + + ' Imaging © ' + + String(new Date().getFullYear()) + + ' MapQuest.'; + var mqtile = new L.TileLayer( + mqtileUrl, + {maxZoom: 18, + attribution: mqtileAttrib, + subdomains: '1234'}); + + var location = new L.LatLng(latitude, longitude); // geographical point (longitude and latitude) + map.setView(location, 13).addLayer(mqtile); + + var marker = new L.Marker(location); + map.addLayer(marker); +}); From e8e444a85e2b16583587ff5a074f0ab1ffbaca85 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Tue, 10 Jan 2012 02:59:07 +0100 Subject: [PATCH 1428/2731] EXIF extraction, geolocation map, image rotation - Images are now rotated based on EXIF image orientation (in case the image isn't flipped on X or Y axis or correctly oriented, then we do nothing) - *Always* create a medium.jpg in image.processing, for the sake of rotation of display image - Extract EXIF and GPS tags from images and insert them into media_data - Geolocation map display added to media.html - EXIF display added, then removed. It is not in this revision, although some of it is (the "EXIF" h4 header). Need to make it presentable, filtering out purely robotical tags, perhaps. --- mediagoblin/media_types/image/processing.py | 161 +++++++++++++++--- .../mediagoblin/user_pages/media.html | 43 +++++ 2 files changed, 185 insertions(+), 19 deletions(-) diff --git a/mediagoblin/media_types/image/processing.py b/mediagoblin/media_types/image/processing.py index cf90388f..9eb8fa16 100644 --- a/mediagoblin/media_types/image/processing.py +++ b/mediagoblin/media_types/image/processing.py @@ -18,14 +18,10 @@ import Image import os from mediagoblin import mg_globals as mgg - from mediagoblin.processing import BadMediaFail, \ create_pub_filepath, THUMB_SIZE, MEDIUM_SIZE - -################################ -# Media processing initial steps -################################ - +from mediagoblin.media_types.image.EXIF import process_file +from mediagoblin.tools.translate import pass_to_ugettext as _ def process_image(entry): """ @@ -46,11 +42,17 @@ def process_image(entry): basename = os.path.split(filename_bits[0])[1] extension = filename_bits[1].lower() + # EXIF extraction + exif_tags = extract_exif(queued_filename) + gps_data = get_gps_data(exif_tags) + try: thumb = Image.open(queued_filename) except IOError: raise BadMediaFail() + thumb = exif_fix_image_orientation(thumb, exif_tags) + thumb.thumbnail(THUMB_SIZE, Image.ANTIALIAS) # Copy the thumb to the conversion subdir, then remotely. @@ -67,23 +69,22 @@ def process_image(entry): # file, a `medium.jpg` files is created and later associated with the media # entry. medium = Image.open(queued_filename) - medium_processed = False + # Fox orientation + medium = exif_fix_image_orientation(medium, exif_tags) if medium.size[0] > MEDIUM_SIZE[0] or medium.size[1] > MEDIUM_SIZE[1]: medium.thumbnail(MEDIUM_SIZE, Image.ANTIALIAS) - medium_filename = 'medium' + extension - medium_filepath = create_pub_filepath(entry, medium_filename) - tmp_medium_filename = os.path.join( - conversions_subdir, medium_filename) + medium_filename = 'medium' + extension + medium_filepath = create_pub_filepath(entry, medium_filename) + tmp_medium_filename = os.path.join( + conversions_subdir, medium_filename) - with file(tmp_medium_filename, 'w') as medium_file: - medium.save(medium_file) + with file(tmp_medium_filename, 'w') as medium_file: + medium.save(medium_file) - mgg.public_store.copy_local_to_storage( - tmp_medium_filename, medium_filepath) - - medium_processed = True + mgg.public_store.copy_local_to_storage( + tmp_medium_filename, medium_filepath) # we have to re-read because unlike PIL, not everything reads # things in string representation :) @@ -97,13 +98,135 @@ def process_image(entry): as original_file: original_file.write(queued_file.read()) + # Remove queued media file from storage and database mgg.queue_store.delete_file(queued_filepath) entry.queued_media_file = [] + + # Insert media file information into database media_files_dict = entry.setdefault('media_files', {}) media_files_dict['thumb'] = thumb_filepath media_files_dict['original'] = original_filepath - if medium_processed: - media_files_dict['medium'] = medium_filepath + media_files_dict['medium'] = medium_filepath + + # Insert exif data into database + media_data = entry.setdefault('media_data', {}) + media_data['exif'] = clean_exif(exif_tags) + media_data['gps'] = gps_data # clean up workbench workbench.destroy_self() + +def exif_fix_image_orientation(im, exif_tags): + """ + Translate any EXIF orientation to raw orientation + + Cons: + - REDUCES IMAGE QUALITY by recompressig it + + Pros: + - Cures my neck pain + """ + # Rotate image + if 'Image Orientation' in exif_tags: + rotation_map = { + 3: 180, + 6: 270, + 8: 90} + orientation = exif_tags['Image Orientation'].values[0] + if orientation in rotation_map.keys(): + im = im.rotate( + rotation_map[orientation]) + + return im + +def extract_exif(filename): + """ + Returns EXIF tags found in file at ``filename`` + """ + exif_tags = {} + + try: + image = open(filename) + exif_tags = process_file(image) + except IOError: + BadMediaFail(_('Could not read the image file.')) + + return exif_tags + +def clean_exif(exif): + # Clean the result from anything the database cannot handle + + # Discard any JPEG thumbnail, for database compatibility + # and that I cannot see a case when we would use it. + # It takes up some space too. + disabled_tags = [ + 'Thumbnail JPEGInterchangeFormatLength', + 'JPEGThumbnail', + 'Thumbnail JPEGInterchangeFormat'] + + clean_exif = {} + + for key, value in exif.items(): + if not key in disabled_tags: + clean_exif[key] = str(value) + + return clean_exif + + +def get_gps_data(exif): + """ + Processes EXIF data returned by EXIF.py + """ + if not 'Image GPSInfo' in exif: + return False + + gps_data = {} + + try: + dms_data = { + 'latitude': exif['GPS GPSLatitude'], + 'longitude': exif['GPS GPSLongitude']} + + for key, dat in dms_data.items(): + gps_data[key] = ( + lambda v: + float(v[0].num) / float(v[0].den) \ + + (float(v[1].num) / float(v[1].den) / 60 )\ + + (float(v[2].num) / float(v[2].den) / (60 * 60)) + )(dat.values) + except KeyError: + pass + + try: + gps_data['direction'] = ( + lambda d: + float(d.num) / float(d.den) + )(exif['GPS GPSImgDirection'].values[0]) + except KeyError: + pass + + try: + gps_data['altitude'] = ( + lambda a: + float(a.num) / float(a.den) + )(exif['GPS GPSAltitude'].values[0]) + except KeyError: + pass + + return gps_data + + +if __name__ == '__main__': + import sys + import pprint + + pp = pprint.PrettyPrinter() + + result = extract_exif(sys.argv[1]) + gps = get_gps_data(result) + + import pdb + pdb.set_trace() + + print pp.pprint( + result) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index cbe26cbf..944d7f6e 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -23,8 +23,16 @@ {% block title %}{{ media.title }} — {{ super() }}{% endblock %} {% block mediagoblin_head %} + + + + {% endblock mediagoblin_head %} {% block mediagoblin_content %} @@ -72,6 +80,21 @@ media= media._id) %} {% trans %}Delete{% endtrans %} {% endif %} + {% if media.media_data.exif %} + {#- + TODO: + - Render GPS data in a human-readable format + +

EXIF

+
{{ media_entry['title'] }}{{ media_entry['created'].strftime("%m-%d-%Y %I:%M %p") }}{{ media_entry.created.strftime("%m-%d-%Y %I:%M %p") }}
{{ media_entry['title'] }}{{ media_entry.title }} {{ media_entry.created.strftime("%m-%d-%Y %I:%M %p") }}
{{ media_entry['title'] }}{{ media_entry.title }} {{ media_entry['created'].strftime("%m-%d-%Y %I:%M %p") }} {{ media_entry.get_fail_exception().general_message }}
+ {% for tag, value in media.media_data.exif.items() %} + + + + + {% endfor %} +
{{ tag }}{{ value }}
#} + {% endif %}

{% if comments %}

@@ -171,6 +194,26 @@ {% include "mediagoblin/utils/tags.html" %} {% endif %} + {% if media.media_data.gps %} +

Map

+
+ {% set gps = media.media_data.gps %} +
+ + +
+

+ + View on + + OpenStreetMap + + +

+
+ {% endif %} {% include "mediagoblin/utils/license.html" %}
{% endblock %} From a020391d908ec685d4fc1b14956d1abec6701a77 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Mon, 16 Jan 2012 03:25:57 +0100 Subject: [PATCH 1429/2731] Removed link to EXIF.py in media_types.image --- mediagoblin/media_types/image/EXIF.py | 1 - 1 file changed, 1 deletion(-) delete mode 120000 mediagoblin/media_types/image/EXIF.py diff --git a/mediagoblin/media_types/image/EXIF.py b/mediagoblin/media_types/image/EXIF.py deleted file mode 120000 index 82a2fb30..00000000 --- a/mediagoblin/media_types/image/EXIF.py +++ /dev/null @@ -1 +0,0 @@ -../../../extlib/exif/EXIF.py \ No newline at end of file From a180ca264e937f7f862c09c30ce3fe7f819ff515 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Mon, 16 Jan 2012 03:45:58 +0100 Subject: [PATCH 1430/2731] EXIF fixes - Moved exif functions from mediagoblin.media_types.image.processing to mediagoblin.tools.exif - Moved EXIF.py link from mediagoblin.media_types to mediagoblin.tools.extlib - Refractored and updated EXIF exctraction and presentation --- mediagoblin/media_types/image/processing.py | 113 +----------- .../mediagoblin/user_pages/media.html | 16 +- mediagoblin/tools/exif.py | 168 ++++++++++++++++++ mediagoblin/tools/extlib/EXIF.py | 1 + mediagoblin/tools/extlib/__init__.py | 0 5 files changed, 187 insertions(+), 111 deletions(-) create mode 100644 mediagoblin/tools/exif.py create mode 120000 mediagoblin/tools/extlib/EXIF.py create mode 100644 mediagoblin/tools/extlib/__init__.py diff --git a/mediagoblin/media_types/image/processing.py b/mediagoblin/media_types/image/processing.py index 9eb8fa16..f669e1a5 100644 --- a/mediagoblin/media_types/image/processing.py +++ b/mediagoblin/media_types/image/processing.py @@ -20,8 +20,8 @@ import os from mediagoblin import mg_globals as mgg from mediagoblin.processing import BadMediaFail, \ create_pub_filepath, THUMB_SIZE, MEDIUM_SIZE -from mediagoblin.media_types.image.EXIF import process_file -from mediagoblin.tools.translate import pass_to_ugettext as _ +from mediagoblin.tools.exif import exif_fix_image_orientation, \ + extract_exif, clean_exif, get_gps_data, get_useful def process_image(entry): """ @@ -110,112 +110,15 @@ def process_image(entry): # Insert exif data into database media_data = entry.setdefault('media_data', {}) - media_data['exif'] = clean_exif(exif_tags) + media_data['exif'] = { + 'clean': clean_exif(exif_tags)} + media_data['exif']['useful'] = get_useful( + media_data['exif']['clean']) media_data['gps'] = gps_data # clean up workbench workbench.destroy_self() -def exif_fix_image_orientation(im, exif_tags): - """ - Translate any EXIF orientation to raw orientation - - Cons: - - REDUCES IMAGE QUALITY by recompressig it - - Pros: - - Cures my neck pain - """ - # Rotate image - if 'Image Orientation' in exif_tags: - rotation_map = { - 3: 180, - 6: 270, - 8: 90} - orientation = exif_tags['Image Orientation'].values[0] - if orientation in rotation_map.keys(): - im = im.rotate( - rotation_map[orientation]) - - return im - -def extract_exif(filename): - """ - Returns EXIF tags found in file at ``filename`` - """ - exif_tags = {} - - try: - image = open(filename) - exif_tags = process_file(image) - except IOError: - BadMediaFail(_('Could not read the image file.')) - - return exif_tags - -def clean_exif(exif): - # Clean the result from anything the database cannot handle - - # Discard any JPEG thumbnail, for database compatibility - # and that I cannot see a case when we would use it. - # It takes up some space too. - disabled_tags = [ - 'Thumbnail JPEGInterchangeFormatLength', - 'JPEGThumbnail', - 'Thumbnail JPEGInterchangeFormat'] - - clean_exif = {} - - for key, value in exif.items(): - if not key in disabled_tags: - clean_exif[key] = str(value) - - return clean_exif - - -def get_gps_data(exif): - """ - Processes EXIF data returned by EXIF.py - """ - if not 'Image GPSInfo' in exif: - return False - - gps_data = {} - - try: - dms_data = { - 'latitude': exif['GPS GPSLatitude'], - 'longitude': exif['GPS GPSLongitude']} - - for key, dat in dms_data.items(): - gps_data[key] = ( - lambda v: - float(v[0].num) / float(v[0].den) \ - + (float(v[1].num) / float(v[1].den) / 60 )\ - + (float(v[2].num) / float(v[2].den) / (60 * 60)) - )(dat.values) - except KeyError: - pass - - try: - gps_data['direction'] = ( - lambda d: - float(d.num) / float(d.den) - )(exif['GPS GPSImgDirection'].values[0]) - except KeyError: - pass - - try: - gps_data['altitude'] = ( - lambda a: - float(a.num) / float(a.den) - )(exif['GPS GPSAltitude'].values[0]) - except KeyError: - pass - - return gps_data - - if __name__ == '__main__': import sys import pprint @@ -224,9 +127,11 @@ if __name__ == '__main__': result = extract_exif(sys.argv[1]) gps = get_gps_data(result) + clean = clean_exif(result) + useful = get_useful(clean) import pdb pdb.set_trace() print pp.pprint( - result) + clean) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 944d7f6e..60fca710 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -80,20 +80,21 @@ media= media._id) %} {% trans %}Delete{% endtrans %} {% endif %} - {% if media.media_data.exif %} + {% if media.media_data.has_key('exif') + and media.media_data.exif.has_key('useful') %} {#- TODO: - Render GPS data in a human-readable format - + #}

EXIF

- {% for tag, value in media.media_data.exif.items() %} + {% for key, tag in media.media_data.exif.useful.items() %} - - + + {% endfor %} -
{{ tag }}{{ value }}{{ key }}{{ tag.printable }}
#} + {% endif %}

{% if comments %} @@ -194,7 +195,8 @@ {% include "mediagoblin/utils/tags.html" %} {% endif %} - {% if media.media_data.gps %} + {% if media.media_data.has_key('gps') + and media.media_data.gps %}

Map

{% set gps = media.media_data.gps %} diff --git a/mediagoblin/tools/exif.py b/mediagoblin/tools/exif.py new file mode 100644 index 00000000..445907ba --- /dev/null +++ b/mediagoblin/tools/exif.py @@ -0,0 +1,168 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +from mediagoblin.tools.extlib.EXIF import process_file, Ratio +from mediagoblin.processing import BadMediaFail +from mediagoblin.tools.translate import pass_to_ugettext as _ + +from collections import OrderedDict + +# A list of tags that should be stored for faster access +USEFUL_TAGS = [ + 'Image Make', + 'Image Model', + 'EXIF FNumber', + 'EXIF Flash', + 'EXIF FocalLength', + 'EXIF ExposureTime', + 'EXIF ApertureValue', + 'EXIF ExposureMode', + 'EXIF ISOSpeedRatings', + 'EXIF UserComment', + ] + +def exif_fix_image_orientation(im, exif_tags): + """ + Translate any EXIF orientation to raw orientation + + Cons: + - REDUCES IMAGE QUALITY by recompressig it + + Pros: + - Cures my neck pain + """ + # Rotate image + if 'Image Orientation' in exif_tags: + rotation_map = { + 3: 180, + 6: 270, + 8: 90} + orientation = exif_tags['Image Orientation'].values[0] + if orientation in rotation_map.keys(): + im = im.rotate( + rotation_map[orientation]) + + return im + +def extract_exif(filename): + """ + Returns EXIF tags found in file at ``filename`` + """ + exif_tags = {} + + try: + image = open(filename) + exif_tags = process_file(image) + except IOError: + raise BadMediaFail(_('Could not read the image file.')) + + return exif_tags + +def clean_exif(exif): + ''' + Clean the result from anyt +hing the database cannot handle + ''' + # Discard any JPEG thumbnail, for database compatibility + # and that I cannot see a case when we would use it. + # It takes up some space too. + disabled_tags = [ + 'Thumbnail JPEGInterchangeFormatLength', + 'JPEGThumbnail', + 'Thumbnail JPEGInterchangeFormat'] + + clean_exif = {} + + for key, value in exif.items(): + if not key in disabled_tags: + clean_exif[key] = _ifd_tag_to_dict(value) + + return clean_exif + +def _ifd_tag_to_dict(tag): + data = { + 'printable': tag.printable, + 'tag': tag.tag, + 'field_type': tag.field_type, + 'field_offset': tag.field_offset, + 'field_length': tag.field_length, + 'values': None} + if type(tag.values) == list: + data['values'] = [] + for val in tag.values: + if isinstance(val, Ratio): + data['values'].append( + _ratio_to_list(val)) + else: + data['values'].append(val) + else: + data['values'] = tag.values + + return data + +def _ratio_to_list(ratio): + return [ratio.num, ratio.den] + +def get_useful(tags): + useful = {} + for key, tag in tags.items(): + if key in USEFUL_TAGS: + useful[key] = tag + + return useful + + +def get_gps_data(tags): + """ + Processes EXIF data returned by EXIF.py + """ + if not 'Image GPSInfo' in tags: + return False + + gps_data = {} + + try: + dms_data = { + 'latitude': tags['GPS GPSLatitude'], + 'longitude': tags['GPS GPSLongitude']} + + for key, dat in dms_data.items(): + gps_data[key] = ( + lambda v: + float(v[0].num) / float(v[0].den) \ + + (float(v[1].num) / float(v[1].den) / 60 )\ + + (float(v[2].num) / float(v[2].den) / (60 * 60)) + )(dat.values) + except KeyError: + pass + + try: + gps_data['direction'] = ( + lambda d: + float(d.num) / float(d.den) + )(tags['GPS GPSImgDirection'].values[0]) + except KeyError: + pass + + try: + gps_data['altitude'] = ( + lambda a: + float(a.num) / float(a.den) + )(tags['GPS GPSAltitude'].values[0]) + except KeyError: + pass + + return gps_data diff --git a/mediagoblin/tools/extlib/EXIF.py b/mediagoblin/tools/extlib/EXIF.py new file mode 120000 index 00000000..82a2fb30 --- /dev/null +++ b/mediagoblin/tools/extlib/EXIF.py @@ -0,0 +1 @@ +../../../extlib/exif/EXIF.py \ No newline at end of file diff --git a/mediagoblin/tools/extlib/__init__.py b/mediagoblin/tools/extlib/__init__.py new file mode 100644 index 00000000..e69de29b From 5907222c0b5b1fb25b93de3b5cf5751de2da3013 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Fri, 20 Jan 2012 02:31:29 +0100 Subject: [PATCH 1431/2731] Added exif_visisble and geolocation_map_visible to config_spec --- mediagoblin/config_spec.ini | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mediagoblin/config_spec.ini b/mediagoblin/config_spec.ini index dc286a27..2d410899 100644 --- a/mediagoblin/config_spec.ini +++ b/mediagoblin/config_spec.ini @@ -53,6 +53,9 @@ csrf_cookie_name = string(default='mediagoblin_csrftoken') # Push stuff push_urls = string_list(default=list()) +exif_visible = boolean(default=False) +geolocation_map_visible = boolean(default=False) + [storage:publicstore] storage_class = string(default="mediagoblin.storage.filestorage:BasicFileStorage") base_dir = string(default="%(here)s/user_dev/media/public") From 6d9ce47f5c90fffdac33c32dfcb9dd5c6fa37b11 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Fri, 20 Jan 2012 10:27:26 +0100 Subject: [PATCH 1432/2731] Moved EXIF to sidebar, added conditions for visibility configuration settings --- .../mediagoblin/user_pages/media.html | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 60fca710..446c9f85 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -80,22 +80,6 @@ media= media._id) %} {% trans %}Delete{% endtrans %} {% endif %} - {% if media.media_data.has_key('exif') - and media.media_data.exif.has_key('useful') %} - {#- - TODO: - - Render GPS data in a human-readable format - #} -

EXIF

- - {% for key, tag in media.media_data.exif.useful.items() %} - - - - - {% endfor %} -
{{ key }}{{ tag.printable }}
- {% endif %}

{% if comments %}

@@ -195,7 +179,10 @@ {% include "mediagoblin/utils/tags.html" %} {% endif %} + {% include "mediagoblin/utils/license.html" %} + {% if media.media_data.has_key('gps') + and app_config['geolocation_map_visible'] and media.media_data.gps %}

Map

@@ -216,6 +203,22 @@

{% endif %} - {% include "mediagoblin/utils/license.html" %} + {% if media.media_data.has_key('exif') + and app_config['exif_visible'] + and media.media_data.exif.has_key('useful') %} + {#- + TODO: + - Render GPS data in a human-readable format + #} +

EXIF

+ + {% for key, tag in media.media_data.exif.useful.items() %} + + + + + {% endfor %} +
{{ key }}{{ tag.printable }}
+ {% endif %}
{% endblock %} From 63bd7c04bdc11cfd6d5805005b4e421f832106bb Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Wed, 25 Jan 2012 23:05:47 +0100 Subject: [PATCH 1433/2731] Acts on feedback from Chris - Added EXIF tests - Removed pdb from image processing "ifmain" - Fixed comment typo in image processing - Removed unused import in tools.exif --- mediagoblin/media_types/image/processing.py | 10 +- mediagoblin/tests/test_exif.py | 189 ++++++++++++++++++++ mediagoblin/tests/test_exif/bad.jpg | 18 ++ mediagoblin/tests/test_exif/empty.jpg | Bin 0 -> 26636 bytes mediagoblin/tests/test_exif/good.jpg | Bin 0 -> 207590 bytes mediagoblin/tests/test_exif/has-gps.jpg | Bin 0 -> 1933121 bytes mediagoblin/tools/exif.py | 11 +- 7 files changed, 217 insertions(+), 11 deletions(-) create mode 100644 mediagoblin/tests/test_exif.py create mode 100644 mediagoblin/tests/test_exif/bad.jpg create mode 100644 mediagoblin/tests/test_exif/empty.jpg create mode 100644 mediagoblin/tests/test_exif/good.jpg create mode 100644 mediagoblin/tests/test_exif/has-gps.jpg diff --git a/mediagoblin/media_types/image/processing.py b/mediagoblin/media_types/image/processing.py index f669e1a5..78f64be0 100644 --- a/mediagoblin/media_types/image/processing.py +++ b/mediagoblin/media_types/image/processing.py @@ -58,10 +58,13 @@ def process_image(entry): # Copy the thumb to the conversion subdir, then remotely. thumb_filename = 'thumbnail' + extension thumb_filepath = create_pub_filepath(entry, thumb_filename) + tmp_thumb_filename = os.path.join( conversions_subdir, thumb_filename) + with file(tmp_thumb_filename, 'w') as thumb_file: thumb.save(thumb_file) + mgg.public_store.copy_local_to_storage( tmp_thumb_filename, thumb_filepath) @@ -69,7 +72,8 @@ def process_image(entry): # file, a `medium.jpg` files is created and later associated with the media # entry. medium = Image.open(queued_filename) - # Fox orientation + + # Fix orientation medium = exif_fix_image_orientation(medium, exif_tags) if medium.size[0] > MEDIUM_SIZE[0] or medium.size[1] > MEDIUM_SIZE[1]: @@ -77,6 +81,7 @@ def process_image(entry): medium_filename = 'medium' + extension medium_filepath = create_pub_filepath(entry, medium_filename) + tmp_medium_filename = os.path.join( conversions_subdir, medium_filename) @@ -130,8 +135,5 @@ if __name__ == '__main__': clean = clean_exif(result) useful = get_useful(clean) - import pdb - pdb.set_trace() - print pp.pprint( clean) diff --git a/mediagoblin/tests/test_exif.py b/mediagoblin/tests/test_exif.py new file mode 100644 index 00000000..9f2219c0 --- /dev/null +++ b/mediagoblin/tests/test_exif.py @@ -0,0 +1,189 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import os +import pkg_resources +import Image + +from mediagoblin.tools.exif import exif_fix_image_orientation, \ + extract_exif, clean_exif, get_gps_data, get_useful + +GOOD_JPG = pkg_resources.resource_filename( + 'mediagoblin.tests', + os.path.join( + 'test_exif', + 'good.jpg')) +EMPTY_JPG = pkg_resources.resource_filename( + 'mediagoblin.tests', + os.path.join( + 'test_exif', + 'empty.jpg')) +BAD_JPG = pkg_resources.resource_filename( + 'mediagoblin.tests', + os.path.join( + 'test_exif', + 'bad.jpg')) +GPS_JPG = pkg_resources.resource_filename( + 'mediagoblin.tests', + os.path.join( + 'test_exif', + 'has-gps.jpg')) + +def test_exif_extraction(): + ''' + Test EXIF extraction from a good image + ''' + result = extract_exif(GOOD_JPG) + clean = clean_exif(result) + useful = get_useful(clean) + gps = get_gps_data(result) + + # Do we have the result? + assert len(result) == 108 + + # Do we have clean data? + assert len(clean) == 105 + + # GPS data? + assert gps == {} + + # Do we have the "useful" tags? + assert useful == { + 'EXIF Flash': { + 'field_type': 3, + 'printable': 'No', + 'field_offset': 380, + 'tag': 37385, + 'values': [0], + 'field_length': 2}, + 'EXIF ExposureTime': { + 'field_type': 5, + 'printable': '1/125', + 'field_offset': 700, + 'tag': 33434, + 'values': [[1, 125]], + 'field_length': 8}, + 'EXIF FocalLength': { + 'field_type': 5, + 'printable': '18', + 'field_offset': 780, + 'tag': 37386, + 'values': [[18, 1]], + 'field_length': 8}, + 'Image Model': { + 'field_type': 2, + 'printable': 'NIKON D80', + 'field_offset': 152, + 'tag': 272, + 'values': 'NIKON D80', + 'field_length': 10}, + 'Image Make': { + 'field_type': 2, + 'printable': 'NIKON CORPORATION', + 'field_offset': 134, + 'tag': 271, + 'values': 'NIKON CORPORATION', + 'field_length': 18}, + 'EXIF ExposureMode': { + 'field_type': 3, + 'printable': 'Manual Exposure', + 'field_offset': 584, + 'tag': 41986, + 'values': [1], + 'field_length': 2}, + 'EXIF ISOSpeedRatings': { + 'field_type': 3, + 'printable': '100', + 'field_offset': 260, + 'tag': 34855, + 'values': [100], + 'field_length': 2}, + 'EXIF FNumber': { + 'field_type': 5, + 'printable': '10', + 'field_offset': 708, + 'tag': 33437, + 'values': [[10, 1]], + 'field_length': 8}, + 'EXIF UserComment': { + 'field_type': 7, + 'printable': 'Joar Wandborg ', + 'field_offset': 26180, + 'tag': 37510, + 'values': [ + 65, 83, 67, 73, 73, 0, 0, 0, 74, 111, 97, 114, 32, 87, + 97, 110, 100, 98, 111, 114, 103, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32], + 'field_length': 44}} + +def test_exif_image_orientation(): + ''' + Test image reorientation based on EXIF data + ''' + result = extract_exif(GOOD_JPG) + + image = exif_fix_image_orientation( + Image.open(GOOD_JPG), + result) + + # Are the dimensions correct? + assert image.size == (428, 640) + + # If this pixel looks right, the rest of the image probably will too. + assert image.getdata()[10000] == (41, 28, 11) + +def test_exif_no_exif(): + ''' + Test an image without exif + ''' + result = extract_exif(EMPTY_JPG) + clean = clean_exif(result) + useful = get_useful(clean) + gps = get_gps_data(result) + + assert result == {} + assert clean == {} + assert gps == {} + assert useful == {} + +def test_exif_bad_image(): + ''' + Test EXIF extraction from a faithful, but bad image + ''' + result = extract_exif(BAD_JPG) + clean = clean_exif(result) + useful = get_useful(clean) + gps = get_gps_data(result) + + assert result == {} + assert clean == {} + assert gps == {} + assert useful == {} + +def test_exif_gps_data(): + ''' + Test extractiion of GPS data + ''' + result = extract_exif(GPS_JPG) + gps = get_gps_data(result) + + assert gps == { + 'latitude': 59.336666666666666, + 'direction': 25.674046740467404, + 'altitude': 37.64365671641791, + 'longitude': 18.016166666666667} + diff --git a/mediagoblin/tests/test_exif/bad.jpg b/mediagoblin/tests/test_exif/bad.jpg new file mode 100644 index 00000000..4cde23cd --- /dev/null +++ b/mediagoblin/tests/test_exif/bad.jpg @@ -0,0 +1,18 @@ +V2UncmUgbm8gc3RyYW5nZXJzIHRvIGxvdmUKWW91IGtub3cgdGhlIHJ1bGVzIGFuZCBzbyBkbyBJ +CkEgZnVsbCBjb21taXRtZW50J3Mgd2hhdCBJJ20gdGhpbmtpbicgb2YKWW91IHdvdWxkbid0IGdl +dCB0aGlzIGZyb20gYW55IG90aGVyIGd1eQpJIGp1c3Qgd2FubmEgdGVsbCB5b3UgaG93IEknbSBm +ZWVsaW4nCkdvdHRhIG1ha2UgeW91IHVuZGVyc3RhbmQKCihDaG9ydXMpCk5ldmVyIGdvbm5hIGdp +dmUgeW91IHVwCk5ldmVyIGdvbm5hIGxldCB5b3UgZG93bgpOZXZlciBnb25uYSBydW4gYXJvdW5k +IGFuZCBkZXNlcnQgeW91Ck5ldmVyIGdvbm5hIG1ha2UgeW91IGNyeQpOZXZlciBnb25uYSBzYXkg +Z29vZGJ5ZQpOZXZlciBnb25uYSB0ZWxsIGEgbGllIGFuZCBodXJ0IHlvdQoKV2UndmUga25vdyBl +YWNoIG90aGVyIGZvciBzbyBsb25nCllvdXIgaGVhcnQncyBiZWVuIGFjaGluJyBidXQgeW91J3Jl +IHRvbyBzaHkgdG8gc2F5IGl0Ckluc2lkZSB3ZSBib3RoIGtub3cgd2hhdCdzIGJlZW4gZ29pbmcg +b24KV2Uga25vdyB0aGUgZ2FtZSBhbmQgd2UncmUgZ29ubmEgcGxheSBpdApBbmQgaWYgeW91IGFz +ayBtZSBob3cgSSdtIGZlZWxpbicKRG9uJ3QgdGVsbCBtZSB5b3UncmUgdG9vIGJsaW5kIHRvIHNl +ZQoKKENob3J1cyB4MikKCihHaXZlIHlvdSB1cCwgZ2l2ZSB5b3UgdXApCk5ldmVyIGdvbm5hIGdp +dmUsIG5ldmVyIGdvbm5hIGdpdmUKKEdpdmUgeW91IHVwKQpOZXZlciBnb25uYSBnaXZlLCBuZXZl +ciBnb25uYSBnaXZlCihHaXZlIHlvdSB1cCkKCldlJ3ZlIGtub3cgZWFjaCBvdGhlciBmb3Igc28g +bG9uZwpZb3VyIGhlYXJ0J3MgYmVlbiBhY2hpbicgYnV0IHlvdSdyZSB0b28gc2h5IHRvIHNheSBp +dApJbnNpZGUgd2UgYm90aCBrbm93IHdoYXQncyBiZWVuIGdvaW5nIG9uCldlIGtub3cgdGhlIGdh +bWUgYW5kIHdlJ3JlIGdvbm5hIHBsYXkgaXQKSSBqdXN0IHdhbm5hIHRlbGwgeW91IGhvdyBJJ20g +ZmVlbGluJwpHb3R0YSBtYWtlIHlvdSB1bmRlcnN0YW5kCgooQ2hvcnVzIHgzKQo= diff --git a/mediagoblin/tests/test_exif/empty.jpg b/mediagoblin/tests/test_exif/empty.jpg new file mode 100644 index 0000000000000000000000000000000000000000..37533af596575ef75c6bd87f72fe05e825b05cbd GIT binary patch literal 26636 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 MH={;^VEw2spUxz!x!h9zBjeQ; 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 KAyEYoAOG2a|I*z6 literal 0 HcmV?d00001 diff --git a/mediagoblin/tests/test_exif/good.jpg b/mediagoblin/tests/test_exif/good.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0ee956feb59e54998a46a71c9f738b0bbf40df3d GIT binary patch literal 207590 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

JQ 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�_hoyc7Fa1Gsl{`#7KiM!hck6f&lJp*$HN5fZ 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

M=-4`)Ql?eP{ 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

=AQ+=ry;)(-Zhoc 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�P{yFbh_ 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Ź)Ou~W+2vcNP22QH&%S>e{b2Ypstcu? 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

y3r1Ot@sJ>hq42v7Yzjp+W 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%0DtU8x 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%0AY@qBc*IL^pk2+ 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%0D`g*dAl`?yu@ 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⋘ZIxk51O6^98!b1{?wNNJemY>sfd5 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�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

{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/utils/exif.html b/mediagoblin/templates/mediagoblin/utils/exif.html new file mode 100644 index 00000000..9962dd65 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/utils/exif.html @@ -0,0 +1,33 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} + +{% block exif_content %} + {% if media.media_data.has_key('exif') + and app_config['exif_visible'] + and media.media_data.exif.has_key('useful') %} +

EXIF

+ + {% for key, tag in media.media_data.exif.useful.items() %} + + + + + {% endfor %} +
{{ key }}{{ tag.printable }}
+ {% endif %} +{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/utils/geolocation_map.html b/mediagoblin/templates/mediagoblin/utils/geolocation_map.html new file mode 100644 index 00000000..ce1edc39 --- /dev/null +++ b/mediagoblin/templates/mediagoblin/utils/geolocation_map.html @@ -0,0 +1,42 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +#} + +{% block geolocation_map %} + {% if media.media_data.has_key('gps') + and app_config['geolocation_map_visible'] + and media.media_data.gps %} +

Map

+
+ {% set gps = media.media_data.gps %} +
+ + +
+

+ + View on + + OpenStreetMap + + +

+
+ {% endif %} +{% endblock %} diff --git a/mediagoblin/templates/mediagoblin/utils/license.html b/mediagoblin/templates/mediagoblin/utils/license.html index 056c356e..5a268e39 100644 --- a/mediagoblin/templates/mediagoblin/utils/license.html +++ b/mediagoblin/templates/mediagoblin/utils/license.html @@ -17,10 +17,12 @@ #} {% block license_content -%} - {% trans %}License:{% endtrans %} - {% if media.license %} - {{ media.get_license_data().abbreviation }} - {% else %} - {% trans %}All rights reserved{% endtrans %} - {% endif %} +

+ {% trans %}License:{% endtrans %} + {% if media.license %} + {{ media.get_license_data().abbreviation }} + {% else %} + {% trans %}All rights reserved{% endtrans %} + {% endif %} +

{% endblock %} From d595374d180afef2f468e75b50331ea8e1e621ed Mon Sep 17 00:00:00 2001 From: Elrond Date: Thu, 26 Jan 2012 21:33:49 +0100 Subject: [PATCH 1435/2731] Packaging improvement by Clint Byrum from Debian/Ubuntu 1) MANIFEST.in missed a bunch of things, especially config_spec.ini. 2) You need to specify include_package_data=True in setup.py to actually activate MANIFEST.in it seems. Thanks go to Clint Byrum! --- MANIFEST.in | 4 ++-- setup.py | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/MANIFEST.in b/MANIFEST.in index b1f93dba..956f44c9 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,5 +1,5 @@ recursive-include mediagoblin/templates *.html -recursive-include mediagoblin/static *.js *.css *.png *.svg +recursive-include mediagoblin/static *.js *.css *.png *.svg *.ico recursive-include mediagoblin/tests *.ini recursive-include docs *.rst *.html - +include mediagoblin/config_spec.ini diff --git a/setup.py b/setup.py index 293f3f03..ca7d4ae2 100644 --- a/setup.py +++ b/setup.py @@ -38,6 +38,7 @@ setup( version=get_version(), packages=find_packages(exclude=['ez_setup', 'examples', 'tests']), zip_safe=False, + include_package_data = True, # scripts and dependencies install_requires=[ 'setuptools', From 10196c681164afe6fde807459befa9252f62e39f Mon Sep 17 00:00:00 2001 From: Elrond Date: Thu, 26 Jan 2012 22:10:46 +0100 Subject: [PATCH 1436/2731] Drop all buildout things virtualenv is working for everyone. No need for the buildout stuff any more. --- bootstrap.py | 260 -------------------------------- buildout.cfg | 19 --- mediagoblin/buildout_recipes.py | 50 ------ 3 files changed, 329 deletions(-) delete mode 100644 bootstrap.py delete mode 100644 buildout.cfg delete mode 100644 mediagoblin/buildout_recipes.py diff --git a/bootstrap.py b/bootstrap.py deleted file mode 100644 index 5f2cb083..00000000 --- a/bootstrap.py +++ /dev/null @@ -1,260 +0,0 @@ -############################################################################## -# -# Copyright (c) 2006 Zope Foundation and Contributors. -# All Rights Reserved. -# -# This software is subject to the provisions of the Zope Public License, -# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. -# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED -# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS -# FOR A PARTICULAR PURPOSE. -# -############################################################################## -"""Bootstrap a buildout-based project - -Simply run this script in a directory containing a buildout.cfg. -The script accepts buildout command-line options, so you can -use the -c option to specify an alternate configuration file. -""" - -import os, shutil, sys, tempfile, textwrap, urllib, urllib2, subprocess -from optparse import OptionParser - -if sys.platform == 'win32': - def quote(c): - if ' ' in c: - return '"%s"' % c # work around spawn lamosity on windows - else: - return c -else: - quote = str - -# See zc.buildout.easy_install._has_broken_dash_S for motivation and comments. -stdout, stderr = subprocess.Popen( - [sys.executable, '-Sc', - 'try:\n' - ' import ConfigParser\n' - 'except ImportError:\n' - ' print 1\n' - 'else:\n' - ' print 0\n'], - stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate() -has_broken_dash_S = bool(int(stdout.strip())) - -# In order to be more robust in the face of system Pythons, we want to -# run without site-packages loaded. This is somewhat tricky, in -# particular because Python 2.6's distutils imports site, so starting -# with the -S flag is not sufficient. However, we'll start with that: -if not has_broken_dash_S and 'site' in sys.modules: - # We will restart with python -S. - args = sys.argv[:] - args[0:0] = [sys.executable, '-S'] - args = map(quote, args) - os.execv(sys.executable, args) -# Now we are running with -S. We'll get the clean sys.path, import site -# because distutils will do it later, and then reset the path and clean -# out any namespace packages from site-packages that might have been -# loaded by .pth files. -clean_path = sys.path[:] -import site -sys.path[:] = clean_path -for k, v in sys.modules.items(): - if k in ('setuptools', 'pkg_resources') or ( - hasattr(v, '__path__') and - len(v.__path__)==1 and - not os.path.exists(os.path.join(v.__path__[0],'__init__.py'))): - # This is a namespace package. Remove it. - sys.modules.pop(k) - -is_jython = sys.platform.startswith('java') - -setuptools_source = 'http://peak.telecommunity.com/dist/ez_setup.py' -distribute_source = 'http://python-distribute.org/distribute_setup.py' - -# parsing arguments -def normalize_to_url(option, opt_str, value, parser): - if value: - if '://' not in value: # It doesn't smell like a URL. - value = 'file://%s' % ( - urllib.pathname2url( - os.path.abspath(os.path.expanduser(value))),) - if opt_str == '--download-base' and not value.endswith('/'): - # Download base needs a trailing slash to make the world happy. - value += '/' - else: - value = None - name = opt_str[2:].replace('-', '_') - setattr(parser.values, name, value) - -usage = '''\ -[DESIRED PYTHON FOR BUILDOUT] bootstrap.py [options] - -Bootstraps a buildout-based project. - -Simply run this script in a directory containing a buildout.cfg, using the -Python that you want bin/buildout to use. - -Note that by using --setup-source and --download-base to point to -local resources, you can keep this script from going over the network. -''' - -parser = OptionParser(usage=usage) -parser.add_option("-v", "--version", dest="version", - help="use a specific zc.buildout version") -parser.add_option("-d", "--distribute", - action="store_true", dest="use_distribute", default=False, - help="Use Distribute rather than Setuptools.") -parser.add_option("--setup-source", action="callback", dest="setup_source", - callback=normalize_to_url, nargs=1, type="string", - help=("Specify a URL or file location for the setup file. " - "If you use Setuptools, this will default to " + - setuptools_source + "; if you use Distribute, this " - "will default to " + distribute_source +".")) -parser.add_option("--download-base", action="callback", dest="download_base", - callback=normalize_to_url, nargs=1, type="string", - help=("Specify a URL or directory for downloading " - "zc.buildout and either Setuptools or Distribute. " - "Defaults to PyPI.")) -parser.add_option("--eggs", - help=("Specify a directory for storing eggs. Defaults to " - "a temporary directory that is deleted when the " - "bootstrap script completes.")) -parser.add_option("-t", "--accept-buildout-test-releases", - dest='accept_buildout_test_releases', - action="store_true", default=False, - help=("Normally, if you do not specify a --version, the " - "bootstrap script and buildout gets the newest " - "*final* versions of zc.buildout and its recipes and " - "extensions for you. If you use this flag, " - "bootstrap and buildout will get the newest releases " - "even if they are alphas or betas.")) -parser.add_option("-c", None, action="store", dest="config_file", - help=("Specify the path to the buildout configuration " - "file to be used.")) - -options, args = parser.parse_args() - -# if -c was provided, we push it back into args for buildout's main function -if options.config_file is not None: - args += ['-c', options.config_file] - -if options.eggs: - eggs_dir = os.path.abspath(os.path.expanduser(options.eggs)) -else: - eggs_dir = tempfile.mkdtemp() - -if options.setup_source is None: - if options.use_distribute: - options.setup_source = distribute_source - else: - options.setup_source = setuptools_source - -if options.accept_buildout_test_releases: - args.append('buildout:accept-buildout-test-releases=true') -args.append('bootstrap') - -try: - import pkg_resources - import setuptools # A flag. Sometimes pkg_resources is installed alone. - if not hasattr(pkg_resources, '_distribute'): - raise ImportError -except ImportError: - ez_code = urllib2.urlopen( - options.setup_source).read().replace('\r\n', '\n') - ez = {} - exec ez_code in ez - setup_args = dict(to_dir=eggs_dir, download_delay=0) - if options.download_base: - setup_args['download_base'] = options.download_base - if options.use_distribute: - setup_args['no_fake'] = True - ez['use_setuptools'](**setup_args) - if 'pkg_resources' in sys.modules: - reload(sys.modules['pkg_resources']) - import pkg_resources - # This does not (always?) update the default working set. We will - # do it. - for path in sys.path: - if path not in pkg_resources.working_set.entries: - pkg_resources.working_set.add_entry(path) - -cmd = [quote(sys.executable), - '-c', - quote('from setuptools.command.easy_install import main; main()'), - '-mqNxd', - quote(eggs_dir)] - -if not has_broken_dash_S: - cmd.insert(1, '-S') - -find_links = options.download_base -if not find_links: - find_links = os.environ.get('bootstrap-testing-find-links') -if find_links: - cmd.extend(['-f', quote(find_links)]) - -if options.use_distribute: - setup_requirement = 'distribute' -else: - setup_requirement = 'setuptools' -ws = pkg_resources.working_set -setup_requirement_path = ws.find( - pkg_resources.Requirement.parse(setup_requirement)).location -env = dict( - os.environ, - PYTHONPATH=setup_requirement_path) - -requirement = 'zc.buildout' -version = options.version -if version is None and not options.accept_buildout_test_releases: - # Figure out the most recent final version of zc.buildout. - import setuptools.package_index - _final_parts = '*final-', '*final' - def _final_version(parsed_version): - for part in parsed_version: - if (part[:1] == '*') and (part not in _final_parts): - return False - return True - index = setuptools.package_index.PackageIndex( - search_path=[setup_requirement_path]) - if find_links: - index.add_find_links((find_links,)) - req = pkg_resources.Requirement.parse(requirement) - if index.obtain(req) is not None: - best = [] - bestv = None - for dist in index[req.project_name]: - distv = dist.parsed_version - if _final_version(distv): - if bestv is None or distv > bestv: - best = [dist] - bestv = distv - elif distv == bestv: - best.append(dist) - if best: - best.sort() - version = best[-1].version -if version: - requirement = '=='.join((requirement, version)) -cmd.append(requirement) - -if is_jython: - import subprocess - exitcode = subprocess.Popen(cmd, env=env).wait() -else: # Windows prefers this, apparently; otherwise we would prefer subprocess - exitcode = os.spawnle(*([os.P_WAIT, sys.executable] + cmd + [env])) -if exitcode != 0: - sys.stdout.flush() - sys.stderr.flush() - print ("An error occurred when trying to install zc.buildout. " - "Look above this message for any errors that " - "were output by easy_install.") - sys.exit(exitcode) - -ws.add_entry(eggs_dir) -ws.require(requirement) -import zc.buildout.buildout -zc.buildout.buildout.main(args) -if not options.eggs: # clean up temporary egg directory - shutil.rmtree(eggs_dir) diff --git a/buildout.cfg b/buildout.cfg deleted file mode 100644 index a77bf93c..00000000 --- a/buildout.cfg +++ /dev/null @@ -1,19 +0,0 @@ -[buildout] -develop = . -parts = mediagoblin make_user_dev_dirs - -[mediagoblin] -recipe=zc.recipe.egg -interpreter=python -dependent-scripts = true -eggs= - python-dateutil>=1.5.0,<2.0.0 - mediagoblin -entry-points = - nosetests=nose:run_exit - paster=paste.script.command:run - - -[make_user_dev_dirs] -recipe = mediagoblin:make_user_dev_dirs -path = user_dev \ No newline at end of file diff --git a/mediagoblin/buildout_recipes.py b/mediagoblin/buildout_recipes.py deleted file mode 100644 index f3d0362f..00000000 --- a/mediagoblin/buildout_recipes.py +++ /dev/null @@ -1,50 +0,0 @@ -# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . - - -import logging -import os - - -MAKE_SUBDIRECTORIES = ['media/queue', 'media/public', 'beaker'] - - -class MakeUserDevDirs(object): - """ - Simple recipe for making subdirectories for user buildout convenience - """ - def __init__(self, buildout, name, options): - self.buildout, self.name, self.options = buildout, name, options - - if self.options['path'].startswith('/'): - self.path = self.options['path'] - else: - self.path = os.path.join( - self.buildout['buildout']['directory'], - self.options['path']) - - def install(self): - for make_subdir in MAKE_SUBDIRECTORIES: - fulldir = os.path.join(self.path, make_subdir) - - if not os.path.exists(fulldir): - logging.getLogger(self.name).info( - 'Creating directory %s' % fulldir) - os.makedirs(fulldir) - - return () - - update = install From 997b419fe304427d587fceaae28f9a4652fb5f1a Mon Sep 17 00:00:00 2001 From: Elrond Date: Thu, 26 Jan 2012 22:14:48 +0100 Subject: [PATCH 1437/2731] Add "mediagoblin/templates *.txt" to packaging Again thanks to Clint Byrum! --- MANIFEST.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MANIFEST.in b/MANIFEST.in index 956f44c9..9300c698 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,4 +1,4 @@ -recursive-include mediagoblin/templates *.html +recursive-include mediagoblin/templates *.html *.txt recursive-include mediagoblin/static *.js *.css *.png *.svg *.ico recursive-include mediagoblin/tests *.ini recursive-include docs *.rst *.html From 3c43cfc9f91b487d52ff7868f821fe920f676d90 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sun, 22 Jan 2012 20:17:43 +0100 Subject: [PATCH 1438/2731] Move declarative_base Base into base.py The base class of all models "Base" should be in base.py. --- mediagoblin/db/sql/base.py | 4 ++++ mediagoblin/db/sql/models.py | 6 +----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mediagoblin/db/sql/base.py b/mediagoblin/db/sql/base.py index 6f45b21b..1db53c56 100644 --- a/mediagoblin/db/sql/base.py +++ b/mediagoblin/db/sql/base.py @@ -15,6 +15,7 @@ # along with this program. If not, see . +from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import scoped_session, sessionmaker, object_session from sqlalchemy.orm.query import Query from sqlalchemy.sql.expression import desc @@ -73,3 +74,6 @@ class GMGTableBase(object): sess = Session() sess.add(self) sess.commit() + + +Base = declarative_base(cls=GMGTableBase) diff --git a/mediagoblin/db/sql/models.py b/mediagoblin/db/sql/models.py index 57444c2c..95147d50 100644 --- a/mediagoblin/db/sql/models.py +++ b/mediagoblin/db/sql/models.py @@ -17,7 +17,6 @@ import datetime -from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import ( Column, Integer, Unicode, UnicodeText, DateTime, Boolean, ForeignKey, UniqueConstraint) @@ -27,13 +26,10 @@ from sqlalchemy.sql.expression import desc from sqlalchemy.ext.associationproxy import association_proxy from mediagoblin.db.sql.extratypes import PathTupleWithSlashes -from mediagoblin.db.sql.base import GMGTableBase +from mediagoblin.db.sql.base import Base from mediagoblin.db.mixin import UserMixin, MediaEntryMixin -Base = declarative_base(cls=GMGTableBase) - - class SimpleFieldAlias(object): """An alias for any field""" def __init__(self, fieldname): From a8382a3a866bd20892e4c0081a7dac020acd0f9f Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Fri, 27 Jan 2012 01:52:57 +0100 Subject: [PATCH 1439/2731] Updated .gitignore due to it blacking out the extlib/leaflet/dist/ directory --- .gitignore | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index 9e8d958a..b46ec38a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,20 +1,27 @@ -dist/ -bin/ -develop-eggs/ -build/ -eggs/ -lib/ -include/ -parts/ +# / means repository root, not filesystem root + +# Top-level files and directories +/dist/ +/bin/ +/develop-eggs/ +/build/ +/eggs/ +/lib/ +/include/ +/parts/ +/mediagoblin.egg-info +/docs/_build/ +/docs/build +/user_dev/ +/paste_local.ini +/mediagoblin_local.ini +/server-log.txt + +# Tests +/mediagoblin/tests/user_dev/ + .installed.cfg -mediagoblin.egg-info *.pyc *.pyo -docs/_build/ -docs/build -user_dev/ -paste_local.ini -mediagoblin_local.ini -server-log.txt *~ *.swp From 184dbcdacc0404b6fb979995f11732ce0782df04 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Fri, 27 Jan 2012 01:55:50 +0100 Subject: [PATCH 1440/2731] Adding previously erroneously gitignored extlib/leaflet/{lib,dist,build}/ files --- extlib/leaflet/build/Makefile | 65 + extlib/leaflet/build/build.bat | 65 + extlib/leaflet/build/build.html | 208 ++ extlib/leaflet/build/deps.js | 211 ++ extlib/leaflet/dist/images/marker-shadow.png | Bin 0 -> 1649 bytes extlib/leaflet/dist/images/marker.png | Bin 0 -> 2519 bytes extlib/leaflet/dist/images/popup-close.png | Bin 0 -> 1125 bytes extlib/leaflet/dist/images/zoom-in.png | Bin 0 -> 963 bytes extlib/leaflet/dist/images/zoom-out.png | Bin 0 -> 959 bytes extlib/leaflet/dist/leaflet.css | 273 ++ extlib/leaflet/dist/leaflet.ie.css | 46 + extlib/leaflet/dist/leaflet.js | 114 + extlib/leaflet/lib/closure-compiler/COPYING | 202 ++ extlib/leaflet/lib/closure-compiler/README | 278 ++ .../leaflet/lib/closure-compiler/compiler.jar | Bin 0 -> 4332498 bytes extlib/leaflet/lib/jasmine/jasmine-html.js | 182 ++ extlib/leaflet/lib/jasmine/jasmine.css | 166 ++ extlib/leaflet/lib/jasmine/jasmine.js | 2421 +++++++++++++++++ 18 files changed, 4231 insertions(+) create mode 100644 extlib/leaflet/build/Makefile create mode 100644 extlib/leaflet/build/build.bat create mode 100644 extlib/leaflet/build/build.html create mode 100644 extlib/leaflet/build/deps.js create mode 100644 extlib/leaflet/dist/images/marker-shadow.png create mode 100644 extlib/leaflet/dist/images/marker.png create mode 100644 extlib/leaflet/dist/images/popup-close.png create mode 100644 extlib/leaflet/dist/images/zoom-in.png create mode 100644 extlib/leaflet/dist/images/zoom-out.png create mode 100644 extlib/leaflet/dist/leaflet.css create mode 100644 extlib/leaflet/dist/leaflet.ie.css create mode 100644 extlib/leaflet/dist/leaflet.js create mode 100644 extlib/leaflet/lib/closure-compiler/COPYING create mode 100644 extlib/leaflet/lib/closure-compiler/README create mode 100644 extlib/leaflet/lib/closure-compiler/compiler.jar create mode 100644 extlib/leaflet/lib/jasmine/jasmine-html.js create mode 100644 extlib/leaflet/lib/jasmine/jasmine.css create mode 100644 extlib/leaflet/lib/jasmine/jasmine.js diff --git a/extlib/leaflet/build/Makefile b/extlib/leaflet/build/Makefile new file mode 100644 index 00000000..22d65483 --- /dev/null +++ b/extlib/leaflet/build/Makefile @@ -0,0 +1,65 @@ +../dist/leaflet.js: Makefile + java -jar ../lib/closure-compiler/compiler.jar \ + --js ../src/Leaflet.js \ + --js ../src/core/Util.js \ + --js ../src/core/Class.js \ + --js ../src/core/Events.js \ + --js ../src/core/Browser.js \ + --js ../src/geometry/Point.js \ + --js ../src/geometry/Bounds.js \ + --js ../src/geometry/Transformation.js \ + --js ../src/geometry/LineUtil.js \ + --js ../src/geometry/PolyUtil.js \ + --js ../src/dom/DomEvent.js \ + --js ../src/dom/DomEvent.DoubleTap.js \ + --js ../src/dom/DomUtil.js \ + --js ../src/dom/Draggable.js \ + --js ../src/dom/transition/Transition.js \ + --js ../src/dom/transition/Transition.Native.js \ + --js ../src/dom/transition/Transition.Timer.js \ + --js ../src/geo/LatLng.js \ + --js ../src/geo/LatLngBounds.js \ + --js ../src/geo/projection/Projection.js \ + --js ../src/geo/projection/Projection.SphericalMercator.js \ + --js ../src/geo/projection/Projection.LonLat.js \ + --js ../src/geo/projection/Projection.Mercator.js \ + --js ../src/geo/crs/CRS.js \ + --js ../src/geo/crs/CRS.EPSG3857.js \ + --js ../src/geo/crs/CRS.EPSG4326.js \ + --js ../src/geo/crs/CRS.EPSG3395.js \ + --js ../src/layer/LayerGroup.js \ + --js ../src/layer/FeatureGroup.js \ + --js ../src/layer/tile/TileLayer.js \ + --js ../src/layer/tile/TileLayer.WMS.js \ + --js ../src/layer/tile/TileLayer.Canvas.js \ + --js ../src/layer/ImageOverlay.js \ + --js ../src/layer/Popup.js \ + --js ../src/layer/marker/Icon.js \ + --js ../src/layer/marker/Marker.js \ + --js ../src/layer/marker/Marker.Popup.js \ + --js ../src/layer/vector/Path.js \ + --js ../src/layer/vector/Path.VML.js \ + --js ../src/layer/vector/Path.Popup.js \ + --js ../src/layer/vector/Polyline.js \ + --js ../src/layer/vector/Polygon.js \ + --js ../src/layer/vector/MultiPoly.js \ + --js ../src/layer/vector/Circle.js \ + --js ../src/layer/vector/CircleMarker.js \ + --js ../src/layer/GeoJSON.js \ + --js ../src/handler/Handler.js \ + --js ../src/handler/MapDrag.js \ + --js ../src/handler/TouchZoom.js \ + --js ../src/handler/ScrollWheelZoom.js \ + --js ../src/handler/DoubleClickZoom.js \ + --js ../src/handler/ShiftDragZoom.js \ + --js ../src/handler/MarkerDrag.js \ + --js ../src/control/Control.js \ + --js ../src/control/Control.Zoom.js \ + --js ../src/control/Control.Attribution.js \ + --js ../src/map/Map.js \ + --js ../src/map/ext/Map.Geolocation.js \ + --js ../src/map/ext/Map.Popup.js \ + --js ../src/map/ext/Map.PanAnimation.js \ + --js ../src/map/ext/Map.ZoomAnimation.js \ + --js ../src/map/ext/Map.Control.js \ + --js_output_file ../dist/leaflet.js diff --git a/extlib/leaflet/build/build.bat b/extlib/leaflet/build/build.bat new file mode 100644 index 00000000..a09d2259 --- /dev/null +++ b/extlib/leaflet/build/build.bat @@ -0,0 +1,65 @@ +@echo off +java -jar ../lib/closure-compiler/compiler.jar ^ +--js ../src/Leaflet.js ^ +--js ../src/core/Util.js ^ +--js ../src/core/Class.js ^ +--js ../src/core/Events.js ^ +--js ../src/core/Browser.js ^ +--js ../src/geometry/Point.js ^ +--js ../src/geometry/Bounds.js ^ +--js ../src/geometry/Transformation.js ^ +--js ../src/geometry/LineUtil.js ^ +--js ../src/geometry/PolyUtil.js ^ +--js ../src/dom/DomEvent.js ^ +--js ../src/dom/DomEvent.DoubleTap.js ^ +--js ../src/dom/DomUtil.js ^ +--js ../src/dom/Draggable.js ^ +--js ../src/dom/transition/Transition.js ^ +--js ../src/dom/transition/Transition.Native.js ^ +--js ../src/dom/transition/Transition.Timer.js ^ +--js ../src/geo/LatLng.js ^ +--js ../src/geo/LatLngBounds.js ^ +--js ../src/geo/projection/Projection.js ^ +--js ../src/geo/projection/Projection.SphericalMercator.js ^ +--js ../src/geo/projection/Projection.LonLat.js ^ +--js ../src/geo/projection/Projection.Mercator.js ^ +--js ../src/geo/crs/CRS.js ^ +--js ../src/geo/crs/CRS.EPSG3857.js ^ +--js ../src/geo/crs/CRS.EPSG4326.js ^ +--js ../src/geo/crs/CRS.EPSG3395.js ^ +--js ../src/layer/LayerGroup.js ^ +--js ../src/layer/FeatureGroup.js ^ +--js ../src/layer/tile/TileLayer.js ^ +--js ../src/layer/tile/TileLayer.WMS.js ^ +--js ../src/layer/tile/TileLayer.Canvas.js ^ +--js ../src/layer/ImageOverlay.js ^ +--js ../src/layer/Popup.js ^ +--js ../src/layer/marker/Icon.js ^ +--js ../src/layer/marker/Marker.js ^ +--js ../src/layer/marker/Marker.Popup.js ^ +--js ../src/layer/vector/Path.js ^ +--js ../src/layer/vector/Path.VML.js ^ +--js ../src/layer/vector/Path.Popup.js ^ +--js ../src/layer/vector/Polyline.js ^ +--js ../src/layer/vector/Polygon.js ^ +--js ../src/layer/vector/MultiPoly.js ^ +--js ../src/layer/vector/Circle.js ^ +--js ../src/layer/vector/CircleMarker.js ^ +--js ../src/layer/GeoJSON.js ^ +--js ../src/handler/Handler.js ^ +--js ../src/handler/MapDrag.js ^ +--js ../src/handler/TouchZoom.js ^ +--js ../src/handler/ScrollWheelZoom.js ^ +--js ../src/handler/DoubleClickZoom.js ^ +--js ../src/handler/ShiftDragZoom.js ^ +--js ../src/handler/MarkerDrag.js ^ +--js ../src/control/Control.js ^ +--js ../src/control/Control.Zoom.js ^ +--js ../src/control/Control.Attribution.js ^ +--js ../src/map/Map.js ^ +--js ../src/map/ext/Map.Geolocation.js ^ +--js ../src/map/ext/Map.Popup.js ^ +--js ../src/map/ext/Map.PanAnimation.js ^ +--js ../src/map/ext/Map.ZoomAnimation.js ^ +--js ../src/map/ext/Map.Control.js ^ +--js_output_file ../dist/leaflet.js \ No newline at end of file diff --git a/extlib/leaflet/build/build.html b/extlib/leaflet/build/build.html new file mode 100644 index 00000000..c60e5f31 --- /dev/null +++ b/extlib/leaflet/build/build.html @@ -0,0 +1,208 @@ + + + + Leaflet Build Helper + + + + + + +
+

Leaflet Build Helper

+ +

+ Select All | + Deselect All +

+ +
    + +

    + Run this command in the build directory:
    + +

    +
    + + + + \ No newline at end of file diff --git a/extlib/leaflet/build/deps.js b/extlib/leaflet/build/deps.js new file mode 100644 index 00000000..42735648 --- /dev/null +++ b/extlib/leaflet/build/deps.js @@ -0,0 +1,211 @@ +var deps = { + Core: { + src: ['Leaflet.js', + 'core/Browser.js', + 'core/Class.js', + 'core/Events.js', + 'core/Util.js', + 'dom/DomUtil.js', + 'geo/LatLng.js', + 'geo/LatLngBounds.js', + 'geo/projection/Projection.js', + 'geo/projection/Projection.SphericalMercator.js', + 'geo/projection/Projection.LonLat.js', + 'geo/crs/CRS.js', + 'geo/crs/CRS.EPSG3857.js', + 'geo/crs/CRS.EPSG4326.js', + 'geometry/Bounds.js', + 'geometry/Point.js', + 'geometry/Transformation.js', + 'map/Map.js'], + desc: 'The core of the library, including OOP, events, DOM facilities, basic units, projections (EPSG:3857 and EPSG:4326) and the base Map class.' + }, + + + EPSG3395: { + src: ['geo/projection/Projection.Mercator.js', + 'geo/crs/CRS.EPSG3395.js'], + desc: 'EPSG:3395 projection (used by some map providers).', + heading: 'Additional projections' + }, + + TileLayer: { + src: ['layer/tile/TileLayer.js'], + desc: 'The base class for displaying tile layers on the map.', + heading: 'Layers' + }, + + TileLayerWMS: { + src: ['layer/tile/TileLayer.WMS.js'], + desc: 'WMS tile layer.', + deps: ['TileLayer'] + }, + + TileLayerCanvas: { + src: ['layer/tile/TileLayer.Canvas.js'], + desc: 'Tile layer made from canvases (for custom drawing purposes).', + deps: ['TileLayer'] + }, + + ImageOverlay: { + src: ['layer/ImageOverlay.js'], + desc: 'Used to display an image over a particular rectangular area of the map.' + }, + + Marker: { + src: ['layer/marker/Icon.js', 'layer/marker/Marker.js'], + desc: 'Markers to put on the map.' + }, + + Popup: { + src: ['layer/Popup.js', 'layer/marker/Marker.Popup.js', 'map/ext/Map.Popup.js'], + deps: ['Marker'], + desc: 'Used to display the map popup (used mostly for binding HTML data to markers and paths on click).' + }, + + LayerGroup: { + src: ['layer/LayerGroup.js'], + desc: 'Allows grouping several layers to handle them as one.' + }, + + FeatureGroup: { + src: ['layer/FeatureGroup.js'], + deps: ['LayerGroup', 'Popup'], + desc: 'Extends LayerGroup with mouse events and bindPopup method shared between layers.' + }, + + + Path: { + src: ['layer/vector/Path.js', 'layer/vector/Path.Popup.js'], + desc: 'Vector rendering core (SVG-powered), enables overlaying the map with SVG paths.', + heading: 'Vector layers' + }, + + PathVML: { + src: ['layer/vector/Path.VML.js'], + desc: 'VML fallback for vector rendering core (IE 6-8).' + }, + + Polyline: { + src: ['geometry/LineUtil.js', 'layer/vector/Polyline.js'], + deps: ['Path'], + desc: 'Polyline overlays.' + }, + + Polygon: { + src: ['geometry/PolyUtil.js', 'layer/vector/Polygon.js'], + deps: ['Polyline'], + desc: 'Polygon overlays.' + }, + + MultiPoly: { + src: ['layer/vector/MultiPoly.js'], + deps: ['FeatureGroup', 'Polyline', 'Polygon'], + desc: 'MultiPolygon and MultyPolyline layers.' + }, + + Circle: { + src: ['layer/vector/Circle.js'], + deps: ['Path'], + desc: 'Circle overlays (with radius in meters).' + }, + + CircleMarker: { + src: ['layer/vector/CircleMarker.js'], + deps: ['Circle'], + desc: 'Circle overlays with a constant pixel radius.' + }, + + GeoJSON: { + src: ['layer/GeoJSON.js'], + deps: ['Marker', 'MultiPoly', 'FeatureGroup'], + desc: 'GeoJSON layer, parses the data and adds corresponding layers above.' + }, + + + MapDrag: { + src: ['dom/DomEvent.js', + 'dom/Draggable.js', + 'handler/Handler.js', + 'handler/MapDrag.js'], + desc: 'Makes the map draggable (by mouse or touch).', + heading: 'Interaction' + }, + + MouseZoom: { + src: ['dom/DomEvent.js', + 'handler/Handler.js', + 'handler/DoubleClickZoom.js', + 'handler/ScrollWheelZoom.js'], + desc: 'Scroll wheel zoom and double click zoom on the map.' + }, + + TouchZoom: { + src: ['dom/DomEvent.js', + 'dom/DomEvent.DoubleTap.js', + 'handler/Handler.js', + 'handler/TouchZoom.js'], + deps: ['MapAnimationZoom'], + desc: 'Enables smooth touch zooming on iOS and double tap on iOS/Android.' + }, + + ShiftDragZoom: { + src: ['handler/ShiftDragZoom.js'], + desc: 'Enables zooming to bounding box by shift-dragging the map.' + }, + + MarkerDrag: { + src: ['handler/MarkerDrag.js'], + desc: 'Makes markers draggable (by mouse or touch).' + }, + + + ControlZoom: { + src: ['control/Control.js', + 'map/ext/Map.Control.js', + 'control/Control.Zoom.js'], + heading: 'Controls', + desc: 'Basic zoom control with two buttons (zoom in / zoom out).' + }, + + ControlZoom: { + src: ['control/Control.js', + 'map/ext/Map.Control.js', + 'control/Control.Attribution.js'], + desc: 'Attribution control.' + }, + + + MapAnimationNative: { + src: ['dom/DomEvent.js', + 'dom/transition/Transition.js', + 'dom/transition/Transition.Native.js'], + desc: 'Animation core that uses CSS3 Transitions (for powering pan & zoom animations). Works on mobile webkit-powered browsers and some modern desktop browsers.', + heading: 'Visual effects' + }, + + MapAnimationFallback: { + src: ['dom/transition/Transition.Timer.js'], + deps: ['MapAnimationNative'], + desc: 'Timer-based animation fallback for browsers that don\'t support CSS3 transitions.' + }, + + MapAnimationPan: { + src: ['map/ext/Map.PanAnimation.js'], + deps: ['MapAnimationNative'], + desc: 'Panning animation. Can use both native and timer-based animation.' + }, + + MapAnimationZoom: { + src: ['map/ext/Map.ZoomAnimation.js'], + deps: ['MapAnimationPan', 'MapAnimationNative'], + desc: 'Smooth zooming animation. So far it works only on browsers that support CSS3 Transitions.' + }, + + + MapGeolocation: { + src: ['map/ext/Map.Geolocation.js'], + desc: 'Adds Map#locate method and related events to make geolocation easier.', + heading: 'Misc' + } +}; \ No newline at end of file diff --git a/extlib/leaflet/dist/images/marker-shadow.png b/extlib/leaflet/dist/images/marker-shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..a64f6a6729083f6bce1734b96e33aeb62373086c GIT binary patch literal 1649 zcmeAS@N?(olHy`uVBq!ia0vp^njp-<1|(M`Fnj}2k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m=!WZB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPAEg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{LTX&!kCIJfXW-}j}d z+c2#DcVPJc1BK0d9PcUo4?poON_gkP9VLA;G;h7TlvKyN!}3PA0`GyP2R5>lnJ!_l zvf3@VA%e-KX=Ri#)g>AfndLtInYk->VHMZ)uB(e&6b$?o6q#k$+=+ah*LH_fWw+%7 z!#UzBG`|0N_^-@WXW0+$hQ+xCWlK^NSS1g5|M^%dz`sLC)$-h=rf7zH4|gs6ZKD|` zykz~V^hj((MOf^AiALBBgkZ~so4)L;#PP5t+{${@4|>Xo-)TeZ#*t|@S|J! z)m&3$Zw2MXypw0AWot1Tc_pzd4ylxyZz{EU!v5Rk&;1Uk`g@A>ehNEEDNZhdf% ziBh`k#Y^ws2^REwF6Y`}c3|q8%P&){8$&KUdgC`ie@2Y3vV=9?_IRGMmeLLP7@oRl zoyu!nbM)-NAAOdLFBqy@WjQxY7qDQ~2{cM-6xUf7>#w^vq5b#wif0B36J{{Q@N_&C%-YgaWQS3{r8z(lZ=fV+jRK_mxNzEwWyPO^E%0~;Eb|kEaZUX?w z(wJU80v}fwES1ATP*yOA2o_h$1^{gABe)c52weaRqz5zEw(!@Dt#BBVW()VWa7DRt z33LY2DUwI`jCAv&Mut$WXmEQwm`wy$D!`%(D6j}tD4UOsu!Voo#Y)#J$4EHr3q%lN z3;*hrkE=V3z~Rwh76_CH6}24&+m1${&CD?vj4{jDws3|(z{Mhw;o;$ka5Dsl7mP$(Sy`=Un3|eM5hna2Yyl<0gw5Ao zRUp#&R34KnU~<^76-7!QM<}p`OFjJ>0*mYF`dygK|CT6e%8(HhE)tDEAz7@IxW1tI z0y6zSZu}6<_d3F*Bgu3=N64c}>k*{8N|xsCpAD@5rQTq7^O(}2P(q0us*puz3!I6z zaOoEWjY-22EePAq2{??UC7MV=p{3#D%^WN(NkkkTgEvDFRyBUawJ^t6nVMRm&?IvL z8cjms@Rk^o6#-4c;LWWpaNoJkY`%cPrqWmKGNpFEaxESHk&7kp=oA5m=f&ZKu6BSs zgCpSZ85}N*;AsK#X0mCVaQ;ehzQ#(V^O%R}GzT7s1^bd+Eb|A}|98}1xwQW$V@Rnp z$d%UkuU1(-lJ?)q@_XY;H{VBx&X&##PdXUmr@(Ik067I`BF-yf?2NZ>>QCX|v!8z7 zIy#j#ClU?pE$trwxhooa9r8ba^j+~n@#9i4*|@gf@s|y?i#?zlJchwK6FhEXDX?nK zDMiOpat8U5cePrSzIU@;?$oQSxuDi?>udE9qcmjC;+B~3!iUSZ{|bJJG1Cm{oXHJP zc%eXy{QN-$4;^i7t^$Le2qO`?b~`f5s_}X<#@$OGmqED^Azu^ZhdtrHJALjkx+zaJ zs596;`QZ#W3jC2~kmI5^nF*${3PZ=&kcQ5YJ&Ma_b0x!%PRd%}#2-JXWc`V0P&8)f zY>+x{1IbulIU6@JS=)B4U!VJV@nF5;pLplaTSdC^es&{GCl=kWDws~HTV+3Lh|X6M zcjG*LRPL!lKK z6wyjkm6TcgP*=INwh;v;S;yrLZO_Y4ugnaF#zx)0rrJw_%Utw9 zw@s7{YN{N}d@&)jtgHL3bO2fbMdXQRQp$gYbjNQzu>^*IOy7>oLblv@+~#Eh?pk}^ zEPuL!-`AwS!#GBNDA$dr1v)yhb`o){0>ZTRG;D89QwRt#TZ+|s^QR4@;gx;)knz7t zGR!wa7Gr8-mO&MDZuyulqN>vP;zPDE_Cm2{=B-C5zDPR-Ym7ap$H#Xz=ZZXcY7zpu zveBs`b6vkrQ!oxibNejb1#-&K1Ql;)ca_ zCps{Vn1sDWKzWdQSEe`_p`mWDY1}|kr5m02cHh9M-_|KY%M@h8)ct&0%c{X?Z>px& zHi^TO)u_9Rv+Q;^gE7t74zxPS~kSe2K?51Vm zXVg?eZrPc<&FpvCPZ8UA+GoK5qpwQjp6$P`6#yx76-gkmAiMs{kY@P|R$WozSSol| z+wb;+0ah=QH5_7EY=L)uROe1Nltg32u8mvVZ}7w{0~N))X&Qxsi<^>3I~&oKG1EbX z>b2~@iju0X2kV@6B9K6b<<*W2Uv_kXT#%ZOw7xe_*f4Mtf7}eKbEDm7A^eWk? z0J{_u9X9$n1(XjBS@oZSUUpT^Q3P)q1n=&(^k3SZKi!ks+DdMS6)wzcj%##9+_`s3 zGr27EdG~2|ua`+3_&)Q&gwI5|O~Ep~sbz;u7;*VEG1XXty8HqCe|uE#|A2t&wJSe` zqT(`Zd~EN`tXb%AzZC%Ot-Gts@#Pfh&!mq%@VzylLrSknQQM;U#@*m#3xQHCGR0Kv zIo8I%y=)3gvkAE0K494TDQw|om1{P-AGiDYP+)slC{4bRrt2kBK-RNOiO)teNQ5)} zMnLe%c(3+mdhZu}RIOZu`GAo41zH_6Acw?$RvgoTb9IcX={d~lv1x|05MWQ|M)(9>Xv7aJoH zjRxuI9Za-NJywR5b^8-Gm6RXI|LwX)Utdz}dIHcd92u#suH#7Ihgd}mNgVSz z5Ao4fQPY)2#}{aw-I?VBy^q4?Zf_`+F$EFeQIe|RyV(`)5d%bDaxyo3*k{~PI766F8@ literal 0 HcmV?d00001 diff --git a/extlib/leaflet/dist/images/popup-close.png b/extlib/leaflet/dist/images/popup-close.png new file mode 100644 index 0000000000000000000000000000000000000000..c8faec5ea909075fd573e032a67f867e66b0eea7 GIT binary patch literal 1125 zcmaJ=U1$?o6rLt(YiKdcqR^`BW&B}LlbK1Hgp7%uB$L`er<63sh@ehpZricW+;QgC zOuH_d3gSPgpuSYm-G{BPhzPPQtGl8_5EMlar2agJZ-NRUiZAs}ZK4mxd6;|d<@>(# zopaAU*xR$Q#n>KMTC}YD)T%|iUfP}*n0Ucr)IQmY*=A9%xtILzvJ!WVy3&F!l`m?E` z)C)4mf*=xP0}2~uL6i$};r3W8whn|?j%C;o!-WD|j1Px+mIZSkO|n_)0G}5-=W>x< zk{-g?oXbWd(O5JbuX07CjOft7Rjyj&rrEk&cMx=wWEP>N?S^Wn zg>*1mFt643BG%QL*vJk)eL}?$4X# zK|Ichse&_IO8oM%eXZA<3HaA~cl~$#;O(X0uKDUts}1@WOuem?wzQ7>mX1%ffdS8R zNtkG!x-4Av9q6xoX!W1IL@iu3N&DY;pPv-g`TFO1^1@#Y`64wnAuMY?X_kb_HsOh9 z>dcXunVH6a_AlCTqVdG1}u0u|Jx8&bb>M_o>Ex haIv46e`t9_6HEPiDxppP-SyOc__=J4crm?w?fToD8KiK*P3E+rbu&-aPsj zc=Ebe6OGZUe}O-uN6*HX7;iXbf%PCZY2SO3@B7}5d41Y!+}qo|xeEZ;tDhJxZm*~B z&Nlykc<@W$W}lf|)}{j%+aUpEO#1}ZJ$p!6#KzM{?@0-OZRmEotZSWW4)sJk#fXU) za5ey?<0P=1F=4PzhOVy*-(SBKpo?|ktY9H4sFIO;G7Cw2*6291u~Wpt@m*L-G%nx~ zX2Zlg_aiOQg@vxh{q$H8-~z(Nx^P)k*J{El4GAoWDC-~vK}8nj{E@1vw_y&+NJ2SD z&Shm)%jYzN;PMf8wh#}rmQh>g;*lisM*}^CAt0l3XknQ;l3M%MsaV>N7jZ z`q9Bk!61k4^u_EPbW+lc%_#uc)?oMkCtQN1CtUvkYo|1Ev~0&A=y-9rCKwJE3QGEiAQ|4;^Hgr zosHad5xjtBHc03`Cb$+-4=x(k+|9KVHtH?8cylevMy|w*kzY?be0NfJy|g@7 zuRZbku7`Z7zr6c-gZ~hj=4r>|c0QlK`1JfM_pY&4qdf=TUZVRv+OHesPV%|m!x;B^ h;MvFS@2!V#z*YuiF2JonxqT_OXvHc_ulvJ`@VbDZr$16ySWDd*l(VgHk)_z zajn4qAMgF**mQ%|yR<|4bm}G;RDIIJuo=1oY-87-J$R3g04Tt~>C&!ss(B>j-5kSb zVa(V7935w|>y0plJv;~^o%{Lr9R~wn=g!I&vSI@dgOhoJJM)&~%}1Wk^({SCUycGsI`)ycl}&YxV_ f86W-zukSws1+e=GC?7;Gf1;pSZ<()Z=a2sY#=<8c literal 0 HcmV?d00001 diff --git a/extlib/leaflet/dist/leaflet.css b/extlib/leaflet/dist/leaflet.css new file mode 100644 index 00000000..4bc0b769 --- /dev/null +++ b/extlib/leaflet/dist/leaflet.css @@ -0,0 +1,273 @@ +/* required styles */ + +.leaflet-map-pane, +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-tile-pane, +.leaflet-overlay-pane, +.leaflet-shadow-pane, +.leaflet-marker-pane, +.leaflet-popup-pane, +.leaflet-overlay-pane svg, +.leaflet-zoom-box, +.leaflet-image-layer { /* TODO optimize classes */ + position: absolute; + } +.leaflet-container { + overflow: hidden; + } +.leaflet-tile-pane { + -webkit-transform: translate3d(0,0,0); + } +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow { + -moz-user-select: none; + -webkit-user-select: none; + user-select: none; + } +.leaflet-marker-icon, +.leaflet-marker-shadow { + display: block; + } +.leaflet-clickable { + cursor: pointer; + } +.leaflet-container img { + max-width: auto; + } + +.leaflet-tile-pane { z-index: 2; } +.leaflet-overlay-pane { z-index: 3; } +.leaflet-shadow-pane { z-index: 4; } +.leaflet-marker-pane { z-index: 5; } +.leaflet-popup-pane { z-index: 6; } + +.leaflet-zoom-box { + width: 0; + height: 0; + } + +.leaflet-tile { + visibility: hidden; + } +.leaflet-tile-loaded { + visibility: inherit; + } + +a.leaflet-active { + outline: 2px solid orange; + } + + +/* Leaflet controls */ + +.leaflet-control { + position: relative; + z-index: 7; + } +.leaflet-top, +.leaflet-bottom { + position: absolute; + } +.leaflet-top { + top: 0; + } +.leaflet-right { + right: 0; + } +.leaflet-bottom { + bottom: 0; + } +.leaflet-left { + left: 0; + } +.leaflet-control { + float: left; + clear: both; + } +.leaflet-right .leaflet-control { + float: right; + } +.leaflet-top .leaflet-control { + margin-top: 10px; + } +.leaflet-bottom .leaflet-control { + margin-bottom: 10px; + } +.leaflet-left .leaflet-control { + margin-left: 10px; + } +.leaflet-right .leaflet-control { + margin-right: 10px; + } + +.leaflet-control-zoom { + padding: 5px; + background: rgba(0, 0, 0, 0.25); + + -moz-border-radius: 7px; + -webkit-border-radius: 7px; + border-radius: 7px; + } +.leaflet-control-zoom a { + display: block; + width: 19px; + height: 19px; + background-position: 50% 50%; + background-repeat: no-repeat; + background-color: rgba(255, 255, 255, 0.75); + + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + } +.leaflet-control-zoom a:hover { + background-color: #fff; + } +.leaflet-big-buttons .leaflet-control-zoom a { + width: 27px; + height: 27px; + } +.leaflet-control-zoom-in { + background-image: url(images/zoom-in.png); + margin-bottom: 5px; + } +.leaflet-control-zoom-out { + background-image: url(images/zoom-out.png); + } + +.leaflet-container .leaflet-control-attribution { + margin: 0; + padding: 0 5px; + + font: 11px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; + color: #333; + + background-color: rgba(255, 255, 255, 0.7); + + -moz-box-shadow: 0 0 7px #ccc; + -webkit-box-shadow: 0 0 7px #ccc; + box-shadow: 0 0 7px #ccc; + } + + +/* Fade animations */ + +.leaflet-fade-anim .leaflet-tile { + opacity: 0; + + -webkit-transition: opacity 0.2s linear; + -moz-transition: opacity 0.2s linear; + -o-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; + } +.leaflet-fade-anim .leaflet-tile-loaded { + opacity: 1; + } + +.leaflet-fade-anim .leaflet-popup { + opacity: 0; + + -webkit-transition: opacity 0.2s linear; + -moz-transition: opacity 0.2s linear; + -o-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; + } +.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { + opacity: 1; + } + +.leaflet-zoom-anim .leaflet-tile { + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; + } + +.leaflet-zoom-anim .leaflet-objects-pane { + visibility: hidden; + } + + +/* Popup layout */ + +.leaflet-popup { + position: absolute; + text-align: center; + -webkit-transform: translate3d(0,0,0); + } +.leaflet-popup-content-wrapper { + padding: 1px; + text-align: left; + } +.leaflet-popup-content { + margin: 19px; + } +.leaflet-popup-tip-container { + margin: 0 auto; + width: 40px; + height: 16px; + position: relative; + overflow: hidden; + } +.leaflet-popup-tip { + width: 15px; + height: 15px; + padding: 1px; + + margin: -8px auto 0; + + -moz-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); + } +.leaflet-popup-close-button { + position: absolute; + top: 9px; + right: 9px; + + width: 10px; + height: 10px; + + overflow: hidden; + } +.leaflet-popup-content p { + margin: 18px 0; + } + + +/* Visual appearance */ + +.leaflet-container { + background: #ddd; + } +.leaflet-container a { + color: #0078A8; + } +.leaflet-zoom-box { + border: 2px dotted #05f; + background: white; + opacity: 0.5; + } +.leaflet-popup-content-wrapper, .leaflet-popup-tip { + background: white; + + box-shadow: 0 1px 10px #888; + -moz-box-shadow: 0 1px 10px #888; + -webkit-box-shadow: 0 1px 14px #999; + } +.leaflet-popup-content-wrapper { + -moz-border-radius: 20px; + -webkit-border-radius: 20px; + border-radius: 20px; + } +.leaflet-popup-content { + font: 12px/1.4 "Helvetica Neue", Arial, Helvetica, sans-serif; + } +.leaflet-popup-close-button { + background: white url(images/popup-close.png); + } \ No newline at end of file diff --git a/extlib/leaflet/dist/leaflet.ie.css b/extlib/leaflet/dist/leaflet.ie.css new file mode 100644 index 00000000..141a16f5 --- /dev/null +++ b/extlib/leaflet/dist/leaflet.ie.css @@ -0,0 +1,46 @@ +.leaflet-tile { + filter: inherit; + } + +.leaflet-vml-shape { + width: 1px; + height: 1px; + } +.lvml { + behavior: url(#default#VML); + display: inline-block; + position: absolute; + } + +.leaflet-control { + display: inline; + } + +.leaflet-popup-tip { + width: 21px; + _width: 27px; + margin: 0 auto; + _margin-top: -3px; + + filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); + -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; + } +.leaflet-popup-tip-container { + margin-top: -1px; + } +.leaflet-popup-content-wrapper, .leaflet-popup-tip { + border: 1px solid #bbb; + } + +.leaflet-control-zoom { + filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#3F000000',EndColorStr='#3F000000'); + } +.leaflet-control-zoom a { + background-color: #eee; + } +.leaflet-control-zoom a:hover { + background-color: #fff; + } +.leaflet-control-attribution { + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#B2FFFFFF,endColorstr=#B2FFFFFF); + } \ No newline at end of file diff --git a/extlib/leaflet/dist/leaflet.js b/extlib/leaflet/dist/leaflet.js new file mode 100644 index 00000000..d4ed26a4 --- /dev/null +++ b/extlib/leaflet/dist/leaflet.js @@ -0,0 +1,114 @@ +/* + Copyright (c) 2010-2011, CloudMade, Vladimir Agafonkin + Leaflet is a BSD-licensed JavaScript library for map display and interaction. + See http://cloudmade.github.com/Leaflet/ for more information. +*/ +(function(a){var b={VERSION:"0.2",ROOT_URL:function(){for(var a=document.getElementsByTagName("script"),b=/^(.*\/)leaflet-?([\w-]*)\.js.*$/,e=0,f=a.length;e0},removeEventListener:function(a,b,c){if(!this.hasEventListeners(a))return this;for(var d=0,e=this._leaflet_events,f=e[a].length;d=this.min.x&&a.x<=this.max.x&&b.y>=this.min.y&&a.y<=this.max.y}});L.Transformation=L.Class.extend({initialize:function(a,b,c,d){this._a=a;this._b=b;this._c=c;this._d=d},transform:function(a,b){return this._transform(a.clone(),b)},_transform:function(a,b){b=b||1;a.x=b*(this._a*a.x+this._b);a.y=b*(this._c*a.y+this._d);return a},untransform:function(a,b){b=b||1;return new L.Point((a.x/b-this._b)/this._a,(a.y/b-this._d)/this._c)}});L.LineUtil={simplify:function(a,b){if(!b)return a.slice();a=this.reducePoints(a,b);return a=this.simplifyDP(a,b)},pointToSegmentDistance:function(a,b,c){return Math.sqrt(this._sqPointToSegmentDist(a,b,c))},simplifyDP:function(a,b){for(var c=0,d=0,e=b*b,f=1,g=a.length,h;fc&&(d=f,c=h);return c>=e?(c=a.slice(0,d),d=a.slice(d),g=this.simplifyDP(c,b).slice(0,g-2),d=this.simplifyDP(d,b),g.concat(d)):[a[0],a[g-1]]},reducePoints:function(a,b){for(var c= +[a[0]],d=b*b,e=1,f=0,g=a.length;eb.max.x&&(c|=2);a.yb.max.y&&(c|=8);return c},_sqDist:function(a,b){var c=b.x-a.x,d=b.y-a.y;return c*c+d*d},_sqPointToSegmentDist:function(a,b,c){var d=c.x-b.x,e=c.y-b.y;if(!d&&!e)return this._sqDist(a,b);var f=((a.x-b.x)*d+(a.y-b.y)*e)/this._sqDist(b,c);if(f< +0)return this._sqDist(a,b);if(f>1)return this._sqDist(a,c);b=new L.Point(b.x+d*f,b.y+e*f);return this._sqDist(a,b)}};L.PolyUtil={};L.PolyUtil.clipPolygon=function(a,b){var c,d=[1,4,2,8],e,f,g,h,j,k,l=L.LineUtil;e=0;for(j=a.length;e0&&c<=h;f=b}}function e(){if(g)j.type="dblclick",b(j),f=null}var f,g=!1,h=250,j;a["_leaflet_touchstart"+c]=d;a["_leaflet_touchend"+c]=e;a.addEventListener("touchstart",d,!1);a.addEventListener("touchend",e,!1)},removeDoubleTapListener:function(a,b){a.removeEventListener(a,a["_leaflet_touchstart"+b],!1);a.removeEventListener(a,a["_leaflet_touchend"+b], +!1)}});L.DomUtil={get:function(a){return typeof a=="string"?document.getElementById(a):a},getStyle:function(a,b){var c=a.style[b];!c&&a.currentStyle&&(c=a.currentStyle[b]);if(!c||c=="auto")c=(c=document.defaultView.getComputedStyle(a,null))?c[b]:null;return c=="auto"?null:c},getCumulativeOffset:function(a){var b=0,c=0;do b+=a.offsetTop||0,c+=a.offsetLeft||0,a=a.offsetParent;while(a);return new L.Point(c,b)},create:function(a,b,c){a=document.createElement(a);a.className=b;c&&c.appendChild(a);return a},disableTextSelection:function(){document.selection&& +document.selection.empty&&document.selection.empty();if(!this._onselectstart)this._onselectstart=document.onselectstart,document.onselectstart=L.Util.falseFn},enableTextSelection:function(){document.onselectstart=this._onselectstart;this._onselectstart=null},CLASS_RE:/(\\s|^)'+cls+'(\\s|$)/,hasClass:function(a,b){return a.className.length>0&&RegExp("(^|\\s)"+b+"(\\s|$)").test(a.className)},addClass:function(a,b){L.DomUtil.hasClass(a,b)||(a.className+=(a.className?" ":"")+b)},setOpacity:function(a, +b){L.Browser.ie?a.style.filter="alpha(opacity="+Math.round(b*100)+")":a.style.opacity=b},testProp:function(a){for(var b=document.documentElement.style,c=0;c1)){var b=a.touches&&a.touches.length==1?a.touches[0]:a;L.DomEvent.preventDefault(a);L.Browser.mobileWebkit&&(b.target.className+=" leaflet-active");this._moved=!1;L.DomUtil.disableTextSelection();this._setMovingCursor();this._startPos=this._newPos=L.DomUtil.getPosition(this._element);this._startPoint=new L.Point(b.clientX,b.clientY);L.DomEvent.addListener(document, +L.Draggable.MOVE,this._onMove,this);L.DomEvent.addListener(document,L.Draggable.END,this._onUp,this)}},_onMove:function(a){if(!(a.touches&&a.touches.length>1)){L.DomEvent.preventDefault(a);a=a.touches&&a.touches.length==1?a.touches[0]:a;if(!this._moved)this.fire("dragstart"),this._moved=!0;this._newPos=this._startPos.add(new L.Point(a.clientX,a.clientY)).subtract(this._startPoint);L.Util.requestAnimFrame(this._updatePosition,this,!0);this.fire("drag")}},_updatePosition:function(){L.DomUtil.setPosition(this._element, +this._newPos)},_onUp:function(a){if(a.changedTouches){var a=a.changedTouches[0],b=a.target,c=this._newPos&&this._newPos.distanceTo(this._startPos)||0;b.className=b.className.replace(" leaflet-active","");c=b.lat&&a.lat<=c.lat&&d.lng>=b.lng&&a.lng<=c.lng}});L.Projection={};L.Projection.SphericalMercator={MAX_LATITUDE:85.0511287798,project:function(a){var b=L.LatLng.DEG_TO_RAD,c=this.MAX_LATITUDE,d=a.lng*b,a=Math.max(Math.min(c,a.lat),-c)*b,a=Math.log(Math.tan(Math.PI/4+a/2));return new L.Point(d,a)},unproject:function(a,b){var c=L.LatLng.RAD_TO_DEG;return new L.LatLng((2*Math.atan(Math.exp(a.y))-Math.PI/2)*c,a.x*c,b)}};L.Projection.LonLat={project:function(a){return new L.Point(a.lng,a.lat)},unproject:function(a,b){return new L.LatLng(a.y,a.x,b)}};L.Projection.Mercator={MAX_LATITUDE:85.0840591556,R_MINOR:6356752.3142,R_MAJOR:6378137,project:function(a){var b=L.LatLng.DEG_TO_RAD,c=this.MAX_LATITUDE,d=this.R_MAJOR,e=a.lng*b*d,a=Math.max(Math.min(c,a.lat),-c)*b,b=this.R_MINOR/d,b=Math.sqrt(1-b*b),c=b*Math.sin(a),c=Math.pow((1-c)/(1+c),b*0.5),a=-d*Math.log(Math.tan(0.5*(Math.PI*0.5-a))/c);return new L.Point(e,a)},unproject:function(a,b){for(var c=L.LatLng.RAD_TO_DEG,d=this.R_MAJOR,e=a.x*c/d,f=this.R_MINOR/d,f=Math.sqrt(1-f*f),d=Math.exp(-a.y/d), +g=Math.PI/2-2*Math.atan(d),h=15,j=0.1;Math.abs(j)>1.0E-7&&--h>0;)j=f*Math.sin(g),j=Math.PI/2-2*Math.atan(d*Math.pow((1-j)/(1+j),0.5*f))-g,g+=j;return new L.LatLng(g*c,e,b)}};L.CRS={latLngToPoint:function(a,b){return this.transformation._transform(this.projection.project(a),b)},pointToLatLng:function(a,b,c){return this.projection.unproject(this.transformation.untransform(a,b),c)},project:function(a){return this.projection.project(a)}};L.CRS.EPSG3857=L.Util.extend({},L.CRS,{code:"EPSG:3857",projection:L.Projection.SphericalMercator,transformation:new L.Transformation(0.5/Math.PI,0.5,-0.5/Math.PI,0.5),project:function(a){return this.projection.project(a).multiplyBy(6378137)}});L.CRS.EPSG900913=L.Util.extend({},L.CRS.EPSG3857,{code:"EPSG:900913"});L.CRS.EPSG4326=L.Util.extend({},L.CRS,{code:"EPSG:4326",projection:L.Projection.LonLat,transformation:new L.Transformation(1/360,0.5,-1/360,0.5)});L.CRS.EPSG3395=L.Util.extend({},L.CRS,{code:"EPSG:3395",projection:L.Projection.Mercator,transformation:function(){var a=L.Projection.Mercator;return new L.Transformation(0.5/(Math.PI*a.R_MAJOR),0.5,-0.5/(Math.PI*a.R_MINOR),0.5)}()});L.LayerGroup=L.Class.extend({initialize:function(a){this._layers={};if(a)for(var b=0,c=a.length;ba.max.x||ba.max.y))this._tiles[d].src="",this._tiles[d].parentNode==this._container&&this._container.removeChild(this._tiles[d]),delete this._tiles[d]},_addTile:function(a){var b= +this._getTilePos(a),c=this._map.getZoom(),d=a.x+":"+a.y,e=1<=e)){var f=this._createTile();L.DomUtil.setPosition(f,b);this._tiles[d]=f;if(this.options.scheme=="tms")a.y=e-a.y-1;this._loadTile(f,a,c);this._container.appendChild(f)}},_getTilePos:function(a){var b=this._map.getPixelOrigin();return a.multiplyBy(this.options.tileSize).subtract(b)},getTileUrl:function(a,b){return this._url.replace("{s}",this.options.subdomains[(a.x+a.y)%this.options.subdomains.length]).replace("{z}", +b).replace("{x}",a.x).replace("{y}",a.y)},_createTileProto:function(){this._tileImg=L.DomUtil.create("img","leaflet-tile");this._tileImg.galleryimg="no";var a=this.options.tileSize;this._tileImg.style.width=a+"px";this._tileImg.style.height=a+"px"},_createTile:function(){var a=this._tileImg.cloneNode(!1);a.onselectstart=a.onmousemove=L.Util.falseFn;return a},_loadTile:function(a,b,c){a._layer=this;a.onload=this._tileOnLoad;a.onerror=this._tileOnError;a.src=this.getTileUrl(b,c)},_tileOnLoad:function(){var a= +this._layer;this.className+=" leaflet-tile-loaded";a.fire("tileload",{tile:this,url:this.src});a._tilesToLoad--;a._tilesToLoad||a.fire("load")},_tileOnError:function(){var a=this._layer;a.fire("tileerror",{tile:this,url:this.src});if(a=a.options.errorTileUrl)this.src=a}});L.TileLayer.WMS=L.TileLayer.extend({defaultWmsParams:{service:"WMS",request:"GetMap",version:"1.1.1",layers:"",styles:"",format:"image/jpeg",transparent:!1},initialize:function(a,b){this._url=a;this.wmsParams=L.Util.extend({},this.defaultWmsParams);this.wmsParams.width=this.wmsParams.height=this.options.tileSize;for(var c in b)this.options.hasOwnProperty(c)||(this.wmsParams[c]=b[c]);L.Util.setOptions(this,b)},onAdd:function(a){this.wmsParams[parseFloat(this.wmsParams.version)>=1.3?"crs":"srs"]=a.options.crs.code; +L.TileLayer.prototype.onAdd.call(this,a)},getTileUrl:function(a){var b=this.options.tileSize,a=a.multiplyBy(b),b=a.add(new L.Point(b,b)),a=this._map.unproject(a,this._zoom,!0),b=this._map.unproject(b,this._zoom,!0),a=this._map.options.crs.project(a),b=this._map.options.crs.project(b),b=[a.x,b.y,b.x,a.y].join(",");return this._url+L.Util.getParamString(this.wmsParams)+"&bbox="+b}});L.TileLayer.Canvas=L.TileLayer.extend({options:{async:!1},initialize:function(a){L.Util.setOptions(this,a)},_createTileProto:function(){this._canvasProto=L.DomUtil.create("canvas","leaflet-tile");var a=this.options.tileSize;this._canvasProto.width=a;this._canvasProto.height=a},_createTile:function(){var a=this._canvasProto.cloneNode(!1);a.onselectstart=a.onmousemove=L.Util.falseFn;return a},_loadTile:function(a,b,c){a._layer=this;this.drawTile(a,b,c);this.options.async||this.tileDrawn(a)},drawTile:function(){}, +tileDrawn:function(a){this._tileOnLoad.call(a)}});L.ImageOverlay=L.Class.extend({includes:L.Mixin.Events,initialize:function(a,b){this._url=a;this._bounds=b},onAdd:function(a){this._map=a;this._image||this._initImage();a.getPanes().overlayPane.appendChild(this._image);a.on("viewreset",this._reset,this);this._reset()},onRemove:function(a){a.getPanes().overlayPane.removeChild(this._image);a.off("viewreset",this._reset,this)},_initImage:function(){this._image=L.DomUtil.create("img","leaflet-image-layer");this._image.style.visibility="hidden";L.Util.extend(this._image, +{galleryimg:"no",onselectstart:L.Util.falseFn,onmousemove:L.Util.falseFn,onload:this._onImageLoad,src:this._url})},_reset:function(){var a=this._map.latLngToLayerPoint(this._bounds.getNorthWest()),b=this._map.latLngToLayerPoint(this._bounds.getSouthEast()).subtract(a);L.DomUtil.setPosition(this._image,a);this._image.style.width=b.x+"px";this._image.style.height=b.y+"px"},_onImageLoad:function(){this.style.visibility=""}});L.Popup=L.Class.extend({includes:L.Mixin.Events,options:{maxWidth:300,autoPan:!0,closeButton:!0,offset:new L.Point(0,2),autoPanPadding:new L.Point(5,5)},initialize:function(a){L.Util.setOptions(this,a)},onAdd:function(a){this._map=a;this._container||this._initLayout();this._updateContent();this._container.style.opacity="0";this._map._panes.popupPane.appendChild(this._container);this._map.on("viewreset",this._updatePosition,this);if(this._map.options.closePopupOnClick)this._map.on("preclick",this._close, +this);this._update();this._container.style.opacity="1";this._opened=!0},onRemove:function(a){a._panes.popupPane.removeChild(this._container);a.off("viewreset",this._updatePosition,this);a.off("click",this._close,this);this._container.style.opacity="0";this._opened=!1},setLatLng:function(a){this._latlng=a;this._opened&&this._update();return this},setContent:function(a){this._content=a;this._opened&&this._update();return this},_close:function(){this._opened&&this._map.removeLayer(this)},_initLayout:function(){this._container= +L.DomUtil.create("div","leaflet-popup");this._closeButton=L.DomUtil.create("a","leaflet-popup-close-button",this._container);this._closeButton.href="#close";this._closeButton.onclick=L.Util.bind(this._onCloseButtonClick,this);this._wrapper=L.DomUtil.create("div","leaflet-popup-content-wrapper",this._container);L.DomEvent.disableClickPropagation(this._wrapper);this._contentNode=L.DomUtil.create("div","leaflet-popup-content",this._wrapper);this._tipContainer=L.DomUtil.create("div","leaflet-popup-tip-container", +this._container);this._tip=L.DomUtil.create("div","leaflet-popup-tip",this._tipContainer)},_update:function(){this._container.style.visibility="hidden";this._updateContent();this._updateLayout();this._updatePosition();this._container.style.visibility="";this._adjustPan()},_updateContent:function(){if(this._content)typeof this._content=="string"?this._contentNode.innerHTML=this._content:(this._contentNode.innerHTML="",this._contentNode.appendChild(this._content))},_updateLayout:function(){this._container.style.width= +"";this._container.style.whiteSpace="nowrap";var a=this._container.offsetWidth;this._container.style.width=(a>this.options.maxWidth?this.options.maxWidth:a)+"px";this._container.style.whiteSpace="";this._containerWidth=this._container.offsetWidth},_updatePosition:function(){var a=this._map.latLngToLayerPoint(this._latlng);this._containerBottom=-a.y-this.options.offset.y;this._containerLeft=a.x-Math.round(this._containerWidth/2)+this.options.offset.x;this._container.style.bottom=this._containerBottom+ +"px";this._container.style.left=this._containerLeft+"px"},_adjustPan:function(){if(this.options.autoPan){var a=this._container.offsetHeight,b=this._map.layerPointToContainerPoint(new L.Point(this._containerLeft,-a-this._containerBottom)),c=new L.Point(0,0),d=this.options.autoPanPadding,e=this._map.getSize();if(b.x<0)c.x=b.x-d.x;if(b.x+this._containerWidth>e.x)c.x=b.x+this._containerWidth-e.x+d.x;if(b.y<0)c.y=b.y-d.y;if(b.y+a>e.y)c.y=b.y+a-e.y+d.y;(c.x||c.y)&&this._map.panBy(c)}},_onCloseButtonClick:function(a){this._close(); +L.DomEvent.stop(a)}});L.Icon=L.Class.extend({iconUrl:L.ROOT_URL+"images/marker.png",shadowUrl:L.ROOT_URL+"images/marker-shadow.png",iconSize:new L.Point(25,41),shadowSize:new L.Point(41,41),iconAnchor:new L.Point(13,41),popupAnchor:new L.Point(0,-33),initialize:function(a){if(a)this.iconUrl=a},createIcon:function(){return this._createIcon("icon")},createShadow:function(){return this._createIcon("shadow")},_createIcon:function(a){var b=this[a+"Size"],c=this[a+"Url"],d=this._createImg(c);if(!c)return null;d.className="leaflet-marker-"+ +a;d.style.marginLeft=-this.iconAnchor.x+"px";d.style.marginTop=-this.iconAnchor.y+"px";if(b)d.style.width=b.x+"px",d.style.height=b.y+"px";return d},_createImg:function(a){var b;L.Browser.ie6?(b=document.createElement("div"),b.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+a+'")'):(b=document.createElement("img"),b.src=a);return b}});L.Marker=L.Class.extend({includes:L.Mixin.Events,options:{icon:new L.Icon,title:"",clickable:!0,draggable:!1},initialize:function(a,b){L.Util.setOptions(this,b);this._latlng=a},onAdd:function(a){this._map=a;this._initIcon();a.on("viewreset",this._reset,this);this._reset()},onRemove:function(a){this._removeIcon();a.off("viewreset",this._reset,this)},getLatLng:function(){return this._latlng},setLatLng:function(a){this._latlng=a;this._reset()},setIcon:function(a){this._removeIcon();this._icon=this._shadow= +null;this.options.icon=a;this._initIcon()},_initIcon:function(){if(!this._icon){this._icon=this.options.icon.createIcon();if(this.options.title)this._icon.title=this.options.title;this._initInteraction()}if(!this._shadow)this._shadow=this.options.icon.createShadow();this._map._panes.markerPane.appendChild(this._icon);this._shadow&&this._map._panes.shadowPane.appendChild(this._shadow)},_removeIcon:function(){this._map._panes.markerPane.removeChild(this._icon);this._shadow&&this._map._panes.shadowPane.removeChild(this._shadow)}, +_reset:function(){var a=this._map.latLngToLayerPoint(this._latlng).round();L.DomUtil.setPosition(this._icon,a);this._shadow&&L.DomUtil.setPosition(this._shadow,a);this._icon.style.zIndex=a.y},_initInteraction:function(){if(this.options.clickable){this._icon.className+=" leaflet-clickable";L.DomEvent.addListener(this._icon,"click",this._onMouseClick,this);for(var a=["dblclick","mousedown","mouseover","mouseout"],b=0;b';a=a.firstChild;a.style.behavior="url(#default#VML)";return a&&typeof a.adj=="object"}(); +L.Path=L.Path.SVG||!L.Path.VML?L.Path:L.Path.extend({statics:{CLIP_PADDING:0.02},_createElement:function(){try{return document.namespaces.add("lvml","urn:schemas-microsoft-com:vml"),function(a){return document.createElement("')}}catch(a){return function(a){return document.createElement("<"+a+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),_initRoot:function(){if(!this._map._pathRoot)this._map._pathRoot=document.createElement("div"),this._map._pathRoot.className= +"leaflet-vml-container",this._map._panes.overlayPane.appendChild(this._map._pathRoot),this._map.on("moveend",this._updateViewport,this),this._updateViewport()},_initPath:function(){this._container=this._createElement("shape");this._container.className+=" leaflet-vml-shape"+(this.options.clickable?" leaflet-clickable":"");this._container.coordsize="1 1";this._path=this._createElement("path");this._container.appendChild(this._path);this._map._pathRoot.appendChild(this._container)},_initStyle:function(){this.options.stroke? +(this._stroke=this._createElement("stroke"),this._stroke.endcap="round",this._container.appendChild(this._stroke)):this._container.stroked=!1;this.options.fill?(this._container.filled=!0,this._fill=this._createElement("fill"),this._container.appendChild(this._fill)):this._container.filled=!1;this._updateStyle()},_updateStyle:function(){if(this.options.stroke)this._stroke.weight=this.options.weight+"px",this._stroke.color=this.options.color,this._stroke.opacity=this.options.opacity;if(this.options.fill)this._fill.color= +this.options.fillColor||this.options.color,this._fill.opacity=this.options.fillOpacity},_updatePath:function(){this._container.style.display="none";this._path.v=this.getPathString()+" ";this._container.style.display=""}});L.Path.include({bindPopup:function(a,b){if(!this._popup||this._popup.options!==b)this._popup=new L.Popup(b);this._popup.setContent(a);if(!this._openPopupAdded)this.on("click",this._openPopup,this),this._openPopupAdded=!0;return this},_openPopup:function(a){this._popup.setLatLng(a.latlng);this._map.openPopup(this._popup)}});L.Polyline=L.Path.extend({initialize:function(a,b){L.Path.prototype.initialize.call(this,b);this._latlngs=a},options:{smoothFactor:1,noClip:!1,updateOnMoveEnd:!0},projectLatlngs:function(){this._originalPoints=[];for(var a=0,b=this._latlngs.length;a0?Math.ceil(b):Math.floor(b))),a=b-a,c=this._centerOffset.subtract(this._delta).divideBy(this._scale),d=this._map.unproject(this._map.getPixelOrigin().add(this._startCenter).add(c));L.DomEvent.removeListener(document,"touchmove",this._onTouchMove);L.DomEvent.removeListener(document,"touchend",this._onTouchEnd);this._map._runAnimation(d,b,Math.pow(2,a)/this._scale,this._startCenter.add(c))}}});L.Handler.ScrollWheelZoom=L.Handler.extend({enable:function(){if(!this._enabled)L.DomEvent.addListener(this._map._container,"mousewheel",this._onWheelScroll,this),this._delta=0,this._enabled=!0},disable:function(){if(this._enabled)L.DomEvent.removeListener(this._map._container,"mousewheel",this._onWheelScroll),this._enabled=!1},_onWheelScroll:function(a){this._delta+=L.DomEvent.getWheelDelta(a);this._lastMousePos=this._map.mouseEventToContainerPoint(a);clearTimeout(this._timer);this._timer=setTimeout(L.Util.bind(this._performZoom, +this),50);L.DomEvent.preventDefault(a)},_performZoom:function(){var a=Math.round(this._delta);this._delta=0;if(a){var b=this._getCenterForScrollWheelZoom(this._lastMousePos,a),a=this._map.getZoom()+a;this._map._limitZoom(a)!=this._map._zoom&&this._map.setView(b,a)}},_getCenterForScrollWheelZoom:function(a,b){var c=this._map.getPixelBounds().getCenter(),d=this._map.getSize().divideBy(2),d=a.subtract(d).multiplyBy(1-Math.pow(2,-b));return this._map.unproject(c.add(d),this._map._zoom,!0)}});L.Handler.DoubleClickZoom=L.Handler.extend({enable:function(){if(!this._enabled)this._map.on("dblclick",this._onDoubleClick,this._map),this._enabled=!0},disable:function(){if(this._enabled)this._map.off("dblclick",this._onDoubleClick,this._map),this._enabled=!1},_onDoubleClick:function(a){this.setView(a.latlng,this._zoom+1)}});L.Handler.ShiftDragZoom=L.Handler.extend({initialize:function(a){this._map=a;this._container=a._container;this._pane=a._panes.overlayPane},enable:function(){if(!this._enabled)L.DomEvent.addListener(this._container,"mousedown",this._onMouseDown,this),this._enabled=!0},disable:function(){if(this._enabled)L.DomEvent.removeListener(this._container,"mousedown",this._onMouseDown),this._enabled=!1},_onMouseDown:function(a){if(!a.shiftKey||a.which!=1&&a.button!=1)return!1;L.DomUtil.disableTextSelection(); +this._startLayerPoint=this._map.mouseEventToLayerPoint(a);this._box=L.DomUtil.create("div","leaflet-zoom-box",this._pane);L.DomUtil.setPosition(this._box,this._startLayerPoint);this._container.style.cursor="crosshair";L.DomEvent.addListener(document,"mousemove",this._onMouseMove,this);L.DomEvent.addListener(document,"mouseup",this._onMouseUp,this);L.DomEvent.preventDefault(a)},_onMouseMove:function(a){var b=this._map.mouseEventToLayerPoint(a),a=b.x-this._startLayerPoint.x,c=b.y-this._startLayerPoint.y, +b=new L.Point(Math.min(b.x,this._startLayerPoint.x),Math.min(b.y,this._startLayerPoint.y));L.DomUtil.setPosition(this._box,b);this._box.style.width=Math.abs(a)-4+"px";this._box.style.height=Math.abs(c)-4+"px"},_onMouseUp:function(a){this._pane.removeChild(this._box);this._container.style.cursor="";L.DomUtil.enableTextSelection();L.DomEvent.removeListener(document,"mousemove",this._onMouseMove);L.DomEvent.removeListener(document,"mouseup",this._onMouseUp);a=this._map.mouseEventToLayerPoint(a);this._map.fitBounds(new L.LatLngBounds(this._map.layerPointToLatLng(this._startLayerPoint), +this._map.layerPointToLatLng(a)))}});L.Handler.MarkerDrag=L.Handler.extend({initialize:function(a){this._marker=a},enable:function(){if(!this._enabled){if(!this._draggable)this._draggable=new L.Draggable(this._marker._icon,this._marker._icon),this._draggable.on("dragstart",this._onDragStart,this),this._draggable.on("drag",this._onDrag,this),this._draggable.on("dragend",this._onDragEnd,this);this._draggable.enable();this._enabled=!0}},disable:function(){if(this._enabled)this._draggable.disable(),this._enabled=!1},moved:function(){return this._draggable&& +this._draggable._moved},_onDragStart:function(){this._marker.closePopup();this._marker.fire("movestart");this._marker.fire("dragstart")},_onDrag:function(){var a=L.DomUtil.getPosition(this._marker._icon);L.DomUtil.setPosition(this._marker._shadow,a);this._marker._latlng=this._marker._map.layerPointToLatLng(a);this._marker.fire("move");this._marker.fire("drag")},_onDragEnd:function(){this._marker.fire("moveend");this._marker.fire("dragend")}});L.Control={};L.Control.Position={TOP_LEFT:"topLeft",TOP_RIGHT:"topRight",BOTTOM_LEFT:"bottomLeft",BOTTOM_RIGHT:"bottomRight"};L.Control.Zoom=L.Class.extend({onAdd:function(a){this._map=a;this._container=L.DomUtil.create("div","leaflet-control-zoom");this._zoomInButton=this._createButton("Zoom in","leaflet-control-zoom-in",this._map.zoomIn,this._map);this._zoomOutButton=this._createButton("Zoom out","leaflet-control-zoom-out",this._map.zoomOut,this._map);this._container.appendChild(this._zoomInButton);this._container.appendChild(this._zoomOutButton)},getContainer:function(){return this._container},getPosition:function(){return L.Control.Position.TOP_LEFT}, +_createButton:function(a,b,c,d){var e=document.createElement("a");e.href="#";e.title=a;e.className=b;L.DomEvent.disableClickPropagation(e);L.DomEvent.addListener(e,"click",L.DomEvent.preventDefault);L.DomEvent.addListener(e,"click",c,d);return e}});L.Control.Attribution=L.Class.extend({onAdd:function(a){this._container=L.DomUtil.create("div","leaflet-control-attribution");this._map=a;this._prefix='Powered by Leaflet';this._attributions={};this._update()},getPosition:function(){return L.Control.Position.BOTTOM_RIGHT},getContainer:function(){return this._container},setPrefix:function(a){this._prefix=a},addAttribution:function(a){a&&(this._attributions[a]=!0,this._update())},removeAttribution:function(a){a&& +(delete this._attributions[a],this._update())},_update:function(){if(this._map){var a=[],b;for(b in this._attributions)this._attributions.hasOwnProperty(b)&&a.push(b);b=[];this._prefix&&b.push(this._prefix);a.length&&b.push(a.join(", "));this._container.innerHTML=b.join(" — ")}}});L.Map=L.Class.extend({includes:L.Mixin.Events,options:{crs:L.CRS.EPSG3857||L.CRS.EPSG4326,scale:function(a){return 256*(1< Project ..." and create a +"Java Project." You will see an options screen. Give the project a +name, select "Create project from existing source," and choose the +root of the checked-out source tree as the existing directory. Verify +that you are using JRE version 6 or higher. + +Eclipse can use the build.xml file to discover rules. When you +navigate to the build.xml file, you will see all the build rules in +the "Outline" pane. Run the "jar" rule to build the compiler in +build/compiler.jar. + + +// +// Running The Closure Compiler +// + +Once you have the jar binary, running the Closure Compiler is straightforward. + +On the command line, type + +java -jar compiler.jar + +This starts the compiler in interactive mode. Type + +var x = 17 + 25; + +then hit "Enter", then hit "Ctrl-Z" (on Windows) or "Ctrl-D" (on Mac or Linux) +and "Enter" again. The Compiler will respond: + +var x=42; + +The Closure Compiler has many options for reading input from a file, +writing output to a file, checking your code, and running +optimizations. To learn more, type + +java -jar compiler.jar --help + +You can read more detailed documentation about the many flags at +http://code.google.com/closure/compiler/docs/gettingstarted_app.html + + +// +// Compiling Multiple Scripts +// + +If you have multiple scripts, you should compile them all together with +one compile command. + +java -jar compiler.jar --js=in1.js --js=in2.js ... --js_output_file=out.js + +The Closure Compiler will concatenate the files in the order they're +passed at the command line. + +If you need to compile many, many scripts together, you may start to +run into problems with managing dependencies between scripts. You +should check out the Closure Library. It contains functions for +enforcing dependencies between scripts, and a tool called calcdeps.py +that knows how to give scripts to the Closure Compiler in the right +order. + +http://code.google.com/p/closure-library/ + +// +// Licensing +// + +Unless otherwise stated, all source files are licensed under +the Apache License, Version 2.0. + + +----- +Code under: +src/com/google/javascript/rhino +test/com/google/javascript/rhino + +URL: http://www.mozilla.org/rhino +Version: 1.5R3, with heavy modifications +License: Netscape Public License and MPL / GPL dual license + +Description: A partial copy of Mozilla Rhino. Mozilla Rhino is an +implementation of JavaScript for the JVM. The JavaScript parser and +the parse tree data structures were extracted and modified +significantly for use by Google's JavaScript compiler. + +Local Modifications: The packages have been renamespaced. All code not +relavant to parsing has been removed. A JSDoc parser and static typing +system have been added. + + +----- +Code in: +lib/libtrunk_rhino_parser_jarjared.jar + +Rhino +URL: http://www.mozilla.org/rhino +Version: Trunk +License: Netscape Public License and MPL / GPL dual license + +Description: Mozilla Rhino is an implementation of JavaScript for the JVM. + +Local Modifications: None. We've used JarJar to renamespace the code +post-compilation. See: +http://code.google.com/p/jarjar/ + + +----- +Code in: +lib/args4j.jar + +Args4j +URL: https://args4j.dev.java.net/ +Version: 2.0.12 +License: MIT + +Description: +args4j is a small Java class library that makes it easy to parse command line +options/arguments in your CUI application. + +Local Modifications: None. + + +----- +Code in: +lib/guava.jar + +Guava Libraries +URL: http://code.google.com/p/guava-libraries/ +Version: r08 +License: Apache License 2.0 + +Description: Google's core Java libraries. + +Local Modifications: None. + + +----- +Code in: +lib/jsr305.jar + +Annotations for software defect detection +URL: http://code.google.com/p/jsr-305/ +Version: svn revision 47 +License: BSD License + +Description: Annotations for software defect detection. + +Local Modifications: None. + + +---- +Code in: +lib/junit.jar + +JUnit +URL: http://sourceforge.net/projects/junit/ +Version: 4.8.2 +License: Common Public License 1.0 + +Description: A framework for writing and running automated tests in Java. + +Local Modifications: None. + + +--- +Code in: +lib/protobuf-java.jar + +Protocol Buffers +URL: http://code.google.com/p/protobuf/ +Version: 2.3.0 +License: New BSD License + +Description: Supporting libraries for protocol buffers, +an encoding of structured data. + +Local Modifications: None + + +--- +Code in: +lib/ant.jar +lib/ant-launcher.jar + +URL: http://ant.apache.org/bindownload.cgi +Version: 1.8.1 +License: Apache License 2.0 +Description: + Ant is a Java based build tool. In theory it is kind of like "make" + without make's wrinkles and with the full portability of pure java code. + +Local Modifications: None + + +--- +Code in: +lib/json.jar +URL: http://json.org/java/index.html +Version: JSON version 20090211 +License: MIT license +Description: +JSON is a set of java files for use in transmitting data in JSON format. + +Local Modifications: None + +--- +Code in: +tools/maven-ant-tasks-2.1.1.jar +URL: http://maven.apache.org +Version 2.1.1 +License: Apache License 2.0 +Description: + Maven Ant tasks are used to manage dependencies and to install/deploy to + maven repositories. + +Local Modifications: None diff --git a/extlib/leaflet/lib/closure-compiler/compiler.jar b/extlib/leaflet/lib/closure-compiler/compiler.jar new file mode 100644 index 0000000000000000000000000000000000000000..2f6837d3e2d40b0cb50f8566deebc2330f6d4e78 GIT binary patch literal 4332498 zcmbTe1#n(Tk1lLGF*7qWGecr#W{jDcnf;oXIc8>NW`>yAj+r55`}gd8yE~J;d%ye7 zTh*>pE=k?3)}vPIsE?fFr_WG8fBdd9bNT+`;a`6sfj$FC3oG%{ipz-5zl{O`$^DBI z0_f_4^tp%LBJ_ha_oJbFwErTN=9du{5mr>9lNOO4t%2%gK=9q>jd2++7K}pU&(SjXe0qKNJ>4W(=A#UaUQ5BEs?d0gcNV@UR4ng@p4V^+WtcOq z@_3w*TUPaA3LY9XzN8agCRIe3s|(0e`Q+ZX?oSkH$JmXsTaPgQAZ#~Mg=tLLDS$5c z70)K?sFP7~R-z35KZgzkbn@FQKYt9}z{ZOHf2V-{7lnz9jfthv|Ai3s?}Ua%`c5V$ zX4WQuVLAV;cl`g2#lgnO-oVI8&-O3OzYm@C-!t3V+c?_%Ma1v@qy1fkxt_D0gMq!7 zt>a&K{#fh}vj6(wemwo5v482~FFfWBAOHXBh%bL*CH!}+de(pK`FD1rf5&cUWb5#k zk^jz5{O|Zp?DcF-|03Y`sT2G=0p|a=?tfda|EV}zJ$r}0+sp4W!1-SXU~g(>{nwTL zo%4U6`=6ZV4vucNf3@!41^nS8{)6LME_s1mvqR`)kBL7d~zk~622CV-x z!~ekM?|gsg{=Y~6AEWv|+wgz;f!{??|G$d(`%*vv{Ql-<&^1R<B5Y6jBZbNUR5#*v&aZDQaAY>fAA<1+Z60GXz3%8Vb38sS1wPN`-IlZIcg# zr)4QpBCYMgL!}FoTUG|rj>=VuV+cQD#4|)ePV(0l>0b#kIqmK{J}sPaGrO2vtotyq zzuRul><*BU#!r+`KPp>UX>T%&_bQG#how(tb-6CP6!_>~9#3Bmn>NwtD)gdokz@!_ z2jpY+SN!ZbO+)vUUix86#(+dm9 z&N#7E)nUU{S7?lD-lRZL40hK^ZtwVghPcvP&~*Nc1@Indri+R$=&)x>WK{nmsTRvT zNPhk$Lz3um)gZsI22Jv?o*#zXzO+K!{9HGo9!+M3u4-!bTXk;Uk^OjW0y@fNxoN9R zO6*U^w3{DCrLit5W2k1gGxP}gUxp(Q(q=&P3C4oJYR&L`yArDqA9?l)Dsm&{3|VI; z4*3=uz#C!Te(b_z8M)qK?s^(1wbEZz)w zV4eO7xb-W==tULq36Y!H(L!}fFl;^KYy0%A*rh!J*VLiIFS-vb$|1qN7)$~D7qS%# ze#V#SPALYhH6esZ(uXDj*Nwj2ji9p7?Yd@Ye7|PC+!0-a!q7=a-IwKKF`H%M;Ce3C2aLI#}6LM zk46{>qKN>&q1~db=LVbUd<*t>9rTF^Aoha*0fl@x6}tZ)I{0(inM&GA({4zv8D*7UU8$v7O~J!5XSYmRBPJ+F;6I=U8NX`U=y|TdxMo>chRis=fle zgUv1oLDQ~s&FFuf-elc-ZA2eryn4UfVf#XkyG{q3;59Rz_CSbqU z^v((%&^0IIY%oW$0;Bk@Oep9RUaC)8Z`tMri1pDY_Od!TjhBoiWSmN;pHQ#?2K1Pc zId_5y>0wE?6|f_^H3M+3rKI{eGH3C)n2AsxrlA3R0&owI;H{USy|3D?zP6WDUgRC( z7`0ktlD;Z~@Rl#oOMDNz+i{uJ(Q(Y1a1Kbn@|*cL*SB4v(ddemkl#T`gg z;x5=_U+F$Q;R*3P=F7D+9UhmjEyRpp(Q$Bm_Oq1;B-{Za2+a0EI|fm|2kN5Cn1@I? zora=-L`pRNby*rpzz(pMxXJWU^yz6<5|1cFd%R;Q|AAax43<6mzTkz7w;ZQJ(F-5M z5P}(?>k#J#?J#;Kjj%*4&Q1G#^Y3^tX`}mj^??HcU?3pIe~$+dGfN{m8wWE-GaKta zAz>9&Bh&X42H&cy8v-rR_9An0Bc|Bc>z!C*z_I``0r4rwMOxjCu_>|Q0&<&W z%vchD<~v1I+^*pe&sOt94D!HTUOBf%h%bBeJZo5I;d)1ungIjbOu7T z;3IU3%u|H?MeY#zdj1eQXP}|-eyqZ5hz>RW{N4XL7yao|$y%VAN)8t0SUWgb8U2?#{o~Mw(q3eh_oHXPM-G7qjxK7akOF0G4nsh4HLxDF zYoZ7KGOz#eyG8JjhszrGc~;f)r*0?%0B~OnAz7eGvj$>eofloDKYH#gkC~Rr(Zq{X zhzom(WqfL>F$QANY=Rbc9`pb`l~uzp37zx>ab>8n_zNcl=aVlh3Y@)rHl9)rq}aW= zW#M-`dh5#GPYI8tQ4oPy*_~C=z=U59<@e;b*gtLj-FOU-F>J;@oM|p75D@P_n7oLd z!N-o`_Mg60^CM+22zHMGZl%Dm{6B1 za8;`lxmO!l9GDrVM|`aD#SAbg<`_iCuxkhlD9k-~?~jjFlG&VZXtz$+SaG3U%?K%E zlHq5@9U8~hSWu%+B`aZ_qHMv;`;Ok=cxS;+kJiF1D7mu8j7{=oX7L6LSG=2d1tx&w znacphYpjMB5(*5XH?5RPJOC)M-3S}1$1NbN)EtFK56uB4bk{hWa7m%ZRuw>^)$axN zD=BBrPMY?Bv+);0M}2dB7Bdsyl(ezloGtH4cp!Mn7xApmQ#Y3+v3)SaL$DhAnUC5W zfQ>#_iKKGR1zXIgtQG9Wn^6^WiuRPzbIc)99)YlUP{?pK{X2PKvU%?}DVuRYiA zI!uz@<8q#hW3|ijibCPj0AFmLop4MMdSmAi1r@^!FxgLO1Yd?d6pEM~NuP*s-kE|u zO)f08W4mz4;Yin3<+X)iws2mJALhQ&YqQFoh#eD5hOn1#>*ANeO|bMQ4~M3A&Dc3dc)JzO2ebWZbQSLRB88EDgP*i-?#IYz(t8Sc}HqS?` z_(~L#G~ikuvGCvwYDLnhIsivET88QvS1NfEP1 zIqji>LA2v(yX;E#_)pM2U1zRu#l}qyG2DF%O^B~NALyn0rc-EIn45( z&-g&c#z*7&2PjctBw_p$B8d_Ff8>UQeM;jrK6`vdKNk#Vr=Zh9LHB=V!ObO=mY8$p zK*#GA43(GNg1JeZ+I>Gbc>|Io+Eug7hdJp`9(*kO!77cuXitObJbEXi8#t%w|=R;Lmb+-pB)eO$J{*r|P7^QL&2==Do~zaXmvR{Pd{#ez~{JOdEX% z|4ot<;mjdW*LE7FUv_R!zlB+ED-O!aA1<-y!#nW*vpN5<)yU{s8T~o+f;ef}-meIN zP11gn%Wl17-+ZC8c z-)Db*8N9V-W5x`pvuXBB21gz}xB=ZAj(O9;ZIarcsUc(f@XE(#WU#A#bonlErt22$ z<`K|7FE30#x7tUkJlXn8Td{hoCM!hbD&hVC$wg%LWwaG#gplIhD-JZqzI7&=hE%P# zn!`@xy!503etvmDN>(Zr7SknF+wSSNAtkU^m*X>ClGDJAsw}$Ar#70XL;B%ce*5D5 zdK6^^-LH#^`{f`Y-$47YghgXw$iJ~h6%Aun4P%olGVD4+9i?7RhpUlCUYs+ziFE3= ze|3MNw4tG?E0-E#Qcv^*=AI_>0{*+5j#DajcYLgw`Nx_G|FbodGP5=kvDY)PGO~93 zm&wXc$jpD7#Lw%cOe9b-dhoe+zp23lh@&?7_mYsYVo5X5==Np)l7l+y$nPNK^PSr6 zg~etkLyCmP>vp*Um3raCHP%~mi}#pvk?Fk2%zi#wTyy{`Yd*;hrM8mN>-0v`(i&g| zXUA~_U7H>54Wue$2O&bSy?yf*FGMjtwT5EBFQ8&QfqB|K-@k73<(+4&$&Qs6_w)Vn zZNFZUoT<#T55`I5XPEk{EzSlL6PG(-^tUm25xl~go2~CZb6^*Hq~V)vS9@^%hGHiJ zgic8E2nyvBNlGOA6;y?VT6o|Z2SXA88i~p>1HS?a4oY&1f~4#fM7p1cU=wroQ$}h@ zvW$PpWepR=(>&Qbip65OOy1DEDyQgGDl^29f>uF=)rTp@+w*6UaD6{C%@Zqyc5CZW zG^u*?S#6%`n%=82`>uH5FJGhst{Hy8!eh%R!pD3(Jif);-~C0Xr*tl({E5IPTx3RO^*x6u0DK~M zQCF9X1!7O8AL!`<@)fcbp|`GI03Wz^qhfQEFwNU<_R;QA$lm*58}lDWC&7PaA95er zIwM6#J;#5cI#JO=c1{N$i&#{qV=qI+G%)Z9$rgk1J!ITdpq_SAeWg8z#WV?)(GX!4CBr-cT zYgN&uu+g_vog@v!NSV-u&32xiB*KTgpGE344$Jag$1@CkM`5FGC(Bh#g4!&<3Zti^ z98a^>psLi>7%;jmJrsd&DRvFRM4e(NBZ@wts@&!htd>htWb{o4#5LWYtMaJSdVSANyTayjlXUKu;g0f!vQ$Z@ zh)AXc?j+wke;}U-tqJzs>qaa-QL1f}UD86yx>XG&tyq=bgErYZr_IzC@vWv(b0al~ z1BNfwO%lw#V(^Tr?@}1sLFPvq2;o?#L&D|Kds75iX8tBP1OZ*rr=1*WLaf4Q05G78 zq+ponD^KB>pIMLg=lWAR|5Xl8Q$Gzr8N@8~xGA?`U4ZVVoGOSqTEZdJ94i8z)F=PO zg|qxEfoyYv+TsF%3kWaMa0U!(ghYf8{O`%JVjkk^Aq>kZe3=@bW(9tc=V}O86QuE8 z#rMD=#M>e_9ik9f`Mdhmp#U>(jyeVsBn+I&eX`1)sX7zXUKjMp&GS=B>J-X=&>qA( z%m-R6x(c4!fydc(L2MOcY>n*{&~Vu*HO z0;@*&`UMZ_N-ShZfG73}WhxLgxh8~Ek5(=&er}RcZ?OE;}jeUIESc1H(b8rr|+0PLdcus9p%u&oT z%Y$1diBNv=)Iw`=*aj zWNh;^Zfo!{7(>^Y`L$YUzb_e4bxZSG{jp_3$=n#~g*$QNZ!uMEapR%D81r@2LdG!U8Nv`Dt5EW*bGD!=C0uFI%s>q= zOb)+jX9P;yc}e!LN{KBQt36fK3#r&(E^y6OC3!a8|GLW-#jCe#42jC>l_2g)# zm2AO14dTR%h-?HXQ^=L-6-@n8ehK_x6i$Gbz*%!>>eElcheOeAq8TdB*l4HjvtK|y zpKQUmnSHOQTCseWfBBw+5%^PBL3fMc5{Twz&nS}W!a5|&;Gf5~Z{n?L3V#PJi_5Uk zCEvcU7K|-^=iZ}-c)CQEK=q_5i8laRqHLweSrNhzYo#VBVf+pzJEswu! zb#1jV^W6@BXU29fVGf$Sr*?AZ-K|ZaAz*M@rHo`aTs*cOWI3GM+#G!Ay7-jhTcr!c z48@e9%nY5Sz#|l_U8^IaIutEuJk5x@eo8_x-z~$WebB$ru#h z5PBR6X$$d)wzvvMr_yw=dXxuF8H~hCg@=*dTrFronhVbM#HvUInK_JSrS&rEHlq+V z+Dzqu^lofy9qiCJs@IhLxHw>ss|78Bs)d?$^YUeN(7Cg>`x>U?Yqcq7zGYn~ZAH~$ zpllAYg#$|0>B?OxvSqlTo^s%>=1J0}*nEfcidiV-Sk21`4D)jQaeSPox0Q8;t3>`b zDqyKyGpBzgyisW3twk3H_bZEGt-l$SBo^yrl= z^(R4LE2Bn{RIXX?681$hm(YOUnY9+ky;BY-m?lNq?CRpqm2XeS)i1YM+`w@TMLJalBWVdC^u5VE1UOuv)jTDOxQ|hu zm3EAYnx7dJ|5dwKRZ`m046!__|2%)`26&#ntwEP9?cgW;Wfq}M+&a<(O4 zCYci@`S3YC$A&{x0|cpJ7AX@%rW)lkCk9ynG~+APR-mGviI6{@o^_P-muWij_S_4i z+~{+{Cvbi4kQ3smWJun+PnGwxOeGdqUo%$xaxFr2*Bd`6FS=G+Z}JDDZ7w1`e<6}q z+O6NJ843};w>?)C%kL7pg%!%$=8MDG#X-I`h#(%A8JvL|uO=86(+g8IMJLRHRX9yH zV@M^8ZxJ@KmMZKs#1rD$V}y9A1R%DC%&7v#eFAFV9g2P4ziwh4@8-+$srvXv3)~3` zArgBh&wFyY^Ul2^w}Kg#kN*Up+Z0{iHIcoK@%EqeXgefw%k{I?x6_BcWtrxl?zSM2 zd#+-$%|gR{MTXU)h+zHxYA=TZ8r#)_`3${2A15vqG<5&D2|P}AS`_?N68@M>`EYky z-}h8ep*T9i*xf)wOVZR6y<8nq6kjy!FAIIP~Wm>kCOM|&xVKj8wFuVT=PB` z1937gMQI6Haq7lxeU|W+?7{_AXTmZAp)FvkPdL}6n9Fejw-SV|6*QGZw>sMJnC>9A z!h}5c=-NYV3q=+L?r8IPUr*ocXk(7%eV!%<$`Gam|Fx|Hz7cQ_h3Sxsd@*3@CT@8rlzJm0e4W;5y@TYx9K&~1r$}E3pW_l@y`9coz!TyNk3H)vTG6kkHe|t=3 zew$jx6ZKo&?g`Nqwm>Ikb{8p`&nhJDW~}V4AlgTv@S*H>07hphtY}EEGst@#ZYF>j;40&f_P6Kb}6D2n_3C@@e{u z`y=Q>D&@;Fa*Lx8s%$Ui7nvC@4(G(i1NlRdB8ikTR~F5Qq-~u_8Y?2^QKPXxXu8no zITqaJ=n=;fE(KvP1V4s5`p7k1TklowEs;Q+nb9dlzzRuIlXy*Xn79ouGEVW-oI?j#2J z?ze~nf-WSSr`Qr?!8?HHw!V?i>{rc*BM$<7eajJi2<)u}M=;cmw*vqqcd~SSqYJIm zRwr^6Mspa$V8D{>w-uPpYQCK@@VE-JuDU)E^P3gry4~fK!FPK(w{wW9y`>9J9j7Uh zg?S52bjf}utH7Nnz{F=s6Q)tS+9)v{$gHPF$^lM4WZ)$W3zG58Cz zUi!BSvX^Y&1%#da0@0nC@$vnM1^fxX=Yue6ffEoQ4#e=nd8R#`I*g8!{Szw>Jj;;) zMGW4#=PHL0UDKuVSjjwvs20jE7YTUejx@?_;e**r=Y+(H)y>qYagG*BlLPhas0MEC z?U&Lh0D&QxSuv_q@h2z?66hyPht!nebvwdH5idpn^q7Y*cNcJ%wXM$J7{Ufl1Ph zo&qc@L?3$9d09K^(`0cTVY_an7+J=dD{j+9vRg-%Qp*CE7AJI=k-?C$& zb9b?o=C?MLZDrR;0TCK4PJ?ZN;3~Ex45>nZlb=SRw(9-kNm|MFA92A*(pZ^M36x5uttcA^Q00eOGkENlxHZ^?09}vGG#ovhs(h z8$b^w-!H~7j*O9Hb$Ovckwt_B+5#|U36nj5T5^_nZLJaWGd~Rm(kC3=oJ-~O)i!oe zNR%{?7|tSt=yqxx-m_#`*{yXO15^=z*|4M_>!KSqMVC(E{R5XZ`GZyF5uR{ch1Zu* zo<64Hp$Da=A{bt(AMsTUHIBBfBy~gWayF#%v`iN5_PSIyCX4h>UUlY!8k%cjFh^AZfT=;#FuLi9ugdI|wsfOLf_POrT^iN8$CBxPT9Z zUjP)Jrv|-{?b&wI%JGuBL1UZRvA2Kp!6qhI3v?fs;5M(K2!(puJGTp*JYsG;RB4v3X)Eijbs+?A!Qfgbu?I z+dFxfQ>4E?e-nINc)V_;m8)o$Lb;fpd+!6{R=lT4Xdv*?L9&1qRm zlvvQ_$Xs8`c2PIy%W6ZD86e=|$M8p07Sj)WUIe1(4dRiRz`DQY;I;6Ce1C}T-qqfJ zAbnZowP**2JHHW3J(5hVi_qLzSmA&hdyVmdpzpimQRcG|W~5nT!wYQaGQ(-i8r-)t zH7JH-#}CZ&!I5zhhbtuoSA{F!Ojw^f!KEySk$OZ~IQJOM~$?eb*la4D>e% zZZ!7-Hwlllct0!Kv1QIn83P{$#p_>wK5vcQTVn|K@hjbVBrLM}9ox-+KGj(SE+=qh zt>O(^v(}^4rO!3?bgp@sN$-nf9Pzm@`@|ow98wlD6{-6yQ!-i;V+|0RlOX?e9WWM{0q{Ml27%)(xc`b?cO09n4SA@a@$ip`J*E2KH)j@#lbb9OQ;akkpJtx{nR`~$Z(ER_~Jh8Pn!vw%x*4+ z@&;E)tMfa~`cy`gEU}d`jL+s#p%PL`pvXUJq#SEPEB!+=;0G51nz!D}#H@nZLb;j? z<*(R~1#GgPE>K}e03&+kY%_PQeWr-}%!m3c6#-l;T)ssU{Hn1p$`!t)!6_C8zhL7g zvW)M8IP2TEY4Al&d}^M1J0UGOLUg-EF7yo}cZ0Uk?u9u6t>am~jhnFr)9*-Iv&U;8@$=?^o9>Rk^W58=(~BI*#c?20Y)B-IKnAqT3<1IFd0b zSAUf86fRzHeP-tkSDfIzVL`85=0mg|I15sE`mD-8-UQFa=Ubib)odx*@Doo-X^bOS z`dPP1?@VQdKEhm*C3qrQSF-u1d}TJcZOiaZ^nkY{H2m`;L>OMT%CfvNaM>c&q~+K) zR99q|jyQy=&KZynP1$7phO*&g{h}+4JXnsPT$dI81$f(#9v!wIXRt`~>T6QX$dtQf zQ~F@Y$?Cmq+Xl$91RayI0zcUd5Vr~EH`(Uq%L_Q*evP9qkfe6a$S$ZvwzQ&O%?Ap1 z?oM|=PwPlmRO)wQOQims-q z?&*#X@1Woz5o}KEX7ZftPQvkd$y*0cp8bFcqO#tVI%&o=o>8$zj(MkjC9npdH_2me zOq|`j4oq-7cKtmwRYUxTr!J;{rGr!-eUwyD-#65+H`?1{m>9ZKAgb7C z1qHaotojiMq=7KgD!}}Ko03!0M*>ps2k$qk=grGk#F=!Ta@5c5&sz>Mo_P{^6c4_^ODwxjEUU_rf(oN5mrvsX(o8d1I zCb)%f=w{kASuRRM(Ko1fy`VOt;fEi-`&&K8@$y9=L-F}P4;o&_wCfToaMlHfzml{GY9GhF)&>EOA;jpGns<<5^FoB7WM+nw)%Qh<71;-tW zxWL21X&z|2Gw>%aJFo|&l0{kUhZg)8t5HbZxeh6~(QxA!DzAI<=f+F(A34u^)PGS$V=F)we#n6j|{qX^W&jY-?aE1A;@Xf7;s z_6_CdWaRaue2~#49Kk~)(?nz_u>6Ws_M!vG4{3o_We;GTCAsjg0z+st>G<;xt+vS3~2UM zZ!eFg5*N5)V)Q~YlNFHHCZ&Mx%2;47FsRy}?vS@!!QMJ7}i-5`5DRIg) zh4egMxF^eTcK}_A@iA7rm3g}(Czgps=OJmBWd2JIcQSBbgtmhl?haUpi+_SESlA<9 zU*_Qt2lrWo18rsgxjFT1q6+E(g$Y4GxfbYdLrp&sKU_?EAcqL-yA>Ug{KyXlqk3v* zrzwT8g6X9K)fo^5M4c|&)=E9>qqXKkzBd?*UfmXR)1fxhaaoa%^Lc!E5Yd&1sl zS-k5kDEB#oXA1~y#EYh^k((a79wzdQ(FPJ+M;Y-^Iav*@b%sn$PVIR9R4Z3Xa(i3?fI@u#@MOdZE3{6QAzyg+gDTN1_w=~E)4fpuq;Xh%ZBi`Z+s+&+2*1)Qa>bv_yP$c zOFHwNQz)c`@=C!XD-?ArPH8-Iud@9f^pteYNx^zJ#J(wbAKPRI>(*OA^}H?IfzC_o zOTW|X&8P>86nzgoftCy1kn4`4WXa;*h5Y7U5M#i#!IZ7 zW0=OE29Qc#;2+p5(nQ@{AEN0I!WAq?7$Q$5a|bpFMfZw@YGt;gicw;rn>(3NV1ESJ zQ0Q6}AysfkQ%FOHIL(Wm5PcqPl`%r0fan&e1 z53(Q%(f6xZp*u2Da`-ywFb-sgd1=~Oi0wx(Q}L4r(Zyv-<7w92c)EAC!`aY~(^n72+MrZ}e8ZTOs7 zt<{s{%)En1lEtt+8z2rt5cX_(%PaK$+ncDm3?A$GkL<3@M={MG*TDYG#g+e26RN^Y zB5dvWpLLOm(GwDVatJ|FrtzkhR#%u>^<~gbyL`o;%jp8oZQ{4%?0qDxi5|@9Jb~~f zxPBx!q4)fnM3y-Sk7G!jl{{PxyTBeZ zl1_P{ijF+!!WBJep^#k>cL7NDTA^kz5n_y$?n~Q9?M8-eq7}Iu54F#>5j`w%TQ9ON zx^!A>LX33V9sO+WJ;vZfGS+-8P5i;M?^gG-l$hqdiv$#coI{8y&W8~saHQK&m+kWO zt6c=?fxsg&x>@IM`f??vr_KWd0*ZhG0uuda`ueD-wf(pT_V+jDswXbk1E}wjcWQ1O zGAQII{s#IXc19y2gp6RPJTJxZP$)rL{ZW~-uC&sY17+GZ8mWOMW@gYqY|>-YW|9g} z%>{JPacYp~;$8RIN93KCQ1_K8jTyEOhu<9>@tIxDUyRQ)x$EAauXm||8ud!>Rv9aE zv5{$T^{$c0q8T139s+9k?FYr?R^G=!^f4u^>lqXJp6h+eHr2_ z2EhWSZrn2?ZKA{;HY?hOj376gbR;&1Xo_WbTF%MKlD7&ey3%T}45HD?Qow6?801d_ zaVlL{q2;+!TL_CeHC(cD%K{sUUY?to#L0_~Z&%>uo^?RApU>OcapvCT1>#L?A>jvT zr#+}usbMh046M$LTsjgG(X~pc636cLmIn4qu`H%S zkJ%`Wd$sCAWK01EHZMKpO=XGnEV{t7$!!I8;dV43AQvzkNSo zp*-L8fmje1xgN}{RlB8~5cjAuS>r_7EjPp4T2i17!8>0MgXByo8lWxZ%zR|R)NP2s z3-w09@Y1n|H}$I)@LVIP+kst@8_&A)sj(tk${0Edpvq9H_ZghEJ**E)r|$%6(v&0o zi`fG+F>gPZ!I}#Yyv0&*Fv|<54FyNhHqTq>w)FWk_Qvcbo8-k7t=}8gG(J-aIX$yZ zGnVR6dyE^b&yXIJq4cCQ7d`5xM#E_3d(O5t*t_hnt~#*y5~>Sx^TZ2KzX|GK5RL%ovFBc!d)4{k+l*R~)rys4QY4 zfVE8Xu=^x+oV9rLd2XnHForGPy2`gDy=P4m8)N0PvDA)apN5&Q0NwC~Fdgc9>WF>R zOi*E=iJ|*~G%uYta{CvHq5?(dHgbz*bP3Qown3%Uf@!vU|Sk1?P4T@#gU!7v~{!=_X?Q()`ZkL zbGY}^evic6^c&B!tU7vcO0WHZ|{X1uNO4rl7X?Z~){_Rs9 z_ABYyTFXpVh~{9fUT=%D<=b%`jM5fxF0EXrZ{Zd{=*X`r!Vs@8T9S~v>>aih>Q>{9 z1|D$@+$&Ltq$(Jz-E_H^o6Bdq?S&;H7R3?XU|6FP%bKH6^Y|pA_@uBAs~=?4!&r#s z$LO@3*V)E}nq3h>j)X$;{%TD}+AdvR?7(~0k7%U6`E+{25 z-Z%rVbX3A8*$&x%8=vA~z=URiml^aQN5!fuFo%(xpaE4gH=rDz&7`3`t$79D89?12 zxV>#R{Tf$*mL$v~X6g)t8;v(rv_#BIN1JH~X_E+fcX7K{dRR^S(&sl7Q&^E_l8D}q zM<3EePrglSWM*;W#*#G9HuM7B8Dyl&7c#*D$oiHQ%|9jDcCbqW@&-CJ7PW7?$vMv+ z%su77uU$Nt?-g~IizDMc;`YXdaBvy4G(>8tX&XQ_En1%(Wy0&#aW{L2a`npp2AH!$ zdU-6|rMwhPkID}C^2sTKXo~cSstpCk>$gJjx+~ixsE?ST_oMxz3KnLPKMJM|{}Mc8 z%C~*o&OykyAx6hWMhY;4KmrZg9aJ!NLqQ9IHbpp+_T*9zyCC`k^%e>S87R~PekmW~ zWSB44EAGMFR>wVi?(N;-1C+8m9Rxb%7pfh_3zyxapiYUQHp;+3uQa2@1k+dVQ3pB` zIvMJmZ)#n_Fo8L4o8-R5aj9$2jmV%yn%=uBQ_m2wom`M~J?LQ)p|9LesF;3EE?kmF3J2v+QNwf5m zZ<2{7R`D)S(&#RTfbRgILXH4`>|t5gWnfDd}^3~v-;w`SPD zfeD64*9b4vg6V?&V6KS)$K9AR5T{GXFopEj%!Ic~Oj3t2xR|}iDq`Z#emIh?Wo&QZMYnT_P2%)#8`>l(B=IP3<3vJNj8dPVF?9)BT ztbZ1t7RLV$kJ@2!402TnmvO&&bM69nvAlRcMD9x%#gb5+mm8w3m)2X4a!Pr~Kq1c4 zdG#sTZ#n#Q;UJ*|MO{7ykdfnf?%?ChZ@*c{iorOn!je;&b})&T%YxVDuP2L<|K`i_ zqrLO{>#vFwD&_Ocn9dn_e%WCES~z74SR>G2nB-jwmJW(*kj0E<*^-0DHRgC2WG+Pq z;C6>XmHv1Z$K9FbBjSV4nOZmMFXP{<3fK;;EkR}Cnj!msbUoxtIp{mlCOhn6>$m4z)+RKukIqU|+9do;TpRvbQJ^(E0=_&jfV#RA{P1b@P~iEu!YSBUTgl3g z6u#!i2V?$G;S}?qDf|XiH%}B*-1kmHXA@>A-#|K5Br#U2WbIjL{y7N_5W<83EfySs z3Zq(XOE71Xok^Nx(I5T`&wLUVX0c(SO2tO#VOBNfWp|xr^JN?08}EnU*gjqB%M%UC zOQzSU_ud!x-uD;x8_#F)Q+&4&zN8Nxs4ClRcshN37H+PY{?2Q3yWc_R;V1*$IwIJI zn*|54QKkCM_}W7c*l#Y;@HR@n_7LK44C2__Z{tRI7QtWa+_j<3-r(VHob-|5ZyfZA z40dM!^zIJ!26fq~j%Y*C3T<V+TSC?x1U1d1AM_Q4W(V7S1! z-zJuNme=u=>iM`Mu#3#&6UUgX--`_8yp!(_ercw|H#|)VV1hBiipzHi<*Flq^gg}N|ZU1R)eTQ zHEKHB*HZIHNvR3cczvxway2gqISmv3;Ac~;0$Z4K84{qxMa^uE5T`FNJ=H{vTZCxM zXbCP>^$y!k(P5TSn}AEt<1yv#SV>|vTU4aNki%O2DiAN~=+lvF21@XaO6>FY8;($A z&D~Lc)=F(XC3;9>;w}A_wsi`iPT@OKwQ0ETyxxFVlZlw*GRyO)_)PuUV{g&$bFz~3 zdcQy!Ve!YKHS{0BI05qzDs#^)cB_?KsNraHXs^+kIwdE$EE;)2WFvTrctdT&{$+gZfw;052#JWx zFZXwcl%9HxcRb~4-AF?n@ht;Yv$o{I1>X|m&~<_yq-sU1$|^9R0}Y;o=O-YgX4HZ> zYqo~^dhl|pA#_HA*%&&}j>rOSoy_^+;$#wPQu)l}STv$q zrCbfn+Q~hY-MZTuDhgd7DZR(K*HtOJX@{b~%cC%6AG=9z#ejzgYnkczhHiwrubx_7 z*w7USoQ~oZ3744511`7GTw)mA9+e}W6{}0yqITVk&=E(cxXZ3IQBK(-W@qIt)?;C} zpHqP8d`mSZOdEsQGV6&=y?lhb{cw)>9m$Q8LD{FIP@#|JJoXqF_IuaEQF@eo_eur{ z?EZx^v)37eSN2LEJ?W}G3~y(M(#tQaw3=^fyd2R)XFJF~DmpA{r#+0A{C;k>u+t_) zzI-ULX46D5zeZ$mO6e8o=)@>387p#=P6>MFfYNI~-z#EkIz|3U;}5+7;|5Gq_DUq^ zy?;6j;~DBVPhb}$b&F@+P)badsBhv}0#S8tcu2&Bl5#>1Z(|CADV;=b^I=gPG(ub& zF@`siDo;XMytLL;dSymfc400$-HX{ENU8)2Rh%rX&Kk%wfABTl@z2Nv5eQ9$WXa(P zWNsY<>nrhlDMyK=8?2{w%+ipq?A=p|>!4)AzRU5?fs5W5rE>c;g=0eyAd-XlV>b}g zNHK6=zV2UR;AlT(jhNh8XA80XVL^~F7-N2pq9)4$?huoEu1xPh^0P8WxG z^BpDD2ETHn0f#xv8OnTP)__x(Lu?pN-f1imca)8~EYw~kkfx~4Kv9%`WcS@eJWv+t zylIhRdtyJXfu)L(o^@jXUfm%`5>vi9qE|>Lc5J+kk)EHIJdL3V+TsKFjznOB0_jn+ zxdc|YIL;igxCZS}zoD-Mv?ifE_93d}G{bOtZzgq$aVkazwp=%?_xtA44tr|>+pv)oF;8V<*{qu7LLr<9qvp~6@dWLG^0`9>28b*9m-Q|DI#f2$ z&s({r1pk+f6wK;%NpAERtBD>uK9-*O=owcgJ!2&4>2i=d0LTD^C|QrUUuvy}X_T2e zK~C(U#Z+$_O?==wj%K>=Z+2AYtiaj}>O!kA{)&o8UCtd7LwcrPsUk9m`_dvXrQq%u zJ&csBqsDaC`h}AS>}f?=T)eM~+ulFvd^J zCUq|}ij8|$-NNC5%#V;hC=`Rt&qDN5kcp8QSPg5okttmps;d!uw*8B_B80DBsVmn} z)5(mk+MzSO#WrzzafE(j;%oJ@>=GUhqoen@D-MT@hVV&Vs|{siy_;-LJf(Ax3&Sdh z&u;{#I2lGeev<-v=pmAZ7f*~7AjGOF#RFzi+Q87%@+Ff+DIeQSManC70Jqgd-Cz>m z(oEq4VDp<)C*!6V2xT5Vix#nwLk4DK z!8t`nuLaK1zM?Ux1kKPM%8?7UWuMDCoE^GWr0tdQV`w(zzUxt+lo(dri7@;k4px1f zefN)L=dsUmQ}kq^%oJh)Wh8iq@McIEUN4ub;E>kCXGcNm<{K(oL5$@-_a@*$wfM(*lgm8QGt{2@HZ-g?UT8s$I$hNzmHT>|l5D2wFc12qD zfuJ`?9V$}AFkPtgfbwjoy&}ngMn?z=K;3W+xv7!HTL`MOb2_oh=7Ye z(!RUYH=1v2%oZI@OWY^yAQLh-!6>vF^jAY5Ye8;N_IkWLH)e2L2ggu7zBAk|bXru7 zW(7n3K=p=P!p}bnn5DP2dGDi7{plZoYXCHFeOJx$`Q_hsNr8Y{EKQ z!m!+XoMBR1B3MqMW$zHAV&d-DeH$aUn8r{eI9)2YPr?0(xh;)LCWn+;_f`KfwK7RhuTzgtX+bgS;B;51`sk=Hzc@nNvWK1 zQmUV)$mO@EDorZK!G>`Kk;t|%&VWI<5H|S2LTs!oLZ*}9Ijm?*EQ=*_&%GeB^;=}d zOu6*JpM^NpXOCzBUTUK{0-b)nft0p#`}{~Ps@wWC-2<_=X{DaxaH2Y*a*ogXVW34i zqBZ-PzLF{=E3H!>e~Fz+n^nE2&)CuXj2*WBMeK+eS^rPlr-s-mX)Ff#L0$n};J3by z#(1ov3U*an82;TaO2p)HO}U6oV$Q9MtIIJ0pCbzd`D; zg2GKV3u)tPRPf$y+iwl5@nkwFgMe-yt_Y55-o`~xaTn!fF_mQV)X--wjU|Yb-qP;J zV*1SMxwB0%D+#Fb@xF?joBNs6wgW720E&Cm zyVX_#YqEM)3TghKL|_SZ;Nq{YHe?dYzgixIgmkEkogO2EHB9jQHAb#~RlFJk|B1r_L^P;BU>AOKz zsZQO+TvS-^E=-;}uO?~ZX#djrmm2Bb&WCvH^Ni^}&-lmRIpcrXvHX|YM27sD^=BiC zJFQubteN=-MUD^od_IICOFfVslKjG;l8^x2Y+^8v)p^2R?Uiz)Lca_EiwhW$AN&sZ zk-WbgA=EWb^o+^D*~EF${cvc?rs#`ujbtrI6Qhro$#T8|fQF?;9@ z8uWqki%-w$bdF*2G(36)}Wv@(Ho;EXL?U^W@2UZ3+t}D(F4KD1GCzO{f27F#%}pd#Y+7n*e}sE5Jcjv4?>%CO=- z=bg}x$H|}FU%r`q&v}C(sg*Q_z7spyc#nZTE{OVQ0_q#>Dtvz`OF+sI79LVB``PT! zcy2Nu59~hwR(E8V5oAZGI3s*YwRQe@_VV51a8L=@;tmwE6cYxcj7_pF91LrYUB)?R z*&}`g__a#6Xv-o??%7cJ35wd{0k}K~v;saORaUy5F^5%7dpfFGR+7GOIvc|*Rx9_b zx9B~>VvX3R@z&j;Zr5S6&*hd6BJFHRphN)MNtvAILUrpK)W2UOOp<_?_s>8v|D2Zm z-{{kSCWC+X?NN~Wqu=>+Eq|roi694=ynvbJTlyC}(LhCTe*S_IKR@>T2t~V9_Fr~( zmSdZMt0eXWT<~1P^(VQIP^X6JP#4(oENyId6wChHZrNV5>8vRDSI069x;V6jV`y zAJ>*XhO-SM~P-iO?rsA2# zwOi~>>E>~|52H8tltSRG-E(#sQ;*UYra05N-DlU(H~rdbU` ze9tTv(~m82hn&(!@OVX08^FOIVe2c)+g{J!AE*Oy!f07S>M%I6O-DF7q!|Ntpk)#3q9s;*Ln6mSSAQv*6-$T9D zKdf$^+2MG)MMBHoyS1E?KU<$qt-N2#qeUf&^?jcv6BdKZm^kjxbi^bG66Pu zdysHk0S+emKo`(a8NNG1fc3AvS}Rt&(PSb_t8J}q59cdw59RNV4_7u{HhnP!5Ra6O zU9%o&0mgDYLe{+76Y|hDd$D0-s>&xfkT&-1YB5(iVSJwbX?}iDU;v0uZ$_%+=o*SW z1q>AoLTe^nbhS2<%jA^SlX=Fmh@b<-iHp{TVfZ!!53lGp3wP*qhoBq_tg|rFM{ zKu1k%30^iFmm5!>xyav_81fJ64lg<{;beijXz0H#7QT7 z3H-->V>Kn`YuAsA$^zxk*AMzwYJIEc~-QkC!8BRXj!-)eic4KupVY4*-XF-rLl2>;?jzq5jd8jE=810)Mdhjd>Y#Y>xA6IAgaTx7;05uyN15XY7oPqnT z2sDPlHSRnZ!{X{kS)d*v%a1BlHTUf3vndgRIOYboV&J3|o&teH2BJOcJ-Fm>hZlH{ z3?L38!+7uPXgzPD$xH$Qu0D8U2yx=!7C>;)g|%%M>+o>obwide;MJyoCp7XBTJc(cM&w*#PIB%q zecWFhF`U0%8-hv~0Y?)eJ!QsX5PYkk-Ly?YxtkNo$qNaGE)MR-ume(x5$$^AD$JSA z;*L^MCl+)5bq>CgoB#e75-MD&=!xs|W`_P$DER(nF8LP<_0N8HhTMoW5Fh+c7V17m z@Lk$e*X?X#<6K+@ZBb_8W@2LOb{0vKS;J#erihON-(=T6v?K!tKWr&3#g5X-QWXjB zKjh!$eme*bOSG7QN&bu0WtSOzc1nENBw6usYTOYG6fyn|HdMOar~ufv&WHrqwSd%6 zrQ-UKOv&7G##Gx)tdvkZOeEo1xP4nxd;a4OS*iYco#~3%l-yWVgf*w1YNxsvZe`!# z^m_#iO+q!HA0&r$s4C832prs5w?&6QX8TA_aj$K;73Cc41Wi8}qD+eScWH0O55!RDN#aU!X5Lv25G4oLk5Xc4_ zpO{(Y5~Wh|HAAZ=sak@z5=9|Ty;m?V9~sb$6SOXR;KbA8W0kIFqF0#7kjM3ndb0(L z;6aSp`%Q-_Zn`OshfRlBo%h#EkuSlvL;>j9kOp+mO3(p2BHrl!=;ra}>GrbS+Ay=PBsQopUte%CI zE5tc0kZwa zUnJ)!RH|2MC#$v^wEbr9fU?G5Ph?H#@s8Aw!DJJz;V4Yip~bw~-ZLD{1vF7VgzlW# z9iHx^E<|oyQ3>vGCV!c_o1pg%@_Dy@hg4#F@FVu>S@)`0-8^~lu2zn?HYTm+v`KtqWNaJJ#q(zUMSjNJI++OLPF!R7Sc}KJgi)*Y|+5)K;$DDm? z`AS3d8%0Vrl9uA-I-r?J@6%yw65PD%Ik2+UCBzVNg|S71l!|rbx;yp`A$&pTbMgeB zD`w0AO&F~Q19kISoR0JP+wZK!anz~<^YzwPC0DgE4PhKAVKf}+87#Fo=Y_C0*^bg9 z%&<#K{froD;ni6>CimA=33xnDnPN}-ao^O{4KsFIeZ6s9VS&Iz8|=1*IIv~bgF~vi zUC=g<+=!crjJ$mO@Q>)afJy1%!r8Eg=@Bv8tWbylyy+BRy zQE}#uDHo%V^%~1!!f|9MA!Mt-RHoWqw`Z;KL-Dn1u@|G1>Yl1z_4US;R$6Y%na9pb z-f^~|vDW0i!6Bu`%2&O3A;qEvUPGH3$2*z)DgMyG1C^MMndaLxp*C0XXw%N}NnLjS z440YTmuBNO-H2j%Z!Z!izq~uxnRT~TLPA7yXo1V({&4z)GCxmaiJcj z1tp#P+=3iMC{YMvU|iC~IN?GGBmsH8rT|!eO-~plwV>T9jup^@PnS(4Y=it)l-Dm` zy}NGR*M(?0B8j^3@NtT+7E$W<OXL0*_q=t@9Q#lHd>4ag{EA{345WZ1vM>IA3abW^~&T)%cje!*flRIFAk%059DxKl#zHG=S7NO3WKx*+P z^$Ve#=_W-^<=O-0ryo@{MM7*Wr;HWajYiP1?|V+GTE+wqYH>3d>G*bmDBy3nDMd`8 zbDjK4=^TO(w@pS^u_fvrGoRj1y(e>2dLT>rIH%0%m#H?)g>1_O87Uu=g64sw)n?WCDz}9_j9sFoUMqeeIWdjI( zRq>5%8=6E4543n zy>1*N8&xZbwx{S;#l3Unk=Pu;Jei_6rqi*C*~fXZ(I|Q=d|>Yu>grYMCYw+h;-RCm zPOpD97+_l~b6UGBBeq0;UcX^cObngJ4q@j8s9sw5 z*BTzUKUlJo55TWZ?uTpO_G?6)&)auA)NOy1ul$P5eHH>8nD2jS4i2DwJ-qy^VCp|B znEwrb{XeU=e|>eR*qeR&#Q*bND^T80!BT?%bWgHEq-B;8L!fL_E!Pu+R@9)Hr_A@6 ziB|N_u24!kV5QzTFI<7S*Exxk$>i~XRR#3yDd0VCZ*6bQDDWO$k`k2Mx~6uHucv(9 zaxr$!dVM>y`9ixJ%syyKA-rvmZ35`z(u&yzhB(|!9#V39rVq0KegwxGqW24AM~#Wv zZ6!|JRUHfi$r7!FA1JzhuKS8y!|8)KinuNdXlZ}ve=Z|eRj8h%H#Cpbs7Zs-qQ)xJ z6-9Na*P<~oS7uSM!wOQ$FcG~Ir{QQ-M$>?n8==EQJ*nXzOD6s)6co~C#U955ofOup zHKt_MW*)YlxNNChMjY+H6~|JMc@t4(euttL8g#fCai?aF-D0j9e zV{OM}*}exZ`lF&izlm)xa^WV6%G zw6<%Hw2NdTX8+|7k3PiKJi*{=XC9#e*?I5?yX9btu2Mac0xTiZi{iKv-6WZb@{**i?XkmYI(&Jz0!0#k4Jk z9Cb#Q%H4&8VchzizN>i8h@T4ANp!|mGt8wpNkC)exPJ1)v5CK}KvZmHF+H~Vx4YgPEQA^^L;7W9=~gE( zjyb3OMqL`a2woJ^?FJ+fzDcI^SB`t!!jT6+Kt2*g3r+|uLU1A|O$n5sQ79yQrfksz zf-D|EaqZ6lV(_w_pMvw-U*mrYdVk|GU@inHIK>M<>4jq&Sti*1YAN|!FFXH|ApQ*k zf`#hB5U#tRggfAfKV>GGE?ErLnK{U-CvDh|IS zG9oUDVUfr-cD?Z~_MMOP$Aln#;5JjbO7s&H8bqy$Dyd*W^njjguq`ap=X?}6B3g2R zD-amFQ;1&B!Z?9EG#tHj@EmlPL4N#3p9LJeLfu>x{WBnoH|o{y#74H~e5J^+evkC4 zd+>w$@96wA{GAZ-({Vc1KI9&T-Kgo`0+@2o-_`Py!Vzr{bO-@|F0A>dExKwXH)`c) zLdN}UG5+1JWhDnA!+)g}0aGIbi+^Pmg|W}BG%`1v7Tv;4Q9f#L za3LV4nOGs0NGAJ@!c1~!O0TkCrHH?1+qU!IP0G80YV1vRJdU2%9kOn2mZBuSR8{Zk zLp)%;a@p=|>j6t~$-9z0e$uuIRf5087Ip2XQ= zo};WT**>ckxuYH$vwE%&^|TR7T|f9WUC2X!7vQU~8C0)!Of?j%tR|5alscgSe52@j z6H7MYMDnCYDQL((gK@R&PxEj?$C+!zizJ1<@Os8QG0RM5R#;Xxg}|pj5T{JYxd;G5 zW8<2isa{opn*wO&Oq7n%dyU==mvm9eQO!t6(a+yAkX;%T^FSAzYn&XM1@OWAmPkUXdqfUwC6N0cE~X#1ON*B= zW>2r2lbRq4)=o0>W?O#TLEqbcRFCtb)=8hJN>k4I;ahjZcew!TR?airhic85H8nm)+0h zXB>a;s{UsXG^o0{A`N|x_BfTdt0QTs=7&kij+00@gAlOC_w}IjFFaBn7U!6$Nm$h3 z|K@C?+G7@*^JhN!+2or~0b#X4Bqi{xCNwRd%>Yuv2~38ZGLr z5?Jdz?igiSU@nNcB@=Cp8#WxJu7_<8r=u%4ev+<8vB3l_QbDu}Oj!sy)9TL82Hjr8 z`fLktOlLTM)5&#X`&LCD6e6G>Q9(z1SToRw*^ z$dz2S()|&YV$)f;C07?L`jK&}tDV9=!CgbAlccwdspnJY)_j2?7S ztO+8d;=jDxJUY29zb~>O<%DMomnv43@PV%n(c>s zE1oO|AUWROwHQ`~%w%x@Wau;lc8?XNL-t!&B39?lbg-mvCrI=sG0lj8XX}1*y?Aq{i(E2{xJ!@ zlkWF>yUnp0#WU*c=I5)A!Zjo;0ESMAEbfX1(~2pxh$_UwU<+G@bnam=EofL(sy;RV zkMa@0OY*6MWHX+Hf{nQ%>c+{7e~8ShYkXQebVJ+)*JVHkiei3q;~&rl-IA`iU6`#wH}>nsa_qFR~T;-RW-;&tspIQ92OdpvAan7 z6~mep>XGU~pb2zkojdBFhJGF3Mq5>f$C#Y*vshO~ zqJu*!DRU_aG6M5X$1F-AMYxRvMex{qX(kQQQ2!^C`)C)+)(~-9!7fhmVb0wrruZrXL@_|b?@*=+Hs^{xoW9iFgnRaq5hp1;0 zOVKgwm(My3h@x<9P{Q$Tg>YV?G-Ip_{$3{UAkm5ZV%@E5nfH!!+gsV|{9HVlb44}q zDE(X<0{^pA9poITI>@ycHn&lyeFAtMSedwJTSl6QKD2Zn+7Fm#3prmbU=-|}_)+F? zAfBx&5D*Z_Sc|-zH+=~wT$=3}pmgPnSwdpx9W_<#bbc*6u_l?aK|kEa)w6}h zk(twCM<6F`>>&`Llc!||2y*yVBsk>WW7@{3K z(^iCt@h8Uk`G4pBZuL>!Yao9|*A9Nmi~}PVW&hb>6IZpdbQtxlP=w%tC?PLbdjQjL zZ5I%w$e{BA;wR#H9+D-c=_v;yy|*jB-Tb}S_XCJ{wk+qgJ%k&@f0HrI?0m0g8BlCe zXU5E&co#SvB+N!HK_~zSW@U0?it0bNG_1NJ^e|#5#b`Q3;ZMUQonBuaAOif-+7c1T ztKmjb^ZdpZ%Op=T2XNaMMy#q^?()XGBD^PUV)8HaH8h8mkTFoBtX&s^yrJRo6{W20 z9RPQDV?t3=OHV)-t)*a&i-;?b8ZCZ?dq)2ro)$ zi_y0V{@ID5n0u>Rt6c)8Z?})9X57G(;gR|r6It!EgK{lSK4f z9cK{FEm$Vg!frc_XduC9gX634!bei9JTaCbo^0h~!}T+SD?v%pQqvUT&vmSVLyMe z>2hS*g7}|EulzPHIc}d7h8@`7ZT&F*m-H%RZD8}K*LsGchJ%6<^1E}bgR{Lmx!D}> zeozInSQ*QDxOjGc1gL)?Aw{4cXF6%x?GJZpN$Kx*j68Qbs^~(-&%6GeKd$b9J#Tf6 z{r8xF=Nn`MG$e3L#w8cEO)hLMoL070yLeu9(7uRV#lYeOI~vkw69w^+Xe;fq;0U;O z0IOju?~0;}fJUCMN3tPv7VSy37wlQ3!w;V=N5qMz%j>IVcV}nRpQ@}iQL@fz!i*cGlr@|l zLZzzRS*e^ubPdiaBJGfjRW@m!|h**L^{k)FXpLYd1K0vPS86Vgd6 z+fo-X3A7MevqveYW6c6Lqv=d(MG-@~Y)bVWFN?Z@HjFX|4S z&bQf{((XyAGq*9i`Bbx#>o*AYN4%sbPsZNO!D#ZS-Dk!E(w4{F{`!@;hqufv9U0@` z8GZJ9-eW;v#JnSkH-267Fwx7LDq8iFT38;CmrXFiYP1)4*)_=@c{bZkw_4zxK)9Mh z_$lf_^h0r^WPwNg#>4w%;2G1iGskQp$(rj!EzDKV!U*Gm6SkUMKF)9({xh8-@Lx66 zAnOtucy}>V*17?@T(97It61T`oQyz?I7#c5gEodC6a=9jbdz_-oH;iTE=-Q+_!P=> z^SCDF-Vv|4<69vOrjaSTZ|WMHgciiliQT@$*!pt!5eOfUX6E`6dxZatnt1?uQS-f} zjs@A@kIr?T{xx^04a;{*7QH`G%-Y7DE~@0PzCSiCmDyPXWIo=6Wk(3kHNZ0{j9zl< z*f5n`plnf(iZljJ2Bc$k&k<9eDNfUuP5XOSiLvl;mwxKXlmJaUEvE`WYj+%42&%4S zdURDs!(afPum{M)4_%=^2;E=)1m!Nh8?5L%tZ$V|@U3i)MeKI%^$f9I#RNSrq3E0uQ zDMlRaQNeV667Uoy&9H;nq&J%|8L2$yq0>5dSqR}y*>CNcV(f;p| zC4Z*3|0YY6t^TmI|3hqyHG3aR93j${# zy3Gx$g^slTqTh_$w}!3~(nb)Jrk@qLGk+VE z2X)R36iPK*4`NThdCo`1(6baj*a$RBPiRmJqYPTF?VQ1J(&qHLdttFg;P{1nsD|6m zj^QDUT%nD-TDNbB1))uPtsQ;PONTHX-xaDa_+w12Jv%hXlZj7OjfS?@+$rL2T0lFP zhiER3GcU@+!RxUKjogu-f2nJM7ip|?_2NsdxlO{aFlf!i*+ub@t|00$7OVZjFC0Ni zYJ+BSI=O_|9;~}X!kjwb+E~tAFwz6@XKb?o#G0%oQtd$nDQ`5{Zq~cvi?{Zr!dq3F ziCEJ2hv!~gL(-X9=&M{M8PiO;iNc!kV`<%RbcxerALXU>xVz{ATZ$+DM`$P6Uoq`^41@9M* z8Z%7cV1S~KvMO2n;y3DzR4c^;x*x{)!UzUjB-R10JOy_x{y(j~%{$HuAR8a-r56=< zk`~!cs-aZ^gKNWaP`31w^m1{#bhHs&$X^@cN|*%ggz|Hx@TG>(2B&;Rrw_q;>X}vw zycHr5#gcJ|CnlB#&={H4vuEwxE%pUSQC<@`!wu2Ps;b{g0hAoV3G^<7h%me7{*76S z48;gaVR3q@WhWGKSgmn;aHH#t#bvK566I86e)*{lueu7-*gB^BJZS4bA(FqL0^qaM8MROyu2mg==#zh-il0 z_X)1e0fXtD2n5XL00+$ZgGFclctzjjPn8axdmza1J?`)RE&J^rVZ|RAGlEp)0JcTo z86g!v3PHw2@H-*eO>oF1g8d^rBLQ0gS!dG9=9V|ll^mFULgZ@LO@uK(oVE%9MF!0V4y7(gjmJt6gyh) zhGViP7lqK28a|6SGjVU6>uu>iZt9zvf|0tD5PxyS6$-OE0dRd5`7uK77KwLuF^|B_ zDZ%b90SJCbvZ!goR}TI&B5F8pp)^%){uiebja3m5zg~*u$$f)i#DVYY?%MAtT4g)^ z2(1of^0QJ{=XC*#X^LLS49&r|D%kOTCkhL~0BR?dD8D6JuEu<#Nh-C4a+fw>$Acwu>- z+7$w+*$x9vv)8MP&cbLxzYLXamk+I73RquxiYC&+5ywk2eI)O_lM~n&K*+fn3ilsx zMViz2gpyS=VAqPyr8y$D-_^b7c3jy|2SxjiRAnCM-4hKYnqNi8(g6ohuQ;?440Aus zLXBK8loOBXYQiF*-GmnVdo7r(YZe0HI_A}FvJ;tt=SC-DJSM;c1Qu}(a6Q<6ocyJA zYXE~E`Jdr0e;&;LBmP1u`iZ~PgNENq{on8x0h)!GnJTY4kw>g_gsYY|v$;|x*a)Wl zi;hnt&Cf0CmmNp>U9V3YQD0#9guxlwkq5nQ%h+*(@ZR)3WikW-_PLNccCz3kB}2?B z$jLE1cF6<;u?TT|x^N)}RQyoug)9Iou%W?JtS7sKZUl4=&kaL(n6!SS^rOm?C{NUom)FbCDHuf+Q2RQt7ex|xk~$AS&Rm@S zs@=cH@sm$R37aX4Q;YWOm%v~Gq|R{pHzWtjLzd4avUxMI0R=e$R6re0U$&9vWfKc6 zHD_#*>CA13ov_K6Z+G*9AW;?Dt9B?+Sv-BGj4@Xz8e8Ut)Ev5ura2p8v8zJfS}s;!L=tgxuhDdNX!Ws__Z41Ldo$Y{R6`|W z@zpz7E33jqil3HSM`5bqu;o&)M(4JfY9(#OJ5yM#nn046#MqPcB^Sw$P>u))?jQIVNEu?ISe-%-V?4`A>_s{wR}YBd!1%Ux(w-MPD0^x>;wEkx-yqAF%Ez| z#*rRXDG@&MTW-&HaJwrOMI(%`u0un(_+V%$CA;vLYZU-6$m`qenH^fgEobBxZy(3> zK@F9eMHLd~0+ie>oVEyM7j6D{2M@&-V46(P*%Qk9`Pwyne{sl}YLYBV1|?o2_n0I@ z!p#Z%Jb&Qf6qJdY)pT-=%fR+)X+RB*ylL0}D8)9Y|Jh#qo- z92(K(+EP)}Pyu1j5tuWZPW>}{^uxsnk_XIs322yDH@28~&k+OK#cH|`SIfZg;#$A| z#$PU_{={Ft`~!da`hUP*wh_%J*Zw2?<PNJVQFen1(03jgWI7b zgo+H;ySazSZ@597ru1ydef!n3c$a)PM+67_<}OPomgD2?6$pJtAe&&CP*G-aO+H%+ zo+{z!)9=?f-l#RXaMa@hqOOP04$Lf_sU-1x2lqelmm1Mqz5{!QU#?y`|G-~F-o9HS z*1#C>vwukc6Mu>Pkp#E{V(a8tM+vz9;CHE#7B38wJG;;(BhkC=6$;pdG0g~HjN*kK zl%coylH*tQiNE-7zh>0={LFxZ0*r)xAt+tnX~x3wZV&;}i$fA5)t2qZ)7r3T>%GW>$OyNMw^%59GHM8~smB??MQj@m&&zI7Pu zwxUs(*G7e=#%v~nuS~5}skbD-hXew~soiIxZX=8)w@!%~*IcNl;>cnnnm)2pzZ`Dv zPS9T|IiQSGC@EbJQnyj2j2~{1u9H({smr8ls0OX$sj^(4=Ps&YEP>Iivm8r9NtV7d z)N>TVk9T23zZ0v|R=NKMda9`D3=+;tix0)>bUi+zRM{;qGby}!XxvK4uyk!!siH&` z{~l|Sh$m~URtN1#3Ey$mTz;B)uw3aorMgU{$C$h`|LYus977e=$7fE%&0XBVuaZQ2 zNGS9ZQ#HtvNbhqiB&zXK3RQ{Ok6&j21okJX#x?)CF*GFU?Bxd5k?{1lA(4D5Co;>X zuK9XT?n;N1&>R)!D+K|iAt|@}wG@$M8HkB)1{DI#DOAE$LHCm6yquLX^NKV1fUjgPZz#p^1_M=#%>eX;L>%#0$-yB7~ z+vWpoF6;7U`}Z%9;Vy96UUQc5^L>T2W7r*gWU+ncA}({YLA%m@`oqR|k$dW1nFb#$ zw(506(jF-v1e5Vpr9X32fi{c5Pudl%79XXY{nVH(kdsey8YQQwlM>D%B_nV0H%{#i zGS32F8w}jUH8OvH;(c&M#ilK|XKc3deN@&s;Y%lqP5dV3#fFxtm$~le4WrG2FJ?_4 zJ&G=CZwN(>#V3@ozf|{d*vGOE;01qV0qcML3E|_ai3d4LVDHN2TD6Jq6sqV0kmRiM z|M5)Wcd`x3f3i(0eV+ZBEZfKrYD|UdRdkLFylad!oI3zmb;7t2A;&dMT<~YW`tnqC z-N-E~{}xfA^fRg0y%vm7u)x%?$x_oP(yl0Mm)7VuvuAH5aUJ;4UB^0zC2aub`AF!VUUN55X!&Ewm;I>xm}HiY&JbFr*yWwzbp?l{vuho z061&~`h&qRU&-#o^ak}7c8|dB)!)ejo*hhO{DxOe_5ErvCi2LobMYH))J&ysnV0G6 z>D-@3h>Z)GzGGe9ivn1sch57nrP`4D?qy}q)@l%_GX~AlDJ&t7sX0 z^Znooa_dnYJHE=`ULATB_8F*moz4X0Y($ylq!`yo$p;oe(tHJJ)D$aVT-PJxYHr@i zi4?Bnz5!s#uK+dN{5QT*{sgjf>E|A3tt4JF*AeiV zLjs~9$W{|+ROpz7=#>##xyQhbe1J6c_7~H*O?0vYz0d7!IQV}TU-{P}fd*9wPvirX zkFIlux;i9iD5y#ZL50?*D=P^TBAk`t( z0D>U8F#rli=8UVWvH(YC>5j!?Ymm)$TJ04LMkh_5i{WFX-*2<&t91OWhdnS?ZDZbf z01;P}9*Y-spA7RWG9CEFl;LBGpN?rVMY+LaL6k{X?9LM7t8fsS(PKr}7R6&nkOTni z={>6VP3C$eOX+nWs%zJV^1X5wul803zXO5#E$`LtPILN%ZSkv=0)TQxnsw~xI;)r znV=`ij2!tu{sc_gqH2DGgi=HG3O%Td68Q*xC=fOBIw49Ld8~Bo`4S zlG|6~LrB{sN$1i7wfVwuo+C46V)VjWhyMD@i$snu!$Ip$6LHGBCHyBojzcJ%N z9S21XS<$a}=2&`pCFcyhsa337W|#HmZ;kY?QWI4<>(aN+LY&CLC3V6$Dsk#Ma!FFp zOHQOo+xCp5l3E(7+R~op^W%P&6pv_HaF+jn%)MijW#6{tn;Evv4BNJC+qSI?+qP|+ zJFE=b$gqu!sQ90Yy63#AR(0-a?Y;M5wYI;mvG$r{&ei+)bxb|m=CKS0^)1-Q-<)nb zy1zCeZPrxk+vE`i3uVQ%O7uF73cSjyhHkQKr7NI0&yG^Ja}HRuf{ zKngx!GbB|Sj|B_Zjc=fx{bIVV2_rE~_Y9~ka0Kq(9L*8FE|TUAnT?QX(DZcBBSbzk zNO!FhvyIM#4HsrKf&h073l9Dw9m_E)7#%=bvaW1bNtP_7pG47!LpE-wHE=g?b|4a{ zGw4=2x;uyshv^P+s+(D(9?I>@c~FpK-8#BcW@H9yGIew~p8A>tr65<~#6o@g4JKo= zTWF0La*`Pi;E0{Xyskx~yb+1rl5eJJ?%kswca~Js;i1dar>H2{7g*^eAW$fa1U6eE z%2YX3m-AUZYMPNd!(~P`TXve#k_(C%kmrJ@d0(uM->#()D0f||RLvyooBGJplsd^$ zjNJFvi?(UYv&}0ME;o%q+>tqUhZ}YcsvcLUQ)X+RGVSZ&%#Bp7gsWWqYG`UpM$u16 zbQ(pYW+6!vJ;J!OnL0Fr)1F@Yu$`CSozf8tFE*t$%c@M5w?l0%4}IO?}SdH&abY-kPgBXZ<2ABg${kRn7FUa z(W7pJsuT?^N%Q4&fwZx?E!^IK=}Ds;#Y?Y!s*Zad zC7DcV!%rpIN&hm88#10)e)MEr$FV>JU-^vjzP`Ly1Er7Z*-_LHz9Nn`_s>8i5lF2 zYb07AhfWIVGk27yo6=0kheQRXo_6Ci`BK?Td#c7x=@Fx6jQm{?WxJ=c0oO*^R4BHg zk2tzNKl5@xN~uM`KpZSOS#a@3$WVB*XiKS3)(R2@wA%HLQHp7^rPqeD2g+XQTPflt zbO2SXl0W57cjrC^=Pp3B#E;8fEo@py%6bGC3KD6{IY9^@%C^c76Nsk zNSq}VYh~4tTVIt%7J0JgkccobU(Lb2MAoJY&cj7AH3leNr zhE^!?)yKFYQgw;1SI;*)XUle)n3tZJTrdvoNtg$$Pwjt1)EP5!>WQ;oft=@fb;(4G zt(0b8Ow=38+^uQb4M(eP0Wz6149sHfMheH=vuKQyf3&nsYm^ftGu9wx(Ki;2J;PNU~cg-ZL%W0uY=;+p;Ob zE;SalH^kGsy|q0AZ=Q2l;xMN1CbwUxx{f@e7y-EOo)SRVbdd)+2EC88|nmPQ0lc_bF0#e!U;IPeI zQaEwxh)(ZQU@Mhj15H3p{$3ORuxy~aX+~P`y9}%~Pa&}|gUs4@UACq)xq+FGZ6 zef5A?E?qfDYx&E_`;HnRwg@|&T%sHW=Yb%Hd$`fn*6w6Hm{ z80q9&Wu=^L!9rZ7!z0>z=Y5p3zDR?W#TVZwSA@ax`<)FHKOyGAaOd=5LLCc3%qNO^ z6V=LEgt!s5-@Nc(AYWZq+jUhdH$rNE$Ys7A2HPb%+dwmGgC%;kC90-=!U4;W9DG;O zoIIfitB;}$tkeBMGY5T_^J8B%^9GyxUFLnH+Xc>#>hl6K&}qbGs{N$p$I}$rf$3TR zo0dJPAK)th;>y&ThMOB03-GoJ*$JkAf*0b3KnphhLmB&dfEj{Dn;F9I`NzF%suf=Z zI72Z)zSs}Gpr?bhR?bQ6fwvvbpNS9yr9liX5K5TOAUNP>*=^B>2ut5XL}0pi6?+=H zKXv=lPkqoX-fq4hVP$*6!UHtbvMaZm7jT`$LJ->E8;Jy-5K5BGpZa=B!?YiOuP+^D z@z`Lay7aU4SgHJYcLTZ606rj4h{2-KKNCckw8^%~-!DOSo=rZIzjuQh|c019U$ z%U-mG_ZzAl+};zB^*3raY6gC&LdA~k2Ty>9wdjQjHI4w-5Y(mOwZYlb^lYyi6Q)M#(rwL$RuG9{QgcL*~PASoO;fI1dr7Egw)hFRL< zKF;IQ8bi-pv{KU=i>LTXaJ4IBeAdw%gG%iS=LFLVx$ z9FIMU<#y1*`?C>c{-v3;fqQ&q&*?WT2ylD6{3TpReEvdV#p=mvGVb6KO}SC0ZFzsSh^4IG({pbEdhZ5o!Qg%_!ct^wY}M6s)fkX`1%+WzeuK@PTl%(OLN2FjIl%XU120UI-T{ zUb@Udkvde`F0RSPJ0Xp047+=lBLPf9HE(scbfxHSCwP1JZMtZ($uN5q(4Han`L_B8 ztBk(|x>^qVvk*)BTtJ+}tJ)4!dL(xbL+ZBcGsfm3u;>t$=kfS`*a=O-vr~-B_LbU- znokkXiz^769gDGc?oHLc&RDHM5#VDYLMvSgB`$UR|Ep+fWyk@Sc^U4G-Vr^6>n z%M(psX3eSkK=@8SX1f5huhPb4o>u)~4E4~+VQS=xO5}hD5nIu;M3=$`V1O>l95)s{UdYl-fT@4HMIj!rgAq-c^HZ$aa$Eq;fr zNTL4R5C~C@tA5lVFoBpo_t0Stw$5y*pTZDzt2Wa=m=@Q6Q@D+yd4ehLKWfO!HOcG= zaRikstIf03*5=hH*mLrhz?x^Ur*(=%>wn7~ncv?_*}OI|dxL)716dbYt?dmGLbjd< z$Sz&&I>36jMXd7>*cqkmND*T`da^Vzb!FV30GQ`#4ATs}F#)_GOqiGY^DObA-)pb@ z{$5lJ{M--t*Q{|&|66Mu&Hsfpt}6b&LnUz}`R2dcU*FWs2?7OVQEjKGF?D04ptK5Y z{C`6wxkM`e)c^91ko~v4BTWBcjr%X&5xu{>BcGebi6jQl6bN;3$*$dWxu8e5UvGVMfd2QP>76PTBMJ}1vSZf?cu*JNn+>^B0(EZ?TdJyE{rt125+{h?`(vU&*9CUM+1Ok9jLsUccqFs@ zA*o*?k$YYzbf@^62>KvNnteix2JPb6jKbuqo>;X?J;tpIYI;8)fch3nSD-hbQF_i@ zqo3?J^`;yM_6%y6A%BOF6tycx0#gK(B<{wHe4?$kuP-FvJFCynh$tCQQfg2Y(j)aO zgIkVqC~H+*VZP*!@FF!E8>v>@YQi{n$~|WsP+Ci%d9s^X@&em=0bE^TI8JL1A0fIq zmMj~>a28v!Nc;5|sFDnR)Z_aB<|=IikKPLqK`@=Un*B=%9iCnE~25Ad&NQ8XBPCKI@0-P<*pieA&O=K;PB|~d0}t*Zk|_v!h^hP_c49P zH_j2iE-P?J^3{Mr%#f4|Y{Dn?6~(O)D(i$O&*vPlY=e`)EhoCgc+c-3605MjrNL}M zsDZam97`%!hGR6*gI zZ2G4wD=BdfUYu#&bW)b3D-t8|nXSS7{^=^Vn_V>Am0-zJgD+}3i&f;vouV+n5U`1EPU@X10=vv{?XntgJn*5jT;uKGTL>`EpAlm z190LUTL%D?A?g{ zTJ}2psEY1ND;9Lg;+Nxi>$_ah0s*nV+KI<{;V);2*Q!! zUgoKyqf(pl@mHXheegVz;|dL7WOwnJo5OK|fW0z*9$voj6gS?)-&iPoi2uey5kR8C zb%kI-u9UYx4el)eE99z*r&2zWEGp)E|NFB2f);^Den0mZpdI2V5rC8*7X@-!8 zDBY;4s%^~?cM(<7#oz=xU1&VL3az-M zvZ9eAM(TvxfIBLB@oP|#E;K=q1Vt^Sj^DI5bGM#{A_mB0FnBGgLX|M8+6)c@~3CdOAZS6UBN(QlqEILyvyEC7+OLM!FvfRyw0aLg71& zQqh{eZmSId4Pz^%H>O%u=Sc<~mxt?DG^7uw+z|&VPI|%hs+C6JL7M8U>P<~w3?_gh zF|%?dCLY@XdG#*$$8@@f(MAE2=E+6D>~9%SutP-i5}x6@I}pExh6H5F#gZ`bNnK%s($~(EqW|pigbyUB0$Mq zQwZE0QS0a)lt;y3()(1py^0PFQ;o`-pb<-YvOH}$PRu`6R0uI81gQqaW0<;kk;&BX;)xdASNP3WIO52{d| zz72?iYNy5lPkUuWGZ(Lgw%=`tGWGr_n<8f&?N z{-(QJPDZJ4G4k{K{))?H5W?|=1{Yyds@6?w9!Wby2t;5m$zuL52sDG5(DI+KlniSz zIxdz!F*2vb(5eh9)$5{`UDn3chSSN0QgCKw(dXQqjQDio7pH{wZi0rERu5df++!eFTa&8&3{!Bgj+;H!9DU18>}sAZ|sI@bU-; z?}tyD9)NHzR(uq4;t6i_!Q zbKZavQOg&uR(jESHk8Pn(st`sRDieDV7o|eXmYNB)+A2H*=(w;W)1Ojc|gjT77BCCK#r&Vps^xi*aQ6E5&?d z7cugUEtmiw^OZv9-1n0o6&oc6Cj{3jEE#Vroju48VI)l+gl;p!2nr-vD*=LuX5Qiu zqL|P&0s|>3A`Rj=jC&Kd>V9{qTHyWkt+v$d%XvD6=5dpq;Y9~hcuw^pJ_3VARK~)| zs7=d1f)N*9MS{Xy?SP08+~CK4`B8$+pu*g#!u*(G9%etg{__t3Qjk&P8~>UYjr`Yy->-<6{|&a_e<}PXLH&1xU-w`ebg8!GoueLTaCj{9z5D^9 zVAx<8|3utji?iaLhohMskoe}=K@cOR46!eQu7KrH<4o4EMV+3x-u-=|#H6&DE9=HZ z{Eki5;3`*trYl9rMSk8=s}YepXY@R~(h3rJLCHOudtlJchj3}R1Sr0why~5DCvXn; z-qauI(2*wJ#X?A-PW)ejOjCxLMNo36nm`cN?Fo`5Z2(z!dk26JZnU=7?_CaE@+J)z z%wfB7OuExc{ETb$ozD^HA~_fO*`jr9+;n>6u3pi=&=-&k>6!QCnNF}u{bq5dmVW)K ztD?5XVl0}nmdNVNMra=+_w>t%a;Ka=AD)`xSkq`$$$%z3=Mj)KWu zq=y}0_J;dq`OMw(!%Ht|w+%)wVV46`?+c{sq2WCgTDu3D?jr+Oz6l5+c@BZuUbv?5 z*1GN?0=S`i%LyUIcz8Vb!0^TGhBCg3hu~K}hX>?Z(q9*FzcLZLI~iP}Q~I6&zCyfF zdlhaHtpBJEU4isa1Flrw1#I67Bbur{i*|ltRa~QEeo%7xDc!iCe#V{fsk}=K^_slm ze`&(ri=oKRweYpOMewzSx!?hU2ST{*D2|m$wejF|l|^Mm6$dKyIs`I8Y2HvLSgK0? z)WZ-XWEyB#R6_Zp`=hmU?#ZO&C^L0Aq?F1ow|OiYs1cTLY}SqymGJYWys(&w z7vU@(6V>|UQq7}liBh_xGYJu?Qnhu9>Eskt;t+G%cC=F|*Cb7a$tfu7<*m7N9YntX z+n`&94OR4lE3e^3hf+383%nuN_GXqW)WvtMUH3I>w!|eDBjhpiM)ScX4BW?HBlU-q z-_*z;pZ119H-Ys7H>^(Z{bZdQD$7~PjA@C3EjAQP-L(C#(WHAp8g`=c>SKA({?kS6 zG#zAOeU0o`u_acJHFFKoAZ|hh(V&xZ8Q!p&KCOt6EtnQtj;Xe2L4sS`NljgL*&-1L zGHKvV?1`iJ_&={iYwD996zT>K> zY?A6|2geKIbY~S+PK;|Bk`MJWC(&3;5^LhajXR;uC=rfGB8|hNGS=$UIEzkwnt8-j zQAEJL%^7mg48O{P);ikUDCcs@MR;2F5-wD7W4n4~i=0U}hdWe2iVLWZotPEj(Ys;l zdBHtwdVPWHUL1=c!E{v?tn8WpJglsN0-F+I;e6991e2I!Py9gRjOxj)Ib*Ue9*dC; zPIPJYT72@wL|juDDxA88?er|GzLiFngEL(3bcr?PVcLFBrCwrG$rLG*jXI~UbBOjK zQhgauUvVe`K27xeucax|!CT*T${yGGF`wNQCF3CaWe!@@DDq2U^9;oBwDN`fRTY&W z)Z)UiXiP2mDpAY^ry%Qf^RXNa-Kh-@wM%W54lc1djhNf63QFA2>!6rG#*Hv+=c3tS zBYa!MGQm;}=X}9rPL)|}T(3H{5f{cT(B(6CDpvm5e{7VD!g=kDqJ10p zPQg3pj94)jO@4HWCi&7xhe+AQhDM0khPxaQpLq+0J4qI5%*F9@r1ZsIuz^#1?gVkt z)k8^ZO_FrqBI0;!rbJW{9QDq^@ETC05@Ith>Cl|!dCBRmbe zb2ZD(89$BqUQ(eCS|2% z=L}k0VVO4$fQoEc2FMCH%)LRMz6}NPVEVVHT*68G=vOo3l&oNA<85W@*eFs;fK_8P z4BG|=A8aX;w=A|jz8qIua0Ia-18cAfCac=xfLoaL4}h(%Xprhd!C1dqBH>s zOlgamHxM`bVv|zORrMr?GHZ>!yof>Rz;;^BA*ORK2Bxi?t?9&3S0atvlpHSYCH^$t ztWH%T6IDlGJc+^ef*2wz#2YVLo}w?1!?Yw)J(aBx;nHHi=YnIcBDK!60YDL~~~%5eV6vL%7`hB=%CF5{Qhjx2g= zrmo@|DpH2^tPOltySlMxGEDS4&(@xwidZdJ>>On|%jE@cPUX#pl!;^W@(&bPvF@~Z z3Gt?>#~BveXrsH;>}BOc;0iUY)wQ>(BSn{*5(XCKprZj(e7Hit+;rG8kk(yg(U zg)n0xjnu#y#oh&Ar|9dNG$xEL%=U+jzUukk&$$Y$#zjeJ^`nlxG7K{wP;wPvXB#u* zjIqMi=t=_?X=NFmiuAF@9xWGM+Cx{RMQW2HIXmZ4;zJE`(Im2~kW!04t0$Xsu@ zA%DPAd^qlppKUI^VtqJvX6WcmY@dZxwTCzV-Wbu0(^7zT^t0^8rcodKWzRObKh>of z?49$y`7ktIZwp)wegh^6uZ;CNMG3y?whQlhJXX-op&hO;58MchRvVlEe}JpeITNSj z;V^WEH=rIQUul%88GRqa9W?9viQ6t(sIxx_%#}&ZR`e6Q7>&0TFTheQx^k(x57$1_ zbJy?Nyx?~?x?yz7r~X#DSncM`>vN}BUN)DfUUMBaZW1@#-R>op%jK`5W=59V0Mc)t zw#D|6m}S}!CbDhNp-tGMb5cXcARTp@1MnOt4IJMMg^H; z_9l&Phz;1M{=CjLZGea#)%-)1El z_D0zt3)MhmU|m}2t(LJaaaTA86aJ>S|M@E*=O=9){80+H%6j^Szyrke1fV1T@0J(=Y8H6{GF648Qog=R4u{4dO@4RBKHaZaVyKVH==@;xZ`n z^QRU^)pRZFODTRo%x}hn+>_os_+kP-4H10yK0yM%A(W>j-pPjF=#Tlg_ zSWr0vzl+V&{Vi3&qx2{Q|ALL95rC(f!E4Y7t4sygMAsT^R~;j25ixr?kF4!68 zqlhBlV)nfI-MNg*kE4k6sK}=lyiu%12wF%%c<_8-5^U7AW01R){S^CexsDrWBwNU~ zxgG%a&Pk{QQ|$ikJ|C1btrZ70<)dE>!TPSa1Tg6ug4R{4K$m~68=5xv!l@YV8_{hN zx;)xl)THE3hJH`_Xj#K>^a#S$Fu&TXxcIt#>JWS`mO{vCy@xA$&>Ga^8;$7+g$Kx0 z))ttiG4V}r2f7b9m?kz8Y&9zqDtd)cd5Tw1jW90vRgdU1tKb~1Y0gHf(zb1;Y1*Ri zhb8It?+M&me=S;L%w}--x4J^*0c3Lai3wzUwH#`;yU-*PDw1&awi--l?B3c#npPbQ zV>Ng2SZ7@;1iD#;lLxYfNJk-LZ>!;(u5%{+xgby~_jzvWc?}a9{^KK|vup$PR8HO? zavUSRrkVo)qH>0-pH9Bc2Tq(j#CK))h?AOJR;t&P7?=88^nh#_BN#4jELEncyN)n} zfIoF`WaPj0|KR_<{)(+pr1JPRqN4d_sTTStuy22*A_$xOjmz;jE%LwSTE}(&m1`Yz z^qv?QNbtKA5)@R#-U+FRSSGIyq=3JmcZKSV@W^@<4k=aykwD@48#js}9V*Mz`G#dv z>$dNwx9|71;Z+ENJ&5m***N0FNFzWw6d=N+2u%ylK!I9DGJNO|r5dge1AjzxBco4Z-y(7o$NbdU`_ab85g4uh z^vtpw^vfm7m%k{Hrt97t`V)6WBvxIAxep^0;{)jL%L<=vBU18J(zJgve)zwZ_1{9Q zTO99ui!*sKWc+;tO%;g*Ps|Yg-Vg*>97U|SYynR z?9kEf95i~-H>6PCpT1=g8kuMUb~92YR%(@wQdvJ6bG_D@qFU~=^8T0zx$i`W8pzW8D#AT_eoVj zR2fDaWgC!5#|Dtg6bgg#EaHkH`Y?^o5&)^L7FkgjVW6`V|vM6wlzlnfFpG^6g4>4}S zmr6O&n~;6$G{-UK@dP35yN>H36J~Fcdrj5v@q!!i^MQMUIm{@!N2)3m#G^lp-Fej$ zvw!Ti3)1W3>h>@F9Een&A1L@K=2nI|xh0=z4{h0xl+wjNbe8?oi*Khr#Vn0T%b%%L zs23&&U1sK|_#;!4&OZQr-wd!gZofvDz`jP9{u!>~fB7f;J6BO<$`M-x;Y0L|ta>@d zuPKH|ik$#XoK;{@0z{xio{+3AZ-s!7;rE~>)_j1rSkosn4!UAswUOOygv7cCfK1MYv{F0P-NsVRcE^skf-L}uDdG;piigXYHB@qo^q``p%r0WRAKQc zO`+w4<(v3{J{n*yDZAMGr$p=w`g6eX@!O!IkM5x^tC;g?)jp?hjDTc`Ej`X^Y#I9g z9MfpEa=rGpxZ2r+WppW(ce6%y0`F!STQ}o&9ou}dzRThkiuB$0QnvOHNnfq8qXPD{ zwNJvRj|96^J4F34-Rhg2rck)E@&XHTd29yuPvDpBMVG!BW!hEP91gZCW!zi=3AC!D zA$rBb9+mdJMYfu|j0-NUjS6{eVj8NIX?#{eV8}^q41h$vXMZ1vEJj-t71$OUU_u;A z+#tf>Qho^e{K~uzrYrIZ2E}2q4+srb8&DAP1gk9;j%23~iErL!ppS{qnB@bP3lsRp zp{w0JHjy;#Pd3q~&wGY67oEVy(Tl2G3j|5qi@OkzAmfD$UXXt%x>;PVN(BC$q8rVK z_Vb|NXw@yK>nptq)N7uWi&tl|zR0Bx^HE;e+h)_28YE}*LJWo=RC2PcqhW+C+~v4D zhai)tbLk+`3Z~F&P|g`OUP129Vcw>*ad4v2XWW`C+gxF*Xm=~s=$PR6fP<$+Ap#$) zfn~N41cB%r2C=8Z_kDtu@de-@&bUj^HiuWiuz4{aQ4D{)0*yRW!SN?x^|X#Fce^)? z_+azPZ4&G&{*#820tv6WT!KVQd%29vS2Rmn2KPOws3yTEVjB+mW;fqNM@7*XKYz&l zDe@9R7li4uk_zvPco~&H)XT#!fnGss#Zjh~H=P*koAir)6~*l64K-3 z2|JSKf@71)Aj%fy-<2iguj8X$5ndz8Gj4(J!xQPd#P=nFTJsqmxh8F-86PnK(&F`E zaV@jx)F-3PLS7cSg&O%Bd?s-A}ZoU~?@B~mE*oe_xc0?7sC|*JCWok{Sqij4t-OjNIqRJxp_>;9GoERU^ zXS#>S(Z>d+WsVKz;2z%cI=$JEBuQ&(VS`A?tOx4cb;qx;MEBqY)O1(|Ne2ddC1miV z7h%13g%F>Rf8SE%`q`fIzB+X8*Twx$bn3q~5D|AH6MJV1JKKL-OSm5FmU+Rzz=*(T zX~9gvTwTH7T)|{T!B{gVyC#viM8OnbbE^g$g#Tm>b~*pqNhp}?a<-bH7X?E*dQVcu z149E-6$NWNc-Q`O|NefTrTiypp=j>jIgj$s-uqm^!NSHM&>wyJ3AXwlKkCca7n=z= zn)8U6_+sM)FbtTrlLX@ZA&-#|^g#skK=~73N0EUdn7&)E(p+4?L}B++V*G>KK$ZMP z9ObK-W_(>N|HPdunHc@gTegvxk^0(|_$0CAh0!SGeDxQQ`%3myR`* z6iJ9HeJ1DWBXU0jzbot&4N@NC{hm6{^oUK5{nhIB?TGyp5VRTiy%Z8$C#r*;_&$}f zW}dLOk}-fOT?{^cv_Lz&u4YbK2jN^YC0TpCD`iahcSR4GJpZwFiHD{h;_&5meP1S0 z)EQxX5D&@Ob?U_E!^ho;!+LAarKf)|?=TwYvF3_E?2kP|0%e6V=?LLzRmqz?b+k&# zl*lraUDD3*@uevG_xkqisTa3G?jZ`jzJo?{dn}*ntlcw?^g8qMN_IXTqI>I zsxIgC!x}v!h{{Nr`b7edZk!;(?6;v%dRS8F(m_ZnVq)$niGglE{??_EfjgR7ztOI5 zz`jNZhfr+YYpJkHC|#Gtj|F)ck04I<-5KXKhjpj5zUP0C>i9KM4R^o%d39eco8tdm z2o-0Ge@}~vR^9w7E#`BRbam6Z^@7BvNXlQ3DsFiAT47vGWL@1N4vIAhi5x%kf&{iG zGtL^p3CLu z*4N|pPwcnHf|5dbA*@F$j3s;i5my{#2k{XDoY{PR;eusiFJ-`4f`<^GEQA4;0@hA) zs4b+G8E2lszv-Tjwt6dN0TMNla%zU9EruHeEGKlvNtdjF_c*uPWjzQPc4K zym(>oSUDvB&^tl^lY&#^iCpLht9=MT8s#r2FrfwON(j3yhML2pz3M#9AN&O@H$C2CNRSwCM$0#A?guK)=1QS zm;MeREoK{xR0n6mlvD*}JQX5tQAU-=AyyrOR6{%_=f*{N5R}0V6ciYe`(htX1emK4 zyijRs239ujDs_fytKy9ErbFaiL3vWMwu-|PKja-4PLj!KM?^%`afiQe7c~WCgv zGU!9ceBy*gLOnVZbE`4UcHQQoE)@yWO~Y{i+5^t?UP|jH%-LHMN|Ifa4GufydFBd+ z+Sv#{MVL&Z@@ArX?;2yW5%YzIKjzoSbjZt*)^z6fC(h<%FwA%B3NVQmwM2 zp{}gWgO5kMTymsrA#{?m%Y?243<1(8c)nG4y6H+cXRGsA*qO`j%3gX&bq8pJQ2Ehu zT{K<^uP3g>QTlN^TO25oOnP2SPe?Oa@!K@ZjA~r}>MVa32;V^NdW7&F<3)#@swa zCo+PF@d-PAev}P+^$I4X!1rj|6tGEOmRawfghn^gCzEtJZ)1n6K|B?n*`-l}t?IRn zI=>F=>MAX_+AdDnKOvLLAruhhr&ci_2|>)jA4ffL4-SJi$?%4xV|)LU;iGvi6fRxe z467+H5fovRMmz=;jzr%D3(y6L1iIfC64hjt8wLj!LZRcuNSZL@Za742Y1z@bf3)96 zyK3XPhgiqzdZe!X5bK_lrek%({C1Y_2az}FtWn9gt*WK=l~DSD zCdrnhUgX}ZSAnLicnXTDjDS#iSRi86U3!7F4=Ev+;CVlVzY{x)UhR4Rd>(ttj$J7O z>R-V@#>LfmH#I#eYkK#v9{TGWi#DQX#J%og(-$AjT z0<;u0%06qC9X&9Bq1{y%4*kGhp}#EvGDZp~QIUR#VTu9Z5KO>nx>n-npU=c%A4$M? zq6{LGd+AYPAO~4{o}sesz!Osmb2Cvwk|7AjVzoYy-6XE#4l|@&b53m$vX7B6Q&F?e zRlH_IV@$egY2d6c(s%Eqw~}+R!WLxU+4E+Yl<&4is}*CmHe7X`%Z?gjMd@nL8i8Y~ zGHIYY1XSa+As;_NI3g3$-`oW`f@H-=X`A2YkZE8{0?iZwE`4RvX>?wnx$TkqKD)&+kLJ`|obW?zFEK_%s{x%{J=c*x z|5s;;!CD7PrCO!`M|zwVszL>3leKw{lGB8tMD2&Yid7j|@r~Y04w~(|9V`jmqI4zU z=3#U?cXTJ^MP{r_IF6Ooory%+E4uq_>T;}ou0a`% z768VaW8`H{N#PN*;Ud|O(duo0q%@--d~=sC+~&LfMZ3*UxCC!zG3{^m=hrX zD!2VW`7H!CTi~Q7%zR?S+`!{!wrkEH(+-y6<6Ytm>IB$U_INfK6Vs$aMdt}3*X<@k@ z42iNALp4L89{d~M`yRkB=PTBzIC8rAkGB{21JdyGc<}%+%fsv#m4vz zvzJ%@^SJQW%gL|cyaDz#V8BoG?VITTc@y*ZFXvw$AO7P-6?Cz%{!jYu&|fAAHO$Xm z<3tHoWJd%+;NmI-n-$oDJvc%CZ#s|!2;wk6t_|ry!Bdm2W+@X9%}W&zyz>3)YXvQ; zmg_Rqnwqf%DreQzPk-)st(qf>x7pG+v(FJ5i09rLu3l?Czb53j-nO`3CxPLC%+XYA z+pb+{w|0j)aZ;~kFXjK(vOzf%q;Zmwbd^F}xfEht8STBL-+rg%9UTgFpQPlS9I~;C$#+;2R-*_4;rcGSQI+O=?IZ_n&C6G z?ZHI#g&bYa;HK8`hJ_YyfA37&J22AD@rDL+8<9M!OqAIeDya#a#U&C64!l|5`)aL) zrLm7V1I!|V`YPT`C>EHD4}B5qeWlNAzks0?{k=JH9vsDPh`lh|1DICVQhr6UbQP4P zfKxNS?`DAQ_hrv+z2aGZVHIgh@w0+{`CcqU^GYrIF;`0)8sl2RvUE#fCBaN(r%s+u zl|*?NN@ySg6@s8*of0H={(Y{bo;b_sGpt3Gz>3upEPru&>(lsXPvepJI?7!ypv!~0 zzJhvk>PVki{}AF>g-q+jO)ROapMp-;Rw3o)-xpP7)dNCu-?5Yh`wK054>xs!%3}ZU zPgpEwOAhL1cmZ~QVzCBxn2JC1(%5B)^s*nI4FH&14~sh`WD9Y#{ma zM|R3Fq!kl!E{tduCIR)YmJU76mod0H3uXIBZYY@scPcr7?rPMA76@sU+JbPznMctV zM`NBC&C}SF7bX`uSP_dKC&}-vloKaY1S0v0|D0p59di*XHP6#f#j+R%u^ne%R$7#m zz~CmZKRd7|PLh$}R@OKY%BZcV3YNjHnQ$DpQ9O~%C+g+%O@UyRja%H!#E0H^_S@=) z+-mk2%mbNJMgh9u$Vxz#Uyd7sUnTi%8Xra!cdg_PNS#nPd9K03&kbz6P}EMZG5vT3 zqq#=%rL_l`xI#Ix+rQGr%p+d(qO`qmL_DHw&>%z4qLfo6tkvQuV+lfKb85XkR(?+` zd7zS%NaFt~Y?+CTO_q!x-7m46Av`}|9?=;Pm|-YNlw=~}$eF7u@Ecx8rcPq6xK<-Or#KSsQpQtVEM_vR+NiZHJ!xFCxHK|o=o?+_=BuRcy zPaD<&if8hZ(J?mJdFe~+gz_UZqN_=~@j6es0nf37*QMT%eNK$xIgYzF!}ROdJBg?( z=1!t>PeKUx{6v(?t*}f1ZQd@l!gJD_xn6P78H|V>lh@e%2Jwd%!~|!@Hmp-4Rq9LjLxqElQX416*$WnQnUG8K24n>Q`Mhbi+@C zs5IvEB8h`=Z;du#e`=_9l5imZ$^_Z7un@uQjt72;XK6H%Nloev>xnp#@VHenu*~)! zM$len*r9{EX6AO!=u9IR{|R&dDsWHa#Nez7dBK#_~Oiz)|)ejK*!f6MJnFkY+>CM7g9J3jf5HuiV+SjbEvaP zjR*!RQIQw%#Tu83H-`{%92_I9>xSM-BthmVcV!upmQ$;|Nqv&}P9p>EX+EV$bcW9|?6ZBEOxPS$-%c_+L`p>h99 zt&Fa9W#+_z6FE=d-j?JOz2tPs3F>hXBYuF2t(1A1#Ic6Z7z7AaxIj$iYD_k(QhW3O zOTZj^GnfCYKsH+GoY!!P>gqy)!i9<3Do!`#i)f}1s}pyCq#ev5nZiIfqHUx6l$9hqc!{Q3J?v-94f5qdE7lAq<6PRi6_yvuD<`n=R&z)h6cuo1VgS<29z0gd+hc@52CbX z0mr-44%4>FCRLCL>gA}9#k+vnT7af*T&KUrJ@z$iR6c9SQ6fXFoxvX%H5fYf@M#7B zgZ5OLoI&trj?6_cQJIzoe+haPzXdGY@%Hk5B}G|m{+5;!0`Q5taMnvH?YWe65tzu4 z0&)How`NdhN6`VdsW=38^htQ}d1-D2%|^xku4wG;Bo5O)&b?v_2lr!!G6T4Xix51U zX>4Bo2sZrnpK#oRdbhZtZ2Y5Xe1Ojn?4FFa2YFWS#yuP%jT@Gs8x}Ge%fJ2LXnU}J zu8Gou2aHZKkktT$7k;Z7?%zF6=O4gm9_ML!FAaALHpuq(Fq>$NrbGy}M7*>_q#F$x zs;9&muL2-5z0PU6#)f?Y0>(KZQ)2apE(*bo4fRPV3O<9Y&QNTMK?;KEiJ8%FH6zM= z1|33TIh)oV_sLlq6N6N@M9rROo0zymmK1I^IsNrg{JSV+w<1&5*IhYfsBn=W*lc3}e#s!7&LoX+!q#QU$>+g@ zRT&=Z#vHRsWVh`JLuSO(OUyc~9LYVjBITV}j^Ue-4#8=h6xPkm5+OabN}#vPW}jS+ z1$V;U(zlW%BfIaa?}D%!$ehOrjb}@7U}NYZsrMPDVWrYRDD?JluT<%Q#V)%Hlzv+1 zoDmJ}jnvF6zZ`I@4?I2l3JZS_u)KNZ^v2HA8EX5^*Kn$~N4BD^9;J27ROyTBYY+{; zuN(QvmeO5d_Wkd7nmZZO#fe`>K#?y8F7Lmv)BLw@h*KIK?$~OGpFH^SB(?CX67_`{ zO$+%E*@NgZb1OlwHJW<$`$-)Z+09L=E%8l)nnMoc!LgOvhj0irj=A3xT3m&pi#Oyi z-+Hdz-W&1pnJRTOQdDECgT3GLSJ~`LeVMK@*nat*^TG1~EFtdUK!rn zqIHF8UAgS~xbrpQ>)#5P!v1WewFZR#57y2x$d+i^(q-e6amu!hQ?_l}wr$(C?W$9@ zZQFKL*NxZx;@;c+1f=Uiis`3of1r3;L^=IWe0Cg_ zJ)r3BKujnydcSmE23k`7c3Q;c!%!WB6`sB2J}W*c=-|X=UxpM2FvxuBYGQqFVk(jK ze0r(nHOZ4B7}iZ7Si0zdGQFM()&~_ zlf*hf*JuGmMr1FtO?paOqwklIhm)0yftSSVSQ}4E6o!ICh*roV9cbddI7sU1vvSnD z-d7c;U-I)Wg*Gd!OPmaxYn=4Ezkg5pQJ|C(mfog{_a_USVpJ|FKTmMnnBBz|xafM# zrx?j7xC*I4TAYy+(-jRUvKuyrLRg;35te)N<}P&X*Yc|MpyqBdT*Ejx@d@FMXpiAs zN9&_D(4#qsMqsN)B047FN4y)DD=zE9c`E;H>Vv+}zFf0qOi8uTml}`yk&b$IOY!r&MBZjdV+R5wqvTC2~Ke$rW0SYmo=MWzG5l1Ct*&V zz!vRlRNGw0=qhkccS!ySew22&%I|PBi-I_HR4%i_tvlMAH`59&Yqu9gGQC}kPIBSb z<;oL5dP~GnIIv~42`eYpdcq~eJ(6q#lX*)biy^%Fd#tcOzGW~~iWNaAKu=9&JFum; zonIY`7TpoLdH5F%~ypSvPRUg$`_awS#$KSGXmtXb*Whb{Gk$uvAbk^~7Am)z-J%N9$ zxuY~>4woQ=i8m%HC#t$uj{m9wTQ9#uVcRi2iojuL<(`c z)LMpWG*rG>d5ZM8+;W3=)Aq*r2IB67AbJPlN{H?R2IlOTC~hKq%n*NI_2|~>FubB9 z=rF#*CTxqpV0%v=z)yU|jph)2upfRAf%6;2t%8yyu#wf;6yVQAMQ&}DS-6q3E zjSa)PC04)?S!=TY3)+mP$dnK#XZlXyj%L(iUo$;yroq55 z|E|}u>@w@&KWSdpo*j)9V+xH>Q9bR_V^l6h?(UMkIxSC#Rwy)E0wle7Ej*JreJ&Y? zp(L&(U<0c0X>1?Kh4C-3R_;gt=638o%Ju3^jsN)$J$j}u>Dh^n{ z{`vhtQODk?<>|V)q+@j=x2y6}gQ}RRbI^@+QyCX@w_P8fV` z7Bm-8qpdYxnXr1;yZpK1RVMNz4;MvWIHR0Fz*``=GsWAhxN|!Z-f#r`l+|#oY>u&; z^|yORsn8;}Sv113Bo;U0%#1xC3U!eLnTh_}G=mA$tLFYvovMxYC@knlKQjla(DY;X|++8ww z-DxFxF~Op+rghl6Wz{&hZ*D(mZATs%BhxGEsR7p1i}^ zkS1o&8VH$Ki0~tmTAd|k(a;%|shaR4wV?SluQ_!=um^_ILzzi;CT51h2kH^4+LPwPd~iR=%QnMbB>JSI5rP1;^({#hvr7o!=^O@S1JAT z+3dt^^O)V`v(-NC;A0{#5f82lPYjj#2?32!2NvuAB%>Gs#7ApZW~B`?IHwABxkWLi zxJxA5!Dgaraj8<2YrB2|Lv_~)SBn+@AvY)QgxanI(!-X}13P;uZ=}gBv4$+6ncC1J zyL#@NQN}rG=d|PIY)N7D(aD7A-29}dNU7BHGpNwvU1z*xQ2p0UDeqTYw8l`W0?yU@ zroj4nxFVY0LP8tfom(IKi&7C_4xRDrTiDHS5784+*wo7Qs;b1y3L*;PW6h)u@VXT3 z%H!VjRz3Fq2`gry79L_B6Iizl&T4z08n@OGTwxuS16GtfE;X>$q*DMs&fd1N);`w3 ztpmSweEUVYnowMEvTef8CzWg)U5%3`8pWY#|3X`#j8O-9+~FmvLD7x{$eNRPvcdC* z72P0qGKu6RAvX4VlltWyN()oKks?!O9aGWKRBX4ZO^|8H?k?MGZ&#Q5g1m#oK-gxE#& zLotBO;D!5@1b_n6y9nS1!auVl?fl~oF*e>zJ1nnSQukP2M|IbkQ`V?EBSE2D6Hxcq z9`zRo;~XRNQCz$ys2x(X)>nwZmx`)ky24_Wj98RdOX=_dtX0 z%oz1Zeb%<_iWz-x^Wbcerh5f&;Tfrdr*8}BaIrt{-*|&SGT#hJ0NjX*0keg_I;?w7 zEp)R?98C?30iE&JP`mdgDM{t}d$2EwV`!f~DjvrZy{|;EvCG!5+}$zr3YlMJU6eWtWGU9hpM~|Lno}F?++bZTq@;A43BfI zTx60T4duuuQb!W&XHds}90GF4Ixw#)wpeoat1mX{03GXyEEO+^D=b%Ch-E2mbXAms z(wuFy6z|5wmN;-oF4i!QSJhCoC}Er*FEP!YP!`-P=NC13QWHM_hpIn}S zyqsk&$yjv|hclVpj3@SzA4of^yjhZ3E!i^UrXt}M$1}%U)}+H;+Bk%ACm72ZreT2! zb!A17oY8%0a-HBA!U*XVQ(UnwPbkp2Zi4u<@#oMgRe17a)>grFO?Gju)V^w(KvGMX zi#h)pvv}y;e+WWlHdT#_WxZLMZL9%CL}_y_nAs)S&5N-or#F#vPI1q6C4a6=lGJ!% z(;vtR33+m~um)n|g-6;^#<~9&BpE`*uOQxOBDfUDR10c^kU2~Vann`^B2THE8%C5; zeNVKg7+Mkg`FTjAx-{q^7t?^08(6>doZZ}7LAa@-hW&}rCmYC(51+9opbbjWGGy| z#+=721{Q;eNG*u*l~9^B+Ic=W4*VLc@O*tPgCw!_O!ZEBa+Pktb_#uHh0zB<7lZeR!dBQH44%FiqYFOO zJ{iLgWS)YE{#mFwD-^}OM!|*uC-hQ(PtcY79Rxd*W_1FnR{cebN5z# z(>+7MiNGKC;Z^I^s|+P=Z1zTaM^7aHQ74GWL&`t~l4y@WJH9}MJO(IshejHPEbt5m@FHLXjBJ8KXq!0Xxk7! zd(M~J3dm;JCs$MtNRzW|fTBh_v?kreJJ2V#+IUv~@X8-yt<(~vYobTQ&i&E01MGbs?+u;A)LKFZDB`*R@*~Z2$?J8jK;i* z(pxe+TRN7~rQs_!&myyEVOzUrFh6E9H=CeYsvNfF>;?jU=ol85;hVsC&`SJ01jZT3 zG=qeQJaCkcC+~N1LQ873l(YRoM-jsZ$IKHb9&K3ahU@@#x36PTp?z5z%~t+7iQKhr zmLwV=_Nj|`3~y^-hKY92o+K-$CBf5t zZjm{{?F;n=z9DR9j@2KuE_$n0F@Bu5tw)QHJ?WNWCZBJI(;uya{Rww#d8*RlfXRlb zo;@UF#uT?Kdw-YAerQI;89mjx%f!!>hh%!-%qVjNa>RK#xR8vUb`LJim2~%)HTMis zQOtD;=>*xYjhUG_reN&Hcsh68R8((OoniGraGR2PY)r+if)y5#MGVQ3!#7FZIP*u# zniPomB^=OtM!gBOvRrbqw55W^(RmRlnZ{w!G-x!hWPHt>`~X_>;Nhpg%C?-8o03F` z;26uwX1Z?K0zEvF{n)w(y}TeHfkTGkmz ztJhjuyVU@;lZ(C8z`V#7*U~oPC<(@dJC+b?_mMiqYss4UmQ|zbGD^FZ;rVo`Up&p= zhTzdJwVVxXIXrTi+^ya}WvwUnV#kHI&eIxIG+HL{4+C%6(B!r6*2Hapz~nXm*5ve< z%p}?SqG?s_a&cppf2sfE4zJ1YsK;d8 zIe&U4@tnu$0e4w--)_28`9%9yO)Hn-6Mgqb(<1!QwD|wKn%2J+dH< zG^^q=!~%$?%VrL(fZ)!=>ZT02C>loSM-SwIs;Ni7&Q()XwXPw$7m2tRv2w?=bZM;d zBSvO4nz^@}dTl>@ZL?m|GRkyVsHyvD%6Wep9Cx`f-cNQ~Y>jxI@H}$^u)FGt80|>w3>k$aA@yqg{aicNB`Hl$nP=>&8Z@sxVgIg8@=V{BGy0y| znKKG3`RDHe9|^AE9X<)J@f`x#8(BgO{VQ97jO(qKHSXRB&*5MRXnNnz7}sgsfGSba z+(WA`;(`-1cWS61gSqfu&e%mndSvAVpwG4kuA}oAn+4=2y5uz;fP=5pdW#BrbP8( zUJ-G#l9My!J13oh{OxRPOkCa6qECZ*uJ(E$2Ibb~^XV`G4(JTsWMw3kEVu3GD7;?K5j^jD#ATh3%cH?Z=_ zVZ}{}W`$iZmA*F7XsVpsU5?C2Sy!3!qm5IKqpL;f*5zh*Jmu+x>FJ@5A_e9o0$&6Q zkc$!1vs@9wpzacEm`bOWB9hE3!fSD@YwDI8lqm^tsz_4CUv(P%r8FUtCRskABbm|l zIl|EJU=~N$4KdF$!MvKQLG1wc@JWZz`|fu{HlL>b?`#KE?KTs2|m4V5kPf$yrnEj=E?>AWM6~k zrR^!zyId#H%UUbq2biQp2vz*+aW4a^JIIC+CTc+S3EMN}HZ04SWul8MAF4a#+T#`& zl+_@|A9qg#$~!WL%oQrTe5d54?eENMs}Pj8pAN%LP3lMbs7>le^5`}42ab>Korv-G zz`-=sS3LACDqQf0oN)|Y8z3j>8wF&9iera=k3N5HQzqtQM2{S#qW3CU?QRd%CkQGh zt z-|0aPgZN!hLG0Bw+cU6RPC|MyB@z7oAf~{kff!!xu8!-K%}YjP_vecb)W z@;Y9x<_^l`Qg9o10a=}QSE!%u$ZkDQ&A+b3bXbVP1?T}~Wio3?sDNTF_L9>M#pKQ*4ZJ z-?X5Xy{|%dT_lZH;v+T;L&HtpMHIT!*U(s21}WAS2E^eN+(0m0+c|6|Ev}P$CcOX> zt@3=>X9_byXM7vV?bXJM3Cs|yrb!}_d>aZgh@;j^$bfE!vg2xO%RUO^C<;8BRqI*G z4lG3V^#18+uHYKqghg4oKF1c3WcV=xUT2P4)wbAN5}S;QF;1W>l@~^BdZm)cLcf{C zRo*Dn9GE~Uk#XVTGIwO0ClLWmoLNa@WItnPpOl1SnxGuaF(UO&zu;6G$CcOCR2{$u z+=CVZ#cSDPF-rT*sSD{BS*16P9aujETU7LmIH>>XUQ5BfTc(*RS?yk_@>Tn=T&71X zqG3**(*Y}uw5fh>EHlx{rmj$;^5o2Z)@kiY1pB@1oI8Ss-1>_2c0OW&@uYcBM01e4 z`30<9XK>HSVP~3yvo(Va{$puwCzte~&25i@{7;m7T4wtB4cCTo7@9`MjupIQc0B_N zITtQ1nfwV}kmeLg5Lz;CX%m8WAX*2-!U|MN3h&Jd6fL=*tQBQvBM5&|)lEHOL+zal zw)WM*bO$kTeiKTrSO#zuBiZiQ1XT+Rdsf9mr z;_;gce_(Y6hSuDn4)`g!VR6~5{IwSaOi0f!y?@rG7H|Cfdd{zWDGkAkU6 z`OFeT|5#j6S$f_{h28BSUIr;|249faZb6^dI zKJ(Xik|atv z8|?U+{JRN5vf0&aX%oo_d<1l76Zi~GNJzF!i?;kzPu1DIw(w}-8HVK0*ds1o2qRV< zx5@|DgArqMiU{ zV6D=<@q5ZCC9CjY#Zky=rij36v5&dX7egWEjP`fUVLMpXz1DE}ebwPZwz<8l_|}dv z*x-Y-y8`(c6ai{1&g2uzi{ebvXKCFnqr~tx5yyRSw^rz4nlXBc{&V4$%^l_RP2JVO z1tYg2v$M@+x$D&CqnR>M+Sb3#nM_@T+Rqe)0)YeK7H&O)-j&dnnWOuY>`fG;AA%(h zzgmL|_AOD1>mb{B#gm&*S+SzlB9q`EVBT8}U@k?vTX0`dZ5)-9PUv)xDfmOIP1ikJ z{I8eR$NYy`8wLR&n`Ub>TAsRkBdIc zxBf7f_!x5#K2s;83DF0ic~pc`|Mazsr>liV@)KsVsMf+cYdoHmri-rx?io-8I{^Dd z47GC8!d^ChQ+-0&3B~me<7DRM_^RQy2gz`eodWT`u+}c)q(9!1%yhW>jY6=*Wx!~9 zUgovfnIOVG&&mYo3wSZ%B6rM)K$E$fhNIHl6m5)N;~4d|oJ24KJg0dDU*c^XKe^d< zPG3dryx{N%+AgP1MbNncobR^8O7oYE+|Kv>;&uaWONQ7epT2{my`F)ifQ^-vp0(jWe5vwI*49S$|HnU`70CzHNB2wU zTama4;t7Ig16(UqgPaCL=myLTb1s>QTRy#-UHUJ=)^9QLYmOe)n+Z!LQ}dmWMZ)7kVH}&^d=*g@eK3rF9kN z(r+M$h}C$^E5nF>U0l)^o><$-J}u}DOn*fpkYR8#+~ z4XWOKeYK@V$}Pf%a`1frJoK$`?Q!k3&HZWr{OPg*3J_o!h1>j>G}JSGq$JccePmPc zkHA5L;2)8Ld%G$6gvd;$GScAvdn znLc{q8E=LGJ|Mp~Abk9K5MMO_zTm!NcXALvBK&wtN|+qfRg}Ok$O58WSrW!G&JHs5 zOOf39h1f=Od-Z>_NPSPaP}QQVt_UxS zro`Ykg_CkdJtZ@?jxs?ySr=8-kY$GY6<}NB>JDlv$48hmO7^y=y{IT}Mw&?#zMk47 ziQOwDw9nS8au(fjQFl30s6Qojc4m2o9DwQptFYRMQ=+8%3ucS9o*)my^dWWA-TGQ9 z>QhL*H4s(h(^Pqytat$3I&!lHJ)XFz8Q{!2@Ahi`!<}5SWFW19s7%;cB zU*jCreIBcp3FFd=d&$iIO%Ys%)}G3TH6YzDDgoh zl*#~jwtOvboo$y|vFhrmRiW!j(X9=t9gwzMwb4nzKYwti9ZC-ct*pG7UG)Ns)*-36 zqjE}Vk(k5(koay0>Q7a!u=1itd$&hc_`2_>S;q;OTTAP}R&C#gwz@$@wylWkpteAW z`)j@xF(TilwS&!s{3*$n9^a#Ne!9HkUtq;O*aDyNqe*yUm+=(mEjdI_NjuV(xP;;I zGs9I%|8-0PjihLC6kz$+@o10cEUx_kY$o)I;tY|L#A~9%C<#(SheP;+Z#}`}?C@%d zrLw9-(uy)OI-7&zxti zn?gsg)hozFxakoGKQLAgVGXVVtL)iWlY=_ClYbn)ZdF5FsRY5e3qnl}RL7=*N1*f%GtxEn^ky8ZTqzBjTqL5Nt+T6*+;36ZzF1btEr%WY(H9 zLKa78s~AkqM%9mxc}2_sw$GpmMvvkAmj)xg&?wokrZ^i25~DhQ%V4J!h7^ywL4Ad| zjw5Z6QOp>2g0{|g0yAv_0Ns-N*zKz81r|F*oA5k!`LzIC@W9O7;D~L?2JT@YH$Tjj0MTa=)K>1rxt%-=@~AlBsmy7O}RL_adC0#j8acpQVPxIe#h_)`_lDP z)7~L=q*Vq>aYS_(d3n#o#HG92t1c%AVHSu059W~3_?DXo8_>UDIB%capwyXxp;6ax zq>mm*xu>pic&(~|Wq@&!Uuz@KDAy1n_M5@T+T0p=4=5XO^W8e+ z_iW5W>X+(y)(keN6Bu1W(s2JN8Ip-KnY`sP>#TigfqNJA2v24l)IIrtLkNgau{WN{ z`@XUjz_s+_16Tq0BW}BLFGta^hF`LI)tFjQiF%LS%r};p>KRt+2gNSL3CEY6gpDjqJDGZ8l=d!VOaM#_LqQk#ORVa{k=N1v7E$JIigPu z&1`_%@>xZ6w%TxxA>?*uKna%T7G}&2Zn62ngzmL=X)n%S?!0+hzS3d zja__D)hMa&%bOXX#=xn+L7=4#8Aq}=`9KdV0VEbPdb7?EZ=ym`i$-~zdOKtDwRHd$ z{7s-IO~#+ig@&-0RBKVi{Gca&#tMKO0+j&2Evx@@sD+FSf~wlsEhhvuL1@bRGA~I| zPyQIocBpl~=kbm!Td?S355iXO{T_hXr0H+iWhV%xN!e|?;X)878Ncy#^$XPt z7{B4)-Fti4drQ{XhzPVlZ{27=JkW-rMPP5-ayk*VlReW4P6?l$P*2%4skaiMk;H?0g~t_im7NhfVQ@?o?dRG}P z2bIERcWfHMr82GGB*+#iEk4#POwk zn)%js1E?N&Lf-(70mU%>6?1($D0A|T2MzoEZ{^~#&2I{TpJ9CepHt?4UM>n->ivWu z>zNq+8w4UtmRkat4>{9?#Dz$kNxQZViRyz4mC6#vKNBiWQM_7*cD!EC=6Pi^)Ms40 z_6Gc=V1QfRRPT_|cvuJ%&ECTW}VPM_?VAw4D~@aT0UHPZ;bKWWgLJ zZYw0pvc>GMacHb`lH6{1tq+&Zt;rMM z@pF@cl`bXjW3m>{>y9h7_&U=D)$v$pNE3Y@_NEyPTDFAUyL<%8fMwtwEq#vDm%PJu z5UHd$|0jdi2Q4UE+(7-_J{vFm=ZIM+qM=>E)o|##9C?1SptQ{N7H>^PJzew)J7Q#Q zMDM@lCiHd(gOdH^Cb0ep7GnSNhyAlVQ8cqMQgGCBbof6y#;SvY68d)*({Ax-k(2o}MqTTxg!fJu@OAbf{eHe#A&oI*MM#CXi^5 z8Nb5oy{ldAc&EdKTuzYk z-nMSt=z^FE-spTx1{|UDBcicNx^H@7(V4g=K()J~c*qARnUDLL09C1Sw%Wa*!8=4Q z196?~#)j;`zYS%l)tp!7*CLNX3ui3lT5G0Nm7`09nTL0!H!dhc83PgL*VL$!(S%8o z>9A%eWiy!Oib?KR!YugW~9O^rE{k(>33JK$$h^rBK3GLxl)yC65mhUSu!rfyOV zogLRl!d4muuG>_v3kfZy&_0z}D$>dV_3ZD)51JQd4N`;I{?1^RDT|%61+;97%aJ*; zEK_qH9u2^Dkr0%b@4Ee!Y>Tl7tIolhvo}~X3@&6*cZ(Z`POF(EpWG#M4j-pO={!(A zG6IW@Z*5%4v1=HQty$ZqI8=9Tj{{@YI*y*7TU-=NQ;C@5MS!$Fvu%=YN<3FHH%V!1 zuwCC=E!#mssUaxd%Lf6UEzs`)*+je;+^2Zjp%0sN3NbuQ)GYzgS}EFz4`04%_h(hq z6pry{Rq70CQR)nELFp{n^YY{sQrmL$aw8OQ!q+j(O9yf5s1X|sc@g!GG2;iK_|sbg z^(O&7N5MXN)J|=u)1S69pQ3v}g`#^%$vmYfN_rDrbOxeLy+`ln0-Eead63z&WY6Q{ zZ|xKcU8Sn0p|0>TyPoQTOa`h}5tF!s(ZEpWsENHM8rR~0#54mt55vPZ{9yjAHWLp6 zyHqlIUxeQvXbZER+}4xwx=WE@8wp}^TJb0Sg2%^#tIght@4$XPapy$Jft$z;l|Vpt ziw7N3!1eq?KwAFzGI!6IkZ-R`Z2Dh?cU%pjTQ868@Oi)Cx;c}Ey)+G=8Yj` z_-N{VkKDg1E&kK%0@HcxD?@Y(-oK?_R1ioFIs0)y?BdDU9$16lksrVWa`|DA z4d4{O%uh5450_ir;9ki)LLwf(IEut^7iUxmhAHE_i0^cT?4|NTVPudepJshjMz^Go z6>k2SE$|PiB!Z8$wCd-*=k~*4QTU(#9joZsTmRr`M4a^O4HayS42b@TQ&^>-A@Q3J z`Agb5!?J~hq{-Ey>oPzsC`wrzpCD1T@Rvqu?)1K)Dyy||{}qX;Pf}3$47d-kkK*ZS zs=R5CczTM%k>*P`<96EX*Zw-Tuht65ohn(Kn&f1B7*H~7C*4haEc}8jXrQ}BF!wUF z0IjUG3XBjHVNcEvF7n>1#i{y0h||gnQCu4t?hRK^2BG}2aTPZ3X=9)0u4x!H$V=ya z6mVDfezw+Ue?bPKO?gERRYA0DZ^e7j6kU~AQCg_5?bsGCf67ir%>Pl_0;LHEVVL5` zqibHwQ7HC1b>~toQ;?ses&*Nveg3KGjY%}_f`|M9LBHW^Cdg;9W!d!CADNuHIs!~p zLSNfgo^~0IPdJ;2J|tCC7-Z^1-Qr!2UDI;+n>U~7kK4+MpUJ2ITQ*|Uz6>!GJVVxb zlXrIpfXcgXs+*F@+;sDi5_1Z|cdTPo^{q>V=w!CBdRoqw5q1sM5w>;K5$|1O3ZaQy z7VAu-X<8t+W6JvF{X519ZrQ1glwPL$efuae`wLhTi+5Be|KmBTbs?Ihy1q};Y0V>c zDX!zxTc3Z!E0XjCYD4{?6~}*8ht&VS)$zYy*b3{`KS&DhgbbwR#Ku_Uu_6#4BD3Bi zc!*J@LJEGAcm%|_Qq!E~sWCRT^ATsLPs&){BD`BbPh@=->Y@Wc*-~8RPDYdIw6v_x zr_Xy80E=1)vc38+L{urwUM1jV$pc$2Fp1W@lypB0u(QCssU^pUOGc99_|7zo*2_?iHjbGFbj~*!Ttf#CE?LL5^@@KFPpkEn3VKZ{*j! zMklh{J>Ar`&%jRs4+B;)gWaMmQ@UT}$6(@ra8F^*63P~b)7Y$*C@aA!MAri?3ts(W z&jq=ar^2;kW~@KdYVXC}YqZ)(1&+z)Wy!X$?Cr)}m^8Mai$WobZ@AKk9-9`G`lfVL zzq?>c*jIU=kLfJ*;O@b!HCh8Y0!vKRn54ECYAtsOl&KV(=D7QgFv4ymKh6#sHoG6> z`{u~)zpw?vrO@pyHJRb#iw-iP*ihfyWmHWwuO`I)(%a?$^sRrlt(e(d_qq}p`}ENB z7wt+bUof>m!j~lAbEUKJEWA{ukGtPVu8r;x`-pyGd4*AtNHBl^2_ymh0*O;WhyV>|>4<1Y{~D4^_2oA; zFDhGDJX4!)n*Xj)Mi}*PG_TNC>9{sW>sV2~+@b(_oo>7CN@E=j1R2}@eh+fHrum7~ zx?(@hKHPf0IXA)a0Ro^n5MnY2caPry(mrD6||Ei@_3_%iM{(JE4dBE%pk+k&W3#rnHj?RYV{zl{-9OIU${&n8A@Q z*`z?mnM6@6cSb;wAx#cnL{nUCEPE;0XGLOUB4^Ixr@0qsQK(-|op*sH?nbU8UdAB) zO2(Wbe@LMra&wWdW(y&HiGQ4pd5`jEdv_q+E z5HcrGJuJMPqNz;2gTg6SR+NuoTR`A)GLB!qgdhl#Y%j6B(4v&BT%2Ah97(m0{4(LG zVh(Wcldr_F$}x+gE6UWdi=r#b*JdPc3%^StX{$(-m1CDB6D!{_fuKtxX{$h-wPKE% z>H4{Ru8L{o9r^SV#3_Tq%NNsIHtA2HIIeP0jO?jM*@;24Ca0h5N@sb`pX@vFe`I37MP+dv#o@(t za>GL!^myF` z>O%>tkWTJz$eI|yVo?&5V0C6B+LDr#o zIF8(%DccHTlu;x5B2HQncP0Nq5v0Nh0H$umRw+^;;HN4XL*5z8_qD{!gay-5BL$LQ z6{Y149dNrCH#NoE+C+oCR6)4gtjo!=kqE&G%K13tiicycqmBgCXcG;(_P7YH{!r~o zhiDwTs1H&`TmJ5mZKJjN;I<%`ES#RF} zr{_QjbVyV?9?ZTM^gzh=n{n4rc3vuIrT;Y&y_5ubk~ zdOIg!Rak6xo%J#3aHTeku|BgJ&o4ne^F`KEYIoahbn+Gw1Z(`ZK{#`f05x+19V@o# z7Q$XDp$dYySR4pwLt_@pYMZUbw!FGFGXaOmv*N{!GmGEKtTrnviW)uj)o%U8>5Cb$ z+f8JIWP5e4cv#zr5X6qrG|H4?H^GxqzgbzCZ8jV2_lFiU($7__+cPmuXB!_|-aJ)O zy)X!yACG@V1vL?*D$0|mvFCJ_=5*Q6b)qGT4X04S?3-e(b;O2}(&}Q<4^Q>fSENP{ z?Hoo+@4kD$W08^hsnJZ<>RbNIEDEASO}4A=TA-h!qYQpKzJB(cZ#Rq5t^g6@Nb==H z6wE9JKZ6?Z8TOCaviSpre(ubr=IB-OLgji!%#sul2Aan#1}p3Z_eH$5)@rptcN;;T ziyvu<-X|~n>*Fq0B#@X-nSQQECKeb*(@C`nlm2d(#GLqTfolxiP@(if^H*&d1o(0n z0dzrsNvitVa$wjL_>-WQy`#@{?|3H)G8*Q6hWn6Ro^n@ zhyB8y)~sj*PK4E*LD(-y^K~-yDFCdYLI=etHt#H1^ke#^6^t-vJ-D}ueOb_@;vilH z>c6pF8~!!OtV@bJ zs3d+oNZtjKxqFL`o2^G9pVK31nkAJ3U*Gr7u_p7y?1CkB6lgT-!CC1LyM_W)e~{*u zgmPN61$L3nZ_4_$#lRBba)m8}TdoF!QD27UFs2;UcaE~Rxd}37+hYA=PB1~S5NMC?T&oahEO1_j5SE?!{3F_UC=xY#QOC%=WcPR?CapwJJ*3T zebL<>BJ7RpMbABy4#n)8?Z?~}V0t8)ZbXo8h1_)JaO;NEpm&xLVy?>YSKR`dJ4E6d z(QP4KpUDyx|89zDu&}h(>A+`43&LG~L3>R>{t6t*Iglauj2h~hXfgeu{NPqb(o0Yl zF7OL5Of@~!SNf90q|^Nq#WR^R`_k~?tm(DrXKS~S`M@VbwS@^YEz}U7w}P~dYdKpt zhhLA$)0;E@qVl@TC5U1JIF_6e|vvh1O!(0-m*V%`33$Z3F=|&i#&HWC0jGXODY4I3NrRfM1!;h%XLv!imM_Tf!2a*jJH9*Bx$maajA0R>I26lImaq2VZ>fqWy3ZQu6ygq6{}(JQB4+=X zUf!*SBn`S3I+lq)NP%%#{WP2h@SH{> zfrwGk2$P=tE!|hB!4cnu1DNQZF7|Yzr zAFU_lI;56XF;X_vHIOyC%(~RZ>z_nm^$EK9z(8aA8qiy>g55>|ZmYq9_ z#NwWCxqLXL#3P(tKDxmCMhKKa>&g6P5M$FGE8}HH5p>{>PwSf1EM=&iZ8sP=N{|J_ zAlq?9+%oNKaS!cI>abXLJHg_PT5jsjim;DZuXt`XV4Pi57rI7-`N2D_Nh_i`3`<0D zgqXe&cu5e=Gt^yKS5se;N0QzFCZ8ebm^#&6Hm1|2wC9|zC6e-F{v1X6G3v)lKC`qc z8x}=}Xx7Fp8-HTy5Zw7Y5e@MT&D?=xY?oPFVz_mb^SR(%ET6*Uqx@Q_G-5)x|LzGhWw+c+IzU+m=Waa~6 zJ{WD=AU(_v)(_Y~aTj-SIB+sGWrEdS~@g!QBe>+Mh{u_Ns%>tlYIdbz}v`6L$>=Tm{R zk+^_4d{ibv z=`(00wQ7^|NL*o5mjD*{1b>W-Xz%mN3U4`>{77$7G?|})*6ux|ZIYd%_*kA{G)S!r z^?YV@<_=vX{wDl|G!&7(jtflh6cu@VF{r~%kY7%^Fc~o!sdg=HBNfRl7}MtnkkGm| z*v0WAAI-i0%oG8QoLSh&oYA`ifkZL8*uNYpCK6N&&1v;fp#2k8e1Kq;lF{rPW3wM4 zwIOAEf|$*i$`O)fFaaWU4HP{*)94Lu$!hKiOx{fdukTGv?v}>N#pEFK;tMyt&nbbA zhDm0>-2rss>BgmdDLsj)kBL>liP^QBD{dlOxTC0k};z#wd->N|#T0t@Oo6!=vNR7i8(N}M~?TG~3eq1{z5-u+(Su4tQxA>ia8y~ zz%(Y+AoM(756dkgrdkY0jj$mjiwGDT5i13{Ph?+nRn$1bTLdM4+1v{Tn$Px=?}#iC zn1WChDrfS^hOk3KKY-TDPNp)I1Wf<6V1uz%Id#~abNZu!z4pN-r^JEQ5C~eg2B>hD znIVv6KA5Eww5DKjNTQ_00w`L<_c>IJ$Go$TiWpqWf_u8jmS?fwOh^blCc{(a}7y+~nyArmU5iCaihY zyV3GM`}r1!u}qu_dM}ig0qftw|gDtXcBE^K z>d0nrg9twUS%BiX%(y>QV_7|`{1w_CgcWb60$)KaVVtJt=jA06A;dLY&M?W)ZtdSD z&2u2?d8aML?P)|3j9c}X#zV#0{{5>Qvl5aF=*_;=L@xRXXd=TuM|6as(nN&Jg?AkL z^D=1tNqSb!rmEN!@<|SBl`7F?hn_Ck#B)L#AYO0p!wfoi^ z%$Z11R;_0%Y73iLf%#5iJkW-R@$QO1$2}OS*~zP=qv!pdGoY{>>loVDfmeoG;}c1g z0PYPGF!vM_w3F?1XZMMu)0^Yt;>U>el{PSH&Q?EUf#4A2H=GJ^`s@ljDe6_>G^x1h z&^33|HY9LeGgj*+M};04Nr`xi7p-81xhfS~L=cjSoU(qCkZ40zI~~Y0APU)F;}3~V zvq%WD*7KNX)Im@TmrQ8Llg=@8UoaWP4Q_z`Zm&bYAwBG%oy}%*xDrzh+9X*bS~h3L z+i+&TG20O#)~~xFF$^4Jk>a8qF54e2-A3j9y`xHaPIUl!R~}3ka1qm7XC?!Uo?=X7 zg9R*K=bpOM*203`v|(B2$;dENAXnIhW3Fz~z6V?ugnXF+Q zOKNw)t~9lYx405#`fj10sLu4jZX{F`0$)=bc3>)+Fn-FlojSVjB zyS?jZO2sB1LN^eWhG@K((35RKQeqz8hU`H64`NrYRClALA*OU#51$=KwXJ$QGmSU# ze(&utq~D?9nJTM`s^-6VF!0_GyRPsL7cH~uBT!0Vj@5|t=DsFj*cY2A{S>P(NUW|# zTd8kUVevBGQs9}HhK>vA$3v`}LFv;n7On~;o8Tt}J;T=f*k3g&0vG>lMxBwSNQuWDhu%+ulNWF~$LvqC30tzQbPn4jXi z#|TD%KAZ}$Hbg);vDNglc0dK1^bdFuOoXnA3SbOaq;1ubeda^!%(?5i=0q~`JuKg| zVzD0wErw1G2A?NHI;Z)HukAKLPW)*hvtN}WABEaoy;JhS5=k(Y<*bj{4HKMO=a3or zfU1#9JqYg6LfPO;ifpV5y~OD|=LVI0MG}pqi&x1S@MY?s_zICW+?}O~31GV&gA|RA z7(JF*%-t|@O|wj<3FZ|du@YR#F=Ke5!7YPa@~#N?}R@I2vxm`{BqyvdRfbem=>Qu<%K88kHVq z&DEBv#o~|AZ`OgWpr|YUBX~lW_+&Q5_7*z$bR}X2=WtgYDr~a!fyfj?N3;UtfL%q+e2LT$B`^LMz z7TuwzB$(c(;_f-fF%8mKz>jacNO;39JBD!^p%wp|H{%(9!WX|uZ_zcrsgrJq;I}?uOdAja!<9AAi2$ zgLrfy*w7bpBOYSr&D&PoiU6gBzLSoxmwula|z}3A>O*FGALw zTkJ#Z&~ULI=QoNCubnO;OD768TAK4wsuZbLhSK$}}V1J1yb-h)3A5?l8GT2iqX-t-No zx55QWl?uE74U*B5B;ImXg%T1+N_Uw$x0q$~hH}HZGNVkE5+A*$q$ke;ZE2Y+U=LG9 z!g$oTDfwaGzz{DUSll@fztW-Hm7|X=6uSc4=u^b5K8S z-IS`%c#GHp0u3fh0F~E)EL}g`vKlOfp6T)$mivn#vzJtil_Q{4W8(|@4Vbnf(cEr0 zOpo1M%qe`8`&WJxq|z%!Ap+D|Rc9@U{K*bud-Z`1biG7(DOVE<6`* z^Zo7yv}%c}$VmJfW+~NGFqG%KMEVaJwGY%qSuN(R3?7*8NfSKO1Y&-qOMii91Y|Sw z)J|FWdz&$iC{sLX%6L8lMT{NShoXB%!_SHi0WJU-D*RQ)iwpqYacn}{ez_`2RQ6eZs#lkCNsjg#xuQOIx&avY44tUN@M}#L z8JrW0l9=0(gdGSww4`l`s^?gKBe2s0fWg?cDO_W4A4;C3jKw*FZbEis<C#1ZWuTHEory#|C&nR}*#axS*3c^GuO!py2qm zthh@a@wV>Sb!l7e_&aEjrdowl&D)Yr0@A^n=avA`O=<=@&G=1jy>^g=Pr@Q$^sv}v zUu0FE1O7I&KhU?Oz+-)vP7|RM3Xl?ysrFN1-{1X>hk_pXkX5P=RrgwsOj56y#ICG;d#Djr$g+{d}%eHP?z3y^RFKxYvBniA(##`>rBSAYEiiGNb${Z);x_ zCuM2$?8Zu~qxP0i54UT!Z>HxaQu14;gV)?^{->vYgQwQqD`XFp`5`B0DDmYptFM2@ zZkyAjZHt`q7C!}A5wCSY^Mdv)nCmt(uJSstkWI@2`sR@RSazB!v1|vL#AVhN&FF9B zRxrf{dVS}>@?9NJ;M=qT@|+$&)m_a6st|hV=aH37%b$yqfMC!jFkuP z)6H4>+}wUV(iG`DEu)imO)u7zS+G83Zi|n7 z=_r@Bf$Kh$4)vb=qcv2oIsNj|cS40D410F{nEVO=k!+PnmWIahzRT~cf^i0@)gG#s z($y!ph;KQnwdD{mxV;3X3y*oQ$LnS!Rxyy0P}|avFxrd$T035}W^ zq+Swch{p*t5g%_xjw-a4U!<{aczlsy%yL z{%nfEaUDdM!{SLd^##7pXq$FN>mUd9T`f^0#?RL0i*~N7iy(6bMXJS1+c`q-AJGb6 zymtyQdn(*`e#L*1YXz<)!K<~)4&#`bs>tApR4nl}W_}4s<{e~=`JGh^U40MvR6i+c zi=nKsgK*k|HSF1@e5(g{h!g5>eL9bO5jb)IUtym_hw^sNJU90`r4ws-QqagZ9)lia zz+_iwRrxn&56asfpqm*$R_{i3c`jG>ssERkcUv}#+gzu2(IvUkQ{O_$7(u&Bf#zA! zy^kB{KrQZGL>}5xWhwnhEIR;ngVoZsjseL!O++)oeb{9TT}i-lWVINV(}BhiJCgy~M*R z@YTYF!fvrl(7EOElyo;K?pVxmFy~PUElqP=>e*1A;rtZNSsAW79-=c*&R0Q^cdo74 z*|5&;4{UZLN@I~PPw(5mfUo`(#A;S!;Y*L9TZHNLY(tN+cJm_oc%Q4%=BxmGV~bxU zTXyF4f87G?{!XG#onLe)t%C8PIn$v#f9A~>+#0Z1_5!>iLTLhjk`(Odw)$`Y^xVI{ z@2&9It&@AEIZXq64v+ptCA!^t!-0N_l4swqj~=;v zfvlt#{w-}+u<;3Mr2k?}SGw3)D4yW2|L*W7f&LoS_|v=S*|nesM~AUb=fx-Q_z?(uGu=`Q4v;!$&;cpE?Q zEoN^z;~2dk%8;>CBCo2JG|S7p85YiSFe$rtV56H?9U6Jv*{C2Q+MHykz2T zZ}PSjWjh{p z1~%5}28uhtSdgpiUR4d;@t{drUJ6O%PFCEs8cuw{8Og%5QVuAumyx~qDi_wUh6tl2 zyNJkbl?!r}wRnb*TjWBIWT+UcjG55^HxSU?sHByo5)lal97{3@j9G+WsbJpA16&}&y`JFr=eQwar`*ow%c zcAvc&eANIjd=1J=WU1X)8|mZ;T$nU6pUJHNqqV03uCxkY2uce=;ayBJaj=<5TluSW z!ZAHgGojjhymmmx`aRY-9zl>CyU*wq*|xT5WVH=@0E4y%O)W0czVyl^s9EDmpK_8J zjKDE;Ox8z{6+l=GO^B5hqB=1TY!rmX|Ay7e9oXvA3X!}S@b?X#aoH}PyG}6@_uVb<%38fY#hORDogMI4gYuH-AE$13^ zNqGwxsp|H_WCK_G06^1N1Y>c=fVoFjohj&^0Q{}U)b+@esXjKMk*LY$!&m^ss2LAm76uHVwlKWC*wWO0e}h{a-8w= zNNSY^%$@B2V6=OrLAq1m~@37)B_EHw( zc{i;Nj4sWure4F#HWa%#r3$duIWs@^f(lemQWczER z+)PNv^piXYUNQr*FhgWRJ#@09yh*$x^h+i}Q+Qqwb{WG~YzGkp2(@tJ!G1KM8T{-- zLN8im4hj%|odh~5>1;w5WcX^(LQCYD1Cdfzobn>5k+^OCJmQ{EVjn+puR_iN=?DgJ z@w|TbmMMc%j+&tF<}9#9F~&>wCBDIswPS*k_piWjihQV21!903`+h z1pv@|z&OJl2#67}Q%%CQ`Ih{~L?0j*WSLX1U#@oHaA~Xv^1X7#m;c5*%W_!2!}*Er zLl^)6rvJh*`+vmuKLc9TU3EhQ9?yP|6&*-MK`f)Oki$YMTwEc6)rF$kzE>|sEvWG^ z*U~&*_)y!J#Idnvr|iU1_xlv=H1z!9QbI06^7sf3t|R?ziihj-;YQaNxL45ZksqjA z{5PLhh9A4t&|U|79B-*V!HfyC8FaIu-cW9JpWe`R@euGpUb`%HIe+~mI*M?p8}1YH zX+;X8qh^tXb5nVr(a>&m?Q0PNj8Di%FMN!+l|SIl>x)`TXUVy?tCU_myREY zW4Bh`@mm184+31X;82!J2K=eQwn;Nz0l%w<*AKghkPU&=M!siqv$&?us-4jO=lD-W zu`SnH#Fh9G#8xxeMGx((PTH6dqUe@o97hqihKkL6niQ?MOK)ew+iHlb-p(ij{jcUb*jIG z*mJPS8pTYZzCt%I|GQa}x&F6cM}$&9<5kY5Pdkq{trKbeU&q2gQ8`Lj#3nH|iNyyM z5;f%>iH@XrC@rAh+b-CMiYvhBc zssbVhAPu@~XOQNz^<`|@D|JO}EgOAzGoYqxn0IE+aS%s2LXJnWCj2s+d7O8sVFw55 z!t;uBOQb%%E^r#Y{`3p+&D;^^`vv9*5x)e*XF+$0Mrsk8RawvK%S-ePMk!PnF@;q9 z7FMDAa9~Mhbo0SHwNm>YYDp~-GSaL!RKSqybg!^osZ6YYkuOkkf^|_|8-7nS2uvxzl|!xQB6+Q-bf|twp96BW zYq*v54T7lXZTgwl`kmT7#$kZ)Ux zC8qKHp7;dP?h$;MaSOqUQ1ZapnVUN!t9d)12e7 zQ{CDLgj?i@ZYP<_b#dnd#G~YdctM%!Ps)e8^+gfK>l2NT890dJm47_A{e<9FW(IQ) z{-Br?o7iJYh3Uc)q3pVt`UKtLqi6wuynTy*6Xu@b7vJIwbQeYw(15)`6KqGGhoq)z zN6c2$moD>#RW8yAeUkHrWN{+sN=jpgr0RuQm3t)d$~*l-Fiq+e3~m4VPR>Cjftky< zlz9FZiS{of14uv)*li1(IUgjkspvQG{}v|u2eGV$;^3_8hgjDBQ&I5zXVF&L*zq3( zY7tupYkeoD|3iI9VaF1QAO4H9%_-5XsYC_Kcg17*SI|JfYc4oRA)*zcn8e3y$&^W( zR(ltW>&7eDTV+6)*f+p8xjn6Ssce4#^`zIpYf$H7U9BLLTG^#P~NB7UvT!Kn$L zErbT(lc{ZRdh70sRMyyGKnMFw8Qkwz_U_CqIcJ9h#coN zVtGxn`21iOK~hGQV8BWwdZ+|deT!RHs z7-ziL+M@#of&MH3PDaM)f^M9wvNN6hslr5K)`z=ann8cKWt|vIoj6Q?UK_clwMmmN z&ba^7Z8xlyImwvrIRb(Eut_^Fvog*&%Yf4^fgYr(#N6)poI=QcufBXdR8bdlP%Y-L zXpVgNu02P{ok52N668I>@${P{5+|Fq5pSonuj4#-{B7wY{f?ykMuNl~f{X~e`)Sow zF>vxH5oSLjIlpzjqvlKYlX`j|K=F3FH2YCPl1VF(7DbW$WY zBVz930W!pT#O(XM^e|KCI**DaEBVT{<_m^Vm=T7q^s0~UGp0&gOdHWAt(AIdXI;K| z?*U7^U+3Mj4`3F~GjQBn;5z9)CHOJa%Ec+ao`++eMm)clrnNOoGb=fNMfH*{Qz7&U z1ouj{_w1WYq61}ymU@%(h(c4ZB^T-rM~n8Bm*NWgc!ywm7~a`4K}~VO1Y8Bl;-)KU z8x%>#4TjDUZO06pW$U8LI)54g+wV>W{2f+70ZYvoTx^d+8-qBq{X!b1Qf-TGH(I_^ zU@?+`>y5DE*Xv^rl`W3Tq>%D@tt5s4xSPr-LJ7iUj0i#S@z(JAs0}w-L&ycET@x48 z6i%<>m?&maPo@gy#5bsAa3c=%E;WoQ%;t;K@8{yS7F$ffCzGe1sQK;(Jkn01A^wt+ ze5`Rcj#KQz7OF_6Sd@2?K}y9=AwPp+yaw)hN)})-=?4=>QpDDf3%yo;vjjrl1npY7 zuuOt?hCv96<0@XVK(SFwaY1q~;Y(IKmN>;flnv^oRoLa@9e0%t5M#5|lxP zcX&Ys+EHd)0%!&6GL?}GSHCV>Z<cxV_92D1B&D{cus%8}ZHgz&W2QkhgXt4UH(-XJEUqe|v`H~nYhRmM z+tPa~c}05!R)AX1K7hLwb?&y>YwZM#+H8clP3h+(9?i_QlRw4sNtd{a}SYWXz3 zHD%DGP-VR=*|c=Ot{`lTUJ1UcHNrHRInKk0tr}fi+YbVvHKNKfE+Cgn0>)UFEQ{l>V80)yNzRB=zhddXrbJ;2zCGIa<$@X@ZUSw%-vUJkL-HjhEe zYvI^ogr4FB5_1;$bXB3ZPTX!rh@y1)i?a%>2_4*pslkzeh@ZgGMw-oub}u}Dv>C&s zLjr1GHr{b*7!jV0FDqx0-<1_cipl$y5E+#1QXO)NDVX&DeFATj z{|w8}mY#czHEIhBAnEvgMbpOSdcH?C>m-?)z9OQQY*k^(Ido#po3znHvl)Z*xN-HS zg)=upgU>$EGZN@YQj+Tkhf8dhK098A(9JY@7urD>Aq8oQPIVZ%hQ`R?X2NB}jHDnT zXCU?8k}yYqHv|o&HNo1;MJOR3|5x;C1I|V95YDc(JG3y+dju^(+9bFIi5V1+`X0ji zlSpH&k?0jEaC-y1y33o>@LkhiJJ7t4&gX}%^zy5sH;aIUmV6+XE8Zo0IXU2GV^#{= zqMz{LT~_tBcoDg$a^KlCZi;RJW|X*O*6oo3P$28V=F*9Yb9i%1O)rqZv9JtoPXK~o z=%jvo-o$}ZfYUhs!hQS5v)nepatC2=(=eo>2`7nY3243pTr&tCWcD{96dAesdSb;V zKFBva7#~>wiW=BT{j{Jzd9VIQ=Y;P+iyCsq#&%}5R>rb+PUhC;9{Nt^wl@Dn4i#-j zBxQ6TnM4~f5%_h3Nb&V{RN*1~W*BRTLUU^%@YklbOwtV-mx1eI1?0Oxs&ByU zQEl7SIE?7is2EkPSE^5(n1XK81_$tPWOxNv)&KZP4y2j`82e6) zeuB))LH0$c&~5&<`?lA${paHLddeMkuYEQFCpb`ycrp*8pfcCwguuJWtONThklvy*rxtyU*s3e_md3cYeVlDO)(`c@9fV;*@+?q?ZfZ?! zZmz{O%1VaA^@+v&1Q{S9Yp4bmeb*@Cf3BrW>dhx;%Rr53Zi*6LwK;TVr(l-kUBWyZ z-G#&$*&eWvFX_rG7bGRM98V~#)0y0cm9-&%Y(w7TM7xN6QyPsQxoghs(P2-g8&wpT zvIoQ6J(rIQlOh^J8!f3EEjXy8F!LB7_ ztW-;RfW)so0t1mV{tC@T@f#xt>X^o>kG@th!r1GFKp|tJc`%lFuwH&lYo|l20h&`Y zmHsDAT7LQ@rHogJDOTCuSx{U-T}gFvX4j?Ls0u}9DNlz135b21B>6E$ReHxUQqu93g4E zoq&@AbB(_imSk)%#V=`ly%}L#(@|pbVfNr5P7$Y?dR41ovh#W-x)P!((Jw5O2LQPUP7# zL~$lRz-vA$`or-9Gfbxa_d{=-_i>8l^Q2}XPkHfOeTP03qgay0T=KR)@1q_ zDu?q$lD;_=@-Kc;>1ft8V?~3Gi$=EQZBU*%<7zw(?nP=5XB=M(f^?^@IvUtTGVcXc zf-VJl=lM@g7W>)9>M5?gIaPuhyuWxEdWR8aM|CCRmUe!;v9NQYNP-z^r$S?ovL9LO zz(P;6Q>Qkue}j6x3E_W%+Ak96493A>1rp=ZqkjPQ&BgE5nDt}Cx;&hqg$7RFfZsJV!bB{c=`J>N7mT@b7SbX<_q_6b1ybftAP=`h8Fwn#lj&0-wZ9A+boWO7c#u)`u}pyR z%12l*Wwbs2nn;k9ba9Y=%1=lz006=NZzB2EZz*c*#Q%?X^bM?xW%R9$|0$J~rM#i= z(@ygM`?KiB=jIcZ;>!yHuM1$u5p7y3P>$IKOQ;B%F4bRZp_f>0!HncBlDcH97Yj%%MZqf<>8pZxYC9^h+)p# zij{)^qcd;D?a>bI;#-f}K?S#)?Ii@uhnzl;lm$~Io0w&&A75;$FU&hb3Yd;+#G%Aq zH2tQ3v~G!668htbQj!aNrp%~*Z?-I{Kr#<4$YkuhRQBpKgc9Rl?tovhuC7v8!+B7B zNckcV*?UmU7-Kk}$T?xhr2gjwkK={UAWZ5tGU>MMke8A5wb;3gI7|1c&M~_m6}X!g zXlQGac2!T@!v}l|tp9RbW45!CaiT(4$00cQ0+o?<*ls{%IW8jvdx!yR#C~F!0Gl)_ z+J3W{!CxGULrSC7&=AtqTIwJ>`XjZD-jXPm1M7iYjeOk=eEm`cr$|}~0>?s1$Gw{p zS?~jv({uenhG7#UlQJx*q2RMmWI@CE&3I*m_Eve6JgHulgqzXdXW=Ag zw2Z_Fe?4_wXry#Hb5$(2meY*lDO)s_u=YS_%x=NeFXTgrkUwjtjoIa%d8Ud)*=FN6 zfl{exA{k+TgfU7FnlTJIwNNEUMCO^h*WQb3eJ4ugsZ4!Dv1CeUxEWBk)M(yl2iCtQ zUzQ7QRL-+9TAQs+G{-0eDV?07A^F+`&s@llcPK*^zdADY3%@eY!ebW>V3}uU7ghr` z2$DGW?H}-ixC>PC5|@#Po#)oYEHy25feFiG%_Lxaem`)f>P|I9Vz=8Tl-j$6gQuH4 zf${ZwVD;Bx@B8Vzx1U`wQLVvw2|aogG6{^j-NV$Ey_jtaMeVV~pl_>buT|!Vgg7vtoMs^w!zEd!{a;%xC2?4W9X)GZxLoRJ5Xo?*ooO znZ5qo-~x}i83*h~^ClhQKO;f%fBok~t!xc`K<0l|ZdEEYQooDL1Ju%i<^^U+i!}J`8mtmwCTupf3BB*f_yn@OPNCs=ISTTg`bIbpcJ_5= z&q_~78;cfz#>km6J!iId+D=@rIbJqD-(GBcfKx@7f?5#J2nmD~`rs7^5Ro857|M2W z3WG<!I{|bNKTrlQ83%v{5`uD7 znKso#`VS*aY)dMdwOO8=w5`jlkI`Z1v|Y`+;zp&c>NWI)t^6Rtvc!C4 z3q?$ogat7$;^Tf%h^d9Jfht8 z&ZACFM~6z{wq{0`2m|eCL4%K=;cTV_ZP(!YABb_B?oSLv;CmMr4up>-@2Q&vk+-; zW;7p`E!(w$ku>c{hoC|g`gKHA_$V&PO~0=cZd2E1;#Pec^Z;zIYI~P<-PqL2w`2j= zx}E2FFb<~dA6SNBL)%L^K;s-mmYK2w(?6WDGx>Y1I(a6k8HffYS`Dmk)5bLC9fzLn zFYNRJH8=EK4+_MDoE%d|uR?|;XvfO)Az}}6rNoLogmK)zZ%xDaa?HjW5;Q3dFb8o>U~M+(O&`8 z0mnfUX@Uy+P<2M@$U9=|$SwDVcrq_8k;6fUjP_}D+C!OqHsJ?}JNfUa0|r1s;zQ9% z&U(mserNMW^O|Up4Fh7M^1u z50&Hdr6#_7zg>jC&>tdv!2^cWfuTqE$vA$_-eBDCmN2AB;rzbNBXue%B8Y z!^?U@uDg@hsecuNor5dEb_&v)e`odj{x@N*vt*1Qq91_a`~jHX|J9`aALt^g?__4| zVEoU)XtIi?>JP|#!4h+f83_QVSVSzZg9ZVR3Rj_;Swo}AgR23VbuA{2F+)Q$*-yhq zwk%KNl+qoI@iwRgFNf0RyzknU|M4cRN3}jms65Q@mU-Sby|K+{nEAn%8#qAdy%TgD zK^1d!QcL69~>M&K(n=5NsV@NmNOwC?#f z9tx{OAEzD@DF>kCqO)@R#K+$HmD6Dw;z`zthW>`(;Lu@jVF!jW70`OKCDU|WQl?TF|g~Wk`OY;6@2b|@|Z864b z*i@V<`ic^q%e!{1oEEPM0}BNFnQ$yfE1$y}YfWXxF#IE&=bYUEH3y*Q*jSw1!)%=0 zL#~|Ns&+^%>^`%1L_P-SHYQc#8#GX!3a=BzrXJANva(S)-Zg~}#%G@WwGae|E z1+`a<$yo%>y}sf{Y?e?Z=~*v46J?Bzw2&GdC%sK4FfAsPdw#VBRP=b+*{Po9~y(3nfPwgq#vZ4`2{yFojyq*$|Hat`&66RC^``E0vis*o>L4 z$OY$So=(27^|1t!LJuS{dJ~9BKPn`4)grvK+peiw2q8=EheJe!IVg2riQ6@I8eo2j z?KCJxJ4`~%IE|8b(XDx664afhS=wZsO2u6T9f|kUTCJgkTno0`0tJhMEhe~ARFyY~ zOiU|GZhgepwg4i{K+G^})i5?(L+unXnq;(tF4|aGx{ZRN$k7U1@W;wr?>Vn0M5Hy7 znTDy$=Mi&#$F5b3&Q)y)yE03XDi@HHq0p4y%zN9Vi;$Tu3dqtdd}HOO;S4tC@;cqx z73T@MibCZxzu4(vY1Eq{aS;!O3jW=gRm`&{4jCxBB}y3BFzbk(RXN7Zf3c@V@$fT( z`uhE0M~vbgq-nIAr?q&qyIO5!oo^WX+OUl`Hg9i=Lz_ajIG{xImbVP)W|S&=F6LJx5F#4>w~_pH;UYK50=Sr5rverr`jbxJIMOg^6PZHFd|?bwJUV z+r6*du5k8a5mVMQIWiu0&fmn$n1eQPJ!&LA5WQS*Xg#G%O69bpCSjn&lSfF z41yp*KnuY@D6B#t>fH`vg;PxHB@gT7{T6o{%|MD99c?`bj*b3o1i6@`&8+Jn^D+Hu$>#vK zIvTZcpk{M^Y)}7kxmk!hlXbs99QYxQuy&SWIY?2dBgC&@r6IL_Wo`Ml`eP-=P4&h} z%D`vJ02&bMfaNVi?0aWe#1xEPd{dY}O>^x!Ya6Cb+p6a(bkS?&T!m3Z*k?Myj*fYVe#ROu<>0t{5}!Tu>UQ5F4|Z8eIt z!~HS}h9$jGYHm4ql73$b134iFkdCPGFsQ_jA=4drhSU0MNWP>S^?{}SJ4~q^Qq>?D z%x+3UntUc?OY0CkH>CJ$ihl8%BDOe+^@xI!>0DzLNQDrOvQw8BSOS4pf5Y~|G`#j< zO8Vri>%1=Nq_PdYSlU|u{(L_n@I=H##`qEXdi{fW0#k$eTzbEP3$LIAWzLMrF+^;H zBx!P+;%epndbXDF`U&!exGHnkAbdD%wht9L=P1>UTDrW+DIuEvpIMZG%+dlQ#zlc; zXkKCEHfvFl1m-tVO>DiV+l!cDGBXdk%U(%@Xo}56U75+vQu2&nA7jsV;@?yNCm^A@|1XStVJKD!Nvus*NMhvv<(@Be$r8Fd2Be zA%B)f20Cs*K3wz?_wgJ@`mgt1aSv$*2d=e$4RhD&&VFH=_Gf!%I`6^#3U#^Dz`4ZU z9^pVs!IIG?;|f0CeG6G=_#d3TV~{9e(YH z=Z)Cd`SwReMO4(EdZJEdM&>yuv5Nc>{o3^m#0LBIF-Q+tDzHiN7Uc^6eY6v7^aVE+ zck_KBlf2A1wCTE!=osNuU241bB|5n z*IyutWJX+tccHll9D)gc#j+E*D*c*3_cRpnN`Uv^k$Glx;uO)-gKS+8UxV=xOi4G> zCCIZswBOvmg8#2!%IJ($Lglyl0s1?8!?6Ow+v!I zz#r9Y<+&QzZ7iZCHsb5ukdP4s~-i_khifZYUB%fq4Qfp4%sVMW@QK|i+x(zjP zIgLKGq;Ckjro&%v55lUOONh>W$jXkDg~D-vLt)N&^VVmC`#u@%anyX(b^k}8WPWM( zC)KFLBQCL8K?JBv=mx~_=ICv6%i~NWRk)>KNW#SCZaT#gMLFbTSRHKWq0iIt9hWUC7FcL8= zkAcb&q6o}RYJ1Q&a)^Vd0o46uT;R2YV{Qf>+gHb7q z2MvQBmFF_K3bb>s1P=&tEt415P*EXynJeD2lVRj8KbWGxy4F5-#r5qVGa{6hHMO;J z!HgDIB*K)|%b#*ga3=9$z3I+|?lWdBdJDF|zd^P@`%E{}DGMfko`GLj2kK9CJ{gRi z)=82uge%#TIG!MKds++dQ|^r9Sx#JGKYnSx$n;8@ch*bHD@|-Atc6*&z!TF*La$N6 z#onG)|CZkpN>Hi8x6` zoXPR~9I?bk)T4K= zFW0xv>pOOB-Ywp(U6usgkMNp_DH?E=Msxo5r#+sJr(Tb_dp;i{O91s?eb&K!L49U- z>@a@Q`{Xcwll$f{->Cz8jIZ8c{B45RpTV$jL-ZJ*MLGTS9slHEzB2~;7+%%MKCy%K zHw;nyX4?JRhWz{eHxK&u`#@jux!YNu>_J{@P`}rpe#}Fg)LwINX9u)lcFit5fgs#O zXprl-qsX|Ii#DRrxM@TOV%3^e^Kq#?(k;T-s*lxB+bVC)`>_%Mb6{!_90GAy4}`es z21nF%lmh9xmHM@~Z3auWJ=H}&j(I` zyfS*?1c{5(9jhV-T(@;+YFKIJwZN`CO5B~Td6C&1tcinVVLtzC*^JS8@V2!w*uS9XbZJCYe7VE*R--~U}$ZXcE8;;}$cwaO8kp{hP7KTY{ z)L>`)p#vkN4$ClS55_CKIa%f7Zt>F0`T*r2*!KqM*6i0t01$*3K60ugB`aBS!Wuxr z!o83mMyT90iu9vgC8HE}l9Ed}*fbFxT3`@2r%Fgxo;-)?2|J%@C{Ip(H+E9MGPH|! zYreI)wS#|gZP{JMJ-6CfSi`llvli_K5Hgh}%2g|FUnCx3a^mc0h>WLvdzN7#g?A|{ z5zKhU4K&alaytoBSE_ExR^2SJ3?09MQqZQWm$Rb4l4k)$ z25y{O;Yw5_5jE9HNlap-B#Ik%3>6VSr`w*&#*x-m#$d6rKj9TOws|b&d|J#?Q&JMK zTp<ib@z3AR}ulDLzIB`g{0j592!h=X3)2!B&Z^)P)oYYH-CFI#)N&JpTMcT3K%3 zfz)a|gYfF=I}bKlXAFA6=F$3rQ8YUygVU_3(I#@VXi_ai8|$><`OU)96h5dT^f|=g z<*#!N5hEM)P@_s13Z+y0A5=5b@{20@e(j55LiqE^;gs`;ZDd*T$aTsRiW>zKwy`5f zsCbGK^boC-zXxQL(Kf%bbjH(BFS#ixb-zhQRuB)vKqc@oI-#x5Cx$u#quiBB)qmTV zDN8_7E=-7eaffES+62`UhBGO=E(SBj0dTaG@pD%Z`Bo$6rU|{xU%G^_Fc{wZx(|#2 z^#ujTAzJ-&lAlkuH`Bw!Hargzf?O70U=h)&;BIpVr5g--no@%Xx1)*G)9*xsbu@0v zG-eG-l$I>zU6}TIri7Jhd7Rv?j}{TP&DA%`SC!(CX6?HjgLUT>%9%#!qbJ}xE<*gho~Khl972a$o!FbElFx9%{C(yHSO1`UJ2h>;5B z4rxjF_>71L0-u~^1p`pKmn^JVdt>n%*;~BG8W4Auu{ler!`oRWqe=FcFD0kk+iZk2 zASxoWN5lXw5sqmAKX@McU42B+s~%UUxf=Aa(F1`gpKs0T5F%%V>ANrOWxj>> zOxFkUWIT7-q?7bL;ERlWodSE8I5Oso1X)cxv2dh_mK*uuQ`2c3)g+Y?%C2M^ zLSDq*p)L@gz6kt&c&JxG#J{8P(RaT)h~xHoiFly=2@b{Y^Z@y(4t+iPAm)Y~5qn|B z5Nq?|LOoVbMI+iOC#nE9Cz0riTr|R zm_f-a@KEkSpFh$p0T$#UIAW2B zl#UDA9C@&{xz0YnHu(d}UVNqRROD|9nOYe>DICazmc3;i(nU?y2nC!dP|ctf3oBT+w}oMz-XFQCJH_h)<#nd= z3@CPRVgK5qO*sn{oI`FY5@^c z#7_7^MevGf3?D^73y=832`&j)Sa2-ppHgQ+nXF6)Z8lhac0^|?Kxt^HMV4xaC2O(K z(Wo{}%h)S+nM=!vmP@m(1Rvu8dC$F-!8P(!mc~wtSC#3`G#v8fBc49e! zwOLe_Fw5@%=?l7vDO;A9MlhjVlok|cMGGtqy7-loiWBIUbi#g=G;c3wBoary3aIqq zZxIVS9TV&{qW-(>%1dFLlWNMxFo8pdmrv!$PK2ANU_nP!6SZDicp>|zRjg5+NB0Hs zqFag{(Lvuh0#d~cvVceQVCAgj#3T&1v(B&uPj`;lK@rkBr9`4nP*6#v4R=39wc#PD zw|vr$tveNUFafb(ldF@=zA>J6?I7%;ngUN9Xt?Bl6MC7TL0sS||~Q|3MuY93Hv=!X3jD!OLD zN~+s}DR(VHdRS>G6|WgXK$($zG+fkBY);Tqd<>nR$nfVpL#*# z*aK-PH##i3rx6uL!r7h+fnuWPwL!WE(#ZyHJkTQ(pM}#go#}Ef!R8`^qM}fygEt{! zLMfY`(glqjWZ8HWPZrxBxKMGJ$sVO|D3MY5?-QZ<52?v)OPYgJ05;qZ1wl7@<$=^I z15Uv+FMt9Vet~{xit>lls|B7PWZLPn+kQ2#Qsr-XXU&K?x%MlRrF2UL#~WQ%I?!mW9B9m^kIM+I%NgHYoJh0-Ly z)Z~PH>mD~HEj%=dX&$lzF2&9!A@ehKllG~Dd*0VaL^?-JC(GVu19X#$6WBxVOoLhs zxa7%Lp&7{fmwT^{QAq3K2U1NPUeQNQt5CLXJJn2u+Q73;FGYp zy|QR%yu9KWDWBzpx%S}gUXpZsL#--LU2N|=+NFn3%MFe?txpyCEY(-6370-y3CjV6 zzDTYIA=vOht`U36Gqbi5`5?Ex$Thkm2-h}gT9V(YS8vWn-`qYB6#kGK z=(q>5Y{=x>$GHPNyTlW_fN4q~otHA9N$gCU5!F6qb<-_@xNu%hj8W1J`aQBV|Kl3Z z&^?trf7a${N)m=#1|ih%i z{v1|L82_Y2yMq@nu_><~MC7v+=rbUeo%@oLI`j+8DqXcDLw@1#gbw;dFik*c!mo;P zymaEKt?EJdq_N}L<{8Skw*1gr2bC`2K4lwKC#5@@D#azODvEo>1Vr6ca|31j)csW_ zc4LbhwCvxF>lLR}(F+V|0rGtMiYNGqOw-@?OdB$T_%7By zMMjIWGcI39cG`$1-F)f^PLa)f3oNc$D3i0bKIoWOv{<^M7foLB_wjig-M&TV!}`n{ zIIE4=C4CvuKNb;_L=}V@@mOv=aH$QC{On8xnV{jTS-5Jz&Q+R2JDt0Y^NsU9)8nzm zXL()yNCiQphgL*SS-NJv{YZ8f9rK3=4pQet3U&@kQIiu+6Ah1Z)33eoHdcOxG%YeS zN>xo6=d>Df7_8E?+|bd@-A__%wAV|peJOvoHU<(u9+Z@V*BJV5ihc6T0w5(kad#ge zCFY_WsP{SB^`!ZJ^Zq*(B9v(BoE|-89B=}k7XerIvSLI^5ubaBm@O&mm!cKpOh{FR z@7Cdwipu$%`ToD^4~=E!jBRsm`m-rHBo82_V~}u|7f;~cqBy<6IJB09lMO{U>Tbxr z9M@Uz3m4Y&z2LuBPgw7bQ<x6zL?NhV&vXPbokKf>D;{r`nv) zGWnl0ubBU!c_9&=!;A1l{L;KEBWM{ZHws@_;raT-BPsp*G0hCjHaz`v=>e=!fQSRL z8FoBxfYx^LWZfZC`qS%|52$P*Rxvlqvy5=BT9aVQdQ-5~srk~!c!#6TsDU7odS1xv za*WtyC_d;flG`3!?Ec(BME|f)X=+X135N+j7!naAM!6L6rM#j4uMHGPu$aAz-&QC5 zZ>#fvkLUG2zw-a&c>TAvTb5>)#{Un}aECpY-PI8bO0HrgfedhC?Ck0B@!>ozc2F zzOHrdOjV~$F6_Uj+RhjM&U}iZ>ZXXta_1q>L>NDX14n<12HHfaNIwxKcOeSQ>i9W2 zhT>?mv!$6RM4u#xQf{ZSU4yC~zwaqTe|uCzm<$z2^tl5m_9WZWi=y$4Ink|8)wx}o z^7})>@GcKgMfkNcc&vm0nu;sC;Glzf7s7Q5Sxn8OwN9%+lx98w(@FLc?ZcJEUpZ~Q zhHF3DYAr~>s~zTkvc^gte-gR_Y??!i%x_p5?Hv=FmDFnE6at(kCbs?$qe&&Dwdr~t zR;B3NlPTS)hC!u?%U_2RWf-^PejI-Cpx>~+;nR7@ZeO(9WS>W)^#hD=lpJg}f39CM zoB0mv-Ia&oj*^f0jx!AQ55+y280;@I#?{BPe-MexM4~av4?!MA+w~Rz zJMF4h{G@Zc6v>!-G1tds3QFAq^63~3t?l4cq=h{tczp%Sk{-Xi?O)R$+~;HXE{`VR zGi^BeDiu&#$sku&#ibP)?6GDp?+w$eLH8y#`)Me0Wk2K*(EXm}?sbb^D(^Fid!dHS zkW-@tCu^SNyS~mE8wr9cKZJ@lE344+5C-{OR9=#Hum{sg2^76TK{``?o#7J6*Bq8ST)_9hW)_5 zGv)}w=x+Js4t;oF-Ez}j>!L<&3VF(g+!m&0TNWR1xTo`Mi=|>{w#*Hf!Dkf62);U} zhHL;jol48jAoF-fZn)&c^}xagVZ%2-ag38A&_I3p#%>N0q zTe{s+Dig((gg%ttN3rK}0y*X}_cQi}8MaeqhI5-`S%UGOkKS{g|LW%SEb9M!K63|v zHj~GP7aYJqA+w;cP8Sv**e0{8Fwp;K#1C;hebk1%IG7^+Jpx9>x0-LDm{C`ysc0`H zj8p=`pL#=H3t2a)^$+yf1(999=3uEt>>O-0|xuU2{8RWQQcUvm6RWM{RXj+zsQ||gGS}hEPKDmB7^!r?ZOux~h zvVt+3vyLI|M$P!@zrwr_;d+AXUHf1>G2^z?mmcBhtvRCAO{{cAb;iPOt2v5~ovklB z0;0QiM^?vz^(r)!97+3>7-^5``pnd$5ZbkGT|+HdX_LXztQC+uEteb1jedf?V9ZL- zHqPY8b(n1x4%vDY25R`4MA_x-PZx}t?Q6=Jd#*KV4;rUy`FS7s<= zv|gFI_(cD8@qw=`f>ci3i&C3|owAIvh|JZxELQ}TJb0g2$*W=e>OV4b*!mX?8)v0? z(7HoH$eisv;XguwWYB)cWXZM-9t5Xep}wY$i2=!yn*=q7Q)Uj80w6HSyXR!6%s~Dq9ARk+xMoE?q$BTNA#MYoS<03 zd2O^i$1K8jJM}NkmA2}#1vls5oz@(UrnH<^jigoTp>=m0L(IV)1pMa`Vk%Q^0z-(BMbWT` zTkR5n`_Jm@+16&88TiSzxVt!nv{Y&w`tfEm7-e@C`AxJT6L88!Z74I2uT;%g3_53+ z{oWvO9Qb>Q0pnQm^rLZOy#b&xqEwDl#$krt*bQ^70}avaq5#8KRv6}L*WG&)WytI- zR>Sd^MGLi54)Zv4T4@eYWp`b{9Q|{mBTEG0$m_tby zpEfX+cJn436C0M9Z*96WcAc_!+-uG*L)7tvvIp~|8JAG~3>v5=s^yJAwzv>g3#Az< zS<^ql6wKtM`%k34akUeug%*~0G0z>%-=96t#S{4&hxLL_6|!Smv5T3l!O&YloK=AS zf#qi6%Q8C%p|+N4=dzNZO9e{gL7G&Fb^3KGK{t&(mDpV@Y2z!W%dBT1Y<~SAqx73m^bXtCyvEp5#E779Muu+#Y82U5(_l;&Q4ERgV@-Z zP2Nz7GV0Db#oA+cWpI5p{W-&wCQZvO+Z}{{v5wp(r$#?Q>jOP39Sj5|ka5pM46s$<2#ybTL=RS-1BAj%}=#8v(MA4&0|j|>I%Hz@}H$|xlM zYoJiEaI$y*e}lwtjs43kK>2Q6M?{lmgai=^3|j>plXDoXu@wR+;t(;gsmG;*|06yg z-IOn3NSb(I{R8?FnC8}RcrN1)z#ny?dB78Zd_B#8mDA&Uw$*gj_;J4!{sW*Rz#E#! zSUZAA>nCZ5(U*xKI64e6o5>MgE$N&@<}{9-&SYq$75%7%(wx39ues9|U$`p@oCfnb z%79Wc$-q3spz0RfBE$``nM=Xr&Xzr|>cmUM18?cqqwrLWyo=~>2UdwXo3yKXF?Eh5 z%-DrK(g=paGiHx|nULt`?e_pEJP4%~M0jFhLwdWn8KYJs#ZO@|@8cgrhM(d`p@Op2 zK%q0IC`SUEXJ`~a%Q8^GdZDiSlA<)|E~Gieo@=gg5qsV?q&l z+M@yJ>@u+rLJL+u10prjEl}#aTR} zaLiMMe6M%~vlB@&Zs2a@)Vy%bmuJ;j>TfHsivM5LMg2&^nqjSa!qj3YVrx||+OX-` z+7BUTPHX=CRBbxKRS9DaqSHR z(%yB1;Ng$z8%NUOWJ}APj3wfJw#$AX%eh&`9f7|C?2>XV3wmL@LX~xuv$V*}eFYEM zAF4i(P8crYmbTq9wGc0V=Q8~K2Z^UXiigJJ7kZPw(3AVGK~K%z(&YauC#l*hqlhE; zk6ug8*{}uCrbO-lBj0K66{=>N1$c|Sub=%Qpkil=1A^!&WCX|Ag zto8={DVv&->)Jpi*nL!an~|GwTjuTM<+a!A{|~HRb6eg3ha5FqDPD3Pq7f`Cftewq zJ18g!vc+vPAW{<8++mfV#~Ez)C}^{%{3sENp88d902Ndjs`j$I^awnx*FhERLNaVH z`=%yCcFvk>(8t17Bk*QQ&4LfcqQ_K@dlAYmx=fy@4^bvzNA+Uzj!T%a34e&Q#DFVx zizQ7+zjLNSs&zI$r8~^vd?!8-2Gj0#F6=y_Pme^xi}Fy-@M7Py*A7X#+}lP^rlZWwqV~_#k}2Pjfx?M7!WgC+wc? zaC+4hg;R>cd72_!)d6LUL(C!R2#pGd-{{W~+bKt{nA8}LI4U%k-{C7}G>&xng~n<5 z5qhkCf)U2ev3kSa!7HqL$`kh(Z!zb$K<0tk%S%eFcO#;FVN6MC{Ryz;7^H;j`WfmP zs^3IIkbr_!-ObQr*?AaW3&(SZ%5t}Okjs1J)Z<8oD43Y~mU14MWEH*2q)S@{uT*0n z<)G#TxS^#g7i^dd+16VlrVCRQudU(=i3FARm5Q69Y(kyR%a}O>O;#ndL|#_$n5Vsd zoK2m8d$M}aeA{)s2=WC)USaNf8sHEi7dEe^l-h(dd&tKD+3a;jVfy(G*>MK4GK%kt zR*?uUS(NUJApA{JGu6MT0vC#pT91dobIY&8m$r3(o-U! zX$lQ>bv5OmvF4Myj5*UPomauYYDI`0Ri2_&5l_i(XywqW-I{yO!haUejMMo9Xfjk_ zql)$3uo!`>tokEwjtDJ^iX>8AS#I z1I_&j6QD?;O8rAMXihg)NE+ z?qKuK8(@2{3gz*{UjK8`E6mkewHUaZ5LL(MLEh02dhA2;#aSOi-^QTwMXyhI+Eo~1 zA>vWaP>6U6ZHu$Z`3yTq=pz`(?3goZh*idVr2oHms`j7F9;bhW3wW3S01W>nJpT_x zlqRGH@*3iI98vxaXB5=CAXTsSgak`9m^%UO&0-D~g=6 zv)EvnY4U*{=F34f{24?4aX!2-2mL|NA1EKOQPJ%=Ab#p2K%ZFgyfan({nO~~3uzv& z_zrzD9Q}jSs_t7tJl~i!pBz!XX@x$*gDgEC=}|16L5o@Mdt3Tm;)5W**A^JVq-@rF`XMV*>N~81KU?K&yBvEj5(GuE^KZf!YxH# zj6l#af%yu_P(iX{8b5N2Wy#u-p|Hg{XOdmPlY zEusZfrOR8IXfduW?Cq^!*+jXvvfSK4HnUn?#J0F{LJt(0D|!+PA{6*Sbqo4ilI)#a zJ&hxG`FLwHfLsl+)?CSvb{uPBZzM-$dgdy*laEylE6j4xa{lab z{_&HJTMPYHED9Y>n*&=$z>XzLIrefu^x^`MknKib?EY6PP(gXj1 z!e$r^6Mb7=DaRw*)IBybx*@rIJ zSlHlMgRemKk-3}WT`omM&2+C)V)eMmInC(0;MaHBEAV}yJCD+_$JWN`2Wq#Eu^bs{nQ)4zY~u_2Nx+Df!8(9v#RWY z`VQfTrpdV0K=}lfmw2rTBEM$`b^O#FmJL@W0cCOhfsE zPeXMHynR=O${j`Ryn*7~`iepziaXrL94R4sSRjUsBZ3ksAR!U;5KSO5IYifoYTq1pW0iqBLy7C_aFQqdKhfL}iqlUKassqe7X}qajg7h*ltu z7#%7<0PWaCGc(RA7u^FdJJG2RBbxjDnXUXbyGGvfrs(V^j>M=n6pgc zy(=ludJ15bs6wqBn$&4CD>%}QsoA>Xb~>n*MtxqoG{$$02qB}3Swb;{zuyWR-kdJ# zxf=4JjNn%O>9%rgunrZtnca)*Aeqw2BL%4?4-l02i z>Y(kw{m(A-!jWk32qa+4QRypWUkJ>%sM&zXl9kgFQaGWLHM*?yl}RaA$;3iDCr!>k z*7TgpIk8ZK$IwE~NLi1wgw_<(+G0J6p*(tQ;^^5sqq!-(D5kUm&p30i{Gs&jd>`YU zu4FCo>BM9*xiKmV5cK3UHC{cs3%pvU@n2ByX~hW!s`v zoS}P@5;gOV3_Ocyt8bc+ZZedaDkRA{#F~>WxTbo!)gP`Pra44T7~WgouVM#V)7D-` zU|SN3Pyy58IN}0$^(^8_XeDXLyK)`o5)=K}3^_W@6DaO|@^38Xc2U`X5oTnnQC@W? ze^@0|5KvW)?txYKAhuJiZyZ-hM>P5;l?7~~PZQD8cd{8e&Y>_RXI%8kZ<6x2(JUoh z{*AR%_#PM6szjzuqNzK#wiBa=$E0kUpRFe5+Faf=#X_n)SB}B8lXa}f)5viW+ZXrC zT`Np*Dk>M9KW1s^4>rF-1o5J%WIp0>oX8=@DCNCbve>Q8{4&E9j!+_dH3sWdb`0X5 z=iuN(!L>Pe&s?4D1T$SJg|6F1%_%}mt2?9e2as3_FjdY6!#&pnb6D)aZsE`+5U@Rn8mR$tj z4NX;`%$&0*OF1WZ8GB7M3wpGHgDL7Dyj=5xekXMRIilMM0)7FnzNe+h;D_*EcSK-% zKUU2ZkT6AL(4t2?)Rp7)SF3q@c+=LM@_Kp(r~6{f>f`j(4s$2K!~gpL22MvV z=Zh``h&jz2;Spl|q48O!<%nMF_f2OH2?e5M71khe!1>3bL30N%sTFxq#T!lUrwzalxsQ*ZuIy0EYiS zcf_^m3u)@|tm50AsaCbC zAwu6FlK9x3?r8d#II2b~t&b4aXc2*bqEY)=n(})&gSHzVzt*y2i zw6@yF&5`oW9b)Zl0CJj#u7BIrdB>H{jR$ubb||{st0WbjbiAgUf-Pd@;1XJ+iCv*_ zRer(i2w_z*yytG@8Qa3D=%*Eshn%-1vJ?xvej~>LXs5%L{@ME;se4&e z>yU^RCK*nkK@jQ3)T3i6Pmp(S1gQ13dCCt|FQX;LVXETB{ZQ4|hF;3HkJ>jde8Xh{ zH(swB%f0J5gDuI2F=D@G-D#8zq}6dbKDc!eJ@&*l-;aAhL)bU{U3R%mL0`4*rrLaKu_!dZ%@2Bcx>2XL8Tr%sG{CJ|em zx7=`TF1Ji1Q;(aVw12(BGU%~u*#!ck6q{J)+}lI2Bvp9E>aC9A6k(($8rzjwSl3Xw zMpw@{v{r9IeP&v%$>ySI)!qMerse%g@pIv;Eva0))~N6~#L!$cz6W2E)NVC<6dKKN z{dUh%&FOO6hh6uOXKnTBt9mEMuM2HGGYxUiIw$TPmSQj~{(w<%xjO3-|J#+^!aPEk zx0XZhJLA8b%{JV4W9*{J=hiVECE+K#PCRiMvn~jKt-ev{Hp+DHl+h;OTY*Wf&}{Kp z@*EWJ<{Y}YH9p_)I0v~dH^kg!4D&g~bSSyD40A}JF<)0X8q^TZV)R_<{VmC{({<-g zMMjpMoQt%4g#s{J7gpkDPrviEE0t(sG=sTe!q*l$3Y3FPa*LP>gcR>gki7%R4gl?2?zJ)^H;cu`C++M6yb#(Hy&4o1~AGxVU-agq9#OHPII*&|F zKp};`FIX&Qq`X8~&WW@ahL7o~`SPWGhk5|K8L9%@*(+380g;a~6KF#Cf;(Wa zpBb5))tN)mxTV{4;!Z`F+!24h)@`OIOoXNtd`F#;=Lgg3*Ym2~im;p65qy$&Id-bh zkOzK1Dl|G_vsE+*e$Ic&O=ZphPCPS#n&~l z>*TK#n@FIAwNafIwms(Q0{%Byu--^&Wdd!vNyh>@{@otm5q`G(YQMe^hTl+i(uqZ0 zu>8mpFH#{6h{GXgtQxfN9H?_9wImz(ASVfTHGo^M944j4!D^Teu#?! z1+FxX$R*02TF}R@X;a3M1tfm?AK?^$!Dtik*F(4K_Y(O35l-ceja{9bOzn*ShaZ1T z{EQSZBTA?|*HWyqIQKW53pw3p1Hy%pXgr+=LKnjJ7{(}!@vpq~?@1wq?kfOavPY40 zXy-U@_*B~Q_Q!pP2ROrk-R~Ju8dZlj<`T%)k04-wWZ;)IZovM8xgzEjFBFCxN4p*s*&+}S1S9%q62F2+s?*5VH!Tm8#_xV#Wm z=+XGW0RR9K0szqeSC03;r>GtcNFU_06#uzYmPVccMhqgTWrU;kMqFVb351Ygh%E@8 z5w!4~W`IHj`3r^;5FFQvW{Fq+?{rC{C!hrtAMR@N8ao_3R!_xj#H+d6JdC;%W z^j{@$-%;P2;{1hu_lBqTpr1JbeJ_g4U%_$T3Ez@lKi4JrQ?fsYMgArJ$ajB7p75XY zpuW=L*cSb#5`KPtc;5Gn-XXtKywZ+WUrY|nnQ+G9A$iU4(H#l^)ET=ris}!I>Cq?p z$+4sEiK-T})TbX!hkz`lebO~4c=K#1{@oMl=}en;i}WjLw!=x>8-;$2G^g?B-#J;T z1Ayy6c6&5z-w9%-PTf=;XRZL%qAL&@!~{qUoP`l>j;jJyn$qPv#H3mKy2M`{S74W@ z|2=70tVMQ63dlm$`+KDA0gN%#M&*+=C`hKCW;%@Ybub)Al7uBk;zEqFCZo)rA(h?o zY{6oR;YC!*?0Gox?YCo~wd$n6UAR(KtYqPI2NTu!}+X=lB=HjiX?zPYxr zv5vAkrE-ZAX}x~A{io(pXd=YY64JU2P5we}G?_gU2PbOeB;_6L>FOhC;=5gszHFu( z5xemcKC`i`w_vRqhSn;S3EZLGgJB~r>S`v8jiq13`{eQ0jGWx<$U)IwCmJtmOeT6F zPdvZi7Ri+?|!+?lav^;#8;67vzi-roq;~Bz1QAlVP-M zjdU4JValnD4O6QxjtSoVgp4G`Dz;&jRDbQo`X@e_qtD)p(=tzMv{EQr%uXt@=Ai)w z(@WniR%d~~O>L2>$y_*lHJG?q&BKj~)8^s9I&;SvGtNoVGVNHv4I+)bv>Rnx9&gH# z>8J~`(hgV4A4-bUsWQ!0r-Tj;;LC2#FxagOJNm9ESgx#4E*VfVratoj?8ww1G=$4_ z(Oh7&BO>qy*id(??{1*%1Dy@L-hbd1EL$AGj#CJUF;`?GdOXQM9z~cx;5wFkNz6tK z98YOTrUHKr$QEFgqvsB8JGx^j0P$<@a2@_Z?Llr`uGP2^o1ABsoOO-jsw#6T`Pzno z{9rH-MUDp~@N9b6j012NRLfYO_AgxGg<|Lb4dVk*PjThNt3U3$l% z-YFG7$}EVK94B3G8pe?*J@n0)rR_M9;VvV5+$^sSJJMoH--7u}*5x7QhSeMB*z|Vtx*rf>$a})vbPFcdK{- z`3|$R2>GOC6e%400aoa6icHM}u3o%&cK%4kE329 z35lcfkvTcyDSqG`oR4cPS*&sqJMlL4!1tFqiF^EVn4#kDhp+rZ@E1A=SN$g8A5`JX z8X2sr`lR$zIgx)frsAKKFaN~+uAY>CK!);kW9he2YP+1E}Cf`(!B=KEk|$SO8@t;rb44z9;pizGjo!( zfC66z%d3MmpL8-QUVffDP59mZPF=+>X^sgMWUAyP6=2^*?y1;o_Kz~gdKqWI14W+s zCff^zasq4l#PHs33hwfZP6b`v)XWN~d&6y3VYj%uiPY5(>SZ(@uj zA5?*vT)4Tn2~t%&gd7i2tIKc}$-Is$DR3kS{6&267$tgqWoUvS3%eK>*A_R!&c^z7 zJ36kriMRO&o`qmLWH9g65N!;GjkS2SwbkF`NAJOec{j-#tj_vk8*3Y@^%bOn(;C{F zf}BR;Wz5_DkTy$oZ3-ki`=Jd9b9T27tm`5Vn#L;Rr4f%tXMJ}0@Iv#njMim- zpT1Lm3B;&?nBjpk(M?p$9b(S{W?I|bf3Dz!o^h33%2}!X*&C%9JB#g(a4<*6`{U)ax4T<|FoUS=MJEbQ!(a9z_y;@=b%foj3xDGbyH`e%+}_10}4*n zv(81~+w+u)D^tkfZZ_4Hc3P#naH%5^m2#4rlVCbQB!Hw{gmLE4UoM3|iR5j-QFmFR zjbzs#_4s7vyad(Sa_usR<{gl?Zu|{IR>&#(`x5L-#!U~kj#pW)uTtd1Rg%dCN;~AH zxK&zANNU4jco}A@PRD&FwJ6hmx&bneB?VZsRVrv58$pNF$S(pg$M$t@H{-Bu{7+{$ z7aS|g2<(_GKqj=pNUSE?#ij%EN_2J)Uy@5_f~QlJKR$Vm-;-10whP8)@y|~1$a_@< z+u&iJ3c&_}S||jyTGq{$Vw?J(i&V~hUB@@Z`G(s{_<^iprvbl-;`lUKAQA%D{L7`d zNMfn=858-mq-^!H=H&{x%2G8oJOsNgeR{5EaN$x=x3vgJCOJb*PUq(AYxQWOQf1a? zYN7Ml&I9eLL1+4B@{0i<4smT~qKO)}^(Bzn+dvfjy;q9wv(Ool@g@o<$1ye zf#JsxAL1vDce?2oe%gwRM((1aT;a|kr8qVcJBZ7uwNi!ji5YfX#+`JxpNGo%l++$I zrl}23&k2d`SwB)VZlffF_!%av7QXY#A=0yKxnnsp42tA#Z$N7-xL( zzJS{@CCZQm`V_78T;WLDI7Kw$y`tysGDa~*o4KOP*%^PdBXat!a3pSaKPZG1w*06) z<|mrd-iTdf6$!j%EraA#5RZ^lu-PS7;$wK7eAAtxr$9t1VRz0>YB38_14dtm5H(OM zF$>pxw~$)+o1%E3 za#T;Gp}ETEQ&9g0Y3~@_S(mkYSM1~;+qP}ntRxlNHY&DNv2EM7ZB^`w_2xd^=X5_k zdW?QXzaRGgy!Re+%{BL2zjD&{nh$u{~qHngFc zEdd>2-;@uF+(RkN{NTQkA+!f;qn}gH^nB9U&<%7EwoY40QsJGxcb@z198P^9_fDy! zsO6ev!!>HW;@~)=+NML%ehAt+wHH>1ZXUjy>`Az$q%{zyYX*t#g?rl_=wvfGmQgMc zj8;H6&iWpgsOwWwM1!JOZbZYB?R1FTJe=F(%LIk&x}1>zGjf!m@k+0Kp)O{A5%3Ed zD@3Qy6?cQS+p+pw1Mji(()$)8G&;0{k8z-oSqE{0a2m@6PHr;PP*riBbORoeR^1bC zn`~|h3fD!uh<;F)SW1ap?ykM26rEOw?l9!1b!nGOwGqi0uwC3`J`CwkS1wH;#m|X$VhJYzL42Y)aTeZP-{}V02ESLW%VrBmo(3>XnzD7}$>6%E9tjSugj3>uDR_fA3 z!!Xl@cj`m04E4}^?3v7N>h4Wf-3^-ft1 z?Q8f<@w;Pkb-42r^PVuEpLCerymN#j4uqzGqjrK*>ovc z-d=_?$UhH$FhslPKk7eSQnmPM z2J3rO_b44Nbh~uP#+@e-f`Kp0=0EG?SR0s|I_oF?H^< z{dMzxe>h?O`NPSgWXA>7c%#;$F}S_u3$X|Hg8)VV!-J|oM0@DtV0jJ9TjwK9^zbNv z>|0JKm2p#b&pa-bn&9j`8LpM`h?7xHLYmqX<~sz_gowKxx~-IXC&|FF&CqOcWxxy; zB#TO84y4+Al3eNpZ`dSXfDn7JjXwAz0#97!FwfgSqeHUa!;Kf6WZRZPjP@NjP>@E} z&!!7xoQ+@6jX8SH`s#0VXm{gIM$15E0I zGcrK2m%VBU@*D7UJlFHg1}1xAE?gRhY`X?kD<5{}jPzNXOz$o-X?0PKWya(@*5I!u zPc~=g$AT<1@#WM^-oiUuR&b})($%SV2$&~>q&WImu)_b!=RDFlj6E!IZR*PDm~`+9 z`kqx5nqC2;AsAr|)vQ5Z%fhKVnjUqLed#Rd!i$DYT( z2^1-16?Z#hA#*2XW2e8j>Q%JV=LG;CY?YwGJ<#Fk0t$%pMBtiNV5rw>H0ZQBIS9dZ z$qTW6NMKH@Z)Vkb#cQ8-ZdTDhUYuVn5qS9<)7=m;RvGNYOv+7^u(vaH#9?_cAn!JOPD(8S#HvM2My02vDAio z;N4C#VIc4l&)L>yguX=6YwA@!;H`g0AiLGyWEpV=n-cl5$$aA;eB9DJfk}7StJ}s7 zO;7H%PRoG9wD7?&E-tw&)) z8qB%<4?Ln3?(l5xK1H;ojZC~fYO~YE5H7B(y}YQ{Fz99Z$my?v#Bg(5X1APuLI>EJ z&H5MWrZYvGo3??;unihqDih}n0rsRyL-^ZH&#!}i6`r{p3>Yr7n?U`7ODd|_VXL@( zf1O)-MzoJ0R({`B(51Uat;oN_qW5hosgVBN+NQlBfaD2l5p`8 z-tuX;%#~PLz$yFNsftn46O8{v%PAFzj~gqrw3B&s{aQM3U&;^!H`O>$bdk> zv^=_%1l1UftYvrTb1zhKlK{_T6e43uqJ6=O#a%JC5Y&Mv+llf zwc(dL+TRrH|F4d_inQ`ywrIgT$$@ZUpcMoXGdYq1=l~U@1Js#5q4;>(%G)N%p_-cW zA{TJz&!4_Q0pw*U3jyK?AF!W65cs@6G@Ouum8V&kC)K7etgjc#U+ZtE2GGm;hiVBu zDEbW1;9YSbHqzi5J4$=0235G=hSJ;xTS44x?4n%=AKa`czoIhBVa5p~B~)DQqr6 zg9830Z$cQ$CS_xZLS|Eh&0R)nuMjbxf>jxeJT*~gQdT}8L(P_vaV<3tL+Q2X+A-2W z}R3E?C7#VcTjaBA4%KSeyDB@}4x&D#-k-5!jI7I%wH za7vm+Iu`e1UEGrHmv_vLxCm0Ow+Mf3B^bSHoa&M`1>#HihoR?j^^dU1)|tzzE6=F) z_RwbHU+1r302ZfD0VeqH_9KcS_%>bvOAcyPB?9b;IH%XPfHmgFuUF#S|;e6B{2ZGC-B7v=ARh8!ewbx$jV0Q?PO#WhpB&w=6@=Uu0+b zQEv+^6S$_!*Fdxri7l$y(^&dFjaH9$SSGE(v8b*zEm2OCTWgcx+8d z-&(QsccPbQQVq#WdzIDUqUfM@1ht1Eb^HXpZI{n{bE|naNy&~m}yuv-1`1*OF zvd0x-QxFGoB7wu1RJ;iD1685YBAJ$qR5Uy@2f6CO%aFPfZ`g>KWHgwptRN>c$n?M# z>)=U&dBu&8*uYHWb!dA}I*ik$dUcp+xDC-tNfM<<B(qlPHCW0#{qvaHeLVb08a_ z#7dP-I_vJ6E27^xrkStas8%YWKn8362rW9(WlvD+CS$<1e6$1BDeNglkc&hl@_qc= z%rxn-1ObAyV>x>W)-N9vYocUxMR@P%^BIy4cy~5ht7(*CDPLR}GgyMuG=E zea!i8(jUm@x6=`M9C3UK%zTKn&Vo_F3&{D|A5kKKVLAjbgfGrGL{YnG8?s?hgrZ*j zXmR!)AOEryH|4@3;Cy8x(ywgvpPjk>eKz_(`p17i22`_F*81}FO9r)(U}GsNq*6J9 zSvnwN5%2~&iTJ4*04VcQD^sOoU$@)+z4d2HR;%m-@B;CYnhG91#c^NWJ+QsQu~g6Q z7g!n%7d7HBI z;WxN)F4gaiW30k+@N+t*J6Sbwlu{Ats*SPJXsGPgqj|9;zj4Lgn45NAEgt4FPShNX zmuc6Dig~VOr_07R+T>p>Y_?lk_F7eUC8eK)FCIpQ@mfuug^6JeanqIBr?sL<>6x_U zoV(snVhbsYb}^ep5F^kF^=&4w7ex&h(FA*{&7b1^EfW1#7&6|;Wo#!Mw1tuzXqGwX zQhT-mcKjDEGv3Mqs-xORV8=_!+cU^d;!*$aO@miz0G6CRKtL+-)>;lO5qb| z#cJLsm_-?cmdUg{T!4@;q+x8ggnibIsaWq|=EhcfyM+8mRyed_F1F)D95yN(ctdDJHbaE*W(PA1-f1^>@=AutAFHoolW&K( zT1Eq+LTogg*I4`ML))1kX>bY7LHojl1)@~atqS`BrGk?3ovPqp;N6ie_oAYC5ClBF z3mM<51u8!aALmblyjx)J`~vQ{=Lcyb9q7$pDvUSgZ(T1=^fb&=hj;!h_%ij)BUWJ& z=hU@LveXhHQPWMJbRQ%v&_hE4dRA9Fc#KDS1FkNI1=*trzUV4X`V%VG_?-~yk8j{L zUfT(`9y+hHnMYH!1lwwRz%d$;M@#eyo60ao5hK(C=su)5M>%1!KFK%yLWF$qM0o-I zya*$Xrl9Mlt~UTrhZ4l}oBtEq5Ht62y5;rigyDdzofQI9@bfvIj^2t8Kci&umr%gW zSEAYLP1tU_hh?Ot--8tY5YX&z-DdpeR4QI@(!<0#BkH8dX@~E9`ZHDhcw5MJpQ2zU zZ7hM??S>CLZBE*nnf^*I2W&Y?p^jU$4-*L-l0anJ$QE&eV3stGS`dZE_n*q3zbujE z=6~(Ee{{~n0JnBGp@RE zB}wJ+DVOL(vw|Iw$;z=eI@eIKr&Pcj-`i(Lr^XCMUz&qwt76RsvqbGtcu}Fi%l3WI zOzmRJ z#?o%;ar|bI?@y~jtaW~B_lpcF@uM9vNi}(kZJUnkFA_#kSO-VALN@2zOA-Ihb~lDQ zeu>9^a=Lgv>L$JA4UBpEu6+mML||ds|C%L(V$vyi^W%8Vx6QeLjuX~;Y!Q4rc3&PM zRrid95NQmvKeqWPgK*cy!cby5J`sDRiQ)N13E#vm-!lIkX{nVjr}2gnwcHVAhWirJ zCBwtUaz#w6LCm^T!wLg@kz+X6*xny+K#@VFFTj55#Ow{4cZin*G3;7LVxQnWyAS0? zr#LQ}@F`3uj2!RhpzBT;f8ZmK*C^Q=>@%}0EaO|?JPQEBM|>xq-Uq)+a+?@*87ZL) zH!uy-v)04)aawl-&?~-8!PAZsA>U&T#0WGGyw_uB0r1=v#o@V4c+9Mz$7i z7cDw+$m`N|3gFPsig06KhiUf-8W8OgAZp9hS>v>|zp9g8G4S{rCdPZqC^Btf;+7kV zxKDfxcz66^e#9M}xfL~a?~|m&kOvH`W7vjCwERJd3-gSYK%z`R&MM*Wit6{o^vJ+D zvWq;Hd^$#7Q06@6A$%)|7Xd8zy9#@W1IE%zxvOvU+swyYV#_KHF?To-E8)P z!c>vr`<*gGY9$s-k>S>?O}W9(eqe+fS&q!B6u@3Qz909%2gPfm1Gc7d?KY++w`>uPv1tv3RQ_gP1eue zu(LZ7Ib{x!>rTgi@JgS7`w#zQ5xsNzmU#;2j^T#y3XxY0`8wWm=i9Sw@$4sYCDU_T zxYQ|e+1PFk!&Zi7VMm+DXt+yfLQAug6~-FO-fZK{NGE)cmF=Ab5^REpbnIcvizVDU z`&gfa4n+ND=vPiR9+*dHC|$hhB!=F4n#7v?Y?*#^-S1INfBR(avnt$xR(`#fNkfz_ zL0_4>3{o{o<{y`Mx!0^P+rvbQx^U>z{Rn25ZW5QIJYxzL2aFOaPVIZ&(btRVVusti zh8H*^Xe=ji>m|K~x5;wYc-Uwty5uUTR7|37=Ava^BsKeow2)i2=+ zMZkxgmPXr;93sd)uz~PG(Pk9I+6`zdgo#u_I7G zj0eIY@#mcSP`-ZpWVl&;wY>nXTFZ=FbvM%TAzZnL!|G0xV+){WOtijXIovuJE3k{k4BX5@`~xJn_Rjz}9!`G24j~8zmNkkp^md+d z?^8+NZR?q$=+-O^tGE7XWrXyU(twM+y;7jp(*#Cgc}q%knn>WKlZ6IBYNDf{CIs(S zo9b$Cr|SxqVL$a8PviHuxCwR)(PZnJ`hny(A0g`1 zA5Is9mHtaQK<(E#{AiyE z+oc?!VQp$5-$t(g|f^A@--N3T^VP+|7%|p%7Qp;06vFp*)rM`VNV-4x{ z<8|5ds{0H-VR)6RNfXU8*1(_i4U|R272Hcd9 z!k{KrkTC!WybyK_gT_E%N{=ys6gHXZ%R1AG6InNRM~Y`XsNAj*hPo!c7YlRQq|bmS zM7=(%mI`b`gVrz#nA$D?#?n6DKmA%8^Q?tuIw-w1s}~KE7rJ5)yo!a%h0joyiH%wz ziWa)bAUzVDLLq{dNoSOs(ovwt>~Pr z<&C;#@#=^4$u`MFuKpQeRv=oOrGCh%A%z-ogj7#N2dMkg-I~q4qf4vyN|%_@kjR?I z?WUnH%5))3`4sZwdE+;DA-RUu)@I>91V*HhA|sHX+}!tozKoa5HJi$gCifA|nh2~&i!&yg!3;S)_Fp!gwWT-akt1xO(AKjs4WAET9~0ZsKznf-NgNv(wSTc zu~x-cYy{9sql3?T<7xVGD1thGVAT@Tk_JJ_3_F|K&O|EO2Wez4kS8}9yonYRa2gsa zUp!YfW~Dt?v%+a%m8X?yVx<90hT;qZ;-w}D(i=F9ht1g1N`g_k^=)8-IamO45#(ZK zt}{7AfSFDc_r~qIRJN^OwVfuWDLh1w zNHk=X*-s*b1EcrY?TtUTi&KrbFNwpJNM0ugNRi;b#!#y4wZ0x_s11hFU(5sY*+zB- zGCfVd$=pw8GYo>#zTyVk#}QZ5VwQxtPm~pA9e~4%QZLfFy3o-s5kspf{2=hwJ4n`C*8|`CW&&^+~d=~)= z@<>MNltXnDPYT>H{V~mh2V%{}oS1Z($Z+k#xi7P$pyWDG!{(f|gDmVxClJw7H;ezx zX48UN6u#8Kt=@(L>jVpCTU4q5F78#<&F14aOg>St(m*)?b>zAiEBXJ9pPqMQJX0lTRZ)kkU}PsN_@H5?as z>67{!_77w-0pd1ccBk_KBOAn5?k>uGew8=!uH3!u>usk{EPFGx8-6#T!DbBD-F2$2 z0P+((#v~PF*KyL}c!A_En=?w>T#vGYJ^H!Uenh(}w97nz9vx;GiS$(9R&s1r#Fh`o zkTBB;PN7uzK|Cp{{(WM736-(rY8eY0o{$E+G1VSXwG^ik-FUJ%Iq#a&P{GnD^VncV znjXPOy5KIEX1=Yh5H{{_r3R*ilQI?%c>bSGhSS7Fed)aNo5<+MVndeUZ^ zNzBD`ap*D6I;u?n>XJF_6BX68;Wx+lM;6tz=`k7%TUYf$;N(4)Tf-A4b3ZCnqOxna zC$hc@qqN1&kDoERd?-qS0%uTXUBIeb!dwZx-w!Cjcp39iX5iQ~1kjIwC$CWhU7tNY z%$)v&%i&sV?1+}BkW9uG29>GM(1uo#(Ge3*V4@Y3E;GDudR*XDZyAR7zbL)Z{OGyC zqJwk=^91Sgr?YO>naMp9^Ycb}L_LQL9{2@K=nA#kn3KQUAciHV9H}#~L`b;QRbJ1E zOsQJPLz9Xut8EIQKhg2pdP0B9xOi~S9)*z!p~b{7*lxz(nadeoC*l<83&cQu@laO}vL57_al%d@ z0W)thCJ#Lani^Vp~b<^`MU8>Zt_jaaPM_x3KHw%&Qd~9 zSAbf0uDnU?Oq5z8DQLyL3mJwf`5Z&`7}>(_JPx9zkZ_R&2Hon>azPMbulPd2>;(zK z1R1IlaT!1n5YZ%&ZsKlf+p zm84HOq@3~D8x?sRytpPnPL;j9SkqoaHKMp9o0?BHWp`JEql%=+>`@MqF}1?DHWlk@ z3E#UnveGs!FtKWA6cw{JB~LU3x52UTIU1H17Zq0Z*3$-)xGuP-X_fJ?HoA!GROHu| z<`(u^I9Zq3mQ)deA1$#e(+Y;-w4D`yHLblo^;(ph))(*kALr!d zMVux)297P%{xW=(J2&Z_{=N??(f2fV6YVIuu(~&!4xL?ODwYuFjJfk?9Z^sEFv^P5 z^=|m~ZX)m;X>y%K@p7&Y&l`c1AcQa+6N<*lnV_KFRE026X3TGZX07xn*y)4skhT2L z!@sDQ9bg98h{fj}vb~c-mo5Xk=BI$V!wnZ#L**<~(|BYR~INg}E?VfAE7^!wDpo0wa@928Au0(&g8GA(}+Wv0(7 za==KDb3qQnp_)U`=Eh1*Kxd(iemFfVOV(7I)3Hpixqrv|)n>rB#xT##0`t^hn4AGE zAy;NdpXSd*1I-pXX;zi;Sztf-$#$6CwoxDV)LYje6@OGQFhpvH*dHY$1g_Q4u``!> zf%1WUqGm_PI@t^8uT>O~kkZOK6LJzT_9!FS%8m06qmPv(Q-hqaVW~KU&OZs6A1{S@&f+(|>NhC{(yv+$_ zTaj+jCI#b&c0?@JZ+yTyi_O+o7iLWerF(UpXb8Sful;7M=A{dN?=cwmlfQh{dhVkw zQ@#<-hl@9YSLSL74vXc(bS|!ax#Zah%U$D7>pYTq+EW_#Hc_qK^UW;kBkL^Y=ADG3 zNV(*8ZU}{iGxya~f8`Jzv0JKsoYLE_W`6T}SxbWs^9tfdzb_W^P#W2ze#jM4f8`!R z1cloGA}=!e!{Ivd{Uc2Hfy z_W^bxX5Gk_;f?rtFZvuv<=e9N`I7ftEjNgJ^9aKR_dqY55a5RQS94dL_WM`)&yT~i zp5ILR1Fiv!_-OZ6y)snze)|iz6yKVJz~8^2p*{wbKVg)3#|nz7;TtJ4Rw6J}3N>Ll zmW*7043-@xiRgKNn&1Sy?Zxx``mVhOQD0)+RLnvCs$4@ysrM>rFQ4T6TLx_}80oOyV)7h>{ypEw;qN&}6^*ZlJQP|3 zv`9uGGnhg`8$U6!et`N&5%Ey9oiGR*b4^Zjg1${VBxKKCDPK3x+7lPdA_$PeDTjI% ziu6s^P+P8)E{W-F3ff@&bfkE+)urY-!V9%@4?{f%L@6Fetaf(nOSst;gmR5twmEkinFGM@m($diA;eXQc)&g|J( z4I$s08rPh99zx&o6|v+hgccQZA%*uFUcrbtf!4Uqs@j9aP+$`_b%xE6B8M-(O!tuA zC2aG&(izZ5I~neHOZBJ?=kqlIOEY>qbF`o|e}mdcz|7KRGFUy#FBwoe?Nm<4iwk3S zt+4wFpOzA#T)k4e!b+99#kUEq9h7EjT~gWBBuH(ZZ&$?5Kl1nd66jkFA+?#ltxL!( zR<0S?7|VpVb`p(evVKbgtX>#&fKUp$1uc17p>-m-)R>11#~t4!;i7eeklW_!V~%z- zU{uTfM)j)-w_3{PUN73#V4UQ=;HYqtCsrEPkK<0SErNWa1Pc{&WmA3VhjmRZ5z`~b zW(97C&*(UT1O?A+@5GPn&;#|j#YJpkp&!s7Gt?iN!(@hv5U>SxLGW}TZ;=zC=MZh- zCI0wCiu)PbN=T8gt4>bv3My_)YE+2vV2SA?ykcwogzJzvg$<(UJF3j#ZC%b~pO_wA_9?3FKt-X6IgP zwByWiKK4OTlUIa~BNQT!A|M@x^xwpD!XxylUJTZ@6i~eMpfTnw)OniQOY#?p?gR`R zo_Z%vhD|OaJ}H>0(YTXNQR z+GIaRsGGeFrmE3=rKx4%xS^3#I4+rC&#}txdQ;OvYUrTs1P6N}rHy z2s6Yl;D(=@n}gSUe&I+AH{$)4ov6n@QC#s}>dlZIE`JrGO~qG_k3z-giDNVjWLE%Z zI+aSG#g!`U6DC{}IOo3R!PS4WO*g=@11L?4%EEOX8=@_Y@%IE^t*>rnuM@rG(b-Xm zZ9|DPgzg1XbU|0IqNFHBQMQ?%WSa`LHknt#{ZU}@`_A-6ISf_ZpKT3%lO9RLhI#q{ z(-D`)&Aj%m{*=C%NiGC9MiI*6&VTon=ll`v(hc<~F`J2a@j?DZje7sb?6Z59zw`wc z;^G7OTCMD(!R!;zky)n8W%c+Ki^});jUe2T1`V(1p*lam&+ooKdhKF(-Pp*bu`9Sd z&uuEuL(a{lL%RHgR-biu;+HiqxE)tnQgUZbT2%1~8mm@%X2p7Srn1egOC8fH)sCdL z$4#w<ujbj-*Y%%ONNn`2+&zrt z^sSARj7^OH&$Rsi!{L+u#Ww;0jh|qzHvsyBV2HJ;K+-%sNB(XH#4GXF9!!QlxJh#6 zag!C-_n;Mahr`59ez$51 zzS|%zm$ZH_!EgF?&e7|Qs)Tj~2k*@dW0>w7sukQqH=izi5#vxk5)7eyk)R?fXtoQ* zJnz8&^PMA^_1oCL`sRFJ2QY&Fv2pls-}$dk@J|9PDzdg;RJS)axAQ5No)nZWEee*| z9sox)i6fCHS4Bv$K!SF!$9msNsd$Pjd^7J>xrLYxM}X)jhaG5Gb|BS&6*6jIjH0Tu=norm7%srOF3<2W9e&#}n>Hd3U9WbADD4vr zh_)|^U41o9Ze!k~0h{OsQI9G?is*4;-DlGLUBh<8cJXlG@?YXgD@d@(_?4f2^3*6$ zyMxi8>YpHW8Wd!~sTViBOT7=UQ;3^*1!ZJ)*o==&SRJ2%>>&C%db=ocS~ZFddIn?u zK@~v5LQu`HiL@KR<27DycO&J-KbnMtCu|qXq$$B0e~QP2Vpuh%V%x3S$yVk16SeY0}xR^N{BsM1dS~6U~HP`}PTa%zfl4XL+|z{mYF0UKxeqHU zo4_Xjfij9&%mV7jM|5Z=YzB`lUh{n8cmNY0)l=(Qb6}fp7`x>I<%k7dq98}9) zuvX?Ftflx&ug}G`IJX$?E%ZX2tg@H(;?DREzKUU}e<*p>Z;AfN%E+}Rr4A!4oD%t^L$aVmG;ubxPBvlH8jkJQO-ccC~lZFM~ zJ^7hEgCy{=fWgrK^v@WG@#X$9QWBZcQkCvY_N%kzd(TZ>U#}O~9Q1lD_&jF0eo?p( zJ4s=}UAyX?drg^}a5s`HNc9!4-9t!zg{JWj++gez25cid=7C!| zMTX<9ab3t|8Y6UMa)OBE3FzK@KlW7f8K+JjFYU z@S7}i&ry0odVy}S2OvA{f4s^6OK=}7uR$8Yd8_#|C(zYeRG-S1Id9?ezOMN`7bEbe zhgKcQ8zEs?-`$;D;oi!bAE{ulOk4EWB+Efl{v36F9mXY}xy*L};v5F~IJ>;xEJyrL zQHNzZk9oF!D_rSj9xDZ!7CNd8@234KW~@cR-rsyNVx3&;?H=~YStudLR8l`lk?MZT z!H@=ro@Wj43YF(KgaZ~M&&5R|QAM_eKYm$hU^CI>DTK*k;{!&kh?ejZ>TNhJrG_lb zJOcP6lYB@^y?V``olz~6PRepygP*V)NYdk_;MN@K%rlE=#Zy37$<3`q4jl3kaN)VY5vT-^( zY42x<50vgf$Fu@g@tAF%;m?9$Zh@_|K-B0%9Ft$Ik9>|tsoan7zVCNuSKpM(;0=+~ zRV}vE?eXwOc3Dx)wbie4!wG&H-Njk)CD%pzV^j5wlzll1_5T|74~IlU{c;3}l0W!U zCpF*7aNClvCmPP56wnS04XuXiRkY&>&R{0}wWcZtvEgR*AP?PTX;v-a`v=0$7Tl9O z_o_6It7^uT^h-`}U%2|u9ac**RfkJ8`&M>h-15)UoTpd5WY0Ha86Zqx=13+1Rh&sh zi+D^VZNwXN2k?!f93-Z)(k-xJuH!PLyR9AP#@ygWI2|@?MeM_|;SXlm#A(3ai-|B2 zzwBZmMEd%^Q(U&0bBkpy%zt1ZajBr{gv3bCYT##3fzI$%|4d|N@pf@TGS-wU^hTRr z*?8F%x1VTZ?8K)%7?J4RKb*v=uD*>YMcK%2F;sB>uEfU6&D?)okN;d;X^$2+?auug zU0kqV*oE_Gzw7qX(hbJeQlf9>nyzbxA<7j6g>_>XB-kki#|SrlujTuL%y60t>CVd?<4+n8FjbwuD{`zL{+x1M zrlX>UGjBt_rJBNzWD}sJ0%Lu%*{cAQS>sZ!g!!A( z{tJnW!pNJ27@yu^H>hA;{3A1dY!=ulZi4qs~U>s9{9Y2GU23Q+@!a$iDi@gb@W zk#{mq$EMIIdWWg$!cCjZ$b;v3vzl!n7fN6Iq8fbGL=0Gt=6q3ZyfVN;9Y7Fr~qFXZ6>(Z8Oa{|JywyC0Pu)Ls+p} z+%AI1?I=HEZHPo%(;p?iIIr-OQHSy%eqn2jb6af%hH?T{tUglhOTB2<7RXck+m=SM z(e3^uWo-j3+!)<_HF8ZI($hkZz!%EMIjRJ=%pI}O#fXACxOc~$-rawtAtTOB#j?L@ zg5$62KV#T`OGRJBfRnA$*Zko>CP7FT|CW(5Wd))87yub6q>YddPouT502zVmh zfPEw_1EhF@g<|(>AU-LX8;DD${wdgrF8*ospQKdLh~lFRo8OJKtt$8w+S*`-f9Y3l z$eJBB5YCRZM^dryg|V4zM?@tRdCpL_94H;V_A5)k4L*f_086%T3UbM6wx)uq13p z^?ISx$yyO_=w0=k$jnn8e-HoIleQMP;&UA9#ipY?|KnTRkkPzX^Ym1;50u^@HB8u*rF$lLEEopxyGqezu!f0?ioz`6%L0a`vZ~r zu%`}SE!=%52cd7POa9LorV~G*w~=kvwv=GwVJo`ZEtqhzeQk)eru8M0Ov8N5y#{O_ z2of}0;bB$mx;=$3XQae;OBVWsWXX0HT;FULnS_=&k}PZ^W6C)XYWX(zqQ-8J1B%?f zUdBm#FlO*2j>~+D9iWh?5S(SjL$`up=R%)}8uzNhsGggU>;Vc^BqBsImX3#Vn}`mvml_#u8m$-n%jo`PiJ zd#dUlReUU{WSAnrHOVl4u$o%kw0&H!KY7g7?E-G`OHtGo)eaRwVI(nTAtcR5cxS2- zOk(_bwzm@uU?1$w0W=SsSm(k)T}01ZN?{~3knQpb56p#oO-(rlS7C0_m6bPjS~xh% zt}keBGD>BgqQH);1x+#tx0oHV%hYvw1m34fzmneH>{ZxOXm|MUx*#xYyf=>r7N%<1 zKKmPbHZ`jvNriD|_5MIK8mNJ_joj6G8&Hg{zT($>o0K+4CH(aeW~=ds#oJqr+PE=e z^!>Mtgc|{&tTT6qnQgox0Ub|X`9^xB69J<9!bX7d0ehqVNtV9Wp^Yp4iFXMaR01@f zfmCk;;K)u#kh+b66D%e+?pmW4c|zisDnp1nSh2mBAj}k%hCsD{v0ITI;&;Mi6dFUZ zUdN7{7mOmgm7z=X`6+XgMy%kWZuZ1TV|#LIi>mP-!M{SQ($X5srjC|cE*T>;Q9SL- zf7Q!cNULIU>5~LU@2{91mzH+IW`05^H7;|;A!%f}4fQaw+$u{uo>-aqL<{Cw#uawF zoh5O?E08oEV5&Gr?5dq)9ki8lYNkGC?&E8NVHzdw1Kc58)7_ zDB|ydmzT}Cc*YnobW7!W{D0d;tZC@ZY`8}h!vv>3O6SbnANrM^%Pz+%z){jKYhbO8 zLM$W>PfZ*3jcd4nhy{)=Ft{G)#JC}2q#@>n6or3)qz&o;)&BY=?13;hAI?_SCa`9? zKqzDB%hVVlaLerf?g=@_wk>$ME$)V`bPeL~=PfbX^+P1SGWUlFe>_OPX#54_Tb`Ld zR0>Ihbc^=8^EW^HHjZNvb+A)Z!Npmww70+!yo1z40Vc?>#20IpIili+T(2I{PqVvs zAdj;11-oyXKW7j!$Qiz4nlf4I2)cqvD)gAa{ePsrWmH`4nk^bUK;bUIA-KB+cXxMp z3ldxkC?EU9BUv>xb#8otc9)Zl&r(kr5mq03!ya(l+3ErJYA_<>2qCv28_kSTaf8}Jg z&8Fftm@-=q?g8@uMh}p)b~AS|w)=Yn7*Jhv0HZeo8T~2HDTOrCKwE0-j20ST=j8{H zTqzPIL@6m>u94A=t>xs7@0gtkO8OK;V7*5KmJA1-G9{fm7};#RiEOr|jhwE|KObr% zCJ<;_)FtqmlUfSIR3qAC=rx^C7$`O9E47^%D%miFuHpNxHH3(~gbCqDAAs-6Q_p2m zg(>GC>if-psQ1(!+?Q>l&!fYNxN<^cVyJN}Ah>U&PfH5$tmDHuo;AN56$3Fxe8|X1 zb69=sbFv=0$P^YgSB$Ce!oSED`e4Q^@UM=ZK?xn`%W_OJ2~+NO=$ z3ye;dohHEWXm#g9!MP$c(kZLw7x(l3#^xkk4?Em~z{e(HZGW{~K8zz)5WFf79G3E= zg_+XP6}g^AX$(7;yF-b&p#^!aA|6{@M&%Xne9I$-*<3>r-An;YF{Zz9NBG)tPT@26 z74=cxeHG_6(&8C%S8dBIP;W=IrsBAmfffl-j zzr*N}E~?kJQg>5qxOD~oJmEob;F6r#7*=*6C?W)|F}tK1<_ZFBwdThuO;~56+Z3mL zF_DcXlw_@}5=RS^I7y?RmUB3Ep3zJU$N?glmP1@lH%vnZr!8z}C0{mb@{uy04aJul z{Qq0Q7mv4JW(Nn?C3wh?{x^c_FHBI>(ZS8!^Pgf5MJfWaP{OFb39>Fv+!J_R-$TVg z6bPR=$v~x=Fk&!0?@_kxPAdWqIA95a&ygfrk5I45JC#Pprq0^S8(eITzpjB#uioI0 z3Y(w>SuHB{=8MZRYUov>fmrboaZW-;VG26iHKA*miiUeBz$?wYD^Fj(2j{8ui9r_} zvCIb3E66j?W-11&;!!48Iw#Q-j8im{V5LQbI{c9#LYI+KfXRF7T5dFF>98X*+1R8c z+(&74wx_U0+CS6=k*#sZqr}q#Y^zxiM%Q9>E@9{ z>@l~re~N%8QLu0qcH&(e_ER9WyP8k(#QgNQ$bVYi2j%mtDU^I?V~f@}P#F>Cz@@lZ z0OoE}>F7*uyZxP?LhZ?pbzp#%HY(DmCjatZD4u`i{jMN`j1agN%Y6LsLE_(hH2($H zR%!ghnXi~(qlsSUixPCZMjoQpmv$$0`XJmdq6=c1z%wQ6rZ#tv$TFb;k6lERbS;+j z$I=L)5!~H012Kq3nsW=w$!s>)gUlP>&uxaCU4K3r;ocaR;wJa)e@tg4D*{U;OH3>I z{iF&zal!p=1lUEBGg9eE3?cwPL|Vd#j`hO++JR5dO%oe+1<Rv)fjrLxazrr)NJKW`0c zD!zBf(waWABQssYQ>7@JSolPKNXe-;dx$=V&4oDC?>lsFR}-5cqQIR^x~}yUaz(@2 zF2EqB&|)wc{eJ%DP~M)bN9YQz_*s6f2tedKv{g|Y#dTCg;9wVP z+_1?#;^EW_?(rbwvStUS7iW+V8D_%QbR~e-S8Zvp+d-5dHIDUt!!LIagYb)-X+PS8 zj*IC%IQhfZP23vx4mGKoG=98& zk3@N}{ew6`rneM&GAIETR(2pe|K(;eeS%q+3(QAMxJr5iffU#)jzpTlPQ*oIAPY!0 zt_16$?NAk7TAk_ge5lXrggs!3PAs;TDkF^n!gJ-3`>%A!hd$GFH7( z_}}P45gSXt`J?mdg65}(N$wnq-nnw^DOS-4wme z?6ubM0v6I;&LQS!p^=uE>G-29~JfxXdtbDPFc4gSfs(VNNXZ)+Y_FRc=d=WR{)nxZ;1Kh>xaL$ zX36@uq$_ac3iu9(9F@9#LZ580kSQ-pIx{D901VF;ol$tq!c5*(nL}#qSC!Cy!6r(0ccUQo`ocX zTdrfR82Q5dRoc2U@#aYYw2iH`^%=X49SJVNc+LD9Dz2}B5ta5oliO6|f-8zy&4A59bxgq7T5CZYV3KBYQHsy;#@?83T`DuzHpP9eyqq(SRM>4_ zuiC!)S|%F@kY|($0k9cm56xn4+5H%{EqW5sWP^)O?ukI9CTAiej#6Fvai^Y8o-S4S z3fdV)QJsRhVh8U)ZQN8?96gdY`BG(oRYR>^LZ_!3#9@ZZT4j=#M@49PTtH`cqcu70 z(Mt@Y4IDT~VPiLR(#x=QSaeyB(l1&@He{mgHnH;>>2?AE0QaRENr`p6cJdtmn+B8tu%T}AgUnP$Y^(dgl(C#{#O`#63? zD4X3W{<%vv)~amwF;tPYiq9JN)hx-?euJLnHa=oL5`Udu+*U;ep74N`W~^P|W_?nl zht=l$?Y=+eGwzp9?KIlQzbv`Y{z$*^UuMa2$u~DiTJ_mt>*L~Ym|QvO`=#~5!edNG z?Tw&YzjvFZ^4WF*5G`x?V2^}nUD|)GK;XR_)VC#U$Qen0tPMh?FpB;TffAdl zA|kaj8~XuX*h-dfC5r-T?7a1daPC0C>eyzOqzOvtLRAux&Wf07Rfkn$N|nH=J<6H! z#heNI+aInUD`rR(z|!tcubZwvZ%Z%le>%AMU)Oz6K5!c*wmS3dtf#J1v>fkS2ytn8 zP6t3a*dTjPhl?U?ZUw@HrCv+GXnH&0YI-RJRHXSJaXDUZ>F6C&t!8*#>+*ZjZ4OSX z{rs72*&dwXaedU5dhg)p8v}PS@Y3?&SL{oILVUXgyFRSP#qwl<@;sdrqkBoZcxg=Z z_>qg){GFVLaA1hP1&jFbfYah<7F_)JHGHxD(BekV#OIY(J^^l^;?+sXN+W^xkR|^k z{ke(k`N4tfxJyjXF44RR32|^s%FpxNI#QUNhg@V7>c=3syT|+>CYnc3Pz}Of2HbV}9hakT65gaKM9)#@?{ljLzDmuTRJM^$o>E{_ZmRr4{mL|iP3>_^Q=M%W75P@&WD;Q@;VRo=&sZ3JqG@iQx5)`!BCEd!MvbkTXS1lM8 ztKEU_FoqaT=Uj5+SM|8_d0Qt4L{zEPc}f{#$6pgFpJ78cz3qjDd)ivZd-b&<-7wB~ zBnn^DcI-{L8ttQj-hCwvCN4e}x3YX)l(o~$8ND+K4C~7T@KjM&W(7n5Tj%d>kh+%K zKJ7Y!edC;GMp@P>^$7GrNuBg~ly#o$r5Pn`Z@?6v{Su33{X18m8hLFI`c z|6L(kz^U?;A%E4DKdr(J9!wu?_JAv`L@CgSm>sLF3{7N@noJW5dAsmAA0cH}IaI_V zod5jiO0L6gX|E`DxKCbr{+IE5dd&g5ZS?^{{%Vkja$)$-a%$`wHI|%848#ycEX#;c z$nSGVyN~RJzQ+84`Lx(HJ9g^yRAB??%K4z8BlKl<{ZNgLWl67uY7)rMsn7L0uF&bl z6~!yLSt^K@ZsU{rwL#{PfycDVtU8Ex2%pTUa=q9H#BC3W1f&*B&gN~!%hszz?{v7= zX%uCD)WdI{eh;TTHMw{tmLjDRZ%T7TX#ChNd7`(X-6`Pg{9?BCG8kdn(B@E zIr8ziJga+lPW*>Jt7b`|bHlv711c&6L{V9u?^x3!gBr6Amz_ynHwH(-9A& zDaMNU>P#`Cbp}7eY6b4YEzF5{9{JI4PI&ic*6ZOVZ(8qeBfP{{C?Mi}*oUljFl0&w z4ZhIge{V@Ey%(mvL(~Fjj0IzqMzo4bJH%sw7Ke$9?^m=H$NANwz!KKT#myooEx5*zs6Wao^^gd z7xCq}!=`?3ESt6L;P52(3m0Ly_%6IaB9;_^CZW_M+X?MwCBZc1f@Z|&$3(G` zghW)~oyoLzvFYFO3O`Yn6wKx^%K;ZVdgHS=61+%p!(aNPaCKTl5g+2?A<0dUR%KRZ zZr{MZm0`I3VmrgoRE&jakb+rQ7G%z|PWo-vKD=uR1l4$PZQRR0>#XERekFI_N+$TE{Sa^Gujf_ zJja~ztrWyAzs)GrNXNEo7ljb7pSYR1XYWLg#i$SyX7Rer-1qQ@hKg6x<7@IaX#UoL z7>G?;*v&K_w8HN4daZ#uL&NlvE)$HOP7hHZwkW^z$xH`GpnArM`ZI|KJZF6P?Rf9~ zqziqg?!6XN#a{n?lQAe^Gw>QTx;tEf8_;I*F*^%tSO~dshp1GPdRbeWCtMpUH7m$t zNPkNR(%!0BoIZIpK*U1Pcruu}R4(t58#LR#Ch3J($RY-QwQdw9;3kAw55ujqP29aM zSSe#$VoCJpl?JnfnJM(?l`|YB_;N*p60N$l(Ax6OSX3PWv4bwUTQuuQ+OyL7#+Gp9 z+6P&7GQZA6<}H}J4aL%u4aKBxVwal=sVhncC9?vDop#yF0bcp*_Chk<4vh;%O!m;L z-PkPovOQj%*y^?`W^!R|L(Gn@Hb;PKd}$*)y=>n6VGGWf>$If8Ga=?6R#OcWH&?{Z zm4^Dl(pcWb1mt7SAvF4`_|d|ho${Gn>7qBSzT#T6&r0X6g-V-D>S%qQBXT+_yHe5o z$^GzMpXOfPW}yrWh-ylmpEEzl-twrHp7wq9dsf_{dfKBIMAK6oSNGLYI8hZJ%;XCA z?ROjPY8L0FFjkyIS(ipxW#-HV}$ z7mwi>MhE}kULChLOpdPpMqTeTtJo5YnB^$lA+@urvq0+^raV~TjlP-r+n5`xy?Bpe zoo9+n%nYW60e_Hx+aG`O38BY}i=Civsau#D_UjLfBz5RY{IF7I3vC0zMVI>Y0xQ$g zrl^6Kr%b}#g*VnZE2r;M$Cjf5c&dlpSA;$YyvI4z0`P~Bte?YU?G-+C?7O(=+SW$t z8LY*?92e2#PkP;t(neDd{=~Cti*2L#=pcdMZMAcT_ud6;2=9Qn=0uvG%b4eH^Ju=` zxW5B#=_5|42hFh?wID$PT1O0gCZtxKSqKV4bu6PdaePq-pl5Go1>Uw9Q{C9YhMh+P zI^omACsAANVd^M#wdc%wXgBG^RJ6F`BBJJ#EtO}6 zd_%am>V`-$M5air(i@vh^{*}GmppKFohXvn$k>RO3ibJ4Vf!S1ySzaf%^@L zbv|+;%^dSBK8$TPcDn{FB~$S1&zRV0Tp`a{f}w^WU&by_ARP;%m%Pb<|>1v@D$!ygYqckJB&6{`5^atx+G2ww9Ntn~8qB7I>ML zK(yyh&|6H=He8*Tml6iVZ4Ja#Z&pD3y6A+1;43K?7&TJ<_r~S_FFMsf z0VI7b9c+fJDqO5OBgd8iY7x4iJD`hdI7&OxSuMStN5%%sfPb$)2^E!26bkUO{HydJ z?o@+R6lpEZpf9(j#r>&ACr?V++x^X)soke%dOBM zccj(ZZ)4M+d-a-nuGO~nJC3iYMW6Sj&yaVYHs1nq-k{jjt%pSdm ziK5*sTH5Q&g;)(EXWLCz-%WW8D{&y3(f#ue|L86bx#F+R{U5_I$!B zz#oiNjazcU*~LFM4l>>;oX7Qsa-MU7J;clA_^pWiv&Z*Jq!P><6JJrv3acJ`S11BW z13&+v&6wp?8S|xMWT}OR~BBkxUK~(s8x_mbrM=DC2hM)xnAV-=t zwb~a4kz5fH<&rOQ_Z;I!*)fdvbAMV-Z*37Ht(V=*oVa|&1wl;pLH$_G(>yqT7XBKp zr$l_cyAEFt*l=5EoPqa3pvO)SkmD*2inX)WIV)V@Ne`8hoJ&LbSmc4`2lvFhqW{AA z<6}X@tx++8IRT!Eys3=dQ&9Eow-CX6o@%oSrDn9V7&`Ta(_70Tz{Pw3W2~L{5u6I` z&aWBF42sig-&5IsNz#q%$y3t!4f2n(>J6igl)t{RmSucJonbycaI?UvRA37k<5-a= zfbjlEE0XfAjc-WtT?^6P7gaNT|3aA9E#$wyW-qFTqMQRKOE4G-|97C)zrS0_Qu+r3 zjOv|ay>Ado2bl%Hmh>GAW zp#9K`FB$UmCz=!fR~nt8{-4nQ zKv~B1ERk1sM4|2&bguBKP~B4iTc2Qd%?ngF?i*?qs(xU%ibXYr60ta3;8zhpQw5v} z8FtWO-H4fqT)uSi?{Yo6snC=%(~j7Rx6iytGZ?9F$Lu@o&M%Dt~+eSqXpQ@6dGvicAuU)!S)_AN}A zM2yd>3fgUvk?2IHM|6W7|0;Oo1Bd6!r;=w#kWwV>bUCVb^gS<%IO{QXis|bu@0)dVUp(635^cld2^+x ztF3;Im_gAl!&%ng>9R(=LXnb1Pfae|-xoN2ZEiNL zb*Qk+f2`XPUVeW~yujR^%H+DfyMJpa&bi^vu?p|GQmIOk?gQ|%gFMSCV6DYn z{q?Q%2<3icjq)d(7(AK3_Bx$VKIUKeQfl-)+Gs#fn zfuhOs6LC(<@6^#OM$CiauqGc#ZM_(3v@cpKu(k;0y}3Fvnyf`Hijf3nv8C)zxuuVj z8jd$^6)s*nW7sM49Pg(g>e1q#bo_G;Ccd%V9OOJ$Y>w*+y`Kihe9#)fPBi|s*&oSu zv%}Ed5{cuuKd|QM%*7N9Tk6SI(-Dkw0mvn~pzYI`bl9)D82kp^z7zv?<%{_C>e)q1 z{Bg^GaCbv!I1=S*rw_sh`r%5Dc;8fT(3}`$hg$*K8U5jA2Lht6-9E%a0IQ!`;Ug}_ zrO}5-7NTxZPpxiph!7UWEer^;mP>X)yzY`qYl9a#)SQ6=2!7xc%#|1aZE}fqbM?lT?31l|vB@)Ch%u5DX=J2X?DuRjfM5$qTSpPP5l4hHZ)&NH~Xr84? z+hU)7%*#(eYkLq4LHw%mQEsJbdyUVkHmHrw3wMO-!e1BK{-h5AMEyu37n z1#K(U)(ar;X!=WY^;cx1QAoe;tsh=MJfBj`6gjVwbvlB2?A@({*hJchWO8T`*9N+F z^VYd|nj4SP^_iLaA3q|EO?BmnOCwLb^^#7Wi$qn(EU1Gm^!s zZQB&ZZf$xjlP<73BhWSdS$MoU9gr=z?6aTiy0Z?kqOit@6c5Xz8{elqu-l;LE5$m? z?eiT}oO*)i05IIk`7ee0PFa}KC6^w0C^UjugF2YiR>2&%&Sy)49%X(tpzIV zS#3|P7nzzwPX4j`dOHTh$WhPdn(#4;gz{odK`y;4<0}h&b#pq%_=xJ9Tx$eQnujk~ z!p<-mZew@=$v)Mi%cx5&eSQlFp*$qUffiZpDxJ>E?L|cUWcWq}m~8gc3ZB%pcO0X7 zMiQJ!4#G){(7vax4TxjP>H}G~G>)`!oyl86Uc*d(Yq+d5P5MLC&x|Yc2^$_X06K2q zAQ|)Ngi=#Hovia>+)1a|*qEnfVQ~Yp#%sLdvChmdT-B^^!x+_@4Ec!P#83O~$h=7- zTadqrNgZL&MCg<4=wS~ipmFVDqfH$)5;3YemjvX19`XDpYx9=v6)NLm z)}JGMg1|A406Z{>4oonc6|GcaI5aB;=prt-`SI%Z<0)1wtCfOI`_rz&cP?yzcLOxW zT3?l$sYNONe355bx~*tQYFn6>7WLBD?5%CB9ZNLWV-YQ8>yTu5xh-5Nv~Hzwo|}az zMZs~FY*yTlj5(eb1%Q279)?NuAr_$O_ggu?Vn?DTr zjabF9o6krb8x>r(C27#!jjk&C#71tkwldOy>W8v;$T)Q|2*_L5=OZXI9wH^ApW?rV6kgMfSC2uqMYUK+tGCf?TeO&hR9+De zH-82&xCCm^*$kV8*{ehk3w&zLPg^t?)5@1Rq#Ho66O`8R-f?-C&GHEnPaD1FL&7Mt zNoCiWHXaGbUYvmsd)ViVU4iI-ALq)N%3!6{z+am zKm*H(9}3-^x>3!f{mod9b6x# zzhG`}jL9cc;R~8(mWiIhjI!E;fL{4{aFz!es!DV@{>bQhLS!Hm@ni~S|K-gp9pf@u zwh(l*H^pwVSC>ABiwOS4=MJs+&bwzBcN?mYWe%c?G3JB{p> zOuJh$#8i>rxcjYAQr4(>LFVM14)_Idc8uyVM&ZSWbBm}9q^)2DP$JP!ebmX#3#eQ} zJA<|P(BEvLga53w?NL2%MClT)zlF3W9yRGWY<#m0j?FjSbDW*-th4~o$qq+jwKtWA zoN9TkuVQmF(EaWhvk}>3(K`#=ABjzQVc8SN4$?)QYOsK4&hDY7rF-)vb#Oh%Le6&T z+eF0Xx9R-EG&)1*lwlZ^!acz@j82p`aVJZ7KfcXLFZ-OpHY_Jz$4uRN$ZG z*0RP%!H_U-1W%)@s{EWwtkcsR<{>*<(@-RKji4ATbQ`q#cT*-r8P%IoO6O@Vh68$`)w znkts%uvi#>*C4Df=Wz(WGmlpimfXslOEYm*jxjDq&!I)_hHqDYv;Fj=3w>$txbfX}J3H zf=7*Lh}8(?>b^<<95+3z;onbI%eb`N7fj0v1yiI&{^!B_|Mz77d7V?6a>S6te5caB zSe~R}AyrDAMVI+76v47DnM(x|6`@)(iGPU>y;I+$ISIV0Zfp}nDtU(!NJ(J&NHGtk zVvC7P`0XgvKTLz+ETa)E556DWio@~i=F8@{U+rFO{_Ws(+HUFfsBLDdP;Rn*WzuN) zxF}PuViR0Z+Gy+Xk8#*Lo`iUrxV_w+*gJ*OSs;w_2CZzgMeXPxguk3JEpZvwU2OvQ zdDCau1z?MgxQkPok$!Rc0>kIjQ)D=r)2v$@`Z(Dt2Gh5f_$#o?G<;{9S;5T5#f)pi5kYW&8wgbRwi%InO1tsWSl%e5+OwvI*YwZjI*j%~6d4B#CZo?YZ5yUxP9 z(>TW;Wl^_|kSpXq5S0Q*2T`ZXs?)06C?Cxe?TB|DVUk=?VZlJH9e9j)ACFhr;$D8U z@-VZWsZ$D;m1k#7>Mo#FqK!sGVBCoh%0x{G9Y%B(|A=*iAlN5JmYW*@1M@4d)Clbt z1~Cj}o_0`iZd3(AHT)W>Ptg`HErQ#+QR++T+;*;t-f`D!!q0MIPYH&W-_OD;6{^Jd zWGtn`wG4i(*e0pV$Aq}(e}p~)MTxIxH`}5f_;|-X}ei&R}vrlJCs?BIi>ng9dXH4H zPv}q)=b$R>FU%)Ai5y_YW4syUY`;*;uyd^Gjv}F;ME^0wvHdxzJ)^|Un>9jZk$)KR zb)pF42v}IUmdz2~o`mJ&>L+_vUb>4o3=INR6ReZj2+IPShG2amax`=@vzTYxz=+>U zGD-6vSqcH0j0I1 z^ro`O04+{ZMhdFNd7k=4*|oUK8n;s1U%i(8iB~^2z453ZyJ69Eh%%KQg&kpA_!ViaO6{lTAw#dsLu&~_iy2H9YZ zKj&CV;UKk@E!ed!GB=98NqHcZY+g5rrd%^Hn64~3&pEU`HJN+5udOa-xL0V@6S(hk z51_7ZY>p<%{FDcF{}S(K(VydCMXA4VljP!`bH)SS{{UQ{8Wgu=R4`Ybp)@&eNjWyi z&+5l~hD}8OaUUq%_ypo}#FM!q)11L?RiC5H7Tr@b>2{fOuQ=~8N)Gx({8FJMeM`LuR8@2b(p6Whk5!kS&7)l(jo2x8Yz zm%DD`EHXiAIQ+dopsqL63d&ekVu^EBwK2CT$SwgMIw3hr_VMPj~TmNWF}}3-ac$+BOXL*qTsZy##3k5W}N&leh z9?OmUG!LmAMvHIp1tEGWGJYYmScp4B=MO|(#o;m6T+rolvE2$RK9CDB)!{oHWward z9&dZ$IqkIiQeb8jHJw|oM!5+bc~bejaEl9Mo-XxIX?h4XmU{de?x%83{ZM z{Lf+S>LzMs>|puV?wqF=#XmmFS-ZNKJN#$&Px{{R7f2go`6g|Gc}0qe83`p@MUjN6 zMt^ErzZd3-;}UjMp$*;>Nc8Mcu*)>D#1*v2`3t0l^u>veB+6q_?}ZbrK>Qps!XCAt zT_{sT8A;YE##?(5FX`tcL;o zHDE+u1!rE!VcT1(jag*gf3D_a_wh#Po##VdsKh*J!;CdL|2N;05JtVBZ~v0xe;vjw zck9DE7?G_7lge2B#~lCLVf>?CH)`l=VrXK%E3lf0aGQvs&FR2^(4|at8s~$=NntYZ zp+Ygs?>R$6S((!!*n&YC-+rWYZDDj?jq5O^d~K|l^1U!T67>&?Ts&tBsZg=Dy{VmA zIXoR}emLz=^n1E_$@!4k&$Zx*lojtL?ZO#C)lMYBHK|^Jc4#{tY#^-?->w`icq{87 zJdnY$B^8D`s7s38QA$RB$0$uj(EsIQu&1sKk~AwljB9*5Ig`YmgIc@?uk`2x=*)K2Ca>Su$kKsR&gz!=V~E`xm7edA<(A4MfAnVLZz*mvP6GFN+y)Cm1q&M z_&{MTh_vnO*^bIFDIR8w7MF~sCbPXNWn-^U^l;xSX1Ds8sG%x@jX~Gh%{}3&TYF=E z!vWU6!9GM-T6=eo$}Tb}v7U=LC-NOfbN1^-!&A#jNAdn|3^phX(R?%gB>>QrkEcGe z)td4L^fX(uG?e*ZxQ#iq1TLU2aA?XI z-ep`z6g(J~>54 zV)fA(c~~pmdO00HFu(V&%mZw$f$v0Xixw1$@SrC9^2j?xeC|fwu~66;PK5~_;t4yH z;)*i_VQqVBU~VVTWDmpOQZL1tjk0U~PVtF6n~H{93{Ndp*9y0LqqN}y0bkIE2FV&h zh#q9&2L9|AmI<^GVck6jS3M8+u|(++9C1Hd+n?IB$Urv5aA(OJ-8$N6KUq)XnZqlb z5IVMGzkI8z^IQFlMeAf0`-4h-WVO*`84Fi7a~F(jr#T<@2<3du_LRW&nR+3|B+J=@ z5c3pvJo7I5B;03@-JN5y+eI{>@C4Of;@(lUnoXHsdqmC;?_=TIN=@${*MQ1j4+tU* zNBWM1{%{}eK!mIfM4ut{6gm=7rC})Km=-S&r&$to$A%qIL%o68c!jtk$ zJ5nRJp~R_jIiw_C$BTldsXde=?|~sauZ)J?I|v2;_k%le-H_4ad2RW`;n0hBP$$o3 z?&^j~&poL_M0dAbhqfGJLufj}bh^SAH#wI6x!MC229p>l${mpI?lo$^j{(*lQf;VJ znKsotsQ=xi!RN88CK22#{*q*2|34^^O2**DGCOlSYj1Ox|J<`qQqh+sWWf|zsc{~% z))!g?y{RZKt6MkJ&;?0__AVmKs`y0yFdj!wFh@_i=eirf!6F8MCG?Lc@{LZKngS`f zcs?Ie{Cs#mxP}X8PK{LV@r;6>Czl(f-qj8%`#443Zd6)HQ}D_wS~v4LuC&_lX+#OT zBl~@{cG{}sKGt&4Lg%`g8=G-Led^}*3*K0B#JbHn%RIr^2NwppL7{UG^WQHo3;IcT z+c7S)uh+3IhMB#hwvU}o@fUmb1uEP7tGo9n48S-Ks)a?G1mD>A?yqF+a+e4-7=S!{ zW2zo{bYR+0KRN(zGoz=yy5NoImy@65o``MP0$18p4Ql|Ymt)j8SEG{xFL3q3@om9( z%M>s9&roW8!a@9`{a8X3d4jjOye^UKTR`&*iuStgdm!6#JJ$N2L6rQQ_F1s8v&T{& zg1TX-A6@<^y-LaLG;Og}qQ$dRBF5n??b>M=SM#m#3guule_aV z!T?+1GiJS~j41?p>5Lv(5{sNF=3Jdi4$CdZ-*2)IEj8L6;HSI;9(ez+pEBz|dSQ}^ ztSlG@c%OCHXsT`!1UX*jPHV8t+R6%x374XvinR~eFBca|gGFK9K+KkqvNZJh0|)(nTu)(S89$+18}-jrca|aMStW@9d7#@*m)k;|$U_QQ7WM@>CP6+IMAl5DvgT{wF6<0D3KxoY4V28 zBiMbV%B#jwY1`Sk{TT3~Gt}A+p4}bHw~#%2lX)0zalhm}8!pCTmm=DFn8n%EcLT`< zHkZ#na^>x3o_(8@_C`DI;FjjDmfIGleyYYmba-gp=*F2jxLnkoH*Y7~Ac^ulUJ$D% zKDTZuGKFvEpg-BtnsJuwDG%a+*`;P42h0_Bd7EUMX;iI%J!F5(`mNUzsb?RzM1GUm z?F@4Nl)yby>(i?9x%iHeX-Il5B9jC)@Q;Mp00%7dkvfgI8LR?fWNO~!$rH023J(de z$p3hZ`9h*sT1=nN{-H4AF|VON@1w${o$2FD*K-z|f};Ws$IIsljYl0R;OYHM>q

    rLd=g!o9w}w80wS4sK6FTnbJ8{%3 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

    8biPqWPvA`}h_z^NO&Qig@}jF(EukC)W4 z$&0i44{nWDJSKuZ4Ch}CPvtsu-B{+Q5!bEZ>e^TB5}|Shv_@ttl$@4R z>)o8xoOexwjZPq0T~VP{Vg_GrrXpzqllS zTzJvyp0+uInt9P)t0A3#>g(q&H$+UcI_tDYbPLzQWTMhG8c1m?>3!OxXq_OPgZ{Cj z(0l^lSx7qa`;4-BeQOH#zb9b- zjXsF6iI|D4iKBtDog?u#xWn1R{a++CC7u7N$rft)wkYJ)ic2B%&1)9X5r%I{mOlrM zwvuWOUVW)8cd?Nir?o&c+=sip5tkS=XXgG#l^x>qD+v6`+EH$Lvde9z%jx7f_ofGk z+K>er;vQjhlix%xsRQSOw3M8m3I6hERb*z5r7dRXTog+ z$XxPP@vBPx4ei+H^8MW-d8jxe*U0OSwky|+)EF>sdRFbW4K`L@kA$<5= zaE$@)+uMy4dDm^(9DEWf1kKfUNmT8RjC$+L5ydi6Y|_~VVZIvWnny5FehoSX=-bt& zCAw=%RW60v?nCst)EdaS+nycL%v>Eu<7^qL`)=e`&MI{Ij814u z6u(Oo-2I#>7ZT z02IB%Bv>_mltn`cv^%xtUWg4@st&pE8Z}Vn5K$40)V_RqC~po!p}5(vupy->BAk%+ zO);}c*qYLd1lntGYk?jZU@K_;B>>>)ghk9E&$Am^)ud&DFwv@5Af_I1q3j!-CO5M{Lst&7QjSL z_$!f<0iY1$K`@YoVIUcaNA1Pq5ClX`1cpH{)Ih>xLVOWn9?UVV6yX9*X;uqMb)X*U z4VMpbhbJ@Ug%-Jga6K*MPE5%AF9Icy?Gcc!lzjd-@-TL~?y3nc5D*qW5D@*pbB_97 z8~Q&RdYlmM+A2#Y+Zx-M>8ZwyV~yFQ7D6k|r1{1Cc@#s`*+okA>FJF{{0n1;EZMG% zNT#GZ#wzkZL=@yDR4|)kfPqaU0zoUv1RR8rhj36p9n`eTZ0>WNb~0&XBu}3|KHjD~ zZnm9fIG(MaH@Q4M57Bx+fGS`_P?v|-A)Mh)iEnLzbwK`t0E4tcSQFN!_ZEYA0;~z_ zG5jYWv<393{B?mh03Z+#2mpjrvOL69TmQ^epe9#%0Me?2KAJzkUjSGE_*;4cQcVm` z7Ka~4OgXT)E>p#`xGtrS=l=}f8qvE1QcYk_<9`9rmfP(D*%sRc17<^X=kteyf5G?9 zq`owDg^K@z_wikY^mVNW##j@hzAU_Cwe*=B=bg4~F}#3H_X*g}ZLF6=ps(jDXE8J& zZO-N8lgZ7kBW#+{T+_J(Y7&Lml-b2i-=eB}ue|hiogG)abPBrn$an^t@`}@hQ`kW( zd!%o|&G#3x_(K33JJ&d3@&w}GolrY$?5b{h!007usz-cC#ORf=Ju`YK6=a`u?6U@m zr>~bkgOJW6byG8bY4z~gK1pi)gw4_;khW9QHiL9wH+H$f_#QLZP1SItv1j=NOyHwu zNT<2y=}P5~2mg{ksaufFm#`Wu;YBBPNyhk2A@RbL{*kragI~}?T%?EK9^6}F@`UC2 zrD|F;|L&&x;8qRTFL7-r{Eg4}Nlwr^@te5( zWS9OSX8M)9rp3r53i+Np88dMiG$}i7jp*UPFFjp06i>i5x)~PKDsgO@E+w8h!EFAG ztT|>)r(&dw^T?l!G`3B3uS1C`0Jb*`ACxk=CO+g)bx-NSzi(sA6+_l;#pTsIHesYA zb46j)wj;eOLY%r?3+KiGTIpcZkt1b@IYw8~vdZVf{&<)YOWwOJ1bA}-t-Gi-(Rl>Vr zkj@03WvD>H#V)~rKT>qbU5PkNybJ;?1!h~yE0dMk`4!`KA_G215SqIxe|2}tN zpn4Ny6Gu8|e=q-VJR9N?Pje0VLM>k3&|N;d#zYerRdbd(F zqm2qGfObku`NW1^?N|kZvbTbdy;e*~Pd9L)25nYH3K5s4k%H~M{6pSGO+_5x zC5F{MUq#V0Mdu!S!eYvg*DxUo@jg=nbMlPXk*7y1|Vk zSbhyd@0cub+<5gd20q+^<`ZvP=BE`TOKMV+g_v`?XSfCteaO`9 zolA32IY&d4X@frO*Bq z5ZXe!n!qavtvS735S_8TFd(+Xx4yu5__qSUYzVFCy)+=a!n*??wj{R*z<4C~SpKmH zFYNvs5Ss$KNFcltyGnl{!*|MW5xVvEa!Yb%@b!bOtNSY_N$+MT|I+&M8$eR^YVz+D z{d31?rAES?59C*Ua}?vIL~~(KJmA>ei98MZ zs?4xgm7bo&ZP3UI`4c6>D5hd;&mFmERhzoX75pF>Qfq8l;ichk1>_fI4<1<+(X^S- z0b_8sRMHyCi!uVCUr7q=I;d*$B*RDZqxf`TR6rFPP5 zIEyi%7Uql(+Utcym=%5a_|k=(x^}tBzeJX4eE#%R-s2-4>KXJay2VQjh)Q#yMER^Y zClh`r`|BJ2_5GnyB=V;dh&6*&!L8n{9%W^UPTuWzZu+AJ_?yvd_hN_gNvSc|%7a>? z_;M4*AtYuac+o(~hz)1-x%Z*om-d_otkP)4!eJQ6HoLYomww`90i$;Ex~<`Hs)O}6 zIUJ{MPn-{<5AXC(Q%fAx2QD0dv!G>ZgOz5ByS{{HkJtn4SwDHy$`bh#)8m%WadBnN z?iFvf-$Its9hnNSXrB;>MQn;(-DB=#LgMzT0UJT#n>FFZL$;R=~~Q3 zWM?H**wWO}l|LnwqY>WlzSOauBl`1#ld49TjTL!25u}xUmEOljP3zMI6 zxU3xcdi4<~KQhhvc3gN!3R*O@ED*J+(h+FFT{50k|V))6ty|PIDjZ3zL@-H6p$X5~eGwD}q|FmHw@uywzSLm18p52|1 z2h}VrWUCu2SRw}%{cm?-`IoO3hsx)T{?@w#OiV4V4B9zW$L4_WeBC`VdYwA3Ll8jpfBFfrG~;1*-(XuGi4$pjCVBB}4lnH1M46*qN0?A|&>lH5mEp zLLs4@AM-$KGngSV_dCi7W*dL(_`~SnxQo)edHmecxe9A9&xe}GvUV@9Gp9>zsbZQH zQsP=)$F!FW+_|ypqi_^bQxlS_p!+p$eKqL+blogUr^o>A$=QW7CGHQ5X3^q?AJaC6 z1`i`-7Mjc1MH5z+UwD8>APNP>!rJH^^7+dGS_nIQ75?dst4pREta6^3Seed55IL`{ zql;qq0{;#HCqFl@xX_`ng#sUh={>XEJDYiN(?8+v5vMh73d_4nH#%5UeBOz4ykQNE z{}J8$N(Qjvg@CHx0i~tGsb-`kLXX>(mT)a<6TfxfysaFm{brTI}b$gjrM zeOMCn^s7dPdBqE>LrYU!p=6lW?kDX|!kA<0X4WBTV~}dXvX>Uiu_+&0vnvyG5V+RMAV$oRNBo&#GnEuc5!%ikH9`<=Jc{6TQMG;ISH$g3V zg4QYUr@3_K9)&-}4eMm~y4K|I1C_F=RNWS_`Jm3mV;mbOMX}az3N{i;m9U18vQ{vr zrYI-YT&>)7Op(utE2Pg$NO#g746qwQ^fTv?UDO z-0>w{SP|@r6Z+ie@vve-7g@QdA@1Y%)^n`ud;k@lA3#05L40I(XFR;J`i~ zA4@Ct->jA@hgsx*#BO$~hYu|Mrhf?~rNe9_T53<)#7zAuu!CYqR!HQO3a#lvYf0AC z>!6$6SX`f#!SImPl|BN4r^FmkVR9t!Wga#}U_oEvw6~yXtV(6|j4x_&^AYlrqPh<1 z(yfbL6=uN+YXS$KV?r5s?XzdjKWf6TJ2PvC%1*$08*rapy!K9R6a(9*+*%gv4=>Wg zfjkF|CCO?P-fAI36+=puOGRnuwkai_gfn*%j)o<6o9#ng@Doy;0B;>aH63dl1}rcN zZv-yqJXvB@^wu|rNO{#I-GX|fzjr?YrNHZSonZ!@3paQk+0!Sa2@={MYF9~diMh~7+Uh9BB;du#!$OlOpp*#X z5*Ydrd=SvY_&Aeg-EfBWRcMtm_QiM>y5mwW9BF6G_hgu&1W1?y@PMG{bI0wiIZhSD zJ5f}B-3$RaV}L}h-CZE=hC$UX`k-$gJ#j-kE+Oex`9fpD224%m1Pvp1SB&IAWQM}W z*BJ&C>!%UpGlULG601VuO9a#^k!c4Qb99rmgyMueh7Q_=M@<c( z;={=3Ffp_XOuIJ>tx=!2g$vBEKfc(ViQ;9N>NiYW$IHg11_w--WBQ7(&j)6e%p4>} ze;Xnn6Yi%V)OP43D7k9D4wz8f?$*=d`Fqexblwj~42C*nzHk>+oJB-{51vD2BB0-4 z2-vCT`;pBg%%ZYc?fjv_j3LSEsw&eP2z9VV*{|%oL3))7IhMGx zq0dQ|4&fvE2m~T!>DfW%`QYw03Sn{l;CY6AaAN=3_*3}=@VK6Q(sEgYv>iIRc%hwW5fytPU*mP_u)p5!@OedkF`@CXpym6cmpj}>DW&Af!ke_Q8J$ZAD-&lual>pQ zpng#Mm|-;{$EwE^8T(D_#+L_i*Z^yIXiI*VIsInpsSQT}+7&wZn-Wi?kh`Qo)^P{{ zEuYE_Mv%o|>D7C6ik6lTl3u@+j${^)@LQoD!*=A!doygocya(|bl)&d|ME(FO>;Ab z-W5t&1WVd~%VJz3AO+U7#M*@RKFB6!qfV;O2tJ+*EIujPU=k)qfY}Yz1t&y({EbpJ z5SVbww8s+}vVmwuE?yoFKO}}=9A>@fT7g{D_emyAaCmn->G1&LItjRvtrh3)VII*| z3~__PYVitP*6n)PIkEmpS^+PiyaZJJLQaEWyxt7@siab>6cBEdR`7&D?$S1i(k`8n z_-dX+Ch>GsxVt#E_lzqr|7TxXIES#oEd20L`k>i)*|~G1Y)Y`EZ#lW(hO$bI5t7kC z#!jWM%vGWhmcI|7wSB~4%Aoa$JQ{YtaoC}?S{9X(W5NfdTFj<9HS5NQ8Di?So1xWz z(Nu$31T-jUi*-wn+WWlqIF>Epljljq==PIt0Ngy{FXQ=MAc_6LM>{uLBKK?Lu+MW! z;G0?1kOf9x+^qE3i~O?xV;+Rb-|WR-N_<&4oM0{c+8+FDU7aW#enHL(d>L5TZH`u& zP;zHyi`to!3eYXFg2fY2nxCiWn<*CzF|i0}_9ftaw48P$vX1AR6%*QKPHX0svJPwJ z@6^5iTu(x66P&QQ=>CeHevUx_vy|dX@*}0o$kSBVpP@rTu}~d%K-9nUh*i(1H{nc*Dj~?1TtWsciWgD$ zBrj>-K`PxkF3apB^Bz7Xz1M9_)@-bAr>=1I%qV|P9oSW5bbnrOjX*H<## zcA~09QB=XsM3RQ*nCT!FD|E(cT#Glu%uk9`OtB;%r0^N?N8<}h+pqeja_-cVpGxk> zv!i3f8Qa2wte=MG5qR8N5z%lbBc{PV@8qK~p^EyB-uczDMm5-hp;nQjb>og6N*WsC z7Az)F#(WRLCYOD~2JXgup3Odw=-iyZQaZ;D?99L@wj)Lv+)uVNSQp_xpDQ+tVNR%N zx~kAUVvv?l3yAo9;gKT>ohJ`pzIF0?sAnuam7J(SJdNI@;;*YUPOO)GmAReiB z)l%Z%{+Q;tB^!KUTA!vj(d+9Hn0W+#G;KMM66e26bYf zXx8MiDM)j#M&_)faz&B5U2bHFY$!QIW0%pqrs6Q^VF!|m>22V76FqyOw2i}@UTLiQ zL+|}@nlzYYSR+HzPs#`-TX%B*#2LB}->||%#;B_kUSSN3>zdp;`CQ6#idBu6KfVFS zpTFHHgltDr;J!ihR=+2=p$>5+Q2fx3V-{ZFjNL84C0E{kpH$+Oqquh`Reqpkm35!R z!4<1?$*p=w7y&z?Vu&MNm)Koi*Hlf+a^}XBLza1<_?Z-w_dOcFlYx2RNqrjsaHZsS z)1i2~yBKwso%MmYFz=>hzo7i+OBWpw*zxB??#91eUhQZwQ(;g`268hfwfPy!{3wFq z8(APSb&F9!gizJ{E^utyOaFszoz#G3bl)*g&=4wZ5S4MR5~$3KEDx#&HEC@d_yrG- zvcfFJ(-k{q@0KCWs@yF3rB(9CbC{+&z*AM;d?@C;e_qiWMZX1S$0Udiu5TT2!hs!} zL;wAo+2Kt?P9SVp1QaP=2@=bvpRI}whCQ;TrBC85W2)2sW2hYHq9Nm`DatO0Wlwfd<86lk-*Rf$rLeU6RfiMdORNjX9u@Y4hk zA%D~}mnR8laOKkdO#cKC>=E1m(cUDfa*XYRqhqY3qU!*k2>HX{ezp(!{=1`3(Lm1$ zFAW-QYgEJX&r*HI!{WXCbaehJNCwJLPM|@=my9Bh5N_leVz$^%$GnQs;A@AMIl$!5 zO6&z1FBsj<9R@vJ=Mh5DiY6qV4+slEA9flX-<-sRe%c0kU9mG;YZT4OSk=-ESn4cK zj?Wr-5|?i^&XOMkuxsoGcBTJQE@2783t>{^0v?t{(CSI8(r|tYx65$E2ff&A2Whs1 zpM=D0;Z6YeXzS`+DSq-9Hw&t!x$NwdETN$>hnJ5tz)7CsGT*uFYu%NC20vKBq9 zh3wEh82;;*s0G=A4~4@P=-B-qi(yGOKRKD2+oIC3!XI1!O9{i4ob%|V*cSCG-MPVn z5A4qA66!yXwe^0dWyF-k924Vf1R&Lhd6M;I-z1sh}C*;M0z!s%=_t6U5>%-TL@h6Z&FKEj=4dP2j6L+t&`3lsHzK*p;Jd}Wv4MJ^;l zGuj^h0avk%ky?PIR5ofW=K-@dalWTDFulxhd>Ugb0!?kf#Gdups4#LiUtalW?xOv= zC9fE0))iQ*9Ogp%)}Tx4u{nC&atP`(sDw3soPKL%ax9x=yqf_n>Og@j zG0~P#m7zP$o#o`5r3OC|b>j*R+m5ue%jn6df-~F)m=tKC#GC7oub!f?KO54%2B0X4 zQWiy(kCoOJ=)o-?9KxamYu2x9MVy20fv2^ro_J}Sj^@EI++$30fnje!f^x7GHrbTH z)sJ%yaLRd2fhe!I*B6&}g#7NqcwW zioa*vq!|AS2|== zY%+4GH9_hv9$BEVoO$gSqcuZW$3Wzg}UF2mv=&96bptL z)O7Nl4U^%~ucC7w*M2p1B?G6YhKWU*uH!{Pwn7%37FmcMrvEBRY{h$z| zO&dSE=*nLuUH+mZAyFU6Wm#~Yh;~w(1Fx7E0&?pqIcA6JbN59l0~!olYvA1RHZ7!O z^p11CtIzS4c5;{F0WW{j7Q2U*r#nTb=;X792nVY>R-Qx}lEH=x+OL|aW75RvHgyV2 za#B$4ve1?+<%n)+T=rF9iW!Zt_B7Lt-wsZReQzNW?gPC=Y2`T7*~S+*H}dwCiWlv` z2`G1h0$SU2M6d32JIgS6^>5~~v*G=X=0e1jUl^%$`y{f&qW6MH^|Gd2>m-Zj1xl%L zI~Jybwhvs>DYq3Wp1*#N&P47x^H39OJ!hj-0Zj=n^`qBX6f{0TRxg6qR z{rapt!x&+Wpm;mtY1Ov_`RsdCo-d=SU~f)}waSu$iV{&emdhg+lcSGTFB`2;gc6hN zpMvP7S;8dhdRE^Nb+P_8GWCv@>84ck&a2N}OLHuM(x^&Kx|An#% zoOP1zx?PsW=9%F!mF}VP)>$yw8J!lv^V)E3k&^rgshaD8``aH`K{2G6HzgpTnaI8q zJTeGL3@#j5KxFr;9+_2q(hLEamC&uAR&0m%{Wx|&qEhdUWlhzF9q!S+a-Cc^l$!)P z$1rNZC~BsKN^K*un&*bXbhhW{ubsuX{hN^!Yc|%eosL>n_V*L9g!O#qU2P=LvMFo5QX1yJ>b zFPPZ{mv0D1KwbMxMBP{ch`ikBz%%3i*yt`IQ8qOcHLcDC7hBW8hO_?y|35Vtd&RfH ziQld2@$dC-wXDBUzW-3@{>7h*mKOMjjo?<`-4$d(`Mk-O*5RWfJRgR)LH9Qx>tA9JxYyRl^<3UQ-%Q5|k zS2@CpE~ou({{EP7$6Jrz)B1pK)+p=0)06+#9~5-4ur~ge#4%g-!f`_w`E!|Vty(*S zy^Dlj#zAW+gc1U#;S=W2^L{7uby5Gn9gdGs-tn@zjH8Fi~hu|iXp+*=Afhv;wPf!Le zBtxCBcM0#H*r7`Dy+n3i8Ny&iV60VSL#Z%FM7UddK@q`Zg8kLz5&Nd14KK@u=1fvG zx5mDw$B_8SgVh-BU0ol}`Doc#!-)<|5`f`gy3mH_l zLr&1yd375hChl$+)!EMN{sq&DpYgy`=+g-efAsx}mwX1S?L!R|%BMcRID(*dqPW(2 zqYx9vOv-l%5DctpCC~ysjC?eeBaFZ+A2#024?km2uJ-jCQ)vaP7JKQMd@6|*QREif z##B@)G8c!Px(J_XXG$FZTwzd^m>av?PK#U^#)=nAx(cOdEGZ9FFKH*-7DIz>Fw*YT zM_CY<2DziujJe~e885~q$0O`xR!_A4ibU*AxC7`-wE9m#tG($)mW*X)NQ^wayghT; zd4<1+oc??!2V?M2;{r6P&wK z3#85gEje5_y5!G4CvN_}vENF(4Kmn!VDlIE-f?|m{$0uGh$)6@AQH#fsYuCS3|?u` zZl-0a+WKK)P=eH7HNY@gO)`sqKNs>4d*|P5m&+(zzjUj z8N%C@oVsC(>nqZSniBLe>&bz8lFkZq=pkKr%VgcN%uTPbd21(x1ZdD7n!AQB3l*I> z&Gb3$!3qin1&1AyuJYjsJ5>g%U&AYcJ21!{{=p&k6MRk_+3>G$-jy7m0mR&>ia@I(o8U=Kd_=Egiamr)JRVORy06)&gnal8VNT%U z3#oBmCi_5jLeeQ9+;W7{M3O|JM6yHzLcadad{-cZNcEkRd#p5_5>N|(g`L(J`=u|W zXCONTNUWkB_3nrNGPVDYT8;m(Hzw};MiTLDJN|D;^Z#`t`S!iBH~40Le~(K1=cWHp z`xGnNI3cMZ``R{4m27B~dw(tWTRZ*<6qUgxf%?lQfLr)wh&{B7#Z_%8( zeSzp<4;u{6OwY0(fcyROgBZEXl37>wmtCAZ%=sUry=72jUAC@Ug}b}EySux)TjK5x zg}b{$;SPm66eL=>yE_!_UWadgy<>Op6E|-6y+2k&M*hjjHEhl~#(Z9v?>?J(E|)7? zf8OpnzZ^L&_40C=8G)6(O7Zr~My5A*<*<(IgDwiNIex|T@`-Fs*X|ryMMq#7USqMj zjnO|iXW#TIHc^%o&!2h(X-1*%kX`jpY-G2@$deQWPu2ucTaTUEy@Z z#Cr*D;4DAv7WiS7%9UrRu9(6|bWWtCJm|5jH3;HzSlX@a)<0b0jkWkq-TRo&$(Zv7 zNBRUH=ULQ*VJ}&$LBGexoksvUpf~uB z%)Sw!d7F$F3c7qQDGQ2t*YH>w${v*z-i{fX2?~e6+;#f^vl_XE(zKK4E^IZ+P04^f zhn`74YDSXQFny%eqWx_jL{Cy%uspsYY)U6Xg-F02#Vb)@0cW6#ez@MwTJ`&c*A=_m zFek{-pKq<;)fa2@j)QN6@pJNo7CX(9?M>&;?C7cBLz~WIjxX|z&jC^ph?eT$_olK$ ze-wFfkbi!YaQJ@c4y?vQqsRB>Ew6B}@-{g-xj*l!7G9J1EQ`X>W1BRQMH~U&9;{+kmaAEqL?$%nN@1b;~ex)P|_@ zxOe24E$T~{+Yz~Q@%_e{u>DeC>5ua|DTKT8UTWu&_W-MhF-0zTvy$5x7Q(e6;wWDQ^esZw0hjXTK z4wk{scbF?d&WM+Lzuv8P*zJW9XT}w$Geyga>AVdJCeAv&gNq1{Z6h7HgooWPdvuvj@gAx37m|(5ln!jB@~r42AEAe{nMR@zrsDY zZ=UDn^JWOb=Wr_ff3j})yZ~hf`0vS7l`V%^CA1F)v{jK|3ZmB?*Ny^=Qg_l9wFV&? z3Rx|pAlV4T=Ec(DCRys&PCVJ18Ow*WPpOSh`g9UMmwmE}v;EK8+{+xFkGJ=0Tp@UN zY!G+WWl?Q0>48Q#XV1x48UVYfAT6G9s?xTfp-AE@CW!${gv3$t8ruupiH9&33n|3G z^5gmR)%f)?0V`fhjZrbT@U~|Q2iw#{J$i>lA_v~wd!{+q_jCK>mqh$D3pgGpx2@Kf z_phRrg2yeJDw#J{jqe2uCgtDs!YsD&(<*Cx>bG)RGv3HM z_}vXLbsfJuXOKltFo1ib)WPd6_**d)#0!d*ZxWTdn|xzhQr6GO%I}jXajxKx&sFJY zT|pGP0m7Z6kwNr$G|NN%?b_l7!hzW&H*oFQBq!?hj8_%k3w5+D^KY#zb$zK$|14T~ zHgdIi9^9=F9F~6Rb`pBcE;_)($=0J2>S1~mzgTK{QsV+)S*-sWCLblU|NKj?uZP$v zc7KU0%?bqZFvE?^Sgqwt!3%zc4HTTDK!7B(B_s+#a&CQY z0*GIhATivH@eRx@`99YOlv6@1C^L@<@(INB1;IYZ_Lk8ddft16uMHC>_FUzEQ4Cfw{jdFv6 z^y`qsZ=uL<4o&Jq=oR~MghQz4=mI<;A2;BrlOKlU1)bHb2%f71h&`iaVLYP;Ma=26 zF4{X2ikb=m%?aeG>mRT*Q{+|PVY;x62e75w<6&++yg2}PUO9*S3FkT5KiasuPy+wU zK1?I2br_#@ofz@U7oq=O_W9c`HJYy;xRU4}Lpnb6UdhXGxg@rl#G#`9%XyYmBy zxf(>g3OVT;v!?X&CGz|FW*+ECH&RvwCDUn~gDGKYk}d&YDiLQLVK+2^{g-bef4=f7 zxm?!L{Zf$M6>)a;xX9&w^kaQw-uu~eJCyz90%#bNAwdyAXA0%9t&HA|gti|n)obLO z^s531CIdRhP)Emj(bSlkx{?bYD8V-xQv-x9n6Ow!TA^d+Mgd=5bD{SHQM@_6{S5kj>b!4Rls(Hq7FXmHh6p>_e8UjmEkF$c zH|k*@>=cF;H}L3ND%W;_Ey~?mDJ#XPse3Jej#-Rpl~U?+Q(+Ih6R7fP;|%V=Lu`LB zV9TBKdrTfxy96;aonrcafRH0_B(p=ep`>?a;kI)Q+lC^sv06`h{N71R>(lNpzxhR`lL(sN zQET(K#bLtlPJ-?lK0EArr7@V69(o(@RT^(>s|5P}6}g;pw9FD={FpVfNZ1^$_`!H-0s?_f7)Fzo0#piLlaXUC^)K?=g zbK2bcqX$qjKtw)tG2`#b31csyrsn!DY6jdVFBU7v=iLm`IakFAi};+GOBGz8Gn-`M zxtOW8x>@Al z(_XH4lwc1Zmj|Oy{)IbbPuK@TJixx+aaL_1V>EuXJD6>SyX^2kO#^-c)#1&?tuicb zco=N7dT~<}a4@_smNHbYap4_yTX86uOLjcE%C=aaK?xSGBni4h1uNPp>V9`$s^mY0 zMJK17q?l_x*4|@sE!ff9Q>Rx=kjUCK+e#zH;prmAA>i}+nNof86f^oATbXrgWBg|) z_*Y_m!A#=b9^_-Z5BJyx*=ed_@gxYm1syAM4KE9`y)4amH74mPO@W+&xq|YM6FFn< zZi$}6UW@odezNVt!pz4>GE4uXNW$+37+_QR=7}8ak=CR4#3nVmKSqGiE`(i)fQ-kB z{>)uV`}q)j9Fu3aa=t?@yvbZ;c4`-ftb$+c1X6h{?WHJ>3%{&Kh&2}}tN3FMW-xUN z$w9?}ez~`IAjx;T03DWY&=_k4TkS=IMB4Smn+{frsSaO?&7+6xG0`Z7f~rmQBZu8u zt)=H0SugH-F1t4{8J*BsIDOcO+5-={4h7g$-WF=n8qbmY#>_0&JM&~oBKKRbQrnX7 z4g5P1I|*J+?a?{EU7RcA-HJwyXZ-=y^in5YPU{zUN6E*YdEiNvqswE@YnMZWAL6!f zLqg%qmQ?LDCuX)JQ45q=gM7i}l9q%jol@9nar-5X+5t&Q?{BD~4g(PvpNO_v79Haa zGt2rO7LI`qi+TVuF6B{uB!xJ34Z1RJ1vFL`v?tNzmj2(tVSF;-e{*oh! zK=>qV#y&dRI!ko@GM;_=_mNkKPQ&UNT`^CU@xAxXlsXi~BHC)YLZ60C3j%(#b(t~U z{!tKnn=kO3w~jWTaf=8A_|{_t$g89uv3|r45&kN^fx+s>@#^`CFHZ>dec--A)AWDx z1ve>X)8U^s@Mujt}1UEnjdekWng6%y)>PWjn zh0}5&Xg2H%5Dss2WrN#dVr|q1tbv=?r$P|k;KdKVLLt1{ml&EN%tXuj|7f=o?*BPm zx;wJAtZ=4`SJhTWqszbDDW$0&bFZ#B%`dcjpb-?Uo zzjok!krBm}{CdR|VIlN7 z{0Hj2wy!H!L^PSC&8`3c5`CY(3Qc+b)aD5Iymb5@)m$ZKGgnuye_9j$V=bg% zBc3B^$U(Lfw>5IuAu60}Cbp*+~jw1J`x1O)k;y*oe)xvl9Qjk^R_7RUQDP zRzi5^Rebf-7w>l^_$2AsHDTLQAVs}U%4;z>?z72i!D7Mj^Zovo@e9Xp6rs<|Fv(!y z_dx-SS8YCQAyf#E2;*MGRifxJExz-9)~}zudJwKJq0Ph`W!T>V@@D7xi2Z!#+Li)% zH-HfJ+(D{296C7+?iT(j;0-ZhKrA!H-dDUKFq`BvAL0N~&%`oGua~5dbn-45N5zJ+ zqDD$`r4=_RY)#`1W4PfLTUpkyHLxJ3xskOfz@_RPbLwQ~FX&rK5&>~o3QO@ENG7o5jNsle-F$i; z6`=H7&ca>XP_m(tiY&q%_LQM7B;6z~42%9?vovuhMaVj{%U!B~KwfU+)u}i^oo1Yk zaS+fI$xLczQz{%N36a|tHV>GHp!I6r7?;Bk;*)+c9 zi1yIx8r$W^Kr~8@dDZs$J_z}wluw42c9j@2@uUT$WDyvo&hw?%a~ZM~uZo$gwiBi; zim!VFV6S=7#3fmM(;C9&Xl8b&Ts0fe{%v#(9?f`-4zT);$}+i|6LZT&zGH)piS-7r zo8+kn6vs|?)E+|9?GdjExdhX}%muH+Sj)>XK`zf2Zt(=#*UpdEgtV@Z`7+jB|Mc$$ z+38eI5pumICsO)}WH^ead=i${;&DIZG1s~{Bg@G=vxTZi?&EW;Qu2V1z}dr!z9qhC zDngX6s(Gvu3&^%l=R6-!by@pnM>uyEV?EQY?FX4IH0Jwm^R;yPr~W*w8z)l7`+V4M zlIu{YH$3m8)rSzFg$a}5hIz$?QiX5hMW#}tuBsJtE2rgi+hgTruGC(nY40r(3uq%W&mrcYNI(7-C+3NSj&eP|`bN#rTkGR4a_YpvG$Qt2gBu_r zCuVphglObif#%g^7%RKurrzcJi3ZX*ZnQUiVvRVSC!k&z(1cC3g%<= zGC&Z&1&G~If=%YHG}gqi{Q;k!Q_`TGB5D)l5facCL(~)B_KeJUdG&bUz|5VfjeiCw zAU=`&MR*mBYgr84EbP%a(S&{P5zg<3(WR+P#S~1Apg1B+MjYpgfJzTFH?6T>o}b7q zQ^Z=H!9TND*qJ!ndx7L2tauI4nHc4$_eWwvhM`olH2HbR3TSD0P$^hhfD z#J35m#-m_ipsD)HI1-aidk)4V&;xB}Y(s0TFqPI^Ni_N*7kq}d54?t02|D&*X4R&= zhM#}RDTr+#y1HtesIqX0s(;XuyIA`n&a031NQ^J|)x0lPs%`rm4N7yYqhk&V)l{9z zH%<}ru!*hFah{r{^%EEviY2>K0pra5$+Kk8Y|p+!xom2bh5k9Ex21yfJR)FRQTB&$ zUCO;^Ok9uLpE{Njx}L}Nj*sjTtt;=hR==#bj$i1ENZ!Pz^(DGNrhCwrj$9HjHgArZ zqPaQ6_=7hMND40QJgX^JR(glF{aFRc6Bu@b;Z@c~2=^bIe7r7kN?ca>qrtob-;YzK z=|ia2gatc~3$DXlLh`(-7eQY%zzE3NvwU$K@o;(Hjt7}_ zPKq8J;ePZ=%I{(s+(P{Ct@dk%m}J%GF>TQ&otfc3*vkD~M7q@t|3WbT*`U~=$hMQG zQPz-t$7BL?E3jTD*06*kV;8bjVN(v*=2)s@TQO@$pS%-&`uYMsYIFaUhh;BY;7;}P zixIB8>@V_=uoZ|DtVioU4>>MVe{T0LxBMU-(FLtN(OGdMn5$;)_n?NZpohzFMB0X~ zGa=%p(63?Rsv+RH<9_3~?xQ`a1mfb%8=sMQ_q4*KRD$>jyQB{%~p()(_Xvlt)NQJXtY=mX=oWTkgeu z5rET&LVJq=Lk-&ESZHdAj#IZrmwq{h=9noAEwkRZPc0+8X07%)J~Gkm2Z>89Z!M_< z6WFY(4V-XEDluJmW$RosI3%BfF7HZ8ets(zTq=-06!**0aDQ zd+E#8YT6o0RZ@)g0hNln)ryC-?8K_2DqI@XZ@kt|U$B14vJb~+MRcUdf0gT4@9YX zrh+|$MOWV{g{^|xqQFb++5VSaB%idPg;;vP7{Hb*uJ_E#FRzv(EVF=IfyebJC&yYb zju5N1$9F>jGtOZeGBLCp4Y3+fjFZcYKf`a5LY1m) z)qMCZl}3HwYt@Qr29~kGLj&phVc}e<>vdYfJ2zj}$I>&J!#%E24p^$ z-?7Ux`(cl2o&vY%mN#UpWDUFva+T2f3E3=3!3o%Og*1A$2V_(dl!qTFn)06}Sb+Xx z8}b2$ctL{Y854la*P{ok_$O*xG=_jkjZl#SC=qdPVv1Q0di8S6pA(CuyHC6eIejWI zfVCp&ikXg(Pq@Kg-VEj+P*-rilT={#a218TA}SZ?$&m#m7$A|;$FIjx81L;TkD3#L zk!do+?G6>3$}PY(U<2mhiAcdM5ETl@Yh#OJdJohx_vW(#i%noo+K%rdxX-ch z%r#0|S5N{IPBICJZD;Nhev(guL)PHo+9BJa4cUURmMV&<2ptjppFZ|q2%8po*PqFs zCv29Vp)dV!g#G6c+9yN6{gakt3seGx<9sq^ju4f_w_T z?Nw&Cm}x(}L-QZ&&@B`pMS`B6#`wUVf}VLu@DU>Uep! z&iaX9H~*WVWJDW{2BTeEpHQ$+2qVj*;abg##pwY|%wxoHPiNi#ZP#g`i?7?Jp&FLw zNE=dL6cL`(%5Vt^Jo}VOwrTIVbZ;x!PDJ$%Yy#>kK56hKg)~fN!K~MnEbYyceA|as zBw$605~NJ2#Y$rTDc-GUJo<;A?Bzg@K~bW30#nv$*BnX<|G2YGwDVQmczpzdxhCZ! z>`q!uvWu54P7sT7xRfXCAbuwnL&Xc~vKsrHDR*&zAcpxqr*k3HDSr@i^gC3Zu zre>G@wC`1eQ4Roh2)E3V$^ADtgLDUIX^~=wsQ+qtK)h4})TiZ3Kc9c+Z1rC)FJ@+I zW&v>h6jieY{N(^HmR64cFnogWUuUbKh8=6Qx<&dn_q)KKI>uZ zV_9_B(|-;Mpa|Z+elp8Qz!C3viEqP(Id>*}{kr|Xa1Hwr>R+KTw}`ALB#0_AHck8A)lz*kOC8uUh&KI`SDvF6AamhH>6%!mT( z1IhXb`m5_03!7T1Q=yV;E#3CS4@Mlo0>l@UL&1MzVDT{qs%Fem>&=ahxd{Tbr4<%2|C5kN|8& z0WSY&lcXjHe&XSD*%)j2NM>?Ck0oYKgbs`` zbn-d3CUue#OXOB*WPEa*6dBUW{E&~6f|1m#exNo7e(eT>ft_ zFHsp&01Bb;gGzzZ677Qe2I7EHS?#JsGB>agV-2=3GNloltu}=YG#l=N$m>0Q^-H;K z$r=GE+BKi-rhN3e=<4DB`Gsph0S^YlB!UEW7$xnS&7i*q`aW7Ut5_FrHtn*JQg*P$ z+PwZ_7MAl=$-cq_W!soiO>0e$xmFs$xuy)!t@RvgZO)tFx<#XrM+Apm7NPwvgxq5| z8ef(Dan9lR8%<8Ldf4I}o=izb2yb0GD+YQE40RW3*z2x;hkx>K*U+Y>u!U!N zv6HakLJmD~m~0yJ0-9x&L`mU6J`|cHDXL|2u59~RTKiLh9rw_QgiN`z9<@%(d(Sl! zt}FwrFvpoK+COs-^UK?t2SS{KHQTxId!|t((vsD0Rs?9rj5K%Z{baOOG8&`lti7fI zbaj|ebEfCSAy9zYH!zJ&LSi)mPchFBsdkj@aZn`FiJ9!uW2}aV@8%VX7&Z~zp#K_0 zPD5t#XP?%j{cJA&J7*vNnzR1fntzEw{++8zROKD!J}G~=y!VppNo*zLCBBf3Dmt)a z4DwXM%4BpU)WDL$-F+MrZs#TCU9nxmPgOK1u+vP!&5N>;<*Tf&;usu;5+i*=nxARUH0A0h z8mzo24%Xa-Rdq%WZSk7xl*6t3?-JH2AzA^x!cT7Q@gZYu+C^% zFcW%;>m^dRGK?1!q?OxA_D?_Y%S4Jo*fVGiAZj6Eg!yWmoRjsASs?bM`S9g!;_ko} zQJ8_%kFU>`+KH0|d7t%0Um;lUfl_=n=66u^cz!)SXx{oV?7bz1g?F;c&UI<+d zFvs2lH)S-&dCLWzc}hgJrKp%E)>{@pRIF2EWt9VLMA3V>ZE=Z%$qV4y zabd-C9OqhW{k>pOS$Rz|+}Kxv&CNQ!Qur8F2PqI}+kBl^s%9pZ4Ct zyTl8yGP|+tey7Eb{W0fB@j7Lf;g0nwEo_amI9e9G*072AgTvZEY7%tsLJ6i&&P z7Xlq0`j#>*{WP#+^~VoF!0jn>cxneW+|c_CribFv;@2wym*nNq4sNSKD0MjITaUy0 zi-+UP4mlK_LD(g}!S!n`usN@r@c6yM@XyTc2eds`7xY~BH`cqR?|BTp0?V>fuSRe* zA%rM#$OQR+;-L^x2uS#ReQpf@r+EA|Od$Uvy7T=r)Q>+O!Ts}_YTM9zbANeM&yHnoDiRt+!io?MO=C z*%tF$-pq^+}$j}9$GTDn9;^N|**;D3g6ZXpvsO3>0yYGIOz5$%y zwnJT-zzO*TuD7fH1o%US2T$&+P{G8qQ(Bn!Jewb8JM^@lU2^(AqxT~C5)LWwO&Vba z6F_vsxl3Ll<$ZFqP=() zgG+U#@2quDjx`B}{a17!qW(l9cvCh{1?neinO*3RV%v{ZikwyX&A0eFlPTIkJU$i>WLu z#&~FCHAtkysGVFgRQsk_9m6di-L@m!rxlm4P>5B3n3GPjG!|sT-U8G*cwAvQj5QJK zmVYdhNR-AvnYrMLsZ+00NO}W2b*P%7@3pdFwXrSlpp3XdaHurADx56@I0Qm4{qb}i zbatjQJDQVRFl0raq_ntpzf;aM(?m{q;`9}b!Q2&(LZzo@e>PXi4%?)qCv2Ho&cYRk z49+H?&qMowKS%kxCk*kbAS#~C7fy4K5=X$SeoD(2x5efO&(QJ-#jxT@r=RmFEvS5l zH;p^|7G{z04h80cfkTA4zojun8b-%H@fBC`Sc`@B+Z59~vgS*_K^%eaWQ<>Yw^`~s z^>bP-)>Wv*Q?2Ae_pygY-Hw6qXq#$~b-}ZvvsxgFP`42sI}cM*f$n2`nQCU>4jcMi zPv6cwapk3}b9sCSZ`H(?XR;^@GajQg6NKz6O6KUNizIl^5M!j0?T53w)tfper3n8drS8D zZYkMYu^Eo>4xO%Ru+jjX$**e@I1gC*pUSC2Ns#)oFC?0Zb??9?_^EP^c}oSQ-xH5M z_62!RvN3wK&dx*R94_t*EXgOo;OEeiRJ?IxJAeIQuDGbtW}HByr_=RJA>a5T9S9=K z?7{!N3_zo}B32N+nW>{Dly*jo_I_ebT`~wAr67ezi`~*iiXGmV47{W5FCW~u^ww)U zzg6j&rM29?U*sL(W1!Y?nJ`swGDs#CPd%+amF%s^e^ys@0sVclM<(%IR)%d9G^m^? z%hO=ma!sbnU56bxZh+T64ClM}nAuf)17a?Frr>l822jv_f(Vb^P-xrv5srlaYtT*! zm(N$5yI%ID-(NRd8ASGCkEJolQWt5bp_=c(?um*L2s*-wyvr$aB7YZXuX_-LXDloh zozjfaX9}w!o}Qx9k&E$;b#!9UU*_~h-D(wt*BTvg^F(Eyv$hF-ph`UjVjri|et00y zBgd@wVxVudK}Rdy`{M&T*yMq$;K{CiL_74Rop$9_&QFytP#lIN-fmg;jUALoOQ2n> z(d_AmXRSi*fhD#*krqZ1dbQ@YKazj6J(CoQ(Gedso3c7aVjvm}@_?UQRB8Q~cGZ&| zfB^pqFuBL#DI$69H}vP&;;DuYe87dOTCTs~$tv7uAgIc1iD&jBvJG4lZ37% z`5?WUiL!(>15(K)#mt1)K!yB)_}5~zr6D6G^*PnX^oft=|NmZ${*i~({T1hw(D>sg z+^W!9BBKO*Bh_0G&LC(=25hwpnTe$enG^qPb{riazohjb1aI{^6h(r}3?OcYvuws$ z%~Oq8XZLul<@h*Xc0T6$y+54529WcO5Cuo`xa!S1VQadM8!HT}qp|7DB?7zRelxMJ zPdlpi)5D8HFkvbB8iK*c(~_f!cJ%T8_?4^Ag1>U!o(F|>2H$Yrl47U0jNdbyirUsa zeNhf&vXo5&*M`awhF}9%;kM+_9}Xuw$ox%~5i1FP1qDurF(FO~ZE?@P9*nn^@mxOW zN34X{JdX#7OruT(ldA;SQbOLakIekHlS>aXL;llOg<~1Rn$#h=F(C|YP_Gm=Er?OA zdB?SY*r>2dVQ@Y3@g~WfO6ZB4M*o4SRg8 zo@%uVZINo&D1+s4(I&YJqP6ru_{UVsGu}K;j2n*Tsr~PS)`QGd<{y(n-?~2pKiKSQ zS5t)3eJ*fkaP~VUj6Q(U=9(|=$+Q3maA2a}82;jZOe1N|hWGS^N2nsWG)8MtvN!(E z@I9Wag+3~6$_`1?N4{+z5~X!gcIbG!0zm4{d0Qot&)Xl2i77Aa;(EM(WN;PT-2GcN z{%6Z3=@3-VSGti6E%*uwt6WJG2yl!()h0#dFO7GsTICZ)q4WMU zsm}=i>Y@b%8Bz$JTO?YjFJCzST^Chyc5wXbNcewLh;!9-RZ*GIK18b47+}%Ful@Qe z?Wi%X{4iw$HOfaY%<%|wT%pfJmR%cY;}k!T3EyD3qT*OzK8G&jEGoLFno@FC_Q|*n zC*Sv%E-wYY#+XpY!M0&ZGKK+nk|G7j0`jO~S2aVAA6_302dl-GgemBPHOf95TN+;?b;I4Z#twA|g z37m5} =l!zKC!^O9hzJYpk2x-BWjvBWfo9i^sp?L>Rk;D|uhUWs0TF1Z9t!ZoW6 zAA?$E8<4EsT4&k{HtoFF_inc$>rq@p9pZ|->RphlF6k@UHC_ahsud0+v^8=Jd@hETmtg1b6)iVMfn;W;fCqSn2Z2O@$h{0Oo3$>HyKSzy-k7G zu;M9neEoEyBxt$G>s1G5LUYX+he|9;EmwHA5C&RW0rJehr%!${LtvFN@ooHEN0G{A`4&w{Ka!6n&u54)c162t1SY*K|=Ak=oK z;#@_Z=)(To2>+qaR2m#?;Ad9%+_<}xvN@p8H@Hn9Y*RSa6dBgolv?Q$TtU%pfYqUu z57axd8F(kY|H%S5*}u{3bN@4h1Np6rY=wPRxwzt&&5Tl(w_S(4&UplsDp%v54`9MM z8R)U_d5I?4u?!h74rW^JoPE8(ABnQpF{ym6DQ|iq_$92LOc(hT`)OJZ0_He84O*?kfC zw}$2aUY7q)i2a@YCqC)7Y73wA+wuL0F0T+%pb&vgz!zfJuc< z<_1ZDzvOZ<>nzdL=B@4Qsun2Jg)57F7DP~rUz0S}Ru@`Y+~*it++Xc%(1V|++Ak;M zP()g8-nXVCKl!%|M|tl#K3jaR4|9fK0klth8flYcAQ&JTAS_>TzlQdrfnbA`qKq_& zfQ}WWkf@>w6u_WI)L_F}AR z5$K8;)eod;0SLy*>Px_2$TX<>MKnxJ25qqeQL^gRM>Xnbq4cDGXd-J#=c`H7$(UEI z@RA)ii9pjfHaNG0>DZXH#MMw%Gi0d?kI_P_&5T-$^aLK-r6f+tgRO&c%r(%XRMi7{ zTGY)6G-yq#6pSxZ3X&F3uT&I+$6M;p!Q7GBR-=q4ncHN|J6G7}J2Z@!kSDuYJS|}n zZ)a?ZVxP5zjB&czepP2SC*%Ziw8Wpc)+6akfwiJ!0*om|@?*K$^MuqSDox1d+Xhyx zPQPa2n}$Qp08V=X%{Qb#FAEptSvoWE3&bU%*G0ayqO`^KGG}f~UJ%J#eA0t~&X_fA z*#=vpH9qC{1|XND#gDTMkEm{h`HPTN+XCL*-wg!Cejp-wCiI3we}io1f%Xk4WA=TcJF0C;d8t9>y%cj2^g3k2q#j-O_|Q(4;@J z!FX`9_Ui|}(4A$oykhta0rQ&c9CVjG=*~LH9*)Q!_#;25y@EywjT3urcIBIUPIfg9 zi|sU3k7texKI?h0a8WjIiHk{xQpMcGsb{zNSA%aeM!H?5hH$TIGL=C+hmK?zh%dMZ ztyX4m<|U5vnwshkjy{!DD$BM*67bpU1`rq`$Z%H55adM;d)6_7MFRd^vswYTD_Nq6 z5{4stHVejZEH;+P(ms4xG!@W8yIg&z@Eqaat{=*Wdd23js4g6}qBX*N>#^u730lg1 zT}e1fIc#sAoB6C$YX)Ts<9b)YL&y>?FZ0|J_~VzN9Q=d17?6>+ zjEG&06+8*J5tc)FMV7FRe9s6pL3+F>?U16w5SxdaJ#D6d_=qf+>=#E>)mWL;2mZ>z z;v;|P8t@AX)G-!JUuK+Ed!x_t_jhK9Vxj*&z;v7c*(_z3Sl#=@EG(D>6PyN}L|1LL ztA~Q`!dO~l0Bb34D%dB5MJlQ~f*EfE(90KZW@?y5s+hM+D%L9*eAD6Dh8>2-++d?# zWpu_=apVm?Lw1)e!0C2VCc8sAKb`zZM{q=u$OU&cAN<;}tFEKl720=reaSp>xIub7 zL}YSI0r#K?^U7r&L$!*DO(!juMl(TpBmS-UVwIwB7#*Q_J_?vSvx#vv$nH?rOwZ=Y z5sb?azf5V-aqHG#jr+I&w%0rZe-02-W)Bg1JgApIMvER^pF;NloLM3Gh~4Fo>-me4 zbx@ig^r5o>a#evgXsceG^sDD^KbA6 z3>MeTaa0AdP8x1>iuSi4BBy+eJxf`P5q z=P+Bs8~%{4F`7G!FmLD|6xUVgJ;|3UPxgiTIL22xe!0NMt8SRb85>ex#T`EarM97L zv`sm#4|uNjP`>-`SB#;MR+|DnhJl>h@}c3LRlt6zgvSWr+S5Hu{7nXMF9PNx*k*^X zt3*f;WOMQp8BAp77tssw3kEvufBuYo$bq>Y1m?CKIK&mzU_8|u)kH^Vw?NvI0p972 z2Gf_q6OGWVp?K;y_lJ&wOQomWw+)z|(Oa?VtB%Z?O^~8r=_{`uuY91oGd0oE_?-iK!N(n6XY4y{?e_z z+KVySUOuZ?XMNN8`c8&LAt9opH+HX_HF7V>P6q8 zYB(|WGEvw++^xJ$`Ya9U{MzLEqta{n>aGaw>_ts~Vw6@9v5`TH%TL&`vmXcIR^gtW z+Wf{U?(8ynlt9z~#clDT!Ch}&Zc;bY*No>l+R&I2LUCEx<8v_U?nE%0Kxc1G)nzJQ z)Ud6swJmotF)Ur{ENfWYvvc&qc{t84*+GEn2AktwYtc|6O#(&j4s6%Mq=!%UHxa2~ zv)L`b916Ne3a)-D!PF0vXD&60El!m8c2B;0;i#1O`P<*(y6n{erkvxSTW8Vr3iN; zK`ACy&r&dplY}F~SlKLraI8s3OX-9v1z~L8ucg>p>1p5+DpI7CT&L`mrq9&EN$gbq zlZWp%RGHZ8Ih|($PFsX#i9Cd1XHofBLtvdTspWf|s+bWY;Z8Bf5Hd|B29lz?`Z<9j z{h_*=jQBmplDmgp_kdtjtzJR%69U+;R9edK6ev=oVGy4ES-9VrYl;zEzD>uwfvpHo zh#N-OgUa4A#zBZK;~<0E-)@^lC7=TAZ9CHJ)1OSJ<_B~jCeqU$e?bK#SIUi^HG!fTWnIG(L26e9NB$+l< zzLmodHw9=`=jB}z;JL?oN%`uqqD#c>UrpOu+=r6@=8H;aBw6@(PM0iY)NEh@Zgl!XzXVUCwx6tPxJe zI=)0WDhftVJVxtZ4&kU#!;ZaHrQWI1jp(o^uIZVyhBf8*F!TM5>{=~Eznw4gS?K)lljz%6(i92btOKO8_o$z=wz*m5_e~Ep2lT&FU(L4DyddE2u}JPJNqGFJ@Z~% zKp%kyOO4WWfEyhMgcYL7O0{yZB@TRriFY#ztFS9qPH|!?)wPvp>JjJlUFngyV3|GX zGs@^miR*hA!2lo(4Lp-y?qVfG{Qi*QA`&PqfFIk<4!~5*Qv)1E!#d+?v;#GZTpfvD zSA>*D9k*ne)Vk>Z-lI}*?u`i)0kM+nKr z_e(QG?B%UQU@f6hall7C1nVi+&(nOsadQ=Mr1&0_cVa*DW;8i`BK!yE*ZDjZ?G||JOoK z*1R9OLkF}BIk|@1t99fA(m7i!pgQYE4#bzzIWRR?ji~)qH?1i*Mx*1*LU#;5de^W61?yj z;}J9zl?sT2`3@#&xy(DMSb)6Y2nt$?2WSI#~KLd|-+vdb!C{@&IdUaq~)<AuSiYHa^oip6TVl;XJUAAmi{PXj}}k zhnH`;&Lf~CzYVe!6V0PPhBZM{@g8n`;M{!YX}pmsJ8-TzYZ8b@_rnOG`H*GbGH*^V zKTG}AYUDidSs(OgUhf?^*Soav>m%|c1a%o98nmC$@9=h%w<|unGe~U*qCZo>c-Ids zAsnf;-FBBcM+;(=RZuV8=t&?6M6M$OZuFo=-tJu8KJ|#d?>3^h%?Y*CC64D;Ll`;A zeB|$;xplaN;_*VD&U)*xW3H8vzQwad{_M?Q&*YP??C)%J{xBLjLGANhg}Ak60cRlW z-F1+)r(bO9vo_&rJ0W^%FSTE|nDXluRU*1kptH9-O z@9n-@pa1GHJGb#wQtgDzRsdG_3eDC@OD@o$+(}2iq(RhOOF^U^%YDQGKr5N)mBW$S zpi@@3+EEbK%d1|3d#YYlnFG#v<1c5f4{AtT8hMltusED0SPnytsI^}<5X&iFv|k3i zsI8VIIn#tUeQiUxMS0T;GR)tRx+(*QV2%it0389E;@QBi7 z>pA|plig?DXah`Yw`CP@UYaVYT59!10z=;I=}*J-@f{VBt#1G$1Cqoa=x6Nw5aD(8 zorq+rm>IK+yIs3Ges%mOkmRNYY=#;84!?+}%WJ*xSYi&F%ZPjwAVQg z!kI%#EnF{8aJUxO9qmS)VT4Zp4{PrLV_URsicGP+8Whw!tRd)6O3;(9-p$fRk% zi@A@eW3d(YqONqkXX$%3%D)0nPAgf9UsWC&@6)4Jkiua1%ttp0G1;60Xa!gja)88; zjpmst4%+)eevU_O>-n3I!$N*Nf{lw0)fTR+0M=-1OShB9=wy25%F%D4MUBrXYP&EO!BIOJ4-59$EZm9T5V zEP{>;^Cn_lhmDxe*aZguyrD**#&I@?F8x`*h5%x)mX&8soy+izcK=y^L zW~Oeikx6-%;sk+9;7G!*0nC#ic270ELUfiB5)S+QJ6!bU4#JM-bm0AkN{<=kB+TE) z@R?PV4odaE23S%=_|Ej6ggaN<)Ad9#eqnwX%s2hRvhNNT4YaD^?w$lU%tW)Uk&EE< z4)Gv6;EbiR$=3ykgp75<&eAp(z}r>w!UNv}GP+Wm9{9F`xvoeuA9tIA2i%N_JZ0dv z^E3}P3Dk`~>bq#I(s`WIo=rB=^0?8Rf%euI6{-D)x13cHtdXyJB_nUSz@%t_AU3`^$( zjp`Xog_-Za!hpm)Oz%L9^~d>zx-q5li6AGIKFB*DC-y3htki1Cfv_m%0=482sDh8k zOKH8g2@_WUS2ls$I89UrrzwgIJL}u|)y_h;T+7eb>CWmEc7=$?Vuz>~rn}GCjVoAj z+9Dj7pFudKQ^ON-$H*-zp$d9*Sde9wy&5jm0z3e;QLcSy4~PB`uJo|K@*zjgz- z_81Lh#m5nTvUS_0PY|F`q-3lqq%#3M*d8o-GF1%7MXJMD0SI61(RL&MB8LEE_xGD} z{?l0$WeCN3a|Kjo-pwV_47y13;8-;ht^7eI02-CgNB*iUt(C}v_0Dp+I4}vIB9%kF z+9lt!%&fE|=t(!Ho#$+8g|$k&3YQ*+=H~`(si#O&3s6BnHbwA!(~_o*p@qzM31s^P;b*Xp<3Qj(aQO#J|!jhq|$!D$rHM z>f_~{OCr1vgM#+Psv*y|qQ!Ifg}Y3qpz<7m3)caxjMdqTZ0xhRfGEw6=kF2FLj=|gw^R_? za=~B#xegpT%A+8Z1>$BI;glXt>?KfrgZau3DYtsk=Sma`R-r5$fvtdIl5l+6E&G}^^ChqUc)B&RZJK0k zK(>aZ=k7qbkSgaeT~JhNM@N5X`FH)JU>H-8_)NZ~)dk1d_69IMfzxeh7-O2t(2ylq zYv%!?8L5+L0_awh#is)0W!&vqAW25lN=1+TU`ENLMBO-Jx8SIIYKU)qx{=y-^G&LN z()GJC5#A;R2I0F{&PHWNTr8y}E9T?`t-LVy>8@?L!i;NX1U~1|ae0Q>L6P=xoyA2n zZ@HuTLhg!1IaYO1*8xMBkW0CSIphWN$^vX$6v2utZX_Z+BXqpBH%E!=P`JIcAxdM{ zZtoC5i7esxH|V%wG>niT;pm0M>j;kIUrcKvta$*=G@kS9AlxK|RLdxaPrl4e>8Nri z-K#KAi2D+#w4x)p{2KBiB4B4r#~VPf&;Z^rQj?+6vI>~~cQE*Fot`@eN_N|=1Xasb zsQ@pf5&+K<1*mO)nj#bg%%>yVeY(P=-12dnaw+KZMNV>}L`^)GNps9)&WcIdB?cy` zGe`%NGEB4KM1%XK%BnuAebq1yl9P&fSHM(81-NbD6MyNxav4rNtmphcsHVSNhR9wW z;X0C;1pZrM*j}$pH9s-*E5?k)|(t4kARsLK0_v4QJ>{S{4p$8 zhtkjeWO|-^9z@Oq&ij=3t5mpR{GI*TY@Q>bJ>v~)z%x4N5f7_3Qm!62mv^uPe7TM{ z9`N_cdD3@qwIMGs#b)RW-F^s_J`T2e&fr8|P>vUV^?utKS`Q}0TcY#H@82v`{4V~c z{6m#?^>YaPr@O4G296d6hSny+CO`7@pUIy8Xu$a2x->2*AO@7|SA#VX`#60A{AT2- zl|jL)tG!W#ChjB>NW9rWV0UtcC^q|0%yf^t-=7}60M_!T>1gDjXy9e*VwckrWm$b_ z>5x~+eNsm~1~gor^2!6x60Qs{J=WYzPYQbE>XsU}Erw9Z)oumKvv%_acWkDwd*M+)&D z$n*cX0ro#$z0iM&*8aICR-+*E(}aSO{b;pyU0JnSr-cabQU%f-aX9cq7{2Q%*H%zE zY%GEHofbyueh2PKjC$I{dt1g5BY59T)!!VZ3VapaEZuDWX<&G zO``2$WtM30U0M(CZF{XP)r$}}h%TFg>h?0Jj>l~Vlfc|0=T(Lxn;ALW!C2X;FJH8W z{59mjZeV^=jP%%$^h=OUfQ~=fHdrTgDvt>*_kv`uX0`CqkuV!ciKfoDAOtz3aTMQM zhtavu#L*_&xdUxiYA!xhx;7-^PuIC18guY(@{fzhxm!bVtMmE6OmQKh;>CHT8Hbr@ zS$xQQs0sosb42(?vwG`pVInTg!VFxx1y3N$Z!`nx?NKnWaK3*t6UZtXsrvmRricHL zLCgLBLZ6s{v$=`mf8PbC|GEvTQcBoj2w$R_776O{zsN-!Vj7672_T`nkdS~0x}#;N z`$aLvW}QfEibG7)c6I1u|IF6;OL;?~>y<|WlBrZohA5vT;>YtPN*=KDP~B5P$@f#P zOgqcTxy`Zl?0k;(@qI(>Gxok5$T;5}(D2Fr410!E`(O`|XqF+z@|tj`cXcn&SL8*3vYXGupP%t+J0ukEB(F@?ThFp zylnzu%*?@6Q;}M8Olq=3C~GO1o0QblT1m1LxihjaRpp`6Y9=Ex3=U(PXcQmnqQd~r zywQll>03{7pR=Av?EXdam-GzF3qLaUZBh1iW4UP{@uDtH5C%lmO@HmYAyEFD%=f|Q1DQ5{pe5qHEJjwVsdpvYv z;rT%|OhgSx4ss;fq6q)AJIn{9O?w4lfxt)#NQvgC^wfL<(O}vEeuY7wbV6!KR#TE` zhgslhrbqmpl^L1P${7;3`-1Q}67E2X188rGLn=tUBW%b$$DuugRJ^M**18GTfZnS{ zh&c!^_Mnt7?P5BkjneEEJFHY5)8FE8)fSkMMxl3rUZ+%2zhGvbv*2KTA_p)f(vW79L+Oi zEM%sso`;7D56ww{8zvjd$_s|zR6)qk>-M2blzokx&qN(rtJFcXxJv#kH$2?sGAcJk z3AjyRb<$LATa#-ht{U^?;Y>**4kuemuE$XRA;#HwdFEoo5Sl93-zEL4jHNsU*_#UW zK`##-EXaQb7%G32I7ohrTHo#uyR4hhx^7_Y2^hNTt z-w<@dZ$4zIa;RCJP&zcZ>OnO^KYseu@VfrK$O{pOsfN5?)dG^-LNU zoFOu(h4ml@fFY^vN(FtNh>uC$qCk06!71qJrNfC!O#t~k7-S-`Ni zAb(XRo1iG#3+2BNV#36<)*J!pP(N~EN%W0>l02-SW|L!*6uLT}kLYcQ61TJM69Aii z5isj?U!}6_kxfediFw7sLO*cei{K(PKSLQj_F6X}9Tc1pEF-(p5K~%j3S2|tBOJzs z@WSavpX%q`VB7*2c)@`+PW!?Rk7!?>3d|RGFS720%@m-KGOv2aXn8Gs^NHcdWs)_Td$ z&BuY7t!sZCTl@-ceQNOX&U{WAwUzlB;GJf@cAaK#edfAynEF1w9+>?ZKd?qgnL`yK zwc0nRjVLmWnT?{N(X3M%V7E-J`fC_%hpxMiW3{&eDJ{ZJ!;Q^0K_#4|Pj# zj(+<>!jF@SD#76$e-W7C#oyHjixG2E9xwnxkhi3kaIutLbaqn3_X#{9F}KPn$-HN0 z6J(0d*ves*-argrgvYjQxMo$1xmM&@mNh6rv!oDSsN zMY_C$VNx|~$CG2jv`M{iVJ9v-sXkvhg2q;?7jc1USy^7Y$gJS3G+R&AVrJH82n{~g za@BUrx=tWEF$=d`)JQ-r;xL+UMG7?;!-AL-gR5bs9?~L`SM^RvrLaJRSVoBD*G($3 z?7CbrX2KtGTR8$!Tx?+3A!)L~faVg)h)}EVr?6zSa5Zt~=xQ$(860pXh8nLNC5%d? z(;}5;8%P*!@)Mch0K*%kHM)BLhTeiFf|Mh7N0Osxhg+j6@3#cCsuvhsg329eLdsRT z|OP~|Qo*cK?{t~1c0PH_MWYWGmu24YEu?`}qdMD@@b?1s`E1&@L= zY6Z1w6ck9b{kSjG*c%v^{>i|LSl;^>kDkt_Kwqz#NBIhqNA(IMhKgf!Ayut(hpIHT zQ1vUM2imq87=c)WvV+M^`5t-QkK*J8$#&qxcO@Ohu;is)t$TWuEQ> zN?xWZ#g;4}2;FN)=6#Vf&rn1t@|7$R#!bg-@v?B)?XmdU-8*5GxE$clX#_*IDx>Jo zg?xuRzBu@T^~`I61#s%N6uxGtoCFVE7a%y>w%Omevi$<|^_j zc89k93yAii!OmF2qT2J&NNd+SiPNg%eINRWoS? z?VV{3c_L$KHtr>TZX?8kcz@2}4JmjwjmAX@_*Bo>O5*o8hqXkU(IzdV=W-A3VIdUz zz}S$=63aagO%(8Bo(T}H#p=;DmP0%fde}iJLb8S8fp{Q{Ux;vYwxQoJUfBvFH!H@m zexWuJD@&CFQl29XYF1+h+X{y-15p-^CAa`}7{?!t^8${L9g~#BxA9QE)0g1Cos)nD z>gp(oCslO+3K>My*g!ZbChv(~JSz-VXO#I!*yW7LEs2uT@8oCmB{K}o2Opn)S4wZ` z$!~&BV@amvh!uxwYE$%k+t-(Uo&-=j84!EeW4c5WUA-~`x@qkty|d*bGwjt{kP!G?_UeE{;7+~w4Z`t`{&^J|1Jz{3@vQ` z;kRmIZ((iXDF4$k{omzi%D)XdfL|d)fyWc>i!UW8Etar|jQg_>?48^`g5EwgOW!oz z%{Pbc4-6HM!Y{j?8~Du7p-*SpIi{*F!+xUvR-h_^#OLEFGL&iNbzU21}t z&2}VH(p(4e%X*d|z2W&PU6}l|{*hAM!-lhnOz_FgrQ_%jrf;HNU;6+TFWXZ(>NcO(F5dppTdYcxfu zyh2-bpsqKqQD$|w9Rs;ks|~w{l$*|wNxHW>wVhRoV}~*3W~%PWPN9)1x6KrZpNN<8 zF8wM_k0pDpZAqNEDdu6b9s?^@_x*}d?1pN3*1#}b-?GeHvlL8)l6$ty678BfIXAo6 zW+~g;PeZ_Jh-faoxW}eZc#Y?=#wwMS=K!PSQ!$jQip<)hYPQLz%YZtyr>V*d`MS+X z`x52Dn9OYKeuisT)(QG*sGK!5PZf#qIWg=OQ?@1pwroua4u@aa{p4e8L$LIVIR#u? z^;Eh6z>urg(-#}L-Y#uA>k}|$sR?^rg~k$xq>KRFdwaUdd<-6_1F^|8gLK=D6%_4$ zVIZ?Dd3zKf=%4m7eLxD(DDjE*x%zd_MzJe7+#W>+oY2@lZb;c5XFHumRVXdd1*3HH zqGYoI*;6Gec5iFRwgxYr-VLDQw0|nmYj2^Ee#UFAD zRT5u7EdtoEEHYG=y_X--#y$B{`8~yV!txt=!YxhV6@OC!afMf9&_P@gv_~QALHB~= zr%VweBls>D1V;N}ssTiJt1;|1&Bo90SUeFO;}WmH3uoZ+@QV-9A{j?+w1s6G1}O#3 z*Tmyh|2g)~{SwN}<&;wz%ux+BC;TZ?}i=xe9Wy#M_o&6ahW! zCr28f2NYWn@q|cv1S0Ufkk}SDX8YGC#-{%G4(W$DfcPN}{)6U#|95=&uO}pR$`M-x zCGD`v7xY ze%E-2RHY+va3oW0A5i@c2qh|biAbXnm#pzhl0d~pF7M`Rwxmn$1wYPr2Y^1ZZqOb3 z$bj6PEE-}Lc42LUS6V;ONRoLMIfi=dufh0uhy&ay$AjS@D8U;)3V!5aAvy0MxxMyb z`!vH009c89-KFd9GLD!V2HXkD617!|UG0`;QNb2WfuxjR5Bl#YR4a)Z4b_?D6%iW| zC(70Z`xTL}V^|hDnv|GM-I7j&^iH3Yaw4wqB$xrosyqQ7R(ds8ZLO;IEdEStIZT(K z86*?r>3W1)#HEoqDpi%dmKM|%&_6wv)R7DqjaKQF3-;P^D|(KQ zTs17FEsYgRjSkue=>_R&(V99=X*P?^p8PUOe;rvaF)^I8c#K6`%$Qv9ZRs#vrj|Ob z#C<()Ea8ygck62+Z{{W1UzxeuC~r6g>A|x>tv0G>TZyinAqQBYUk?4;m~8EF%pj^U zVh_IPz~pfTJ$F{F6-O-PVU}~H5tfAB-9j&Cez#Zd8+jN03RNm3r*KCkJJY8~A1QqQbHJm4V9h)qYx*k(Z|CC&5JsOj;44;GJ*-(b!BVu zl*yr>yFk^P7iRO#nzC;N*Xy=ddDnTx0Hv_xkT19s+!KeM zdBIZ*DbjKECFMOk(3y2R{W)?HZ~xn)6=y9M5>n@cx~5)0j{nTK6wOmplju6ieWS_C0WRs)(!5*=mM_D_z3_Qy7y}j@Wsq%<~OG-iCxebo?x!j7~Ze5 zp<4(O<8f@DCVI{xte=MI6=erP-75dRgdg{(d&*_F8(Os7E33XSIi|i8W>hq zh`eJeFs}AZ^u_gNVR%BA&}NYS(YT;}=ZYkLm3?fhmw<`jeh5BoBPdAM#s9YMXgS1fJ#DIStJ1NJ3tv*_>M@bPQd!?5vncE)e&y?oncD)kh$FI&Ra_-;o@F}w^fEm}Mi)@SEG zz|>BHczuD>*MoLX4z_y&!?}RsmK{fZTn3B&>E-|FCIDAq`Dk*7|Cp>0xMu7K~l?Kp8vym<_L!Ad8ErWDL@Q z^ee^OAam}?EOF7tv_<84@>Dsh)Iy#Vh2p7viBj%q1CEQCM>Vm~!MYhaAAFMf=o@sX zq0x8vfO(}jeKnjTo^LTHAfE(?1AVmzqqMRpoJ~TUit%A<1Q*(~{hA=C3iOM7+x|Z9 zP^_pUGOd`c80_zZS9&ywwLDKMj>X8J3YPVAo!s@y?c-ty5HbZ zN+k-^9*ySQGJ~swUT1Eew}A%%YY$t#`%l+And6Ky>b;eN>OF}*Zf!?eQu}PNY%M8dDKC6!P2i)xpVQqTmDY6{F zRxNrYZoy2XYpxhaF4uip{`^1uJO0r*lY2k8oALt+$DbA3e?VOSJ1|784a}T~1?}vt zO$==1?EkTWBK`xNpS9~h^HPhlmD|sZnH@F>rlpByesiio`S?f)Jz&i|$Q2|_Y#Gg~ zWXs69tz*}8S4K7~Q=nI+575^DcqrPE+7dmTsl8#rIhjWKfP(_74ET;XpPSsCIgXdF zx4X4Hz-~ZWeIO^y>7hk?UyP%6{rTrCOzM3aV9f5C=iP~Yo$fNzTPyN2@{9IzBZV<= zFy7(BSSe0PPTEWL)w_gHIgC(Nwp!XPm@rDO53sh)giDRqa449e*2`CJOYp#ht6!Q| zv^+OlskorEw|ZKm#738N?3UpwU>S=e_`XKM?IPEp=1*okyWY{*tmJ- z;)t`<$53JOGS~fU43>sftTSF=Jdo)Q(nIHDmg{W}L1Gzje76BrSfDnI=?Hur?`rZ< z>Y=e}GhTu86t`|1>4@1W+}tR}(?Igp?pTC6XtPp@N{%3<8bY7?ZA4ae#sAV&5ogIb zRutD?nmI!{>P-gfwOUvpt&+uh@cLgE{JS zvQGFjvdfH7n)fu59>=4w7G@Lnre%ba#GbG%C$55fXu|A4G3#E`NUDK6!3XA&%c~I2 zg;tC-5!EAUaZF`E6buiEuw07ou-5WkJLg}5^9d95q5Du%iy<>9d5_eGh zMiWM6@9#=fG1oKf(4gNrTIidf8;seRL~ec6A9&zo!B0{uvChTS2B(Pksy`rh+0_xf;TSl5u|j+6#y3_ zi|=N9Vs38goH>DG$nJCD;P%@YebGh(Qoq4Jv#VXeMTqzJLnJbLrGQ8iex_+!vR4^M z4q54A%@X_tD6?=dM5$AXcdURrjxX~o@kRVe)L5!5 zX(V#BA?LDOTig(O_QB}|?+L?GFjp-QL*-l*iLt#v>N%c4qKGfqfa)Ejiy*5kSqr(e}qAO3cN;(OAUM(a!OIj0HM!$Ujbo zZOzm*RD=+eP^f~0`SkkkR0kywDb_$1$PjTtT+~~(W|A;QRh{(O_}ZXOHr zCsa44FS{8WFS|@^X1~Yg>h=J=2dl%%M7YPyA%h!`!0rc!+QZU<2cE>mCcqBddFfeE zY@9AUZAgk?cQmDxxn_PXTIy+*S(o4&)@2Ec`l*unsOhjFxug)|bldZftH~%KMm~`* zGoEWa_kEmpUP=i_1x zN7!a4J~RmJujIX@D%v}CJB@Awu(Nh#QF?y(EQFwXp$Wo7c|9(Lzn|(9fD^$>*_dj= z)%v)*$38PZN8;!l>_>e-$Lt=~gOg)F!}Mx`dA^4l61M}!C$fgNCS%_~nKLpz`?u_X zYR*_+_=63mA8e@o-@t~PspK{nPTW|xPkDNMfZn5lL2Mq~ zWA=c-2|(`*7yCg$4uapZ`9bb!cTO8o(R7*%4L=?A@uO{9G76S!J^WR4i|QtkJqRhX zIKrNCES{n^WC$v#W74{Bvg4_RorK3#0d*$ZELVA7r=47vx=Oj?h?3V)mexSm=x!R( zK@x+$G?vhOkstCAASPC%XTyaS9(_cT3SBfVl*d|XRwigu1&`N<@D|Kv8@G~5eH4P@ zB?N(9=>Sp%&8qi~ue_@R$x(6Xt_S+89VlDcxAX%no~+-l*ErJlO}_aFVcbw1Ka_pZ`G#&J6PRjX5K*Vx5#aa8N2S7 zQT1<&jOk*r-y6q-y&i_~0=a5US0)>=)xMftK)5w}zl74xx`dy(L(pF*^y4LN*R}NP zqaeFQ9O2qA46}^5Mkh?&@r8i@U2D-_eaPzZL-Txq0szST-++bEkE8y7FBxi-wd9uh zQGUoCgM4QblM!qL1l8*sLLJ&eP~mCO2#1&m3~6tw9f|Wrn=IM1pIK|;;4;F);73hA zp`x^!jhGf8%UQPUl&dY{HoI<**9VL~$OP7>y-;Axoz6$5yktI%y0-EJYs`fN7FHyg zIhkR?A*g7OVP+mxbl@3o$ebn|$BAh@zDCACGlA$7s}x4ZNoBYp91Y?;g64n$#maS_ zIp>!>w*hN4jnrlW_Nb}Q;`e;DEreH7X}Qy8#RL}hvWCySgD@^yzU6?#-932eV8XS1$or>SRB{#L`n3LUVEn&QF#>hGuF>x?@3NNejmD+ixLEqvWdy8@ z{DwXw&>Uoo=yt+C%obBACRwc4WsIlpz138YWW_R~$7Sa*Y|M7WDD9cNCb49dE-ALU zDFw-mr9kYcKvjuOvVR|p%T)J6!_(bQ2K5`iV-sF|F~#M5si^VNb4qHY*o94h*LrDG z`2s>GLt6O>rO^L9tq0yQ|NAa42GY>h(bUtTLp1&722%+kji|mg<}>0f6YMtY4t+Pu zs>b9)w?`LQ@3_a9E*LOp_m0q4jdv`6yg=;b(OUEeI?61cPKs=NfdWi6;X8Fe>f_|j zKM1dhZAKq{?hfKSXWt;*Cg7T#%xmTk#*ee|zrusp9^JbH833U3ht%i%KZM6WOQdTp z4|nV_m%IhgghH1oPVX9<2~rDyWO0dA6Afl~NJf!G5DJY%RCh?2ffBT?yPH6ioGO{j zT#KbrnWR>W%hvM*RtuZ4Xr(fVxMqu_pD$T$JojF5bZ-)v``DPEuL7keIY0D1d@^$~ zUVhJHz3g^-+y;Cdr|G_v8&zk`HQ&v6OF?rDw<$KoWNKAx$j-o7x+*qBWp0&sx})_g9r@}N857L>tf`K0mo zhi|=0`dHS?mAV(x+7R$%ADJtDr8lbrw`sa^T1|DrIe6MAy@lo*5o6!-o_)lbqR6Yx z(50XYnaVj7;ZjGpA%zcBaxXS)MH3`7AV3397}!|FcrNE5Ua+Z8(3b zO8JZ1n8UDIRB(Mq`ht8|sqv%IW){6PMCT-0Z{M1%9=M8dRXDlf~ovAf+Pz;FH;<`Wv9?=rp-?Pu^>!rVFE2^YOX4VMj<4l)n==~Tl!M%Ifx9l z%3Q5yeG-kLy^wDGpQ&puKyxjy0_dow2bk}0?~W7_FU+muQWgMR#L<~bKsANLlyqQl z)V1-85)~KH!wPHhC*bS~QoEE~rt*J&1@6e~8%2rOXQvu7xuy_t=$D7{XXFRaa${FXH8nr z(Y=aktTq)26sZWRCKx&PL{&oK74^dBbDXYF>9-7RzmL=7cDz@YP>w5W+PEr-5~J1W zOlFxSHw=bDSNsEPl&EaYqXK*hZ0dlORwIcrfdVmQUuKWW0{<{caa%;{Po0efGXW{V zR=z3UPCg)DPJMtvKnuT`oXX}h%I4kn8#SdfX%!J(WGx6*O{Yva^jDf$jMLH}vM4#d zQRH^n0a_GGT&jm4CS^nhbJ@W@7I=-a4tyJA;vTP+XDVc#UU~XT;0beb7gLf35-ZEP zan^7#oxhEiT+p?~!CN!iuxNZdTzVigBtFQwX{x1&zTB)(yNcYjrtM6eUgI@?B@|t{ zoS~h>I!hz^Vu$Oq>o74&7j{?XFgkE<63naw=x+Skheexd+PJ>AlWOuEFB*>lSRubE z)k}&gsDLS>6n}4c7nVCqg6w(}HM0iiq~^&G69v{sdhfj^x56>9dEOd2|5Djb+JT1AI&9%fl=LcjCQ8gW_C*yo;K=N9c46}k2UR*N2v+-P$*~L`uPGIS&Xqb= zbJfIXtx}j;L!AhxcG!>?$uO{b5IS>GL`>LwsmQ(K8Oz;o4HD>PGJ?HCs-9Z=ePqDP zCLMe_gzhVD3YB*fMZjY=DjeKhnEi2X9>19%g=Q6J(I5iQUNEjpdBhfsvvHpqlZTTdUgXE{e>K6+6}AR& z3|pvR_L(uxDCx!y4pc%jgui#4_QOjRJ)b1mrE{XS%n)9K^iZe?CG8(D3Zt~A-Amsn zpgbGLbaM-Mw*?M@8eL$9GpuqyW$2O}i_J~=k4d|mZ|Pt@Ww?$h)>W6jm&vhw z1xf{7r0(#cK2B#okR|?eOhE&(EN)DQ;qtrX+=$xD^g~fT%d6*h4!8`a139C|C^8^bhLf|v-DXK6>b=Fck8N60`sgX|>PjW7A z1Us{IiXT&+zEUrVStPlhUeTO$8e(?Q=~s`PCe(6BRZh$BHalE8>trjJ#pV(HVzaD< zh(E5)8gj0;%5k^1;(Pp?p>l(FXR)VTl)9rfSshcul5d~ZFiJmqbqaZ*A9Y4srkA=2y^KP*uVM5GjPzTZLqHJ*#!8O|v40N~gBk=MpEl z<)5%>YFxoUFXmxPdJ5k%Dt=X~EnF-lR$L1PU!yC#+Al$qd02HGD7`W?WzTiyZ>5$V zF`A@S00wR*q)T%fP|V(+5VGeQBn3-^!AX=s;jt57N9`S%(?;xAxPE>nzKM>Q(hWn8BDRbwwc$()kGrF5UVDg`JPhlHr{KdbM@ zy)pI#5!i90F&6fQU-f?@h>)o=Wkh%vu71e2}6Rm6#n{CM5vv)- zPmUa=-OI%Y*gE6TtYJ&vry4{|x38nvv!;$8SwbUVWNC3dvuRDF!~(S}28


    ADO#&10yxQRUoW931#`gh8M`CsLc^k;d9z{`w+VPGJOs#Vm`H^{v0 zRN7I86cP4^5FxoVX$6=Ve4RN3kUe3%`c-}Yf-UEL)4gFF=|+PL2ICx`nU?8w&TqEA zo~HMyNaYnoc- z0bmHhUBfBGc{ikCTG};@_+xTeK+a$U#DXEmED4-P*Tp%00G4V2>G=`M^Sytl^itg= zG*@0I$8>vsOOxhS6lWVQ47?_A{b&+CpTq7H` zOqPi+J!ScFKDbHBb|M)yTE{68C@gnat90GQkWqSZ-yt=N=Q&sc)kknIjYTKBoZ909 z9Il(g3lFb~Y+VS6v*GI!A^nabQq$m^A0YL7NI|AT2?Nue19B(;=n3_h1t^)q`B5}!^)*bla`)r<%M=S}jBLP?HOI4v91CC+Z zDV)dy46WP=i*uO{tQ#|G7C`;kr_nee%2ENo?lFlp2dfmXXNJ7)achQsJj_OjbEi$1 zvqO$*xV*_Tf&u?=H^(^TX!t01A@rCgiG?%7)aK@vL@dcQ%rr2RSUxWk?-7tZ8grU+ zh9(=4hm>;nA;O#zpDAetaz)G<>r(oK((_7h@`X_C34FVzBf6@(Bk%fbk(erOL*y#Y zU=ZUt!Td3b7+yV_RcUHt7yHYL?aY9rMcwm1MxkBlmAL&uMGOlf3jfDFJO2&FvHZmq zGF8t0;0nq#G7FG2C{OQE8Z5QpWZnu2L6m(!r4o%2-^n(>S?)J!T*A4~^ajL}h@ug7 znXwG;+C;(RG~3SnTxLC3Z$DUnd_G9Adqbfp-QA7B3RpQDm_vWCrw=|E%C`sSv{@CN z7oHHux-!MCInwR!DGp|aX9%nt4~)dJoqu{S3OFaJSd+$91KYB_u&Hbts-?|##Zt1=p;Sb6BjQuGO+crV1GS?{G(UD zI=Dg3(Bz|vr%ehzy&#fgXGms)o?)BDO^cvk1-Q&7)@NbX}Gd)%;1=~ zA$EjYpd(Ycg0cvW*E$UQ^$}*L*3OWP*@7O>@`$fr(}!TsBJeH05M3 zCnTG;P<92a00^8_N4p{F;`a2)QVXpA{-uReuoga<@stEqql1WJy|S7OekNo`(6Tj- z9f)cYwb9Bh&b|Q+NM%nLx^_o=%&j4_l3T2&nC8wzMH{DV%}^GnV2}Q9;ZufAO_nK3 z3XrzwDjp8=k;VrtkrerDs#u7lF=ofj7?8 z=^{{K2%6<(R2Gs(%3_-Rm?CP??ZwN6=C_%f>-K?Nw=K*yL}x>=?Imm!C~FE)tOB(} z-X0bbaTuX-2cLJnPGJ?Yn4GPoG9Q_TE^M}N)md(Wtk!3t0pS<`Zjp7^7J3f_NkX_4 zv*zc6z?rX-z(!Jf7QXBdQy=aZEG#q8VDyRL9cYvShweQt?9$>x#hP5w5F22galh(H zre*qDfTscsp_TyuB^6?0@1#6_WKQEOC6rsq{X1_%E?La19GyoaOui#UYE{;wRH((G zxv}ZwT0>@AZVT#de755a8VihNwcz}9^Ns*^#2==T?e8ccdFFi;O==AV&j^lA#GRn_ zJffwD1tl;KSKl#A$>G9}(DnUeUc#0)>0Kx2(C&Wo&{+RGH04iL%Ai+nn@)cGuw1pA zdsZx*QMLJ6(=;wf8!(Rmg$EZLur0V`_2Z$@Oevn~RGV4_3eNY9U}7p?CR6wvmSl4a z_rZF4!s@T|6nJ%@c&MgM)w{l^H=H7~)yRe@GQOIX`fyEPtBCd?Oh(WpC3Yx{h=#We z(uvY6D47>Xt9?8K%ZGhjuS}lA(LW!@I<^O#6Zzy58g~SwOf0ief8dG@LldH#=umuE zI98!J;~XcgNx8#l-$CLQ_fr?g zY^0e5F_@s(*Y7I;L&rd0gZxxBI%#2m%I^DSRLb|4QS6WzugZ6OjBRM{ zc`#Yk)(j;}4LU0#l?uTWvjb(MbRQ{BM_xcViJODS5TZLaFAWz2%+`;2mUFM@W=X5Y z&BugR6PhxW!z1f6TCV_0oAQjj8(7~&=9ptU6|@;{yFJ>%k5x_LUrb8Z)_9^dS|C59Rj(7`DK^Ii(Z<27fzgX4^C{~BepU%bXAc6*$=tzx# z?4N+Xim3t%i4mMAnG{}Jtuov-8gEUYK4EKYN7JL;4IVBELDVHdJb==cw5hS2S>ra5 zR+o4A^mKa$?MJ{zr;oEhpJ?CPCx_M~TdqB{)fk2VPeDU*u0ciiqcWIWh0fUFo9J90 zII!&;+QB8l;H0_?D!M9>2<{*;`?47iQsgXS;Kt|hGy+Wk?iM9xr!k(=e}n9_?md)e zOpXyFoPcaVMy$++gA2N3=g&shG5vZ~1tvN-((VSXSS```5Wx4>gfF+m^C;hsIocs| zLO(bBy!^C-D&`zFEwhB6D$DW_c1@ih%@xH&hsF?+9k|w_BOwfUq(QF=;lYN;ZbnRu zL^A{ym563bbXBL&l<<!k9qm}G8RzBa&L{!;RD_b$xvrAX z0ey?t{fa6fBUQP~y?OnpEal6umIhv?wXU_JVvj#`Tko&63N?AfgT;ly3c+Yo5?;s| zMXVrGO1RXAwDa^f-f5R}b_C3EE>I463teG1htCOqU^LevYhI(S{n-12*gGm8cO40P zRcR(`;EASV-@b|tc}2G{s!${PaVm3j`v6A|YQePJs(z!$1m*7P6r%GVukdwsLtMdv z%B<)&%Z&Z6GPAP!)$1iJe72D_oYNwzPz|&tY_;hR5QSrBS1i`hp(=kcku4lf9G6|p zL_evTMnYv;B$^~5U)R0WjvDScZJXe~J6&USdbxhY@ss15$O}#9kZv~FY7FMZRI@g& zvD~Uepgmu(-gWraF{=RweDM%ty5i!aO zf9hd!4MV~kJr$f#jJ_h;xJs&qF+bikJ?Cr;uZ<{h)vqk;Bu%mOEb+{=ZnxrT zPyk*{Q6vlo61Kn-W%tD3P*9tZ7F(P@O#0l>eP^=l!K!qiw|6Ej zr~?Dshr|`~`%C4IAF?0TLwBWFSqv#9eIroTOIV(iGrmq#bEC;BtRd@(i{~e9o`NiuD_q=1E{r>Z05TJTPoG^;7kGw6$E~LC>b4lK zB{9yqJDj7%bD)%z5n7HV#wZ{sV0 zT((vL^?FUd?{ zV%^YutVp!PVdxE19ch7LqrzJhmP9ktutOV5PDKR(^fiVtRpP5+CwJ2b|LL@Gf%%Yz z01>tL$4I&;z-_(c$2cIpP?2Uudw}Yl8%1dQJ1y8$jR&C$G|Le$iKkKyp=}SiFk)WF zeRIZGF{y+Zn2vv(m{b$PG$iP>ia~hrJAD!7fAvLrcBn$guk`vz7uHf0S`9SECH8)l z51WAlefrAj8sro|axP7{lXosw+gB^2HhR7plBC{mLSKmBn7vJ)D6DTzNl(ihdvbMs zIj!0d^aXPdb%hnvX)qp*w=zkzZ;!+))^e5KZcSwnqc=xP0+8bsXA$!%z-B9OthGnP5RcKhy z;Gg9qUeLe$*i;BDJ%)7vFWnQ6mvO@BB@RNJRbBx-DFq0fw z8Hb=n<6@1$XF#L>5F{b7)@bZt|r2gJIgwP@SWg@LU<8qQ~ihT8|WOTAJ#Z;@WT*)cumV>swq@dtcEjdq{| zSLbS|yMhfgd`QVK7(;9(_YjdJgc&vBBC_wE5TgPgO{SpNiGgl#{PcvxFcL}_zl7F! z5Ry3XHbw4LsXrjvz??@s){N@*z|!&YA(Yqa?hK}Ls2b%vYxvx_VG^is5rH90B_z0H zBGEQ19-zQWw1=piG5gsK-fPL{2|St>T&@_L4-FvPQA2F6;&{KJ#}D=HbqEIXIF*eZ zY1A|i?j56$69msNtMod6Jx*Ayimua7Rqcv^EDHqz(rCy#4{p{_sy0EFOd*9=5wTS= zQ%!A%!1Fi&Wnm}i~`9Cs6Zy8N z>QT!NUmBKiiNm%_v*DIwI2@Sa~vG>y%|)RpC)`f?wWzQaQ@h5aehD zzivBN<#jq=JrM*gtXS+7hkUzVN@XO_)eC2OSsVaKr}m*w$#3tC0yc$?p6M+CFjL-8 zK%#`X1a%6hb5qlBuS?7fCle{x$6=(C>Mq($)B2`FcBRjUy1}^$8xhxIm;fmpeZj){ zw0zd$QKW8EF&>I$F||JB)RohZo*Fy*POW_V{KDm zEI7J574|+e@YSff0hXasd?w~Gw{v@HS7_wXk8Nfh=Mka~qnT_x=MlSneKhl6eDIg} zC+m8d2AtU%w`*7ceHf$$Ob#_;WE>Hrax4YGcVdyx1J#*~?|OxI1YzOEx&)(o>^2m( z^6>b=+LE9ZxTV^>IdkLtoE_EW`8!A%f^zkVu6ftzmnI}C}xXF zN`20qL&eYt+pli$fSq5~Y7yRo_NFz!WqnmFtG{mhsYlhZVU5rYq(ZpdghShq*aWjA z9ifYgDNzr@j-e1hziQ!6AAv?@6b=%CIsDyxK7A0R4+}e) zX;M(WIH?p`Qi?e%2u_}F65rvfR2FbYsDBwpH1Nx<_Cd#^j4XL7rpS8Z&30&|a) zz<|&wH-wUTYpYuAw+E+Y|23St9I6>@GpnoqJFWT##^M>-zH%aNf+>3DaE^1BDmYOl zw*ZkSV=<+m*-Ml&14nDoG>20*b;VOhmrx#6OG03->@ge9mD*ALbH@?})!=?2#6GIb z^i0kVFaYHU z78Ul<@!>74!D&mEe2pI%ZPY6n1rvBx4Ya{qri}p&6$}I&lAHfh)gQVB}czzp=nN zr5I|&j5JoWj_<4c-aeh5z^ZGq#c=!aSu{AS<3v!?p&9|FOvX1%p)_(p(}jeXWX1v_ zN2^_dmbjvTnnrPyrNMb_qUHoey_OHVlFTqqm<|eHD2K{GR~Jo3PAJVBTJICBviJ8D zD_SwcdqV@F>hD%Ma;sRYE$j>5Iqp*cJY zQe(EtM@syx_>5RFIV#Twl&1x}>%GKsnn0*%j0lH2NtsyVxV+D5QnWLh1&3@WQJmEe zQ{Cuc>V343XjYxYHp1iXM3U=lg_7-K?_hV$y1>rJ;}ev_{t~N&`G)yNgl=deOWMjG4J1RBLW*=S0oyXIQ76gln(JRS% z0*E#x!s^Ndv@G=FrS`|tWcGKiZwcO`(UM2zYKfyLGZc zC`J@0q>o+e~Ytk_325<>2N*UC~Ch#GHW7BZO9c+@{6jA#}=$FY+$Qitv1Cf|N67!9|5{11=#NN2XD z&3`~ILqounJ?QYHeh+$C{_^PlJUk1~;i+1+Z(?{~rOV!Hsz6Up$+&l?VSpPNqttYm)LR@3u5skM^Y+9;RFaOeAf~lfM#ZhF~?YH252d?g$Kq>!kqVYIQCF6;4r+RnAexH@;S@F8B)u(KXAU_ zrKpHTMV=QcTFRK z5;KZ4`H`^mi>|ZTI7OH1Y5PKfoQ0cM4^ca zp<||bg_>m3=)`u6p&wwp|1o+tg5^>z2KxG{K}PFu^kOW3dsG!FR-j%ClxJC_Z^kUY zFOMm;+M8og+^~@aumkfA(V~1WM{5Dq&S^`h^6B?=vQ)T&_ux+-26!RS5)+|z$atO1 zeylo~O|-KL`uaX1ehIH2Q_`4PyG5Va7DvTdmEFcvQwBLa)V1fw6Vh9R^MF;(Sk_oG zCM1FlM-#ydZ$g&Euf{6`)Vu;sUK2TJEjd_JU$HDApL20aCLL65POJN?zqEcdRt2DA zzxQ?_cGtMhq}m1zI$L)Tth*w5H%J_QMz^UlQZ4)Jw1Sr9Inm|xx+!>oa`hbtm3?U& zAdW1ZB2oWcoe~o9YgVjl;3j2%+I#ck8=0*KmMhT%c6Hq)mJg!CqPSSH8NKmgbn|l7 zT^x!WAB5(*3d5k?&9_kq)7=A#pt91MBWcMFRxLF!fRVuE4pN>U>83GX!-)kG4x2bW zhvl%iDFVqkccZsma@?u#v$uAr(=y~ot)F%=OANQUD{hN1M*(}>qd;tq{cC*<6&ClC z5x?Vs&jjb#V#MXJ=xILGr-f(^UW~hy==2I6O0nyOD|_d@BBcZV3L_PJuCEhBVXO^( zv1j(T=gM8$gO`>(Z{sU(JkQaoDYrzOI=-JejVoi>5ISy6zs-EjXcs&jq|V6nqedzh z?sO)@GE9r?kbV>8Ty-cEIhE2c_TUv(j`4ZWLKZ7rLO*yK#W0vL^b^olcB7oxK3yMI zg8|S5B?++Kr^OVAG!wx_W5qQTp~I9BA(N10)+rDWV*Jidm(UHq)tnRx%N@tMqxM$jcdfKv9GfWrEhxB~)|f62XlwrC3!eSaXzc-b1+ z?HY-sR=$!^POhHlqBX^EVR~9MFa3R85L-CW)7uxSOL;V6jnB2)Js>FY+FxCA`ktBH z+41^DvDXuon(lZ@9PYq@H4I=&?tmvlz1qEo?s0dcUtmu(3Pp%Lgh$1c8WL^SQu_;0 zm=<|={|ixC{W%p~8E3H{O;}a@cS;|OdwF^@jy-c!*%gi7T-v~Q2ey6>B1XcQH@&vG zYINEx(-mGQF!v%TYb@mEeJ(9i%Z}E%dGH7RXV?#{u5obQmS@;K5Qs%F{ zySH#CME=avPOhT|%sOn_Dy7w?kfutP+{q1t*IJS@L-$%Bj>ZGIu<+yCxRoftLxm>HmnGolxO#{7)d|FBeov=9fJ5()jPz zwTLXyU?@l($_aRfj?T!uR!Hrj9ItwzcO(P{_p4RpvbZh&%ewwZlwI}x4bS2@abPZx zZeBH!Ex)EDx7;v-n3nRRiVbr;l)SxJv(Vu%7xEbdI`x!C|U(aK#%TXo(L zT;HOT+!g;-5M>OGXG8u(Ahz*+qkWVNj%N>h)d}c@960d|;_pGL$!&~eNWo{Ut54V6 z!!~3hD{+`OS>HtJUN~Q%|7BeV{b5~C?2%!Y{B2#^)^3+(+BS^8fof-jK%&piaz}?= zF)*h@98i3mp@h0C23gm}e_Gcje_PkU|0nC(4`f~MOY)QcvaUNm{9#=q9F>VXA?{iD zOA&Xz|I50T8KLXP`p+Ie`Q&y#9Rw*kzn7z7Vf!0WRIUC<3(lw|C;O`@ez^44s-aKZ z+e7ny9}y}{KBX`FRBIjLYLI5(3XS?H8FqFM`d?u|F=b*t%T?op^(B6%^HY%4|8oEH zjMopgEj$lzVa%T2pAaxG6@urm+E)QF-JJQ(ZV2FpI`l66J!0wjl#4jv%7*(K+{ppnLz+ba8?zbMNR6TE;T4ZN0-4r!WZK3IM2b)>|j!W z=t_iA_?Jyy11e$Q@XpV0!?mR!w{SV|(v@CGH+_j)8JGD**-W8hg5`GCXtia4ngAMj zs4`3{^`QFi!FgcNstPn;MKAKU>)!!f96z>p!0~HpVz!o!;3uSRANE5=qfa>A>@W=S zuQpxy?GO`crtYV98%0yPk6Z%kF!w=XS(mVXUZ_X(fkyR3fDsC#)J`M0wDPtxl;vY| z`C`=qM^G6~?I7wi<`@%mWD`MR&LBciUVrW^No@4Di>;s=!il-d`+0gL95Ggkx8q<0 zM%Y$$$)N`I?HGVet-1B)Qt|#o0RbIwG2&@@D#xb8`h^U|MOuIRBs#BU<@lR@Th-=t z@&cI^0cy@fO`cRi)PqS=+rw(7d zlb}-`t2B)D^gwc%BqJ$Fv_N>Hd5kvuoz(emhorq-bp6eEo^e9U7Jv2X5Fts+w@}}J zmeeEk$1c=vL*oO-ulip@L8)0R=eCvXIfI6=A<^SQy1fvI<4{hsFmD1~z3x17M+y7j z0qkeX%56T6_8U;brtGW5KRvBxu%M3ypw{X)6E-Y=8T0>}gpFqe3@SZ34UDkRCF+dL zXH<}i4Y?tWq@;N9)|<*<`uGDmcpYoq5k9S80_@O>;2p}A{Rzvl}bnHNDcx^ZW zupHm(Lqq@MF>iO~7L@;qlaZm|VjP;MvV|;3Yc_6?xADf~RZlbtEi&mh_TjrBv@AZ; z!})lgJEPdGl^%8mlS9~rwn`*ybXsgjU>lmF_ElCaA9~|A`|EGeludB}8wo9AcLAjF zhmCt8oeUHVB`&mRBGJSF?vx$<;@n)3{`hEo4jjaI4D~a7wH44SFJ8hIlUGM!5)Re$ zK-X=3K!c!=CDDQ!8?ZaTaLIUP{InQsi4fHKY2+i*aD4!ePVGY+Ywxs%eX64W#W7f?>v44}ixG%%SjZObJZ zSkty+rzN(*=-H#y)O0opyINa2FH)OQfm35@=W!fH0OZ!IZ0V`r1@TVjBl9T7iK_Ns5q-d5&xj{3yl=lsm7R z^&~u!qq()2Q31LiYt{J-^fPj7)OfOp;%fsG$v@3?K@4ivJ2`K*`s3jzG!Hw#HzBNU zHAj^DQ%8G!Il&fOa+Bi1`$m>INp0cwFyy%ay_>Q_T*ysGJQ~*v2vqed3&68XQwUy$ zBO9dKx1{F6jLr#@f?~Sxpcae0HWvy4grT`j-Eg-$2`=V@s&2Ow=zJUbnq!Dvq3~A3 zZCj9=+1{8E*Y+Wv=NnpdX){TtPB`a`kp6cS-8-`QpCa7Q@aSf}jI;|WqB#7zzH};= zqT{oHW{1u%C?-HHixMf18hXAfE=Osqc3e)KSiqF1W7?K#yTaaVyfahok7F8H($H z&*1RNj}O|jvH|s~_1piroOiv#3Vt!F15n}rPSO8uzmI|>Jam4G!RQJj?G05Fo#sOk z{Iec8vDgnn#qU5Go@qwmOo-BgBejCcrpM;*3g>)j$T*JST|cL6Kp59L%|0g#i@3Okk9Mi*F@Iuhzyc=5B%Dhm+cCBSM$!i~d19cz@Q`wdZ`s!u}J*5r@Ra#UO0NP7nEOhg)_o1%)Kt26T zVEOy&fzr8rkNiE!aH{V|rYq)>~{N+AD1gFiXEISK(CSRv>Mmful*{&wIiRR2sS!^xaT(k@eNLtCmo z2sNRjH-rjz10lMJ#Esadj#%ooQ`St~&W!FED1uR?KsnA4_Ye+gX>-jTia&H8R=0yJ z-s|gyJEAvmR1(O&iI%ovD1&D(sLgrAIQ>lL;toi6?6MNY3SzP16yYC?=WZfv9ZRR! zciG1*shBPbtK)%nD@^o9EQff;C#r)bT1r(Bg%^MY>wC{NWo)08?VpuQPf80pLrmKX zvW!y3PJnkEE-T5l!>C!5{J@qM?=nXT@0us|AO`Lq(VB9YnCJ(&7U?gjff+B*uYR4e zp1sHn+$-@yR?X4G{NZ1{mwRl->j``kHj65p06E1*R*eSSSr+Pg(w+O(PGdW72g!A| zum{DWVfl77x=4Z68(pKx$|&=Ni%B0vu$8z4<}ZTsLdAe-9UTRq*#wA4H{HX@5x#L{ z8EGHrRqbMyx4w-wU5xB?=jpN!Yos3?F-T@fsiIF;xf zI!!)D%RPqoOz+t!F(!#V@ri;6QoXd5#19Xk_xoVf-jgqHv*avV^!=GcgL7uHGQQ0S zU9g*%AQaaTwjeI=e&oW)o4Jr1q)^?RNY1W6?BFVn^}GPU<`waA7%RueLLCWv5C~Ze z-@Q^7QMRaBzM6)k-%;Baf_?WHt5>~zNi)3X(x37>I_HlKPtAp=m&Y1{4BB>ZVF8<+ zVU|ky7`hItQ&5#)EH~{Q`k=v62c0}|PMm0Kbci?GJ9{(-X*(TN>_>ZqsR6$w0_Y@V zO|&uEeY3nG5=j{KHCsEh9@%C`$IbgqN6dBFslWiwD)H(U4%xdiIUNeC3{%uYz8d*E zy#MSMYJGV|4F3o0>8}jH|Asvg@`*x(VZvcR67YWc>efgEC+Tkw~O>GDaPkR6b1Q7)nVXrURgd!^>O| z%WR;S4*7}Q&41qX<#8=yitsux0hhA{n44w#p|?nTeQPfOd&`VWcSr}W&a@yv^BKQ&O>+u{;;#CbCW*LDuSLAhNg0+cG;xX$CNwSeL`_O(o!eo z-5N(m<2rK3Ui~QVk_}L@-^LLbbmSy*@tL&wJ2pq}qYPO2IaCj)?1!8{6Q|A$f=I#s z;mFV-cM8@J7jbc8BAtE&suez{<}BCrv-x92F3GZz|!S(0&GEWO+2s&b6{CT{}OK=bqJ z)=C$C#H^DMY*k7}IetE+uM zzS|ZixGZ85X)wDC3Oh|iyB9m+UXyE=fs9=F?B*k=1D|r74mk`n-oC@LZQEcYc8O;O>nI3V+oXu~HSm2|W#9WMZB znIDk(6Rca8nr(Jy=Oui^$Lq8s^vFOKWzOUmWE23&s&BJDQs+7~dad!ug<; zE*BCw2Ll4{*<4cEd)v*-TqiPGu6GU=zQ38DtdAWG2BV`(Yc|gblEGxy3FjDvG!Gtx5~DT8rGUQp8vW*$~9)=&vs(>*zz07Cma=~O-KQlWa2Tys^BU_C`>Z!c z`Y8S2RY*f}JD)dVeN?NWgp9C_cGr8^1bT)DiJd}*1jZD2=;iBtz>RvqGnpL*`ZSHN z_0^ahY;%9&e;GiLMw5S1zhC5a1E4AM3XdIhTcU+))*ZT^EUKYjBPsRk9)ue{1{ zq!j+rAC-0g(8f8V)+p8*OXjqumgmJKr?)YE;?ae2{e?w8P?`Ir*%qajoXBRRp+Bj^ z#RUWib`hzzp<#G4pCOK&j-7Jf?X0#4e(QXGbMfYmCe*$m9EVPQ)L0*jNyyvM_s4bBd$8*P93lNh;<%7owfuyR^mSzxZ+uOIWMagh9Z>pWMBo)39F z$$f%kA9eiFHrT6dY@@m17Grk#BfrQIJZQv~5dM>*l{Z{l!S__px;b3`UrCicz)bew zA4wIGswQ`}H0-F?f7U=qB7dwV=%R!AJw20^=`TIAK;=(86LUWKt#lyOy>P{1%G&%x zPrX|=Ul4TO01*{_Sz2H#3`ioLC zYj&EA7uYv$Yzrrq+D*ahY>0r3oATt@^p2iGtFIk50A)4kx3qwrT7#d%xj;VfP`fpU zAoT`>4J-i>3$_ib8nb$v7O}(9lT*!G1$+vi4bjQY*^} zF59`2pSEV98ejdB!bRN`fEfMu25+!lcf;`*PncsBHzXQt5WwIhOFF?ELLy?CzhBW& zuCNhwId`D)BOWM$A9E?%s~l~nF<;&DVE{f_wM``hBie&b@h#YQz4+Ze43#E?qDs4S zj$mq>Y0|K0H)UpKbZ|=vSs|ZxQmumh>QRhbCadZ#XbZ zJmi%QJ_}P3s!O1LiJPEgUqoJWY8KY3nm)y?=w*{Ps}0dlTO}4wBMs^l(Ur|?dTWnk z#IOHCNs`S<5a80qgMFgk244{&(|dA=Vz{J(h31omT=16t2%^#`*%ZDn@%`&|phMX5 z&+CyVz5nFXZ;Wem{|BZC>)$Dz|JH|{|Nl7ehi}07FEvvAml|0JQX}dAO^s~-OO0Iq zFE!H4+gR}aYWiL4@c-h(u)+fdZ`x4e)Zr9G&MjCXBC?l4oo$hjV=6rin`SEcsTjI4~KrODLLtm`=wgEfthp3!FNCYv2 zJlp~78yj2D{=1nv>n&Dn3|u_+g^Hz~#myByCZExS0r4+P;uh?&0-Po-HTnTL%9Ywe z;rD+`AV-rv)s6?ghX5E={50*y-KgDz%Neb#Go4d166@!-;7-mkL_YeYK{Opa1`jk} zs(^#~U*x@IR~^`s#+%^o?(PJ43mn|#;O_43!4B>Y!6i5(!2*Hc5ZocSy9Nz=59S~veUv)26#wQKL%^*r^fkqdn_D6^XfnW#tiA?H}?;Jo5pG%*$09ik}@$f0s( zgij|L?n`~d#FowmQlz7Mcpdu0H%^A#ki?i7)8}Yv1f}l7`NivraqJfOF3fE@<%Ejo zbwucNlYGSSY_*&4IBt49)Wl#U2?hp#ZaD=&RTMc}fXmd|9gvYkK9#g*>4uF7V5?UJ zkxb$0ML|m;tgdr+XLC0=3BIpB4_7G8I+U)oo2mTNp$w<()x(P60G*nBC^O_v2PWKF z9=H%IwZPbjrB$fQjeL64^Wx^|Ep?(wRA_<+a_E+Rr)<@o{17W~g6=Ck>;np5FE#L% zLf%&(eRm>Ek^jb5_k)?5&;6u=R%)E;{M+Xs%29;|F4awF*~8X4SlL#Ftfpmk2bOaM zbgwNw?~FR420%b0-b$m&!tjLT_C%Yo^L)1o=%zsEp|+2!n@wC(J?Rz5Ks-stedFcy z)Vb80c4+%cz5FjBoCL+*uvd|G4!BI&s}fYL@o}iisA`s4khcgbK0&e`uy(K$#Bcdu z?@peb?vvEV^AdMj_825{vVV^E+B|*Pa-F~X-FMGHdj6%4!EA%LQ|1EQa=E5coTNY1 zzSN`4bnEFq?=F}++KK<-hi5-Q}C+rlkuml2^d@*KhQcIsP{OEXsma zdZ9&KyIA|SnF=^ztRo5e>UeC?!Z0ytQ98QzpY!E?3SVo21519YUyu)U&KQ^A0gmC5 zqftH%f$$%90nbq5T^=~rSgr#`+TF4!GF3KOQ+1sQDwLWUSx6(f$0B%frvfBAeY45b z#~nFzrcC?(CU4IRuJ+31b zku@Z5fwi;^{Q@sCrucOa#h@vHa)==f8h!BK#_@t3*vEn%eq^thI}PG%qq zQoSO5)P3)MVw!Hj2r%u7>Q(0Wj$x*~RrXHe`yi(SJ^z)@CURB#7Y>OH>~&eu{z(>_ z9A)%V$ghWeSmo((Nw0+=aI9Do!(^sZphW(eWFMNSSfar3iupY!D97Kwnq^t=K*p1z z{Kpmt_eza=g$08x3Yv|+2+c&XNEirfdMpIyHvBnfeQnFGQMya)J5GeCNiouna0VgF zBMFu)H&_s#<<9-+>Dzllun&K4ZJUU}Yooh6DcqctL+c!UqdZ(4^)NI_NJgPe!3x#X zABS3pHZw-CH;mOeH_pz@<~9K9c*xW__uEZZMy^J`^`!ZUL51pl*0>`UH7YUPV5n>% zDz}pQkY zio>2arfD*Fj}mnZV%X%>oA}+(9dX@9SL{V#rRRn`L4O%c**dgwtCqrnfB+O)aF8nd zsrdsLask^!RM8Eeb50<&9k#2qmi@tIra#*cpTb811MX z;%o~Dwh&RuX%TI9zZbI1*)@F#{+C(+D8iO81&8;iv;KF|@ozO+K@RNF_W#4^d#G6* zwblu+@2#HEl}MNoD-aV!!(wrcU1YZX>GZ9=B!h+qdoN_)GW%dKBFnRX{mf&S89z4X z`NF+wn>9#`M0=PoV~jEu8a5gw4gW(UVde+{pqjW$fCb196E?Srx&+04pj&IX*LF%A zts6kPh{DsS`JEequtzAu%nTJjYuowjG1OMC9%v6LMiMx16p3VFP8X|Y+2A8jj^(gLg z2BBoKYgcGxqJpJ9HdH2}@)U-VcG&5u73UUNe~tA}BU7Kr4F$nvKzu%wo* zbS|B&eCFY}vDn=mnL&L~dsg@YR!t(tc%ichV$e&k11T4aEm#}Y6(tu#(q4)t6}d~2 zaoW;Rm1ncMHwkxn%=$X>NFSrg3DTMhvI7}P^mp~+?1^4At&yKvcpH8H z+;TN@nt!*@MeTwsohL}c>K(1Kr8bz|-Z$`W#)ouTsy!Yy9q*C*#jY}e^58?RB_sO; zzSr5mJo*Kn-O%O0X*=|LZcGmDzkUHZV0-rzE0&PMkXUq+#|)k$o^t-_<;(2}Hfsi} zifQ`@8Gy9kxoWKfb`rz+^_PSeHtF%koAfO-NNeiG9bsCuWTL` zGKd$lg~kr~CW#^d=vwVUz#X!2JXe1f<@P$Dt;x7qhMK>?01!C^Y?-p3OAQ!87bSxP z-PyI{x)>7i9$**f=C(TCuwQ|8^cwVatJwyQ0_VdY!j@hEsqT z)}$LlfMcxm0cN&5*evaHxY)Kv{84zB|_|uXUox zd6M@m#kep5T=i-o=%IA6uZ@+(rwHNe%Z7u2EomRmr^u6r3$^w0-@kE37PE=P8(e3S zHeONwmMaI(@T^<5Xe#)F0o18Rxu9l4j_(mLeewER+$T!x^XhPg6GtR|&uF3YQs5_g z5R%+Cz1?&Vj})azT2FZ6{nRzb8=u0sK|xGMd!!Heo?TQ_aV zJ?%bf{xh%F_w#}`5w4h8UaGEEjS8W$WUju(`{u^p1UJY7q0 zeek1>sR+HMJ+ygp{nCCtVLYaVa6evVzH=s)tCyQf=j;oKPybheuAcQp`9H8aas2Hc z_}>fk;Pn5+l3D%pbpe+R7_`+S>g=on9IdOvqpSV9hXQXP?RFDHRRB1Z46+21TAC^v z?>iGxO<5`$@pSxYn>m)qoctZ+k6;B{#2gu7WyEjPHdEq{d<_leRm`AGwm#APAo1=> z?nheIQQZwdV)xT+?khnOTF;uhdKqE@4H!-E6myVU!AuJ8y2f{S`mwgfom6lv9gQ@$ zTcG_+_#6_=Q7DFB*>xTgG0D5@LWHCabSu-EOzfrs&}uu+j2i!8$)x?;l4iOKRlU8euiFrQvMaKxkz|N=2?sCB^9~#p1tjG zIUUuuzC4_Gz77J@K~8R;_E|^9%WWMp2%A_(Uu@`p_s35WLI<&%f%#@UES^2N@8;n3 zHJ;*hM-&wCNAc%8ub4uHpTh%(mGD+fq|?+T*tM=+^RX8<8|G0HP3swctArAfdk1Y? z#(~(rSw4PM$*4L93{!ie;j7u;@5gp?z1$!Nytf}F{BQy<<#6!EN-R#w%g#7z6FyhR ztB)-fKW;Yzd@H4coa2g6n|KWhhS}nwWyO#DhgHNr!r1tB)h^gBwoXnUb=yZi9aR{c z;Kef!j&DP$T7BBG#lP(`y>(JVeyeEZ>t`DQv?caVE-8!J55$YscIsgz7z-JcpJ}M{ zTgaaXM098FO4gu9$u%b9)!;j{FiGnig_EPAMvlSFZ8DHr9&43Cym-o;z}0IrSVpg#PE zD}$LFRL%S~RRMipy_3AsfI_SSt6$t=!sxzawJKX-7unSlQo|w>#7)se~nf6G#^Ns;)<0$c$f{N~T)FH3>yFLT?0{u*aw>XVo=Z`9q|~aSo%8F|L~?U%zl)n%mcuD zMA>nXHd*Nm4lxJCw53~Ab}92+6xHC0tDqs&c9S-rHyml#n(npj5=U~MhF>QUPDKE9 zVYoI(q^Xa|yJd{^zH1|W7ps9d9keMAUQl@dHNi%lxs&zSwzHa7UBjvu09p)$m_Ch} zS!zOV8BpHSapwGmsT(F@6p2A9aej5=KkZVt(bX9m&7^^UEqT|nr~NH8zOW`FK$Fh) zK<7eKUf*<{xRyoN_a4c}NhuYh1wBa=Ojnj>VS5aXiobkgZ29>Ol3bX`Qz5^{SoVA| z-_ZELdq3e5Qfv4mCKuool{F)$4?X{~>JR9u`nL0^9*&LF;OKJFX$tV)#gnRbs8(7C znH*joHHf30C9y|w3V`@;NDKiZy+<=RbS=O6dHGv;w+CDP(E>`b;wl+|P*BK&ax;x+ zD2D9`1emJSsghNnanCSQ?yE3ggG+ttqnsj>BcAtG!F}?8 z^BQiukq;OeInS^^9p^D3u3dIatuB{0*g*s&h=S+Y9co=4O&Dej>@Z%V z3Ft5`j?Ndji1}NAadj5-F^^(eENKa>y3cZ!5L52u6K?|^pNsuPIzG18N}Pq_AF2a+ zn2Fs&$I1a2B)2uxt0qEKrgKAuV@2JbT@+)|1Dj$q6^`7x)CLeu+TYE zz}wU?>lL`Yd`@MHJm9JbnhnjTA}nHDEbw(;iWiT@nOu*-I%!_CTmv8j-FW{4}PTPxS#Kgem@B$U_uxUca zlz6=YjdS2B=eA1;R@jQsRb+ zF(+Re>x4B_uFv}V31-!N!cs>{6}E|ALOm7Ss%~$;j}=t%nFK#PGa+y&iR zoqP9piop6JVYhEA z@5PGJ-j$nfyQqq_m`fwjsVbVfWxv}Wn%tkAHSDw@9P&3aNT_1ci+RqsfKUCt!sgPj zB6ZCdX2zNbAy=;{jZyRo7~=TP!0if{0U^ObbN@Zx6z5;Ei`p-;WO6fjVKeuV*r(7m z46>#^_{*2{aPVOo71I@|I^^i*AKaVDqu(>12Jh9LL4FR#0zzSc*^(+20Cdy{9NlXh zL17M8KZ~9Fc$U={OH!>75H-AXCbNAr6obtgJ?=|R^A)@Uo29XQgovRsZKP#3;p5sD zo0==Eap47*C_RJ)51i8Vp84~6UP{}!Uc?6q1wfIw>tN$}Q&MP^d{Rse8|{!eqya<; z&dWwO0`cyZ{HGYBt4)2GjB7RedcD|sc}jE)gSRScU*jgr&)oA2gOy9$?)Gn2dAlP5 z&1~clpSN428+#S$`X`rmvROY8{V=Y|SZ$fUKd*_cK!n}ZYikfm5Bik-vtc}U!1^bJY9_C)x6hi8+=bgs7Nw1-n3Q`VA>gkO z8xT%f4PrIVD+Zm0PJ=i0j5bJpJ<}QlqS7t0WLXwkpyRHV#iKZy&p~5rYWd|s(i@Ps z%6%N_n2*Nb-GM`ye5*f3bBFw%&#wsIFpv}*8OiqJm8xa*q+-=bdp!_i^8n3JwM2bi*`}zUtIb;`JRXJJDygV-<`E zf#%+!34V(+8?e`=?7R|h2I5scODTDSmkG=!Ev*=C>qk5K_T<&vH{yzK%~mAj7)b$E zI(R2x*y-@-3X6?LI|Om?EMPHax>@%=;<2h|+#&#s$$DIJ;;`D?$FUP3fXGX|g+ac} zW6F`ZyGuU-VUklf5?U8~V&X_Yf;6x`i*_P)L4v}(LXj|kJa1_rwoD@X6&mvDy37Xb zs|D~ZXQNX_3rzF-GWX;sbmHQLP>)>n^Q`Bb(|)ThlE==hiG>(KA@Kz zkY>=$=7XnAQQh;yz>4O!K#51Ha{t+Q#}r?4%t9^=2;ti%Hqi8i8~5(ux=@f z7#1oVAuQjRJTg5ZpOK011L?Uq*yOBJvlIO12t^RK8jOPU^|ZKN@f{U%wfypY`yIOj zu$0r!R1*s4#MOgQ6Q#caLo=nCdIfZi^pqKpch}$ddWkwqW*`?eMG_hWPh+R8(Xlz z`*&|yqb!kXSzdU}HjJM2G+2>y7-ua`JqG^p2J0qbi|1R%FG)STcqktx5mU_;FsdQf z@9uazM&MjC;?Ycmx|o+x>d@CwxGC)ly3WW9f22wYAQ?qmr(l$(PQV)DSEzlwJ=3pH z$wu#f^m~KEIP*oCaiY6P$N2r&hG_VT$mEu*hGs(x~W+Hy>uR(e=71nP`Nq(s%lk#$!g^dwud%< z$ZDc>jT^I*U|CIFR2dBlJmcB4&yDdhNxU=gk0Avxb!EeDq9_%HCev&s`>Wv2#o;j| zn119PQv`gC!a-tzh}Zo#+#59-iEl31qpfqCH!`V}Ofg9-axG27g%IESG+0;e^rkat z?>p@FXmf*cVJo`>rl+RO{xx1)MNyKHs&amFT!^b>aonP2HZIaP)_pk8{s0)D^WLM& zss^v-nZ7R2G-o{#ai1cU^>}0*T;1GJ+7x@0QKo9$^_4rd6>k=RRol>b!8AN>(C&eA zIiMy*VSNZmpve0DiVfSFPLWxi3}uzqTA+h*Ci=$+0>xp>?rSS({J|NKOUJmX3+P#^ zMi)+tDxfSEB?}-;D##~`s#a_>tz@cp23*pBBL*&MYMA`wAMD6Ae#g(MlVHwbrUQrg>C*ptLlKkam5p3i)ZQ+lHW?~D-Nee{fMOP$!K5R zr!0VSrH^J!+)H6~{;H`U(H^&+sjVr*-?>}hy}#+pmMm%mlzlPbmOO*&&9dj(Z4k#`w3UG^4Nf;I!EJx}B0 zbI#N}`C>zeF-ZQi&RMgEEMM11i3Q}Chiiyy4k~_3{h%!9F^yJ&tbggXPmL2^E>LUj zPEF)26ua2kL|~HeXlePmDQ^Xx`hz1k+U!Som1dS){-guFicw{2)}C>%sRp9$saLdS zb@?BNG!^O#M|#MWuOs!-vlyT}Rsvp4bvgURHd~lL&G9*8NSmgRf1cavG(g}`dEh}O2g8C_h7q= zeo8UDS%KqgSQpWX#94fZEUI`*hh!Hwi~Fr=G|m)MAfa}aMvH)`yFaE}mY|IvVk!Vr z?zS>0rtG3{fa)(zYtovwEdakF0;^fKS@4Hup!R4 zOl;1hPl2(&G0nP2^NDx_Eo;yW@2--1bV)DLiSl_7>ur8zQJ4cdPVB)LcC5{wP^brg zaJXC%8qysPraoy0#@9Hm>CYhnNJO0z$SnL|zg@9!L)`dg4Hq6}q3~CatSCHnUb|vBek1xao5a)o z!NZmM`fzNL`H>23ose)E8``1VkthM63E7@vgV2QpUGy?fipP-z9>Z&yYz1_B*{#)%)yj)~`^If|n1u&k z2N0C?h`2~r6hHdhQv=G2C_C#g2+(;aG{GI4VkE~Wv9pJHe$3Ds04Y0mX`2wKNVj>^ z9$BS6cIiS=3}79^ztMbB5EB({KF#OADwuiS+BqMwq7|lSGZP=`!k*T}c^xZ=4f4x^ zHZY_&=BIy;aJWw6;LItw)Rz;p{|a0MadVRhS-b$aw)1!03=r9`uq_SschpTh0BT8| z!l{w;;yXl2Y+2TGpL zDB41Bi&_VVZQ$dqDosEG-*MSqwo6w^W>U<)7d`Te>hS#M`N#^VCNl@0kNw|#NdMK9 z|Jl`1IlK>B>yohTo!Ag7gHy#usD=aYA)!&6a^|F=js)BL5Ye$7UWmwkR&%p13CdpD z%5^pT^haBVLF+4d2-r>}@0~Gf3I(oygqT>(mfh{$P%h;BOEVQEgV}ejFjZaIBKoC<6ECgHb>nF%6gi~S zp!O`VT6UnZgxA5K!7D(y%DJ`=S!?a&cbIU*Z7&t891w zEvikNvj2*JtZ=$#6Xh7csy}r z?{nqxqvX{yNp5_%o14D-c6Vu!WmPx;!U=Y4sX6qJtjmg*PkRW@1bIsG0f`n?*= z)jK^Nc9U}^a(;5&)dGxB_V46PuCjhNGz|U6PD_TeKR(H#uERb`|n z@66@~F4x0r#|bR%l!p4U!?4ns!rhn;ufOazn!UDRH=&bd=o< z-&Kt5C<3W;EFw62)6nDmjydC){c_ot9Ad?vnXX1Wk=UVLL?RU}I=hxN!~fh*PiFCZ}o z!tnEJaI&a^dsV+N>i5@o0r;!r#6i%kft3(70Akg5rs33-QGw@~OY1?QG~&{jF_GU4 z(l^iM?XPi6p0NXzffyopKQ|bN8<(HYQc?q{_@387OnqjT^*n7>N>4p=8SS0nM} zx5B@nqX-;Y#)5sI;uH{!8k8l03W%(Whs4jIMVdLvUpwXl>OtX~AVpKh>qfE4+` z1_1=Ggy_(d#wjL8!v6UPa8{3wKO&@7nn#A!l5$A=%=k(}oDhGNYsnYPEf-pW3kzcc zv{1AuOB7ep3>Vnw4DjLghlX%!Fl`ZI)yXEJ%&zg%b(zy$Zu!v^kJncYW~WWkL}6BQ zFx~V3>ow9Th!4&}@V+PTb7@s`5P~JlMym64!1w3~@N}~R0oc#YkKqKC~@FB zv8>lJpoY#%wqdhp4wSacXM6tc6c+iW+$+0P>svxGOg6bp{@4Y3QXZg|P@)0tA}4sR ze2Dd#u&zj5&T8rjvK*DaZ5e7gw^^9`Mi5;h^NNDlsA-j(2l7M?JF{cawh78QfUB-X z^!x6CRx#t(g2hM$#XigMDsrExjAHN4VzWe`#QfTiNrAA9s#?7Ly#KshIQh7(ssl8Ms6aj&Ypg|b)&Bmmc{}*=J}33YP~GARtWY7bart~ zvbla`mpf!{o~dO!T0s>=1Jppv7eFGmEXwP^PfdkWO(+EzC< z*nA7W3W?LWt5;<(4GVK;u7XPo?qL&!wTnMF=!!%~9m?cU~Kt^nh=~a*JBVTKhfw))~dth2maa zUz`XDy?44W<(@t|sa^iC+!l7SEdt({Pg0z;Oi#9%&)cBLo|xq;JLiN7Sr#kmkm6qB zeWnw_Kx&wWI}z6vFy_<*GYAunHplt9O>rkA7>sogdv6K#G|;)&uMPSc8i0L`PW}6d z@s=+omEo0pT|wJjTK3h&IKE5L0cD|AY?wwkuK1q0#_o0T)}P7gJJ9MIaA;I7$(R5i zS!E?x3s2NsN6&2PLXnb3e0%6#J!&k*9_#U)-jzuREU%nMdNz61O&uR`RAC=FYqCz3 zh?E^YCx+?t5{*PCZFU`8$$NZ|t*`V-pckFRQizeVtZTl6v~%{}fhchtNDEh)ekv?w zdwU@nXkrz(FCcgd(QW9e1#imNoZJ1z`Fo0U8x7rUw5OWpKMO8xL9Oba2JW5TE4aA+ zQe*zKLHsuvZK8s=ajk-4Kuc7a4i36^gtv4mg)NaP>Q22S;TLDy6XxGO2pA27fdV~o z60n2@-j-e!0_GihBsZb!go8+3iaL*qj0MGPD@U8zZ2EJVJKl%(mK`Luf}No4{z(_+kc{>3c`sl! z`wqaqUw!dm_m5!TZ?qhHp_nW)ejk{#{ch=cx*H<=gby*R1yLg<00@cS&QUc1G))20& z_kyv6;O$x~iD~5Y`O;hp360XG=_OOk^M25a^E$+27r|!c>n7h}xs-lVdfs1*y!(qim%%@_%FxosodwA4O-2dvUU_%Q-Y9P`;>B zsI01fpyg_s+zV|Vs1wq0)bKn+GCEVN$5Bz62#LV202F~GP@6ZAxp<9|as$fcPv@ip zMb|l6S_Q^KQ%mn%_^c_k@fV=6%FCQT>{ve$@wZ*YYSvwiY`1lML1n)^a8`rfOK5 z)l)|BKlDpKsyD_SEBBLu*!6rMg~tz3Gj8vs`qU-ld*<)@@a9$|Y*p%0{I$9Xq|V=N znqpAQzsywIbMV^FU?Qmn;VebO{e1S>KHo{b=@*Ec5M;II4^14eUhsNQdTTC@nz_U- z=+)M_x$8%ZQ8c|&8gJ|a9s!q)SOu{{&bX?aEBD}|lI-AX^uc)3T+bAEk)vWvEKU#7 zxnd!zniMF|VW4_C%}LAvklj&{83j4<)26mRd_NP0#QPkVBGyECM~(qHnAfekC!m(! zrv!xoKbdREOC=QOJ<7G|V`nSN6t><5Li^r9DskDCcB=7T-rBfr9S|wM>dOwXys>`l_c2{O|sVu$*cC3N@o`syH%B}+`?%%j*?Jby!7D9kle@O zdhM{q^Njy3J@yXG4$d-SiN$_{S#Ov4?GfA34L8wflAh#FD4v<#TUTciMUozvSFh?Y z<+i5Z-rHMXZEw(dWNs-eNVG7BY=r#FEd9p9>H8<})7=gCTih#k$k*ks8_FhVg6fLvbqX}tkg2iZXbNO?W3$brx$QhQk8rA=BjbgCERi4xUGEj4 zKB*k!P`yo-m5IqdIvGCl{NlU&wD5RQYZwUYgnflZlK`e}u)Y%8)qjp*|E{$}4R7 z;@q5AYM|cUEB6c!r}bhP$G4Aiah1Yt!Tq{Q_VSLa*L%u^=@};^;t}el+>k z*5DwXVq1jxqjuLc6YT~f%~h&fZ6AKLD4*sv!ks731Ra67E~n5JMf8#ZIi zCa-^{4_l9}+C-E=vGkg!6jid+1s9C3%FrO#QpKVl89vn(>x6yks2jILPF(r%L{;Xp zWD$_CyZgKdiE~|Q?i7z?#oD(U|tB3xSW!Q9~K-TTW^u#b9HovdF z-84jeJzjUh@AK^}G`EIe5>q&nwOL<}dD$q#2Avm3X>qs?AF=mNajO1Mfz6MFIqy6D zvUNxjbHphLe1GxIq;|oOC8H`%{4R&?C%^ag4XS#K=B_33!g)g+RK7jS>-Khm`Q zme9lq&$$SF(YY9ox6=V_-Z+jK65E>R8Ek4~WM!_2fk)E>PXPCp*#_nr4D6ysyt zm;tkeHL`HsZ(d{b6e;pC%*fjbs2;(Wi+z+kb_re?LUJ@B!%)#D$QNj^^YKR==L>1t z-xuJ_D)oMILK*qZ(kSwiC7v`9y;pbLQI|fi5(K zZ{)Y+1_I(%^t|{FkmXzGT`W!xmh4_g$Mm4Q%?FkY0|H>75<2`7XwDNNxwFePhQzok z+4zChDXIM|l+&;i!=E{3d{1cdkp?1g$}M5jKaO!EFoqJPFR__dQXrFBIiX!-=L{!S z(s~<1r(gW=8ugz~%u<$R)qgNN!S%O<_)nZQZg4os9op0#uf+cZojw1-iG{r_>XE6G zV#LqL$y|1{*uDC3b^X$aRF}_8c{-u@LsSxoQ$syPy^76jdp!D&tvB!|$UJa*d4!br z6LD|H3FS<&CLZT`HzDsk)6+e$w1e=xYGm5`bI-Qm0j*inp9n*cR&i>asR2sOI||kP z`C6iR99uaFi%FiLTLpFgV2i6TZ(FpPmB1uL_l39B?9OJOv$G^ndR>n<08NDeR}Uqm zJ<6S!0mp5tuG1-@s(En2xTF`%v!?uec*4wz8qBlKIm8TE1p1)~vmH?*jw#nXu_5NV zm8Dc7EJi1p1#sjJ6ajvxu(?&>BN)BdMEZiHK&6kOM!>l!m|X*Msj8!&nbtwTnYKgc&D9G}=&s1&BJub> zZAD44fUh2JZE|+7P`AZ#BER-=li;9Wo*v=O4)l1$!N)`69FZ{=YP|7H zDeo(9S2vob6PNh1%A%_#oeeyYm~*s5c606?AbX_E_fVaFK{cKwP}ZSpBCWHao`xhM zxz>%p{Me-a@tjs|%Me)6de^jz{9#v%3qUDU&@`x=hg2TwqqP~yaDiLfQK_L1CT}fC z=kmvUBB$S8v+Gv+y?Srp;6U`6lLvK;D_;2yqAB!nnT>VB`ck{rFZ{Xv2e!dJ+-{35 zVRpFIJij=rxmR=FWIu+6@+0Pesc#F;yMupKjSGt3SO1fg{;O^DzrzbP_US34>y^Pk zRp?$h`6g@Gr4%!4KSm)iP!;y9;AcvwA`OoYpYVLVxH*;$k*yj_?6N(zfw9IoYJ3S|0|`R`<~Y}z*~{JGMygC3OPqV5y1kmv56Vd zz$yLJDWj^{=AD{7#~aa8_)fskJ6e+7&PKe2$Pl*ar_0DreFkATQvB=WFiX0*fJ|s5 zexU4(Jb&p+4{NTE^(9qWF}jL6QM|CRcTMs-VU6nKS zc_m-KUB$#(QSU5M)q$}@X#TkfIk)7#V0OfF=zm_s{Ey4m{{aP;>+dPH|1zqo99FiY z=`~wb@-pm|Qb;#|gNB6=mCdWrpOQiU2L(4Ge+~9lWh19TjuClji{|F-{ov!RpFeC} z_zV#{-Bx06O!zm!KGt31m2L{a?6P$0`|i3aq|HULs7>j}{QlEV$gxMQ`Ih@_q;Df$ zeNj7ktE(IBt|_U$K_bh%j1FkyWcZZ%2BOy;ENLY2R~V!%BJJxep@TozU`Ye?%gO=xs-W*C>TJpv?4mj_ymz^EuX?-~-bL zAtP4OPGTCxS8}DF-)nK#^wOzXJK+%Z##w^|AF&UUXKX)0bjYUP+<@LkkKh)Q!X{vq z!gN^wF&{nL@o!VW>jQ|!pN5W;-)xKgJ=F7O&`f{oP(Op_rb5cgAdQP%5W@_I5KKnr zu)#@8IVDa5{$2k!ckwj)KZL03I@K;Z26HU7W0TSt^x>8a*Y_RD^-Yu09(W##V#_y_ z)kRvjo)3xHtcf?XUpOuUPDvw40wa#`d1%HfXp3l^QHztV6AIMELa9N02^(Hb<}ooqLps}q_eXNQ)zb_mEF4EWhYI#zI$yw?YSAY` zvEhdrmpva+mw1-FW~B)?s`*+mKhqb4k@+lK;6dGCZbhOL1W_YbAlfLJj%1i;uk?zua7Q* z-sPUrRouI*y4%!WH!|wGrx&P5w=`piFvZLD+fD6yJ>9iY@%s*%br z@$0=%!S~D3VM`kB1kJf{w!P=Kn0kH`Ed%np&iC7|P;YFH?VB`~Q|6o7R#rrn`o6_F#nX779JGLIg= zH+kT77;%?i87~(FN8lltdPb)6>?J;&A$Lo%i-E$rL^wH`?W5@iPk~=079(?%k65c{ zG184E&<`@*43T>%S8zuRe9@qC2{mUC-le>&Kb5N-qBPEVBkj11D*0iY;~`Ipgmlw3 z+3XonNzp}#Feqrke>cujw|%5dMAlbEU--Nt2Sp}Sy(bXj2X%V1zPxsn56;J}d?Ir> z>8bP=871GP>Qv3Q;mT1XvO%uA&xkXjioAE0vVgiV=`Ue5Z6Rsx7uX9IE~bO zTSt@8Eg3mMbXqK}uD;;2Cv-o2DsvG}YzvIv^a zBYjt#I?mmF`LVj8W}mmELN-IsC6qLmKFn^vZdo*u5;xe>H1!lP37pAE&o0F2VWfyc z(6PVU7VICr9gMex@3s5b84a@qBbK^6!+WXDXGow!sRi9e4u5PwC&7dZWCBn_bVaKP zpBV{70oHq=1Hf?5op8lI(sd-t73oDArqAheg?GRz*blE1(qIcV3%)}Tvwfk)cicxN z1fUSr^I1uacCt#^#qi^W92zZUz{@W*AFrX%z!%ZFcu_F=NC~SoNIO(Tva<8NgTox5 z=i_xxe-ZpKKLrW#<(C9>a$gf1Oarq|Zq2>~Lz{ybeOZ*!d!tV!3yn2>?Hcl)N2`Mk z4~S#fgw`-hdkBG;zAC;HtWlU{;sc@m2%>xFvX#qGH4?p9-{s@_3%ly!Io@5a=WS}Z zt@*af->*DNVPXvRQW#f!D^g~7Kks)r5*Q>voy>+jT#1u=ytlUU^{fIHUdzwZr91ES zr^F}!dcQZHnBI2(08BGd9hOOb5*jDL@U1f_`grcNgKT$5T-EakV*G)Ay$AqT&0r?Q zi2%eE?RBD$BkwxIB0d%D&Yl3jbsS1YfqBuCB<^{iF55`Azhkq?c#v|)2p#Yyw)ZbGb|0+a)zxLq*5D|w|8H_sP8M2}tgYCV~O8R>0 z!6S2#GK3g0k(mzR=FZ?{IWS<=QJ9Va+#|ZpjyZod5W?NKPjlf+dy@;Em=d_(oSSoe z(fD2nmavk0=e@-y%E{;^$%*d3LPj4XBC5SvokMpQC1O0Ypm7G9RM4n89)oW#zq5bI zgK~5KLyRp8!d;)xtlNqw;YLCpXa{?)rDn@`ZI15Rn+)8A3Nas?qtKT-y3kb;e7IW#=x!mp3JoG-v!F?PS=Fv>I&i0mh_<5zoxi zO8agPcvd_TlwlGFb)3hu39pkh-f7*zX)sx`uwK19Pw!y{7giO?sre1cccJ2y57088 zQ>~VsOVRy>mX6^c)Kwvqmcs@{CxWFt>?0qIL=qe7#Cn=)jW{@Wt>(9k4OQ0v^=kox zQruF&rBuf6>5ANc4Qi=P{3JjLC5t!JfG6~-7j&4njFZbMg>RE6q$_$&!1h>KdU>AY z5s*90usp(3s=rm(Pq9MXhnC@XasUO%)pBQv!*g_f};W%y}S9iwDd!7ojXxwG@S~=SMljhk>*JEg(j7;ac_}3I)1-|Z!Ak0rAaxQ z*2*X0z*3L+b=Ki*zoXYGedZWBS~-Ko&IUr}bX@AXtn&Rj;IgV1TjzVs`XLAEQ6P`T z#XPrlvV|B=MbUXYuO_;`+0N^}Om?88+w0PKD4wXk~ke zT}5$t>WkC51H4(h#*43N->3l{XhbsfZX893#&}(cOs^gjIF;{`j5$_AkPz1cnZ6BB z3wo!+`PTN)j@;`rQ2X`8jL|BcZS^&Mw%9GG%{7VT?<(3c+Wx?iSqPy(nyly?g;Opf zTMyH4$5OX&H^_w`vMvd)mJ#rpd17>1VL9JRqxM;HpTJZTp!Jdi;N%VGIz7$UP5AIH zNlI9e<^44{&NQY zBi^}@o?$nY;>L4yf_-0$rO1HuN9)4n-5P8gK}%is*Q1MJc?+70$A0kjLQ-g66v}8m z-)yt4gRjo?%}uZA{r|(=U&U3qc5U3SO2eePySp2tJEcK7q`OOM(w$P$4T91F(hVZr z-AI>!$a~>huKQWu&-ZQk?7Y8sckYhs9P>QKIFA1jg>N=&*wd+i(15c&EK;$=CFV^X zC#6qemgI0eCVb_Zvp(q&ntoAwoq2rM)&2EW=el4vHlN9nxQ~oW38&uLbATVWU(N^B z^IcSg#N<->CnK6G(|%m6XFa}McbyKD--Fkdc#*POXC!X|_P)qvI!sk6^*!{Op?(Qv zunQ-NPw&KWa3&E$05Y*ykJ~%&y0%?(Wvv9`)>ziiub!uC!Na((@-@b~A|Mk?Du1rv z#NoS9-4fbodEK#x(4o$pi%^AY^`g@B!gerJjT(f1L%_x`^+P4wQy8{!+OBxXPWM$p z9&y_$Mv784j{Ff9&pUa4rOLZd&9ZFD33)l0xo@A!K4q?k&kqI_7ts4r#NJr5P6{ll zk4rlzIH9Rl$q&04*!cGAq~zGd8l^Q@GiOITzRA{~1Wmv4ndOktDonVCp}>5_-zXm4 z_VO`#z(Y1LQ8xL+lugm$?_ns`7#$ic{MYQc`T~AR2qNCrQRFn0p>wiZG6$vn^vg3BHzY?7Yd? zxw?z}yz=D2AwPmnQ3}?9s(TKl996?%G=tNARElOpG%ON?*-&iL+BG&OJ5tWWPBp={ zjQuV|0fE!)w5{-Z<6Hb9Cd|Ab>NJvkTlssT%Vo_bCuAHhymK!5n>?*Zfk<@C5`hC@ z+anf82=)Y!oF!>UVn$P<1QSQsIW8o!fsSU_BqEKn4%Yql#qEl#AK7i(R-b2CbRlbf z;R1U;N-7T-gOh`vc_Sw#J?@YiT;=khEj!;Bho6a6>&{}1w!$fR1HQ^h?|i$No4^%( z{V(NKMwh zPZ9Lnw}8QNVDK0O{)d}xu3x*-zc<~FUYN2=Ke3aJP@SGB_&_ztQY^^7h>y0-(cR(+ zC67VifBAeZBL7Da_)jYgRHP>;PwP3-##1VIoOaXKrB6P9cvn*F%o2^xDYzO`jOFvh zT>wx+WM#|wm+1WKkGsmX-&)Ts7Ms$)FuqY6a96V0yT;uw^veRQFa?c@dCvBQie;(g zh+vx$4ydkIHc;2=THZ#Snjp;wNS;Qw<+ItDU9#lrsi|dPev%H%PuvPj%m@k{>3kMA zAcjL=Sun_AJ;6)adah0Vz>TeH52S>Rea5_yYLn>+6 zVEdH!2NIfRN}+m%SZyu1+Mw`8sE{m))n2n02pbzNu*-wYSD7t}$l(3@Xsi#LCgt!(d zZ&-H?a4TS;?_c|=xg4bvPaL(k2!H0a$Yuw^5f0uynFbU^u*l^&5`vw8qKH+!gTuTG zr_(054>cP_vNQZFnzM7>&gyf*@VxxcrkW3?kZT!s!it(#c_SUY@Q;g0#I3Cb%* z7P$vYswHOauqcnWbHou6DepRH6YG#ukzluC4rMz%_6uO0`XKkB#)6rzc|5!~gU~H^ zPb4k(=H=Ws>>WMDzsH4NQ%y}f;}Dzj)GWcCv(lCH;&i>}ycMhuP7z9m>7;cm*phOj z@{NLGko3UX;MLzW#|zf%;jpr?LwO$N9u;4eezff$eS~jRmnPQfa!%|S zZo^DtJ$t|Z0C%?s{dv9$qXT{a&E|~L*>#J+@q9oUBp*c!(=7~-6N3|6loO|NWeRnY zCgqVynD#78OZt`$%{f6s3bROM@(q1b8@at%l*u}?Re(G1yB`o@Z&P)Bm5H~6!0%X` zSf8XS<115nW^U-48FMst5dXW2``X22JQly<4~ze6Uj4VCY>tr7oo}j6M_AUj?zZ{> zs}GB=KPAux6H-D1MZ;I7j|V?|fF<1cu6#c9y|N`hh%CD>FSU0&fOcvc5Zu|`)IT~r z22l1bJ>~F{EU3AG11L&j@*!z4EWvMJ&4$4qSjI6%v#td%b&vKZ<%hRrt z>*OYF;ckIwnGhv(-P!<3*K&CN}MV3C9c)E>q)<(ZHh}AVMV{??(ohBZ>nPoi7Bk3$*=Ei6w2bsw6qv>^+vxhOmh5RZx~(1MCyjOG z?g-tZ!Y@pS)$P@S1pM^;fWH+swhpVlw4a1P%+@ezvQ+{D=dQn+S5Fi?H%~0AN}PVf z1vui)07smvj5g4;RiDRu;gMI$LZs!h>*@MG)m_l?lGw)G8zk)pwESRY-%swQ%+m(( z-uq%~G?xKp^AFSEkK)~NSqSdO6Wit_{ApR}$yY<#SR)LCej~PawWnffNG#}v zF{C@k1-eVdvwYDbz5q>!2DR>n+`T55khqSp)jf~gafmoccxQAfsx4V2`B7Tt->%Gz zEGwiS62HzD&eW33SE^shiTj>&0u8iLgSi+9zUs7kbe{q)jE$D9ns<-l&vNT~z=gp9 zxG>hW`UZJ`mBlyy33wJ_vUce(zzy$qcgt6^ojb9qafVMBBVN(CrH^;0dPUZCWmu`b zv}E!`Y<5g%Hk~ZU0kqYouj-Yx&wUkcg05r^XgL|!cJqTEddjOp-?*aQ7X?3rp{%D0px!rN>Y zpDSZbwLa;5G<3i#BgcsVG-MGkEJIQR%o~4Dw;L^JjX*5q$YCJ7G{BE~=%K__AuTk) z?FIy$3PvBxHjI~pB2|z*8CVEF7p~vaz;>2q$%ohCFBa=UgwRBWIUC{=s2o24>Oj3% z4R<%(_SGy|S{HJvAQr%LqmOnAXO{2s*2uc?HRwaK@Q*?+mj~u*QTEjQQvi@ME;r6b z;fYaF#5%rh2_k$H2Vy^p12s*v;~8Lxdi|BzgJnIB`}OTwIz44caWP&PhF@tXbni)9 z{VooaTqK!(T=Q=JVFiETt$s;zf!$NhPqNK!US(`4VE%+vWyHV`7g1h}GU1Dk3a2Pt zH~0rl_LFS$*gBiu{na`%w1$mvdIa95Ik3LzLn+de|CnahKVQYN#V2;pqSoN|D9L@G zYDAVV>B+jZ2eq!;+_j)z7<&`oOsKsl&x3Y!55{my%~i)u@=1IBohL5d->NQ7Wh2k4 zca>v`(}L!aZPQS=r31~{wIvL=iKC`OUS+tT0&E+r$KBIF7(A|U9Kg0IbnLd(eEBi$ zeAT#H4Cx$X?dx0T#a1gifc_%~iZU|}3x^B(K-$wf<0(jASGFpH6}Qo-Z;X` z$AS)mpiF^)sBa-70Uv$AX6e-oi1_qaiKBob_i<$yoxmj}wllUjrJ>($RWA3gUw~X2 zNg(Pz#~k(%Yva;(2ERiaVyY}1uu+>TjaJVr!ApG?|V)AG;o>__q{$1%E5(+=xL? zR@s`wRbv1vG>g^;)rjhS^bC@=@jV~rZn~9|sb{(60eYAFSHVS@7X`&dI95&H`b_jm zK6Q_&AX)`>yaET%yI`0rzQ^Yhz~woI6dq8-7kzQfKzHPqxiRAI(?gBFXSsJPvN>>@ zsT`eS-XZcu6ncm8g3LA-8DlUZ#1Ev^80igtr0ek-4g#4`pwk4wOkT$$kQPFTQ9vvt zkbqnIibqV6obc^X^SPIq0^l0(r&CIX{*1lWDUyq^F>ku-D%O#lmMj~ba0ep(k+?i4 zTOfK=Mn1Ileeataa%ofoZ&tt;txE^B&l1f>!}H{kCZ~!lX^T^s7O4@Y)o2a#v_vp6 zi^|!@4Db>}pgPvLW+G{{Hl@9(C(YTkJ=1bToUeMvQmrj`^q3kxsvB#C9Zn1D6JEdn z#H2>QnpfW~rt~S=v#knWlFOZ7`F!SCVc3in=3DqzBs1X3`lCIl_nH1mwoDSyaie7M z1G~jgaRu&@_iQ5m#7tvH664U8*%WV>K*xcYl5X)dK9WxOwVw$tcE87bJr1vlt=baS#cK^cVrD_tS{7Pu5jQ~_rWy(=a8u52i*hc=Doke3 zF({+_J#73mZ=LXw-k%NJ;Qzp<^y?n*V(w>v@80?>pVd;tN8eqs%Ar>Vx5}smOtA2I zBtY1LWoAs2%s}_yqr@ERFE{3;L^WH0!-q`ggvG?WAE&p_If0_kSdt%h`_e*A84}W} z<35u`(;`e@nd98bPasEHgREhynjHlSTb}dGe2)pOy3*}!Lb7b#vWcYk!%rh80=rVa z^LZz^h-h$Yo@ms7k?MmIkoj8fGcW6Ws{WzRX%eZrCSnK6rd3DuY^vm|0SIuUKhkV7 zD0;i9bfOzMxQg)#ke%e=e-Q(_7vPt~RXNhgzu;sTp6@5IHhJO4JpHAYQ6$*bX z@2(G*j&6KgtW|kw{@pD&MkIhP_iaSrmQ(x(4q0X5*9x@61z#vIr6TfP>U%wd!xPQOT z-q>zqJR&gvP~^b#fE2ti#H+j+4?+#5goFmr{jKr`jg?XC z@7bY$lzYME<`9p?MjXis7V$V(91RQZ_>J5@MrkN_xj{SAn8x=e1Z^=SXgOBz8wQcu zz7_qTX;xD2vvmHf5`wmc$$z^ywzKWB8N7VA+_ZZVP&>1j2G+=8DM7!cP|FoGdzE5N z*(BNB z8QVfUWRp3Gxh|KZD%f}276!0>Y`-)G#6$u;sYxyN-EYRNW+xyf2xwNoI&ae2dK@@( z?XP0?xZ79t=_vES6u=#!FkIi*D-kazpR{Yu<|*#9+{1S%+wHa$<5Y7-1rvbZ-xyjz zDb3ces(?^{X$j!+nzsh=wQdY8g1hM-8JIl=lX$tkEyxtdbmRs4y>XCECWhHpt_iby zi?e~hJ+1L4<7OU9_w~>22;9Hfb{^@aw!T0N%H!)wQ5OXp0FH!+A_OWcFaA85;S`pS z&nt}oA4X}b*?zKUQ6yXj9<5>0a7vgVBn@1)dgAm$c(KC6au{Z1y0BpP&!LOo_j$iA9nKY-G63g%% zut?DvhiCNcb~smhJ)vvD`B*z63Kw4sw!iqLo1Y7bX~isEf)C5HgAx#6*qPpIneb%p zmgj@>c;ng-lLgTIx;bOj(GzEI%O+gS?@9)rKsQhpjzxz(CNEHXh3_fQ8SGI50rY<* zFG$+%SGm_nB&Ou%nuLfhij1RC0C^}y+T*euJ^;ORsa3Oj>3#$ijX6vco@v`pnLZfr zd^x^l9-s7508GIm483j1oB+^EP5#R$y>nvs?eTH-hu~T6U$gCB*Sm?B%KYia$c(&5 zq3$ou4l1a!btEOQf1zi2%+ix&=)P$-qx>fpox>q91K?uQU;mtF65?wY#D69Yg2IpF zl{XsbeIKn3j%q@7u}n3(9)1BaqdABivao}!=dHrRVP`OLHztTBCfgn$l z8=pntan+y2!yS*{@WRScth;)qv9#<1xZF>HZ1gLbI?zLAmdHRZC$b?S4XPL#V z&(Zi5sQ>G6#VF(P5(hYPdcY;`59GPr?ElDf)eas37C)%MUnW+`lw9gC*GZ1}I@5;H zh=yasbKTOD{gf7Q*_d}86|5qB6B1?4TLlPn>$v03pQl$dea!^G^f#k#cvDyW{k}gN z>$JnewRy9p2z}6Ky`~RMyU0D{hUY23GOq}YtWtf_58RNHaK4fgVd!yYe+z)c&2%r| z&sNnZ$wU=ikH^17Ka3&^a=f~YM`|kP-+}&&JAE-03$K760gbZKmPGayQXoRSdrW`y zT9)9` zSnee9I|B*G^{CDT0`q2^AH}N#noE{up?|F`n!bO2Ry<^FZanRy55rYKf^86YlX zKmUY8Mo=W5LFAaK>dVSOf$bL|88*$T%-6}~)Y3_xc(YqwNBoroqp99V>G4cc*8$VY*7!ln8zs*bjrmgy^zD~Ih;K#|NS@VC}^gN;{Sja z=l*B)@xKQk{C^59PUKeh|CY3JYe-*%M~KOvcKBaQk6$AgVD$Mn#H4P05~dM=m@s0{ z!3X9vhEMP);3g&%B(^m4&R-yd?gQs z0%x_gDe`xobmtzGZRggpsdC=LDP!Z-Lmv$7FEatE-)7ZLHIqk($=3tQ+?f&&TOwR8 z7yt#P`+bAC9_HuRqW-gPK>QT|DqR7d&bar4}yCIJfsBaM!X z2%Wz_A6~vDHfVd=7+Q~jjV<8OxNA7qMOo3P)oF$ecp1=V1cr^KI$U86K$QH_@~%Nf zCe-8ay0i|oB2L0Stx?G)<|4*|=0exd9s8xmg?4&f>iFc>k#2(!clxkM~; z%CXh;G+C8DB-P^1e=QtG3fVRfld$pLKlmtXb)fDI%;#zzva2xZ<@~Rz*I}}3irj&@ zY|-9t-388FjGDoga`#WHT@D3rA*y95@n4R^*AAu?uW6ImhS>SWFZ+>ygPeXno_*+}|0$yw=MFT|~MMB~b`{i?}I_W@l5M-Xrl=%A47}7$I zW5Zll`nT;!;ZB3qaw?ji%FiSZ_WnEyzk=n$rq+-KB?wH`PG2HV?tbk3K#F_i_HqpmT+Q3xnsBvsWJt(a#d&ckQb z*b0hpQfOn)#BKv#yr@#5nJKhubVZtY4u20lPO|Nkl}oGp?auqcQW1hZjnjdUo5v0> zt*a$Kx6yVLX%HGK&<@WX*E|oEk5{zIC}n17R&^~!`0K$`k)5g z)cIh~GR6I0~ytLN8Wp2mEDG~$5dlH^k2ltI4= zF+BY(2kdRRqNG01^Va_GDfw&2^FRKr0Fe6M?~zhFy+?tCI214k;C4(`ERK?q$@?GU zW*`aU&CgBUuW>Ul!8dyLIBs@jNtMDoN5UdtU^TTB=18UzJMY$P(9cmrfwONvZaQ`4 zsa*z0tz-Nsf_~U@>~`|H1Nu0%VIT1a$BtNC%47zpS^Fa!K`qYZVz{+cR@k67_51K( zTmuBVp7`2F)4ARQy5U2w)`;&yksJ=(QdxB0!}?E8QSJr#&j`P}vV)wjogD>{1Sz=t z8zxeu+jU19gk{=~2zAq^xUy5iZHD}g z<;>NJ8_9(-COrV89C(KCZk86&jt_D;;_@wdZ9rAD)m#DpQ|piEeUAwkl8^sW_`v^E zGzsl+)N81DIf|Nz@c7?V6{4}ne%3(A&i}Av|Lk}cfVmuspyfITLHkTxsvWpR5K5AUwqkkmL>9-olyf~zw>UfS@rO=n}w zsLYbBEJ=%-$L78q+V{zPy*P`V>us(^(K)>}&l|KgKxB~yi*b!8j0UD(>w8qi%pP0i ze{c722{*3NvF`c>N>hfcnM~@11ui|R}!V8{R`{@FT>gXM|#KI#*2D3?gxT$ z4hN`oK@BGAXbMItRq^mgT3UelSl&b_cXr4A0X=iSAgMMM0f4~YhE2Y0CH4Q}5pbC% z>Xar8z|sH&{&@W4@9rWK^*q>Bpnkl6c+L1_6Zl0z?6vz)Wm~~jxdJ>QrS>#X#a}>b zBVy66@x!=q(G@RwUoz3ff+;IH%)3e4{b2#V5 z)%@T{q7+#z@xoxUif@gNVt|AAa?Pvxz=-p8?1!h%7AdTY zc8-YqO{JaqC6R+2RcD`AH*V$Pt#TcCG~(xgz1*~d*7Svn%aDm#Uz5&i$fnU0A{qfY zNu_~Z+xKDs8CtR}7?eD3px-wEL0y-3f&XBBJoMJX$wLr1+vp8_rKGQ5?O|@jhgF1S zYC@21F-GTGPr|H04{<)C2jL7OTGXTD>P~`4yU7jh4mdHZ$hup%H!3x#l zloCtrrp#o55qOSgnfX$0i|627tyv>E(uq6p4rUaUzrFrSZ~S!2poCM$tYr{;xW$sI z*U$u`kLMij1NF(W(g{@N+iI*m|17Z5V$%SU-;;k&YiU-9lAwVDKLLC+f3RTU`OoOV z8n~Qd2!04(qNuXfF_@aZF7upIc$SBPN`XaN>nc)W@SSZ=o*SL(qmdihcU@849^}W= zb`RzH4>vam&+#kC;2TZAA1N_vR641SFl(ajsJxUr#RT4; z&i10?Gl>}ulDiL2B&|)^#YMHS$aG43hzV_3=4@(tcO_-V3K~!bNKe=$6`)i4P)ex| zl}hu2 z-6s&M3L5siC$TDCC! zid|J7Ib`_A$}% zvF|6#Pk?W05%{+LV9)dS|4EkGq2lA0^#XpO%DNObj0Uw(_LC{9iKwcHaRg36U^E2< z$^!#%fn{KKb(`;P7%wOarx1FLY}T@n_wY)a`puh<>^s@~?niSsmv?#gqCk`1fGw3QWE_O{h_0 zX%O%<9+CtRbd|^JxmNlphNFt;o;PD*cZMM$6AJXOBa|bZ(eTjZVSGu(AuVBPD#U?rs$78SY23br1 zvzP#Q=y+62@uq5Sed`x)2-!A@cIVl9mC2C4C`|mE_9%1vB_n8MV~G)M!`o^8#Y`Ul5y?DidJ(}O%W=Jw3Men`1P=b5arbIt z&(hd#ZgIwN{)QJbK;c@feLD{P$-M!-sXv&N^054;VZHpBFRLi`!A&EB)i8gH+Oy=nN9%h2*&b$3(y(GV5t;5|h)`XA{`(?}%e6@!0p(}4tb_n>5 zvdp(z2MUv}u`HR3V%U`MTunY&F?OZ`7AGlOZJK!2mWRHS`Co5HH zzc0CvRzb@Q%BFp()2?}Y6?5U5&l_?k&{YukmK4FI3N>|?Dw@}9dmaDZRom&_3)BIQ_sXBWL3sYz zK>jPD;$HM*OiZ^&T}c#3eh>T^c|d75VJj<7fe&@B?gebIh*x9LEU*QCMjo8$n=hLR zJ&FWvOq#+})MRN42fJM0$kR?)4veyMSH0LuZP{#yq_(NTqQjG6Z@*_#$0s*1?NYn= z;S>Di8YEH6ymHa(Wn4c3xCTUGAB7lhc%Yyn4tRK+HTD}_=XfmoLyO39sL1IX(WU0$ z%A1TE@lXsO_#9KDm3VGq zx88tM{CX-*J(yn7)*|vL=tul?CpdyhoQ=jx);`hLgcyjj0DuOS52sHT#ISD($|v=p z_SpebyaYM3l!kaXM|5Jt^ZS(IDf_C{*PJt&`tjb9d}k-DfGM8*rzyT?p8iY;mm+ik zq*c@;nQyVF?tf754(Xi+)hz#pg~IS4pXWh66&BkwQG|e^m-O`U9@o)h;VO zxBQe+!?esf>*iC-g;Zw$SPYW7@eRKBCR1WjC>*h;hme=b8Oxptd|SJ$yUb|SJNW1A z_OBF*if~BimG^cjIo~-`g?nOX?K9=Hdu+vaR=Hl(Qopmz5T!)qyxu~bGa+25Yed}& zYb;s>!^|Y?$8iK9`YM6(gK)D;2#`~0uqKRaQjGQ_hJ46e8*UO&`g#DgXN92I%m~foGq{+EXIy6DUXzpuus+&~J zHQII6IR*v9ihl*~l`}*X8lSu!Upy|h6i)e}93@UvMl2TC;xuNn#l6}1bJ!KL@&Qn`O@bfiz5 z!o*59nQ}(eCo)iG@j;QdFuP+AXlvz6IlcjrK!uM7p*GHOkcFRX+^V&=Fsj_M?7!xM( z9iQXMZ?DaauS;^Hz-M;zXE=ABU#my;zX_FUU?v2$=i(URm0Iv-O<{RG2pA|J^#nAs z^`UBznbDlB8;saJ`VWu+s|YEc??nf3VKyUlClVpXt$oF_W;{*_Rcr4wl!>pakmF=-4CvbF>vxurmpfv zd^s##ENG+G;WhEyC=fUoynXTd(?yJXFosGvV9_8}3i^G>PIe6Z8G623F=A33@Q$K2HM-kr8F`I z^wP=XPgHX9Y$z{Z{4kbQ3-(E8F6L0bs-Go`i?-tKS;5dye5=(1-hc?7jjVR>oqHVw z>4|^Umd{rDj5uLrfajViH)A=FM-YL52>FN#PoktQC%NqVv*>x1Aeu|BvSSFXvQOtv z;;&)bXyzSGwXCpR%}TXXKD2Vx*FpudLs%9(wLh2QO zT_AqGa!}j~-cmETeG=^*yb!EttSOi8CTb_PNv&Yb!{q4Vpa;FtI4)wtKcv^ZD=c04 zMgz~`f|Jno({D%Q5DiTZ{{PU4{~>PHsVUe`JV)`x59N_b<+2*O)})0-qpmz`e+qQs zr@69>4pz*1Tu0N6rqe05XXuSUBgRv4T!lG_Z6q<5p$}9Ri;gJF(tfwxvgFIpZt%(f z$Fm%ScVN1zSI+7g)<7d}1w-3S)&yqESEM(Zb+S2T0FBu6=5&D~%5-qmW_%HDohPh- z9fLgn#xiYllw|^E$5MFc#oA75*J~+|Tsn!&)+^nD++8UrISSB~O*SpigU>|Lw6nwc zK{@2MG?Wwi6z}EDLD%Ll1QWg2UnYH`a$(l+HZl}!e8)>1N;mwL#pl%zF&`03MZdXe zF0m%;V_9f+8509@moDr+LRP|HIyZf^?~RN_DCu5nO=tN$2c1YGk}d<527I}WP}V=BAO$8 zj94NHn#*F9y_&}X-@|RijuCf3=?RFtD+lD}fAy{Q&Ab76aFpB5lVpfA{=|MXrg+8| ziJzh*(is8A%VQ4~{_O+1goG9B`#<#HUpj)ndoVPeSSsUxdT{BhQ&9w1Fr5q>>ZzF) z_4LzBy`{{ly*uKafKeHN0)wvCo8`f?Pg~C< zUE;Mw;GEf+Wf6>fQp_fzoEE9X*f zQINaww4dm3Yk{^YKgx6M#>uKLiPEeINlZyX|3&srip-uza3AQ@f26?VnRZNOjEp=K zMiH)L=bR8LS2~XIlOUl3p7Ei%TFUz;U*WoxU$KBqC9 z;CRLukq|h8>o@)L;y#*L+yr~pvv~PYD8)|_OJ?VGIms^UcXPrgfa@Wyl^eMML9E)q#Ay14Hin0m*_7Jagu&vZXd4jO#7V%?T?~rpWALacOId*uvS=I_EBg8$o_@u%b4*3 zcpqsl>iflyVRl{!>lX~w9s(r_9A&xFff|En2pm>YjAWAsrESQDr9Va?CR?OVB*wsz zeX9H=%yJ{uK32pw#C3OJK0&7zPGQbB?z>)BxIU%FD3|ffVN6p+!lLv9d23H@^@R_6 zQdE8SAUKXt?a=wcUlK;o!!;pt3R~(7Ifmy4ZLs0=B_kOxXm5{8JcwA0)S`8LnQ@uC zfA;U^=anlS{NvVg6*wP%klM!cOR1r%`>0+1(YpX>m$^TX?dHNTe@RDyltf7(!4VHo zzF@1`Xnqeks4*_y?UM!v`aKt>-h zc;Ri$0S3b~RLq2rarHa&vKy+qxhvet97cv6;&>ULtv78|A)6*&)&$o|{SpTeZ2wHld}HbpZgvuy4T1}Bd9HoabpTg z(~=?yKt1UI$2TH-iCOXf6T8G$s5RO4?r~(REM?SV!qbI)jPM;;G%>Dc+pn18f)x}0 zYikL`jKKb=S^h&;AHyebTCoot z^i6~TnPZr3&X#H<-{%#YhEU!O5n1$mM0^A{1h2_9l6D;?J+W|~r->8mA(GX^*|^$G*z?t}FzQ(uCI;(rrSz6rBs=mWLkGeJ#&J>?N1uxfni1$} zW%W0@Zn@)RDg%;bwF0Pybv2z_N+sN%j!=_|?Rdn!gaXlq?_Yq!mhuR(WXM;;1stKX zx>K$y=c{>}xlxqR{w_8q`~nKii*#A2DY*502a>+_sZT-6rAeZpv;YM0Rn$eo7o`%@ z!nZi}y$Jo)W8XGl&JaHZapI+tDIk?=eBg>pA*an3l~Ih-$cJ;Duf{RUn2AF)ce(!K*5&(uwef~A<*?4 zMR1`gy7J33LLFToGNu>mi_1b~R0=>L0GSIY1d0|oIPC__F~8IM{+;WQm=mkfT>W); zl-HSe_~%Sjuwo}p1V|*sl4sZk93J6j==30M!IOMIpys&^zOKgx>yvyX_1}yy{~li- zih3XW)#S?#azNXv%4YEUV{hAaqHp6fp`fh&+RYC*rZ9S5SA`mF7xOc9OhIeGf*mZ! zbRBg($vQNEXD7oSo?uB*$5E4i^IHHAer5`o2#>;`X)~p{VacsF^mavN*;VQdjeA9r z%0as5&aO>P(4DQ39oC?a6SOLpbwG0jT%Sqk%Fo3?Q{mdiUZK5+Q|MizE>Mq}j>(m` z8fL~ui5m2By1fxST5RuCU7Y(Tls}jzTP}dSD!n!^E81FFCHJ9DSq+VjVARQ&x3^Z} z+pKU*a6ZFPh1@`DOS4G7H&1|V`)vhxC-3rs0kB!g{TaWXhxea#iN=BI#B+=v^_9K7 zG}7uW7?_MYgOqwLuRXd{tEF{qQC(eJQmRv)r<*3U?>h5r(0|h{jv&uRUPZY1e98a? zBd%*=p1zcMKk8ofalu|#$RCO&Sjv&YLBEZugeNK~@Q5ddoKOncYXi9DMc}wVLD0!S z7n({-5Okfns&o|cFl|HxqGIMZmW}tN1zN*b(KmMFR65aH@~F?$2KVKB9@Bfrqu7IX zi)OIZw)Vy@hxrCAKlbxoKwmV;hf)a78(26r0x zPOC#u)PmqHL|Y~%N_Nz`$QF7tOZq<4uOFp(2gexKLWG5;Y6qv2`cv@_^I2UETPbFg z@Ahu>q!gC{PVLcK0`3+!EtDk$AV%$lYJ!zodQVgaJ_I~FBfT!x%t;4~Lp(l*j9dk$ z{i1xOgbd0K?BHV3AUG&(#KbgJ2PrY62{gY{qa342-i$o`Qh5F}y_)ED7aM~v&>0@Q zD>x6#zH2INqdkK8ff;d4wj|IS?pMC>zV$F?=(gR~~^dWEL=;ADVhjYGsNK?J|159Wtp(NxgWFz3*-I zIs)^3Wq7V|CN$@V4=Mt($`7BKbSgFmH0*H%#6I4Xe{94Ui72yHaVrhA@UzD;7EYLF zOrBF|BIPzX8-HT9t38{wQbD5YYp|+LYNFP3Fv!c>enMq)*)=;)Xe$=JxPMkM+b?54 z(?CgKcVS+7PnZg*&%AeyLY(}yf?a+OR^LpcCG*>jpcCwPxqer8s7X#4^Gu)zN; zG>@BVmV@RPLa8x^IyQugt3j=KXO}~6%vNRzENxvbpz#!MFRD~5o)iI42l3dtA zB1=!_e$;%jN7PX|mLl+otO``~icOgXXo)dLW3>LAxv{UjrLF=jHyz{5Ei8$oHu=xs zM_m(+Wzf2JiAAs_p4G;0^6V?+3H{DToS(86`oAoq{xM$vugLs;iEvmnK)4M!b57AF zY}3)WDYc;LTP#T4}C9m=cd2_i_dTH|RY8-oEu7a4E4{6>%V?EJJ^obQ*8$buUah5uBL*uqF z>TSq^vmHh zRyL5NVuB^Gr%bEPzL(}Tn>#f;p7P$9)sEMacAbD@e}&BQptcfTrghl^s{GhaDb7no z9^QrFK4;Lh$8Vm0eCDzja_}4@QPeMjVXR41FE4|`Jn2pNZ|lPX&o3p%z+c_)pJ^9< z741K?Uxme5Rx8_mDeGuf19Q0t8S%+iIpc;kBplx?7Udgsx!8>?=q@OIutKCIev;8Y z%0SYlxxkoPTse*2^Efws^7DUyGlUrdr8qD~f~po8<3*m9<1TjVU`bS1#P>4dH`oF| z$@Goqsr9(^*8-dlKXI1S-^pk6F+kDYc>_W&1`*_bc~f@tU4P**Q5sF0U%94lpJAQ40Skk7{Ho+vS#q)gG4QqXGl7R30B1Szn4qUp&WHbi z{b+8iXi3m7;VArqxvh0+Ys1&S9svP!jf2PT+ltv0=bcAiyWKX1RPV4NInV)-WUB^H z=VA#tr8i9Jl8FHK>Rhs__+i{vQFb+RzVJChRZ$5G(1__Njt2dMCyp+nLJmcUy}sfc zH@c5?wiosZsHsD|AG`QHu_`l%dEdd0NV_=?4(3&B!NMe@VQm6KBd={ABffaNujgUN zH1S!o@3@PjnZD&23sc%oQcPVYn6djco^8?076ioS&UKvKG@kFJeOiw^(45 zi~vIvND*S@2|hdegQ#KofQPc|h@8i_Wcm`w3w8(>{HEzTlmB{|{g{~9{z>}mpwUw( z{2l@Vh6Sw}6|#PUV1Y^7K&LwHg6qj>8stTGMlqsVChHx@6zbckoK-nV&I6|riel6b z*Sej^czjq?@!{yE!PGUak78zDO|Ajzl#K7;8#x@-xw4U7{|&`bRmMQ$(7SkLs%Z2g zdx@3a^dPorLQ_NZ$sdG69nf5GcfV2qUK-l4y4-*Xx*z{Z7n0Xg+X z#rU>{R=XdrW7!8eJ>nDJB5w30MLl}0|Ch~JrXSKB9IQ&dZ)w#nx%P`PBlo8W(1yve z_p67GBcuiy^5ZODPG@SwbD>weyEVLhPJ|v7BC%QYI$_R4mg^o6!;T|QklaA-7!CwK z53EO1xmu`sfd7EE$W{s?Ro#+J7=lA{HcOVELft_o~WIkE~}icO1ClL8VDjm z6`6()Nr8_*ULP{&U$UDW4$hKMIgz3*_;&iURl6H^zyiT{Uq_b!9bBgOHrtB7&pmWb zh&d607U$c#XJ?J+eel!gK(3L*V!LF3A2;J-ZFNtz3myfM|4>&zOrZzvHBVR2z4BFy z^dQau!`)X!MG|aV;_mJ=?(XjH*0{U7ySqc91&zDAyIbQ9g}ZAv&iacS8&1Og)iqOb= z|NNcziyu>D@YW)xnu@Sw@!OK%$1tqY<}wZ5tg|F!dS5%;pg1jBVEk1(uulXCfKlhe6! z*{ojE^0`(LOkC%WP2VP6%b2P_fr^P{maM}oo1+jU7EAky-U(^m^G^@0$iCaOCQkS~ zd8AM3P2Amt!8{Cha#-XRPvO#$o}WrNb_!A~W)tdAp53EEiW$si3sy0Da?PcM0rd85@hx|qm9QwmdYUboEt~-FaRa!25 z7(Ndd@K0+^oSpo)7hl7J$-l;9#`9l$=Ti<}RYBFQgmqWjDCltmd#IpL@6wG)_&Cli zF!Vf7G*RGf6BZ_kS<}@XtEhd0*iH!$qQ^np5BTqpqQZ5UL}*A+$;Zo;71_1diH5s9 z(Dkr=QDBu67|x?3+Dm%XK)udfPp1J1B5cBH-gbFvLKuBy34*Ci<*USz;9IKbg@9EX zhEQ?sMUulC>Y|jcFdb9D;@@dW7aRIAPJ`o6tQMWn@c~9J9|bL93?GmB1md*v?^eZe zPhWee@A%28Ob%3}UcD59R3=h#(3&uEFA6{HtEZjhD9O4meqQg<)_PM9JOTGQLn9(7 zbr4>Djb=x>+o5DXV2-hjiOpIIsq084uA?E#QKLKjeHswxprYiJxzo3OUaAkUO$7;A zWs{WD_dm4vKF-0iI2GE!ZL$wLGW`CGh8sOB85aMkM%F$*{5ahjm-Z{{+8L5}^pwZi zwWle5>1mRmQdH#Q-L7T+@-qtpotq35`7qW@@+r=DXqqvd_;uIs6bQv-n@l(rI(gLW zw>5;DM})=W6QZQiTb8U^^#Qfy6FW_^AYvV!z>J(c0(Nt?V*3k2d(g-~hG384`)j@M zYtZ|Z9>c0Z&fvuUa+^{lTTE(q=eVE9#K65}b>jjJ(vk9jwVtd7u6pJf=0B_bRs{24 zO?<_U73{x+gyZ?IEqlOs+b?N0oB&GlxOE5k1*~wFu#Iw=c6#gOnaTz16Uy(;Sysi;lhZOTl1rVFNvqv>Cjuvbslk zN((u*04}Vi(Gm_f!a&1iXc%D(4jjgD{lP4WA(lCfWJu4q8?u8AY0@UNxT&}8f;YO$ z74ISMqT^gJRQ@mW2cy2UJ&SnL-vl$@a(|n-va zZDmfO){mC)I#o#;nl$2wUWqxzw}K0vD%JFNLUda#E@$u}$_QpV69oLP!Vt!q=omkG zPxEgAx{Q#8I)z3_8PKgR{z_tg4*OVWltg564c7axt=zrLcNB1xy@Q-%YUqXs_>=h& zZF;+tDo)MkYzdAEFc>^`=zKq!_3g*$>zMu;P1yjj)(m>r;m;HDifgOZYh_yTW_V|qx6KVvuhc#9mJ|YNSgCK-K4vd(%6jA#Y5Sp!v0hovV@#03bEdy{_PItuCQ z-uKL=bP+N?;`W$Hp-sEcm6@pcyR3}@SZ>J^$jA)8-?k9NrIF(JL1KChK>v%+t&F7jtMXT({>rh-O_nPpX&l& zL!Wm@EuVcz(lhi&{z$>h9qCz!KuM;LpsS21tOcp4+;6R%Jc7<~20kWIKq;>)n7iMn zhb(bwdOomC%oqX#M~2Qv82)|06+ih4!2Z+P4G#4q!bpNMhhY?w#6wxTN8H6+^f{%2 zX`Y}F&JIZPG6@(sQa)+)#8g?-G73NjJj7qqFy~`NAO9@X7QTmr z_kWRh^86>(;(xE}w30{u|A(&AFPZOpPxb%L=sF?zM133i8r7Zt#Zmpgw*LX&?f)UT z832VgYL^kxoDOys{57h>(JNOn46NW8$Q~((&acq|>>|yKoA5m&D+7o7fG0lGPKW;( z)mwH*CU`1>hchz(>j2;Ux92Uu@3$G^K+sH4o``_Bi&%3YEhRT4qBt|=7g{F47|+w> z6(iqyYdP@-H_BMjaDku+s`Jhp;pMKsAKPpEu0#Y5H-QKI#&oA23=5He5N*sfp^p0p z?sUdr{ANJKWjm`;{SRvgOus&$tgU7@MgbwWx%pLu&Zti&vc@;N^a|Qy+)nj**n?C8 zI)rcC6mzK}qnO6jViB7&cgKebYo5!zGM0XhV>H7z3bxbQW3Eg7P+70Uf9xZYwoIbT z-mz1HGr)I$ko@lP%G>*S>ebsKyMMA?k^1Y`wl>9O52nfvhPP&(ML>FttVF>d=ErH@ z){DplO|9h0(>~^g2zT^VW)l+>F-ixZZG_um(sv0NhjBt&>A4@V!PM9^xEM#hH3Ykh zDEO3(YlmJYCh)sXezv5MH#pbL(Oo1{0YBxxQ2U5)J<-JV3KFZGKMr)^(^PtHbHy^p zhmLfL$Z!hK8g@O%)H*J5|R9U+Nj+MT9vxvkOtRl(A;Y!m5stI@E(#scbDdaB=8};46Cqr*b4F5Wwy;NSoZdI9Q`1*w?D)HNo zPX%ewKGmek29l_>XsmE6b<*ZDtZ;6zvqy7LMSfL^wta>nbJl<#bQgHS6v99m>`LNmTT!(!e9dGQA;=8@b=33Rm5-QdysXw=mNJ^ z=ZiBgcCpSL5UmrLV08PE4%8OW#f7UhYEKAMZr_!8o{yQ#Woq%#>M_AkAYEv7)L)!E z1Y!I(z{w~Yq!vcL`_6T>=H(^dAA@Lw9v*4wD##Gxs$b;W?U~MqyTFsV6}QXcKZ5Z3 z_&%+G{gQq|Amrmc4Fo4%I9JFad+H_Erjnq9^RWDzBn8`;DD&-=6Vt( zVWhR`<(+v06oktNTjPU`2|2tDY<5~ZZ_H0p_JR$5?q-m(kg8gy0n_M0NK_RZiseEL zoekMh+yZCOQN-aYzcg4Mm2g~q8O83xnTDw4xp3}V{xF8FsEZBMpO$O|N^SWEe1n8F zYCjb3RflD1mf%$tBlL8u#?czl2RGMac0&FU{HA59HEXu^MGoIn)LkLugA2#wwy!k; zwbC?aQ;$QGBK#)bE`aTj58Ku@Op-s@Je68pQ8>h0pU3gFt=6tWzF%65O=`@1B6L9z z7oN|`|0-k>G4@IDx`~OE(2;9_mbY^5TjQ$CZ%N(b0wu6|(WMYE%ERM^i98fFwT@<8 zl|FNIm3QEMUEA~t-P5pcbA{}&gTU)=Ii*LEnm+C}U2SnOMSG5;RqU6n9LKNGpIT>B zwmX%d{FVlI$F|Zr0dHPq)B4uV9LYN{h!9YGheoS42v%tp&oOy%cnf9DijHb1xmSaP zezgnAV*`d)tK2Q26+lKMYq`;@YCG%>bQ_jWQ@HFtHi z^DuY$ch%N(^(&=CVVuuxPMWHbW!PR2TAOA2IQO7e2~$x?QRdze2EV@aBDa;+GXVL! zL;z)Q*6TnWid0n}TdLWc`-q2e9j6)e{lhLvf) zm8mTJrkSeH!EPG}S9jIACi#JI%Y2OHR0+@Eh7W?sg~B~Xr>pm@C(TX0Q_APVz99qB z3v1}AtagUQ90D+fYyM(ib(pzgR`YE7BR$A<-U|mG%3AFqF_8F)3|g5i%1z2rL;a26 zl;7!_fp}KBS|i!P?(jvctY42e-;)b${yQY^h?zH(;YRl2%)> zt|R#Gx7$8~Z!yIDtIu~umO61`IIf)N@*C7mX%#ySa+Sey?>hLzRGjG*V)(_@v5Uzu zQGWxM&Qo1SnDgNbmATu|0!>;nv{!PJBLdTxKQ+c=84D0FU2M}tg?_e?Ma09-A{LW& zzcu>i#dqt^%nUm*5Nag!rt_&_Wk22Zq)ZfYDhG2-8u@38%4b2L4w+*pFV}#qwK^c- zX+Y|5)-KqlmqYSmTi3DwP#VB9RJLMQQsIyIJ5D)m(a#WKZB*q9<`J^sIc**Dy@6-A zgrro^^m~2;GwV3Y;+UoC@u{Jx@jT@QiB3-G$pJXVKl5`&!G%NS(t?1b`+S{7Xi9Zq#ynO^ z%P_x2!@Hh;0HtBG^fhV5a3N4GG3D^cR+MzTv_wx ztpL7aXy}wQJh-dQ+*MRUr02{HoK?C-j501wfF;bSmo%|^Br7KDzuIZ=N~O*&M<*UU zsGs@8>ldP@9>A-gi7JG=gC;P2FOg&S$WqMa?p04`TwFWiQ*DpxLN~lvW zsbcpiQT*=W*Fvjb)KKN-f;LvAVI4nOyE0KhU|1!)YQ6Bp%aeM5uYM*OU$ZjNL9kma z%Vld9ugG}#ilx!1VY+&LsG8uYR?>p^rLUst(yf@jVvBHDbNuR|(J5xib$aNNaHC$* z#qLq0=y3e%pwTI1%5`SOF!oZp;E&g(P37s-Es}n{y2ilU5qS__`4}|nusrcW;HXL= zXWDi)yzkXS+hSu^quA=wEs@@8V+T-db$$OyYrm*fq)2r1N}{n*+py_=PdORkFEs0CdmZDQfu0n!cPK+9%|HFR^6z zs8ifIdDYhNQ8axyJ2Xwm*DS$iZxx}+cX=^+dFt5~?;{T&_3rGBOmug&{A{Gd(!%s$?JWx|o5uSoXBrdoq4un_RV-YQX+M%7a% zOKfFVrHGjzq+XK9{`^ysjr(hf;%`BNJ@3rnYkuWp^eEASHCKX=M#&s|tA3dP_g}sA z-e1K`?%7j!nw5_&qaLTtLSwt-3vGD5;$@-Se=}%5bWIb_-GmbQ)JkqRo--9AUEV`! zKgt`%+<8L|^3~6T@O(wfOu7GRrw7azf1bO6jeV+>7`pRjh3=}KdBzKrELs!XsFnz^ zKQ}8{I=z?CUahRL@dC_Ev&vbQ*P3_%Q!HxcGO6Z(AI{a~E?*Pmx<%Rq4UHA{=MY6( zo>^sceN(3MN0XteEM9?>1IEfN4O6CzN1TKv^^TlTgZYa5gX_xNng&hxjdAA$ z+LvEzw!DZgTWaaP)|c)8PS-8nbXSh&2t`wZ7nP%4JYTgkI_~ST$q$a_ABswcUO}|T zOKY3F`XkPHw8#rb1NSKUvl%aoXSnx&aUT(2j)bw!??GKa4K&DTBvd1c!6x|0BgwMr zro@g!n>p#lh!_)3=@ZkW_Li;4O<4~c?zzbiP!-3Ms3xJ$oj73k%*fT;yes(;>ySiQ z2`2`4*$#2NG{Vd%Q%uO4lG46q#hW3ebV$o46NDTif7!1mkbz8*rEjDa6O^x&)Cw)e zn&8)}I{cmK)6PgdP}Kl3Axa+W_FMWlbvG~G!}8uTOZKH$Z+ny8+~T{mJh@yF`#0-h zhk7+|=>&;J3>g#|^c0j7<`fI|00J9v6v^b_q-L}6sl%hp&M!Pf;h`4<6>vE^+b@MO zKaNLHq#JIcLRwMGg*SyQDL0EGpCUj0kRa@2f7x4lR>})B1wL6X?9hZf<68&Dgt;`M zlnZ1EU9w&}i6Mhws2Rr~hjguk3t`Gd@>bBHBsmvJ2kr!ew1b2TeycHqL5)}=(ZrSX zbw6W!QxvD?Q~rY@7P(F!x~=hwNPBUyl#ca z2!Z0sP4^#kLUCr$DN^dcRp|Fv$P+KB``#f^2&KPW$tdhpG?Cn^ot7(A-Lqw0Y1{3) zdOdZ|A|)9LH-b;ZR=%gqN=`CW-P2{iSI$aK)$Ngc>8J1hTKD>`kgMugu)mr8o;!rilGJC~dfEmWI^S8VYTFwNOIyneTWbr;yCGaM2rqPx@i8C6 z@g$drNrRP#)MZ&?hYGBwv14XlAa&(s|6pcltV~xiR?t<^Gt$z@v?Ocl@>)9B%Sh;7 zg;b_wcMi$fo_wFJYEjX@+e+CNqrp}APV9iUjDo}kF{7eo(kzH(l@QO%33q?2(gfBU zq0Eg3zhv4{W)dxdiJ9Kw{$L|}URgZI zTin@+Hd2DAq3qW$?KkAKY3aL39ABBcy{*DX%tSJ$H*)FzLj)b=yAPy zf`noDKKta9T0ab3lVD&u9vc)7s|^?;iD5Mb*bo;vkGsw$Nj?&uzy;Z!RWtvkBW!lb zUmnW#bS5mQ-Lu>S#i)xljCgd@&J>}jhsI-!0sUqu2gKOJ};pmAJ_GNb& zSuvKTfw(n>)9z_(*jFsEiCzm?xEF)@-_hOW8w9XiImv6Xx-D%?7)UjCaBbq2ZDHpP zf3>vvXk4S^z?O-7UsSjLa693ubV0UOFb0d~JBc(?Y!H+q3wMkd_pLjiR~jwMJuip; zk@bE5g=u^|O1k&WO+2VaGh|8UskN;QIr z{kODfgovw(^`dq59Q+}XrbZs97M>ldN&tS?md4p4>!lzVaqz`#;V0ft_g`@M%j|#N z_m22`GE!Hc%WPbuaaqKk)?z^SM#i$A8ff=)w|uL9;*%OnM$FhveDNJu5vbzb?zgx=W>x;+Z6_Y`X+hdEj0^% zci=NFEw{gNS&ZCXmjG%XrwEV7y(IRSflP|5+C^tIrJl$jg%vT!mECCNcePhb%fayO zT!Z*l7vK&m=%IqkVXE##o{|^~npmh57nDpOj1)>FM>$f2S&q5?d|tLt^U7k1QaBc6 znU)Dy?-3+G_>)~!+GVnSeaqiOf%3RHRW5|`#KC~X-u&~Ty>V#m6|BI-5T&a-e^(DH zYFNilq^sD8o&cPVpFq?lPtBFjS7qFBbs-nqCOSLdT6H_yFS$fR*>IKqBDgWe2~mC{ zg+i{sM%-E-yxie~$xss!)O zyL5AK!#jta%vd0dfi4FPzkIu)ID$)$jSBbt-%IBVG2%n$*1*4`h4F@8(qPv$^Hqy) zJjx-j;)SOl#lkBNJWe4Mi|5Sz2@*gnA;EDrOgafs(E)2J9Yv6^7ot|U8YX%&Ce~XT zGapQLK0}NEXW2nwKJZFRb^M`C{3x+6Qc8m6V6B+Xxu%C2`+E5bY?od%VN1!aP#V@F zf+asjhaiE$Q%OF>Fi7h(5;1YS6o96}Ck)cf^e&(@bZt6QD%)fl#_kp%e-Ssl#T=4H zZVMYunnkJxQMxsTVA4iqBO@X9DKm!OZ{l2xh|H$Th$K5j17DPsUV|MKGxON^{Ubcp z*Z@XUHdUZC07fi;4XNNR7{$)d6bHH>!ujX8s}x^iFgn&!wS`s)-D?!U6(idIY)2_-P3UKvh=>g~%3g!%=+|ug zf_-~6qnc2S^c2NKBdoDfHP+If00o>R;a_n^&7u3HNC2hiX(~^}P~0H_wc?3KXs4Dq z&;oH(Kly=Q&o2bOD&)Wrf49OpNbVH|&~VE!bhi8Z-sjMMBAH7p{@`c@Y_!psoce8^ ze$&{2q+?_6Uw8A2+@O4pF%Pz~tEBxj{_M&~IkQ(SyLtm>`V2;oPggM*?Iv#<|}l=cm$k*?uueNd7`QdBtoA|bB!9hn;L z+$-k}w+IKS4eKOd0}t)%Wby^0^0SP(||2oVH(ne>X$sA&U=IUUOIyJhUo{zTQ{&=5jPM zd7H$qpcU6Br|q*fWZuHr=(oN=1-VJF&E>jqVDsB3NMLXLZOnl>J;LU;cLu7$){_1wC(Gq+w)WeTr0In!4u zo!0!$L3Wmh-OOjsy!BFZ{PIEB@JdVyR62w}L-8ds{=Xz*?FpW-UuSk7GFANh|tJid2 zGm7aE*d%_*xGJ(N_K_X@>(v~nGIr&8>aEXLwETQ$Q0T#|H|B-In0Tbnzr%gwcpZOO zrggQ%@RXdP))cMP^qc78n|Hj-!}tcxkud#HbzjHFHD(idtZm`<)L-zU?pyF!l=AYU z5r79SF8Z?u7d{3#ZwNp+Hv3h1-{ycC+(m8_Kw0PVhS7ePNN0@BSn8JS^IDeNQFT9j z{Z24pl!Aosab!NMxH($J8ro!|F0kq4{j+Jt{b{(k*dY7zx}-toqInx2^|@V?i${21 zp6I-4YqwCIsDSs>@SIYpP=y>*23qe5sH1Hxpq8Zy&8nU?3izfPv4k7#P%pH00~OnV z6}oJC?g*1Xq8I1HV_fn%-0>InPUFtld~7$8z&HfjiPFp{M$G;v(J1_fP5Dp8DBp~^J_#p{EPYsb*NrR- zb}|!uMy=ioa`bbS@^cV8TB%Y^bBVVn!RM*%#L$E!aW4s!u*Noo+<=Qx#xUm|wN!Gz zv=eVth&uk=RMPe%$UKYzCZ@+?m;~=+Dv8@^&{@Zk_YD5k1LwE-%mKz{Gu*8QG^QBS z0Rd?B>!(%GQ2p}>*5TnPei~8!?yXeP*B#6+3oo@_7J5C?zby1r3D6M1z&Bpec#{Y! z)ZLj`qzrubRfUk!J&ljMihd|~cldRL-)t!#gpY`VVtYUW;tJpv2Ve);P4+y+nvmH#3@DdvFxG)PSVSiuY< zmGjjZ?nZu^kVU)aV(y7hq}M4drf>y_!1eR5dp#2Qx*pT!*Kf#u##2eTXFQZ*(1$My zf|I zJo=E>t1oXcKBs+kR8Hxu9~nNQUyov`>8m{>qP(wRy4Tpa(VRCcqT)+8_J|D7jp@r9 zWxn&Nq=JWsOybdza7^B;;CauDU+!+!{JQV5o_}2RisS1>t?PVM!+=i_U#E(=dZ-m6 z_PnN2NfE|2%ehVJVk&NoD`X=IPGv1MSP&@G&O+vNx+-OV6u7B%R>`&&98wD)l$0&V zY53sF)-Fh;e=?`_$_j~{)jhJLfldl*Ot7ViObUzP#+kt!s@x-*3z-Ls@d(o}uT3N+ z0}2r|(nZB^Bj)lnX~Ymc@M4st$cEBUBUsVQCaGJ;l_gCFM_|Uj;l|#|l4qD6J5%E) znt}abMx6+Tp(4qO(=Mf6R6qJAmQ_n&N6n_J8fI3iYA2mSjz39n-dZ`$lGdT6M^j2T zh*bf{mL^u~$UwMOW-p!ddatp~VRxutlyQWBGZ}^n4 zWd7homFfYN$@xlEOX@LdDf}2@7+<21Skx7=JJXfbB>o6kN?jXjITXS8Lv8X+mIBZ^ z51>X7nsT}+qIm_HFh1y-&QI zYLVBjoeadAgd>3qoloTpjYl; zkblI)u*o^gl?I;%k9b6SwD12N+i@Oml7br{V?U_7NDu15egEWR!RVLWE#%d$T4Ujk z-Em$Aac`3Wu>;IrPM`PeJfJ(u%afswhX7%zPTV!4Xc3|KFv!0=#lNXWFL?1?_OZ3f zE54R9&9+{HFrl$X#kU1|gvIN7DaBy`2a-a~0Ell5w6Cek8*kk9D*hxQ_b$f?_csdf zvl@y3ONk?V4GGq?oU|OoBdk^!PV{o-lzb@mG~M(~>ItFZ()KSR>!8K$zRRJgJL1s$ zU&;5EyQ)U-lE)g53WiJ5w!wXQ21GdXH#( zb>3gtxmW8@{u9k0D}$a7R?QugF7-eI`YogV0?JUrP{^mzkOgAiX{KoL!DN0v8DjrB zgK0)9{N5JChY$7Ai(E#vVik=r)^fOjk5ZntX0%;QB)0iF_9%EQ9rKwM4P zImNOGJ#&3#w?VRBj+>xsz>T37O?Hy28M>#RGL~3*B%#U4fCMcy^0v&=2kn5u@=$1j zAd9!&fV*tK?R;{1YZkuwQiyb3%y+vvgH-r@;o|B)FB#y$LQ=(IYJb1h$OwzuYmTTJ z8upX@m;lT?Hf9t4p@J#0xvhHEGk<$pmLBxogQ4Qykc$j>E=txEd)J>b^RbLh7k-Wy;{@QgS~Lo{=2h`}1ka+9PG(6+OQ zbLgY-Y=Mf$G1A3J0WjjJ9sEe+tQ+i@R^+jqQZl*{u%q00%L|2uZg@CO)0m~Ft*Qd( z>MUL>my{n+4?RcbTiM+#X;m^Ni2E`rnt)GDn_D>9_{N%$(hVPh#8HG*Q0}TOy3@kF z+ZZO~Qy8RN=KQ_FSCMsKKO^Vf5*If)>K#|ri~aMHW0mG;xI%~j`?0N6{hSu#kS~}s zeMg;_PUf{SX`auho_)fCho@%!MqG<{{kp`+2n7enD`x!0`6MgOlEWRc4KSg;xYGkP zPe_5MjX`HwH|?-3(U1xtc}bQs+@VjxbSL4oVKx}hig2tQTQ@)-u7iUFEbB(LsXI}l zbnn$Aj4)}mG(Rm#*}pH$-alWc+<E0DiX*x0hP^u)_f#UrA)}% znDe)pDLww_55b1*m`@fk_ICFMmQ3l4viaAY^tZZAI@1bFGC4|%Qeg0&^5#JWemNs{^CB#oGjii5`e`x9vBhhST(+wU)gak5}Slp2sD{_n7hm9 zn`_uxd!G#!ZY)g3bT&>-(!Nv1V5cgl8%Q+S%2h6AP1`uQ);f#w4RA@2^txPsXlwd# zWEQ!~9cyH)Ed3bl5m%hgKK+((bnGXju|@ESlJJu)tJpgoJTWh!qv9u z?Bhx?&!=l^>zY-0sBMLjHew#%8C7Rr>;|FE!4VYCsq)0|e3ij{*W$W(lM?LVy2I@`=Q3%e8q_3 zOOoBpG49Csfb~{L>4hEEh$57L<1Uy&s+c_m`P`F1&>{r;4HJREy*J>%k3B49&_8eq zEG_w4``Do zua~Ipthv~6C5+^+&)vl|^H|xtUXp$2)u8M03#%zCM%wFs89J*ZyicUzT!HlE1~xLI zCU`g1^fyX;n5@5Xl(NzVx%EmwKrZw84HBhNu) ze4zqDe-Ys`3FK~@2x30Uv4oWN{MyE|hRS^TBJv;oOpV9R0e{Fv5o8v?f96?ln9m)d ze z8|-M-5I0s8Zm~^fo}ZlQ(K4j=m_~IjFU&)ju>Bx)tsf2`1wqecq_OgJ!FCAeNY>vm z1~mU+tGV&cS~Q?@rs>u%VP+2Fz6nB57w8Hhq(-)Ct7Ss^QsYI$neS$QitUi|Euf!?M2wT&wwM!yX1f)+PlSoBkKG20Y`Md8sG(l zA=B$s$S%n%AY_-~bvtC2?6oIkm+BR2;0D{T2#5^RE8`@0I}_3d*DG;b6CyQ2;-L^nH7c4e29)oeJqA zeXR=VqkO#x=_7f~3F)JF-Q*-jbUh$^X8iR6qmoAsfC2AqanhnY)0JjeK$qbn?}2Yi z4uIE@35+!(xegbXC?sP^dK6BHCx>=H)>2;c|G6c5PtOViGzt;}Io3533VH+Q2Qdnk zhybI9;6?yC#m0efqXDUdiWpd-fLcKZAPH^b5JBjmMAR)QGFVv%PH_DdAZ6Nz-+~rF zi4d|ZwTfYY@?_7 z;M|7&Lkunu{g5EoqQ??gJZL}_kVGgg%VblKKOl@yT8^kf!stM>AVe%{2pkYE`u-9u zSTH*<9Iz?lSaxuJBqIo;B~q3k29OL;J%?mW5KSeekb7xY#>$P$!)lk^0H9~-~!t(2WkLy>k_L6dMg{G3EI6u zx(cF)=!DpB%iu!Te*wA!aw{3T1#xQ;)CSVMOxgyj2k%7K|Af^+2qXl#f$++ZxQ6mV z?)L@Vu}nq;xq)s+1%hL(L;M13$2F>wXa(7VyA=uAq`yb$zXBnKY9As^1o6WFnt~9w zjiZC)L$sp<)v&zrfNUW7kgvHCdC;$5{n((rX34c6hET6?kB3!Q-iW{pklmmqE{1!o z{x;BF@LT=ZZs=S8AY$QTWQKdx{zTBf;6NdUd)R&@&;Y1g*H}N$Te%=Z(Dx0}U66My zU?0feP0}ooKJZrot-k}LLSXMQ{hwNgmO*_W?@VTY^CbcxU-A2QL9ZLfi9tRg+I4M8 zhDr6|+EhA!GUu@Nr%0Ih!|f{uX~fzDv7uZ9@#!vs5>S9SQs0PRz0xG4z==Y==z-2ygvefC`_Vzj&8Ou3sb8GOg=(N*xOo)d8I}OfEyA!w zkflyD&Mo~gMUbVg8xpW1N)D9RWL^w3gM<-U&v;(8Un2?`T+eI`z*fTa(|9n}u&G+t=j zKNFP*PS9Y5;e_A}4>ZTpNAiN)PY+6LJB1BW68A#`rZV`z0X3qOApNo>l=|}5J{w-v zBl(L{H)SkEgXgv-=d_gDqaS@@%H0Hp?b^3Q=O9-2NX~k~^C0Qr|Ej-=C4&a8->!oH zb}d^=FUQ#fQz_m99dQx-}0Pk3i5HVPWG>yVM3dEp8{42ITYg_t)3JE9nr!C!x06h?z%865{h8yJ<;@PE(FpgDehv z45Hiv3}KQc=;I7y=4qX-)!P%{kq0wj)Z zQ#UAsKXtuM@S=vEm-VYA^yD29R*6*TOBg(BDS4=cSQriG@Owxp4z`tJIf|9^1a}R#(I%d%7G^-r8e@ixH^EV>fZpN}m01U;P zY}4Nxq_8@**7NTWQ`>J_Lx&YUiC+ZVVs(z#`(If6`KjDVIv>5-9`E2gN%KIG{6Oh> z{|r#nwBMB{HW(84#PCcYyd&U4<59%siD+4nil8uAlyCfGOsQ(Dd+?pl^HHob;Nj_k zIzoWR6JT+T5){8#R-0RNMN(Vm>WZefcv>CrQ(15OfIba{iq;(s9KiT&V;f0_k1}&i zLROT&lajD?z`mL-O{8$2rTp{y{SO31_u!#}=VYp=r<&{y^06l0!O&ycc&6ElHHqIa zgP#SRKc~SOl;@-?=^MJk-h=3?+hlW-{~N>DqOa?3c+v;o>uDyqy$6RqIZ-cw?rS5; z&M_Wa-o0#hLESZZ#}J(EnXT^G#b9iJ{7E))N4TRC$@119m&9zX!=5f*gE{`$X3Znu z)vG6m)!?RvvZ(>-=7IOJBn~<3m$ZBuy(Ug{PLQaeJdIiYrTJo_>QXM0AAuuC#-}L< zZb&wd!=6w$&pLyj#N*VQ!yXmsiB;RJ8VSJ-);&d4tnI}9{hau>O>v=J={~Isc?}T5 z+M{*&t@S>gtI4|-X03x+(0j))iyqy-HRYdXZMTMnmBwwiyQ17%4DYjfaaDwYZw7~1 z2eS{MC|F(LLU4Np(G7xIfWN6Y!8;Cnf#T*T9pOTClEk~>Zxr-L6pYvukP5xR3+P*e zhMWtZF?kho$)8H&_*?ge5;G5r)iKQr4DSjs8Kt&Es5A~qjRJf3yW!!X=!h|tj2V1< zSzbT$WJe!_djb^$1*otG-H_f_yP%T{&|O(0PY#hsrjkRIcXa0_aD`BcxF=oqQM30N zV2KJQ-ca%>fZs_)Z_p55Iartszvh5K`|~GC$xX3cGF_`t=BcPuWJOicv~^UCZb_Ne zcNneN1pRg7#+S$r)w|in6KhJvy;#T*@*Yoe$b}C9xIbSqEPm;eM;^PK?c3bF++pof zJWpZ|>rSV6x${OV|5cHt_5^#Rq9Kb1fWYIB(!IpOqq&slsByHnla_S-tz=ZPK)p zRj)6uv98pY958qt2)sFI-?lOK6pz^sp72FmnjRK10q4!F|*$9G;rL zJJ2c2MWcq)cOXw&Oi#hze{PI$p72<)r@NT_Ied9B< z*YVQRnYbBHP7eO6V6tLwAy7t*pS3pX-<$PB zl)YdpQFACm?YOsC;c8p7SaA#mP{y)zXkuE^DqZvi-TYnynT0}{)6mi0!C=sAVndo- z=4={Bavl${`>{Luyt#*mdD?PEySd!v2+Dqx=%r>5Oy0gu7JpsJJrH))_x*8WSaEX= zRPhc{(a2P6HTsbVAfC=m7nZ#jZ%c=djd#=Z+93X+L0c=(eF5Nx0W%! z7%5~xq2Jmt@3cBQI?k*;%KKZrUF`Tbr3hnl`iX&Z6B>NwBDUvP&RVpz|2O%hhuZ^} zL0P0VVLF{XEKUdbWN#kcfKWwl2jpAq>Ewp^cthp2Ny;_tb~0J0`C|DB_~gs#*m=3& zxt&2u(IjK&+JPLEpko&T}}$n5e{rDgrkU1ON!&#lhA# zC`z-bP$kPZduBNFh%z}OV-rbCR~ejQt*OR=XF;4CRutPeSQC&7zncGS6MTqTYh_~% zr$)+=Es$ICOpukRSf_OHP82OtdOD|!6)ViTrHow{Tt%cB>+#;4UKS_phIU??WqwnL zn{$NxOZCcb%`KkwJ!S8ZhglyrJC)ZOS)yDqV#1fPFg4XOhMhx!X;|M($8VM@r4407 zMi7S5Z_{jDCNHn{Z%V3XfNcmS-})ucj?)yL&L?PQ+G1qg?uWmA z%8Z3&6VLP0mfiR48KeQ*1)dzj?3u|+TZWu;%OhI{$2%&O zdE}6drnEd~;J?KTLg5JF7l6$_+;6q31BgA`J` zb%p%Oq2wU@RBx9t;wF z)9YABAnj{LNFd#-XUHe{D^tiP7R|GIC#1p+c64(*)g6)?Ce1jEKzeNp6 zMD+^+rb6aZz9I}*!U}5MvJO;1d|eD?AQ9soXW%1*3yuh*Tl+Q>NCzRLa;uTccHM@D z&v5INa5QwdH@Sq{b3_)DF+Khv^goyWUtJ7yoqeHPpT02q9RCfptF?o*o3*2ZvWugK zwb_3{tN}@L{}8RvGrxm)x98tWN>3qLn6VHWiJvk#j#CzVdr}d1b+d8?Md|jb2fcx8@~41 zt(9sGNEYd4UL3Pi9ggjtnNOX1RHjEux>N2#<)m@>@gB4_;P3=!lQUR@hdVq-YE>qO z(q5b1b5BB}oEH8RpL(s2gpp10>f2_r9VMSEue0m~FjPVW-+35_4L0IPoYD+i_{N@5 z`i@D2aegAx!uV3V^yPPfj&|T3RZe?H!HTo|f%>0)XBhHZ+UCn|2w$}gEdPDqsad<3 z|2s^$M0HAWP#8l1JY19^2CSDjiri#?-ML~I5wGYjS$aQ2KNwYR62Y484*wk=J3bm- zs6UZ)$Ag3p)1BpHdTVQpC-v?5?>(FmvN<9ReQALSP1q62cTp`wV}+5<7(^(EaYjpO zfahWVrOdi(`+A$?k5%WZ0>@6z)}&*KBLZeC{Qz6|&9)Nd2AP|pIj+zES_n`4gd^`Q z)AGRi`WqELs|30pTfro<>mOqzc4V}@k=ukD144Jy5{(LV;CYn`uI$uG(~HUnRI_j=lm$Nmro*Lm1?s)Win~R zVd;qDCT1y8>*v1%+qQ`!kScQSi&wui3==lDf$Bm3WfaIUK6_Ksh51>_>GuGU|OHgg9zadV6R_(%Llv4PsZ z(++QDayxTD$_9azq$Ocd(Qu?O!J??9SHjTztV9!dw8*VFF!3#F+1!OhON;q8S(VI| z)D*FT>jAc=rkj~wfcEE~j{~Y84*oXgcw4Mm)7e49t?I!+2Ka~enwbzz&t~nV^^yM1ctIg7_+^;r<8ec5fw#HBJ_ZlMkWK+G($+|q+ScH*13qA zRu7yw#&Cp|0%c!SiA~a!$Y#cMpQiKJ=C*?f=rrq%FX<_EbG{;{>3+`neXAl3>5shFRlP~1;=mQN*9wtoJefTZS(D$PMOY2$OPCw-yr z2`uh$s$CC=quAdL^eHV8^eKu*IX4WA3HC&pUXDCB>Ieod<3c7geIcJvHGL&}Q(PeJzr;`eQ)p>gTmc)uLJRPZLY99awEmZXQc+OC5JB

    o&p1lDMuJL_CWR+R6&RqK_aiBG?L!ZWn&+zZdy#u`*ExL4sOt$1Vf%ZzD;ai zy#r_`>du^S)9CBge5$-SsdE$pu{*E^L8cSb+d@9|0-7uj4S^u7=<$1?vUq8?1X>p} z;;aP~Jdx6|HcbJCL$6uF1>9+2S6qr2sjWw`?1^!c{k#|^J@?6}n)PMg%KcjQ(SEyPu{#MqDqMg^aZWo+`8`)J31wd9iPClxeT5OF|2b6e zkj{@SF^PPyS4v8SE_rQ8*~p$n`njDkI<8_(T2vUl+m0VinsV^FP|e%I@=Fg%*KcTq za_AvY7yo-$#``j{3Xu^4ifQC&`(eJ72Ph$12~+AlV24)1PYTu%R8Fv zf~ZeWGjmpfkq-gR$5=I8RSiaYiqP>qyUv$*rzSZ&_+u3K(Fdj-jGe;sSbzqJz9oUx z8uS=OqP^&YkAHecM8stwYJJ5+$X7fl{|oUT;pJxT;$Up2Xl!q;ciuycIa6tdjK;(4db7oI zGQBtJ7tqrS&OMY6OuoR&N@Ir;Wvuo;NPEZVO2B1XG#%S!$4*vk+qP|6opfy5wr$(C zZ9D1o%YOUZbMM*bzH#n7Z>*6q)*AWwRn3|;zxrm4Bu4`a-1i^Zx=Yy0Tf79CaR{04`9D+w4)0~V{_;2Z~C znZSbwQF*BvMj%dYi~pEvvlScLrdR?C)PJcNaE@@Ix|oCq#ztgT?P?t=KoJ#s*J`Tm z^nQ(5<`eFsS6z?T-VT~Sntqh2M7!EUg?b{$M^aJ}g9f#tnjq$_Sd4Ch8l6BD)Ytcc zr=SEZji{I2x>ol_Kbu{HV! zZ4z)abNSzv4MhbxR0hPaalDq1cB)KVs_^Z;A6|lr`_zMjxY#p@hRpG!S~}y3t2Xpk zg0EV<4spUee-whx`oQoJ^Trw%((JmYosVaBa(aL|MR5&b5riU*h=k!{I$5!Db%&Hg z6}aJVnR}gr$J6J_-3M+7x5cHWm5k=4?|mFdv<+2ic3tHx2H2*ewg2!Lc65Dj^oSj| z?;*dcu6r{}%OGw~*?(3IM5G7qjGX0X>a`B!Xe62}7z12TdXPDfcW96)#dS5E8PK`h zU9-n^31UsnUPE@NGhg~O5MtjTxa{)?owjd2fyE8+H6iN9?HxQ>+;G*uyqW}Z%`7&5 z$&3Sh5}3{{X>G_+rX@ydf31Xcta~wPj8;@8tYl!=&eaL<9otC{9CV{o89^rDpo?z-z$#NP-=^KMc*lCUlfWDMt=I$4+g-zqV}bc zvk#rNXdZ#~-M~yTty>A}4xvaVM8-`fR+#-qCg?P2MjH1WAHv`9A^zXU^8XPZ|C{Wl z2l-wNG;nUa@?QR49G={a&w3XsUdkL78X5>;XT@a`aus=L{f7=&?`{|3Rbk&2%?FVH zA%Vl`B=bANx#(-;W`LG!4F?8mqmT-%BZ;zvfsI&)84L`^2WbLStR(o5B^hb1Kg!RR zlgc4Bd0wiyuR``29S4GA$9d#cy8B{RQ5A)?U?+lh&Ps+*zze>qn8wN6R~SYkQU8aFylNt zq)qbVPEQTC?8bjOJCU0PB70ezsq!zILQBe)4*>d#?8uin^1}f)%&$>UjTa*M?*L?Y z$>KE~dS7w;by`WA7p9}$*tu5`EXc2b4~z|iuBAgp!_hBOS>$wikw8u=Heq=a`@d@# z#8L$Fg*D@`(Ipb4Dald4!r22EPc6h0i`F1&m&6{q^IIA{Ar8RJFTeq-d&L%Jjao%o zm@lUt*MMMNEMh!Sy~)?s?650J8Q_FeRvIcZWT)V#e*t%Ggt@Ns?_(GL=8=m3KaO3* z-QLmUn^W4^{%ZhaDgASyknX^IuyZ8iFs2DX5w!#i=I{u9aIEN>d=Ud7?{jTSY`aDC zVDzQ+ZA^duZr?X(eKadlZQ-GQ5AAwDzy!Lf zLlG#96MD5_cc|4`OS;U83{83|k~A;8M=CF&Ir~O;sKrlVM27YoJdg1dgLuU?gtlC+ z{E6k4O&#EZDnbDcgL-n~&+wsr@fw)u4y$}yBQQ7|)^Rf1b^G0P^L6vR2`6t!=HWqQu2uA9YF8#%q`^6)M zw8i89PMI8BxBHk?g6Tt+s-C=kWaHLM4QcSjmxf6)8p>1L170GjlYQOcTbP6V;e=B5oMX zd?7sN+o{^lRDV5{4P}g{2;P?{`ap5|Lz+cvX(rViP9C%O)xDpj)$a_c23&|(zxfU7 zr2YjnVIeAVuCkGOdMrED1_2_A2=rZsslAW9gUOU7dzL|skSk!f z9A9xK@1I9oUvy<|IX4H#(wFs9NJ(%eJzc4hBcKI4i>3!VJxyhxc%WeuUN%mupso^2 zq@EzWuqrdXsj{+9#Xw7Z!*g5VN@lBZu{3F~-&2vz#Vp)l(5>EMyk~MZoir)cqz$D^ z`2PK~B#cxWoto}?tWhCM`{sdODpeH_paJG27#Mguf&%pbolR7k3(6Q~BQdk_`a0_)Vov_UodOE>EPhX`(q5hjA$?8<%vhZW4wK7_yzcB`o+ zsn){LYk3wLOjkdZ-KuuLY%D|%Jce3)e*M_^AY7I{5K}!>ARU49AfnD)14cv;2J}M` z>;<1QY%$ZM{6h10g+oROEtAr*P+B3IhbNaM$6UTa;`>=HRoxS9`&aJYQ}lq7!f8Uu zMRtjD^)j_k>yfx=@(etM)m3nz8v4r`1{`Kvl?Ndn@kcxvj6*NWI+;0l^EYlbCRn2o zxN#ZPBw3Xm1)7wyqgHk{@5ONa7NaB=OISUbh~#+}*^M>B=#1!5DwP1DB(pMrx&K=*%8cH{r= z$}S_<|7~ai5~N5IE;3jXzz_(8Z`oiP^KnkFFi42XB_aPb5LZqz3TXGRq9YrIJV`80Ny1Lrm z9ER6#Qh!Tf=)JES`gIBQJASSux!Sc;{&5{)J}0loLGWlM)Q7ZawyF+8gor4U-peGu zI05wd-6__-_H_jEBZ589P;M}r&)N!Y+g)=sRlbVti};!@jV!wL2V-g!Dt$FNJMpum z_yg$V@!mGf>0N|iZEOz8xOG_7lDFVF)>#KZ_&~>iCHQjfH0ez37Qiv*KOT)lrV>~5 z_p#`GTSch+H;zWm(9*=nS^8Uub2PC2)-vr)9G(ADYgMIeBex)r`il zloo_$pX(=)k)Q)(JuS&=Rpi9!>3R`0=&z73m>zxLc=7yiT0ZR5PU#H*hLX8S=}Zz=NihpuWdA=E9l!U92I|FrlL{K zb{eg37!xZc8@(+6n_OLf7C{0@s~ zw&zs)d@R24RibXyif7OBZvXky+%V7MndnV$T0NbdVZoInMW>j0a+Zp;Eb0f;|5g5tG;V^X!^ARBnAfGYe=zh0U9_qjmRdY!T9TO^{fJt2y*I3eNh z#Y~|-Klp%K>^u5y$hv=4kRgP+`<vZRyh#BGETFk4&C9lmplKfnCL`Nr3Z= zvSCzOVdIj?A!x;OIgV6)O;BLNGWRQRFeZ0+YZp{T6XDIr_o6A`$a4x6bHlFjfr#B1 z1@4eCTj>DLn7n^(=RYRE_@&;i;5Rn$eJ8>HiC4qpPjpJO_? zO+XvG4^6Y8CYf68+%F#p+x0j3tb(0LgydI+s_MYfu|7vi#i;wZ&B(*y-^y^K!ZW6W zq+B5shyiR56A}v)NB2e^5U(^POzTQ|NET?O`ez(uwxUDWvKX)uX}7S$d5YMo1n(b9 z%Fq9@Ay!FRzWE;xx6|J=PUydZQ>q4z|CztpI4y`G{({dKWq`&+fvhPLM4=ji%13<{ z^dn=3lDX(yWS}doF?+M7jw79tfNJzD-WgX*wTLRo+Jm^w$X(!B14VG|jTEie*fPu6 z*w|WV@csJ>dY2J<;1$voyChD^2>XrM6p%42qK-{h#1I&x)LPk{LvfIVT1|DN1omN# zS#sOP=$kjlLVB#&TJ6o2=%^G%pTt?yijn9kHIN^?0V@&H0y^-Pf7MbMe8Z+~VDrF( zzdjE|B*lvN?J4@1o@#{Ie(f&noUrHrX8WpIEqDp0$ruSLxa_k=6_(s1=Gm`29XA!a z!BxRc@la09TnT_>6IQOYcT3?>R2HX%pSx{}wv%6UfUm$_cCIuM8ff8^l+>H6 z3u7EeHLTaZW~rPK=hQt|u0B`}R5n0?9if6DHBwlmOW}6(p1HjUj^-*oeT8?!nhuol zU8%xSF}MXdV`rCQZLTUoX)ih;xGlMAaZc}6M&B?L9YB!&8blpN4rswXubFp zg>?}Nj*HGwKAeI63)8Bo=AvwHQTjVt&8+qAFWMUX7`}Q$el@4CM#z@p#29o+O{Ma~ zinGtqLm*A7Gb$3JwwK=fuWIKW!_Ep9SQNW}#6Nff%wb1Q$RGuC;^}w7GF>b}BHrYV z+QE@1!(v-E#6j?YrZ!saPF_@6t!^_F4~j}SO6#2p7a0Dc#*F@Ljo7HIiF$+Dmg; z6{$IEd#n>S!3z@>Q-}CPPnVU~?)2ywAvMPQWn<&bonNh@xA!#yFVBj6%yOH0o`~YX zM*`=ZqbkcqklMBp+tDo$yLkF$Q~^)fMp06aQamzzrool%qm7dDUhoITZ+@x|;76*9e<8(~KSO4Y^*TLtx(?N1sSDaq}H!t}=C zBp|dZY?j6)W_lYCKv9#$&Hje0% zYck+s2|^`IcDEUhm$sR<%ny6LKMx~0K-GQldraPR2f*F23_*>N7p;V%Y^2_l#C|n_ zW}5D{VRMmz8dwH<+5Osx4~(`4(ScxC3iL14fnJQBT_KTyB3K}!;g6(H6O7XbR!}db zl>p&o6{}>vMcAo1=>P!@0IcoQX}OJ4hJmw1!61yRs8egv`9!kDUUI_*d!F5Tb5p*; zaqz-vH=xG|b`Oh5L}Nj9RG z&=S~veBKS~@CsJ@N~F!eXPZTpUFes;0$>6yi>s62o;F~!)pNHUbKCfKhzxR)&&bws zy_3j}N;Ap?l17DjDt}su^r_AggQjY~u#$EPprnzWI4zeMt5gpbr;In#Ju`7^WE-`j zW1;CZqyV!KVQHeWHQN@5E2P|TL8+0lc7&cPeMowU<{ff_=Iw_nK>7Luf#kDvmt2}k zzOK){K&M#-jx-hqniULp1OyC$Va&cmXA-4dL;y((Ha3@%!XP8>s*9&e2JO`U%DN-9 zh6@RLJQrTW65|5yMDDVtEZ1KQ)@?@f;|_&XpEg)IBXlvGh_2p=FIr**D}CREa{%DtN~@3QwSZ*S>aICn-ZlkQOx!Tpi;gKsVm47OlGO{q z=aMMFMh$d6R{kQgn3{7|%h%SSI4v*oyd2Of=V>T9%Siqy(4KDAIv?*B4>XbPvq+W= zJ7bl6)oNdO_N4zu-Rr1|J=qkMGHAS_rTj#Ot?5R=)Q@jn!R4L$GREXREr5Q9(9GnL;b9WsXh=XFz9QXacbF`y!&n>UK-VtLdr^ZdMFs~J-#Bye6aUh_M zcX21NmSY%@st&YmG4h{S`;QcSXm|E>5)MV8C`3FuAM7uv7Z9QC+qMi9CE;HK8j0H% z;O~~exjo_8Ah3t=4(Yf=FZxl)A^Frj`6=Mtmp`UYs>6>$tSUvhv3QGb=)`@AY4#HO z=DzZN6PBMUN#m9#ndj$A`%~Rtd7x41ie!Ct1!|2I1&&y-@2LuY1w$j-qBF$c znugi;o6rEkOU%!r#dnFbNk$8h3ssdoDFQ91#E5YoWIla`{zF~CrkNC7Udsn!6DlmWD{_v(a$Pzptuz*RJoNQzIUNG-; zllJ!KAh|kj0ALV420U_eI)!2cmERfY=%UL;VweMGI)2?U#M@v z#aZEzC{so{(MDx$@Dj$UTs{+3!*%jWq2ysd9gH4njy{?yCxq=Pbng2LN+mE%QweHY z7;i&)8O}Em4J_o-LE7jI4dtpjpVEJ;gat?K+B7wf#p0;q2U|DQDXmqr_&d_Ba=0?6 z0z@7}<$iQw`$U$t&PcqwO~{$~K%N|L`dTd@6p9H|&^q7d5qq)~GIL1cj#igaujM_W zm5Y`DsHQNNr;#8WA3xajTlslRPGt#}FrO&33zKN_G&JSrF5P$Hp2K%yIRY(UQvg2s z4dSfBmct+6(sLib9Y7?(ACt`N--Or5-7L~iq{M3LCvx_l`S)Nh6`S1y!v?bZ(6AT8 zWy~N?py+3zSd;B>Pyjnej_boh>1rcaJ^!)Mpe;L~=KL;yS>KM#bpJJj{rBMfXABOh zXsO|-pnj3bFdAc06eY5%T4_;Z|7obr)_qxApJI5+vZ1QcbUEk8J@jtWGz8Gy_K^A@r8i3=_tZ zJ=Sd#x{=)%=FS)oG#ILTDs&Z^vRC=OwxiyLa*dTckUdbQ=mT(~TJsA28II`3`sQ07 zi4FXPDrH(NPv}UG{iyhhWNQoSP@BCBV-f(X_b?`t2;XfWmhlF(5_JATvJn^?Y9x7d z8CP@u&rFwZh-=N>)USG-N{DpIgSHB$IveOJddHc)Sx#LhRG=Dhvix_~1yOBnKg+=s z8jHeB(7^EAYV!|>$ttAj4yvOgS_=(jMn+zR#h?qQc$e<5uFqaG!+Lqwn9jHAh3^;?b3JUN?}+h0O2*Tc52Cr%<^%U+(|*AIuZzAjMm$fZXup zf5Y2#8bFsFQ>U>NPw?k;Ep;tHP61Wh7JfOy8iU@TQ`{_d%dThI(semp%ksD@t)yyo z#w^^ml@#j>YZFNal8hd=b2TWlR}-K}A$Rb%B3k<+bmr41@YmaE6a4Rth`0G4`krjg4&j8CFi;m1nUd5~iZobiETCc3(lA{xmAnTXppq|sw=2XU}<#-k_d~z1ia%~P-i9W

    BJn<~x}KibJFngLvvX+|pGI*E%q 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 Eu~Mj3 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

    -HRT)Z=MaWS?6d`w2E>hOr=Y8!6YF~n=zXffj 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ℜ6r_)trYPF22;ipDhcvE19JvC?Oet^fVGYoV{*5s>3 z(;o!%7%7*we>EB)2^qFpy1o>cbJ~l+)=jLzu=t3IV2?65eWRyW*P?mq4AbEh46Y2|bvDsiwlM`-*Xy~-5072# zJ`oDuMyQpE(cRl2E~v9;tz>ODS*>0)MaYlfm=7$}ODcRxPue-=s0W{C8ELJUY@SY! zx+@K%5yDuB7a4jY!!lii`Hy_{ z$+AXZfqxQD*0(lk*gPXRqcRKsJi`_QePo2Dwh1+-X?wRiAp@V;Fk80+7D~^Xx9_gr zsdpR5X%!x>I+EnlL{z5GU=+Vq2{JcRfsYz!<`x|dV*h|?yGRHyRA{qQ7DqDSu-BVy zF?cL8XtYN8i1|vGamun%uGybRX|@iPiLZ>(?jTqlI2;7wMn_v)TGdM*r0x8`*KkP7 zh{!BpyN7*aI>kKNT>uP;a^>88UFO`fw{5=UqFv@=aoX+QHA{_iXn8mg)o(V!Cm& zc8$Brcc|a6!Fs!nBFMY`4BiPz=IJ88pWr6P@McOG38QZhUt(H6+jyHeobw(DMANL~ z%ChuO$K@PPF?=or{qa$I(6@`}JVXwUPy`G!|AOWXYLi!qhNC9>B5?w8trou7?w^y4 zc}iV#u3oW{QSFXHCN%Rs7 z82@3(Mj-?XHXo?Zet(AX9(3xY<{lb!WmJsp4YU;DvtT~V2Tj^kpf&ivNIU26PNOx; z$F}XHV%xU)4J)>7+cqk;ZQHhOS5i?;Zujk(>APmF>FN3D{Rhr_&UyCPdw-;=%a-hG z)!~xPfDOrbs;f!tr>!#I<{j))-GkMIbcQn$^xjzfQr=Ym{LAcrP0(gF^?kij_*S5V z|KF}R|LNQlF|fA&=lrko@5tuGHkWH#VmWQ;>1sOQM7cm@1t{uZv~uNQY9jRe8*ZA_ z{^qDvst-s35EKh?f>$7Z7^cf6VJO84Uj1=1Qw=9BC)bzvxY}JH-VqT@1lu-yhed}_^`UpBuH=C`-d;h%)>-4Y+Ogt)K8#|S(e;Whlc}%<~stve;#X=HPKt0 zz1bDFEqh~;Nikfqq*VJYjUyhiKFUSsyP}YZu*s)y#xAzG%e$|>Iz^sK$(77|i_~?H zhsFJEe?A`LN}zUqH%hsPIXNN=P}AXp zjt?nlKTT@iWJc2<#Gke36tycZpLY44P_Jj5BLhzmCBSKwFtm;1ShR4kh`YmF5N9h z+g;#a!EfGf2om3Sqy~il5@+JyG6VnAiT>^Lzbri68s{o#8c2WPubAt2k;ItHQFy}x zz#H_KBF%N$8(?4q#D++X*YHyVOd!l4=C)pZvar}rVu{1bnNzDWRh9o7LH;cSl&9Zp zuY)QfSHpncKFj{?__=G>_Hb+G2Lg!u2~!6lgh(I?sggs$8%tl(!PgY*e!g#_KKw*U$bO2A5d)ekJ1o{xdVMoBtR8|FUGi!~As$rSxiI1|-B z#}rENfMmjK!esK8aaiRYNce+~Gn$n4J~_J7gqKFB<%gOH8B#)BnGGOA(VIyu?ybW{ zWwB7391TA9(mMlUQ7PK#z(boiNH!GgF6rx)yB_yK&|1$P(k0RI#XxaruqQs^#ni?I~=)YsXrt( zx}2&i`V{5ZL2=}fSub93 z(-bokwdXBvaP|X(0J$>EGU4WEOmMw{Nf5mysH*|n0Em-o(e7vsFuh?bRcMe}mQ(mH zszW+xc(+Au5IduwJ|1@seYzDT59qG27jXW*Fc8B1vcAzWj90MHGT2(gw!TtMdV7#j zlWeqCxKd+p`aAF*wAVCTeG0Fd zdvF`%*4echz&>-o=F`N?GB&@_9-%gwWf@YKzsRUt45R@}8o6ZFJ&RZ}Wn(Dhj!SbE zQNv@|Lv_We=pEeW9CF7{0x|&Ulq4pW>0jllyiW2mW2+1D$>kZ>DnR{-2c1IhGs^uW6s1((yI%39cZ*BC6nN}Qd>X08NPPAtMM<~Ex%UvJuE5um1!CVXOXOnbOU8B zjoF01OUS&vGORQnA;uexI*mB+i$!xK6kegNHvGjdx?D~x-{>z|XOYBRa4ppnIi8J25v zq&S;m-Ivga<@?BQXLYFf&2gYA80>1EJzqG5GzRcKVxYFkci>{G(7STK5UC5C_6k#K z;EC?Hy93t9y^H5nfIn>pNQ1Xzm#7C$7W7W4GeVEL{qgLsSslAE_cKG^HOTy0e(m&Y zEYi>GUBr;yg7G$utHfJOn$-nYH+96TOiAM|82XVCdNhr8pYHbrgFxG`rR^o0g>uV@ z<_Gr@ZCK3~QcB7=bVu34rrWRTj?6f^>Ee+)(DFiOVJ(Q!lBim2bJ5PcgUY-)o}1XZ z&3{9jkm#7zY4X5bX(6|KlI~lgh$=FS&z0H^Btrsm17AFg4fH z?kxy4etQY^*Ep<4<7@Io(Gn(C@%yDe_i$Q>e~bgwC_DEPLd#>J!GJ=RSh!-b8xO?W z=;FQPiGCw9B(Yvt9>j|`agHtvmVf|LclC-qEibL4bkge&vtr!cQm^9WzEo}!WZ%_IdT1_EOIf4a*2Q);)u`ypbOx?!U)RCZfm`~2MKY%aCPl-$kA0LOrmSa>k%efQe^o3s0Va@?Bh zfdI5}fREvhl6!Dq0o&9kMKAB*umMv&H(AY3^E3$5nkyB=a)(XRoZBo2%{y8>>v+$r z(A8&@cX)GJeFy$(h~o{dCmX~tD5KLw+owUxh}bg$+hZD{cIQIh(_g748Kkk7WpPL6 zuH>&#T?f`hfpwaPfZNp+ERg5toA!DJ?o)4xnm1QgJlVh2e zh{CS^Mqrnik2tf;FdoXXnBMi#vTRIoW@R}|ajr%`wt0kLpJvU^OoJC;=t%C_Bi9E- zf$Na$DFfq!=tTfQ6=*0OmGRIH8#==EAKWGu`{)&u2Qtc7rMXfAv!N+%DRV~0-^2zF zItnhAn15ac`^Mm1!hQQU3PYf?kf#D9y(B1UC6IN{mt330NvaLjn>98VhC${P!!9;( z57}xCPSSBwKq@xZ6vN}iN%Lc0GumJc9I|yHwn*kPo|W5FYBm@o3iF8`nOXy(JGqw? z*VJ$$Dje&SFNma5Hxw&L%5#*k^S!&+#NPA)%38Y3&J_zXR36ylEm1SMqH;c@Riy$^wdrnsVO!%n5_fYr+m9}-2=eLcV zKBo{L$YU|FgsUA{2uDtQFyOHjy(S5U73NP>}WTkSgS8NUn+=4QEnx&c9UOBbc-3tREyJhOadpyYm?PV zGjEL+Je$K7r|iTENA{xl+0VLYrAAd3XaA@8q)xUTu^%~wXFyqyJ}E36%MpM;k0+N+ znqC1lyfjdy3qmhZhR>(uJWhR7nC<{Wa;^oSLI{gFw3(TITNmSi*OhXPAksPg*xf{j z)B=@tC8Cz8xXPuhS(Z`CGo>q5QB++yl0iz9!pGmgfkwnvpnrBYSkRS9(CbuW{@c4? z-~~gr!_z;B)YtZH|Bpjokdt@Ng}G~(`e3so2G$@-$T=ly^RC}XNhqlAV#)>ucM!i_m9jbQvp}(Oe6YWM3knPBZjnL$YtlN428g?)Nt0D6^^oHxY`!CG1{jplD z-mSZ@kkjC(#;C_dBw2G?>Byo_q@q(JK}fM!xL%Nc3B*eYimi#?IJryZM5rca!biEM z;FXm^P|09b&?*N$%86yCI*A`ZOAgwOHPuuX&lViB9T_Cqf)jOzM$M({?ofu5^xxny zqMmn@j7={ANN|ci71cqtG8U`JT1dA8a=5{qSa-u75HC-gq~8A&{UTVzf9ERWSz?!R z2@bD+osX4_5-Fx#a4@GM2H>0?7kKP=ejfe8gOX8-$Wa!_&%uHQ<1UPi7cL!(U9m69 z7)zpaj+fb*_%MO5)L-DO-=d?E4mQVGjTdK0z!c{vgD4MKa|l+IvngC6AFzox2SzQ* z%W}!AZkPbmjvgz_na3t2ZWS#sqN`yU*&v&bvgaXe)~})nyUzCm{E< z3!&%RzZ9Fj9@V0Xx%(OC$ui15tL>n8MtYu0X*T>nP{fopy*aY;lU?9Cm~#)g%-=m9ZX(nS5CTT%`JRL@l0y zS9U!ZR7dV5eU>zV6>&@DI5`?g#(B2#1r5$EvYR#~9@)L6P)HG*0C1;+-FYgLS(ifr zS^+K{0qhu#ws;ZEhn!dpE|zfrF_x(~rFzM5kbzseoOj&RhD(Ab$bPtC6U%{trTZf9 zXE~E=-uU^ku^0RBm2FF{c_+rcOksj6iFC>3VgXY3?;LWK#Ctd@tfiyNIP20EBD?I3 z_jy_;VO5&SLMK}sYFT@C8#(HTe4U#Wp$jS00rAr{jS&c+qgmXZGY#2;*&XZjqyAWWA`&* z@O8heIb%(&in895S2AG~^U~rZN&1_r*-e5F6cfl4Yd%JHmb~AeCJHP@L(;M!h#rm! z=eVmgs@Njl=PVM5p`-A|(Bghl=}$r8lGIy2NKpOMk&f|A;LNdoK_hICy5i%>QPJcT zi=;|i&|MZD;aeE?kgE1JDy;%LDo2^f2&F-N(e0276R;uorpl-(jQc~9O>&tK`WS<+ zTxFB(J&08@oRy=Q_RW=5F%_2D<`i;_G;rD`$D-l<1+EoPKv@(NBcKQLZKf_&zYU|$ z2npJF{BvHl%z^t%C+;&;X2*818U5y3$X~Gx`}#hHwB0I#v+OpYyW|Vm z>{!mObUk(xv~-ods6V0Sj1zq2%a{it^P8&f2;QF!Iv3GB#~;2HBtCE z_G*h?^3mip2c#ZxA&Dc?ywx6#IXVFwSB_8LEb_Y$Z=bX1QB<68YQsF!iW@>blleI? zMnTw}BgG=#8(1CcjvzZrJZuZ}1?QJG5w>zU{WP}!I#fzKC?n)Pma&Qv{lFvRtVB^Q zC8NovoDX9!(Xf2*wQCYzF($?nT#xi71~W(iQbuAP7Pmb_`b-c}pVw@F%oYab`umw1 z;Z|*449l7I_rer4Mjim7B>>*L=kzD<>Cyvq%!@MO;fN2!8`5$Q(BYd3Rq&+*z_qFhp8B!uZZPU-fa?`KfTn(Z)^*_a0G`lqY`}85Lmgta zEM?RQEz29R_T`iC%-uwPmM6p|l*f(xRW0bH2U5gmtA0DstweRRnm;1c9nfc97##Ji z(1s?!10!)pXrV4TcK()=*F1elmy9&vA|ApDw||0|D5c}(5nx`4?ClZCEByfH&;}#x zx(M`LCE+Vjbu3ra2@Dt&sgy+7P^{n^&Xu-4Zs2$Fgn)F+!^kx152+f;;2r_s+(mFO&;ONDF8J2!PHzK zk2S&-!3mG_ato6%AVRb~k)mSQI+gDz?_ki7ZUYb@@*c7lh~OJj@}trlA50wfL_|Vw z$baUoqIi`Pey zyDCUC{t4s#deoWnRNo;K+jGwWR1jkMLn2UeUrw-*FiZifv9avr4;ln|-WM4!ldDq$ zy9~}JS~jEU`}iGaCjMkRGs15XO>u`2`U+2ju<1=io^pQZ@fJsIF#*-wV0iYt>I%XN zg#oq}9PR3rhs_J?=MC%p>VDU1_7(F@lg;Ypn#SvT-P&pPb=x|r4S z9*y))m-#+v9i!L07Gb@_m$v9Za#H@jIm&Oi9{#E+XN(16VE!0)42=0bew;1&tzgP7 zrdgRXgvDycxC__F1MPD4vY)~(!EgAgyKOeWZF}giE*0SD?x>{YssB4E{3fS>U(Bqv z;K#RNQs!H(=K3$pc=jfa&K}Apwgxs9wq}ZU))qz{|32*HsQkk>iN)te*ChBd@@~)l zvjjxtl3i1lXc7v;S{PzMNcf{pRTPAZE}+5que9btw0Ps}7v*7hny>yize84bl9N~N zk5m5c&-dF?LLf*^7{Q@NqFhosVsc_sQ7laeFJ=;iu4H7R4{7o2dTP@C*XC%l zLmy~JFyU$)im~smkZ)gy{Om;q=;J`P^T=mHB?5)BU(w3wOc{?W1Fr5S-tTL@?fSQz zNnWA7?iK5^kqkYOa15H1P*W^V8J?eO>XFMA9*<8Vjjko#q)==MF&*j)liVr`wv_-I zONjpYQF78(23f0(9HcHev(#(i)a+T^%+S^fAL6-1HT4>;l5G`uH`(bwQw_kdKApD& zs6)5r6=qt_k>b5(SvStIEKn9Lq?p{P8fu!93s>iLb*j;aU4eA2n#wQ;_n~|C5%e$w zM5TMg1Rh92szT91*+PLrC`y6Nn;FpF_>=YL_XX!u10I%n5ZkdbX35%ka^uWDl0I|^ z_gq&$#`(KP4Bix86U4qw-5(gO#`Mv2^l0vXP}bn-PcyHy$*v$ww@r^ooJ`q6s*A7 z-9M2w4W!yay+eR7g%YBWFeBrl)aX|}bgG={i5=>x{+39m&&w=fm_cFN?7~%wZwd@{ z%%_^JvDOHl2!&%FpZ|-(u%9%{hWx$y3ctM|Jpb3#_f2s94_APcv5Bp-g{g&!VPcsc3&GGRi&@-63E{l286dgd2UqSHL3u3YBm@ zgQ!QoXaqx77R6 zeW=8eL-e+Qb0>?Irwpx`Hd5mG6SBv@b;X^#m5M#T# zWx>Ljw6)-6>PppwTTKzvvUtT-ZF)Ic^=Q~y__0(+t7R{`#RDg5$dZI3Ad^eB8SkS4 zX370|Y@S*wS>5k^4BGUf7*x)#u;7I@tJqXAn(mQSR4*rq3KRSzxLAr7B^Tuei5(hU zIA`w1lCp$AujnDK1IBsnnz7{(PLZcUL5Ey1W4%3vEq(8@)l6Ua94ZFC5!2*>Qv`!7+@U(mPs4sugjVvN#5N;CI5+a1)G--a7`S$!?)~Ltj5-ae z)=DA8YAUbQbthpBub8nNcxF|2fvPgN|>Pnm9l-mlEYgQ=QTqwAm-`)%zq;<($hDSS+3MB-vSby|opvOWHbkIXV zCT~escybBX!~#$GqxCNikH;K({q|Vdv!&&vXotyZ6}QW)FevJ+4L}IBU%|}iyd#}J z+I!3{=%o4Y&eP>M9zgQ2Z?)UPWiZt5s{6cuHZ*A1EiDynoCGF%^*^@0iobiMWNM*j z`r_G}$oxrYy{4MZ?`^D$galF7F=MEMRdr=YBVVCSzEd>Z7RJT}DeXv4X)Y$zUDjt0 zhzP>fvO{sw?Pg=1B@GDqo3L3dc71){578OfeDE%PY9)_F-Ep@cRA-f)>2Q(ouX=7&EY_y<}tu z<$b~T5>pRL@)n_&DNo2U$Z{>_%=TxHtIkgIbM7e7g+g|e^yN!1`#xik7MF+HeS{@Y zcIoVpbrO6*Qa|_<6#f;N0Qp{8C2$4!P40j z_zNl*2LFjL7{BQGhtkv+%%PcVOTreJ%de1ra8euD*{)z&Tm~jp@7M@-W&FZ*HUb&k zVfHHbcP-e_&i5bYr1w9Vue=&!3?Rs~Ue7S2KSEVz9UO_*N7hWa*9Xp587On)z~->X zubIi6kwWRpdzlA0)0gklU5wwMmxgt|Ncu_omi3eaNt{R z4*8awrT?41=zp9KLbe9h9-ja4vkv1x0?^EU^Q~NvV3M)}_>*JO0+OsDAFlCR3tShBXin3}o? zA@{qxJxpiycKv;RnDy=X^EFuu(nsPw1C2OH3P)gahZQu6ePwb77W4y~cX-d@hjSkb zeH+T}`?6K=*#Rf|S4!U7f^%5jPb>w2nL-7|wc9{`_j&ld;4~e3pf?Zhy-*=e%Dzc@ zPOv<~Dh>BrHU2+1L8}=XrP$t~ZUU3;d580-9xrvUJN^u9eV{*$lQ}%DWq3aufPNzH zRnm_I`AFTd`TA{(DfbQ++O-j3_KbV?4DW4v@7X}?8aVE{48H8W!}${RA?nuQ`A&HW z?9VG~-?60bfC`+>Gq^v=K=c~kSwY;^+4nl2JlJ`>@vJ<&&^{BoAI8Cb4eiZ#y<GNAv_q2z49T!JJdYZ5;~i5d=F!jgVAAeG*)?}#E#Eay<+PXJsB z%NYcqvRrQouPWyTu@$x#)k5d90v=e1)NkwlMUH0+Jq~W8oK^(MR!piqSF-3SA>>j@ zk>*y>AC98#BiDeVl!>mXEd-`cU4fz*QpfuqO=&%`9YpIOE>#mF*-w|EEFowKmw@)0UQC1JFQx@M3}+My zT)!AZQuBs>TM!sERvMADercCn1Xd|{wp>O4N+_X8H~WT*TUp)-1Zxu@sg@#9DtLO-4*;M>sM>j`c74E$RdIowb=oeCzf~ zcW1UBD=hC|w_5VeeHZucaE`qglAR%3jzf85JK~2TH2h97`X24bd)Cw+MTVEz*I{I*H)0Jt5@Vfo;`#dFOy|H`06;mXU6}F2uVt{?upRExJ7d zWWqj3aBs;W+biTd17yN}2{CUtLQDsS%~$9VACx?ldkgDd4U`8gU0sM?=dOcpw8(kG z!odrOr~|_lXd692BIGu~#cj%JF*azN&g8gWt7FV0zant;NOgVB=v@zlPtGgwggc0Z z%|xNmUrFY@L}$`@fCsvmQaCK*9mJcNskqIWoC5AJG9G4>R4~da?-!d_M=@s(B4Hw3 z{51Ij6}8lrbXC;k9v2!=0{I1mvU=MREo1rWYDy|{7Yo`#_1QU+Rl>Q3YFx;0*x1D4 zUNSw5&e(KXbC#+r$YZkO;#2rMPZ<%E7WYv4F{+YVYDvQo$}fxX=UJ*{29hoi#5ii% zT*Y1{muxWegd`Jfl^H27Jy#OJpYH2^Pu+ZRp*skuQ+fugN@4d13(LsKL1C|>{|Ie0 zsM@NR;2a=p5Y51W3vrSD(`HnVNoyiEA<#wfv|nck2wwm>pC1U|_9Nqy*CUxlOb86U zHfa8(v~V0~DTffcOcC-Y$!S=>5^w7OQQ{-#Y60!y{vMalL5`$m<(ufMGO|!d!!9Ln zHi0e|m)xXmL_)w?8*ix6aibJQnG!@S)p&z49*Q=vCsCecf@ARobKf*MU@y4JKvygnkQ>SJK;EZm~I896auT%hOJC;ltTe^5T+@| zv0VhWX|7{RIZjEh;v&s0mH)09gLl5v_92On-yr>al2B<)MF&QbJBzw`G8?!DnJxtl zTEZrS3B}|qTXCs5-@Xv7;fg{$sDJ{G!mha0O?*uX10imlB2$(cpto4XY#2*nh8XkP zJpYFhSWoA~CMS^UA=_4a{hEBN8fT-8C~93i>Nn7#>sYO5TA*PLCEqa5YtX}f57$(CL-XQ8`rnIc+wul|!EsW<7*mUp542(4; z1$2%JWH}gdY4d{M=&p2r6Q6!%OBU|8>7n zXX3p#l$aU#2iFP){2b#&6Vj&yCRdEodp7GGs0Rh7UaYTt+o!aA4QrN^X&AGa()SPC zC>rnLESgGbpW~i}jp<=uKeb<+dzA%Q8eeA=bZSKyY*iA;zlLY>$MFqfmQn$$Blol(UgJ-g67j9z)-8(bw4C-#6_`_$bK4FvI<-V0%7q=JE5l}^0A{hICmfv> z!#KPjw&7;dsT|)rCTY%zK@PecKKzql>HSe={We%)i%RKf$TcWncWw$w@W7VjgyV+z z=@ZU?t5#vXJ*=FvFMu)6pHKtG;V@sc9(fBxq) zUfFnZ`tiie8Z_S0tG}-|Q=eqd7)KA3kSXp!-rhfHC(H3CNIkB#k0?nsq^O;MED{07 z={etC!RnB0x*(uNDE){J3L9E6Zxt~q%9>!)Alt%L_I?dvUMR4`TQbE7-|X&~S>RpL9-LU0{kv z`eBVv>XWe-b0T5}D0>qYb575d1MR`$Fn-nOHY{6jj2o;SK8&c=0I19QXaD?rzmXnZ zFxxYn%*CPQEEw@Q))YlZTmVs@+^9i05QotlGSM{Znca^q)AASkX-*iu=QW7@p{&`=sU6tBYE0{hpt>0&0XP+l#cu=^ zXX0VD2SM2WrcB1@n{AmX#?cb|HpFtI9w2Ba29t{tj!U_VU_aRr?L|wJ#!G0=L+80Y z-VyF3z9n`%qVk?{O7adb44btSNYWJ#*h`qi!kg!+;fbMznLn;E7G>S4V^si3jn9-` z8KvV~ZF-Tn;X};9lwC4CTNv!dpQri=VJmY61p-Wk*Y(8&$+gQe>gL1ybcVe$vaSX|m zXk0Q*rxD18Ii@Ac{Kyjz)Lx2XiYcNLiQ6b~UgfciVW2pow$J3#zCEDj4_On9yr7YM z2t*CqpbLwk5yO<>(6125(ONg}uoq1Fdlay0{1M0Q`VmNw*%xh$vb z$>aqyn_Wb&s%xO`_5y~IYxcq+kdPzaTI3kih$Dh^NNH&N=r9bmLcfv;7m)> zk?fZBEv0328HL?wa~J{Ua3efPxF~T#u|Ryulugc+34H8#f`nTjA9+wa{)E7P(<1n@ z#k*KJ{aNs5{&iCPh^E+L`1Z{TAOZo&{eMo1|M1W{+8F$=s8O}XxznOL(%4^+1@)~Q%Unl+4pWg z)WvgtT_wC?MttVO?N+;&PuJa^?dHc90lyFEU%0(X2DlVh3D_CN#*xS&35H;s`QnPg z84_nywPU&mBD5Y!6|yi#$!Ii$U;RhJ@Prq#=`E-sZIeZuhE-Ft zDbk*k*@-KQm(G>-E_h^-=9$E%mEJ}^aNg5uTHq;OS-q{S-i zIqS9@+3b?gHyBDA+Lbjgi0}r@WHC)rK1`&Yl?Ec^%ZoLaQ(Klua0^H(LR8gPjhprL zp-eiObBGY04_6%Bg=wZyq?7gwnTwJ~M9C|oxQi(bZ{QWijOX-WB$@}Dl?p=e)sMR@ zgGK0N|743oQ!p(tR5tjgix4qwcm%8w9mk7ArOzUE-Z+_BD^Hx`b)dLqp+KnDN})?} z0GUSx-v5ZUIdy?U?{-(pCXAoKVUVX#rDf{SvAswJ5MYd=ZNwxEOF4*7On98XzH$x= zo4bJJ)})WF%z3(-I2z8hWaPDxb}BE4X8o{a-af@WoKL#zq;kDGH%4_g7MmJ-S`OH=N97N2dz&F_qpXj#80T?od zCI2)rZIMqLqPhm?$XBRxyWVby$=QS@sgKHNDY0I%JB3kmT~<6e=Mo4Jq>)z-f>y?% z2VK`^c{GI(wARHz7rx9{O%DMcmM&d8{o3cIg?ikWmV)no61%{z1tt6EL|>U4A#sD_ z85;|bhB-u!mV)pPo`NKv9o&cbGu)^6>y_~LNfMHNMw4NUH;`(8sot~2*@1aS-GXKJ z#rv~{a$4(9$2Jv6f>(aT%^nvuXo6W;O`7RzsXw5=Z=06lZ;Xm*COq(LZi0Kq5rReQ zCyTuoDp>?H%x?g1pA{+gpD`l{(RS0RY8 z2}>dib5p5PNEYPxz>RL0?&?fZM~O4S`l`u@8w8O{@H}Km5v68E+ zTa9IV;klBjBc!G@j!>ueWO7=2Wk&G*Jq+No?s;s?&+)yoF3r;hIjF)kM>mrLML=BG z2*ZEMS9dxhc)Kc3c@YXH2S*f#Ds>t80Ioi%N?6UB zm_oHa7f=_8VOUQM?g#p;b{Fsy`R*s%RyG+Mp{UvDY5afQzn&4{uYG9ye8M|-&Gi5s$& zb?>K*nsrA=YJ#>oetSgoy-QSE9Nf*1mhhG=z~5DuA5Bmo&uAMq)}}k54m*V)mt`P? z_G)|JI%K*w$u6sK#q0fX^Xxusn)+(6S18T;p|ZF&f@hI-j7pmA*bm|o2snwnuOX;yCJhM;LSaR4OTQmK3}yf?D3N z6BpaIsI4bPHi+AVSpOWFd<#AhMSEuLdO6 z;D7(Td3Q%i@cWlU$A=^=_T=|7!vho$kj8)WWKyv(HW4#5{pNQlI@;MAnEl(?^p7}@ zp@EUrKO;fvyDGTfl_2y|Yo_Z>&;pT7#mZoE{vCqFT7dvj;rV2UBxSizm&SG}4ED~9 zZSc!NKXLbRyRN5U%!${%r*f9JgWf|<{81+kz@mIWB>toQ4cBR|_vzN{7GG!Y*Pq2% zpb`Vogn@LlL+TkrVXGtRIm`!ZhuV6^IO_UW~@9)m~k7&F+iJM>(#E6AVVd#3pY*>HP$_7i&ZPg`{E(MoBp zcdOC|@I8Q?-;jt}O*dkDq|pg5?r&9!BjM`1W@Dzax|H_FWss!cRueU$E48<3E?T8= z2ksUb4yDl1jj{R|y_mU678>B^yEL2I6^KO}ulh+^t5DF#?cuJ-)Z`kI6ARpzgNNZ{0_j><^jC zYOD7Rtlhe!^wxw7A5h6?&uXD)_RQDS$@xUTCJfu^pVW9%v^0;IRTm)bvJ7KgE?|M+ zes~f0ow22*BQlYbI*<9^Q$?|e23ULzSlG^+9CVo~s?DOx+u@%h6FS5%91oeI`YRy2FF7Ghdp z;XCHWyX01ZRkJ1`V|#_)#l;Iy@i(oH2_7+xK#;tLvoXomEb?#) zAgvE(tj}OP?WT8*jjh2lv+sy9w0F8P%E^$d$xUqYw{LEXR)s9JM-4Sn`s_pYGlfb1 z7P&^yHB+#UedbU237p3L?bHqccn1Km`1K9qC1GV6Mn(wp%?^;sOI#3rP#_(U@(OLd zUGeU)E$`O@I6yOo#I(Yo%fos^Ao34l^#7tYACq=1V;56Q?}?QC>;7RMwL)zCotOuu z{IA$C{*Mph|J)(8pmo$vQ~naRyzd+b-l09W_lQPU6%@n&6`d!t+ZZksX>NRHNH*B%9vB z{5e#&LO8(RZO{cqZp&VEKXO_9e)bVkzD9uhm62fj745~T(e~w)y;Av7i2Bm+DX4v5 zf9dr9ECU2`pnnucn!M5g`(5`j6g}E8-^+a1Q22(lGT*zsdIA6awMWQOkMp-`@8{8b zEzFmk81a{GpC9L)74cmj!bcj?YfR+dkxk|Yd5WE3ZR(Xhzu=cP(6o@76j|9lx)8}> z3~2|&imA_-paplf;>u*9NFWIcE~#&J)0vI|cMTk9LTt&6m%ye;#p8c1zkiC?ZIp%yi-$A% zY4q;mvV(qk`e_iYRl-UGb}U_Snss$UIkr&Xp3b+`{hDtcUCwqyg0s&msC#dCeADK- z^Ls3Qs)_ha2b7$ERzI^fLt46BS5({bC@wE8ZK*G-?{0}w+T1~SPIiC>*ybs@Dhd>Y zbqO^x=(sWtefpTNmF!$21`m|9Uc2WhNda(**VlAZdMkTcTu|7;XqkNmx~yFX)bR7| z6<^)(Sx-KZnWv#CE%r zHLF~|ULE`t3bKDWnzvzLMEITlC8(+LYq2a_w+W*Jr_s1{A2Ca}1bHfNq%CDrGa0YN z*jct}A~rsWNGS*#=CLY9!-br<7)c}A$bj_BER$oV+dm!y4s77+*QRLeCiG6A73&Eb zZnZt3Q?=<0t<_J)JvL!lt8H29(-xrtIO3dToD(90%9e9{{*#1ln_#Qx*smKt@t;Iv z+PaF0So2j1FK%hgp+P0Ror#S!Kh#5TIISE9j&v-*?F)skE?_f)*QB6EIEIu7GetBP zulOV6$kw{K_a3oR^Hiyqrq0uTjYOd2{`rflPw|p9K-DyQ25;Xm8Rw=M+x}~I#zdS~ zT{Em4JmekCa$oUgIVcQ;bQ}hL<~iGHO0j!a+sGZdGRZ!9;4@f<#ko?zerXr!?xM%1 zqc%^Mc(uhyI}Y3OhI8x#x-&7K;{`3m)@YSQM7W0wu)KQ8GgGqAeX#upceOfec+hN` zI4RoTM=0gGoUp6-pQInS<8ewA+98%D+kjqqE#1}0L#?D71R|LJeJ1TFjL8k@Y07zEe;4n7c*hQS1!B3d&d?lW1jWhX} z9Rm`CmoNo%a*DwAnCJ_P_<_l;@-YY%+*(V%; zRVjzUYuPy)?>@mG>Vg-1+&N;1OYbV+^1kU6j?dWr?T^IEYfK@FVkF%?R!8e7D!W%q za~Js=QU1waM`kftsC*Z}d_;>PmC{hVh??ACix9Y&jDuS8 zAUxCa6^+6=+50K<3Y_Q3u8x;8!PT?yaJOUxRApX*m{{Z}(XO0M#)HMRDmQPe2VdQuAWA0UG zTKmY`zFPV3tQ~nlf%1D*!ieTiL_Xq$VMV6~Z&l)Pb=FUmd?oXToHA`E-h|8F$h96K zFFvCPiRFg%&|wz-Z}7TDNbcO3)LWo9=+K+h{8`i!c}%WhToHpxtN4#|wEdRL`kgAZ zX30DBke-V9)iYci_<0UCPl!_J%M-^ku#Qe|PmcGMu1ZhVME`w()@Fl4L$ z9-q`bzfEL+Hn_Ty%Ve6vURZC&-yC+~#qNa)3mm9_82TOXb$FBeIOLE4d{vQTaQ~>F z@AMZ-Ys$>sL44%Q)5M=#Gj)Y!g6vc9PeXB#U$CQaq=cw+LgCi9RFbHKigxrSDRSpP zmpZSrNgo%j)pt!9NRI1=DBX|=?AJ)Q+YJ@i?icNwvrh1Je)l#y^wirjdhbg)Lz8iETQSmv`vajgj?yHTyu>~4Il zaF2OIv+BCSfkj*4jH(}9@jb`O^=yW%&Si=J{ScZFhF!r@1rtDQy@C z?x1zwFf#$-G=V9V1@1Ou9zx~e<%9yM8FVgS?7WhmT{IwG>QhGd8v?#(WZO2>3*>X3 zx>o>c<@!mDsgQI=Og-=|ybVP~Q-`s!g|sWH>ZK-U@l6NigD%!p@hEuBxZ@l#?Dreu zI4b03jkd7be%DniOiK0Qom7d0EOVjVw34z`6iw3FB>iLh{5r}WJfKsW6Z04>jt$*2 z$jg$aGv;V^bRGNX2a1gRElYwS%h5#BR~>TRfI)7uw`;u#)ztV%6{6UTKko?c`*A<9 z>M5-AS{z~mmknQkpVIFposk!;eP4PRa*EO>v zi``~27?P)~W_U4=bvsrKhn)#8EwAS7Y!#3(WkV}mNyr{NN&X3e1F78AebT5h9VoeA zf8a8mrCW6WF5X8shZeERRI1##PI8U8yY{A4`kxmmRb|g@4V&tN%WCGTD>C3tuo!0+ zX9*s_9yjv`{ZvbL$Xbeb+Ar_i(^-54dLiLKCQ(fW==5Zfd$ArQB#1nWQf^80S};2CdV#4RpoC-$q6V+ zROF1vmy9xEwI!I=@!p}rqi30z3&9_-Lq5d6B6nWqs7wh)$d>dxVV-FoSKNoXqRUuL z8+tXc>7S8EIh3N#9+C-KCYrPQ$!;K?q?(pbN1DFnZad&~`*}k%I#u1hOz_le@*fC> zO#K{Ys843MH{8Trpih^=qTME%^L`*QxWlzodf^7Wcf%-&S_7I!#N5$n9qI@Jq*2+0 zt$|FDxX^ONg_>fMMOg_x{gs+}3BToWhvb5Ol}loF3f}Zb!nqGKMM5wsbPok9&I999 z+qK42AZpuJG5Xc|Wu-Sy2dK;jn^OCj#zSsr2T_OAy(y6Wazmgu_YUI+TYb^ptE{$n6G?mq_tGM5d$|+ zzF9=ytlFJ`k*DEm3f>m)>yX5jAc&JS#Lb53M#;j-D&4Kz1Yq>?L{i>-5%Y)HC)WDSqhyOoYoADS4^Yc&vO4Ev7z(!EPFa>magak%}qSPMtnR> zX@LtYEI&q!+@`#Q#4Q(xSxfs=Y|_0{Pt>jarrNB&*y5Bfs>AwQ)VzLw>f<8wViTtG z^MxJ0&=166woY`dwX}rFUEEYFH1(L`a$@ymUZQ2>fz7`Mk_WL9nnMlGI~)1rZlIn( z|L)L*gxbOpt_!vgjOg7|VEFkqP0hp$fUd5op>|MR-bjU+SNwa{do^|mKYpIJRjAVN z?BFkH69oK~=eqRaFA|ZyeuB|oSD>Y&BW<>)2YzMkSheURdK{3x&T>_GFIjR`n;0-o z9lMikJcRPvO%`YDUc#Gm%7!S{$-(A$JuCW(rM-R%YKPlL&@6Wj_o~SQAk4-<`)Guh zdn3v1zY<(Fo78Xs(%&$o#*$_wIMSJ55`yMpQN1HLipyc zEk4+RJiL!`YsU|45nU%e!5f6hu!F06W!8)6 zLw11|r@~fGJR=aFnN2Ymk*mjDLtawIhrv$$nHQNM*w+&1XsQLG0sx<+w(WjIP+j)C zLKt_JBSIaltZKZ&n_h?9hnOJSC5=At-k8s>NpfJAI^{Q;@Szyqj#zX&R6avs;Jo#* zc}MZ~eZ-RGnCJtN#NLZoR0V6K?9i?M(Y{Rb{{DyBewVvjNQ&d4xNG2sGqn|T-~=~B zeV=D?G$2LC%Cwa)7yowz)I~Vu$ey|bLkxCy9JEu^R6f72VIwzN0Cn2ACB~uT z)K(r+p0~Tk!39zp_uUjrmpzCHCc#|V6POsHH_#V730(>L3(ZEh7pj5x3mkW6_$Oq2 z{n4GcI%A#ZSI5!MD&DW+Y8J!%eu@oJ{UGhR6pr#N-IYPZ)4L9+Ugw;S{J0pHm&iFF zrLX|=;syNkpP`Esd-aKxFX1D!FD429e+7Lio0-@#3Y5ri;1425iye;5v7{E9^_*`s40uo|kb@b7q3P`0 zXwsr+It?8-KUf=hudm|r40=F3g4EIRTIi|_C;CyE={JY*V>>X~t{pdzJ$maVYO7wQ z^!*2KF1VCM1k`EdLj|A&LOhenNiPwd?&98BNR+j%k2J-3l}67LTq2(vL|j96tDeh+G==8YzX_6gs%she6bls_0$mOn=BVGJS%MxJ2E#61h9 zSZB*1!?k)b+yy_ijca_}WvsDCSN8<$deZ-Z>`@qca$`)33fc4|-ZA?* zBI?`Y2qC$pP$dwcsTuTMD>-0{H!5ndXOh2 zSNy?dCc?py5O>kI(IID2Q|L}VA;tHrxQ#F?yh*;RvW6GXj2k-$56aSoq!^QG#`RE= zD_y6|`bVW=PTPt%hbMT-YvquQ69tW*4M4u71sX+j=Q89sIjwf%#Q61Yo@1WeC5jN=Ka<}kk9-%{KSFHT=MrM;iv81I1k~{GTGtd$N{uO1y z!Y8ahr&Y!X<4T?D8>IARp#$TUN_t>0Izqoo#49?-E=Z^dlgggZVgdsU;+|4yp<{G! zpNKT?u;i-zD-lRGpWHXPXXc0z^xR(Y2uk$a{sojDFa#V4=jdLyaDNT~uE6Z<>R{a9Bj!o^%z*kOKSv<@n-At;-(rRu z+-CLO_w!LWh<=oFdb;V1yWWR%^vbvW!Kbyy(*S(x7g}?*TcaAY`B#Ed992*T)^#JPwD1_y*CaLal(ipg)-;G4 zx)EdiZG3mTWKM>teuN1I#Rh0%{j#^sCd5RF0Tn~v^Z?3VyiEGCXTF+0%GKM~eEi+% zI1B)tEW#aSQ8%mNtE$b-ah*YHVV3N62tH97`;f2vQ0*j>AU&Vh*L_mFvg5S`d7$1m zfNA1(Su>w|SwwBHguZB`&y-z|Y-N^yRoz{eMOIZ~dq@MpEqx7D)LCm(8(REb5et$~ z+7Y8{(F}m_CUYN&WK-$Ec}pzhjcdJXvWw=~UuM?>#%-lf(8GW4IasC7SXGji zA3HD!3KiAu7`plrp>y@(CzJcULMIPfh{ zDl>u|6$}J!w!g&4wN*7O@j;=cxSCn39E<2y>st&d)z-!O>z&rv2QVo!Bob<~O+bNwtI}LWce!isLf`0p?y8&#YZOZyDRXY?uq5ba>*cVW?+v~Zv{IvV%9?@#6W$R7c$6ch_iONBSrAXgohB)?0|JSyV(H0@bM3HUJ{(@qTi1|rDw&;>{E?s?})hWEl z)3qt=)+EWDs4;;o6wq{VKl?me-Pazz%)5k^w1;ZdZ==XKJ`%=vp}Q5O$9Ew;(&2eX zV(=+>dWDNbjp&_zXcXr(@1=m~UEC)B$Q0W0_*fek7CH28H7z3f3TrZm0TY#+PU)B| ziuxWR+8~NYO7>fZZnYl=(M=yMdm&O-9C4{J6n1QiIMYJ4D}troP?;51RM5=lyLj5w z72^-lgFrpCB2#wHbiY@xa5L&MCgZoASs%buqdV2*5^)d?oe=%_Dc^GzFv(G`EM&g} ztYz*4C+PXjXx*PoH^{Z|^LzCQs_5(g$;Z9^;^V@+d>eH5s-hCUhRA~dbrof9=457P zV)h@x*k6>~f6a;iRYz5;=rMj5Li^EDyrHZ{)9o2AK0dK8rJ6Z=FEpQ6cJJGsQ&Y{{ zu%;K&a}+ulOt>o%(Gf)%lq_ZU`zpivYUP5jhmRj*b>IbTo=Pjdfyv$|FrNFq5pxOZ zbX+}*NuBeD6jit%S@3W*W)uDat70V^zO!w|aI5tCcV@H#R1ZH>MB!oI*JLxyK&){h zw2Jj;=tsFj>JIWZD?F~1M_u}#S%TV{zisf5k?tt9C-Q4VvBqcnVG3LrURmPT6I=_E zT}Wmu``-!c3H=!5UTB@!m##hY&gSj(sFu*D)&53hRyGx#p90;Ip))oU=Za6YG^b4P zu>1Q)*W93q(2^)pW@~(x@tHy$*qla9JgI@Xd$?nMtr*KtSv|P;dj=K~tAy-$MhC}< zb-`#opdV|0rHWRcg`X#k?Sbx*373$w`1?bwLa~6`TQnV>;q6!o6yF3}U>Eabw+hE< z-XO{y9Uaq`D4=o#NmlKbQJKd7W*z?HHsf&-6PLgEt>3?j9I5}C+Y~l(2ABxj*#Bz* zpjuT%0afX10l+q+89_0=R2iIp9$^W?r+~;<239Trhc3Mq7bug%GQBu0cv#xnA5(8s z0A1#|*AEW+8R6fDb>3E-$^eGCAa%@pocqN6B-``;@&?|EW$ugB&kiyG+7C*?-zbdC zv@e1CGpOTg1bz?<^T`Cw1k~>3)I+8pAKD!|Gs-F=3n5sbV7)z+iOx1jXgZyOksN-h zxos*wbEWFIuG8!Yo`AM&qoO+H{wFH!DjDN&>N7+s5srd3u#a7W^N-XL)3T~9s|$*2 zP+#eWbE+M$PflR9viz33ea4|-hH8Y}jE;Ijy42QU4mD7?mDp1OTG^{4OWkHp`xrF= z9l|}43z$lY(8gFcl-+KAGoCyQUH-`DPM~4IjvLEnNwPJR*d&+Xrp(yZeB{8}$61B4 z#JrNeO=>(|QR29P5Hoy08CK_^+y4XmiJ90$x%WGW3aHmCd7+LVBf&V-Zf6JpJ1#zc zE`lL5JethhR99TOHz0&fq#opf1uW!i^fKi`*P%`%0u1!uA{^M&qTsepTJZB+n1~wF zrRb3CNHem`9Aojwoi_We0$1bW7QsY^VRSOdFWPM;!HM-^J@IA{X3=V1M*iTD6DHr$ z`_fgokzo1DiC0WtO2IW$eyf^C0(kqG!?Az=w`Hy;92bAzD&iceMY~{2ZC#~+z{`6M z5(qo!8ye*kfPO?u_O;lhPyPbkE%Kal0+|ha@{73bY1a+^X9n0EGD%Rpl{7SjbcZD@ zg#JZ8Cfq7zYVHph(i88LtJR2$s2Gr*GH1cmly+q>$1%QTXozq_A_O_hKoWC(#7GpD+X~{Ors1 zwHhA;YTN2MYrmFuKxY&Z>U;F=RXAV~<9Y5ino56`m_QcfS<>1i30>R& z`{SubS%|{>3Wfi8Kob8~kH^f?$PHlsAI#lq%EoL6%L1A9HBirQ9W*8WL0fgl8^O{sji)+89Ow1pln!y<;*e_ z1`Vv4Xy2RUF&8xKM7;;gcPh}G*JWh#Apq1*92tB{7~ko4z*vvsad98a!M&7=)D6<< zc(9PH-q{>W(!tbMiRj>Ei56#a4rZGuX1Fz0$r@`s2Ltsc_3Y_K#Ln>dP7!+u8SQdj zt)nt69k(d;7*27l!zjA#{R_Cy!mUFw_6}D}6#h=jsxW$2`1StY%w}hp(-^38p|U}K z^!uG~^NRvnq6c5%3r2MUCrW05rJ0z@r~6xPN?rw10ke+W97KU;b$6zTtbPR(BmIE? z?-w8|d&>9iD{`fLt=UTc-&}yQ*?;7zf3|8(>T4RP7HFSx-zY;sL zrV>)F=B9kwxO(?>&%2K6@&7>Ywe!)5L5pR9(#ga*2QhfQVVo~*^av>wrqaK|L zkj;dNXB$zN+2o`)Dsm%6GdUTDmHvWv)U+862Fy5(CO7i@8l_6 z)S4+dD-BDS*#e_#e48}U|4IzX6d^)mx(D~Ek$+l$FQYiz6XsRE5G_bqnzO2H6|hyU zelB8XLuQ{$=Xc<-pfN?rT2>dYsMW|)r7bsi&P;p~NmW!4?@sf8_U5=oXWYt~bT7`a z&S+arTNN1lxx6SDM4p+XAYUqVivQ!s573fjs_i?NVp;GmU%-@Ybh1$)iGJ!0jDE@u zPSQ$7XWyY5g*~%pmK4+vG=J#tP*ENd!gvy7WK3j6hy*CNH31(REkga?P^`wv{qmc% z1vyfXNkmskwXhxJHUnqmDRuxfw9r^#SLM`jGYF3RU|%8D1NrRq`1Y#%nA2F1@3_EN_Cx&5 zHCE9g-ZaQFVEGve#AxoWP0^*m6Z>=-Ihv5p}S@6~$D6lNr<2fXon#?fH)lNHt zn7_Pz)qN=fvUi}g@87@ZFApoVjv(&uAry$y1w&i6l#EEzYG58U`T?4r$SLS)lCpw? zbFO74HC(++acBX&y1Tt3!xz$RG#+oUs~xq4F4Q~20$r@sEP{6k#e1oEOv~m zC#VjXX)FZxgAa{7M2*ZPj(iLq^d*i2zSYHLwR-aju6tYBP^wiP9_FZc{|Aav2oE2;a!wch6zqtsm5ou=NF}?3MR$i=&r7fTeaOWiogC(k{)Yt?+ zwWf}pyk1?}&*O@l#_<2mw|*zoZ4ry&cA9y8w`n@63%ylomoK%dpMyx@>nGzek@b|? zOZXdQBxbs9C(4MgyS)*URI+_!BfB1~BRz897YnzXDTt2$AdvRTc1xb{CLa~xQV`)K zovFKikNEFd#*v$j@e2IQDCUd$ul)Z@mibpV^e^+6YK;vAG!3jzd^bZw>`o{2Ds?1G z4BgH}+%y>2lV!7lpjB;aUN}fREc0g8?~z?CZ11?W5r`DzQ?b=X*++-|GwYO^nBxrwC^tyk-*A1p%J3rrW?|7ft^Dw zG1Hy&GP@5`igq^2mJpuYhB*LD+_%X`qlSZFCPUc9*#C(%ARG;an-+qFzF*(^7>jfb z<0w|vNqJBaZ4GCXrQnd2h2xIpMpnAW&CYRtCQet*YsV`xR?82lxT=~0_%WAGGyQUo_z zyHW~a&#H;^i1|G^O)1(gEzvh@6#Iyx^snan6x)pyR7^Q6pz|yxZNle5RICyL)*~mG z+4v9(cj^yPPg^TaQRFIIDGzW735y0oG8QRYD`(Rm8Guf=;410rHxTkvOiZK$rYD{cY*e*K zDGBN~$Tr{zx-{iMT9eeRfmy0@;D5qtT0`T|eS#FweJE1%U~fZ_BphY?9Es&&ce>Fy zdr(U1E)EG8V~wNAGng&&C2^wco8%Mv-RfRWdl=BTZija6FCI@MiFsi ze>G0lK)@2NjJJNdnd#p;(Gdw8p3}G{Wc@VD+*Ty;H2=|GA)Y5(T2NgbV`L@MP0J`* zETJ!4<7rn|3R%v3Uw_wJmV$833JA7u97m=tj#ST#+6xaSZsDTAAXhymUV2=&s=FdP zRy9dA5qOs@E6gL0{!qy(awMFBarg!kvnU2QCYq`MD4bADJ@sX3DBYk63lRPJg)9d` zKeq6KT<|4F1>TxHmpB`3seY~#q9}R5UhwcO6b`?sMG32Yr8DSfU~1TQa_osLL+>vt zeW5X$etKFeIVs8_nDR%4Go4WJ(8dDgcF>`QdZM~wN`INB&N6LD^#TWc-c_D{7HvYK zxaa|!oy=q5Nq6aqc0V9Ft6d5+Tq9pE2T+V{-jo-WtNcVHxw&S3rkFfgZ0OJ%P5LP{ z_YE5cR5~ty)H2D@RL{p-dquHc{2TbsDGQLeIT}%un1ITuA!b3PD_t~-?~jo}(;5lb z?M|DVhI6iaw~EzyBONEzUBL~xVgNo%=M|F7kkgI$Vsc61aSH;w3RmzB&Vy9q##oaO z@6_r7Aje5V2Ke>V-JXN<3I8}|9qTW{iK%&CRa5tO9Qp>coyL%$aTpwh7Ys(TKaNhp z=mpa}G!F&8d4gJFl$n1=FaH(Cgelwf2bZPQf5fI`oLGELHaJki0UtyraWrE&L#CIW z#J2nk|EsC$rxmi83{|Pt!%wclkR>>}AAc!(i?@PgijxyvB?k-Z_t{4ep8*1JQR<*g z0wbg_MXZZWEmsV&Q88WIBQuih^DvK!y2eGB_LO1LR%9gV#5(#=N~->%X~ATE(Y9cd z;jj;EC ze~~c|vHn|A$^TD0?Vp{?l%}UHo;&&{LWfzZ87MI%yeh5KHzUmUX3I=aW1~R90ptOg z0`-Gh-oQX33szQ{pd}C7O0`OLYwb9X#gkGcRGpfiOI}6V*Ol8EUDtmYr$*wgr=|&z z`Wc|#Rr&LLd(Pjty?fjd<367H!oKN-`J)R;ME4m%KzvUM93q-FjO;^(kieE@^{B&a z*(d*ML)oT^^*{ zgS%4%n|nh#H|oQlS(xtomvGxk;T<>f$doXSoL9)V42*93Ta!;e;I=0=D6wyS`Mi5D z)tW*Zjz(Vm_*aBcj>JyS7Pk?3*R0d(a@t z?rarULUJ5(LuiV%2HZth(ri^wtJ#^5u5v2q2+qntJIKgQ`i^Tn4*jh_yBv_g`hUeh`Y^PNi9?VrmmHN4ID~z4(1kbFJ zBri55k}PS%yaLh1TAMm^uX>Ur8;#}R-;W=`zV8J!SKU7#H+b5$Av<25U`OrM3oDjL zi1ZtVF{^{cts%i%gS|qG_i88uececF0}ww2q?;io{@@O#7lffF-Oc1ibq!;w6nf>y zMLX6(ni?`q%_|K_|DX`=RP_`+K+{lG$wFTE9w|1x(&%F^SJM%q#?uGIl{v%#U}-wf zS_ji*F3zkV@0}z8J*PDtRf#kj*G8zAlKYE$5iMQ*V^F$(ac3ZmH{*GeKL~9h=#}^C^fykn1dLspqXMBSctibvVXD-G^x7YBT z9db-E7=RNuBl8S8E!B!#4cc5(*tEoS2sz_>++ zHW;c6`L%bh+PTcSIm%1!^L;1zhTbPDTa`onAnEX`B>Y^cRXGA`)sh!TAtCYoo%FzkW*4{_ zTr!UkC7G!^cNep+7C|0$!JiSOb#A7i4YJfGRu>RygDuwkxTGlj5+Y1Kv9+?kK`eNJ z5x=sn;J7(vn@-#4pKdj-sNs%?-yYU3qSv^#z9Ju0^YPIYvbiM{;JDSd92i?XseXYh zDWtE(OQMiPOe#OGw!HXz-c8?^Se~mu@FUsqr_zyRnoaB)A(>7Znwv#d*|XCVw6t}q ziizl3k~+Ym)i%fL*F~t2n1vinB2}9Ve|ed6u3|}f0x@e0OI6LO76G5ySl0jn*j7@WxyY%HBsVUHDmMds~&?E z5^i)ABciSB83C80H%Fp7HKAl&dM)FN%$OC(jTT;R7?=+DPk z%M4cJ4es%6uHFiwnB#GFts$FXFchCe=M35^CX#>T zHp$mXAHvK3_<6K~fN+xJi(3ffz|B^n*|l2Uzr4BriT_=@M~C9Sm^r8bwRpl;OdojXv1ZS(loqIO7wGq}3@1v{DIin5hIt`*LhYG~r<#_OBTS@>)U zv@QrF)5Q%}E3pf_n#!kzzTe=gFoX402usc$UV86*R`P}-`$g)#vsyaw!C;)dUGIEk z$c!(XpyZ9zCW8rf@unu1SMpH%=W?4*u!D+d@&#N;Duj#}O6aOYWTdMFYHD4i ziru4+^#Yd`lM{2V6hVo!5;mW&=XE$TGG0i!u{w>Rsy#hI19F%Td26J z1%49zR!ow$xl5i)6P0tyqzO2Y@XtPa;k}r9Xz3ol4=jhni{hvHEVf$pv&5@GzZ7t9ozQxtw@*R-jMSo{J9cW3# zaIQ^X5~E%UlQtVs#!RuLEQS)1y`3c>U@B;>jEh4W;klo17CZDHT^`2uSzbd`sblKG$iOU>L^jZ?N z8M5g9_ETG+%=)uTH2J|x;+v79i~K_hI&qmG)d;6u=)#*1tF(Ck@3=Xq6bjb2c%ww0 zOsLu-k}XSFvk&n9eXTcN*E-+t0A>8O(KZVG-*78dHv6}O{`+4MdsDN2R*@;{1{%0( zNT2i}HuY@)6{>2T@?sn-sKIYb6(Ds;(sHn1#Er^Lu4}rZ{q?x+X_|}cGfD>cF_3v& zBfw@apTj=Lo>)ez>8$_^KEcE!US3vrbCyrep3nDv&Trp6@P>6HVP`1?d%k^#;c;M> z-L(bByp0Xw&_&(V1Haz$4KxG8Qe_H3B*7XE3+k*f1S`d z)`77z5w?_v*-nn`jK+o*`eoXB%MV=+y`?Y5xb~PhwlJYB=IlB`<$Y?F_Iz{?XV663 zxm#tyuD}SNxF2tXy_^Y<)vNYL8YMPVy zMIyJvN9m6^sVY6CP10`5r%%@v53E17Fq4PS69Jvj!f>xI`Q5&ma+6;th>INilqAD) z#o`m>`L&quL(^*k>ax!=VBJbqJA-|705X6%J8A|5KYRc$>8tt>oTQbn?8LN3qvU_V)x+h}ig?cqqvYd!)1#Tw>v z%cQb0o06v)>72K4(Qd`1GqYNr^&2Jbr)1ulB!eVR$!3r{)#JUx9dDW(F^ixDgfKl^vZc)3S+cv$%4BXM)un4rgs>M%*#NvOI^`F+e`cPPlX>Toq;Cdw zLfNkfuFtM2)`5cpoUtX6hU;Hf$%wBVI}yf+{=g+uzJ{n1Unnc{|14PlGhpSY{?mc< z3$ih$%LE%Q-dr~(a@5YAFsYCnMGQ~{v7#yJ4&X3P;o@>LwI_W*ea<3L0#}Ma+$}_E z0Faak>$Lf;;$P=-JDa<^`MrPKq6&VW;=A)G0 zM~BDwjupKkL_{)j>_}$}oUg$Gn$%(9^XRtwQofO4IoWaHd3J|mUEtSW>SI0n7$H8V zkJuf?6#WQCANHGzF&or7oy60I!)4*|5n-!Cg-G-c#JqP44==KTCsw=lo`zFic>e+%l~ZyKlDgUty3S&tSC4q2+aw%DV$R9 ztT9DP@Faz7mMj?9rfC=HsWOlncwEM+idxHzR^sJDaDUOV73d%(erT zn)O(?1e^WWZaDjyEzd)hwWJcfGPUv!ZMjuZQIs$dJ?2tn&ya)GASST4S~ zV#IJ6n&lOh4xjV^{mi5_Y6<&|_+hM(q^Ud5HkYWwz7D$adQ`416z^*915T$XgNG^= zDvKx6R)8pS$kvT5$|Yx5Ez(et1SYrGGXrdWG1GeO?LT?qHear?(0nD)>n|XN?Z5W{ zs@b_Zo0-ZR*_t{3D{0#PL-N9p0gQt#>rR_Wk#=c0QBYHcx*ALeP!%p5Is0?>JW)5X zc*1UTi|C6U#Cae5_U&D_N$4W_fKuQ&3U8!5w?Rre3W4(U5~$0oDS4~x&U5_O{qkOAYGX@8v5+UMmb zs8>dhLA?{ecO-Xm+3z@G&}C?t%F0v~Xvm3q6Pm}l77;};*+rR4_UQEI9T2{Qk}eh0 z!CRll`V9XX;ZSFTBd#Hii3S>-z!U-1OwkY7(lrZ-*fxR1M)=LWifW8n)1ruXM$v3s zRjk^iXcit(XX@IGfQ?kUc^1An(&+=0K+(%K2=UTOwXpcAS{z;ZNt1mOSs|eTh{6|= zX($&+TRZHWY*=DxQK0WX}>t|2{7&wg> z*N<|D{aQY71HdzmJG)P?{i);yxTA@gT#0X>rCM;xb{=c%(#BKl8Cwq3fIHP&f_5Bo zi#ZqVdp?g3Tp_zVXG}1TnlwXO3{@QJp%Y_Dk%<;q=;^9y%b$E-WsbbVjfZF_a7bk} zCtzA)mY>5<%h`~N-Qot4Pqd2&Wv(coT7GUc5-(sQ);>8qM*t>azHe29*g5m`hZNVq ztygh@#Ge{AHL!j5l!(ls6wi?d&uwyNG~NtLwmVNi())Ao=7#vpn3C}42goxrpVUOq zv1GK`>z9Zy+AFpzuchP=WLTtS^iY(d8xjNc((Nogt*?S~Orsq<##|$;nxUH|<`n1- zu|zb*4KGRgGea!%3JU>AbIMxtEie}-FuS>+DEi95kTmdO>jjTKR~JL|D+f;$dBk6I zh17-da#z$_0lDj~{8xCA7~j)C&l4e-Rwo|W`VFEg_%Y$Z&md%QOtff%S6GYBlJJ4n z@H(f-AB}gYr@iGQxu4+g0tJ;pBRU}QuJ^|WG$j%Cq_SVD#{VhyfG=Li27E2CynJ~q z3;$1I&zJa)i@l4dgV{e+c)nau0RM_a#TuR(U()}dKcF&9v1We;)vcDGS$$(}ZfXW^ zB#8_aF8Zli*Nl(^iH&DIpAiAxasApoKXtXpu*`1xqjcnBA$NgsenwHj)_aGHnFLvv zi}G6Us^h7{7rte(*;J9cBIfnaz1o_YxL4?aanIX5+@xoaUo0>$cZr_G|B)02sVqj z(Rgiq@-31LbZj(}GRot4Szmgz<3-Yq==lw^F=2h@D@9(f5jRUyY%Z$Ngw zNn0TK7U`Kjd!~~sDUCxrH{Rvrv^ExKCVS>0yb$Ik1s9Kv)&N8t42DF*LlG{%BbZ#H z?X07%n)5~j+#sKU$`k=@4PuNvo^zWm51dWFY(+Uaop)A-lSijP6LeRvl#`qWyl>vw zS?bzx1w+~mDE|EvpP?d;T++rR@Qf?Fb;DxiA{$D6ya-NTN00(=ZoeeAr8iMad>~J_0WLwM!c4J z4luf0;#LyEY)AK@V#`Ca(+Z>#NlBvwN~@L4G?imjE1Zh!qUGbZcxd4umUi;NQ#vPt zlZnQ0hN1g}{KtS3_>RJ_@nzYZe3KINt4^z*6Q+BJtZRgJ$v4RezCxU#3v0ZT6wN2> zJDi>dP4|@J2}q37!W78}HjOz6x=-A96hFlqQoo`7gSz{r znB&c1YFWoL&W!9(&?DIEHSLeeXm{XMDy^eURFnhGDImbDv<-Q4%ImWUse90nbF9Bk9bC!=t!^s*G$EzJ#d!_oPB_lf>c%N36{rU$H5wCT39qu(d7<1de}cpp zBd=`sL^gky3?C$G79Bv;U{_pntFgTUo@{mzi$!sB-9aLa5~h+;FU<}7KaT#g>P3BH z&p4#mnnOG7uJvkMoDnpGm5yQx;1f^C852WrtcLR`2t203FtD*B=@V(EW@9Wu9I8D1 z(zMRC~O-H_Qh<{D|V9C3Q)jJ&bZyxuYjeAh3ijNF|(aIroKo=oFSBo+a5T3 zY<4FZqNqkz6pCW$nQV5^>^Xv$VA7c4H{Y=Cc5zIaFgT*048Rb3a|RS?oB^bp3g4p#0)sLhgh? zZJV`@-4G1C!V#98^o7yb?UAAnU_lqa60&ZZKZ_2L`;0S<-(deqwAtF5L+dcPh~+dA z9wOt{h*t-Y4dkf6)NlUA>NZU`AEl*&Dr-N$GIJiMkqZ29nX8}}PgScK9jxyz;T78` zYlHS4W2y#o27+hGcG39ytvWb0t0gse@Sn+%68#2muY7q4>8AKoZ<#^9r9Xp9o}sOq zEVhCS6^m7}w~dh=o=tG&GW@n%B}jC73K;9~awIQYfq4-YQ%0~n3IVnK(j2F-E$^tW zVbkPnlv+r3s~66QFS7rDtA{WU)N(89Nli~xvzD7quZ*ReI%{U#4f}ZrZfh@@Pt3wq zX(&EGcV*Q&!ZgA(bAvvhwyAj21hjWB==%=8BfN4$;l+N>e18xL1V>{}CSs?nR~z<) zm$8ArDeJppQ3n%d-*BRL?-G|Pw=C;dHH6-LW2`hZTVY#NL_7IGuOjPL)(0%?8>#@Z z`$)JBY>J9;PDEVvv!sLy?o61|XwoKfRB*d8a=sh#q~uAd97RfjnDMEN%2_z8f~XW` zB=00hm$HDyjM-4I(l|U6TbstP)+ixcvg7&tssY;9aC|*ddGf6YxrRv^tiH;dt%Qi| z%aooyoKz{ZVvICX$55EX;w?nc&U*Ni;;aQ*7|8`ueN|OT`8?q~G)uxRn4fTs@dDU8V1#yu%^ zh6_A5eV6nLSXXty>{}&B{=p_@vH>M_u%TF()-s0|b1AqXB!la>Iwdv7n4&40&Uoj<3N z5%c1OBmNVO4RuH46{2Qj4Ix@_0p*HR$TY-#cFxZTG6&c44%pRaon`48S<`0O>5Yj= z7&S7pRL=E;X_t_13F&EnFl@9-iI$#pt8%XqVmSw}+Tc*U(Tlv(9_G|31$IKkAw5OY zW}Wy&$~f<35a(g;44q>WoOkmM-d6_;7{5_Ndz-*IPFqr_&j46o(^_Uvm12XCpQs9d ze1T#;d2C(~PX!l+e-&I38sa#NyN;@56^VTUiOc-|kLkxhVDjK=hn`)SZ{J#QzI_w> zA4j2okd{;cE@lc2E&yA=|FZ3A`iFnK2KJ}G>eiYb1sIgh>ZX)b|7nRW3au0_6g0im zDqe_U;SyZOciH-j*$iT8+v?_Wi6t*<@LwL_ab>o)hUMB#RuxMX)lJ(?%dg!{F^X^9 z8G(9|0k%K?hH_rNZGXP^e7DkbEXRj801a247wd3Y@V#(hva?%0tp@;8wZ!XMx)c=djmrCTHG!72}=ZOL9qd4Y_ zs1;Mz`nmbU6YCSDglryTJI}#i(E2DE8&z1L+KC}+c{oiA)qlTPKCT*iA!i zPe zkV9oO#kOUNmrRV$zP0o8OOec$Qlh*n(yg98vvCWUn0S_0&Bkrnv01X6L4dBBiYyki zM^ym_$pi46JxUi1j#dSWCeveZqw8H3#h~>Q zZ;-m^_i?k%1u_Alraq|K3A14pCN{?=us9|*gFm6SQ*NLLl5g;ND0bVK35K7@eDsG9 zuZ6LpT}Gdg*}IWM4q{E;!Q>Tu;%=0`5TLn7L=xk&m&tn;-8)Ek(lrfsw^(M>_D&1) zuVLkP0>8K$@ylzty7fmG+HoxDRXbiu!gZjpdY%R;@?Q+tg!Y4H5n*@N3J%{ijKG8Pr~wF6~C;@tYwy^NEhb!f3yYbgj-Ab-B{) z@Q8LL9*>5wr;a=nDf+$|FmIxJvz zQI$;9fM_h`diJZ83TcmI7eY58pHa5G>`EC&|4>-|z=`Bg`PIz6x?WFr zNp(@E*X2~nr{3axN~9i+s-K!Y?A){3aTzZ(@;K=joc7T;h33kYgWRLqfMd$vG=~+j zy(zW5IEE~Qs@~%2GV{F3I9U~xt|uq+Q`)d%OPZa^yTSHw(hRaTd6g=y+5i=kY#4ru zuFfPR(!|Yb>he;fG`*0qYgdj4iRy5$(6<8jw3zpEoIAtUuMi4n`b&)BVLCyN9Uz)< zYQf^W8%2&L>=?z6)SGnUC9Q+)98lEHb3cYKZ@`((k}O%DBC(fe`KcQmSG11^;J zv*UOAdUc70e82D1eT=~dW_`3mw0&JJSb~NaiS?;%tmD2Oo8jG;>Wmje7xQxV^ki&` z4KY4*+E$8A`Zz-?y3P{X`S4XBEjK z?gwkr<^WQQ=UNK+74yW;Or<_>1@|UBjR>V9`+~=+==qjZFSCumBFQ$HRPh_A^GaWa zCuU~~lk?RyAk;Tq{2`INShCZN`z}uup}UYBdJzIf=)0^6PmENBEmSMOjWEgrC2t4g z$@XKUDQ7IhaAJL@sh;PaoYZ$liJ%kAmIzvCfgaUqzBrnR$)Wd(D0)X^u z5Wuv4M5G1OnuF0e&0r+RdC55u%KKo^ILpiR(Fd@GObYcyI{g`-I*QC^8SyildtxZ& z_d0Al*pea-?^;$-gWunylHH-?Pl+}_zraSEHf2#C=gb5yHf`0i2eW->AV1Q}<#jA! zK4yy))4{ph`CUmHy}$Ip0ZZMCkjVee@H_p^sNRX8d+*M3CcPA z;M74NNtktEa!16d;n+ zFHmo6@8FgkO{hB5Jl*<*u?cz&AHy#i<&7Zc)D@Vj%VuDF7vhW1TpOFBC7qp%hu2LR z?ewD{%fyc}uMxeo%TiTK@FfZ_bFQM(f@{sLZ|3{8Vr^-JAkrTybqe1g*$4J42BrWz> zIp8Z{goFf>d*T8XEUB$wKSekj{RQbSv{kA4kqQ;=rye54Y4)*8Hg90pwYZ#2O zJUL!IZ0sBR{e9de^@q5W>l-jdHFp%%_UxQUZ;h~~s4g)0%I0fwRn`^-B?mPPNrGDo zH0(Nr@GU_F!`J8F?V3!+^)x&e(Upgo!ZEyLDon-&fYB3tzf|lZSr_3n3 zmy_UAjpF=`!=nKa@sMYU;Srz`cYUqE28ixx^R7EQ2Ik! zJA=CCbCmr{pTM9H1}3eH;Zk65RIoFLeNVH(V17VG@Om0SFWv$jZJyySLRjKq-4OLp zP;76f9%F_$xF!8d;~%06_iai-OeU`U!^ideJgaBW>}FJ112Dp;E1;GWV&^Y#obpw0 zg%!E)5?{1F1VlxyGuaP8-$PDe+sa;SnMGDYYV57LZ6(MT7#>^H$l-dL8EtmF3 zHlOllzlrtJ8|G%lE=d(eg0sFMR;!CY&mabs*<7_BXG`4kzvL9`Yzp=hAb59AP~er`q-=)yRGU7M9>t-~UmDCl zy;6g?DOpLId_XTlFg0E|&nd57sK<)9TM6nOS~?Z?R>2~gR+9!$t$YH*-siC{s;V>h z>N3Ye?oHh76`bw>+#XQw}Ab!$?cX^R#9 z`orYz0&j!TwJM}>z2$0Y_56C!G(~R}Q=beyKPUi#S(OEiq#4-1(@ErtudYpMNH0XZ zNyt!TiCD*MVcTJKMOG}EQKCFu!9L~V+{#-F>ETw{vtSVPJVAET6z|V>>tYQj6h!Jh zRPbXB4^CVPd~{U-6^{MStN{vW79ouBp~oV_bUd^-cXt*5Knbosa*#?xiNZb)%Yr{X z$`rs2QSA&Pl~xN32h@&6Vpb%TbX%!s#KfaknlOmhG~4|9k&<~c!DMS><3lRboO!_;TlSj4Bw z3b3TSqajf~LCrdIXkC6cst1=&p~be#Vu;>Ewc%ZB@-g7zlo?jaEBGT^un$)$u58Ku zq6z~w1AdM)L-t!!K%qzOI~|VWHlX$R*ctfS`}FEbgSv=}826tZ+f~jd57jgdpyH^+b=| zV?vkT$4>6@?*|l>6xWbWhr4zg4%RFyYU~E_A+{Z$h5+?8Od`#c0+#JtROni>= znILN4U;?F6!?lt*^;6_vg5;cG6)(J&x~lSfwlg#NsyWpALMi=JV;`xakNZZcX(-KU zC-`l_T&Zd307yX3@hNyR!kjMkgM@yK%w@qkG%V$@vdUSiD=3Iwk}Se(CroGI9Q%oB zvR=G1*93F1{alO6YxDUXzL#ndDTrR8=ytN`cH)}iYgg1?fjmMKdY;5A#UjFRlFu}P zU3`<}Wl_;v%6gN$MAZlF=bwha_>GW82W3lPp0VYk#fx4Af%?)cm8Z0B>ByABihGC; zk)qs)RzHflcg{{pjXKroST^xB;edAuj)i!_nGa&R^6>OLBptmJ`|JEezLpbm=hoon`6|2zeAKIcXlepCPN|>s^V)WO){W?fL0lwg+$i zLfzy^xlUevQqeq{wVSSrRaKnmu*CLRf3tRBMbRPo>J)|Sgx}n{H;Vo|#HD+)L#{(r z$o~n^X8f6;EN#z{N=+vbHzNwmMs^!!T8eqH-(5?!k@ zU7L2fFF%PpeR0xrpl#ncK1y_p3QJa$wcIrgd*U8BECDoXjGeFipmE?LH2o>Eu^mdb zq+w&EzTjoL&9>& zsOi-%#}*M+)NVJ8L{-C<-4#l`66U-MBP)T-(3a(D00JwD{8BI#*Ko?~B5UC=MU`He zUa8lDR&RB}Fh$itXB^8>SnAl+%!6Puew79hgJ-aHqmq`#(}S6W-A;y7xyLcbTf@Tk z!f`*)Gr?k5;dE#qvp7EXEc|$XsG*fl?mB4*h_a+rRTA`)i0p6_#?IF_m}qQEyO=T9 zq1U_o7otDhVm2nkKtR927&5kAQWkUCnlBv}qZCpNcUlv0)Q~z{IQQMNE?V>Bwrlcb zMC0`UW@tkF7P*gUuSPlts_FOhP)D5)7NLin5L8)*IoXo!47Us_tL$Pac2a9l9b5Z4 z$!sgfX-6H}YCUnk4>jq9p?=U_z$*3M`a`!?|O;Gh?n#+ zQdJa~#u<#=36IC}pINr~#=B%L4T@7k+`nX4ENWPF!_&DBVip;u1?!>}k2rC@Q@#7B{7qW}-#f~cWk&ZjY z*TbM~{f>suHR6@Fb%x#9y?LVwVWoxBOYLe_v>F;3Y;8~a$qzpYUr^5uv)^UGUs}I= z8}yqykTS=U#*%$YW#7jr=s<6Av`kb-De#571lx@i+t%Ia!hIrJe{y>3N_tFf^X2DC zyr8$^_lHcpsBw79OS%bd>trbUQ2k3#_vnWf>zF>dz5k3eeR8z6xN)^p-@6_vW6xiF zZ$OQy$vg5h5|4iBRFEFilQ+$*xj1tWuBHZ(pr!_s#hY=QyB)Hj)7gu0IMe*9cLOxe zk4&Cp$?T8eF=6e1H&TvX)_UaouZaRJyQvG2E#ir73Q}K=n&tuZjYyE1n$|*0SOhGO zuBjPt9Fe@h61a{xx(@5~U@$!~)`CJp*cLBD!}x&eLd0NRs#}bw-tmikQU~c-*lk8V zZkq;Y4YaQ>5bQDA24&!?3)CQnDmmZT;2us*ELQSP+9q`BZ#vUmy4@?E%W>=;B_Z3< zZ}dcbp{F`+aSmAHW9NFYorvS@p?^6#?0?QdDE{7A6*QsoxWqDJL595UkOasE2fF0E zK}0_1AG%RHAFSr?J)%O4_JI7=JGLi&qC0Ye^`mgNxoi__EKDmL^nl< z-G{>P;Emy{JU{5?3d1HCCazpNdZ~DDM)wpXG%)t8+dmszlcU`aSLUt$UWrPhF;I0%pzi2&hfT07S=#Q{>0m!M@#>c@pp(D1(k@dEW&~a#BQ|$2sVVg>f&% z>1d!bT}j!Y&3;4Lv6Io9-T-lABaU78T%}32oA;7$#FZpG5KAaJcro(8zFfN{*{F9<2ODtmf#7rWR2HkYk1wkge_~_Gcm$( zBHOkg@@vQOHH=JGjO|6;wBcy^w4d>Zj%#muuH>T2@Fl)&x;`+*+jhpm_oyb-u2a%Q zW_T_F?*oD-*%B=b?k=SATHG2Z6heaYye_QMTj6~?kThYXgI-$}YI|8~F=XB~(ZJAp zGgtVwkU^c0O2HM4ddqj+2_xQsLy?fi*j_ta5sZpiqABI;N#hYS*D-0Dl5V3hrk@0v zJRsT$H4QFqWsFC-X0&Bp4Jc>0NZM9XRy~9vmZSbn+e}leHn)#<#M@@X`i84M4O!u7 zOHp-hW3uOsQf@GAh@HmUxy^osjuT97H({Hd84Jo@_J-EN^jcf$3u_O>gO|w?3S%N$kP32rQpm+#&dPsH_bD1r#xZ?cLrWp zP5{YD3NV)`s0Kjun+cp1ZE`hOyd@5iH9Ln%j0x#cZ}}F(BMUnK{gRXsrnO65h|vTk zB45eptF4M5HGldaI-gyfg6hdqIFAyBqn@qg9pO-nVxja&0q#amwe?A)cO1pk9DS6Y zI`?e4(3WIH@qlmI(|Rs9mvyWcab^*KK6+#>cr5&`&rN#Y8>ncjl|AReQG-YCut) zUoq`y0P7{qp~enZLvTZ<5X{e{X&AS5I%^>-TRcFzmi) z?=pr)rZ&$1C6XfaAB}={(A1fpk(?# z#`qsY{f7tqKO0NY^6hf{0!Ud+iCBaoWIU0qXlUV?iN8fz%f3jhiV8EjS<$BBoZ@_u zpZQ^NRL|e|VCs$|m9GTl>N;v zq~Mi+EQVM_*Dl^?kVB^jo-&z%N~J@AMJ(k2;OIl&<+E=FT4dy#>888y-!^Z!0-cz* zPcfU##^ucho7yjk8!|(XKKCWf=vv0tIEG^wZ`56EZSr!}(U0+ov%Fy=gZOvFgb>I* ziOB7WKPBJS;_(cMgwlJPWarlF*p+3BM^4 zka+1^mlEo2frFoiy>S+Mh}YuSB^G2}D2VH$JS^FsPm^7p{M{fNL)8JaV-PM$u9esl zd0CY8)yBfZ7{Yug39*Bmh}aRE$bLJIWRE_X{=$nn$5I6HBzXl=mZ^wZtp^u9)LpEJ&pL+X^ z5+co~k_>iCg;o!I!a)3uge+SKM!Y2qEboJbH;RZ_EGg$EbDhmZBUH`<*K@`!daCkF=wY_hmLCo;rTv|pL@hI`s zy!iEaYQ`{CH-QV2Xs47W1n~k2$7ky1;rU`r!r3-z6tyzjvN&}B7#XcPA!N0f6!kFN zf0;GLJgR5VFaF)mS4Wli|FrbKxaG#C&d&eb?El$U)$r87T}J+-lhCr%G{z3)sLuuz zu7C%StXmpE)`E_Rmx8xKgc_CDVw`GLBDarSMx-@5dKErx7Kd(*%gzHs*Vn3$k=7P$ zm0DyGTTXqqpOSxm(CE*(n2`sO^a%X@L72gAzolbuw$(w&`@a1~_^lTD6WRcYD@YhF z1gj8qCBzV%y-&e_qft8~C{4*9~42H=4@sAi4+irHO+` zudc@rV+PonzHypsn2pIsb!Ly`D0Lc*$YsWtCK$cYWtK+>H4pYo4^m@$C5eYj^r$^L z=B;uAUhnIl1lyOxygXgPz1%nSX5Q>U1u$9;QFTvX5^vtv9kG^I<^_ZXNBdE}alM^z ze1$uFK54do0J@yG8^s(SnW16RtfZSC(8(b`Y0sllka%NKuo7xXeo5fY=4*<}i?>9s z*XL^r{T7$U&PZ$mgC1!59)AfWA{V@1gfkqR%dmyj7BVmMk>)W(5LYfvmx`pSS%sFK z=9m@!Im-GTrigZANrS}wxw&62IfcF;}_?9$f*6J(+q z$RVVaIe_#$Ntf^Bx@2?KmZW|4O^p@gL&$R$Edkf`1b{%}LSgT^ll3jGgKhA|F8`_$=qk<@kx}mO0GwBq% z7w$&OGfaKN2F)GC2C;(hf*c_nUCK}T08x_YPsUQBxNGD9Oh2nK$jPkHOjhq&aRp-k zreAV{^c!S`hj^iCqL4W>`*$eKJo6#_6kSC7l@Sbk($oY4!YWDBT~W@|U4fx0KImW6 zmD-3JmP6d<;t2cQ4uEy8AlT|si>eP~?8tL<#MSN_^_Kx_`7`oV#WNFuV!VLTp!~Hm zbcIyIQqJPMq+p&_j#)5UiZ$t~O2MA_GpB1zM%6mhC-~I(b5Vr;?lLtiT&V}Lo$3v) zn?6y|UQ1T}_U;q)-yV$55g)%kKm`BY(ciuazd`?~?y_g@zj=GP9x8*~*Y?o8N~vjo zO97LSv4aHTGEnPN)1^O>CL(EF5b;o;Lo)z?FV+Nt)n;*Ol;!EYzjupj3JON)n2{-p z6$V!!N;MEmx`vYs?#$+<`4Qg{S_yLZ!rQ&^B4sDm)&0TEgPbkxkRDS#`L)u*$}Blr(_)XJQj%TiKxW{3T41`2^gu84;XM{_MYGw;>SwTRY`Gqm9FU-Ty*Et1o<3 zL>~56>r11I7?ueu^KmwtyfB$yx3Qjth>4`wkEh0QJ?D0;k>WkGaxzX#8D)U4rC}jn z`4V$>fl+u+pcEak1&QLNkIF2Ld#yjOGMb>YiOl#ermjugeK;)UgG-UBhS3Tha&WrT zyCpCYX5JOnt=v~-v=Mw5=K@VlshNO_Rj zod-eR1LPL#efJ00Ysv5X*n)hiIlvB<8eqDIKe+stmL_Mo^q2$AJLRtD ziuQ~zxaTmi;^^=q{YY1o^iGZOitH-`Ti4)hunT0~n96;Ve>JVYsF!ruQ9s8!8PHH_ zbqnAzcUUD8a;dlP+>(~5aMqYV$n0DDYjwpzZ=awW6K9X2p0tZ)G7ar9M(JQ0fR{k2 zs2syL2P6rtDDQj%cHQaGIJa_znm+_rbaF2Id?)^- zAGPVA*U;>I_nY`4;CQbhCy8`X;wQ?uc2QBJPJwf)95L2%@^5=ZLs!S=Gk3+my#Z!? zINqZdi`mh~Gm>IUE}~9h1li##X-BvmbH_-~&MQBiI68=9&EYahh+(FhhHLBN9`~A+?Hz>w+uixGQ%0gBnrOhrCxpt4G?f+mWXVLuuv`?9`{% zlfb)N2L^reQ1;;ySG2^Q*OY_%Yl95Z=G21~Z6H4_m?MIAwmHOl!Dl1n_vX945&Y&1 z{QLPYceU!@$?0~#YC^Ct`8LDPx{{F6Ao5jh%PJWKl7zQE??U5#qYlw`+mw;I{r9fK{r&yB zzAl!Qeco9`x5j28ssZ-vT>PL#XW_m8^@v%K@jltBSoj zJW49Z-Ig%MCPML?Ij-zEKt3k^!-v2in0xB59eV^Yz{&eo!;0bYE&R)O z)^Xd-1x1>{5)qtE$Z#F;;{e{UB1KXAQzXqsTpwNV9+CigYtw|B@4A0v)3}2zgRz+I z6gzQo(k$`X6yQv#GO~*UR;W7NiiC?kv640jv%9#`U8c7RPO6Vyx>{-+tw6XAmuK^h zJduNtPb2IQw;zO9+rpseQAF)nC}i83 z4_YUUV$3gZPWULEA!v`$Q04Y9Pbeou-@oeaba6ga)hyJRHE^d~>>M6pKGAVeo`C{l zt=*h)lv{`orbd_0T!eK-^2wc_Ps+87lOMWiYia_VrWi9+Nq_%kwH$vc!XJFCmc6e4 z3ATT4wfwih@xS0^w(>u@BkXefWE{3QD8Dk`)F>l%$Z$R^+qF939L^ z)&~LCD zhio_M99yDDE>~Oa_XDCs0e!zp`|kY>+9ufnKJu~Ty^jwr6h>R<`h#8+`}avZ_sI#4 z3@DN$s6u-P&q@9v>S zZnR>^$1VE^Q2>5;l){UCXKNb3*F3F(AzvFG?Q=mB$|-W#eD zeluce+FcnX_6KP-V+Vw?N0TsXK4RkUOYz z1f^ENd?GKv8vB9EIJs)54#XR`1EV2vF!z6>_o+~0=JGGlx&3v>2>qXz&40oeQ4beW zC%gX=?5m6`p?)Qgz^B7OCt@imAdy=nk@@%co1-8@1w;gsi7IIw+A*KPfcDE+6&GDI zyo0&Z>L?cdrq=;pv%JG%^4USwnh?jSJeve^Af7E#*h#kIEnq=@Lj)BA z)m}qCpM3hK{)Yak(vDfr&j}(H6`}59WY5K(ELUu3i}-;)4`(nF5!2teT##k zXfV?BbZnCGWxd56=#7Am%Zsg0H&E;GcU*E}*=HBKn5w;t%F~rgtiRdXWeN_oa`q zXx7^eOae$qih88X8?+|zjID>v&mb0vglB08C*!)7H!{2+wy3P{6ps|^F&9p6Q-sZ@ zQcDpsV?>T(P*$Mg*YBUc=#tgsb|7T*pVlEN%t1n33jUR#evRR<4?`|&knZ3^^?JF8~BR)sINd^nT|o9;i1rE9uP0>*n86_bS*Y7@=?ZqU!=v zkVa&N=FW%>_3<4>t z9r5D!W4*fcN&Ax>PboSb==R3%E$!C`8tqd(^6--H zj-zyu>{^4c1a<agb7qKdQ^v7+46UBwEr4Vxm|jRbZ7FqJeiB^DPcrq8#*<;p%=M&e@b;(Csh6vc; z5ljL$i)r3ec#8q*dJyVYU&KmOR}id95xt5$u&19tcx|P`HIlF4@9w`q9yFROjW51c zV*V98ReT(V5}cCz*5N`&*v)}KBfAk;l7mND8iL(Cjg5(CJAeg5S=O-3*cMvL5R=R` zl2@%1kSt-YT9IcRFPC`o{W~Ujad`_wco+gd>EMb$2~eL!#tQn&E;9`<3{HeJ!HU5Q zw`HaLX+Qpq&_%QF4c9fj0}a7%a4ihMZ*)x-B)dXe0FLYV#oUHp5g4Z3r+hAp%H92e z&2L@{%0BuGo|AGdjosbH!u%_GTjIGY>I*$H|Mf2c+rZTVElk8vd&qvZ=zKMKkFWa+ zFem4s+@JQ)8=CZp24I@JgZm}lutWHn3w|01ehze#y=xEoX%u|k-bQ+84QZx$$8dfi z9+T_D)xkzYr81H!c-(L*rHz3IL77~&UYco|gxg52m>6OrXi8uuh$7^C<(apFrReDf z5T%CeXpWG`qrB8pAqCf`iSVI|7FMOv7E9!(-D4`7C<;}hDw{e+JB%A;P!;`-8*~xN zBsLq{(_)gwXc)xPoIp1Psi^sKj)Nz+*XbB2pGq9`sq;5d#5kl~prHn{o6t~Eh#nME zKb5pxT9W0_9(%`U5>^i!8nT$Mm=#tTE~9o)Sj`Iq_H9MLiKKaA;p9zrdl)Wx6p8e3 zJ9?^Yx#?)Bmm0-17D1HLMIbMhDJ=Yvl2^AaO*Eke=10kiRWi?xiy^C;Y7l{$>5r~8 zpXjlX5G^h@+iq;s$19ZvXlYunAB7xw%{7}|gscf@8w+O!E3Ip+4|I-guSnFG`6<(} z9RcYk1DZop%%nQqKFtCNs>75@tQsF2*@`%CCJH>Wi-)5GQZW#qlRU?UYfdmS&0P7L z27Kt6%h;_-iN|{>wl6@Ev0s89jlIfbSVm+7CtUXiAJlvuN_3K!FilVc`gx zycyBS(jwzn99Fe@L1rc!m5`4E1^ZLgz5+D;+j{g82!1shEutzfFUgie%SNe!<05Gn zY%F%u<~T-Xoyf%pvA__F=t|`v!(is15Y!HtxFDD&jf=ko**=0MYRwoSD!?|E#nai# zXqas#a3|L$ZlJuZ7t>)!(Rqh%I`>t?b6I_|RVdAHyJNfTC4h=rjLJE zi&%tAbzq&4cmC9w=J|647*B<{XY7rGj}ZKUzEkxQ1WN0#1$G*22uYTf&)F{J!&ku* zbK%;y3>~LFnn~7C*Y&?={t-to=OmPKqg)PnIi(f=PH3gx&@oquD^XV(pu2VTNg6a& z(7Cj;XQEqPjDzJi!Y0_mFG`&>S?aRP{z^Z`e~I6^jQ_(=E|G&#hA7UR_e`x{G+hxQanDlS>nZE_p3wKSg%3ERKf=?W$ zN#DJO&o_aSIy397N{9d~QrjZmu{GnvizlMNhi07GoQ5RO!)Dn)EoL{LnDzmC&lJsA zS}w`fDOXsTyRYK-@?=1pcB#AaMrc&TNed}-*(gn9ao*O*cN+rBb)laU^qmr+)paMa zF-KGlO41dLF4igc6|3tOu$ADGjiM1gKK6xaMd-~n9DcU19ZR3S8&yt$cewr>m&E&N- z(@(rOYZk*x@Sn{W6j>%WYhe`R8L295muBmm6BtNHd~gMAgyuOCZ2GUZe&h8c1GwKy~5TOZ^dIm%*!@lhe=7* zBeIuX(c(F!&C)!K4BZio0jNu_h*jL@UX$5C+6X)J{dA+Wh8mwYK$QuSA+7^uCl@9Y zXt420RgXiLO>uJe4Wb(F`<|q6=ZPMaCU5tcu#ORBkqzodK(O>9(hos`IVw>HhWwsf zIDhp%>6i~q?U^8u@(nqOa)-B1j)o+i4g@C$NUn529~y?3ji>0qb$-m0X!8qN6vYijsU>THH#7lr zbXoKLPFU%b+kmALsh&eUz8ALPnyNh0$Gr9cti0t$Y|xR`O3Ls#q0U6EhF_M`EPCX8 zP}_Gs#wgr&nTa+}^@a8J<**^pRfM0ieyTuENc_iVJwQPz{mf)Zj`E4t6p^f!HsBDt z@}z`}KtPr`n2urr@XT$e}(P_Q_7tj9>*!qVbk>@`v%VfoIIS?i^-qZkW0??>1ds&TIe?{f} zzUU!%JBctX$&FZH>`*xTIc!#+6j-CZKE&&SD7u7N2hqgGoX0KiDa*HyyBF{s6iV;| z1)9ErW--^!bB&b-2Z`D}3y&*Vj=UvY?;3(g9^_g+%2_N&+WbQxzK(N0WZB(U9PdVB@|;F_cO4EYw?T3-{oi zdQ?xz{Ox|t^%MTswp^5`6gQ`?cnq8~Z!w zA_Y)vEb67rdGL`Bfgv^w#*GH>`m1rfzTSk$q#^pp_?Le%dnE*G(}?_<7vNX#MCAW_ zUIfj|EbT1+YksPf{^JhTS32NUv55+TUqO*mApFM;vak_He3}JMoJYeFxb$!G%^|?& z!JvrHUN7NJEc2An&F>Pic@s19$If)mP0vpcU(gv5&LA?k!d2PCA5sme0TI6FZrVR8}wpQ>wwhRU)^Bydq*WD=sIMI@F)0Q`yhTg}XC^iuB z=(R+66J6KfN|M7i?3#v=t~{QyjvRH?k5hgZD8;`-nXc=EIW@>BpAuVp{pD?1a@DqZAlF%J|q5sagvJ4lc(Ze;FFwom)Pk&n`|GzsPeb)_;A77?m z-zfeq3C#b-dH>vdO@dYK{R4Fk(0+wt8dSu)J_= z=^(l|auys;4sqcOR!gr!%go|{M%m0}$C^gYTKFQ_b>0y>_Vvz|_RaIzOJDuX&0^`j zE_R&Ngm{LPhv~mvSH8pT+izR!fB$lC`@r{5yt*LA?5Y>Os9MrX-2qv{iJ*C+i$oD-syi$2PwUGvD%N+@y8t@7QN&_`T_VKcf_Aj z5w`|%y{^rlox%Nfd!61_f^v5l(BG3Gm-mJTpRM1c4W6~JKXjS?5_}RZe9lJuCER_| z_HQ)lEnKEuvKVjVaQ@ZXhA}IIiKEac6K4ji!KRh z{GKNm>R~!F6Z%N`AQ6)7yGE4fkHKvVuOh$_i~bBRN+fSpMq4vOy$Rc)JpbAgxo z7n~whICKf0h$9G(7|@RS%j<8t*a_atCz%5W6`2&5ES*o*E`557)9a)UG!=(vYZoax zdjaTcfCckdWLDrx&v{OO2alnZ87pzRSDR^T;=|g3i7yp;B=pbO7Xz+3)W-?3@xb~y zASjHj>Ip_yP#f#ccq)TxFiw?9vXohe{mP?vx1ZMY!LuuEacHo<^rG-z&jHn~eRX6E zp;jfgA{pL92(Er;VGs9b(Is1-hKBz~**mpq)~wsQm8!ID+eW2r+qP}nw%@dEv(mOv zX;#`R_Z)MtJ;!&l$NU5RphxTdig;R!yCpE8XVR`zXdEKR%hnK)&?TKla^{3N3a8KW zZcVmpejj9xt`nfPByY?O9MYGv*sTdJ(useRG;TIsHF#(Aw~E}D_-EB%dA#mV?OGvt zJBe7~c|%uQGu_*wc?MMO?a(PQLA07$9istxe#RBIziYbML63enx$hfr7w!{s=kJq* zs$hs$wCVMY-lj*26?;IwN=E=wNf#-@?BSup?qpX{lby3Zagx?Jcyr)B@-!lohQY{aQwU<WQKIE#Muipi zyK%t5{X>TeGg*1em{lP%w5VOIIB8&wVXJc9=Q&&Q=|Cg}FaN3Ro}eC?yJ+6))F1^9 zG4UF30L4==Z*=cFy+p+$D+Un*9TBvY1UM4MUqK<|tdqn?aIx*}7*{NYpAS=hWvDOV z6_lg+zI=mU99Mqt@QTsvYbrv=KAn4inWSGWApM2HSE5>Z4{7L|)1%e;rtF!?JGOG^ z&D>4k5vu13jci4H*U`$nN^G)OwN#{of3;mM;_clho5v%{Heis~RqgG9bNj+JvL6(a)=eZDZ8=VJh2^JL}o$U;*s5851W!Wp58a>rm6$P_ogSC9Si&>Hp zoqECUJ7}6sohj8y*)}}MvA#d(fe)HAhuA=MLk-h>zn7T3!3`)Z_X-(ywHUjgGfhSk!bn#NL6jX2Ot01HnakJ%p>^;1g9% z4~z{0`Fh@4N_6++h)CBJwS;o-`SN&YBW5JlzAr=5bPVsszEl2N3kV|o1p9W;`%^?O`3@LC$q315F(;d`;CwiJjhe!jJz?fGXg z#x{BfY3vzUxS)`Mzo3y+O_@b>VXmVt9Qc^_x)1N>lMF&(-HUF!WLmUFUiP)6{}vy*{(pX!r6n zW0+m)imGg=oQjA_Ogr9g$8&KqNWoA~r0-e9HjEg$UDT&IaIiWmejz(I^4?r5Oq9aK zDSWTc``tX@F#5@Ic_gvZcj+;BIDYMX)I9!o%UsXTZXh0ti&I6h&138}p5tMDi-dk_ z7x+4GqIXl03FTry$iL3OSIv=aBV*y$ap@)vZt929k_v=+G(WCnimH4ep42}iVD56gJhc7aFnaLer3bDJo&~ZS z9(j^kzjQ#WDBC}? z%kab$9>Cl?MiscBz~NQ!Qlks)E!F!5=WUN$6_zi{D6YA~L=MU@LJVc%jBY8kmskPz zsmDBf5! zJ7(_9RR|gQ15T=M8s2oYhW+sAPa>OYs(B$!Fe*kjxr400i`spEuPjqNhB>Q}Bi5nY zmNVO8$%FNBm8SchV}{SGu*G5k1@Y)O#|jg*glTCKixFh8~)UE>&REFEA0D?WJG(C(f}MhUGaM44S8X7w*bY+hST>rA0p>gKiIZ=s-|;Ra@$ zw(tC?nOQ!Y*q&)FA)*vhZ_i_s2F7NJ@H5AHzhRy zHT`xyJF0uQmbEN4G;usp^1%b=7ELYH+LESOoj%97ds534am8zbX1Vq@b(~_b zLz*o$j{i25E!B(1sO^%O;?Z+_CC*?}pmtP?H?*%`Ow!zVpEFe>0r%GoAxEf=Y{J>{ z_`m`VWGXa^)Dx6zoWV?TSWNyqk|I>D-a8zd<0#$Zi`#7FE;Lk6*)G^9+$-kEF-2Q2 zlWrzIwIr?Gd*H)cmk$ZZ-F0{%JtB}DalEJlBphC{Og`wa6Al*J z!Bi_|w`x{4H@RiwwheLxg>t0L#KbL#)!qRvWb!PjH$q@$|YraXb$_5 zYok1dNIHeV+ZUjE0)Pu4rx`s~aD?yCw2`y3JzB36!!(BtTz%~dOb-0P>h2n8#p;Aj*?ZxZwA9%{ z-R`ujS(Di6hXP^@|K97cRZLmXWVefwUFFRykY?K%Wdy3JcS)`GH>CE4(6(TAjbCa+ zue(kBz*+uSu-t*IZojIlT}HE!u@P;M&p~}bW! z_eAXEU$;9V`rkBu@V&`q8C522w-Xt&g0NN^zBQdcVqDhWsFqcNsfmvBdm{m;KBynd z6t4|F=p*f0QAABn3e0_C><)RmpPE<#SVAFS^I+VS%790b$vDE{s+k#E4_z_y(h{9w|RU}eto+Ak_DrI7a~CO zz&uH6mNyh;Gq516-`nho%gutBrb_@d4eV_2!^YfDbmD zW^mBM-_^2wNqhQGU*R7Guk2vKmwpcX?)C*Y!HK0u_0wXJ9_Un=+(z(%m+Z@8Tn2`o ze#y6Yv3i!QKID<|Zqq@ULfnUpZ0!+D@LmZa7JrhaI%!)r@g*?z7Na>xP*zAa5SJT>a_3i6%zXLbE1d1~Jcc4#-1M7Za-W$iXi^gBSW+taECbzHo`22v<`z5j57^-$_0=>AH z+VaSLpPuxG$AV+1=u^3u8NtLYj-QF*fx#YN;W0ap ziRwzNcLqLcJ+i@P`{+gpVvftv(nT6`U4!Ln>!;Tnt{?3%kw_T?F&Dvc?@9c02#J$1 zTp>F47aO>ZLbnIt(nD-4S}`aiWK=kBcEgscIGypX@IU?dX+#U*uKX95uub3opaeb6 zR#u4us|1$n6d9xuDwpcJPcZ=dcf}Gj>FP28BU} z0qgc&lXE-5AE7aTKfAc~t+*%Ebw9KV);P?>N^M%ZGCGr^wgzO#W+aw#d+hbf>Dg(r zl(Xw(lrcto)kU*?95~FnWxMLyb_GLSvr>7N?smR!&2q~Mn;Iq;%@THdC0Dq0miF?= zNekr5c>FgTM=;fuySHCo^QH3bW^sy)uSksnllnWT;GhyRxkh=mIlMY!uaj^QH-C3Y zm4+gbNmM@m8#)uFwTij>8dT=ZIgKL2i7mN(Az%8f`m0UrLFa1R@RLVq?^Pxc=cB{( zWM-s6W9hN!j9;)D*fWt`0*ioBpivj&D^z(8G)GJxKP2*#c^cfX$XqvrBlNMjdISm9 zgk8`meWWZ?V#g)=UfYpDVzTN1^CP5I+$XGtt;4TRe0NJ>92oGlp0kSHb#{t?Q23 zCG-M1-m9V+N>k41eR(dh-u=y}4 z{G$QiAW$e=sBCBu3?n@-$06a#UqfOzuelg8%zYR!3_K^|JrQ`%?h_%tJA4z28=?qh zTD;MG^wAs8g;?fn{Q`2214>hmOp6)!+2ACYQVf)Bj0zDfOvs8fic*h+6b2dtVf_f6 zDvbcN0COUnXpzRy@8Xg22&pO~x zXaL3tRx2K4~2uxd=>A=Hhi>|HCUXl)IOqC|C z&3tT6FEne4HdG2#Wft0*6&Gwg-k@FhwQ%uh)7h-iOhmGqn=|g9qc){3TTiouBo2yv zVZ~B%tNQ`{j0o1D_Blp`?pgVCI7t4iJYdGeJBkk6 z`Kgu5nNI&bSBU}!uTWK}uv;#20HetZay7qYXPV_SUMop#d4rv}VrEv>lB8o7PLt~M z%j+Hqxk~cCz8WvmRWV6{VA-0H9mh~9*Db!PQU2oB>-7&uSJR28!8>yrTjcL*&4Mbr z-c6`cr$UrNtY^-Mc6)NfKbIx}wG8ymAnmZDY|v0oO61bSUzVPTg|%vr<|p9TsqUx_ zLRq@6Fe^WBH&>1IB!%2@k{UyPm~2Y~9B8_{k(PuOl#~xCQz?}oN&YdnN|rWdE7HN4pO+Mhz&v>OUBn7u)75O3 zd2qJSMBDi2Wfrho`-WKobEf_Aw$7~NzapI*uI;ed$s+84Wes6kXAWBuc?l4G4>tvtWw6|w2O(PYq^wi`$Ifo6Y9l*^DIA(g5BZwA{IA&kehx8#QUbykqS{+$o zu{39ygP2{Fe|4Re53hB_a?Dz|CV|wmN7Be$YHok8L6s`4zaUBt$sAm`nbLnjITQ3X zbEr3jdJ|OJ?Fj`ZTB)B8kTN$lp?PLre$y#B#8TBUMpRQM%8hW$vO3G#p+|qWCDVqc zbca@e)FKtO>vIB$)lvu3eESLv11@Pjso5e^793o?&sQu zHk1R$B2GqskP^pOrgu=1IvU-v0Tf;)pR%m@D9O5{!E4USp4%>lUGji+I_!d!LBqUc zwBO{2I(+$X?_V@+oMjmngyk;{h?-_3?cl%zB}*DjFAi-MG$OMz)4JDZ)GCMEj!4#F zX15!VF7vTwn)Vi&b^z3v3r%|sjf9<-L_=8ObmB%-A}q<;NuQkgS;Tu_DE_Q-Hv0gx z`i|03KGm9hkWs=lm4$=Q=HU)T+%vyPPiv7U7^dNplpqORij+6|o+s0~aPPGnqL@~| zRf(XiAmBmt72R<0^yMEoK6%?e&qCju+4k@5nE%|P{U3ks|LM`HNI5NtBYcje(rTd* zk^qIJk0QaW9u<81-BN-C)Ve?*0XI~#3d#Kn_9Q7qQv*JJ{o9Fyc#i|5Y1Kr8_PgLW zlS6kLG7Z!RA*LCkD>y3m;enPaXS7?7iuu)CrZwxLJN_(3 zk5Slft~0djyr?Z~?SbnaipY6ec=~lD_+y~|_E>OIA&;cZ;OC8Aa%MRX9tHveSbE)w zPTg6$STG2fgU8}yIuWk<9Hcs1JVek-g$ZZiIcSq(p>pV1I$b?sQ|zG1OWTG1m0O#d zOe|(1&26S_T!3z7_i0l z(mz{`#pU`7)4f^_h%4x`M-agclUH`o9R<@?c90k~iLPubJfN!Js$tX~g+)c?vMtmb zrIoH|t3H6cI%@-8Umk0*RI>h)Yf=8%c0S%$rDZ@N6fmv&VXifAs~Xi7+cHd=uhBv) z#PtPq=3nj_SO0$ZTz|>{MU$0jyX|(ygt1N28-onmVU;M#yhvDbOefCn$gQSd*93Vt zLYc+nH&ej57c$y|F6=0(?{x}}D^;EDG7!;D{f~QyOuCfSE{Vsui=0)*U3rvQv>r{?KqM6wUk0kJkb%@twdNZ8Fy?_3@ce}K@c6I;V z$U2YyzwvJW`{VqVcU!FHrjLA#`sLG7l{9Tu2ljKwx!)nAKRjm&=ZS-uB4ghDy`EEZDXD-u_Dtm2&RRpMg#t z_c&;`_8VPPF^6cx?NPPunL%*n%^3KKHgJ5!TZ7HYU1BQJJzmtOgSNo9iu9m26z^yU zz8XV3UWHiXXJby@5b*I^0@=UzlKnz|%0zktlOwrc+AKH*IfDMUV+cjxS!~0V3m+kZ z#dX|ZqE6hT2hLQe2mHdk1nPO<=ix~Bm5hcBON7&2jePVYS zBbtHJEhJHNAgX`fD3N1Sb<3#U5gA_`2A^1kJ1N{Rhw`56h(L-VNs~-K@dYW(Y+~m) zM1lFo%NvYt_&%^F!ea?^a_X=|xG06E0mQM~?sjOYcGv8%&NDqlwbT2>F+gjC(XD{{ zd}L3RNk{k?Lqn*DbrVK*qqgB19;uC-4!g~pdHHR?ohs6N-)30ZyJ4u zp!K}3R#y?@;CC{iGPHLu513sWacvVS1CRx$BsrfJioQ2Id8~JMgY_BnMe$r4TI!G+ zs4)n}UA*V#9=gvlquV^iI8nrkelOE4+N714Y0pG0(#EofMrE>=dCtCg(~m2K6~*ibq2&`53Uwqug{U`W&B!DLAk-o@I<)i2QZ@Cccs zsCW1A_)uVxbXUf`#A0kAgJNa@Ls&}Aub2A?7Y0Zi*9)$=OCAV{IataN>}Y;L5kGoR zbIR-55N{cp!sD^rr0cx=rUw?Vg^|&El?j~8C(ZAej@xrD+Zew>uy*N%!XptzL2!C^ zYRK%3l{`tPUZJ)yjzl;{mcc1q14^{w9CKxBi-~fDI{ootTou@f>_?3|8>nr=A|b!Q z=tI5=0q3w!*Dy{JvN@-Tf3S7jssF-3Y+=A9VtSmc?e3A;_2yb9gh6Z|HkO`hOl~3& zY90=EwzbUp39H8yPYJ9XD0Fg`tm16JYH^yOAt+lD;+8oMuW2?)ogkntvtzuwS0J6w~k#;wxG5!u?41MXFl^Qi1cLM3}%l5T6xC zN}&l&GC?^$lN-zsbb(@?)+e(|g)vYy>&EbZf-$}8pC_EGhd-L{M>ulH9e4+#F(*vN z0Cf=$%14?zx#9X*FTYFS`qwg{&!`M{h?RSVHPvH6(fvwcah5i$^@7DaNL@S7D1CjG z7F*Z{(v}yFUQb&v#S+wv5`+%FH0jiAufh(4e-I(ng(-AY?w|>X#?BeW0L;R~#7JY1 zKsA9zww9S#3cD7q*hIc-+@i`C$EiDVC1D`bx2lEn)*>^hHJZH#W!bZ)xIc7OyS&66 zH^L!sDPixA2OjY(082?dZQymjSvD{gX5VvPE}QB7mxsyS&g{wG4#l>Dxv9vz4)FT= zAvCFn3bXpjN~GGxvb&B86)2gdX``|xc3n59tXKgDoUov0oL+Cc<~xeTrc+?Djq+M<_?O?gtPb62WHkp1x zF4`@M+|XU@!-4yxc!$HZ`N>!uO+!BC(fLW{tTfZ+Nn6J5e${=nM@Y}aYU41QYXHIN z3~OC&%`{%AjJK)qbA~-PNC;?0I4cPhq%)ohi6mK@uHnROLlbdQZCaoXPda3={yJ@I zgVuIBvB6e&FlL}P-puN8q?k3Va!@3(G*46df z@4?}W`I{wTy-?!|#wWKN5Ki)CNT6S`uqk$A3XR>731*2ng&%Qc{xYu_hRk;DK%7MQ zPJ|t_Vw>$ zKn2bE-3)G~SJRw#{TJ6+_k%Q#ipbMeVK~QO5=bNS*HQF> z;1(>C?>%hpUrEY_1f4`nS#C6!qxxsy!Q&2Ofp^4=+=yn3YL6|h=DWT$$|ru@=M(#i+Ow*N%&h^|yke8p2?^ z{?*RzghN`-X0z;^g^8f)fwZ|~WIs9R|pR*d~cMFm7} zVEY9vnfr?M4{(f5{kd;a-(q*lm8X%Tpwf!btIMKMOUFCTpyA&0f`V2z*4fPiOE<|l zX3y%zY{}tnaEJbP0l>uZ$vS=u;Pcy%_}>VC>AwY#C?y5Lh!QemV>KEJSZ?Xj!|q>( zBHp43L_r5D&firGU*M3g5Y|c)nM-yC++{!FiG^0nX;5lrJLG0_E+pN+yBK^O(=%(iWNQNd0G!bUn$9 zoQk<)&P&`o<`5?sdh3vJjAK@QqshNyh?6qe0ySeg{dF(1y9r+T_N`@-TwjC%XCi)FFr zfm_X^d9V(7YVuXhlw054?IC>eSyUC=uc%u1t2T$Ps*S^AxYX{YE*=Q29z`D$8|VlD zRK1RHNCjTOA49_51G)pqbJch?SHb+an9-wzY`)__?`MCmV#6kF8{<4fu%F0dm=R^! zKt$Da45nS-qc()a@6YN|nC`Xi=u^sHX_1sU<|%OP38&|ZP}QOyDOM)62&0PG@lL3m z=c3p9K&lp*-dLSv?IP0(XquJ!D+8P@pOy_xoDnp+j(a*VT-%B3DEwidg^7eegj(vmAv-ct|57!+-vyR8HoaoIB z>t*{&yJh?Yz@PtN!)U-OrNDxJbLqYTUH>7Q?!Tn+--hG=S9(ya9-)Ojiuw)bs%pZ5 z=FRWJsJ*xK+>sGkFJbT2Y84%E z$jWtCzwe2==lz28v)S25`C$Y^wESdoG&Py^T$Z@gcMeG1F&YIXt z)~5;A7pt>6ywnA~l-4@QGDk^3J*$(+1m>g%7!#YASi)YK+lWjHetT1t=jF`5?fJg|7vc`0& zt&pN$OMs4Iu`4oS^E(F?2P0$v?V<; z*WZY%zNeeuK9ld#HE>|Qp*T?A$w=Qo-+(-(rFZqqvBs6#0@H>#)#515T@206Q?-m`?5A_-Qlg>ac!vXW$0f)y%*6M=F z#G>!>860~*5BO_f5a}_M+J3bqG4p_dme6tOME&I!<2=JzTT7;6F!ca#%{WSTiGhsr zid1+-{Z|_hs%~~s>f>@%cG=x#qKgahwj5+-2bxEbYjG{fW{aw6v}P$wlA>Q7`J5PQ zX+DQ3+7gT6s-sG9RM_F0jc1z`D!Zt2UA`(nY5=^H}#X z6p2`_Vvc}KXd#)t=a!6!>OeS>S;UXL}x_eu*pQx41$3f}u#Jk6ayLGnR zE|b`uQLm_=5AHHu=M=l@)e6ei3(4d4lH zSH@*ClwXr8Tvml1f+M}8B+DoX@^TiVO+^AfC14X7j@!!frY-Arqqfl5+9gYDl7`3 zv9JdrqdV9WCRbp_oRap4`}P@i-3bw@ek(?hXaiPa&NGV+73-?Y{b*qbSE#W35M$LE z;<%ZE=$C&bc9##`GqLK1=;B;M6a+1L% zt8Gc0!jXL(KlPX;4x8uaY2?J)lT*o$);i|5r0$&FM=^=-*m7s7!XvvtJ18sq2}zxE zQ)$xWH<)a210VO{R|s<`>a&E?@_)!%eK+?w$m^wqWt(?~#|PuUAt0unz*fVw93zeq zE<56(LL*$FE9e9`_$eRQbq1(gjvjwL4ROlJz&9g;3aSxIaIC8cD0N3=R-S70TZ_n# z&K}cCXaJ)Y_SDkGVOwG2ld20ZxquZ0aI;OJ$^YFgsnKU~$NUB8=RR{<#e>ZqH62J8 zo#GUBXJdlqWC-IoF;nqbqG@?^Z#}FVD=nP!_ltM>bhmHGR7wxMebR zS%Sj~YSTnp=ihK=Fjz$==9c}DtEnLYK0T;yOhDQ0kF!USVJ&(?H!u+avBFD0fQ!L^ixBc(jUOVx3DA5_co+W}n&A-pV_8#6!Rj)= zraGkg!JM^a9ZC|3sCxa1?rPo0%le78W9zNQZ3%4Qspl?>IwM~AYqih&+O7Bc8=K*E zx22{FRu?*rP88@De}rHBLT>S?aeSm#^rDvWnZ@!&x9}A|=O=lmH~-$s@Ft6C2Ap|CJZpKCic|5ZU@?2o?9*P?{XUBDvHkL9@ggowJC3c1$8OT6-Qv62J`6 z&dTJhOd^YJ!6G#(nOUvGIOU)OIkjY-dy#xrR`O!2$q&7CnD9r0OLflBVm#eXlW0oO zG%mHhJi8{rv|V&%+%Y89#W^Qh^`t40N=JE^WQb(F|)O%U1Iy4KZ}q@xRp#UD74I z>^225^DGjLDz2>&%2`Ew#9HQ^QJJhAGWLG_?p6*9aF(<~#EWDyowBV;VWK&7XY+G% zzeKJ(LDy{8)&L5vu>{!Rk7p24y>b9}OK0%@Ej-8v^|=!|W+YOKss4P_Td+y<#r^Va zjF{KAK(TM1YxfKi7xoQAHCTRS;Gm;NzKmXf36~9g(p+u`KXwT>c08kFBxp{3=py39 z+W#SV%_m@1fO*yuuUS*5JFv4!0^UF~;FD?x zzkIcqF>jM*Es)fuiF2)k{@ipvlxWL)LP6ff#7ksJ54Ar%jpQgTR2cFRy)5jHuGEFo zh?dOtw>Rb#zjX-oABN`P+KBPOU*f1-yxqx;O9#(hGr|vKsa-ci&R|3gRqY0h-3~Qp z{xGT)XWL^$AfcY-$KOyED>u)WuLlMoTR(OOn;2{aBzf9$(NQblt>M`SzX{#)+nM#Q zVRMbpr8v9m^-}H)CWa@s&WKUiT6|LkE_Rky>wCKa7FKt7u2lHgbf!OzIw$$FY1!?p z#1<}pWoi0sz4_SuTF3r{)w#~Kn#UBJWP|J{r(5Bb(Zwxq&wfAhzcF73@qG3<)Dw2naF0%(U#(EUcnER zGG&?MG-d=3VbqS)!@&_yB2_tx`Hfu9HHa0Nupj5P7DJI@)vmtq?*;BG_JX=0FvRw4 z)yYP#(e-xL5`RGT_OnF+cmt2)m|#a^HHov?e!uZqKt4NZ3NkYSS>*O2+7o0KOAs=K z$0rk8OByW6=nWK3#MLN7;xlR{_a0TekY)3~S+{J;O~ax?TZ*D5oM8dXmwh1a_+Ra);7mwn5{w*~hW)^})k> zgV$m`Q(Up$IBc5j%6RYe9XzvwJWbq3NB8)P!Dc6(mfl!^%?0Xr}Dk>A7z)b2up z=$SrZNW|CaC!%cincZj%te=MNMV}>-7RQSk1YH$j9Hadlw$KO8q5%YyigeD*GseVX zI|p9vlc#|6FX_mWCX69ehu2F?8~yIHa^LE6yX6VGDv7&Uu%6|)R|vW)jzb(T?O^*U zdK)Q#PtLZ|dJA`1YO1rk(Yr4?+3au^wnN})0c4)re3tx#Fo<`|{=P1nS0s@(8QVE@ zwIyzW5+v>Br<#x2A7Q+08`W9GT>6gp1_3?9VjcnbTPwTSr2FLX`z8Usl)04?-f7AS zc3UcPW!Wc0)UFwfdm32F`)mQd<4VDuU2K7w1?cxP%zK$vv}1RRfUK9X6K0T@gq}9@ zl2i9M)Ku@-<^l7Gk2%Nbn{gFRqPA;fI6amVnjGd6QqM?vR-K31-2OGz;FJaKER&v= zps*L9>_~a0a$9y%F&)NkhRKkNXeQTb(}wNWD)(fF6w79k?sXg~4sdeC(_!I7O+ao`m&dVn~6H?Y+)+@d3Hg(UM(Lj;2)iFmo3G`qJk@a3t zbO#ciRR6|G(UQ?bnv9xw50p;ibx7Yex=ZRZl`FkXnOC}Smz*)BZXhZrd8A|v8xj@$ z7F#SsmEwlqk8X!1sKFhaO!0=edAQ3Z#exs3)~|K!iC|EBu}*W@KH9fD)~T0I?6!tf z%tMM=ebyIO-rTdl`|ZOq%PNVdr8^6^yQ;;m(|~3< zMP9+E_w(+F$5qr~LC#je!;HN#rd>|ijxYKY?EdI|mz1b1tymcis>(al$QBneV~h)1 z+9E}HMqcs~V7U!ekv{ga9dO#13V-#lH>Ao<;zv#T<#tw#x}r+cjGH+GD8`WTKC0sz z)#I_7!HueiLKGGVFF+wx6#TL2v^8kucE3-AV4sGSZ_0_Td-2&}DNVc@;7RA* z_OvTeBIGWaV=+opE}(d$cksfjaW}ll7bS3b!0Dg8dEWK6%MEmRJ1TvFCoqxlurv$~ zZ~D((7h#*b`uO0BkoxWv{($v07!A$<%@wy0#r~E^SEoCK$MzXvvWL~Sf2Hvl!8eCl z{Y-}mbWrOIBT!e$+L+t*^8%!Q2T(^190>>k_+R!_m62P{3pm&J2QsGWs7A~*N1kx{aZnFAkP8mHt=>&xsx zsZDx1;Ya+vKhdew%(fyPVSAu?#VRx&U{bzY2&(QgfT~v_RaY-u;<7G(DvdG)=$CRZ z_AhO~&5^;Ah_YL6a3 z1tz6(DKrePTh|FI`V(+a>Y_U#G4XKZJZ{i#J^x_S?9+?TWL$|yeGs#%IX2oi53Vlk z{*BCwGFDdvpmD>+u|?XVttss~kcti@M~ff^8NrYH98?u;XXw?YSQby0I#4-`MqG0k zQBat`ye0d=90Wat6l-?tR!p>?d&teKQqy`PMR7|n=;99JO79mJA8@kzWN0{P6=2K??yTz@>?0WLJM;3U+cX>6? zQq@&vAcK@&nc8nt+0h@Hx1n6!Y^8Mz=b84sCB~c(K-eyUZV>s42BW{f@zKN`d8buQ z$1X`L9zud=$pmmRW%jj%^N#hWH(pTy=&vL@^5EwWz9xe_!{5MH*QTjeF`GD8qIy=e zy&~vyJ39OL{d+5`zrGvOu^B4YAM-(vJjD#H8bODcAlF2??1SOKI3jU4>JsE&3~eoi z+Q$Q8Ot^VH^#Oe?aIxL0siyXHP1Nd>dpBaxYzrm`DwDY?7X#P3qm&^WNKm(~d7~HI zu^{g>&>YW;-_ZKEMVzZY$)GP9W|xHY5pOzOsi`B=`7-!OKar ze&Ku#t;g#v^Ic0O#1zta&j;BjIuiGOfqYZ-)ugRoFn+dnX=ULc9NkOA_PLEuegVC| zoAu(0KBeAG;O=8dUVF#ebMiJnt=?r~FS`yOclNI@E)AO@IXJjTx>iGalFb zML;=wLUex~BO2gsy)d0*=VZXxcZS}@r(~avcyxul8Ex_jwjMZT=YZNY?Fq{vQk9f7 z-l+Y%0Tcdo?$_~cz@U5^Ff9N7Cw_bD?_v@mC#U}^Dfz#oVMQIQ|A!KrWX&b9x!$ar z_4<8N3mGMi>e&#HRhXtFhNQUoUZ5n2aE)UP^4CUW?{70yVc}PhcZK~N<&!7~MAM^f zr{n4Nu=c0p+H3M3c!dhX+;pma_40(*iD7A+Xgp;OG!EKE>gZcf5;Z@y9BGnqBYK*B z0K@WlQl$;X*--_6XLXjG^AqLR#HMSf&KGb1CKNa}%pVt%M3%8UCY19SozQ#>FK5n; zsbWvDwO@Z{%_}AuRwPsEr;|>+^}TRbIBi4QLN*Ag%0krxARNFeVbr?9SARF*+ihGW zV0B41oi;a2ni5_KGH?@^+?MY@OFMX1a9o|#CrBpU*l^CvRx$b$Zi*}Au*Nvc{t7** z5`VKVQ<=8+!%~gq8eHeod;d6=^t+g>XA#pKJMcWvcd{%bzyF|r+_~zuv}?h@`#=Y3 z)u5Ls&S;8z9gDb`x|@a@?4~>^G|6mYlEI6z>`B=s_J$)|(-7>WNCaQ(4aj*f^A*@@ z)Elma2z(R+ttGb))wclVE8ypbRu_h3&5TlMfH{sJ6s{X(45RgvR~4@Rfqv2@>6J^g z2`H2Pgr(urdi_Vk5wIqv#@}y;#R~a9ic9~y7L*+gTumIE46Oe(460U(&_h|l{o-BS zGFV|Gq$r^-7Sx7ai8K^UOd%71YeYob0)wfigqwf}nwT^-<+sVqZIM`bvt2J?mC#xz zvsom89vLZ0Yx(Xzam)II)s%UAo4O#1M_u(b&e-{NCTs)&?5F|yU|HIikg;^GC*}_$6?6hs$wr$(SPCF}Y+qP}nm9{JG zN>-)*JbiB8{!ibBd-^`C{q1kPMa&g3BF3C^j8V{XK?7(PdpL3{KTigfq=*r0yKA}n zQ_?Jf@n492oR?$r-B#dVtQu%Lfy4fePR5Ph_inr!!{74I64JNy>hIUz*bl$2JQBk8 zS%BjYdXsfC{K&fXBPZC)K#+ck4~~O+xm22gu|r>5N?{$vkpP&GmaxZCB}Jxu*?ewu zn$P=mGS!xCest3@qg+#18!Fp^&8>#j4RA^<=8PXLHi*NOm zGFN1#CT_T4={u_~!iBkF;R1}!2GtWGJ5yZhn3I*MR6$mYD)d$(xd`XXgZ25)^ zEI+A?O1@x%iw%D1j1o$?>alGqN19cn{!q@BfIWb>10wnek5b%GVIi>mVNKd}?22AJ zRKNBWAGNp(?_aKVT@1IjC^7Sa&r1WM#!Y$v;-+3e@DuLDaxaGAu?)WOi{X$4xtID7 znwM(dhPik4Ja>>OKv{e>UHKtFe07L9_AofO%#1h4!pxMB&IDr2G<&!RL`~+8^4>-W zcAJ7_h0!u9q7l~IesZ(}>pt;@xm4>^%4`kd*IIO7bgH!-33ONDP2J#9oaak&I3=j z++2gzDJYibC&&SRu2zZ@4peKaqJ4Fgj!|VA7GN$Fn0R4H>f5VB{uo{PkYDGNXtS>( zshm*!Bs$CkoEms&<#*)&oGY#P;V<9k`{xgyHD05wiqu9IVCtG_V$n{TnoZP|6jArr zc4dzqEQy%+cA2b>eiBbea^!J z3u`I)m0gQ_7ZmQH-Dt3V7nI34(RmHyGSEbMhIrGl!`EnFl-z=aj;7TF%XmsnN%PQ7C9d(F$=JGTvTqCEG&#v?Sf)nPqVR! z0mDq2nO&YAC_GgF=B46=c1djFgjTAmbE>L>hNZD()%A>R`S^*LPcPJeC4# z9cG0M_FnKQQ2eLhm}-s;#L;4KVDQh?U!{Dv2*eXn&XkqM5%Zj`pJ%mo@2cSRsLTb$ ziE)r_Utm@X-MO}mrK+2j%c7;azHNg z@Lg(DTR0*pGY7XsDV$Td*7P*dbUXzxlLjDr5fRL{WXKVH1WzwsayuVNcrxF_Veoc2 zTHeQ|xYdC{FC51_t}neGRh1P4W2diTo>=aEiw>hGLDFMQNHv>^L0El_QdB4TS$*T=a*9S*o%;B8*NTXP5R0WkR| z!hxX(gz{Nv5wV`Su%16e06?9W78QGZ2H)Mob5LnsvY7H!^{0yLoaWCdY3o>G zRSkj%`NK+x+z#$b))Lpbex4v3X38w&fXn>eeK2*;+_CcjV+jw4qX@u?spA!@{&7YM z(r)!iD3@^E-7E|^3TSSA+-CN#BwiQMCnUsO+ISUB9z|{Zhg{*2epY=Q^^AcFTq$c7 zO^zUHd^LqbZfyrwQ5fmkkw>gxOQeN2v3!y_Vjoy^CB86=pedE>jDbBVCbGO`Gg#Pq*6i)JY-Ys31s(H>=r-Y{8^ zPV*bWN|}ANoBT(I*N{na#!`ISv#{vVzz|MLXlt$`we`Uyw4KHOq`UZs7Wsw@M7d{Bj; zh%HjAq-lvPXw8N6b8b#@IQYP0+Ku-V*_U&dEPkWWxq=I(~FgxIg?EN^ap(t9(# zwL2~F`SFM2hw}?pbQ=>@7S;M`V@7N~Bny&HtS+V}DslRVZZOn6(N;8JUaqQ32G~T7x&|m~{Htrt%%i_#Q5IRTHGHWm&hRTLL)V^r%+amUR0G*;lm5#&2d$HA ztlTRCE$z4}0vMD=xA_>YY}7+NE~wBOKXr~WGGR-UBqN8;!ePODCT!kaaPv^z%eFj? z?TDMT>~Okx@5R)|=<4d#$eA~JHaway85K%}8#;WgUxKbTw@=2Phk=xi% zE&w!ayt9EC1e7@m0LoMDmzt3A1}y1{3o9qJm4KX+hZlbZ;iVR9+CBKvLl z=d;3VeOfB2rz7(S3ysO5eYB9uyj?`*2%5r7t5u?+Ku!i{8KW<6PbUew$2>C|j1sh< z(j+Zd#s`Jx4_>i+*`D~*alAbqJ?za$OJU6_fsHdzVL50@yGqD|K{Ulj9|w*Gb)^Yv zTa=G%)wYcAH2Y5(=b#MpQtz)@MiF3~*vT@iv3(D@bImhw zXvx#+{OKabc5{$5S}%Tdbc20GS1frxQA;2s=e>aoO+>OBjOav7w_gk`=&LCY**;iN z?T#%QQ5Oy0ny9)`bI2D>gHas39FOB~>kq+7eT4mh$gr2x{g+3dPRVh>{=Gxtp7s+g zdYNsJf!S25RF>(-(i9GHC`wB18U zG=luRec7Z8yh;HPdycBmmPt7itEub!8q0cMGmUkX2V@wyzI(sGZ#Q1ycv}m=+s-J4%E?3YVkXJS`V9$=xJa= z1D?HhZTcYOD-3#m^9N*XXV+@QQm&g#c?hz6|F*pPv%Wd8oBpT8g2GCi(>z4+@_?Hg zX24=oC0|dw@I^o3=6n9K%orf;$fLaGJ)6|W9wvRSxh9f~4N3t$IhztkRL7#d-DKHb zDGb}#r4)sMuJ{#dw!W|T3!iMueg7xR9S*B6m z*Gg!0?)6`-QuQ@Qc-VAPL8t+a5etRh*CE2QdX+u=oce_q3!lAqy;L`=9?!03?zSi97vk zPv7`@{*9u||F|bgnM#=1n>iV|I5_=pshE^#r7uHVL{SPgDY`(uK!OhmZ*ZiuFsL2E zQkf0pqy;$qSpq2CPI}orx8SVvT-X>3;*M+MqbuV`XU&OLJ3M{f&({Q>9}hG?u3pH) z_10?kiFlEV_m$v~F6Zm#$Rscy=dz{rzM_pi!;*bh1Mar!eTlRcCv;v379#)A>@S#?$ zQmDB9^aJr%YmQ1N3)U2m{7zy6&{z5yuuA*V0E}CKZ6MOBcM&0X4q8a9z2>Q1m09qX z+kALtxr|()-*L+>;NSm6Dl(LOmcbvSAtsmE-c-v^rl-*6b<=+lo6)Lbt_KmuTxhno z8WS<(MN}21ohU5-ETl1za7cLAPngJ_kyGz7mxLeG0pehj8vYOu#I*qbjft`rS}sV_ zTA4w`7z_O!HVK3sH#V@}*^!I)JAv4jYRFKz!sL1oSm_>fwX$tPp@Viq^4TBU6R_FC z!2Wv=p*=BOQ>YXz+U?n~P~X+&dyp?p%2*AsFWm-^xrg z4L-+ihTHG_s4q|$;QXN^x6u4(FMvFj%Nj1XMVq7ra#gmuBCuY?&OX)s&Coiq-chpv z8b++AB_Cu@5m`y;V3LNMrXb_OXQQRpi~nJLer;(tpuRCR%K)2O%?4VMd(1-Cc`%1fr6xFgN-S`UDcr-d#^l{I|JR=*I z+>wlVpw&x{T^qxURkl<57E03oH>YfJbaK9?b?VhuJQJUOtvOK1XZ#U{fQJ=7OcX z{FKYd;>vhAx)86DP}kKaf@vdZP1epX*h>!`rlK|2+!d;vK4hbWy>JByEx&AK=Z@rj zqpskCdMVDDfSa0^_FF7r&HJ*Jut@o%&Ow2e2{f<%?g!|3Z4s5OKj^?WzaVr6D2_LI z+?1H(bvPu4OUi;H77h(ML8rc$ul`S-9KUkp-`K07MXP9kgAF-OuWa~z|0R? zf=1m~^TV`#f-}qGcEeN@chO(-lSG3zyo>lHcfl|2AOipUJwc==nRD!me~$a&pZ^Wd zvi}oHl+FI*-G8+Lq$uwyEGnXY%=)z?7dFWgPP%{?ufj$0-hLZ~^kkHSB2SD@fB6z3 zE|GEHY|imdBe$0!y+gQ-BhKX!|7H>0g|N%@ob5d4J{M=8A>aqHHdOl^#Rei((ZKMk zBM<`y8(SZ{JipdZZ!9!13r63{qozQLQmT&uYDH@9^Pnq%q3c>JH?+}PlCjYv9^$|S z*+{eiwJhi(L=yTJ617AD;JyuPGuM~b<}UMO+6~v8Gc9*)Rb6<-esE=K(765E`&|qu{pJt+fE>c{3qb{OMdF)>7H|jeHWK~PL5Yx zPH1Wvl$TXW?G_5%=tv>fJ&5r*QZBF(Mafhm8fcrhfP+o*!L+~=kis01VQ$ix$+;H{nV{5A+xTw1EF^~ z{|dqZW61u$zd(5SOYEKf{{e*miM=Hn7aAxUh@W~;mxiK2lrB#ZpO$wP6nDS6h)dU4jjbO0qIV&7 zYciT$MuLeg>egFUs|qSu)G^lRr z$CtfMO$HTW3jAhsJi9W}NHOOVt?2-!+M_C=Fd{~04HvSmg_>}Ku;=P<{pcnq0Z0ik z8DWr0ED!)kH!}kmAmgQT6tIiA*Efcs94J{{Trf;v>-e&$gYqlvH=t*-?F1vLpzhsyWdxhUodgOme_4ukt(t$r}({H1sneF7(zL!rn z4Zng8so%)S+{2zJ#;nVSHnS6J?b9m<<9@iUY6 zg$3tJmt1_Au2-RL?cE{*M#`>oH(r4{l*$Ixhh|6x`Lo}#^_0D9D_09@M%K4w8xc*P z@XA7ozHBiPzYOetw(spv44aPMpIubz5lGa^Mq(z=M)q3AIF%0l1BQb-GBw)~Mi1@> zv~NmK>cCGOcX|@}+n)js0`IH#!dNSJ=Q4Tl7akL&=f`}jrAt65bB;SQ%M#DcY)>Ar zgXjF97jLU0z|2%Q{LrGkh>Z_L4j2Jr7+KfisC zT+kk4)eTCD-=bMltIi&*RK_icNz@)ArDj=_;rMvNdV}5P$FZA$TN)tBSLxUPF7#cm zpKUN{U{%iPxhPCLwif<~@`yh{dWAKnQivb}s9?;tI_`QcLP^6TS2h)qn>Cs_P*o1^ zjH#kIW!U9dPjw;O`1QyQ-{`x8w@AGGTJqYY@;=__hpw^vWs_Cy*^|nP0Y$#aRD7 zDJf^>>}+IV_P-2KzdRs4a3s(^Bodk%yMeeA@`bEYDN8^+EpaPtWa_d4{$$Y_I-DtB zgbWjoCy4`b-O_TURGgx{Wq=bp6zT@ZNU{?r->>!pj1Y)P-;^TUBYqh0Nj&Kp@2*Cl z;WX)cEe8vWo$0q5|FP-gd5fDKf_`)*ozN;EToehd{=|VcdY$o|HF}-V-Pb>wv9ALa z1NYr1v&)_wZSDPmS9b>F&S0Ix(JD^22hPrH-A(+hJi|_iyEl+z=ddLAS=u8Hqw3ZV z|KnSmz3~--7m%KR_`rOnGbF7e#Xw;CfMn}g3A)WwDJag9ad?NQ|yKHH6;dfmObjP>kK-Hc}s* zL3gmNS0^ujX*8%-vW1`mQ|=tuiUQC{G--AtODq-_LYemr#jea5YN?j>g)eQuOg1<= zBe#l-umo6GGbl093gXO!v5=mhznmP!(Pjh^}FY9|AlOEzlHECSlv z4!?3R#^lI=^?DO7G_T5)!DF-v{&B|9g}R1P%4{a*1^8qsDkkXS@1NkN0820K;V3ry zOarlg9Ik9d7C<_$M#|I!O=%}f8Abb8=+cLe@Oi?mZ-5%~#w@E7bW=rN-%z;9!?~1q z+fFBYF7{-GHZ>}nnh4WklenbS=*9%CBKm4#r|~ghV>a8W>&neQdOoQj_4`P8RoaOv zUjh5IN3W)V@mj@3VX<=SHceFWnyo0j1;D$QmMNbce&cFm-G|BQkrHwzv^Lw`I>O?oWoU2R?3&9 zI9}H~B(q=mnAuzSNSxMN@Q8vI@4$ftt>5echKKGTgV`HQUkVV~kK&N*G!aRH!z?~} z_fQJUzn{R2H{>5l*xcge#5)XLIuiuTn@Q;B^;@zxwb9*Mcj(XfJB2ry(8zZX40_ty z43WslOgFL?0XsnD`$%#@G*^$xXdl)D)dQn+;9mkiUx?3?JK9lGfM621r6AOP{0Q-W zGLUOXiwn=qSzhL`3c}ejMKC-&pIo+Ox6fIjx`bx~3HI;dw%+_&ZN7lrOP03IJ9pE~ zZeFP}*3;A=*%mFSwxEZpsnKL%bUzeBloOGRaRV*&FtW6?mTF`PGd!`_+Uc+KxruJ` z6x!5?BM=&Md5nNj@Rf7<*^mHMoXwJJ4LI+o-x-}|N_6Uy#wE1sOd^|zG{+pG8AJh6#&lT?@}oq!sYZlkQ7qs{ZTJc*Zy0~fwcp8e z{QW9V#r#~Q(I#gPc*wTF5av~-<)|yjNiq%(J(P#5Y3Qq7no_gMs>gref>c?oBA0hi z?ksS8&i57x)_umC!@soneS&{faS#yAEijuVo$Z!w*!*SNc97k|dwZf2MaD4&rj{3M zj%VA`ZgIn8DQQ_zQq>&m_-#bUvpE`_gJj9@HB#j$2mruV=2Bp{&w{As9->c3^|}jP zWExSDtO-iK)W$M5HcpXjtSS09H@MHPm$p{sotUiL#5$i{=2@*Yio2Ssf}#zUBEZQ_EnOq z3o}wuW<|*k5WYC3%UZ^TX;yLkV}j+`_F?_kA@vQ6y<4r&i$5@+O!mwoRJAp_;8LQi z7z%C`RmwgXY)*Q;bd! z&xfw>toYsWdwCi*a>pDjP|5%58kNnRId6x;XdA}N9XTI2JYjyf8662vNC5E#y8>y? z71A7}8OBT4~*95S;_qwO_+W0h)E9 zzb!v(3iZW2Y)bWU|ILvQi18Z`^mPQYfCvjRO%#ZG95AxS9Sb$G`BlA-qS^8cX8jav zXrg9^Z*dRdxpdSJ5eka%4cvsZon6K(5l6~KM@XIfC9CG!t(!7skp(?s^^&-v!W5WE zK1?INULa&f!5C-W>5KKu2UaZWqX_<*kKlrr05GvPJ|+TQ&D#- zvek~__GIq%*}rBVleW16OMw>XJ>wZmytX4Jrnxc1b8$#>_+C4#pmXnHxk0jbB&f8> zZu=k%bP`v^fDO?$W#mpz_vfE$CUYoxGc3Q)@-h^p7vRbi*&*|^(!r}#Lf)<_1R^pg zI7xyX;Er^b<#8U*{L!>RT8-jM7Ukbf(WtmMS=n1SlZrUl zn_F4@lQBtA`iJu&YIcY)coe$m$eiQe4>6S?H4|ZMcv3l5%#OsC+LmJ5EVoC0PeOA1 z|4?DqiMZQ~n97>y-OkB)=I`4P`1SzQ6@u1LOP*h{)k(ucp+kWLg#L0K_<3vb7ShF( zR^VOLC>e?YNJ+L>QX@7oBnkcN;c`Ctg@j5r~_$~_;S+KT@ z??qFdFIPpi2nE+DqaU%pL2m?m5lkx6{Ug)vLRDaB#r-@O&e-l8D_E|q?VIzCqN6+p zCAS1DW}POzMPB7cMX=sw!R>!5v*Zv9z+?N04cb?1xc^Nq>px>7>tJH!V&!1}zoR2F z^c9^JtA)}kxvIw^?K{QdQfbj{Dt&64_Mq4qoS+9fl?(M2yTd0yi4vi3&)nslZN)B3PZ~{ig_K>Vx?5D zI5GOBUy%dSX5#*|ru8N%vt?Kj2WsaZTtn-e>WhR*)KX%G)7-O1)llS_I~D^$=_N|E zAJ$gX<_1%;=p2Bypp@*-ppg9uln|T>jDdz&xL9&{PU~{#c1uS`R@?_ndX3XXf+|kx z;zA@FnTa7aGm1VhEQtYDnY8@2jt4zA~IT^#^7%r^@wwxdPi4iJ!2f6HBi6r|GH3)QCURI zzXAdEMK1nN7mBi(v#ag@5}+wjef8{y9zl8DIy1=Bzb*30TlleyRNw)X(`>eay-xdKszdsO$=y40}!BbWb zhtd$_qb%wDYCYLYohUAXM|l_E;@YX9#=7;y1xgWiEV?+Q!3f zXWKcY+8#7;1V%Kg=zEfE$c4Q?_bUG<}h}U$DzeSZbavs z8m5@QAz+#F7*#|%&XH_CGzW?B;yAd8#weTkA7uoR5-&(y+K3 zJ$gtW3{Y)7qH)a?EzpT2jC-Yc7$lt6lwW`it^4eUUvBUehZsX5j2X5QZvfsPh7@~s z%W?f#-_d?T6C+MKwCKdLl-N=H%vkQTyPo+-Jzxf3Xmupdfj zN7kIYI53bLDwwoi5I-I)USeeGS0X^x{9qa`&dsLfph~kvRi^==e7RJuN@xO9Xvw;u zCC=B~y=&9=rghV|uO`HNuH%_JgET2#(GPa(#yFikV-N(J>+t-D^pa>s`0;wwm6Ke!A7YfBM5s+pt zDpv0qkOCulG8YWIx^E@TAJW?XIZ=HByI!~MFR!|90D-v?fjtc6x1vCQry|5p+L1n} z(>|EfKB^aYgyVey-4_Ln4;l6s2aJ!gkk7|G(6@ykp1T6nzQlt@+AiXeI=)kqTg(Jh zt&U_lcq=ZxWD%I4_^A0L9U_FoVqGltl5rKwL|KI=MgDC<5`6@@f(lwxYDB=Isat2W zx#Sc@4Gvo7*#LJc+Dzhr@bypIjE;zjVlMnlnR{N=JaowhMMQe!_7RW+3oWGtNG2E$ zMM)tl;lO;&0x}Rq;t>g5mnOwd*0j|9lg1ZxqBC_XI*cdv@k=}9t?NQ%j1(#7lBjFP zdFl}LsazZ0?n2#y7W~S5>Gg(5u?yYi9T6PLY3{-p7(3;1?E>wPbEw*LQBjt{2u>lm zu|uy$;?fdjugG|ny0Q%u2o7rGJKuS8;r)%@lYEbASyfXsmDZKkIM1p}%eAm|yV?dj zn6*`8s2UQ;HDogpqRz4m>vecb$_b{;GnDIj2Y0QBljSS83dPZu#dnff`r@~0>NPaG z+S~18!|esNosE@#3MSj7)T2i==wM__bUV5WhNMMz=KAqt$;ALVd)r0hD{i7bx>B)+ zRMBcF1$J`y)9K*VQU?V+yXD->-+$%Q9<73omX|?;=!vMY7n6b$8=x6>vzQaLhs*0R z7|CjjcW{s9NrKIaXysc)523}47@Np&aDq>~ypc#8Z*1ZuM6YSjCeZ7y#97sqi&`dZ zMVh&4v96@donC)__0)m0us=R_Qjx*3xAZHUuT$@cSuMw;ilV606XJn$=%4^=jhXn2 zlb7m|M0MmE*<(RzQG7|nO`p5lS1RjP*MG5+3`j%8%!u1@HzVe;&ak*{gPUgbNEy#g zTJl;~6N|o~G{?^e8zO7Xh{x|Z{ETTVv;&h6D~v$PT{W~!0G*a9YUL=+8gpgoqW$u) zRh`otY`Bn@hbXAQ7B?10B--4r#(D1@ykNkdr8F7}A4plPL`r#X4AtVdWr_BbmECMM zRV}6*lP-V=!G>0OR28*ZTqR4iY6=$nNC2Rl{T7ziVMdx)vGu%=SPXJ~veC*ZTGz)8 z9{=gdm>JplrmQhvO=~G@4f$v)9Tfxm?BRBTIUKl+5yP=;DIRQ*DQ1=t421IwEn?UY zb@^rfg9sN}$4%tTypv2_^COh+qy>p}^bG5HHY0AZMTw<@YX0Z!37d8E=KkKmg%PO9 zH8+1&H<1-xE%(-FFT2?>l*0Sx=E<@U>PF>Hw?WcHqzu-!b70V-TvCK2@p>}5EL7ad zS}aLqMEvjPRtXc4`CWg#?!oY@l}Yi-sWBqNL0WXN7_9A8GL)JWFVa%78CHeCa$$F5 zbLL=ARF-e`1P+UdRNKsHPsKTe@^=W&SHuA$LlP2js4B!#dMpnc1;9`E&s#;#22sN( ze_o)qF{d642@}tQ#p{U3wW1Zpm9kYEDnZHtJ=K#WkOPA=RtBt7XN1DBPB>HAo2u|1 z=BkQG(%e@nKtNo@k}Mr{?l1{8e!o&mVY9)AZ=-3GG$du|fe>%;fnImn0g$)gz^;1; zC{v;yNt3Kt5p%6XS)m*WfH$XZVFBTm416q47`)&C4YWOTB_o%F{T5B`&eB6v$iMA1yeb z>(2iPP4u9Z(kp48d^$z#8zNunBE9sg<|RLJ!CADhny&Z|o}F8U0ktT>RRC7b8Fo+Y zn}byf|2I^6w-^J>OR6O8Oy{yv)k_S@OAYg;xJ)g31cy3DJWRT7KT*0aDnAy*VO?yS z`caYLD`_X+Q_Wemfb)P@7T=ZTm}pE&ns}vOxWL6dcUGjiI7Qt`#eP60o1(ri5eI;ffXaQ<|CVn`YIH}=ve0TJ^PN#!&# z{kOZ>(KD1Y2fONJ$K;XIlXi`jywlIQM&5<&MdXkjjkDJWP&5L_O;bmZQsFP0m(}^1 zr{i#(WviFCtXD8%?9F9#@_LEsEM{UqpI7d{u2Q5!ZhR8-{Coht4XxQFvdykDgDAjV z>|j2=GvK#&>b|Qn@6~y^meKgUC+j^;2A3e3)!Pr2-AJSI!RKC`WGDb?x~dKo7BuQm zy(`J9+W4JG-8;|5x)Nry>Z~9CL0Vta?M0(to~EJRSP%moTi(#*%We0w3`(_TGE-*! zWp9Fz26qI+L`NC#rDG9OS2PuZ@0p5j2%kS;fm@z``QBsoBQayhUdt-U$tt3>QhPI+ z#9VN5!ipm7^ML|-u%>9IWYlkBoQpD!i8c*O1WIyhkxK$Ir@_(2ri?cygZEmc#lxn<7x0NW-Z&<%&GY+bVGY<%rdJ!|DxxX0ft;@bR>FgdoZ{LlO7M% z?1`DqMvJD4fvQ8}@2vuDy!gq%D&@|Umci90OY0tw$&f?IKSxUw_hK#Vf^FV=Y(b1S z=L$B{eodF?;6D8A2*bP-Fy`&`;rcsw$>Ny-4Iu$J1^Vb zSa4#BN*PNWy*5p#F8_vSL-<)=So$X^i0puI7ph2m`r}TBEyZ|~+ud%?mf*_gnmjSI z`?L`ymgA!Im1)sH56r$JZ?uYYy`W>Koq)`#rL=UQ+fjEmLgUEN&d#e_YHQd-U-)&G z(GRk*3#+=1Rxvf;jJdxsa`?>FnPC3_;)skjW*-_jF42Agv}%vEWfOw z`)M3_d7q^0Ee1y3U)vG3!e19hvpPO2ntNv*5%$VEK7@EpR}c=7a{ZUGKUtsS_8S5| zEZRRga~bz@WrJR6OC5c2^A4X>w!AWJC{~vP@F~C7Rl!~hGVtn+A4y*c<7*^!GIAka z3i}Z*#o);IAGx~rBb^6wAYP6p)62rW;Pz0S4mJw{5lZvSeTLHm(8kY)W*n(sx&s*~ zJ;Vo~!RG=|eH!9UBxFtRz@BZ5`-YFw?$EMS2}sCl??EgW|InHvdhK5XzcutLIC;Vt zm=S(=2o3rKxyZ;l4hI^JeTLU*hUtA~n?;Kn0(pdf5oOy&s)B1ovLl8b9WbCwQR0rN0~{zA>)LqluCo zT%9)(kvAE)t>u%|_6sl3b=e601JP?W^p=dJ*l}&%0jbYi2HY@3OSij*piRy^2`Yil zE5a#IE}Qd2>isdd9(1sPYcMNT9+1yKu@ppBCMHKl@sl{7AVF$0tM8QbcXjF~s&%oe zbH$+Q(Vyfd&CC$xv^iI#w((5Eip`Vj(Z(oE%a!f+k|mTcWyMs|g0|V%bBnR3sk7zuWThqKd)Z2TbVji9>fD{@fbH*~`tN|Own_!bsb|{oIuJu^Y zhGrE>9GU0NZinzPek?)6$!Zj9I~gE(MR~!qvAy@n_89AFO8w$@Up->u-a6vz6T4R3 z=1qSnZCJxDBpb%PpQOsoP4=lM;rUh8do=O5gV-n-yEM=3lcTihD!5;4Yqoa+i1i1% zRmY=CuFiNblC{nzqnnCuFoF*9U`DcfLXR8QD@)<^-^jd+XgyP!#|y>DY0`-N#Y<-W zbS{nwvUcDLd&BNka3rIC~wDy1_5icae7B@kB9sCVF)f58O%(B~}# zF``ttn3!x}r$M=@K(eziEC<%%uo>%PC{eend4tH5)Y3e@@M1KKpES_9q&73#)dq8m zO_hdcRxBUbk6TN1I}$RoN5^*Y*QE09*sbGOGVBbi%Ew7 zMfo_Vhu~Z!6lR)I1g*AP+UaCr;^&opQWNeMlH9!SsV8k-6IwLyMjBn%?js zJRm|VM=RJU%%&Y*=cQ48J)?KiiJ`g}|CXzK zd1vXW!qu`Eab zW~!FvarV;>^`bpn~f&QSAhrvR2HJi!j(k%9BS5SOOKMy;^}vG^-<*9 znVs=~Bx?Mjr%?xmx2L_3eZUFV<#PwDQ(9`Jg!6cr*Q5QV$(UOFA!mpb|0=jdCRkG% z4PJXnK&D(i7Pz$fhOJPntipXow!ViBt^;u=$z~b*gYoCQ?)j;AX2Bv9UlKbM;v7Qg`CHx7jW)E@=4-h zNSEG>5BHbLEn*vN2fuNt1eH&88rI7XYh3$Gg|CXPEf<34n>pYo!GAFs*Exm!%Akx|DSfdQrG#i3q}1X zO_tYbg(}~J(MJqn2ETyoMpaT(L|oDoiRP!ZJt2;%wT@QncK;V5jjrx@2 zZA#V|E@k46w`_XvU1vGT=6cOppK2p8VE?8&AdH=ZsZapA%C_~>QDuk@4jc{z+ukO9 z$x&iR4^9R9+Umjo`;5RuvJO?6Id8MjT2H*BI!${n0|4qwlFg=$4A+XX z7`>(%#Joqyh@JtSwwk_L<(@C9*K~`znbqXuRz{``WbBFfaWX*-YD`z!1xwR)W0`sl zURlHF)GRKh`p=1;%*Hn9Irdqlt*52mYrUVrm1Lf=wpPlp+0wnaO{d9vH04wijJ^JD z2O8g>HO;pLQ%k62m61hizevMH8#M)Rz?J-2flEmvh=SM%IXUhsG&$C5x?N+1TqmBQ z(IOt-bZ*}|$jsB5d(7t9YaRSh6yWYvKcZEr6jSpF$H}`OD&~6O5Ep?9A2{ta4df*! zF){e$xMyT-THk!=&uy~!bV2#_vI)h2Gi7qfhn0ZC9Rh-GV|zIc{)k9|@M3$g;w;%` zoyFvg@&gUpIKqVh0M3-qhX9~(u%7hq+9A1ZcwJ_^dfEw3ev9g652KdqETL8YgxEud z&Xx0^=DQzemJ{#{g?aqY+-Eo>B9aI5*)Yc7b#!79SrXA#i^-XIlH_o^LOiTkq}ch> z_VI*WXWfH#T&z08K%nmS5)2y-V$qMQsb29Yb0+a}2B#nNOmbT!P9#O8L1w_aROD(^vZANZ~#hu5nE58q|W?)=tnZS`Rk;p|hH~ z$}BUjd=OKx|J&bi$$rE_{N4YWgxjxeqyH4)J@sqwYhMq?|8){9t?V7doSYn-zDmX& zoW2JCpZX;!vO@ppL&{bqYk_)##_wi$gk1=NMEVbpy z<+hV|0^9#RWmvipb*)vOCpM_fBFU>)su~=7#=UWR1q*vwL<}#KY97;BKxq{rcN3A* z#rz;%c8voBaV@)>WB*h&njB{7o`&m)POr9TUh2mOZmqj#Yd-=w`g&T%kLk+aa?=&` zeg8VtDG;80tFKrme$~m#{67p;-ppP3|CoS(M!!Tw?#lxK(f4f3UXP}xM$HC^*W)w{ zaU)3)t@uHa5}z8Cx0Y=w`O18v^zl&RtRnwE5=l}OkQM0a&f~ZG=KAL3NzZX<9N*xQ zaY-A_`h{o3cZ6_t*kRb+Y%h^DDYj0|qw|%n;fK@VLomIfW49`B;7Jis@j@~YPXD-; z7xO66!L^T>HZ4#{HV?y*NKQr6y`;C4peF7WY_Z)fIlmM2s3yJ+9WyWf38<`|HKN7u zIO$N`aWeS%wDd?`i`?idU>I;P=&(VFEJ(3*=S!}WixWyqYN%wRbG5^=I%jj$ASgNV z%Sf+{BnEY5I+cv`T?0?tG%g>HEeh7HZ5kQXZ{JGPH}H_s%om|X!k$X#{w8Q?ECAnI zW-hSCUkI1!o)eo3`{)F-zKV@m1_KwrxAMZQHi(?AYnp>ex=l zwr$%T+qP{d9dus)=UkmL-h21l`=P$>G1gvHzqM-CnsZW~63VPk(Cn!<6?_=x$7T}U z8o$>wGIZKcSY)*}t2MEM{6-$5m1mEXWM`W;!kMD@$BZg$AoJ^fWz^(#t}V3LYBHNKqd^UIDX_ zD@3ve8U3BS)4bQmojLk;1mD`tHAalK1N_6o%7ba)Wfx>|(>Tc)s{<)xIY2if{D(^x zjyDjnvRWNEZbcDgxTR1D=GTWsp_dc*zye~SI=F~O9$!+CPzPz_dlR{Y?S&ZIFwK3j z+v60jiy(=&^~_#<6(`}?LQ4qu7ScL)Cz5nHr|~09dPvqqv%ZxF_@FY)!fcWnKmmRI z$u7SYOZ3?}jF~Xv!|tQceuV`@+K$RF}+~FbDsNdg&zkBhb2%-kFr)MYSLNNYxk7jEvr0j+5 z>Ek6xB+WcpNZzqOlcscRN9-YXXN z8?Ml}pYWo>!yh$$lQSLuqQm2HlN!okpVE!llX7E1|2sT%Sj>yfuV(jrqmP60Sq@4; zvK3JfaXbFT21?<_6BU$#jGK6019Eo44Ia`q+ASZ_G>qRjE{pVuXq+#_dx@TGKyzyL zq8yFEdUBR2*|+kx@M@cjy4C(Z1=ebZ7!MZp+!uUgp;ys z3^eD)dM=4KiqkwxvMwAv&^=tm3a)-5{t}!>#EOo0A^AwYRdWRpCE?q4z3z5uYw0RE zUYVbHmg5$s)DqGy$of#LA#_7N`!urE``!{OImh;QujIp{pR2$uwoa84%-IHOi%*di zheuS6!%Y@}VK3d^mQJ{A;kQ%qJ>cErNbp9nd=A*2pX5ebF)XkccEq^PFWRj66ZsT! zt=W;_O&gxaUVwZk_a!79c0`y%gr?t)@|7W{x!h?mvWfI7!Au!WteGaJVk3xsX!j}H z07I1eY(YXmn_m7LIK={4xRgPolf?eM)Fiz`>s+Mz^uaRex=zNp`+f5CnM-%wOzJcv zoKqC-__zyq)Cv^krs>HQZS5u@fy{fDsJARwGOd*RwxnRB*nB1JQYm(yy)C(ww#DcU zQbQ&>aSj6bhz_bl%xcCe_F@C&kzbg4sJd}y_%bD{@jGtK_zRei6jmuY!xO3OGQUjS zB>?N!UToL$C@-^5)OP4gRphpV^RMF-MUc~kv;HOpkpTkZPJe;1P=i=U-~0g|Vw9RH zB0Qt?OU6Y{UxUYu-g{>9TeET`+_t&{R?kpn+}S~-N9x!;x~^hqK7bL0#ho0Bx?Cm| zR`R5^vznud92;H3wgVeW&8oX9h2p5G)og(lizOSUDg$R$Ep~&=Wn}@q5;rLrjI6U+ zTD!S6C{wDYy&2W}T{#=y@Q-SQ0&^9aY?|~6%MheutNlN=l<}K7TE7&A`yZ&(+%>iGhHADGtGk^kiv|)jL0i`ZS@>v}jI_ zxCJ_`Iz18_tiw#;8AKPLtq3u13l?>V&-y#dxC?5KBlYL@N0CMh){i^3EKjm(vH<^S z_sOwxMf~_oSxBsuW0z`iSVtcx+*~iy@JP%i-&{|&qF_^kTNF6UwPvs%9f6ZJYr69A z_RBGCUN%-LcZ)opfhBRy>N;QNKo+yw!55$VyytGW+*wrbFGyjYqD14Xnb}f^$~lE| zd496#1Yd&_yX1?kZ_`-V*r46s!8<3R=C4@Aa%rEKz^$0qkFKN(U!wX(qUzmkdZtOn z%$|p30)3ZVg^R~E{YDNHv*13#VHsO((N9qN{L-?*!S{(iQ4>-3nU<4Acho8V?k}yM z40x4IK3PwKrgzxv+`K)BRY2kAJDT6eS9PNh%}JpMwd>$uHft-hGgcm<#0KA(03G-`G{}>)x=Nt1A<@GM}p7CMV*jwjn)>syQ zwX*v!fsP6fFNxD<^!9KP)ZCMuT`oU_fKMxvZ>~s}y#+5`R_nk1X`E+PSh(H(3rIKw z{a4Ddv#pbbjfsl8y@`mqiILTR+y|6(mFERf`D9?Ih!W9-fCLmpPa!aS6et5`Zh;`| z3r8Zm=?v(oESeLnvu;afws%0f6R`+zb3Opkt_l2pJ+Pz=$5*yje9sqK83Mk(e}EZd z*ibY#IO2LiP*B{=iKC=IVq~56>-1zTMl43GD9tI)a!*lBVR>isn*B9F?!mK}A86aU zE0VF0+urF#>S>?B0(VC|0wGx664!Ivbd&1OpgM+r-OWI4gwzLuET_28scd8S`KYfF zDYu7M`DE3r1h4HmkJbOkqWukb`Q3A)W(^Ik)u(A-Mjx=jwQ&%I*L{q%uX2^R{MMCj zuX6extv0LeP{FS*=e-t_0>+kfzIu3~)EeJA$96!U(C**Ty+0aTXbbI3_zcI}U=JdK zF3xDV(-w^3X0eNgj%ivgh-WqbfQ}BRuMGl&sbQnF(wMyw@295Z!@N^Rx85bUWm>_2 zSPceN*w68dIceu&Lsg^p0 zy1M>RvuZG58S|PAIdwG%Tk;fYq2B&>OI&1p;ivh^)u2)-^tznDS}J1BCd<+#<1FgB z3wi(dfZlW?iavkq=HahYTFj7g0MI#ep zh2)NW;UWE%*iRga%mM=?bMiaMkAL#u==6Tg+lT!2tqAR3x!M2o78Wu#{@Y&ucfOK3 zlpD%2(x05T#yJnTdLzbwAVH&^mr_X5nXv=LAwOlKP@C!p$)&qBy@oBe4w`sYxtIsZ zj0gU?biLD4y~Y{xdP!_)55e?oi;OKBk0Pn-j-s+ao(39C=0~Duk(_S#FT&E7@70^x z*80!sEmzs&vY)j&vSZfn1!;nmBr%K=W%chO>?jf%ySb{pUds5{3ttD1XFCO#NfR*Nl z^ZVYT>=t1Gyq$3z$EX|27V&Nsv)Zl=^HtxvNhe5u5oe?}S!aUWuL#vGydh7G-L7|g zj`Lp(k^` z3YgE#Ja|Lqm{?H5WE%{KKi-^6JgNjc=`7%e-e@bPXZAqOh!&;RUSn|x>_Y`muO-u} z`AeNQc?;Q|twuqj3frYPoS&uro!J~0bQ>fHXRII1fqO;T3p#+OXxZ1K+Q-!pESd|j zqvl7}KH4qZ^Ti}ei?oF-6WZTMeT93#-bibI2L=%MBVm!?-!KXu5v`4U^rzuw_-MMp86HNWS0_spNL{ zP)t5`t#V=5g=?LM1|=ZlC*HV2=_C62%~^hVVp*3)7jOZOw&h#f?k%Qxbli)9>Gx5A zm89_w9E{6m2eN}zwT74>$h?FH)a+S7SBw1&sM*JXe!9KLa0`Mi3mrH>9IBvsLGP~G z;c-*xb#;H@Ykv36{`e-4ctZjvFr)xU1ML$&jQTa9g`vT(EspjcKzA|hd~wHs_6{9G z^TL*$3rgdL{44H88|>HqcYMVg&*Tpfe87zaZ!fg3(v6wk1;a~4(AOLn&mSU1eNp3% z$*|f#qg$Ucy;$$seag^(0+|95d(!jc3U+?G`3IETwhEG_RX~B6G0Dp#3kUTWsR)~n zG1lLxh(i6QJ7R)jgsKnvA<3r11u8>a2q_hWhJ?htPNf>urvxX)+1%hMDAS&elOJg_ zfdPYxRP-M91CSRABTAO1fdsSqJ=i6oVzn4z7wQxJHlx&bE<=wk%`x0d7CjWoIupku z!^5K!3QfB3dw0>xlj`QeWovV~ldEQQ$NW{^T*1-2+y{V=y}x5^FC{m!R+RVfOuRD* zIkz1>SS!tpT{|StB*SjO2&a4%R|hfWNi43$zfScj2p=u*y}AZRiXi#k7R9kD(%MuNY|lY8=WLYmTH5qE zJV49M0MA~C8iHEdle*qkE){$_}sC z!PT_+n0KxBjM5x|L%2UE94sInp%4`)<$*bR;2=}CL=Fps-<#(~Y^G{u z%Q2%WYsxL?uCN;f55r4BJ1VQ1P1?os{TT$gCX4k_I;NV5AHo}GD@F^CI2X^C=ML{e zxV90^lBb&rbOt%5)Gm*y6sICPV7Hru-xm-rQ3pwA11eG!ljGF%T_W5I2n#_C4LxK-8`B(b_+Ys@;6 zAgDXJ-~v5q7Thp6V|)W7+QPx?Jo;dDh$yE-BrKX>V9#QnQO>|2uZkaezQ~eFfGgWZ zyHd=9Djv2-V=p%O+2=b~J#8GApOG{CZhDP7R`kv+-^PACzSs6s&H>IWHx-%Bj;x61 z(rNw{NiB~jgKm6A#SvlK#>wGqeDreNYI z;vH_EhO(-7?`vxJ_Inin*tGkqF+I8>ebhP>P-E%IrcI*8^XM8+q}Cv&`bDE>Kc(WvC2bZ<40^Cn|Wc}AK+oMXV8*wv!L_tQz<`QE^)eSS}uud90@y~E0o ztJ#3(WS<)Qum&q#igGsw=XGOENFm~+EJ(bq`ARRyQi2E%xf8j|1ZhK zpLq*Qi!sE^0e7#g#;3NTyyB-!3N{$C-=yQe7c_g~aYAPT1rX>$_IR*2t5y8PIQH=v!&FDT(0-5O*h-ZUmz21s+*xabN?w%LK)3|^TZYzDR5R* zAFo^GW(t1$8Um=~yWrO~N>R~9w~2PZ1{-3&M0uW>vT|g|6A_4Jnc=kqDZu%; z{4*J1B4A{0_)&Rl?Ep|mK0%W9pckpHf%2{cmko*dbq5N5oX~fSe?(Qet%Z%_zwo%V zFFcO_zs2MJFWr-z!4Ipi$CAGTb5$B|`nc+7pYRvV>)%{H(*N4-I2n6536JMPZASk_~2pi^4GNOAW>!!j0rk z9btC=2^q0$-Fz4n*U#(t9L9-15ri-%a@C}(7jaB8^6S<>a(tu$s4 zMeGfR=HyaS64sBcfpe^JNz5COB$pSfmaj&QJ4&^8FmKWU!KoJ)kq$}kY4=1g&M_HI zl{-0}zg}U}4!hj%6A>{gJY`-laoUxFUA9DX zIpY(YZIqN*yr63k<&)gEtLvQ}%i>4F^EF7!8p`7|r~XLes6&kVev@Q6NFCgBbeB)b zUlRmKmnD=J&GGD-lqN@OFRb}a!qM3Oj&44vSj+@pi+^9$4HH8*PF1217b>|EekNy< z+r8;1??=n6sn^A(WwX+XWTX~G#e>e2#PNI%<*LC~;*)7VtiN_!x=Szj=tfC5;i)z{ z^z&v5%D`OFOE`3~vMhcE)keQXkapze$h$F=UhD#Q(i(?O?T)ss4rQ3#u;bU67tbF=v7RA7YP|**0s|S>G8PEw$=*iJV$UxHW3wP&)-~~ zl<=UA2%j>y&M)frJEX&Q5kSsG%Zy&d1tTk0!;uzGcdd4l$k)!A!=US8WLcb?mVn*S?*A z^A6;MFr_rNI!TbOylBOb6woP&3}hAhHKOE5u+l3vaudt)@JX~2?+G5C7Kzx3<~|WG zMR0l{0k{t-9a;m?&&od%$->ke)-R9qeu`(dCYwv(*WeJ2*Y#Fo)N!pP4QD5mUf&g? z(|?!^vLl!O`N_=@-jy*b_!-{@!mp-9Y5UON3WCocOzt~l|4FsLwEfHebQ^E{2)J-g z_SeGUtEuhNB&#cG?KNrhD}Z8iIcE^3ymT2I1O`$?pvjmdwEVIK2JS*=jAKrc{AGpB zt5FfDK_c|3knZP(Lujo)n1bIY-My3-w_?Pv9l$$U(~EM6DzZ{N1RSWqng z(`x_kCH}WEsygByaCU{31kV-;_vu4-bIYxEI(|9qU=eQVy80IRTX zO-?7-c%U*D50{WI!Bs}=)%{Yj(jVG{wsb&H-X5RyhQ1p13qYA^!#XJImD37QL=>S8 zPuMVP#Zvlis4+x^rG}~r#-6ElaN`%?(F)D`!hFXpj>`I-HGCeB3AiD|58pEYi`fBS z#Zaw;CPogM@Dk-UlVr)mL+vM02wm3O?2^-M-h;}at)0zoD)$wQ=0{(Nym6COp5QM@ zIMH2aBqux7b8Rkq58IIB^0OG7`)r{h$2TB1x#GyHjdRKmA!DPsg;*VZ=}j@)NZ>rZ zvvB2IUdsTMU3iGZ!+6cK`jT>!4Dg;(#m_Mxywo|~js5*oF|_52S?qASPgjr)^MsRa z%^LZ)*)Cz@MAyCqKN|~op-ol|p}2{>k?9%y+*xXa)So*(A1cG=OEG)~+x;wzEGZ=uz<@6p z$A^m9k5^vdM#&D*cJskx3%9+QWwl+e7ZdjGY}@droU<`&M?up8 z%*2Zbv__i1F%aB{xpUNaN>?+)wFoXtti#c?ic(+oWKkFOUQ)A*DA$2Bx{%n$*E;H@ zv&vK8fxBxBu~26Z!XVpbbI7MIV;+g2wbTjYt%$|t?U8lT?xUf7iHD(?-L{8wxV_1B zk{KKxR<9&+RI!@n73Eb3TObWi(CKUVLXaqYVP!+&F^Rw+2I$IQwd1f(? ze1a>i3^JS=df|M>R3Ab_KF}Gon3aVZq)2ky4#$KcCUStNViSQ85ne3wU z69E+^bTpyqYsPDI&*=qvrK5knb4xKE zWpx}`n8hZbs2lI`B>#9sYKLwYbDcyOPTcj$)l_P!6v_%b`28uhJf<*a9nOZ121Q$b z&@wmBfcUGb@HiwXcVI$6F69!61NIgK?cn(FavJncZ9~~IcwJpb?yQOutiT_f57$V$T<*(=czUUeR5VGhvqcEs465m>*ub3? z%$)+9%Dk)VVv4yTT$HZhkgNk3`zDEzdaWa-!}YU+L5lNK*a6I9Bl3OwEONWg)TLr( zd_%8kg=Iv`Sa23nv9fU%ry-ExXIS#aQhWZLwQ#d)w%%%*IMhLr8AXilu?M<2Mvgoe z4+~n`SnCAH-4;QICnvrP5*Qj}Hu{3>Mbj;+4`5PupyhSxR@B&bc?^@()*YavzIf4hy7O^!e1Y9!L>Bz@Hm^2dX>jPfNKrB0NnzAVHEn zDU$C2feXhT+v844Sbl>2V;Mu? z2a(_WBB1kssaw+jcV$f3z}CXa{cj-u-z(U^t6I`Yt+ZB$3(=NJ(h|meyH(Zl*J1<> z63zuxtfkY9m-&(had6GcZMwF!+E$40_PL_4p;`H{=5xJm?8)sa0t_zMXE8Opk;2>U+83BJn1C!(v?kPy3^mskLq0bq!6!`8F9Ap%oXb7B0agmqP@@l0Tudji z79xccYkzn@Q|IWwJ^D5v6oX85hYSju{I`Ro=n52h9;z}jJYnBzK5;QwVnK@IM7SbZ zD_1Fw5iu)N(z^uN^4H5mC=Ifuy#+^_?I~*}V^(ScV@yhxhP@$RKox0Ow3B$JwuS@| z6Ehq00u%a`qWuHtQ*pTVmt!Bt%qhmq3dWpi7m{4WK$@#ontEg`zD(+tMc@?5)>JAo zfUQ3=I0OTwQq|82Z^ugldSKMu$e|eK#&q~Rl~q<3Dy^FhNH`I#A6Ip+uGY{JbY~Q( z);}!>X5G+of|p`PX!ZpC!3r%A_e{cou_SznH|pea0?mh{z$|0vF%H1_J>+{z?yU8I~hQjXx4W0MtQqw;(< z$sBn}Ue}z(d5|-{b}eZS$vAB<=4kT{FSjht*c$kLCCU7znYz+fIp}>k z;Ec3A`hqV2$vM(wy%=U|2eXwml%W!zDi`JML;5Kk5G>g!Mod%KImj)1l!;7{m!R^a zNfQrGr)F3p-tGI3bk<|)ZWU!56*m;eV@nX=beH5t<2kSTRxDrkLJMOhXMVacZiD^k z*LuGXB-5wC;#4~(R5O*NPU0t1{KjS5<;&*YDi2iu>geWA5(P1AmbpcwX6(aOzj>an z;Gwpk;rZbXLSY#T)$hETR3Y-pFqV!Up{Q)fi?1wi_`k}lgrVunO%rFqvOCWqZBVT6 zF@E}$U;MTrirXD5<}V4M1aMFInB>KjA+bo0{t8~ozNM?0sxIL$cMq+;(liOtqe$=H z#kwCqeAoX22=-dY#jiN+M0Y%q4ZE31wm!7wW-wMSWy8dR9ksMOOj9Wg>c?VBrD3<`I|y3s2? z&#ZgHT9tB_k)no?!%&$N0;eVR+MJuzx^C_Y%bq^(AODI5`B*`TsqKHsfAN_8X1@XQ z3F#HCVN^rzf>UMkm>q(Ks-;p%vDayS=}IOB{leKmt|b4fb>z>hzQHrC$etBQ71h!c z>p2#4PJzEyx@6lZT}JHs5$Dd_Fs*1e8B{FjrM0hL{0<1N&X7?BC7xqa)y|B5W?9@f ztqVAlCllQ6!1TfmBnc&YPE&>kJ7lZQ4E6=EjCX`JF{khw0Z|s4k*n&5jO~05hC;Tw z@E_qlvpwl!;i|3548F32>jc{;>CLJt#o1~O%PJ)~`1*YS&jxQaHgpjvhlOU&G2HBs zZAG(wY_E@Ynk+>8fZ`t8HC;gkZa(Nr%A{7_>JSL?cd)@~@|5K@JgFjy%oCz;F)qVY zA*_%6@*sIel82b{s;9aC>b&q5PokuDYAO1wKy-gC>i@P-7}?pI{QFEp@YjqpFcac< zrS!6xeGXy$bG|+z0{%cCL#cDAwxxFS;IR9bhQ0K~9*C?YVH(l(^gY=32=VXaiYUpR zHM){r91>G4_Gqan+;~@WLEmv@D)6aK^I|mDR9-2kxkazoK@rg*uH9F-l8`Bcd3}zP_zx4`I z{##T+Kg^u}lKlQRoHj~%-1e`D4UU8bceJ@=U^+2D2knwF<6d@1AOoTDX34@c;*K&N zPWb4{HI%}4Xo7DU*0G3$=#b4`D8d`Of8 zE=ZkmBe3OrjsA9joSu9EhtM8F8xp>s&qMs zb4@q0bw%9Q(gH-4S`Z-Zm*YK6IXTTq1r>+n26cHw_h*XY!*>hnxH+*lqlIkD7;0_u zBcm&qE-JYR#PzKvJM0E_F8D|L0;U&+dwP`+{^3^LvdDw@*WVjLI~d`t(dwe``krvR z6^tiN>sY@d2`1L3qoA=nU4Yp>2G|bLF+g6D&^vG!WS!_0UVIEO^@}a|YU$_5m)G5R zp)CiNR#Z%u^*-Y$h?L-W!X86eZ{f&$JF+LlN{O3KDI@0XP=64^KF->c$X4)nlm*QV zPFOL?%N@-e#L_MaA>WdUFM41;piHZ!j8m={S&C^tTALaN30iba$pbIs2rrl136%RUvhfS8w@y$a^AblBcH!d64r9Hvh(3`*zoJm+O^# z$#-6P!Q}erBj3zfd&#FvQIwA3vgYVKh;hCWj(9On?RMIn4?+}LUv!j(Q+8$(1y@zv!?9ChYk55+GQJyy?DhagsXbV z|C0r+$$7l4I2AaWy10DZ;%q@t1O9+2dPUl4uQvWfJ!HQ;^f@#!-I=kvoT+@Btw_RV zat7>Rc?mGw)hJ22S)4_)q`yFE>FTW*eFqCP<)MS;v}Hn&ouZ*&KH?ZK&4fPP~QjO^dVgynGd3omQp^l<4}?bN`1% zt7*$Tp1vr~BAVwIDeGg=%;67>c8_NCr~$YR6TFp1C2juLTcWFYhwMo(_UGKRNeSjN z#6&<0I98N-d>w-8cx!@)?JyqmlVMCGqHRJQj^|1H_zNb4@kRs)F@M}G6@7RsX#ox% zGkl)NfEjb&`wbWU*vX(2mcD&oiZwXr4h>d{gV?|_b9Zlx=s5c342}fkn;O>JEcG4_ z*6^%Qd>lw?V7Sx;Db2o6CaPjvsyReSqnm6I;i!~({){D7!;9V!RpT8x0t}_*1_E-d zGn=U3qm~zW*kmv*aC5a<*>Y%jLSq@*+g??JIqSm zS$$^{kTywF)l6likLwhvWCX3msB2}l$dsx{)pqmKDJZDpufXVBF6o++>VUf3N9yEF zesMlI-@bNMmbXqseQbGb4|9#Wg&BZy6t;)#enQ-y)GQMlcW+lgeD)gAPzC+*n<(`4 zSfiigdEANfhP_11(({K_-e|-__)0!0aykA!!hw>U-m6G&7vJPVU}LyX8FXnd0$C;2 zLq&U#NuU=#4a9F|bm-v(HO_ldqUh~&{)B4IY|)T+@-b4p{BpX71tA6G-`>4el#uMC z08DFHVOVfpDYroX08%d@Ujt+%MnZA`>Vs!OY#@+6@?h_zlyxig9~2GYjqsv_Q%})F zAJN@R9=WkYd5+fkLsq&iKT4gvHC9=J{Y;cKaWzprKuT!f!-~ANteIMC+SYeyvSk2w z#DhLXd$Q(Qie|fK8Zc{?@Mck z$;g+;&}YZZiLiPBDSE1N_OHlnv;Lm*nKxgP;3JVE_9>klf9JB#G9F<7;6xJx$2HC0o-Ta&R zleXfon7=YDGY*bLCXGls zP;L2QfTu44@Rjtq;0SuY=3fVG0IDB$rR{zJ@2ju+0OwZ!SfdAe1_L0r!DoswF<360 zT!u?#)*^W|Gk6zj&)UnzH_Cshc>M=qL>t!(@3Yghi;+i=6FE05ot!mzlZPwuzwvb4VlSALD$k`aB5h~`X-r?-sBMx(Lp>uT)-r9gOjxgz}&wo&nB>-4p7rjr7UDOuk(mkiCEx@-s z~y}poud`)E;F^Hr#TVlM~FClExdFuYMs1m*>=Ax6)lhCxK2V+-Wg9-73kT}^g zfJ3TOVG|b%cUIm<+lgdfs`9#|{xecMZmRMesDIuh7{=@y#Uhtuxc?w#`CNzrJXQjz zr2^K~Lt-%wKuDxh^(ZkJtBX_OVV3T+goPX+_LHJ`F^CEiv>}{@ixaA$eoTZZ+3*Kn0oQARb^sT%@)22|tY7Z_cHAeqbF{ zY)5QVoD{UG07F+)OxH9mV$H<@Q>QAmh+CU=VRId-sn6^d+dPf>zPYruJG8$z;Isx+ z>usXR9;`vfgr|UoB0aWN$6-x1HRS(wZKD_e!`LLMckw$s&0}LG2e*!v;zwDCefZ!_ zFaX*qgx(dKBZw(1+!kXNFwqV#==IuNzaNueg>t? z;*_U8#MLQ2MB^Yj#CMW(3ypj9k{x-yZxKx}(i&~X`4_3>r7lu^KQfYOLqd~sp8_+n zE<`mNhuJ3_Ejnk^4PBtbaBoV0*~edK%mVAzKy2$rjqyA7uee)n-1u9bcfBEk0o4+w z{uxaG@#slEAS4uqFqjhq@(<;{!b<}zi1GE8>ol%!!mTUf0&PfXTzeO9h)qU+h=H$( zg9zFN*bRNiW{YPV7PrpN9qy=Ni$Qq`mc*i`4zVc8mWHOG9vRluWY|gC^YzBBOB!D8*GdE{{Pd0C#T35V@~(7# z33(<)wX!(o0tEq&k?9L37sUO&(yT|T?VCkSldPfuRs~lW{1^m+%ZMBTJ|vtx)8Q^P z?Qf?S<(QNrB%3SfiWeD}pUL^CX z0Z5MT+HIj-Qx-Gbs~`>)!;D?i{``sjh<|nZf$M&!mY_6JxTq;YI=)%`XA8A8;DI$Q zyx2^>4E1VVhEIH94fH5UMeRL&rasUAltYPXk-Dp}vuvRo60~HzHw%&k*u%MJmM~mk z5&`&T$E2~iT;U!ZP*WB63S?C%Z5yRBL8nz7$jUzd=>r=Zq&|CL;I>=fz}yIo-VQ#! z0^K=&6I|2hOOM>h!5vQtzSm?V z1rZi0M|K`jsvIdoYx`ro)EjwkILYW?6KY%TA|z$M_3;{XW;|OYlw^p`jRMb20y10u zeXS8nFBFOtlmd~M(mAD$?&oWOcufIpa;0)~Wngq=G@UUNQuieB9;TD%!u*K&!_O1> zh^bpXOlk)mBLWuKeW$Sfo_I%DZ}8|Mm&Bqi;VVeWXJ>F0H#Qu;Yr9I1(M$!bE{|fhcgRVu(gJo-=u6M5v%f(@)nn|HAHl+ z2!HaR--urrQ?DD3aIESy_rn4`^UyS6=#T>6SF`U*-W!LmTxN=1E@+2- zJ0+N$cHEfGvzMJAc1UQIVU{$(3@Ree<9_BBSwg+y65ah1FoTjo?+wP#c!fvrenX5f zg_ckN&EJ;7_6)7BBRJ<^5J)0`NL+BGcim5wKM(EX%IVZ3W~4uym2p}Y<6{3j8$A;4 zeSWG9PGWTadr0{$Yr&my$RuYv|Hu}2L~qscX0t%a{*@;2fsSVUl@pA*g1F) zP!SKoh08g3*ZFvOe}BkS`KTPIAJ{v{p9nzy$d8=p^z#1oo~UAlOI;uCzX$gEJ+P83 z3@|W~E2WXdGUEPQED{!&5bTvJ%>DHBkCbNFD48`ZY$U8KEMd<`-$>6y53nKde`%)v zQUfT+y-ZE{3S;VP{cA9iv5>WefuqTP7?S>HMD%})2woiAXSwqr^L=lk(`kDlKJp#a z1zcVnJnR1+R;6LCo4=3!4<8}Ra3gtBLkG*ca3T^A5E76WGd(@aI7fLyCdJ4&p>KsU z0u)RPy4wO&G;D1_aY7MpEMTa9!NFY!kATOR0^ERc|0ztY$KU-K zUm@;%EuOFS|J6$Q8(Q`sVg4;#)xYd){+_`oc_#QiMp#}E3qr;lNbv7rK?5L&C@3HS zn}vV{YF2fdm|z%oI4Mj}c0UOt!V1IaJpW(**y6-!^` zCC~H7@|P(9hl#l=S_1xp)Z6#)Eu+2sV@G2vrL}8Do`oihr)VQBl8Fw&!`9|Ax2j0n zFNARV;G2P8HKj}r@i})S%Gf{ z^7JL@5rhR!>oFHa=JH#nr@ONc&<-CrdGgK5m!NnR->l(gpEB?KUK=_CtTm>aO|DSs z2xIK3E1P0jIIozw*W;c*HNmh?=|&uHa#{+w)KzgmVfd!rhB^Tx&3vgh8)QBq!d|H2 z)K8(M4I=AJ6oIi9-@QLKd!mm5=k`es#di`}dniO!U(?PVqpSFrB*JCm*uC*m$l0<9 zDB)F4ae`np!0eX5lTfZ?#P>1 ziTi%8VoOP~{qf{k*qK?|VV8=7I`XguPoYwL}J5U)reG-7(rn@>JEVXwWsR z_=EEoL5-ncw)}atSOk8)L$1N3 z8{#lI$NtZ6)nAAElfjV9|7!=3eeD3j|J4roi{|%Vc7c+vOg|$k-|E?!rIWMIy8L(S#*7bK_uRBcb2h+tUZAHh7U3 z8gn_nSUXvks$3 zZQ~(eh8qgUFvVa6YF~r1%v`6DM4FmFrucB(-zux54&!Ttq)?8b%$B+G^VXOq?|y{a zwNH{2z7Rfcq?3=~X3iVDPsRlDqq}^!dg7R*C)d=>t)orc{O4XdL28?Gd=iaw)=dE+;%%NCMPg5`ZvalrpE{av63-}=P zZfn~T5KB%h%QDYM1`ZzOb8Mgoyiv{tbR8BE2SMolw?iZl{mS2!YSE|@-=pngXDH3D z|1rHBJiiTHztWrWKR@6qKMej-w=uB(_ot2`<#p+PK}5dwp`j)7ibtQSScod&(on*r zd{hEZhQaV_BHj6QBRe|g4=Hub7E_}zBHw}!is~o=CQdV@ADfY0My&>%oCphn7}RLu8y(L%UMS{B z6kAQN5l#$EP=jg`QV%g5k6%bbADHqAQpn0wl5Y zZVD^7;nnJnzQejhfK?`V6fnA4!G16OlNB8W7xDr4v0BQA`>77AM11hoUo7)pxN8Nj z{gK;=$JXA)&o?1;b)os706&?Fq3FM2Tu{uTsx$wtQI^Qg)O14kJwX0vrMvM7k%IFv zSmkT@1j}5~An7GmBBNYMFs>=1{1Wr#K`ms)Rq;ths?2e1OZPujDHP`Qqx~<(Y%ZdI z!Q|i{tJHra^zTJ#P!mc+XA$iW0xU149we!MQ0eLbWItkjY3cuA?VX}C3)g+mxMJJ3 z?WAJc))(7O#kOtRwr$%<#i+QF&f4qr>AhF?8GG!}>*BlmuI3oOIp_1v=MO|<@^reP8s-Cjmh({_fv&$0@{=|rz<5ZE z`4SNz-769iI2|~8>x>Pq%kb|9g~)T?QSlN_iwEZ1 z;KpyP273$lb7b2eYRh@!>>}meOf21S-T8du(%fjpR*%d$W5cOg-VPv~Q`NcVPU5fC1rUhbtl2ZDm0Q}-N^n*WS$7qB; z=@Y;5_i~{>k3~Q~Ni=G?@38e|`whF|134Umpneh^Br0N01}_A22ANPMl`Ev6WQwk2 zQfYH%FPNM+DaHs@2(h3}kR4eN3A0!|(vw&ZMM*Nl;io}}OVCWQQ@tHR#o#0t86|$wR z2%fHyXi`V9pka+<+~hW%3<4h5IJ7$i7zI6=E9bgc4NEe*zfWnz8lp2$w3QOEXtqi% z8M5UUm~g{Lb0FgC^*ESTXvccQC{=5c6^qlTA1h{4Rj6E_;kOXqZ5Kx+Mbu0gych&5 zl%yuz!_BbEShR{%4Pmj!Em)x)#IsDRTq*x&M9W}cT@1zx`+!%+Q$RcVV|7jkIKi5eIu$2?# z9nCg6WD}Pmso8k$8je#om!f_mmrBH1ekY#C+`s;cK07pL3t7R7NnLb@!jw{iB%Q1I{uL#ux0+^bL{GwY90vC8Kwt8&X?!vxWyHb{&a5lIJS z&46_}R7dExNew5jjk8g!oxvujETmI&&y^QwOCWHgQ7e`w=}>zjsX2fbP|I8@lt*n% zl`=L=MT}D?FES@no3~5Rm=_C~l{>dQW(|UI7}W|TQ)f$`R;q|DQ&%5^x8b=_I)6v? zoC_td#Ay@7N?Da_kTE=!sgPXw9I2J7xmNNb&7;*KKCMuxlqTe^R5~LqS1t)gL$j5) zC1#*?XcPlIRiGB3&uEih@X8P9Qa4X9u`5JM;aDU}*)$li*eISOcc>Ik)`{o4CexQD zQ(HJbRTGE78v!?%ca&)t<1?#lkki_f#z}PtprNOQExiTl5Rp<3k+#$ommfneCPwMH zZlok8&LMOCscZ_YF`-fZNA&m^b#hIK)!LCthgw@lj4KMdEWn!jdf10rSDvG+N&Lu_ zL8ZMV=S_8Tsv9 zw9Pi;qgKbNlQQo1?`6RR6>3Lx-HAycZ0FSB_WqlJY|$XWb%cEl+qK(Ama%y~WM!ro zH++2Ei@R5|NXvzx3PHmFT0 zzj__AlauQ=_0sGWYM#Ufbb^GupHmi(FJ<8_)IAFnZBm;we^3-f7=z;WW8mUMJg|#7 zGAm`9KG{bqFalHT&>_Ih_=_A?gT7svG^~VWFxeqoaObxjy^M#Wy=o+TtPlVFFh6Hr zTWZ!D$zEt{vux(N}X~HPS8ZeKfzT#~&qbDT2D#De!>`&X;gg zLfKVLxUXcfaP_`#ko5jsI`gT=x0QFtXe4tDat=3OiMs7jFsVe35D*eci+-C)t7iEl zrhy=S+0iNe7<#b(Foe#RC|yEA=Y2U6hAVot#WYTjBEPF@{N7>o-h++66>+Ez%`9!|~Dn)jA%k$gOD;Vk@hhrUkXRnp_N$?lQ=XiQvHTz4|=> zi+nh(vfS8|VaNI{;Qc8Rex7q0Ud2kBOzcg*KfY?cZ{#zD8jm68hA?OF&yHm_zcV>E zbFglgUo8Jd_h7r)qri!bTv}5(sP?H}z`S60^ID%Od}j;{J5@NJ$kQ{3I>`J%BPuR^ zVeKWh#~%%q8FQ2_9V;9uQQMRj*C+BeejqQh)#Dj$G~UfJ`RlzsqCu?7X?SNIK-UhY zoq+d=Ygn0T<{HN|Qxo8uDo03btY0sE=C%PzlB@ODOgFmSW(W7ShUF zqK>*7suCpcM*+KbEw`qtJjZ^0rX{5rAkl|H45(2`B-Y~StOD1#-PL+2byDQx9q2O* z7+>*!>iUr3_p3a01&)gC+W*$J_F@A-4WOyq!h@DJxbK|RD(q0VUUwq)tFT$U@}B2I!_ zCL0pm)LPEV9ZD%0zqPD%A_M2$zSF@L9VN~{R~HL}B4=e-n0*vb9;jC!zy1?FsR1mfsGS_Q9KWW9b{x^od|>+ z!A}S71Lg*YM#0c}rT*%z9vj#VJb`VU5PlNlIKU?-v{+qIB7a65FP_R+)%D=!0S%2u zcHp--aeoqXh&P1O3F!4WH13f4bZ|R1>M<1WFpDdVS-q-cf#)X7PJ|5<V4aZ8>L)BD~Jhy+iw*f@_ z=Llj78i1d<#fK<~W6uEiwinAXC3Se8^roz#C;R3>ZVSz#nAKvvq6`JR zP7)Uw!-YliK(>=d1am-!Gp{Ay?&)4*Q!$KIT&#&*XHt6&UY`($oxm5-RI_PKCa*G9 zRAioQR4$-vhi&7E;38*on+D=gNr&L3<;4f_op$(8mZ5>uQNx;3%w7>Y=ckXVnBoW# zZR?uJxn~43{s6M!niUi8yCiGV_;E)hbLhPJ!z8DyBTT4z}a3P> z)AJ9nGT-Txz}NeP6;R9`0o)7WJ>1!FXd9CdD|<~Iq7WXrP+Xcx&DgXGiADC4q(j00t#deCBSKbo@j%zh7xyDQbnjVT(oNn>0H*L`9nURk1K<^U6RlE)Um{4a^Gf0#e&ld^)Wm;ta zdkBKTQ_>o#Z&u zCTf?Lw+HSyd-N{m4`?Rf^48cJKp&k&&q~PB@aEC;JB9DqPQVt|jBey9AAz`$;Zv)d z!04$gbdu?RX6*{Qu?jl~3c-}KlsK&F3*1~S@ZmbU-65cS$qymeZwSdfFvIqZ(WiVV z4$d6>_05XCDaOJFuwZmB33C)mf zkgcScVH;mp{spaCf?%`$v?Lo#J~yi#<}#u~0Pxar?zNBsTgSWYN)4$O8v=IGzCwO6 zphiH$buBY>K0{jGAT$k71Rrd{(|0>AaxT`5djs~Hc!ZA&Q>HDj>0YPlzuC7LoOK7g zl=2&C#(Gl>vE7F3z~v{XfM3sb%!Yx@+8U$1IIv?V#JTK$8y=KDFDX^-V2^CcBGhcm z68K{=n(Ph7u50`g`TkaH>>}XVL97M$9%jHnHpWhx7-Ux40TG&mcgoCw!oWsCCSusx z=8FirNhQMn@r6tC7M!~k4MrRm{vx!({jvKFtk^nk_;7lRG-it&8ZFA0@Qq6&@89h{=c>280xCfpmU?3YO1 z_4AvhNX1{+r6x4Dm+-16+Gg+3s8;$)q@0R_N&CaPs}9|S=X`3C?cG_9p%qN#Wb2Ce z)jFmNkKPkCZdLe1k!h2yU7g0qA;p`eve4zJ39*a6wRi~K7^-#dCIYzgRT@q}_{vlm zqy!9p9Fd+nJ@Go$#=s?6<`t7bh-wGe-n8kC*A2`SA=~V`p{_-G*Tk#HY%;S0v`|n% z$VpXIlqq!0JfT{{*}+_m1`~;~|0IT-rn;He&}xbqLK%FeaBxYzp;X+=z)81K$}2>X zly3A!XT;UEuCU}1Zg*DR3vy#voVW3-7cfB&e~3EQMHJ}g$u*=xneeRmF;^3;7r1Lb zi`ILb>7WFI#e5RXf^+)-@bhmb3Ly;8YVeD?Y;x?=OR%Peh&TySIzx+V3OfWDaz%28T zm-R%q)9D@X{*>2LmT@h00~LGW|8{!esE6Y~END{P)baw221%Wp$Rf8#k@az@cHyuO z?K|f966MKQrRQtuY6?!BIh^qb(l*r>(QbEIC1Xup@08aU1AQ3k@<^P!){I=~g|Dv7 z8Ml4AP}V}*+0c?7tp2m*Azj(Z@w6$}F zFYL{(K?iwSiS!H5OiF2^v)2a>>QSG<)bL>g?;2E~x2A7_G_6HutRLSGbyTz5cA^QZG6U_S-$cn@+hcf=U zA=cadMId}Y@dxhfU&7gbf4`OfAyxPLma2>Yx9?_vjp28~ps^C*{}jLezdugT;>DQzfxMD0y7Mks>r_a!UzCKyTFJGCmUc~V9wg~PDDe3=n{CVXO{!|U|6U*!kZE$*xMsYwyLNqGxL z+sdDJi>8_rvAZ`%+3IwNT0EboX`m@&7-NZdf$+SA81JZ0`Jf|RO>ZXb+s zw5FQ!z>B_qdTR%WA#oX{nH2b!#7e*+JjeAnQU3oXqL}|V1QsXl+AT67j`psyOXDJkLJby$?i5TeM90dTRIlV8c+uXr{~hVruJLE@pe2%r{<@=0JZ&>v)!Gee z*z=GrzbW;JtRG1;B@1yPlp@`m$Vm2`*;pehdrF zS)oR8f1d_#XhCY7SLUC;xbVpN1$!QLgu;_0vt^LU zwzyP=;u-mFW*i^aa0sF0(4GThd*>3t>~hO9wAV8OmkqU%@+xUX^8IgXUM@;M&_Z z8s9+SL+>1UIYn&wG_n*jRP?e9Q(un>{p|bX>Jtpk(li|T7|H|YNsyY`5ZulY$M{X= z3*66o+Pczf6SLQUNtUPbS|+~#Mk?grgcQsF8!7E?qGxK#9>K3Gn|DviaAzS zXL&MtkzCkz{$HjK1W_U31K_(R$q&UaX;sppxHT!_+^a@`)5%x*T|e(v=)6ERG=NTZ z-$1jDPVE7N?M9ip;bBVjCj0fqH&NOMs^;vF!=@K-`AzAMWc|n%*aXNE@1f=1WCKxq z)-+^|(;DV+ z>!exmnU7rWPCk)?@2pqwe{aB$+^suTrWP880VSKFG(H}+Jjxx6??xjz&MrCv)mjeE4&a#I)v|A8=P|NVHvp@GNGmpse*g8lJOhScFl zK{EZe^yf%{66MY7UeHv_)oa6KfMauFjCPuIas&kgvRS}bvh5+(06FLLbUiEeHPr>` zs_}=1jT9eA(+n)qZ-3TTiC#6IbPrIZ(ed|cHxi`K5E$VslD}q?p1dbgbWUY7IH&^~DO;Am+JKIZAC`uGV*K?nkpP|J0M0da3H%LDz zhl;6@jU=qe;%A@Mb03bqQ*Q)%yus(h8Y7r%)C~5u=xfv+KsjuxRQ|!0Dvq1=7TJ_d z2sNvAkWt}lh{A^4TY^D2YcvAX@!vs}9%Mr?`wppbYaVnhY1uGr9$#kXKvF29bFl+K za{(CTL(@P7GTS1!#A_G^4uvlOppXkjB<(rscK15MS^v?<_50nIIA}|&ve$Ddy1-%m zmK33IHy{YbGJ*MK?>Tt0b8DYQ*-FvmoEw{DHy~m&b8t;Nh5p|0BJ=7{AdGe?#Uk;> ze$7>O5D@rY#^e60Bbx08!aQNqtY1i=#}Z_AZ(_Wu&u>ph$|R`2d>(`>bUb`E%=?)& z%*@g(;|-r_Ktflu8pyU^BxykuUmonIfKLFP(8cA?oirtRsA(4Apk=`f?;`!mo~bVX zu)`xC_3{4zOIkRq5Xf}Wi}yf_&Z&+@XZ{;3*#89pmxV=wP9gZ%4+=LJp`$y79jII2TD065iMI7Zj7eat4^ z1^r7OeNEY`q45Ldzk+oWOlW}g9op>nZGr!H3{`CZ3oI2IE0mvzzT~No84uQn(ic|x zOB#uhp2d5mNm5nN$>_!NmI8Y8Rt-e!JlE{OpO{~PLN-5teq6>Pn+b!}hsicf&dk8E z%uZeLPQ~Wx_W)}QTH<@?xP2SBql0;AX}Q}%$O`FrXl=PJ?Kem8aNKOF5KEl3ONLd2 zYQtDcCDIRaE( zX5Xoon3XOLlQ`t2AXd5GWrDXUlPj7@oOvua+D-?CJup}(*C|m}#Kc|q^A8UA@!QGzlyZG?PL36KOSKmJw(6@T&4?B4~oL#d6=HF}?57{X`PV&^+PK{%+RYYE*z z(+h@ZvF=J;%jowi%HHWw&y#lH_&*oUb#v3cKpFZap%$t%h5~X#;W_Sb%M=(*4zWz{ z()+6{=&T;bZXs}M@3D@u2_K+LdfdP&aEZL4wiL3B{(wD+qo|cR zY;7^x+Jk@(AF3rZ~D)^GBpb)i~lX1ELOdc`;Xc( z@RgO~rGmTw4iQ=#L*QCS=whiM35mAhGNyHU;m%^~%xvJn!drB<_>7mqmrXO~5f;Et z$fQfD#2J~HW1ihCuG7m}fn7f!%)v>>4F`${%(ta;Thza8rG|tNYFp~kN|F$T5=3}p zfl*o^OUzY=qs1^jJ}?YJf#b73yGS4yltCD%#Z=sX@98xnWAEcID#{p`IbS zc9~JAW3499FG%5*a4X5UE=$@w*~R#l=CRgx8h3VvA}cM&nfR^hjx05Bb_<>s?|#CB zQ!yC##D3L~6dgb`%Mh*dtsiwr?DQHd_=EA6>A1Avdje~9v`1ry^~q$GUW`b@K!mY+ zmJbAhHxs8bqy%Bjx7~*;g%|c^T)nT5AJ}*XtS7#KX`)2=mRXjteGkD2dZO~H{Q?RX zFEws%K75p$8*%kkWK=mySsom0^$zxso1C%ykW0@zZGkDeDu&+qqAdm=ue&YZFvRe0 zmh3|Bn53z;qp8^nEe!uDqy;y+z6Qmxnr6+$Knhx_VP9=N|0(Czbh0c_+gzM+-ON!M zO-4)M#EyVuav_St`v)eQkNKAgwv!R1!n`8KrqS@aJ#}vP2{grzT^46lS%Nl3Vm}TXmfuL{&vwHn4cdfC^%@`-@#Tx3`;^Y@Ad8v3ApQK`n3iX9 zj;&^y6W=22@#s3uWmlJ8DYQ;mT$-+k<4e9HkU-8g=yZ*nAx2cS3L!6g=L`3-NuZ{G zAh2EJ!?TJn^DT`jc0mdSt;)KS=1Cs*lR?spcxhAXimRlP;i&bjTcqG*vZfcAPV`li zA~U+MYzJd)$sMqG*VHp4yddk7-LYMt_3oaX)YzKBZL!3eov93L#zpk&)Nk214Z3ht zENmfn4z%)imdMyGy6QMhs(Z0n)Tp);6;H5sRhHUrd=9Y+e@2yS^RHW(O4`DRudj4$ zCFd|apy_)IC{4yB=uIas{WfT9F|Oo-5b)VIN1_?$1)Nc~2}p+6O20H*t~6!uziO5@ ziF#^SiiYn^&XtDeaN6NMS1%H0N{L6#DJuQuc#OjVj7}NNdb;5caN<}nZ1SXw`;YSJSonZ6(n0_IAmqZC^Au%zJwrcEY3?=yA zaHibN^^wG&RXIlOXZRD3VxzEMi_iN;iW>wYgmvI zWs63j_e?vZE??YRKjhCD1F4!Lob&Y|vWr-@^`*Lw zWnSeDtbOtZ=NcxQWa7**u?IH>#XNU7N1XLO6I}st4njpwIg53k7eTlV-IEl!g1Q zVe>O6si=Oo=hgci&;#BJ!hfC4$~RB`&U`ERipYR~MF0Qa+y9)+rZs+eXD%as<~wc}xjpZ^=Xn2#7YD8?68o{^ z?*`o^y|)c=gXCV@_YSthU|-s&3qpX{ro9&k(hc$s&QE%4=pPH|t+IztQPT$uPT({U z9LrqducL^Vnlhj`04L=DBL9$xk zKyc5{p9Ca!>?|*Ufm1Pt!E{g2d%VAS6byg1@4Fj1|E&TA-&;0A7>hH4BI|`aCuxHN z)mwR_hs<~vec@(oVAo~O>!k-ppbr7LXdwFY_Bvw5zKx|!-QLBGQ)T`n@;BNaJ|aI_M0izX+-d)rIEEFJ zd8nt9?(H{I{a>fMOxsJ%g;1_KyOd*XV$MDVRbpA+2e;ou^KX|=K(2uIcb8BO!P6SdsQagqyQXZZ zH4h3_e+;VQSgBl7$|Wbnt>Zqty4l>jw7zTvbOiJ|s$lLsbD*p@e{|)$sQ-Bh@L$s# z&~2nVYl`6j6^-eQaqN!K;{*NPzjT3r)_RR%WtH8+k$vDe1!72%s)cT367SeowbS5+ zFGCQ2;>(fd%MEPTR)U))7~dy4+TCB-ERIUr9%W%bwhJBqxmw92hD%@@+y*Os46o1N zh76Tc?Pu~*XjdGe3FuKU6J^Ow&YzjUE3aS$-EI^KjDJw?-$nZfL?CUMEy_}#rZ5QP|lMkB)qlr#{mB%xz+bi1=B-!7d6n>OY5ry8O4GG zA&n!CqX+FoBvr{(7%=r|jYTl}LidTqH>9vUL|HkFWeYL#EaE9(q36oeV?!DzZ$l zScp4uP`G$Fsdx_gTOr7-XwQ|;dF-M}U0{^FrBa|om0YeOhX$Qpya26LK1ZFbhN4|h z4DK5aMy2!0?o#2Ey1=Fy)f_U%fPa$}$IGVQH~Y}+2H z2V#YscmB;ixR7HrA5vt%xe{aVkdky!Py=c~*v(dziW4KQbaYR-P3d)PI@76~KmThF z4KI>|w0r6d1tQyoQ*lSSzI02<%Cw8@9~}$Z^@TH=y~4bW&Kv?YS?%vU`0j9vq>zr3 zY3&Sl7DX2)C*#1>@Ge<8nWlOuu7TASrg`)xp`Z8+z zM>R#uR$Ha!@1g_P$ddMHl&YTVYeE6NRJ3U3EG*UJVU$kyfU16rE)y{+>_$uXzz?Kt zj72zk>}2dM=sF)KmLu)_Im!nA4=%38N!G*K0V6ie2h;NFP4m z5^@bxXkdrkkn}`ki8qdnEgMFt`umE)UIqR(BwP3PRFrbZ)OhfM#DeTlg#6Gn7J+2e zn)B-h5@4L%DHZP!l<}OkJ>jRb9MLr2wkN6S&^Q^(-Fx~v9Sh>`y*NPdR9qFc)N4ND zGC2coj->^C>F(%$S4>p!ROKWAZmO-i%cVzUe}X&1rp5KO4>49Vs(^Y zYi0k6v3NA(2#i>@{xH(r&q-^g7^|K97!PR)*_h@XOvUyMZA46+_DqVYw--xgpeA4? zrHY!QzFUi{N*HX=qs`Ui0rBii&$9NmJIc#-QI4%-rcGO-3kkNI`)@sO9)Dr=wA4LPI(jd%*5i~zl!{%<==Bn9d ztHHxuoJq7pE!@D;xfY7^a&@vnqLnyxjOi?L1}bg;v2W>uU~ny*_6&3sizu{4D%T6g zUN&{Sp5QyBZ|tCX%_4DIKvd?90<8AHz@nEjJbCYqm9hXBha&hDscHUKW3N61as!^Y zlXPC^tUg|xC|0-eo|_B&2cv$YWc3+P18b%Dyfyy&Pg-Ukk2L`Dy*&g1m5kA964B+{ zrSMt>)xhfh3U2XV&h5jcEa5UEq9w1mNzrva`wU{Ll)$>8+VQd7SZno>Pm@eDOS$Qt zSZ{TR&9kVUpq)olVOyOWvjflGzFu1V&2fNh*Hn0F`<)|j>SjCb(Y+3R>acVR#=5MR zB5-PD+m_iz%#&k#^dvPsfad+R^x;NsvBufXm*IZPNVwjh8~_ygHo^+?rctkmdTva$ z02iTW(m;YMv=20M$zmBn!uNVB!}*><2VC1%Nvny>R^Pa0cfSGoEz_&z~1gIYKNp1EAp!5<8uzu5B+IT@V$D z+zP?-MRIP2*-VJw42n+Y?OMsSvGebH|P^` zPR4Zvh}T8zIY1Bd1{#F{R416KE`oz~WZ{=f^Tdq?}ab6r$)Yo!0O1RE@JJ$Lgc9M~EoL(Ebzc zr6LKLhFLoKNi|C27L{zH=8Z{2G=?cU4XaLMJl}sze0!cYZGdqoB>+at=g+=a)GXk^0gd={m2Z8#5g__XoSe|9_EJ!27BIapc8!`(H^5018|Hu6Tn42uan(ik+;YZ<#}J{$AQu9=Tq zj{LN?#QUW_P)=pX0-DJ7=g=s&TPDj%8au|wgP1yz-NKZ>#oYBt`4p*1gOMGvG5(2q zLPPHI$Hk_v|H)SUkB=ev=YGm* z-v_0I?;q=bdtfp*G_iC0P9(E1G_wAGoXG!oC3&@!CDJ7duRATo-vIaTq;IgBP1Yhh zCMwza-v7w!leq(*VFYEFoOyrn23{jVNrNg1I_{^s5I&reL};!BI|+)u=dkGFP@7D- z!ByFH4zw1&@pR&*tUABvHZJDCUFnI4{D#Xa#{c2I}1GJi~WyrePhhN}&?LI$C2 zPm_7v-{tVT>7rT>?SXC}4dHgiX>N>&ZcKka-=1|>J$jaS64Z9*io4ZEAk-}(geZg} zI5@dM5{!tWdaLx0qTwRlZW@Q6t<%<(^BBgAipe^$7LUSPDrY2*VWPNR=80aQ)PFM3 zS?uuU0bp%Ni?yqV+6N_Yo{~Z6{v_A4!$P|AOcl{1E-bd>oXe-7u!bkcFG|yTv1}ye z)HfxO07QGM$!vemlRq_>faj{*QcWNQXB++Ie6{e;^Bt>$q4rh|0jzd30HR7psaQc;QzPl#o0HyN zS&@{MH|%`}`1z`%FGS2mrPvipKqVW^@3sM#nmR*~vn;cvz~H(0poM#lAc%9+BF3Ui z@#x~ar=-{Y-N@BzMD=(M_&zy(R{}& zvwY#kZTkHV;i0#x;El)>amk$FUT9efWBZ2TR(0A3Rxcex9JgTsc2eFjyXb359&=

    }_>PA)MQgZU7)}()9>~TH<`oYKm5=ij=B1%~XjmnB)*PaFG-W zO_w@{+GJdG&Q)=(0b{2}sSWDC-o~@p9t5@V8T5K{z5cx+ZtKi2M7B&P&!@iKSEfh% zh4Xt-MX)ssnlfbBhJ1}Dfl0&-a(t~2kd=VTSXHTf0%=FxbeW+doiH0sDviBZrS}){ z&SO!owL{{3t;6ex5IpM461I}B_(HP5d)1@^aj-aZA$yRhsh5jdlK_XjxRM*7$M#RUmL#HS!keEiBs5i{1zwJf6W& zj#)%heLR|GExJQ&&%t@wA&1{y!&1*-PjclJrfYXy^_+-`;cy%`yA z9OGh(X;C$}RD>d?qnvYTj)Wqh1m$Y>?C=D2{8?*+u0y%w9M`>x^y-!N86u3f_R~&B z5C6rq?#$JpOOF`U8MKmzhs=zbCfmGhox0+Xe%_O;4$3yE^}ho%XbpX z!rxVP3%l$G$n=Ln)K2XU(Z(yI-&J>M>6QL2Z4IipiK=QD&7^ib{TsVU(=CNiB?}Gv5yq}P@U%le^Ks(&x7{abUNS1+KH+o3)=+5EAD{d zF3U8b@$)MSN>N4-LyyO9QhTG~K-|ahg57hd(m53-P}7$(%+oiN^BT6y?2a67I5>HThQ@r|Za7@-3%r>lX&!EZ14S9T<3# zj`RwnlF)Z0%xHJ8IR_8*K~F$3X;pLo75S zp?%u`gDU79p}+qCGGBxzTiP(7%N{ya{xp}48Y+c#>L@pDTtFjW()HzmGwN4hfZXZg zzCr#h9wRaKiF@x~k0q+J(pkT{a3LKy?mE!mpjCxFzNPoVXbMHuA*tAh$z%d#jy#+X zo&`cr3mb-!U%!Ep{h7R@I9rVbO1ghiL%!cZ`Q3i~*N?<=21|C@-wUAq?`c5ne>w?> z8#ze*`IPI)ryr&}%6`2#1O zj$J?8mdbC8-y5mFon=PbVrnrn2I<7fonQx@QhF2VUVQtT8#j&AC1~s;3|+Moy3=&m zkuyITE{N?#cAAelx3lbdDY}Lk6D%)(_i+cZAKPuf&g+VE69rZs8u`yv`mZ&EQf=KS z*Y&3yz5>p;5F>_ylNB@sW+M+Oh)ax>M)C0US$_G?dgkECv|E zIs_jgb0@PF8)qEicvl*S9P&&#ZVmI{IpIEN5a!@UY7kH0J}>Vxo4QolR~bbck7{MMi5xz7PX#@P2d{XAA?S!a1B4YzbI9bDM!s?O&K z>u}5ti(A___tO`R_5!*#u3BUH7okKu1WLJE?ChY3YTU;Vu4Z`TPq(8iJ1VM0iE&I= zL(P_?@p;_nj%BeQYIIpcc)NwuE;ck%GXhS+X5y&fW-!B@m+yvTKgX35b(M{=gY?>o zHg;0`a^7-_sWEcrfv#$0?~Hsi84qu?R0PTf=%9X!b_~aQ3D18DNUl0^InNg^{)|PG zCS8&trV1cuD==rzC~`?y5$TM_|G<+y2NikB_k~rzGempf*tRJ7D|&*sQ9JkaLptnQ z_31$(oXn3Ek)JDHnyJx4$Yt(yF>&t;(h(rTpw2@J2B23FRpxAe0#ss~s~}ahT}G zw2=)oysI2t9bFJRx08j>3&a!CowYf$+mUU5o7f}57(MkWGW4pT7_Zk-QD;q9_>EQS=xx|CjC0r5mAYM>Q8CeK2 ze_s{0Niwq})Em>Ewmd%U9k^>_i%f2yK}pHb2R(& z@6Bv4aMZw+Ai=dHBT2sxlqs1zVSg4Fg0h4$f3V#hWiU7`wT4ta$|P0Q9uIgWm9ud> ziboZdhI(E8o)@?P{L}b=Eo7t1tvm=Eq~>T-BIjD&r5cnxm11IeJ6q~tt-n{mCYJXhO9|Wha{8eA!+tP zr^v`sg9sYP|cRb?>cY*+r>YY$Z_A=l2amnvI1V%L-2*GOUvGqnRv7NNuGK)-7P! zmz{*1T8rA(Q>H~*Lln;2R6I{nrEr#ImvU#X8XYuN@*)`G6q$m4qOFpR83_)bwpAPu z^Q$`Of#AubeN-J_`6~9QS`QesZASc&8Tv#02OSj>O`8#`L~G%B2Cc?Ge3+g#q+bnH zvDQc1a59r8DF+r*+!B(-Jb3aR$8!7%37jnC^W<6=oPE&z!Y5=0NK}itJcpiI6Dq1&0BFk0-d$}m{$I3mp%K|>$u?D$w(Mk)BCxqxC z-H%0dkK7rttvdDCS-ub}S#rF=HK?u;G|!pRb6sC}XhTaT)*iuKU?y*|$6@X_==r56 z^Q@HU-@p8#&3~)>XcA*>t_6LAm=}g~{$YqW$cmq@7-QdgWL_Khf3fzKL2+nZ)^KoZ z+&yTZaS!h9?(XgmAxIi`cXxM!1$POW;O_1a?Co3gJm1XRn)jQkTW=LzMHT$%bM{$h zowfH~d)}b15V9DAv3!TP+}w+}+(d}YeCDSM+B0pFRs!k?K|1$g zF3UEdzI~e-Ch<7mIfUsIP*j7EQl>%y23yoc>#ks1WF!VmQh`6l8G4|MMf^xa~M z3Uq~BcQh$(uf%VQ(YzrVN`|e7I-?|_Z?`DDAeWF2Tq*f|QXxVb^kg9>vruP=CsqIP zfbsZsz{Q7aEB5F!FG7IGBL>M1tN4lROW2nT-J4%QBqu9EJ?E@qUfR*s&3nLhoi8c=oRuNDh_Lf$(n2kDI21eJ4$ zZ7iF>O_)#&0&*~6C$-f||HLnvs?_j25ziEE zxeuClL=9yOUcB<>vh()9`i|b;Sc7>=*!A(yyN0C>^>hT`x&JqwSd##|*ZR#9xyHuuYNJ#}CaR*$ zT)ZlsR80Jwvj+ej3hnrOW2D3F>zB@{IxiG|$qfsosxQ;6JIYcvAq0l;gfXcWUFkA5 z&xNlN62d1XAn$cXb7c1_nYQ6ecFbZB)#@*$UKbk+<#{EMc;oXb4^Zb0jDWsteu?6m z?afY)yGg}D;X8WYrB{1{G-2jJ*RD2;#SO$OVsv-H&nl$3hHYI~}aGD}DRlmK0k2L0_tF(QP8VVRJ3_1}7G5!kQ;B*6Ui20ST%=N|^tzw{|}UB$mj_dpK3_S$igFcq8F#Z3$9 zN@@-`Hi0%^{}Bm4X4|EtZwp8Hwpua|q1ydV5W9)AWI2xg$+Q1_wV72*%Sd`20Rr27=YeMDjPgSpi2 zb2Nk?Wfpp4qd-=F9KM@5{Az*!?!245&#ys9`k+GFVXWnv)1zTHWMWdAIN%VX| zdj$|?VT2BUcsBY4?P+P_b*j{5KO%u^(oa|wdVWgVXGS^2PKOCd-t(xFF;Y{WBD{WY zCf$tF{sV@Zb-K>s5TzU;`~S+dR58VO894Pl(MI)6Re_)46iH47t2?fPb(32^5oNM5_SGW|dG$4l5Qcjfrp_e2Uh12h9X3XdYJ zXdf<-J z)%b_aSsuz?wq6B-6aDeHn_GuSUb(4j4~h1nO)&V3F;GNs+$az%`?1OuZu9MQr>Njw z!5u#{%x-JeH{^LiiHMO>y}~W|OJQ1?E<&dcSUw2Fo>%zZJgm!GYp10kh z)sFtB)+($i?ij)<|q7O(=x@eGO zK=mLT+OKH5mL{;Fy(H1d7`1&!b;kX$6^v-MBo*6o0|mup;2F2EOdA)jF=wTQf}|hl zO?kv%D99vc;4jI<@J%5EU>}K$vho`$np|uF2CnB{dpFpLN0o52Qw&%qI9p9!hcHbO z)UIpV&^V{m_r1OpG;M9b8>I7^lr?9CDSC>vd|IYGBAh&f+%Nx$@V7d^@{4Pr177(#zUQepJg(CuS#e*M3l(P-JLOkK#OFYX$g^y*+ zRKtZ*2UNiMR1<^`D8h?IE0 zeV_f+U#mA~!v{9U^;5lG(tzllUo6*U12M}C#x4X zfs$`*d(CNf-g-QXLq?RRG+X%mzvB6pQNtQvx%PgUnZ+bG!SZ1(W(ooHGbK&-PF*xo z@evuUeSvPpjf@5Q9P{-?Cg>0De9X!cgJK*Y9RRLThF6#*z;i0Xew!Q-a5v{&7&ql# zd4M8rYZL&ARkYl%`66`t zsKuTf1-aLCInN79JxIHF!eV}B(l9(jkk&bA`IEVZ0%e;xkmIQv{R{AYU!rv5+^z-B zO;YSNoC$-arCv;h<8bY|$R=7K1M5{jof6-x0k3#+2+ zA2P&Z6F2xmwbcMr{#OX=Gny+}41%BCrYY9bTJ^%hC5k~4N^xp_`qlp8_jrGl6D0eo z`mh*x5YMa&CQWjx_`dI9NSyzz+l|i51ILpn*_4>JQ!VRa z7Cy26`*-hd|MwRdA-HPbXKE=o#c@* zUa57~h!dp&0_Gl&t}mV}0Ox*Q$bpz>q>MRJhjLgVokOLTt~vr4^c;P(H(3gB;3Ad+ zHH=J@iRCu49S<hf&5bYRvC!Kc(MU(nUd7OZj=mP|7sm92hH8@v zoI9=F&D7;kLxT3^`u=Fu=~*u4FP^h}?F}eup6Cc?mLLFaK1>BvZ`M|`RVid<8EdGX zp?*7xpfq+OxX1nVPB_HbVMtRzXG2a$*GLyzC&%Ot@+l932_&ZMvJGvC<-VSpJL8kN zg)pdmC8@eYFZQg9T-uUP!{%XV{QU-ffXv6U`fKxCw{2=PjbF3{(sJFqCrDl;Cz~df zdZx1aUNcEB&xIA`e3NJi0|()Q9&j7dVVPWNXc+p--yA73)KEskz!%H|xXb7t!Op+> z)vDEe73Y+&-q% z0Hi$uFA_tpp$&M#*<{w!+&`WlvxmDL{GRTQ(0br8lyA3XpwHR}$WAi8`eW1}{bU+I zCUcN*MvBmK=M`BbhIkI)_-L%u#}5ip@f!9oOj&5f>R(c;h*52pGuPjk;qTwm?QS@q zc}!8+#8%bSWkcRjwO?DlYb!M)5`Fk?T4_G*=`Nb4U24J#tuYIbeV5Un)vrlqXdK`- z*vEPBjOBk37(~nAq<3%)NXa*MDjPtPTg-03_FMb?(NVlU*rxYq{t{@Q!= z0?4Q-r|L3@=+R_$n-;SR*U_dyiWT;I*Di%x^zva!U;Yo z(>&!eYHN?wlSBJ{DiKzcx4oIcWC|Ij+H7iS4NKIPI#rDgklt9FOw`(EE&h7_lfhoG zB66^}Gezfh3tY9hzfh$yf1R}MN6qyK){x!5p|m@?2CRGpR2yT)&@5QVWd6cw>eQJ( zWXz&+tx94nI+#s&bM|&uV6dVEjlT00YYDoSq8wWXYPEVPemGLdKQaz+hQO6JB)`RG zFoVd1GYZWuBt`#?X*ezr)Vt~nZMa|@W@HN`11*Y-M@_S^1wrnfaG3Krbtd{IEm9Y~ zi9QM!f|ifg{xia1MpznEX%6obKLj@IERxm`;jE)_Kdd!q9Lqv*_ZP<5_#04W7zc6y z9(qRfn(?(O$*4o9o_PrsO%Xnp-z($r4duUIs-!H;5~yGltOkFS{t1N=HUYOU8JoJv zJGxmrI*2=XSi3kn{54|lUsAkM?_Z|6{)r{g<;sLt+scrcH*;a$@y(BorhC*#GwMmzNzyLc_h%)Zc=a^}g z*xh>nD?}gb$2c_OY1|!s*I$y70yfM-LH*2cf8(!HBUj^Z(2GSF6a&Lb0IvAN^`~f3-Rjza;mv>Jo!i)I}`Ds&6vD=^VCSF0o5YFhhEy z<3}KYu6?6n(e2W*D>gzIo#^Cpv`FX-=qYH(GBA6;cemt%K}U}(PWG3&k{kf3B#XZZ(0_0JlPOvSz-V&VLq0R$Ts z*==^?6wf^oD=JGpogkU6nQ1jE8*vc|2T@2t4AW7&3jO5;;QEVioCaRr*NRYzpxz+| z3YOiqnXuu-CMsEyC}vCI>Zm6Ile{XWYsnvx&C34?{LMD~3(6 zTt-hm9t*fDDgCrA=R4+fa1UxU?OnT_V-MPV0pM}!81Q_jpLKB7JxN9rMs_f6QX$Q8 zd7U&Cmbjr~_IR&8BnQ3!t&>@47};eJykF~JdCC5t?3b9irMZK-i?N%zoTI7nUkB#j z#|Qi?<$wP5Ki(<-{-1vd2x{_muy0m zgY`srAzYK$AGxplDG?}+PzUON_DUhE2IO%I+K@a(kD!`<^wAuqaEJf&xIRc1N%BxY6>_~GT}QI)tW z+U|P*Gu;cLy^Z&;^U7y!p{=Dvd`f6O1`7`PZEe0?g0^68R{ZbAnO{)SVU@1yCaix{O zimHH@&c#I>!fUq>SJo<+(62W-Sp`o>>pE{UuNl{bwO=Q<9omhdAOgi?JnQ9ubbD|_ z6ZLX%ckn*z?^B`fV*Qb%ekpUF?IOc;=s~O9bXGu{K$CLREs+rA%#qqvV!hve z7Kh7|s6RYA1kV!QJT<0)8JZd}?(_+tVEeTa@D`Pg3t$l6n)+R1n`-l&?dpwiWIf+i zb%Qnbj;>W5cy)~;x;vpjX7I`MsnB?7lzxHd%eMlBz5EJtNp*%u5rsCu_Ir`QT;pX;~U%xy2KNRJ$#@?{1D!1V6;`^Tl9Z7)T@U+!C<>*LibN}^<_KIdmH)YfjH zIM`Yx7Z4Mx+|uS9m(;H4BJ&?EUMfX+$kBKe8e^yul&}mcb+W&FbBkQC)V#M~W0^4c z&i2V@d1@`YeZR{DulvQ^SW2HWZ0iQQW{(y{k5I_qx*JKDQg`D!NLr9HTbHc>7I=;I z%%m1D{ZnU~*YWAT-U@DwouZFj#_urcHosM2lu9SlDz;5*zDrhz&U(NU8pDqCO`k|0 zyX|19ut}yP0JTb`nPqhtYWmMtP@G}`QJymc%Vo5Y6wNcd1|KDP+5usq`X33{?!qIa zB>qPr2~9sm0B)OjfD5yJ?UW=a&w7Uvn z(FJYPn9LIupCLqS=jqPq{F*gePVT66h&LdP-#(JZQG8FYP??eVQ~i}_Irxyg>z6DV z^=q-=>)))DlGg-0|0>-dFZNh(7-#xW?2gKnkOQ-s2OKG2<=)IFii+i+y;- z%w+X>g}O0a;|4Kn!l5se;tG@oPmTMtea086MpHn7qN;TJlmA{5&?2i>!QeA9C}D1c(~P!Hw+%}=#&TYtXJpdcEZaG|=W8=%Bto9* zX9a}XgfzRvx`RJRf2-Ue`Y7J&Ov|54sYh{C`nTFrL+GO9gk~Ux#pd$)wCSBixsLqsK7_`r3D6O~Z^Yn+=;c20q{U9U8e|v+6sAq3w~gDzT=oO}2I%_*qUrajx)!{Vql}rLh?N`Ie z0*mZafUuN&c;7(zcs@>=F>cuX4bx?9rP~mqW~(mrEWJPDq!?LgxILH54q4jl=j|9L zV18}(xn!GE>+G%bh@PN}WqJ~U1&7rK`P}>@E#}n<1CO-^`(x}k&@;%g8gWgxo=B4^ zF1UV|MHVQqRp~RM!+9V>HHY@r)PLr_as78AvHi~wv3fV_C+sgv>z4Ynid6S3fv z+o!4E%m`&z<|v}nsrTOmB(jV)R-zrC$V2rjDN!6VXR-dzB(`Zil%gBb&Q^zFtsvT4 zo3x=QP*xMiIJ3H=Q^E>S|7rS}9Meli?+%Z(bQ%?VJ+Q#Us_E_b33V6Io#3<)ehv| z`)hkW?JCX;1@Gs8W;dy@12Xf`({ydbv|>fum@WTT<@o?WqzviWd3Bs39vLkshAo`` zXpS^{bNEk7?ph%r?V)r`T*dhS)iPyjEqay8J9%>;sM8J+N>>T5K}K&$By9_d)dkD= z5ru|g%nPlP2e%RSvT$ewU9ayQ zoP=}qCfc86p=@w8gsZNhwvt;qS>&Vo?(PmhUt>{%ZnJ(1K~F9N$|Xx^AZUAG#mDyg$7m^{7@^ zl5Mv{@wUF!ms0mTse8t0LU zId6D8UO0FiveH{VzT*`k+se+NO9O5@g4m z48)WCemfY69DC2JVcFF!F?UFpcm45dE!!GJ3|qcBn|T3<+`4>6qrlflDB?iUXB)Zyk6T5NHo%;&6YNXrHx-(sF%Yz2#SksenL>I5y1Bp@pP|7Ji z$(5Wx?&y`ImI?6NXL7*Yyg=e$tJPC)vGk8y*VEB#g$J2eMNQIQBO;ElP3YHz zk)1sn3k@=rC5PKQp!g((@w8q2$iT~yzvuBrZmx`ZYKYS@4bI6Faa6OSckTM{1o`lU zy-urx9zO_K6C9IRAb#yPB3f4~r7!fDFrW?mVjV?GmYnAz9=6~pWhg`xsM5&jAF>5rx_3&C)x_CT>tpbafaNQ6=EbB2ScOaj9a%`Mzx02X}^T)nnMMZEUOML{VAJV%uUYPr+2 zk$z_7ko>}4r*5Y}ZufTqcrSKin)e7b4Csd-CZ z+&_X`BEbHsJS?-G$Fxw7u=6)ZkwZ`&k}7z+cEC6x`%f@J#n|)zLT<8EdKDm9u(J9P zAuHj@Be*b8=|~o>ZXwCYLV{uWrM9~mVPsPnmvEv2io=Hnf=M?e@i!{qgiHpg&pM|v zr))DH?%%EvH_=wCwX|f(V)QUhq_OZ>MWW5|$^w-@WGlxvES{1Qe;jnv5Jf8(d?PZI zY4Bo78W&P<0jmaRw|-j^_-Ef-tX3~2Dtfx$c?wi0LdDd9);0id%OU@Zh+dnxn5}`Q zP*1n+P3H~5r`53iT~U{*_1IFPX_o+?3B@-CLRl$FWfQ9@!P#E}sB0~!VHT})e1#_w z&z?HRYqDQ_N$~K?%8_vP=kCi@$n75WZ1eG_aB4JuEK=|0r0?kep~CennC8=JBJwCp zr9WnnNbC+{mR1IgvzL3vQBR<$QbwVdj87Zwy?z=XL5pT;mS4uM`eN(a^n6PvNbVs> zHjdFHtems`xf%v&gzlhI{x`>n$a8@pZ!orpA^k%w^55-H>aONu=B9SWV4(%9tH>KW z{p-+aoTw72W4-HRxFnie%XuC;aKZ&r2> z;lD$_Lw4(w7U!|W|j}8LM|5orhYEc)LR|{51#& zpe-9vf&sAnSUVFCt86sW@(@8h1y0V0@`$W~%)R&l#Py}nv#kASa!(~U*bKa9h^hHU%(UV* zd%a`QigS*bakTd9SXitvw1^0BXZl*~Ro}kkXJ(jcr3VGW+J~w!14txAt#PoC+sd~g za}K-|2N@egxc3B5sI5maR<)|Hl90E zB<8Cq)qSEdrs{*lRnAqFk65|Rel^=je&ySY-6myBd*(5<_%)=+b6RLnk&$KzE4J4A z?Y33OZM7&%>>TrOiXQagd=74P?Mdbr`e~A@Q z_UrJqVSSsBT**^0dA?Z9ZybL=YV83mjzJ7h5Qpa|oD!ieZN>Eq>w=a0`=g$ZpN$tK zKl?8(=2c!cR)O9teV_JYjnrsNo z4HxHl0pTiR`P-yl9(J{RA;9GE_{Q%c)4 zl6w)1IsERT@7DGEPvxAl)xWPlalpJ4@O(TUFZP`buwzu%Z^npOJ5mqzSWiqw$FDgx zNKxAoufgNcLpYsZ#|9xn*87%o4#ha*o+5lT3=g!65py59?{Ik^3w(0`rgO~|Mb#Mg zCl8U_Y!@+eonO%0WYA%75#_He29d2v+D{bBI_Q6h>$#rngEkGg$Fg?2QLyB>2vPLt_%4AO?&|HNY zT`j`Vbih4P;1<$O-+T}jJAC%{LxRY7iMZCidZu~C&kx-+O|Y|H5oxo>jJKx&9MP?m z89k!2iIo9<6td#mMZ$791GPyQe#FkLeD03}h>Lm;wH5hIRZzxW%V)`hq#c+EQc5dY zl`(rJqlW_=_}1GFbbrb1h(o^%BMr+E)l0fi@+jOITD@lqu{0GhpyrdIHnzAUHS3lo zHt4oq>ET=RJ*bjgt-RUth@oz9UEz?`6r^5#oQjupG=fCrj~{1=W){f12+e2SKT@v_ zC4c{$>W>4=%;W)IPr~4YqQ*bDqW-dkGqJX_cJux>xA-s5x_?_kSF72B>&?)>>)MJVu;Ht zQAsp#VRQAJp5WtU>k$0%HrGUG>y5RTvn{ULRM~OoO&_5StCG)9 zo!p*88qe-8ez9*ntQ0VFtxrhfS1Ec{?L|IhR_*(6qjxzmU)9vRWrO1qj-L#i+7oXb zDZ`*1_&|DFAz9PGB{vo8CCj%aSa6QmqE7*p3S4qQ4kRB_CNtuprRMxHuzfx`BLGrI zGx9IcXVbU0(Y5N`LbR@sBv6b=Ky)M7kffN*3O+S%QI8PR($QZ;9FFiz;nHZnNL1Zo zYXB}#d}B1FhtS81N9-#sOP!JN8%k&m2_Be*J25_cgR>wGd{2KPR7c#02e9C1^#Wha zF8}YN^*>`-1UymM?0?ke)MWoke7r4sm>%=k)7H*XGsJ$dc46KQfyNR!B2z(<5>Gy~ zKeOwnjv@9=mH7_Ncp#$aeRukRpazW*ME3)M%tHPv4zQ@Ac`x06;$hO%^7ZaHRPjSi z-f{ld#KJn~u|aE8swDo5iSKEi&MC%zvOxSXt>a#xratVV8I4|Q_rEbo(*Zd6`w4Jf9?3w&PddXa(rB|Nf>(6ggS81_vRFse< z$P4WVXK}f;l@&{Y=kA*451r4#V$$BW@@%`5*UBT#^G zvtZOX%6Jx3iFN)6G}xG1TZk$LCubp!|m5I8YZmg2)(4TW&awyw0qa zvLa5QB>6FC!~IT$ubqE^i37)(*I>`tDdgNN&9w=0U%&^`O8P7+u?VHeOx#ytUp zOJ;c=*!@&i`R_h|7sObmtqZll2ApX)|1eSVpKa=d3-b1F(g!Oe9CZE;^OW&Q z#ijCU#l7ei#UQyiL0Uf8k3ovqxLAmCfxi1OpKbqVCCy(qNIyS z@OuqaEXLM0(UyWLe+@wTF+xcD*TgazN4yGPMewO8{rPJ~ zjW!%Kb)}|NqWVc^4&v!Kh7)McAGo#=k{|;p#gd&|J9@m_%rl8XTx~Ea4xqJ2q@2brIVkeL(ds_2bt3SVzD z3-2pJ9O0)T-=BT}N|NW6MImU6^@db`)9qveax5-C#IQW3L|KHG6NyAd^@ojw6^iz; zv35saDAA9At$jzmaHbK|7!D8-HWIJ+e9W?XGRQo*O-cr_V$Anll8%CZY*K8m@B^Y}zeo4J)wgSVFKT{*1lb90Y< zc6&bcth7FF>Am`%jqbuoQyH>4>zCjS*2nCqjU80K%UIU8fj2+GV8IVa2n-?9Hr%xYVJ0zZtU?ULw&u z0;1D3H*1nV;RI$sVTefnX_5(9%lG1Qp`_mYJdZ(*7mnWPnZDbhMqUWXQc9vSTqd9C z?Rs}=lg=iHjcqN&VtTB-d{(w^vNdmCMA^C#leD<5IuPS=F-C`9`dy(wF~ZtH4!;Pv zQx#KZc1O1$wK=1nW^6F3#|DApKTJ=~PAqrAuH+!CWoL#lUs-7x1Kj^=e?80XF~yj; z<)fJ|zux1R^-G|>EYQ4b&X|Ux!Wg(q9-Ex5YWxS+*qAE$xL8AR^U59g*4Q5R0(}6# zKaF5wyK89mVgR)1Jx9J3nv~7f(c@<{s&|CM}>pWp6``q+D=-G+I@5 zQn*X$~Krdt-EM{kZ?-PL8NoM5LXAJZY3H%BU1s2vU=b8$)=u-^&( z5p?~6p5m?Q(Hnd_#8@0HAb(IPlTK?QdR?xIPoQ!q5ZHcv_@c7j=G&{%(#|!tk}GfZ zbnjc`W?}t>b>ezk%TNpwW2QJ=@-r@0g69fWe|P*F)y9W?y<(F|Kst37>=nO5aRx1V zbj%D{dyP0dZxwzCHpxfyqi~B^`ItjaL00lE_iFMnrEedPA+Ssc&wCAQ-X5+>kym9O z2`#rC(ASxf94Y?l=Q;1ACxbj<8IlN%EZ)KB#4m)&u~W>@E9t9GO1<8n%Jb4dMp=GLzF zOUa<8Q(?PWyIfXU+kn>WnS105K1|mtqh;&-?1-)mWYKRJFY7i_Ktkf`N!pgU2Au~{ zQN%ct!ctQ=D<(NqE>4F9pS@l@861S zOhG3+W8vOc8YZVuFj9sow$k?~UXUEk?ukwoCP5f&_BY5_QwQ~MFX>!i9lg0O(>pYe zt{2_|R(^3qt!-V0&C}j>RD`N`O>ZHIKkfuTwZy9txL5E7E;n$SH(#f3{+5~j2{!1_ z1lu1|5`Fl<`49N@zoac~1V5}j?Dv3C>cngSS|7RwJY~DhZ+R_odIGd??$rgeV7sqD z&2A0plu(K3ZkA93%Q~@(B=<$QP3pF~*2yhl3DBys2Fp6OOunS|b@z1-`r|VX7M3pG zrGK-(uwHbmgR>gzU}MyE(_Fs0pA;W7B3)m-FxMwG835~Jn;x)^rk5VD7eBqLHy|&O^GKAbX<MUL^7ElqLM-h6wx=`VP$XGSE+vSi8fR zu5Nb#IdNC!e&R!kkH8(lL07}XEA|-K$Mz^#KhZueb9Un&A&%0IEg_baev%&`WhU60 z)w=S*tx-tOEfuu-_FPR2EsJ?n$Q;Eb?&EgKzA$60$1UqMgg)&*mSlKt+|N9CimAWL zo*?U_N({_5rI_pYdBWhB=|AT5tPV{nFr?q7Q27}e<#5T|-rbg!e?bsL(`wURTQRw^ zEBr30sBIBzQ3AdZjkNv88qRPk3#WfJ7=is{$Sr2`yJ+dk-EWK4D3BIorC~@MwNnDf zl~Tl^dDJkqh#c)#mYS#xHgIgCFIJnr*OO@&{#vAQ@^GC!4tLYmNX-{7TQNfWz@#u!Le${Zl7T_je{|mi)5nl=26+&EW78llU$Nu z>nZ7?gGX11Z*DCY)Ey!@28|H_}C10>1+avN{Y=bx$7w;vfmlW@G z$R3g14fwNOwwDzD6qLWI_}CcqW3v|WDofscj4STwU0xWs9lJ;chVe#$dsm0RyeGFNU;T$ zvU@kKP+{NIE}333wVz^pmT6&b69QSbdXf`c6F=k7Ftq_KspK=vXuQzhv%{B5<>b?r zFfkN>pTEr^ItsAYicTnO0P2#nx!dUCY&>@^tC{utY z=`^1%)COGYMS4%PlMtO-D5ug#g>mBx#GI&knXuYE{*uS~A!*;y?2lWGP?ePs@j&FD z@`OE+J;?!y+<0{lub0D?euYreGlb8!UD6L3&7C-s!iUtfD`#1urn{MubtIpfHcdGq z_s0rJ%#yCO5PGbBtGmfT41*w^k(hXR_66nggo9JfO#Xm&iDXSPRi^xPvR!^2SQ^1% zzvwWzo7BK4EDj1o*d5HUBC@yd(#bQ@WnYxL@kXw`mEml5D4D0IXIRuAEjHHg4Ak(d z8KKjH-USWO5$;51W@k{L%bhOFjXEHX37e3o8Iyk=6Jsu{Hd0s~>qu!!s!|J8D4W`m z-)Wws?AL~hN$kR@=*kL#pI75h^!r3Rm$rMP#|0sX>02_uB%_;73lyp}h>*gIY;f+8 z_KjWc7^JP9rr9VYW}0yL#`;7k5G>|38|n+&#HxvxwaSr@vXsx}uac8+x|qFb<*)Z98l3=>fmr^3+@!xOmML zG*G6;T)GZ8SlRdv^C@ms*o6#bOu#po=BP29+n!~i(epnPrwWmM@63q35v{$5$7y>6 z6d^0DN?01E-B1hASq2xxfe^*eq0H$ox9F!<%X6XQLQ(#dt-JkEgHq8QEB@4sxTSO? zT^A}LYt5g#?42)+71}qP7g7;xJoUO65M|XK775P~s}n%uhvf>#GA)|lJ|Vs&tH)fO zEvby*gXRj$9I)We-u-(k$T{%qN-ZLCp<4&uK#-}H7ks5izSG@D9PZ#TWBPT0sD`s( zEfoU19&LORS-3iI`AqEkMVt>uugGJNYqATu6n4$H81W>|Wq!X_cQz+5SPQ)tK@&C4 z1TXn~VyU_NYi!9BzQoV;3WUe7RM*%x*5a8|vQK8@26C>7=!<=1S*_L7d?7ceBG<%0 zOaWoL@Tewx5Lk~Wu1sQGFa1%3BtmJ5_(JaX!g-sYZJ<$16xuA{D^XZ6n8a<6!XuGv ziod!Msr{bEfr*GQZSH|ca=joA9Ih)_Bt?AWUk+6e9N&eS{lIA9R&sGbtwIO)64&!YYbCEX@n8$EkSGec2r^VM;NFIu@b5uGiplXSQ{t}JVm z>=DS;*1zbbP>U<%E=LD7*0cct^Qm61@8s|TIz_6@xzH;f*PKygjV+hV!Eb(@n4rge za_iIMhxQ<3(YDUwjD1drycwzop3Zd{N^Z_Pg2GV==^ zd7WwsRd`~u`WieTf7jm}=|aC7(^8HB3U~3MrMZ}r5(-&Rx$n@F?W@IZ-^Jb*<7I8# zu)Vrvn~Rr=bu`YDskquhkq>_!9Slq5e|(3I2s8UCy?^!Y+(wy-F5D8IaLG*2qWaZ( zLeF)`B;rzHb>Ad~+e_$*Ib(#n#_z*P=jE)(rA5-F4Wc^@tq4`K^QEGZa#K)%R-_5$ zqhu8g=d&4QnLXVuX=lN2nVXd|f9{vx3TG%bwZ-??^9GVq>iQ8&RK-v6Dd+B?~S)36rS4%UBVVI`~`%* zot?;*lSS-f#>#pmYlgpvXIzEDR@{Ws3qw*wTd|arHk85S%R)lk%pbsV+yt;O-+0}; z@fm*57@-=%Nbj+mF23n);8yN@mN6l(qxCP0dKikYxDyR+XtY;zm-4SI2#p3F>$SrrBbvw17FgKxC-%xDrv&cN_^a`?GWo~EYd1`P zU<1>CmSq3+rMn;M<4wWc|01X#KB)i0Fa4jZ@E?{{V6O>LV>>$&V^iDzpzp<+PXU8K|{7vc0;L@bdnaRD3rDl{F1if7R=26~UNaVSb z<8mq{$?dUau(UetEI1sDsC}UpC#K2mcA6p|I)9!bADd<8bPN0qrOHVQvrso?Ou_KV zUu1+rbTq8KN!DMVYAPuDyN>hp!EM+DUkgrjn(hfb*r%a);2NJsiJ=C%;=|nlEg%@u6$&dlsOn-CgnY>d<;sVR7BJ8 ze31*gYMb1A(^o+~k)J6qF;HAP=`Rrtu)UB&VGM?C0=eokjMs|PqOZ;z=2SVAH5%8J zO_!dl>d`@!h$CW&=0^%$<=<=0W#SxNI;k!>*U`OjFA#3?b9ej$Q7_4cB_T<7;L)ir z5n>SiBBt@SH4zy$ek8pA^eawj5UxqjY))FYNQb+Q*5|*<>j93w_d^alWqBAFeHexj z7{-M(9NVYMGSX6^%m~?1CL+dqB-nuWqx04VU3^xMG2K9V`N-vruYiy>^l|W84_XXs zlRR1Mb(!saC&?O1)w$0kJ1=b!{=PiVvXWoJLe+^Izoe{>uH7$N*O99oKV?(c4~u{r4!fZR=#6 z5o?!+Z>)kdmerDocvE1XrvHI82>JzlVLxIIf?cLpT2;5a$#05*rKk*AH9qE6h z_ut?doH-#$s+B*g@ZSw+FHq&kuz=0_cY%rsA$=gVZ3xs+%^3*zuvOba)Pm2 zjX%exqLZP=(AkLt!$4MgS~=OjytpLGQ+fSMCpSAaI=e!|1;n~z!a7YNIsc8aw7gT& zmFwi0Ur_sS6Qk)R^h$5q!N4qXKknA#5t8CQ!`kFL_Y9!ZyTeF+E=Iy%xUqT1IgpmNrjxrhpG-XAfFzN+sYB3zV8 z7WmZMCKC~2YwJ_;F6F*6N519)4*nn;iK!!@hXY7&A}VGA)tnmoFuwK4NKh5oR}tz> zbKF`8=aZ84aHv32mqVLi@##hv-c1QV5*KEEB*6P$y1Ku!8k6E9n*@;2SOV;!DgTdI z4al-mv2-#0e@SUy)UAPZS}Z>V+A}J(BT*L%G{ZhD3n2(s5wtKOE(RWO#@wm4eJYoW zIk$msu>xH-Wy9;m6t+SKqZ6Kq(CCD9Ts<1vJ6&J_ocy1;} zl-91G6uncjT+&jJnP{|`Z6lOeA&4fF4W)}V%^SxB&};<$sK%$5UYVt8K} zfbtAY zJ|mDIfeWs_@wMOjaXTE}%}IqLh=oh`N!DC-KW6d8eD$c@hZ%y&i!B`~PoKE~B+-;$ z%~9fTD_(V@n5ONeaS<_FKq2zv7;6s$K9!A}qz`7tdeSkG$+KOrVS3W$t#mHjzo_3PfvRj9c#^^uX*Oyz+7m2tDB=pz-VCV{_KaLy( zWIn-MtrdML#L;X@aJAJ*Z~TbBnQRrRsJyhh30Z{ABTe!|*-aQsiKl`#{55}WIOTks zKAv|B+v*xRWO+Y8Mtm*F-&yWzHiFVEU0UxVJkF%UR)6HX{AfC3Wuh4h^IN?tw)V*2 z21;`U8x2a)ooZSckeCF!tpI?Z3&#B_2-~iB8$ee!(JiJhTz7^AaS3PKi&}DqX3bS&plv_CS;P}}4cCjOwMhRO zU!Y`zw-J`2bv%Shj%le2G7H5I#_kf4;~dW7L|zq_;lV?+7tu)tUAKq{>lXIso#~EX zy%TH?apnyVt?8(>E(=;L*jU*l`AY;h47SaHW3U=f^m zpRXSgU%2TZiNgG|dW4GJ|1WbOzmF}=ApcJSAUjeH9|VN^e>=ASC^#E6p$t?H@!x%0 zZy4MeiNQgG(W8+Qaq)y2QWU{O0u7u*Q4$OX)7m9|>^Qk^wKG-HSGlbk>hOxVTNej4 z`$*o^iR}$A%!ZgXPK{kl*MB&#r$e z+YEH_bp(WQwpn^4;V$nBeCk?_Y2K-_>wvd^+`-4%*$oeNZ##Kz-|*nv>VMoG@Bj65 z{_1o6fm8chh~UzFSHzC*b0LFI`ZD3oPT^BJ)bO<IR2%xVfqm=fw;_Uco^0Sb=Q-n_$xL6fmuzQ$2FC}c>fWZPfl}p&$|A> zZUb)It_*<>c3k^4I%e0{RrgT;vgZ>d;`YI=jvZfseOduv+c2kVT-1MB&Z2wT!hfe1 z@g_W&kok^K<|!gLSNbUCYGkH`V{omZf;SYzSvGxxzkEH>Yj~u z)}k3@i?YTbs7)fulA4|%Yi9vH_L01yEE5g7Y1X}llHe+$yti}APYjW=QIw`dNzMgqV>e5;xa+^ped-oRfv3eqyjF2&7?pP76yR~5o;Tu@I1#I#N$ zYA`6@L)11iyA0kFoUMx7#o0(YH*?eeDz2nKprn!k6V3Nw(3nlE(25IPcH1iPTIPfM zL+i)#aC2+frUL0o%9RWw7)-h5F13rOD~%-ARr;V9t%=a$MLNW00n7nSO+dpGyX=5= zK*~L)B?A09`1xcJOTZWbd&)O#j@h4~c!!)>qO8rJxNvyrEOC8fxd~yOzS28G!afHp zn*CzC#Ogn48itapUTbSC>2GgiC0o50ig4g6kV{Nml^W2Hl(ozw`BJk>WKLqsQT)hv zr2>NHA+;JD;Izt;C5QUUtLxuNE{0o85Do(AAm@DssRZ`=L0gqa)wqU20H-2TQRy*-NN$VhJv&;=EtI5WGZ6k}=Y5kbO$91L z9B*y-QrL_Ggr+V#;xPV+H|8&5efp*^@cwDnh}iGJB>Vav+CA>by&6N^j+%Y`CNG%p zNjJ(Jvf^0C*yaxELs$so9*{>S*_f)N+{vOOUg0Fgbl_9UZm>zEBL(0`WQL>%ee%Sr z7zn#)D=hHXi*m|Z$dAH_!7>=d!WikXu&1z#E`WAfjKhJl^niX)XGQ>E`QCaKdf6pb z^;-#Jnpj9Wb(Ay>?jRkr4u;x`3xdp(D zada4wVs)C)^@(K(gD8&J&)gp{8$lPdc<0&s?3{?4R$@)~@+nlpz^$C7nq02PS>E_O*NPe+{?W)Z)7l_mFmJp8Jwy?R9FnJe%ORDL+ zd8JJm72i zSE#jy6#;gq&Vomrs=2_9I?k*3vQOGr1&-A7s9gP0YP%CxRk?J62LgLeEQ}qf$* zD1@UHi#p*fL&GYk5LV#sR-NZ853Qq0Mb5X4%(1#GHjrpJi;_Mn*7YrhZ}scT9Q(Sp z^-VNliluG6oSc=)s&uNWG9)k&S3go(75ko?3oQ{F*?(D4TcH%HU)+gpRLtHx>Cv#hIIix?4k4z5e0c)1&~HrgD**#d~+Yt zMNWIs_Ss5&Xs5ZV^_DLc;oH|uUH~Ru+p5UFgzr_rgcf4s_G2JAYd;>_xAmON?~#|5 zjfJLnhzoJ7MILzREqigPSpMW7&v5TAJ~^3plH=5}pH~(Se->n~;*FXSlGzs2!bE4tQYY*-^q2%wzl`%BlNo~c z%2(Ounr*TAFW)aP2F6eTJ;abFy_Fvpeugr6L#ti9jd6>ldxO_?I}!K-dc-IfZC%D! zF9l;D?$&k*2VYQvK@0QzcA@bCgoOOzeLC5uf{cf-QYB}mdfosS^I^fA<}9F_68cJa zT6mQ~s2rIZ$R=r5Xc(8*Yhkq(;8C9a_BJa&IIP?}2ANW4h8$%G7REGnmu4nr%#at; zm?!Us%;vIa&%rk~sAj9`F_r)oD4=T5S4j%~{k@B^p4X^9O_cxHN@kT(4OmI9{} zq*PD2gxO`JQ)dXGevVM9Apcr$hGR*s^h|nLnTX0zVvlv7xL!kE@wt2WyhL)KgYm~Y z!jMfjIHC&Mz@5#Fp5 z;}9ZeE1(T*6KdNcf_kC*R>)iv~hT^h51r`9zlvtPA%36lZF0D=NTvu7-DYGZ&J$|u=V z4;TcUma9gG?NfFaAran_RuVL>nBos$#&VyTSQ5vMup9cwkg z<4{adl6t=2cDXkKxg~=R*~2tkfKih-OAzcxYXJy}H{1RK+cZ-e>yA`&+!5Vqs~IwP za5*rW?7P~bAM-+ltjvL!fOPe&UR}svmCVV=0@K)a3J6f{I^j8FU`E7zk`7AO1o7Mcr?R11ck(AsYKbOWHNviWi!IMwtEum41 z<*;h9g(}w#v8LkAt!ivaWfP6N3&XB>aqjT0@ z4_`VTcjNs1-XK2GcERsb5u}pk8!@g4uLQZF$K{C(79J;8m|(@_%Mjott?$#cISLO- z-38xp8vc~DWJmHBm)WryR~?=)VDVX3{BeLKXS2z9 zi9DB*1Nn^t1#gduE!tQ(hgZUv7Uo{^-aH(-3%a>Q6#1nj|@i;*0Y zO?ICoq;i+MW8x+SHcNnU#x%u^ETL zfAsiibjPqP4}^a+es{4F0}&o^;gw z;DAIXW)16N-RBYHV)3t)?+7%tYge@?CheL29~}_B&_isn27wJ+ei5R@KTqaHukpq( z9JMyDX$(K}HO0!gb(eN*M)8IZ^d}WYX1Ndb`GKe(rd=|(ONB4(2YDq-h5q+BC|ofC zuaCe{U3%bj3FChkSCvi8fvv=U1X5q6-^y}m*|u{-ORCn|I*sUPj8Y##KcOQ^BZd?h z^`*L@&Z)joA;LoT{+`E;u$PH4h~l0wHs3l2Wc{Jrg2`2#7yQZ+X+dK_&Bf$k zu`}{9E1%$6Qj*$a0W)!Xvh;%jwq{)Z(BUznUgqE}+W|n`|6K6r)<9YU=ZLa)JK4Ro zWP%=R!}%wB-(GB%8IgF&SnFXnDMqv(V@|09aU~C)iOwC^kcifyTE`>Kc`n)Sd8S;OpM%;&1+Y7?h%~}X0IQa(zCnRNI z1!3_Ahlic zqBssM^tu*?pki-VG5mb4X_+~lrk(o+AexlqpbNd+B+3@*6H1Stq}8C!?>W9OZrj(5 zshvDNJQGU1Yi_0Iz6J4Zcy(lC8fbjcYU1Y&k%t_KvgGo@eTlLKi-QTqk4X?{rhX2JrdI=-%&D`ca~SlLcIzE#U7z%fbJ#N@5i;Jn#KhAGT{2#j}^u57#c?sPIy4MTm zxav+54HgdL7x+F_m{t?3j2WE(a2a~SP|R(6MWPH4V4j~71rKh|Ucq_*Y2;Hfx=0j^ zLQOo2Q>?pY+MHgcY89PoS!7e|gQpLgq^iGaC7KvK`h2vrYScKu*XvH7Ee2er*qP71 ztT{)aR!FM`ALjOFUDJeKZ2@G`mQdU-GY)^wY`wegFSZz*KmnaCFX69Eh(v9x^OVRjy*{Y5aUTlF&Rt0RbNd9lj zrt;VQ^H1VLmCB|xD9}crgx!6Sy^(NyE)Z!Bz){RgO2&!=0L}kp`lTtwRl^tQago@hiPEgd%HKllk@5P7@0I4&4~txP}d z6r#|Fj(91mAc4k>zRu$ozpV5zXV)iSz1uQM4U&oNEwVp8J1Oh^nwiE8o5xU1|6sl1 z-tpUlAE8uS;Z$ZOPprfjH>9-)L$&B_c>-2=UM;e-A!ZUbto=q&Uf2{^;BczES4f$g z=4d@;%~1rR2w*fr!Vn{4RE$OFp%@8Q$sY*m`~P2%{;5Y^rLz88B9(uBsU)rJM!jkYZcn5_xZ$Y)oq7pY z7((fqzsOqFvfdPRaQX)IPU`fJFsgz}xKN;}m;PmSHKV?r)jU_9AQuF!Hn|T;e4dFZ zRUCF7hk{KOd9S_t2+})Pwri=Tn!euBGu9J>YS~#@BE(s^lH@E9$yGGZFw;QQ-X?#o zH(!;W7CM;ZSR#i~wb=5x>l&u{Ig?(egtT}b%?xv~Ib|JTB6Rw#$&=z+GQDs*D*3m~ zHpOCrVMLJnAJ1;ZeHsRR7K`;+b4P=<&=b7Um`rbfF{jaOhV2G06 zBSo;@8meDJ4B6;VtX|s$Bv(0Q^s3SPb4NQ3%~|^ zHok&k_jh#Bt>P3R9l{SheRGuvCP#?jjyJGQd{tVCSZu`O|9rV^1T6&!LvCf79~oL& zI^qo%ofTpWY)7&UKKc|qRX5=lDd@tJV-h97-Rlj>0wpz36Pn=h7i-$z=Qda70bmU* zNQQuvpZ_fP^4AmkuL%Ed=k_15u1d}NxA_PEJWzZ=GcQ>JLP*HkCaSI}5K$XOyWDb4 z(Kw~(X1=XbPHL5Wo&M(N3AIRWK$6YpK?3{A1{Z9FvFVH4cQdo8Z13+=o%P**{_ikE zLFPDQMXIOj>>K^Q*v#0Wq0j`^4D_Uh2GT)u5d6ut)duQ8Tln@P9s@+Fk?jznH<9Z< z=-RJG>pDqug&28aFAj0d>Mc33KPA&W&Xl#DHqz4Y+;~K= z{AkPQXUQ>+>dIu^7bkj9yci-HBLvCNJ@-$d)Xz&1Ge=;BD7O9 z!WkQW{wp^6b_H*vjT70Nvuo+4J@drH48k|q?qw43Ggx)3TNqk6IAIeJZ9YU1BaT*gRw-6 zSW8f?7LcP>EeMOfvU^5mDS~(_7>p$o@AWJ;y0Qa1y=N*2qqN*9n_BspY{JtuHT=`Y z2=QMIIqG`qgVp;K9pP`2&*0cHNyoF6#E)r%ox}A5Yo%doR{95!U=@w$HVPWPw}l0Y0-LFl6ZwBbQ;I(?f2wA(~)n>}r~Xk;}TU^bBBJ!{y> zR;uXo`L0ZEkexXAm6I=>JSWs=ZSsk@L}Ee-HKE6`kvb;! zVQL%1QQ^V_Uu|jc9%0T2|2=!FMlizM0n-mYa7+JZ@$&zt?fmDf1+dr#18U!BxXv#w zReRmim6aOY6k+DmputAI2DS+FF|3=64(&C2UW2_*-O!^K(*(*9iF`Mu@XT0lKEebM zIj6Rv1)#BjLU-0WSYLJxo1r7Q+Ue_>$s=lt&yy11o{DVfBdg1;tz zE~K)Y!uoF&-y*GSE+23U;^O2uA{406lVN)Fv@&|huUz1c+ji{@=x8xrP zg?Mub6eP~KSsS4mZx2?Ajb`==nIKYj!NDXlzrf2-NpG~knF{+pC((r6gnk6ND!-3o zdIZSG9YN-i--r6dCT~aHLvjbl3YwH|#5g=_xy7huL8WO%VU*<_jvA&Nymt{XIEe9M zDessQ>-le2qmAJE@;o5o-+{mX0eSmB>)n``S|H^WEBI=8ZRK=lhZOo0&Bc|DDsX29 zb>InA+e$g{xS#t8L?C%Zp2w^I#?js3+v7frK}^C&nt0^kUCkCa)RL&fd}ViXYttA$ zF@5cNbtk0?BrYV1 z?X>+?BYc=!K|*EF{4n`sq@R*JeKq%ZdYqpn>;Iy~^g9pQLM%N(0=GIYFc1D`Gx|RQ z#~<5W!A{iD`A=4BjH;!|Z$-Vhi$-RfVk(kwDrum>ZKN6OycD#Y7UE?GWT%^Lt<}{hJz_0QVN^KHv`aXrkmB$W9yKuNU2{Le zhbQ`ulV#LtNYx4KTmBr1R@Yom{~^wuD-}x}`kmBLKv~QNzkBM&Ba2l;(;8t*2o7gQdv?Uv zevXb7qZ@6B#XUGT==8B>NxexlRBYy4th6=14W;>5eVGoSpyzJco%b_TOmRA!-LMUJ zVSY?Br-`m#>X3bzT{m=#6-8;M*92=#z5-liepY~`K{c@S=%M|@-T%|A6QHVge-iWl ziYJ~xj?-2~Z&tUkKn&6<4Wo1m$R5qz!fDG)ZIa?{CNzh8K~fs2r(KQx^179K=SL>D z48MFKMTP>{uf4;T$>wVXpX8pr7n)y+uC?SP9OHb3PqCkLGaDa*RG`^D(VCx(nh}Ij z6eHCW%UlfimLe_H$7KkN6sso|R-Iod8;~)0-9}da8CABH4+%9sFlL@e zFTB>@+JLehgtxu5j2Q4L%sZ^6OPgg-G%~OcvjR!wtG>io@J4!*JX7|F9|0I|wI+@zo8=9E@nMPv%c>DtD2M$pTSyVK6-R$HW z$R)>YiJlY_K|{bnT*=f8(4Uo@m%OEwMnVbp#G$x{A`UE zw$djbjz9v{j_}~);){pmav6-Wn7(7frdOjOPObv+MMJx6@4^4*C88%QnVYi3lB^6D zxmV(Nhe>$57eoSFL+e>Ms*aAVRNjPzJ{4ULYh8cNvvm%;8#58nJaatpkdJcZO-16j z`DelemR)6T=sq+gyLk3=_3mOJMu?*9l;%CqVU})x2r$n^julq|udzVzq4Yt6$6>Z^ zS_0&3Sl!pdVjXWl%BdF8v!CL8(hr+beRp*uDv4dYmb`I)+}#70qPI(I*!9*M`mfF{ zzhjuE20PGt32+9OLmQ4DnRv*HwNts=_n5@9js`WSnFkBWzs~pNMlO2 z>S$Z?&$>MWMV2=t^hUOpX%?8vC%<;PZjXPx)@(vu$ol7f!AWPCCuE&}L%z71wxDqJ zn!1$klPoEVFnieWo_?LW-SWO%+`f7}{02hMf2Ee)QxJ(2X?RM{%$%-k>J%d-C6u95 z5{Xoal#1R_Spb?9QD_9Q-1-PZ!HL#UPym&C&|8Y;qb-JpA>$u9YL4zBFD583eEW8$QX8m?xQw{)K#)~_5=y%lQdcZ`$@$S?;EX$NN+RvLAK{o%{Lg)x{|LN zEaa0-t~x|MpGxz;A48n#S00ng&>llTY*#C2p$GKOx5}tw)IQgaXViX;V!c%{KB{jW zeZHw3y=BD&7gf(AHO^=%%$TZF*PaDSF3 zA&FCckP4?ny{(K}29&1t@BjnTc9U3(AR3oqRNAxRW6Vo~AZP3WXv1PY0x6fDc~Z26hiQ_xJqwX1Sf>2e zpEzxd^NVts<;G`yzQn~IRXLSgXbmRj6xgk@sA%KIXWpAkX{BIqy785wwV%3TVvld8 zrN>%IjO%C3q?)s#s9fWNuJQ`~`a!N&(ej2~Qk5c|qY7b^o#rc(dEr?1J@``-&9@d- zMz60wmcqP0H5Jy{BvrQZo|vv-1ZT}fp@n{oPFN=~CFa#^FVn-@I25iyC)9BL@i3iSf%>nfX=<{z?+STfPUvb2*^?VouulAu} z{jhq0d^+P7vcTLubI|_wcDv*>nKq5mm6>TRh1lwn3n=zLnU)C?`JIH$@0;yTT1SlO zFNxJ5osmm+Mi?D~2TdRSljzS(rFy?W`-SMUUUS0w;r0U5Nj;DWO@AoEg<4O4P`~F5 zK=npLJFfobZMR#V!|-O6d5#t32 zeN`MuFp2tX3f>*|*|9DuBIsTBw@p3e2S2QQcMB{<2c;HnmFtA2_nkZ>d(w~k-<~)Z zx{f+sC9-=>8Er7XGQ)eEGL z5n@rea7@^wypI_`w^Rq@GIrjv!pE97XFPwXI^l0B6IYQHj`2LWRy5DFhvc-Dp`|1R zO`L7?yfyMz<3nAV*HB~5$7c-BZlz~ zM|NQu&5aost4#Qq!A{kAMU7Q+xZ}VWVeay*0Ya!Fkj5r8sc#yKgP2D!S%lfJfkA;`%`>`-_{1a z2K@HF<^S(esFa=A9}oS&MxBtIoxO{p%fD_ws`^0c1JZjHnO2=15j>it4lPwx7CF{C z2E46pCWVW&S-NvTF0o)V*Ip*=r(}J_j`H2YO4IbeOf*)LNxic7* z1XaBAcTQ(Y)_PWF^UEv7+-{I-fl8|CoeL^9GKgc)?+`@;gmADWH}YsIl5idx#GBr* zt-g6XB0glX8W41_PnyI@3TP%ZWU=Li8kL$}a@Ce=|QG=Gobvg}Frqf$@g z=fuy;O6mzcp6HkkN@5U?CaP)+ifOgwM)0{6PoVnc7CW@)`un)(&MkENU6D{v>JX@> z6td{_#E!)LqFHkSO}UM|jW|;x%V#yf>4(bwmJe{c3PWwd>!sb%tu{bIc{51#<ncmzaGoBA8!X7^_&+?Ml`g6)aO7N5^3o={t9fb#+hT zML9V1@m)4@A8;Vjsm@h671Q5Zy^X*kM7A z^abuj652G7v5!ANM&cVS*jJVl4y}X*Eszkw_x5X=G6-~w3~%_lIOJ&{BMmyp%ES7U zQB+DUZtjyUoNAUuAKRe7BlP|)a}4ZHcvzUC%oj#9cKgTyz6jVG%ZfD*E;C zN+$w?!4UAr@ZSXmpa%0lJ6JKYLa?CBNaK~#%VG|>J3<3Gvy9CstaR2+ z_xYYc2+7@Uz$nP#0ZETX&!9D8{Y-{sFt?paOQl;U@`n}OOtLW6C-%DD->UY+`9u?I z5i_z>fA%Q65fq<_YT7{)O(0BtZK)?APl3L;?yYjjB%Br>mDPN0US=564k4t8j*Nr* zpuUid3;(sM``@2TUuPOJm4P?3IN%NKzwGh;{yI@p7eh-MSyMMtn}2?3ijtf{ACRE{ z6@pPFjHVa?g=q1_r5er|-TN5|WdIZw~%1R{WO|Y3`3mx zymz%@0V{q)eGzykl0YWGb=uchw7KA<#Wu^H7IVO1r+q}gNlH5jn{6qhSsyhgG|@5t zGP>U|bI?a{8aJ59cW-1C8BTQX;D_=ZztQ6`*FtnLpN5=FMXlu~--+Dpj}3deQf1kn zhf4YOkqZ`2f8Bw4Wm;3gy63MP5bP7E5RlTiPwATVqNhi+s8+qjuCVSo!-())ZG$zp zNb?Ctgf|VXaKLV&MQ$X_cl~7==J)-s=`A~!6o?Wtkev5FBK2nrE=A=Z-fCHll+{Tk z%X>7Z^7xr-D7jm<+{xpSf-ek?Q3U zQmEJ(8|{}^?aj^1hkiF`KIFv?)6}JFIHE6;>88~X?S=-6q0`unZPLTYz^1BMv{dcH z2C|5pMmUIGCmVLnVW)?c7-q?DA4B9g{G6;hA2$7RB*h0;*0&le^%Sgq31UysiStD^@=Vl8lgippg{Mr(lobdfrgJP!>L>mq!UB%k+_Eaew+*yJ$d+^L zz6riyzi=GW@k*HY!Hn)eaeq=95oeO^5#x}d5UWd)i6l!E3DceYgh^H@5oRVnM^TG-%HEh%{q_6q#EPnCs*{n2ymC8_~~%2*CZ z+j1_&!JR({R_b8>uY*{>w;t9ejkX4G>qY!mrm%lJkNz!4{Mimr_5X+Ih@R!LS~}P; zqEbdiOMo(`P%<)$30WcS`;?S?Q!Dw*OO1Z7h zZ~TuPx0jt)uRmX3DL+VXBTIYp@vORveWH4`3A7a5 zDu%hR%E2<}g%p43Ma_?(dt2dvJ)*eE-;fQ00piV_j+8hF@*UuaA{L(zQ>x zUPNxh^E7fz@$J@PlD)IdEI43)aXbY1(3U3$)sESudS`N}rk)0t~#R-uh~1s|T6-TY$%X}zuW73i;(+KHJrO#AE6 z8=nh$@=Q%tpm`bkd@gP(%Op#K%^%gzrqJwH#@L#x#4V6?`4 zTj&(69JW`4=mIEZJPAGeG zoY8t8&x4FQQrVnl$iTfmSXz2^L7k9+(uwBTz=BV}uW&KFVUGO#h#eP?55iHf-8060 zpv^;kmzPcKiO`tZg??rD0zlnE3}@d(lPbgz91M00T^aqTe#}iwiOpS%yi~w_bxBFWc3VxiSf!sSA{!X`Qv>F-b$#&wO<6WpCPv1 zNxYFri+f!$aWqgLQt$)1B|PqmYHcxbsBK(lf8H-+^YXb%M@|(JkRbJXIzx@N4aeYq z2d)&z5cbTn6;rDBw6tkimchid^I7mVayzIJDUvo;(fcRxw_*L(0%Nq(`PpMo`4<)j zh{1k6ON~~ceXyVrdF!-WxhK~``mLwO=R!G5_a(+Q-H+jKINzuj`om}DBj)HLh(JG) z`^TFx8Yo~jVl^<6h(UWUBH((821K zFW+X?pmtrgfGgGub)7%ZomC3Q*!EHQ#}RKZJKV^Imv zLYg5}S(YNV%ulQvrdXWT%P*-q43BtcTz6SHD&-hcSjoPtNC0e!U^PbQR`dCC3k<6! z8?D&nSlY^P>=nOyeC_2Ai|b3Z9XGa0M;9m}4>R?8*zrbs!5VdjANv9Q(tID#xxwnw zRhaFGfkx z{_28$;N=5|jnpJa2lf5Tw$L;ydri~mla16_eyPu-mh zATvf-OkY<^C)X6w!2QXFJ6%5v)Y`D~G+GeE7Jc8#c z1*@*K`cN_#?Tn-)kse=af~8Un2xzG>0UQp7t4R%7T^ja;#ksJUmmUGy19nfIhMtDU zFv6qnF00MZTwaX;C5}4Q*!v+mb5fr?wXEA2VjDTbuO>N?lJ|hqAA(Qz{>81sHF{AJ zg>YQqV_c|ch=@fRyBIN?fWB~RjcC~?$3oIiqL0tTgHh|@kqq{vLfsTLu=ixjcP?{m z<069}HMO?WjsE}?`&d6*>o=ee*kjN9kU&5ku7QAt{{}SiCm@2nFUBd+3bsT+8F)Z- zf8hT+pxJ!uB%#2n4*~cZ#`=GnNdH;z+1k%3V)0`h!xh^>w{Sl0p;0oWAv8U!XB+pp zz?c!X(ObS4Ri)I_xCPX09}*#x&Ysr`j(OOxAE%y!>1Ays9X(__D_r_|`M*Ekzsta6hSp8!e3F5^ofk{Lq1>6{sQ2| z5}khaaDle`JOEvn(}s#`Wb}CyInnEsfm77#^BpucziS+!k=19*T}m$gH3{K)V_#V- zo@EK``DcNW#t$TzLVkh<$d8@8UrMu{0nUwFOH?G(b9{ICnDuxDEIrY2{(qx3omqb@ zWCB(aCO~)5|C0OvFHfyTRUHLXC8RfmPMh{h#aM$ih}mysvTqT|^$B}XlQWmYkBF-Bhb z*1mfbeIE@59XG9S{}*NN_?_vutqE7fcw#=WZQHhOCl%YN*sR#LZQHi(q>@ye)SF+Q zv)|s`U-s!S?tft2V@<3%FL2&$66rHmc=qi~r7oQnD+dTgYd0TlnYR|<_4(aW3Nsuf zas*l@OPN$8APj`!_9aiLHmEsQm6vo#Ctsav-bq}h*p8Rqb}BdUOw=JjqF2VC@iaUq zLrrBwqREB!BNDo9(oJy#($kR&A0i|b6S}o}kvAH_XNpjLX*}+H;?+ehxDWyf5AU!_ z&LLF{uL^ldop=M-DG|k30fy1>f6}O#Iy_Q(>b99PRi5NfG+C+D#vV#j1^)!kcJhs< zy%*d~u+G~#o#N*eBI8lJ2Sfz`38(in5d&d7XDbLIaXxx&t6}a^i;(g5MNlUV)kKy_ zP*EQY^#u9ps1-!3Iat7jG1ctRxCVOro^K42wRMg~xsd+k{+(v<6gX{OGsfi0Rd(Xz z_K8R?z;3I;GdkU{W5ZmBX$x*!G-2apexc$|nP6tH>U`YHWVA8)m1g5vHrdsAp(3ge z3{2Z%m3&SKN~yE9<@TMx%1B>KID?rQ&Et;RTfoEZ3_b3FdnU94)ydsxL)mwX4xcX8 z1*6U1kaWuKmYY+Dt#b4R?Q4Am&tvT!d5XUwJ0>Lwvdo$_s&fhQ6TpIXh4d3zUPgKe z+f7GT#(q_JXBOJ(yPjni$$@3=x`WUP4Y^S0*SIIvCjp91*kvZ$OHx=6gat_~1%KoH zNwjYv?1BSp@N4#4mtenMUW%D{Bwtgge9o;4j=9Br$()se>)_>CRRL{naQ@nlTsd}_ zxpVVs;^lhq{IyNkMP+d>P*l*Q2QAP=LBx1^oE0`i3kXipJHVNI9Bv&{@VS6GSA?zB zOku&lN8UerE-;ZLkpFmDw|;dALjSR#*qa(#8d_U={x4TMK{rE3Q(-$B`!A58qk^H6 z(|^^MqIlUaE)HU_{!l7g4~%CJO+qk>Nks-CB1nW#ug{bQfVXjLz_}u>z%(AzouclS zsD!}aZoaSkEuWrZj(!E}Pv~j1br{@Wx;-fzb2ap&!;mUXN0x2M2k4a0bs|SpA-n6$ zMdk@Y34+b&Yp1{Eus5*O?T2pg9yaBr6LAkxH<)+3`rDNNzn|MtInXVB1J=3=2-T*^ z&c;Q)Qj$;@*s;x*FdwN&3F7_F>igZgh61UdZ}9zp6r<1uEDE_K_4CN`!W*U_l03<$ zlpkh=-mw373I6AgNpMryMd!*}S@ZfiW5X>nByIY{`AWu|JD- zSL?ToK0v|I{Lq8ZbxQRltN_r8!t?#$ss(NXuGS@V+!oPNaI_$%r+W=W zP>a8t$;&(ZRmxur{&%4c+a@`sd`~1Yqj_SX!{I4tMAEr>EzE|fEu@(OQl7U#qe%34 z{#wN~;otAd{03ds-rp;(jVz|1yfCvf{z7oas&j*0z6cVyh7Q8Ey6+AbtclPA+3^jv za}197@z)Uu)pg7gr%07(tRjtD<>tW*qg~ zSkTG#1i{)(9xQ-DDRxu2WJ4)Pnt!|ZQS6wpR*5I4P~UOILqocn5yR03Hg10?UBrq41sb} z-p|ebnHELc)1*AJGE$^jySN0!EK^W|6dZa+qqLsC0{#=KEStc^8e2lMc&cU+|t(2`d^v?|F&QMuWZ(( zexZh^B$cM<76L}jDQ{HY?}ao;&?(jnctic`S!#J6o63HVVI&d zv$|#6@$P5OfpPC$3C-l$A3-K>05SRQ1klqRrvyY7M9$ZvE|BnIOK%jHn?qs-l(SlB zTB*sSI?Q z`+iSUuYouh%ZIeW(H2laG<^^dhS)9|ln0}MS_dX85<{&ss7>UINp$D^29!ZUC%4O2 z4w`DCo7NS>Z^{k(dJ0yCX$+-@jXdiNVw@WP{4%~s3aj}ICp@C)aWB%1_8S-BjhCE% zS3Kk}Tu_|Zqy%Bu90P65?36RvE95>@mC=xf61CWqAxjRv#6o~H>p~c#^_{ts~QO92oKe$vQJZY}E5*$dR5$jZ!Qmr)9}e*##!r&*BI@Km(0}CR&<%@t*ju zJEr2?-&D*~UG^yTzK~U>R;4t?*Tgb8q3a!}pD#X=RS8*id5$ox)l50&n#opPoC+%b zr{5MdgseOTg1HZu{lS!K!?Io)a$0+3&K4zNvyz(n2`2G_C)yrfXguxdLVU4vWMP|+ z1M9Vm4bA6LYrCx6a_#q59dFUjMV89BIr&R`5#fj`OIjmYzhBIuBS@_Fh!-1_Kz>wi znNy)DbU$sCtq-z)%9e;_MD>7gD9Zo3eui+{H=qx(&*Qzy{UfDgzTz8L;QL%|7k(6k zYmh~vYtOGu=?iC$djIoV^dS4juynZR{yEuac0{PZA>Zmsm_!CuT1&##^$~N6Y;gmg zpgUEuOA&sleQ;rUN|c1{#uV^VTw2Z83@9gUG12t=6N`)BbBbcsxbY0=Gwkg zT3*pUHSk~;s!5p1sRaZncW5-(7L#^ClFf+W$49uN-fyZSw}`aPH>E+|QncWa-OXMb zT;reP!p)2lYqqCb61J)_hnj6R-{`y8^@xd7xp2yKp*rUOwn@UZsg-448OH94fnC|> z0%%=_v#sN+)Xgg@wA=Ubr!eV%Rx?#-}hSBozU5sJ%)HBLAjthIP&02LqWOV_~FuB zIao)ss0R1K@3BTQG`=!%BiOfK*?Ypqb;~WNB9@RNk0U$&{0+Et_hX z*i=D#nM~3fezKE^PrHs%;LLjddOk2+7@NV`?5;h1o^?$QSnu1nOws-E!$4-8WQKHM z-C0gOvM*%~+0k97`HjqkxWWu`6;t@*``!iOK;P-qfoql_)Pv#!;L`#lPmE?sE$e{V zJ3bTLX1ZLi{d})F*0qXjn>VQ*3!!OA$*EX%3Q71x%d)x`F`lg$S2HbN7&mFeW&FoT zda6(H-e_aEm>Q-skl8wyMZSuvG8#M#27EvOj&KRx`4yCcp+Xa2ReYTal8tPIrx2LBkMTk;n{jEsJkpjSb zmO-ULKE+16sb;TBW1&a~mc6O~rnI9@bcH+kLOYPFIjUVfH)b1oF#>(af!)=9aBiRu zrGuj#Je;_1E;uy^7z5in>OkJ?VSqW7iMg%+d!J3VNH zbGz3N`b*+FxP?>6=nj6QgJbe{Ho?sSXbb}QQ#=7a>>V`U5eG@@%x!QGJ!g0SigP7S z15vBpE$u+_#gc!}4W`mxuZ+|D){R1CJE?5U92K2;8Lv+yx^G?Y+oV%Y|IQ zl`(-v;__NDVP5`1pt4m+`WDz2W^=Mj6_e==E7Do78exL9&0s(AqQ){&*}^#Ryal^J zIEk~Jbwxvspph$uJi|v-O}$Q^HXp)i>Hx9CH9b?Y?#H8}_Nhh}>_L4MnYD%yL=S5kDHYZUSoX z9kw)b2txs1JD~BWfg#i!qTaVRq+5GWo{K*$Oh~Gi&f5@>F^DH58%Fe)lGFu7H|%an zuO3>3t;v{uaqny+{}PaVwk51Uoj2F+?pPGDoXL~86`~6EZ{#1(qX!S7H%)^dkF%Fa zS|`YN+Gm@VxRG4wOzaSX(-GG8(JHw zP^HvoyGc6vsor|!Ebsv}$8T=)jFb2G-;g~2Jf*(F7(!Bg>Dmr{nV|jW!TP_F|9?NF z{yXz)LTl(Op?%Ub-x?f)5JF3aq>7S40|-nQ$%JK0;=@2B!BJ3}UNQA{gAKPIx(Jaf zY;2b3maAPQwK`U*TrITg%sPdL8SmF3`LuQyGRKfC=ve`7eA$x6{na z%$4`=cbdyvJ-<&D|~Q z_9s_Occ03R$?}fUtquBL7URzt$ekf(nLoV6uYAfMy@B}q;?|w`UcXT`hkp8vlV_WJ zK2blX1>{ga2lwV*hoLVn#rXzeEk)bAsYF|W)brvjPbSA%X{M9bdZ&~`~$fpT#m-_N22jF zcZlVWY?s=iO5hy&i9kUw6*aWP#SaAWkb)F!u|+F9Nue(TSp%^@1B$#VJ7r?0GKwwR z_-X|MWP&|J_gBr9-%>$6S4+)TqZ^d1zaD__g=gD5^St3qmZ)TC?o-}lZZa&Cr3(TD7f5D3BJQtkCy1IkS2*0|GQLei;S?9vj#z>Tx zuin>y?AM<|iA(w!&?5yni0d6rLpl?Vk6SLs-OU#%wq6*kBV+!^82tVKYn?XmVgkk* z?7U=^ABR=vEWLl@E|+^|ieVsjj}ZRDA#0HTH+?vio@lVp{?0RkDpvU4{lvk)x1GJs zDav>xdIs0@`=sIO2V&tDYxV4VV&EmDWTlBPgreE@l>M}#-4t;`NWl>l3H`*K$Zxg! z27j#40veH&B8>R-h@`G?o@Su9!{@3|m1q!6m1s~S3pHrQ(dtAZij2|*4IiZUP|%!T zMyK{Kz1*WR)^!EZCV_U`2w7nkDK~!3r%< zH&7k&P&Y&=(fTtVa%VzyzX@5j_V}vb2$u7MEIHlbiKq51Z%!sV^ki~MC4{V6mdAhh z5B?Qg&RagmK0p8;*`O-#pD=a>zeN-sLC)UJ>dEI-oO{g(!D^JSvsqVh#PofRFGI0J zjTJ;7CmHZ?qB^AnWNs{C(viV=9?o=D{-Xn&U4v`W8+-;WFV#7=B~a8hqkh$tuADmT z=fs`T(!IJLiUm5U|JF4MPra=x;7jWAj+TwEnh0q#c!ggQhD4od^2=N z;G-1`^Q=QZjx;Lnm3+Q9LEsbAOd1YJ78Xk-<6gZwEheFX{}IalaGSfF0`)X`ae9a? zq{q5K%?|Fc-@SoHM!g2NvBWvDH2DBj*YqD}{&T5HTjk5HI~Qf2bG^yMtHKiyD93$R zy*`8II(H?X+j%adU-w;I&Q75H9&rMk@=Z5i3$#%jR|y@3iym9knmbb0#B$EH!ixk4 zcQ)U%meT|bvMjP_QFeO}L(b6ntydUKHaTk>Wb58^F^bzuk-;RW2~U|ATUAb*iz!CM z9zXsO_=7n*k8MEaHkB=P0lTbCLb778IZM}syyGx)uZ^aAGC6|u@HP26@8XIvONI3( ztCN4b`6HFb@m4bY(MA^{YggcU*as=)ggt`|5{Wv0k7fofR)dv+mGCg(lv@8GJ;KT- z+g4-#BYLoT0D(`WSIWfIR(E4aW!xP}`MGN{N09|eO8yTgT2bZ?w)kpcx5Yv_j;bFV zIYTZ}6|En?Hrbh)$n!(XF&s9buUtaAb2BdhsD~PM$Y?Z>5$4{$wYP_MWZcs zsW3ExS38s->9?ARpCJyTjPJaM_z?CLemEyMBW>YhE+9#7=$kAdtXWOhn9Iw9wRAC5 zR3uJl(q7ZXotgNi5pdi?Yw610yhAEzQTq(v3g z$*xx9E);^>(i-L&vDV9iaR?6wEPI-?d3dQOtv;%}Y1BvMwE+eX5^w$A&%C3nN=txg?01BuR8}92u=iFCgwtW!ZB| zo#I&Q%SP(1NSc3p?;%-BiJU%?h?08klBkhfX0Maj-TLD)>acJ*jMTAEcOXCO|4i%k zRz_~n5R)Ggxlhf>+%YMUhq(cj?3~gyNpmSwlHLa9#m&3mRN){Uw5Edk2Za4v+FP8c z2s-!g54yI=Oe=gpCK^E>Gne<6Q$$Vnipfp)xNkN_ubKIgQ51EO^1#lgij z$69th^yRXtr{o5b!cis#v|2s*fjnIxzRTh|`wOw8)+_*4BLdlg8v1jte@uTWyl&Z{ z(T%H#Iz;-Qm4;TmJfUrV5+Y&^X?1Knsfo`GM>la$#d&nWp9*&l$#+J^DnUjJ8P1k27Lc!U@5lJK&ht_LJY^ zvFGo(n?}? zY|S?wQETK<3^hWF+%|lVM@GR)k4-N`Rp_&E%%G9|axZIcrtsZ;YN;{JoWlr(d=t=L zkC{Bpn10TAJ|`wV=j@Q)0OFo<6n6DE@lW$Uyn?4*&_C!!}9fGA!v=CH?& zCJ=>Vr0X7l0pfl}*hynduLr$LRH19+o+N0RYC^%Rf+_M%`MU~fBi@Sh6dz$91|A1> zUk(G6kWk57V^fH$D5^P`jq3qA*p^IQevjx;v@@!8UarlcU^hWV#54h3R#Ktct zS!Io6vr}seACkOgXl8^{S2jz=jD3QMHeoLsu$Cdp5@c=3`;2;pqH4uW|%=t>&`iD@MX})&jaaTaa?Pf{!Q1RudW6c}vcuF>*0d2}@}0 zdCGK(Xw*BD#QmXgXUea3k=Mhv(!MN?CdOQfMOPwu7?yMVU8P%KJ=~j(nXLEE z`R+u(U0HC$Pu{GO#rB5_biG-T*+acFrA0)s;ku3;GOMQy75I0qc9tDfIYuJ%E7m2) z{y7t07Pr2v0+OdY!8}}`3oS2~MJuCjKzdX52xm$CZy+b5_#wz)v|;g>qnmIRzM{FP zVnx{DVj{&x@`3(9DjN3GpV>9d0aVgEx2;f6>{aC!!_zv+CFDBBg)#EzvjpBY9h4(W za;nnF5PExLTLkmvz&48v)O(EnFA-d}K?zOb7 zDz&XyN|dsSZ&`nhd>meddr;Qc9;J4wbBe|uYO^cb0W%kYoLzc z2J+^P;b7+x@v4xYfSn2Oj%vN8fV>{Y^!vDh2{>-x#41*sm_?7e_}Pe>-W=*v*!td ziFtq)H7kFUag0|lVpBW0i@esNoKnZI@n0ev1iFMBZuD8vk8IV;&X}KnA>O-1clOiY z2q~^`=W!dsZ^1s?w#0T@4|iM>uFYXnL}C|V6s-tfSku;%NHN@wN-?y0;j?r9w*FNZ z?TOgpT)D4S<&nwfzD9WA#lzeXAh|{g_Y&F1i*FS-StUkxt9+zmME=EQ-fDh^{+NBU z-4f89vl3=4et|nm7de}QNjkUw-4jSPffsJcl`fgt7W{D%c<}HVYf^A{RDj~W()arY zG5QeRW6SmY0WpJLV%)(manRrNA@p73)8LTo<|4K_RFK@;ZT12Wzf*R5^d0&Zep}dW ztg<6>13T)DS9Ek&kp0=@Q^CFb!+EX}E8@0*_Mnc{#SQ0i|IfeeiT}y4S9nknDPNiO zAE3v7meO%{v@~}9f-9H`TbLUE_!nZ~Uvi;UQdUTpC_L_{fxda}w+cMZ0hlR`tYk&d zeA9slw~9s)^!6dZR880IoD9+*jJ?W>!4cRQL1IbM}n z;SKS%FS*b=oKUrqb^SIgjh$s~5U9ukCmt2G;9h@)7{7Tc^TV_Gx|pCT{)!_i8?$G^ z0g@LMBt%Kk_PNyY_kS}L`{$sd3PbNd|3RdGnTq{qG|T^WP&qqWQTH!#P}~1??*B%! zRH@o1f2}rs>7cC>^a!JkzT3cJ*+>w5f7PQ%C!;JnmJL&=qwUhXCV{=MZTB)gm(R<2 zKQ`y4<(NK2xD|KtyvFKFfiW5Wuz%dX_nme+-ZcNq=L=(iZiY%JW0erI2WpZpQqLH* zD+N#<9b$+E(xxsQE!bXrU&Hj`J8zRbmNlQ!67w3%=KT|%)qC6TM5Ftk+{ zDIrW}Geu!{@fEdP??)MT#0|l|;ix09Ml8N=!#ykWg6KB?2CDCfbB1QU_cm{i$jjD5 zesu^SH8O}lfTVGFFCF8|Ji#1F<|1q>ToM8@Q&HgYOym8JTQOn|4n`RfW6ECmJYb* zMN@Rin#Y&&l(R3&hU@C1%*N?7={}>DPc6TGEkCwFM(=OVU?Bh$h>sR~{@@uH{KD4Q zw~$8bwx-u4Vy+?w)@fKRru=XTQIL|Kd3InHBcm`1C^)@2x0qFSm~T zR=;7gJLhAuIwL&vt_FUj-f1QGWb|ENc4qfsV|K=C?hMk{9nWdMa|AEYyr==~?u~i3 zr+>MPx|7Qnd)(2PdACG8-5z!Uwnuh9WU}Lbe+S|}90<3H4+DYt$-j|+_({JRf#zvf zdcdc#R{dd4V1o?f)cd&*A?I; zW}6!sxC&u2Ikp}dEtHSBuqk}7=kclS;mwX9LDmg5zCu3K&?lMO$sjUaGFrupBqQRD zckZN?d=EgCEZWB%o7P~WHMA)#DM$$|i{$)qa#nO%v0)sp!KJoek1S7Ogj>i8JS!}l zjKR{}NHzNXVHns$kpTo?$zMECcH;8zXNQg_erA1m1YY`eHdBH8%+s4&4)X8kg z`XG1CZRXPLwL6-|;+b0Rv?fiQvU$uoP=YVl8Xosc*3UPyKwea)vRDtq8_@3|!xqxo zD79GAb^x{}8oH^DEYjxWYp@ zvcQ}J2k@R=dbD?#p2xi}@tnvV%2N|lJs+hBs%PHM+}sRk>Q~Dhzrh^T2g0)58Fw9_ zBr`bKTh3qNmc@?@r>3_UdNo~)Xjl3g0zb$n6`9#hA;?%Kb{pY0+Yi|AKg)ORo;!kA zX_|7)*p}si)Al|D1!-o}(125aXl;A|rWrxX%Nf!;-nCZkH zM?>Itx4`5)#HNt8@*CRIIL6nR;77#iu*U$B@Fpo zfVlFd#nzCObXS+4yLNt?PKqcZI*$+}?1&9JWQ=?&kj{W*ak5WfPAxoIP>~s(U117> z&UZm8T2RRVhrQGU+}SDaE=Tl>k80O(IL4mh1WnpV-($jtidSlT4%S{Nc+S{p?J8i* zdO_c??5v3ryi%=wKyK@$Nm{6iYJtGJh1{&C$Mj`Thz)jdJb~8iY^zd&F*>21#O2Qc zcQ3A(CQs%WLkZdL)!tsFDM^u0!~-A)Y}9?(PnHlR7iAr`1sNRF4SIu5_AuJWddvqIn+%BRSs4XP z@Jo3*WxZ?Mj2+=@g!;v;+>5iR+Eys-C)^fCrL^W5s69YvrOg;>Zo*adhv=+!1a*vW zpC&yDNZW0(7jkdvMT%!J)y&V2IH8;R`yTo1?0@ozti1Ry0NxXBajI*?lv(nJ;XS+i31aoK4UxpfR707 zwxkGfoB}*TjTeKM9ssbwO!fWm4uPcsj&CgGV5SS2d(#9XU`Z}6tgNi+eKWkB7kVN4 zgh(-v=12r{UKX9PpO=mipMRVZ_+x!U{$dfZavI*|78Boq-4~n6IObP ze?;5#>43QTDNnH?-0-zPU!K`tH<=(_m8h%ai*~`uf}j^Y2@6$MMkUeG^uY33r1f~L zD!F6aREye!&{M!RpL2$(@Sr@Uo4VOXnCU@!=v(z>ZDUq)CKsN*g?3Abi1R{LY~tjn zW?WWcX%>A})X^Q;ZZm74XOKR_+?0V3kAxt$~taLL*q6#|L>+HS-@xhZIR7#;O zzi?b?Iu0ahtbcE!Eh4l`Lx7%hBQgJcTkVt!7A|;ZXx`IzW}|+t7**XqhA^+V$f&UM z*+w4<9*qRg=-gDIC03uT$Lh~CMRT@9okpC!&#(8WV`!{R7zF6Ta} zz2IXhT`B7rDwW$R;1i8%E|XWS!6+yxvpLseT(9QS?GlX2&bwA7Hd@TTRxdC@Rohrf z#RP|adL#=FR3VTfjq<4^%_O+TZAHnsQ`>9c2%gD<*(rE=qOSP-H@4nC-HoYQz2ra0 z^6D?7Cfk1=g#FXqs2e)kTH2aBiMtp&{vT40gv0pz__OrBy^^!fefYbvOxfs(BBPu0hnr4zGZRiZ zC!0Av-G9H?qdXl*?Cap1I0*g>iv;mNagf?V>oQd;X zPNa4zx~o;x)~*_z@^lI}Y|i7XAsuk|GB{vcj5)WgUVAKpi=Ez>Cst;)9=VsTYT8c+Ubii;S&0S6Bh#QE0blU%~d;vzVjhYV6S!=*>QNe_Z3)v&f0?*7 zL8GQy7lD2;(&pZo+6Agn%&rc$cUw-~_s?>#zb`V}zR4Y!;XngM;zg(+ln27RaiWEX zpe^U;O$rHf;4`E45}i44M}V10$C*Jh(w6}tkyvz$A|o~<=qLawCYM;jsdmvXsL)57 zlq!!YM_i`lQR)2U|n5ic3T32GHL_dL-T+Ve`tuzbHRHm+ZjztqWTb)GpiezOIj^Fy}kX>UgNZ0b8A7cvP`N3${ zvXS^@^@Sb-rp-Z z7~r{ct~v4($tRpI%>;6)*hnO@BMikOKRC*SEGkY61TFsg+rA?w=)Por^sFV;45PKg zBiutqh}LFEccjmSM5@?FUDB|`Ep-8-7&wij$pa9~1cEe9wK%=bgmF;t`P8I5WXv&hnesD zlby~xiwRNhsICxlVi3`X?>Zk3@9z(pDj$`D^@IC|`I7<2AC*SA?*6{^&~Yc3ISJ)P zqocjOqrC@dDJfcqnZGo2GPNd03BJwe<@`!bslLfcOiI`3AI%lZ^Zd32?ER`uUkn4`FAUZHV3G5$<0=1h(ErLELz>Xu zDnr1(WNTB>Z1jl8P$VRAk#U!TP$`IrV|4=d4bUAK0^f#GrikDAk8M_;ki&Qzm({er zEa)>9lUK!70=4R}1S*=Uid296sIX}Y<-PRDX&$2Z=zcOoFe1q7c~rOmWZvntJLW#g z(DXk46N(S|Q*|;2{N|?{@}_`2abE}2wyZr$pBL1&^etb&6UwHHJ!~H&6raQ`VE_V( zchIg{KrC_;VidCXB!t&qGfhzJh5^2JKSakK#Z)xXrrfP$fILzZ%BCQV8}eXSXXLIe z_9p1l`YxvTI>b|-dHtR*ha3&U?54TREdh_nAy^-@mP5iWYCOWiDH66fJRa#CBN4y+ zEk_?ly?r1(%q{8bBUtzglWY#zGmOorYQi5AHXd+!6z?gBi#_1?Zreby`eLN+c<33W zzp}4)v|4vKv>w^6&umw(xJox2Yqubsso*<-Hz@Bv2S4Ld^@*O5sy-O|rGf)1yk@XcMoM}k7IrK_wMh;%q@+5N5?R6u?NaL5ME?UPxhDw3 z4OKL)t<=Z5PWBlF$?+D58Mjh^7nuyl+Z1AaqKO^{HKe4lQ}-0EFZQY%S9l)Oj?8A$7}g%@usy~5mqt}0EwLo^ zZK57XsI#cYIO)?N{3z@|k~dmu79;+!+48}IIh_9MNHA7TCCZG09$``Xiw{$kdko!= zf(i55G7(M`;t)^85k01IZ6J4(z4TnFXES^(RM2Wf;%TBC$3|f(%oZZ6&j`WBzEDj{ zW?89~qCEAnC={Zo)=?ndYZN@%u_m9a3mFqnfSj(B&9xLx+Nvi0!-`%CWA_PwPPN|1 zdCz}~pWY!er)A2EdS)5Pb{0?Z!i1RcAfR$~HRJ>Mt@QlY5lXSc2o3jC%?t2kqk34o zHzzQ7OH!PVy4b|Vx~KmAbCf`P4*4vU<~@v5Ud47is>4qJAAMII@Y8=azud8rlEyMU zit#$tWh$Li-xSxZ@|z#}9{sI4(x=$1TYx&$r{Jx8fFDvOp?i`+!Y*sT3iLElZaY*I zK{P>DuaE)hC;=iAljV?at5gv6t`trkP5hchGZYh;C=?P7$tk%4A(0TKxQq!WQO3Y= z#H|`8s^K?yXc~2sdyVYgJ5jbAT0{;1QS^Eue_C`+Mrx!rFuHixyaY?1w`xzER&~nEP>1W4E*NMv#~A=AYRpIz!^V+IC)I zqU!BxXYWl4>O!wH8}KI9YB8kV;9tVehyNZkY~Toy$Qp(%4}>tFNhdl-+~#X7c6^mB zH}|TzL{+Z{-4*?sHZm^~j}kqq3~sh^63+`+lDvxaUYl$J}_&SU=dwCh-z{mV3cfhbx#m+k~SYtX*TnOWOa`t+`8BvBB-cx z2<@QUwS>;adAfGp@y*%T*%OpnJ%(?5TVJ1w-#D-p-FW}5AL)j@wr+T-D4S9=OMP+t z5y-+t1bJ2^rLvGARFM*M5K_i;OUk>$HuZyh@t2HSPi4X2UD_X^o&rjDb=XO9Xz`TC;xpS< z%~g%?3Pr1FPOIHwCHa}e6HvaI!(7|Vl(l2xq);a{`RwV!NVWLLcDjC143nso1TvDu zTAATiIxBwdy= z7GvVoE2F@8exz1>*i(k48}?YUiVf`5o5z<@rdGO3e>2f@)w(z;K`v(tKf3Z3=07%J z(8lSb0-rPZuM3eI+_Kw6U|y`?+{%(FcLC>%iLvVLDp~^k8F($FVs6**Cu^a}qYsxu zp~@ja^tNap$LVZ;W}L_m;L|)w^wg}==|o)))>2eFqVpUX^3M~5YV47=&f<}msPV_j z)L{eL)2PN5Ntut&uuW-5#*RDcH2HE%9pw*dUlu4>GKk$BUS++s^XK!2Po@UPGpcE3 z<{%&sEnrrNn43U#udY96x36sVrHR@O^z^0mVo@%_MxiFG=)uW|F%$CP5`jy!tg@K? zg%Uh9&dFz}2Z5cS%pf_)=`xkFVny@B*`s^UCdHFG&&O(6%*#*i!9hx^uy5aTZra)& zhKJ_7B?`#t`A$g-VdA6)w$0plz#=cnb8k6j@gcSl4|!^Sg8v2SJk9)>?-f0B%hSwb zEnUkSWdppasND*;fo&$QbusF|-=N#RIrhQ0dAjwbzj^xo3A3#~_V&@)6Y+$66I#0! za>Zpmvx+OX0!9-fn8isI)92`AV!D_cFC%vsb)vnmSCe2142D*M)D zo_h>1LE8;g(2-vb_sl=8oK6Zun-EWptO9Jntx~zm*8xxd^Vh});g&~bI?Zi3Y43Ff zwQ1$Hw>S=68rdiNd+dTEC510OP` z`Svhp|MkxBf4kYoo>_m74tPyPrNJmfv$1$ zJ7+1e4KNUwPWb5yGu@uI8i83^99P*uS9_d{8$7hCiWB^@O3R&I?;10)>QKb)`gnbo zn1Qgo(i`Eq=jQ?bOJQvKC)^1F8B-I&ePZK%dYTo<(YhjHbYDA?hMkqVV~lGVpVp~8 z-?tPEyx>2&XN_ioejw++uvQ6tkkRv=mBuUVg|5*yskNtxSNOWr>!)+B*9;g*(KH(3 zF6G0@_rWc*J$%_?ZgtNSek|1O8;16*y`=MM97}Xf6=tuvVA0hbL^$%a5i6WAskj1P zM6j1owYn(jINxx5`r~+bhu~1dw5VV~?V+B?Ir;Py*g50|xGF(JQT69AX@G%JIIUu( z=)feSEsDv#fhJ-C4I=|d{$xbLpGCPGKCpolNY5JpmIHwcib)nL!U!pH`8_;rtt*T5 zVq-I(V*J0EXLu%rcDm76xNKGJ52)5=v*$eEDU6u@tQ-Q2u>+npptLra!N?=Tv#Ty3 z>2cQ6PQ)_3%h0QAAZinJt83&_HqAL5vU6=4gK7G5jF!+)zZm3y=1FQ8t1!syG)f{m z6hBApwG7w?U33MASK>@jJz;?_8R7goO6BXU)sh#K#u~K23#oWn*LG(L`E|q^t960HO5|y(#7uv#BI68V&-m}t{_^`Kn!`@LA zm`6DyQ3*R!0%`0V>CA>Z+Q${m_0BnJJSgHDZ6``vB8-%?!JQyhHFx5JGL*z3(Gah} z7KB&}b}p6y4eeex%yLwKQc;^KT}*&^%8(&D$dPU|Qf^0mT$T)F!;?t5Hexl+6v0JW zHUxkkasH+tbVTMBAG_vUUY*d21- zx$Sb=(B*&T(YX&w8za!U6=x}dS>v@;!GduKCU=ij9V$3*thhH61 z>pzK;SBl$tb^w7F02n6udnud$%JKe@{&cG&sQe{Q&L`RS10UTuKMxJ02osp~ooW$U znMq8t7$`|_IKUG(-qEprasy9w^c3P|{Y0~*jOF9oha#RwJgBf_-~tv)l3%C8^T$)S zU#HLY;(4zD@Xzm?QS?*HUVR5H=%a((DplGHZ@4JJP5bexgHm!X|zd4@E4edCEC&vjEH( zyo>CAVS&lqKjBd^I;!)y&}L+)N#4m<4Ls0RpWFbkXe%8(wYJ9QVzurMjYpBpOx16m zW_jmv*>6ox6!;OM`7+FQmCV&&EqnLeBy(-jk7Lq3JkMuOTFlen{CQ0I6YFa3#Gg6s zFlEs=sTDXE?Szl5-QS=$GwXE>y66VWmNr?8!5n|gLLo@U5@zPv2&~@K4^sx^DY7@4 zAxLQEFt^zC?%;o}fB0oSaNI^jXE&exr&M|Ue!fGLyW^9SCMD72{C6>^mghWIHr`-E z5*GBx!y$SM){<*jOl*9tlD{4@e}Dv4z-c>l`8PSnS#J|=KgJJsmuFdl11gqU271Ni=x$ zrj9Y)WCB&|;Y4btJjN6%R& z-C97qt6lV~CiKl>&|gz?rX#xwFT`JcUG|S1#VG`7)Q5=1zY`o;xrp~SV>gCVDktkU32WJ zAfL~1#~)mTEVIn*mf_WEVFH{rfbo!h@E*r^cz>N)g{$vijI9F%Wj*^pb@yX zg!t{mmP9?sb9BmLl92pc)nF3suScVx#C-jzc)YQK6t!Ed&Sk*CWz)h<_r4^?_!rZ>KnZ zRbn_~<}1kUrtU6l*r`AiPmv7r^Y;;SYzh>HJkl@(B!K-Nk!ysY@d806G9OT`mHY#! zpEzmUtan7JKwqy3hsl9sR!-;u#AQB~cS}CqEpDLX3xlrBK$3|IH0o9AFYj>|mfW9H zK_p*-dI}L3mOKMIJ$62jDs37qmw5?9!KUkXK3X44{N;u4>I(o(TX@xl+$A**jfHu) zMLD!bS-s|)Mc2&SY|z5^p#I+Ju}8@_B<@d9(mVTuuo*Y?pgaCKe^5$iJ^l{qeLC$I zq#hC6YRcJQuhQbje;I53i-fVNyU{5C#2;4ZZ{K+Smbi6ubaXazaS?Se`EM!-)#~ej zwpz@u?2_^ELsf0*ezhTBu-}by#h5r- z!3g)$2;q)KetX(Ag}mfM6Gp8^l;2lt&)W5*3nARviI7?ApTiQw=mjxbZh#1GQuzHJSGwZ}Mh4I?(d{OKxQZLwN~<#{bx&|*_| ze9$d2_%(_NOvPtYCg1-XlRnj-ue;$_xj1{GGwtTs$Sd=aEU8V#Y8H9|!DUSGarRiU z-0>gD@EUWtdG`m|Rx|Xw!V0rlvd+#tZIpTz(vTK1Qc8cm#)Dd@L#l6_iVP>Gsl($r`0$-2glzzHwfzp=e9d1+Z5O%^t|E|{x zq-mRQlH2j~6+}XML6qR)M}EOv2IKFCi%RG#oyDr)AXnXC*)X-Fw($emGH-(Pjbq@n zhw=@r1?%bO9K3DdRvxB5Wn>{cE5nruk}K|PQQ*ud<}Mjl>}_|pQRbME{7rW*awzJp zY|3e*%Z~MwmL!uopV7Z_jV(Vi9~nprBBQ8NymyQeY}MLSmiJseFL)7Sg*blL6hp$7 zM}^4RM02d_^ZT)sext3XI%;&G(qArBMcM_^8qi@+sg8`UF;Xi4KXQe9yGS^P$6vlC zby=|wj8_=OvGJ=$&5Pp}WM3sj6&~g+Lq8UJO<^h`gGLcC-nQ{^Y(P*0WAMo*#pr_S zqu0sXR;PI?lEQ#cVSP}6`}JVFWX^JB+BT8ME&8$#eP;<;xg>ZmqbGH{gFSkp_=T}J z@ss~VT%&)Cv%{)N)#h4VNXNpelGK*cPncBlt3%xq*5Runq-AX=B(7p3DaFmpGwFu| z_Re?Q-xXqN3jO|3yT;$vTLe@|aG)lRIIX`Ac#zJ`)Qdsbapwd5eu zv^82&<^j*PXS)=xk*G$-9Fu`iZ;NNRjwzNrtxqy&& z1o-&>KJ>XbTA5fmxVZpqlO4^RU9HSq{;lCPJ4OiLmWe7#p=L!F#1{nfEQGPw)8n@NH>KMON7q_&!^$+Qj5BQ24Tjssvc) z@JgAdR3}mHu}srz9&FXI%j0gt#Uj~>FSqM_3_?VAsmOjZSP{hwRX^nuC$^-?-3!Vfb;G|1{QMR5LC!2JZ2{%FJ%E6s`v3gb z0ZU;5cn<#225V;ee^%xn_%vH>(iuepmCsHF+lCi9$^FmXu9k8r>%jAa3NJnt!vS(+D+E@=njg(!N3|aLRX_BIOouTV!+z?g|8iV9YEbF z43dFx>9YUOa1`q=2&#nU9}xn1a}s=nKIjOvd07)gA_Fl?W>tk%y^RedTVT}$?*Y^5 zGTPzUSa6)|dwvlbj0g80V8FHoaoaF0dpc!^#iJMfj5`pD=J-@%A$6bAyXrm}5AFC7 zcsW+VU`l4G=w&-osq$eNspo3qa|y}~_kkX1qY~?7!m9KGx><>EGwl%Y(j$GK>Ld#a8 zj-1OmgOc%AhDduI4(i+I0?&rDUnmbVk6Sd+rvVIVFU?)+`W;|ONL1>%=NvOEIXJF1 zit*2u>osVN=fUmJ7A>^^R*yZzfhxwa%2#}M+F>GVW@^?&?5dpjoQExf$wOYu@5#YE zC%1S-2SkuF?ff?ep+XQ=>^yY^g)exz?#TRbMS?*h+^wT7;xO^cq;&WKgbr(7VyJ|e zq^Tdc>-H2<{v_>^#z+R&hMXwUA(rO6ZUnt01R_4bA|DZa!w?{C^?@CGW&@EoFu0p@ z;oE0w9-Js!FK>_FM-f;mQ}9olBHkUrZD#>LBT0!F94V1b4G-|ex3E_mZt8GmC_ z&Evl!8ADwT5Mto6;)0!-dhm`Rhq)x}Ncp-W$K>%xASo!96i&g!eIxFy_IQ~jP9Hz0 zQH#?&-~~ut|Dzl~{())23DEqN2Z+_k|9{`_|Gd}L8s~pCxqsX@!Dt3xFS+UxaO^R|_k8pm5YPc)$W_x`hmWJlTDLMbFk_4oEsnu% z5)Gq+^rIehU6-_F@`ji)$sQsaF}f~>{K7N|GMe(-SZsx?5UbPdLMS?>du6oxgPu3o zLaV8PvrqUikR9C#>vEQqm%@aeJ8BL}PaLCT)hMVFVwHNFn2d<7ACa<&+pV!c-B6A( zhx_DQvX~n=qgLip=~r8RDV;%@)N2z%2GhK^u7cSVIZ4VAtjw}(Kq>mQz6^iP@1%~$ zrao+2*LYxH&ZMk^z^4yq3+zmVZ&IH?syT`t&Nqaz}C_oSZg zXh%T_^FR}&e%(;0&M(LY%5I&f9($loUi`?_xB-r%@k|(&q189Pg^t#6(j9;TqqxPc z4hmY<(uysHrdArRR)OB?vjVelRPWE^q}k01YQ1R*qEMVlJ30jFwBcjyvDE6d=7 zCU!NLEn&?k=kZmVoK3=0wb(#7v+O)bRW|hdq=om=Ombj`nIee(u34cYqx@&(H>OQg zNG7Q0_b78#bf}OP#X=%%I9n*FwgH@0wpWvW!5AAO5k|>c#lbl7zzn89G4Z3O?mZXc z*monEnI+7~<|g|sw7XH@T}7KEgHy{3`N%L2vG+j&XjIR3Vrje#G@gv53w|Jm{7>^u zM!JB~oIGvK-D=!kd9%%sCKA;ZjMz-5PD_e8=X3M@geIZYs?x+&Qf=12M9ucJvZ8Tk zD(38)SY-QrcgjNYh$`mmh+RjWH1t+m0=GYA!QZP!ykOL;%8E^zc{w`u@L;P&c=l|R z>10?EL5+_@!cI_G=b`w)Y{U!hJu1YL9c{)rhq=!1$K`qwDFo62^uBV>!|Coqo-qPl zuw1=gRnkep$O(>A?928KfV5$rA#2(q?zmUoj~q=aIUDfenH#zXr_Wcsc)x6>RtVO_ zg{mcF6b)s_Ev3~2IR>SC-jI~TIr=)C?>8RyVQa%wpQm3kn3+>9gxGi~C?5 z43kAEG{9UBG0hFxSbm&Wl~)h*b|iV9cF=6t^Lv*c4w3Rlp5iNsbYm@KiaNAcyn;t& zQucsM~vGHuLCi9uO~-p@US~>!N<(;a*8Gy}24CHR?wE{A@{F645xNe`+*w+YQJ&<*hko#NLG9v>(~?L5{C) zPd5nXU?2j5jhkxymEmB2NiZD(9fA+68(o1?+1&zj9e?mwQ8C)R=r9_bhznyZK1q&F z`b{8fi^y}BbCx*!a?tL(MmtZ$A_xHun>?ro8H!E1Rt*KS+PieDXsHBU1sGa$t-Beu zU3|W)v-hMT{Hf@7a&_PZMT8w5O;N9ECcC7ozoAv>Wf=7fmH#rQu21ZE@gw?p$W4>9o_2#k-n*1o{Grl|^Q z`}3HOdo23A=YtlvTnzlz!x&vJ1qcQMX=J`)0~%z$as$g?goGaF9oC}EQC1Zt-#N@p zT`G*^Agd^ti!(}C3T|D4SGEGrKpI-E;S&XGO`-a3tv=t?wdom-WxJaCeS;~yEQ2GV@(oQB>s0n6Hag3nWK^F5CkdTQ!DnVA z?FCHj;df9f;A_*J^B_5yOW^QFx~bQL47-=Fmln$nI$Paq9IK5vnw?HeUN^KYgFpFN zs$MjewC?UMqn#WnPAxWKb*FVP4#vGP>vb9IVCnFM;uIDjWwv8q6jpF(s z&@Wg_S1br|RS`QV*u(1Y^6e&|vWtl~6j%Wx2Dn9`8r#66$lBkAPJnCPT4Y`-V|sV5 zfjgIu*171<2)Ij1XsL-(w_vB?P*h&tx4TDvw!pm9;#zJd=SQU!pIPV?d@1rGU!GsY zu04kL#gbu1;7*<`m@=DE8SI+|DQLtKC{7`r-KOh#D{>Fw$rQ{w=>!RPJ5z?TaP>az z+f@5ET#w8q{?59Q63L%pOo7D{Q4cKPc_3Jbp3P=2axBaB47QFqtbKA0V?&3d+IVt_ zVxo2(X|Fh-c8xnH3B|P1>N#Rh#Q~Vdr8OR}aSaSt5i41VGQE{CH!7HSaBOsJu4*1I zj0f!1utGPx>OpD7o8PHkZXgM}L!-)PTs2s#4JmQ@9nrYbGY5{4Z2}gL4OTzLM;5F2 z?7W!SZG17zdKhfC>-A$x4Fhi4+H$eFazcCpN#w918ota7xxFk1<(JEb*OqFLmxTiy zJ*?7dncBhKP){f98#ItK^9H}lNo1)`R7vJN^dvF3*&#S{0<^6&ad-2GTKA9b%l^ZO zBroF04)^@HBekI{=g&6d6L)@!iQ+wL7UTY;I{yUaG*+H#Q*EQw(!M>myJ@y8RmeQJ z%ZJ(RKN4Oc%HGotsmkIlmNA@NV7KeIZVB zt$Qaw^cNJ@!~L-%k(#qdHWuum+rZav-4G4nC_SH)Y0>tj!TXv0D+%34=+!};0m=H!f<^#>uSSz z=JGu+M|+Qk3C?yd*^cwzoOgR7U0GLla!0&&HUEf1Rw(nr&e`h<%6Gm`5j&)UO;fs} zkE%Qzrit2nPDArp-8-mf70)^)*THP--##b>b>Np#jqY76X?ba#A@oI8W*T+KcYsV; zk$OvPUQp?Tc|SMAu_w#Zw)Rl*fkxPCDn0uT9Oj(WU6BcR+qVGU-xHNp@(GfD10tG(l3q6=I){*-pq`AJ3@S*&WfzDy z`R5)~mJzr)zQbQb|AMi~#`H>%RZnqM@!2dA@)`jNnvfS`+sU_En(Ey>=aTt2iDxEP z5R3e}zmvJG#}PI_m&U_?sec2W40gfAt~5EIRE*u8u(nt@-C!XLeEqt#&Q7CvF$%JJ z(jq5pobW|4sfhXy`qOi(BZv?%sh|$`?VIY~!kYi~mqpFYjofTqmCa1eOl*yu|F^8K zq>;TTz}w=Va7W{x)v%3e^HpI=)R^zOu+17EV$m%r$VqGHKK-`Zv}JCY^hWEh92fS8 zT?J*Hz1t@*J2*3(n6p@ZLs&WQ9PcEcy-7{7c~;7MKgY8gkF&O)v#)!$x4ItJ3BGmI zVGarL5}82c!2X^k*(Z9KI2lx7hR-(`F&Y}WX^P=Q-ZK=0of*R%`Vq40#u;Q0?8;7j zQ)r9{^P6$nN!3<>f&@xUSb7AM+zfZ{9=XKScEAaX;wGrCXY3YvbP^X^q>s;xGr?ST3Xw!X#<_!cQ0T36^jZ2zh+y-g8Y8f$<~KTliUj$T*kj-RgT4G_O7 zU>@Eaa`PMkEO$qx;YZNS4Oeh!Z|*(}n86-RLwXQEr<`f|Le^i1Ll5~(M|bB%z8^r$ z_LKEHSHYu@J|t=LpKqZli)3)g_?xY$KQ_q*-==f%T{6Qi5eb6ELo8Y&dujjIIP9gtf_6v5Hy)n~=J+_869b z{&{HfquEv4BWvu_Pc<)oS;KHySs06S5Nk@CMZ2YJ&#B_P$e1bSRa-s7hfY=u5qUq1 zr-T}esnl&e-W35$HQ!B(v1O_52#>OUOR&hAKdo_GG+A2JkOSFGX{F1?w6Nj|8t7_` zP;MT5bsX`g#CcIVeT&95P1a6`A+pngu1C*(9%z^R+dc;;fT^!-jHlOae-oZi{L% zvvSHNl3QPk81NtTCNJYVlTgghTDbwf3Ux|pHs21?qLX}EK8w|wh|lJP2yE0@h2!R` zM(bmTjX{zTm&D}8xv`06Pz;=ZFaa8mMb z_oX`4eJift)u?(_ROt6h+a+=2bVS3Mfb_g=m(or-@NHcnr7LJ9RVrh(yLiWn{oJm% znpn@5{{uSzi$jv031ik3>vM$e%*~c=CvY;toiz-`^9DJCr`BYh*uBQEc~hoJ`i4e~ zgim;1jinb|(&T zAq0M+a8K+pw|JjfK}E(NZ=CB@jk4aU=}I?XpH$(zeG-w4#1V#|Z;G3$9vEs4*PVRd z!Q^F7$>brA^{?8E_FZSky@|S}HAWoN&i&3c-CngMP;7HmF<7=Mn{W9vDvk29Qq`+f z>VB(3^b8cD)!O?FhST@Bp2IFVX-a=3S5(SHQtiGv&@d!6NiF$$SAd)!3|>g&;LypT zlj(lS=hBIBF369LB{<&VonPgf066V09m;P5NMQv`Mj^M1Mu|=tJiC}?On?4knkM%` zS7aKHs^bDub9&Qar}NmK}H`Aq5N%==;x z%*5v1Kl1Klh=|X{=5(P7*GJ##URZ~e`?cZMNugz)_$ zS_6J+@efqSGkZ-%$L~4mdj^e$-(`liiaj$CI6#`0WN>l@5 zwd-LS)*ZTPj>#%7gYrs!dU;D{N=$ehmz-c{^GoDBn`#grY5fr(-#X4H=Y%>etJVV7 zSia#U6-tr8%g#HSBv}f&Fa*2VV77^$z{1r~ZbX`ai-UQkFdF`<5a;$h^jbKcb5);X z>dZ)$XXirG!RDpRLCZ|yH_dg$pW0GjN4tn|iO=h#qPwUhw|o%}>dJnN_>zhQRP&Qb z2t9ZEbZb3~6i2C=F+77>RLGn}XNpRWgBXh0ljc!AugR7n!&=$&Z0dWK+~hu%@^uTU zmI8K|+^usbEtb>oE8;~^>5qaaq}3u{o)#apN={5s2O!;)18B}BxO&^gWvkpO$_g_! zx29GY%uQnW32ygJ$uw5ChLRpVYwDy+vi9dj-N!GdAZE5nKh<$ml-h#y{P(aBhdrsg zh7gBcDX6rczM115KYi22pMQ2?NsxAdAxL>5N{~Gm%L*D}oHj`no0ls{dD3)%vf5wb zn1Asnc|n0lO1=R3Q|?N5YJb08^ptsF@+aOcmGuv^Af?^WLYk3kixGnwBqY5?8nV6Tfedga3fbO| z2ZqO07#?A#D+5TuVN*EV_`ZeiQ2lDUFl53a56Zyj-F6Zh$|Zfr3P?Z{Y5i^}bu?nu zOvOf~fN60u)IWl@j~$$WwgAUNX~8^#HisbV7dv zXG_i|>guTm-buOnPyKFkgXgZ#7;6LYS>}GFj6IR!pWmc$`tnUH$*JjiwpLqZK{d*1 zh*^p=iLHFB)TpT5)of{W=LP1EQ|6a0acYIGrFP!>ON_QQSjeSX-CTORhL>EKY^UaV zbL_RE%JWT8(P52Y_*iLlY|N$=QTYm%v}yGAwamrTED!E=Q0yA_l>1}h*aa1Z^FRm= z5o49x1Wn^YOy&okg$9i$TvnOlVL!&G+^0#w_2BR)T6Bjeo9T?n9xjwd4m%pFI6p%KRAdPMr!8I`PsZQyS#t}q+rW1 zux!<{=&IwRN+A%{8X3{+thEcVWSma2y(eS8)<6Y8GO9A&86d%K4^l?XocWHv)$f2n zol{|TXO=|mv6dY++d;q{-fF=X^f1^Q>|fz79Fm)>@Id2-Adr)lqp!U1_NQLtgD>KD z>-X^NW)aAnP=)<(+Y1Xm<&S%qP7iY@{Hn+pjvkg!i}^Ri8~GSS*|1PDWm-dcFqH3) z#QGbvf){8D%Uc_>9Rrj*oLlOqxJ2XhXPv?W#JtrS^=YKbIk4gMgWaIp#9j9{Tq@PO zWE)c3`Httv@9;cKUMReGEqwc9mlS6MIey6Hr4ZUmqrKy(9FGd2_idAd@iovTgX@$2laXu$RcXI+Ne|O z<1L=>kwEs)aG@i*yge7KDGBfB6NaPiIX>~BRev)*%@hXO&FpVgR(cMC9)E_W1dA&9 z1;3L-VWKjT?p?yuy;B5c(C>2dJ{(>n*YpQ~;Hy^EaZlO{2X3W;p@w{f2%|-QKos7% z_8X<)b$yFnW3nzSZ&v1!v5Q(WSvZ1u(G}7IDkO%F{DbqQO)0pqZHPV)qXc{75kV0V zivh1%Gf>#qh7REC1Nl)M=X!``VQfB{Vs^wl%Xv7%ePq-Z)2jC1;T~i6IJ}q)@#(;earKWCpk=Icc(EY{e2v{rbj0wV z^@_&abk|tJLF_(7yl`_|O0FC=2dZcGn^S(4#yIkaF7ak4Y&0!|OW&;o%u?-vuAbCB zwco;L(PFz&JOV$abft^nHStDyq-s4Sr*4OOq-nYHOeVu$_iH-+$xB)j?Cu>V&=!B; zYIndPa3`wh1-&KGbx@+)a1ppsW2oHC zaI&{1bg{)eeoW6>Fe?&!g6Q^#(g;^)v?o*=dpZjr%l$77mTUrnUVjkA*ml?&6J8KF z4%dhNi98IiY*8UA6l`+0hE3JIROFVha{G;?xnL_e57v!E$9ST&8_t^n>i8raUnm@xQG@z`hg(a%=VFx(GRdPhPZ%-rMTl`U`{1TD;vebO&Korp(sX&Bj8+w z5Y>9+)9{TSZ@+cXTRjccABZLVAXnnxYh<%@$)-#{CsyYmAa3tB+sPF3(AqUH9wRVV z6cTN$Z5IKTvB}&ht-MuXEym(;*6p4&jz;-v(y8D)GJcl`WCwg zY30aAzlSP#OgPit)~8R5|5Gje%W#8Ums|f6aAa)($M4lTPy1JbK*dGktu@7v#^oH$dDZR3$WU0LjRbb1PI4tJM%Acp!ptteZwBj+e%7 zFyyn_W#gy?G7x0<)>!*Blzj_lvV&efO0h)^#SM>i>%_|}hotk5%^;vmSZT|v$G1GG zsg>I3;qCBpw^bxERbml^qH$M6pB!sUF7DA?dZJVS~k@8_fw|TnI($Q6ubzw{qs{uO9 znP&Fi89W4;WzK$@uHhdGpUc*378#11_ob;3SrK<3kzI#Ywuixgj`SM7*nElnxu3$- zwDj1?8x*1-ry=eAcJCS&DjQnmnLa(R9 zXYN@pqq~Tz$pCa{HVUa}E`u;L>;v}SuMdl}lpz-2>fix3TlnuH|G#avh=aX}vze=z zw8~%CNzusapZsQu@+83h6O|8z$LT`0&)#cZn1D*|LQ%$6M@@27aRItWT(WM!t$L_` zrJr5WSK9v@`zj$@`4Dh_iKH*;UYs4iFjPUR`IX64`}5ST@7w1s%6FeSHpdNRfVj^{?01Macojsy@2ec zkno@UO)BV4hwv?S5wjmf2fxCH{RCnzx+eTRHTx?3C{8=)n1ELC-Bxc!1UAh)*LX)C zTx4zejDGN}@)jN!dp!X;jkzc{iqW2hm+$v*I)>>TQ|8e=>vy{ckusRCWQ^J!^;x)9 z;?6j>w=+y!_CfhP6&3~_muLx<1R3_#N3cuaVQ|t5A8U@N#nBkE)aC8akIK1`-g#>@y3HSJ}>CGrswS62&~i zM`h(#cd0#k;D9+-i~CU)LS|LrfFkRwyrR;mjn-)FTkoLLE7o+bW@!Aigw3=f1h&&(-NE za7!5iYHDj6owwgTWe7KO)`AUChIDplAFmvb=gThU6f*3qq_*$cJ@M_&0A9lD^QztA zzV=J^1GLZF7pXsq6S==N@797d2);;7G+{TrW{=9$i@ji=Pbmk_=6mEmG;IoGrT~}z zA9p@nu$(CK0}{+(sGRJBY!%+OxTxzrA8PsixA#9lNdl_7dlJw&>P|d4YEIxYY&%|E zc{^26>ZY1c(YBK^vOT)-1osmPKRrVQ7^q&#gL0`}+66gFxjGJ^Xd~Cv*XH>ADD942 zfw&B{I#4*+mKXH`=^~r_cvG7%tI9{?tP3+T-D9#ac+P%%)2A{wkmT4G%OAS7R?8~4 z3TE4^;g4%(>;%_$S^TWm1MqspBH~NGySfIUWkw@(b`-f>6cSk3XmD`ua0e&c8Agba zH@mY@X|&f^Y@=hWGfF6o+Voq4G^l91KYRK}SXz84X0?-d&tZH>!q!`)^6r;r?(6Xf znY%85SD&b->A2PK-av(&ctln$r_Q$Q39y0i*;_rPh?cRKXfum^NE4h3y~Mq#?S+oK{~m?Bp|V?9DA$Hu zfXD=0QbV1|^o&_ADaT+Uud|4&w*JO*o^xf@KGKuJhdV3^-w4;U}=vyS{TLP%76Vfuy^!m zXM=Bldxjod-EcKIbAFJ|#mn)9vOgyE zay9yEKC^Zw4Y_y30kw<#mfN4^mgmz}tW^}jp8;UV7bGD0j&w}QzFP_XNqP&umE1;v zKAF`H3LV9J3K5NmNaZh9I21Tqta%%D`5LEVw3%3k6Q}@9GG*k zF=dtYF>`p3gKs6ktk?fI*JhG`FB!Fq2LH<5fsdZZwmzkBx4wc@0-l_l(5;g--(YG* ztqCO+PyDGrIw#L0CrOQ>y0&v%Ts2I>QvL+JG0)$bs#?XhtMqHi#f3WnzO=OaWdXeq zUmBkL4gF$l;w(9UW!FMgZTrmGISOb#UuzqX7P&%mW(kCjK0C6!^>?@IXl1iH~PLeT&koS*{OuR^x4y1CqTl2 zs?yV-Im%(e+O%ico3)KrE%?veV!O@k)H*7e-)*--hM!2dKz!ts7zZM1x3zw=ENTf_ zVxR8PG!eaU*B*R74cEY35E6eXWWzs45l=!!hSd1e(6 zBhn4|Npa)GD|_Kvl};&SqW8c&VDjm%q`*L@qJmskonIg3hOFavjK;dK!+qfTDG||I zJJd^7XRg=O_?@h?!#=OZCI(=SdJw3NGdlFsK~}(zr0fqzQIG>IT_i~FXJ8vzUhddY*_*g7&J+|b4_uV_Fp!J##&D6)a(gtU zPnQs$_|@5cYf@F6n$B5SopStB-p^^O4-nMG9BNZEtgI@Qc-Gp!>GAu5gf4175aqk1 zSK15BslkKRyT99j+}^Z5F3)-!0-qOxZD{rBfi*R6$Po}M$I}x1S62>Bg{$bFg&mo$oV2U!Bd!^tE?hPgR*WSCo z@Oe;k1Mvm`vM~Ti{lD$K`)?teimk&x5qhzzj>^0sCSPVtQS~l02E&Hv0z2Ih4Wt+- zH8u2MKAwX^zMc#tDVtpOZtV+%@2(J@j=Ady!H$D7Zm*mU#2Pd@OH#Mrb`GD<)5Yh@ z<0H@a%oW%|3~flhHu@+WBJ55w?bgAC4w3>EX7fQvVVLR`7!>h@WSH-%Ju(q~=f*kaXX^SgopDBoVpE$amBVr2wItBK z84LA>nqi$|KcccS)LGI`SPGJwTtq2;9^1=>i;}()=%hhW9$xn3I%;1Skec#BmB?$C z35C!XQfk{Q*<5k*j_yQ@8Zfz@w{PsqhMl5_atF~6a?jV~_%-HZFu$fsU3m%ywYjG_ z?~Ajyx_d5>apyNBw7Rw)%tooZ3>Z*yu7{bSAngJpi+RM_t~G6jvSTukqr#e~^=rXW zafaWEYW9ohsyYgx#@}f6W9Kl!vYquRGf&}qpz02U1eI!9{5Tp#(;X=~v8RkM5*Cj# zIzmOy^P6SkUc0nH4V&(!Gs84jI28{&5r{rZm(mSiFt<*bZZXAbdE9Vp#nNv&EP1M7 z3()y3=WPp4{0kg;E%>Hml&&tU!Gt7E4({ij91V1UDOF5ivgp;qPJ8v0||8+e0 zLH!vDN0|-^LK&|p0Fxw{O}ZKi`&o&v4F7w1Ju@krewe}sYyeiELYcowi0&_plbEyb zuVB9=7{)?ObVB?d8M)fTI292L`WLm^D$!Hl-BmzaU=x-tbM6Cm4%zF%$CXp=MVIqNp!5X_;T)`qLmF%h5t;IOj_hg)XO|JE%{d z#vW-=o;^`Kq$`}$7!OnCF&{!wXXC|SBhpnFh+c619dD*+3bQvL0VLl6uAF~6&;0MV z=C5WJvwuOGzjUB{lNX!6a>r$R#t%$j@?fE1ky%MmK+5t!3Z!5$;ZR7SAn7^NeMv!* z(m7d-=B%6PXRK{Dwc!@gb=aus+vFlt#q0{3tubscE}ve{&V6bf4A79gr$2heWd}m0 zMEzgiZ#N$|TxR^Qx>2?{U*4m?q5pP>z5&)x-Xo)WlDc(9((kYQ{n~>n@WWUzYPrZ$ zFN#3=HVjpOdVtMyKGfzmwP`DLZ^`{8L>!Ai2KRWmn;)FI4`$JLY3`c<3{@>9Zd5E2J0l zM!@C;1L#Eq(6h>c^~WRdHQxB0;!|cYU~=q>^R`$1Jr{;xj|A>bPcsHY*_U`&hzg!5 z64V}v$-9B8yid&C`No=hLDEFOOp+uGhOG$ZqRkjv0VT?cST3DGMmFyLP?+1)q$5YU;wg?_DNB*`RmDkJ zsv}u*UB=X3NJ1!PL4DUqmiN^21xAi&LPDLpjjaxiHvns zh!Hosm}eJpE#Yu%g)h+l7iH%dTwAoI?GxL!ZQHhOJJ~T#k`vpuZQHi36Whi~&X?}n zU)Q}|UDb7etlG8ytlG6|&N0Ut;~md?=`0=SOI2@BC?2g|Uk38+6WcFJiEZRrj9q#} zRIBV9zp=^|7KO&qUL~Zi?n)uNR}rGfn=crVA$%1tSimzPtj&aLZ1uHCuc8@i#s-Qk z?#er}#uF`R92a3nQlF5j=#2OQFz0eX#Q(^0BS<8KT9jqV=xOcZDKNJN*<;Kn-Q11L zP3e}q16@>f)lZB|K(UPY(QK%XZ;LN4PKITSZbgf`H<)0h>JT-zC8C}2X?iMW4 zued?(!)2GaVrj>U%PvcYL~NqZD_)r9%Ly}SGB3Xf993uoL;{%Rihf8CuY}^u9S$)` zTAI2{sEBEHmyspja!m?zu-zUCI=*C)K&Rh(`WtGBr)Q#v7U_o6g8xk%@0V0UgBRVX z%s{SJEaIDG6>r5r*LM=ub-whAv}8A#@;PqIRmP{{KJBIJF0Lt-Rvw_Ykz zVQD^X5|3zB)|I5gu3kJN?$9iiF+EhKVwZGGM+KtNE{2qz9|5x;NOj$k4T)jc1IOdo zcW~K|yyA9Mlq{8N(kiTz&qkf6lGan!tudjvUUg)+UZf&dbd)|_lGAb7klu9Jkk>#& zkGycbNb)gGpeNT{IoqyuqCLH8IM)5+~E?Cq!t;F80SX@12 z&$chM3##B%>6LdM%W;=>#PHE8b(q`6-X;k+C7R+Prl8uF79f$x@l$3V5xwj>LFPv>Qsg!=4@o;<{I&}+-`+aljl^Y!)>ejVESfxlt*1~TJYXL}JQ~Cm z&K_C$21~iJbI|1F?N-^3DeY(b8S%g3WS4n|>g+E(8GWWA+GcKK> zc_r69E`A#_W!>03f@FiAvSsU+5}bSBDx69d#O_WLL6<$6bX?;!Ifxp}CVcBbkh;hF zp<_=U(Yvb`W6vnKKa-x%9$CC3Mp-=6M?pL!B?NL-&rX;>YSyk8PE&&>x)P%0dy#8D zn}=E!AHwWxiNnjH(j<2ZU&u^*1~u+^yHxb{t2EO0qwo#BpxD}bC6d%zM^Koa+e+Zo z^;{|`>(~&trr5dmWj(J?*ZmsFG^tQ#JJ z*;Kq?3q9dJYAmtUYHzni?CS39*V@%MJWk?Bs;GQI|Fyi%Nf!YhG%^n`K5jrz(A8Vr zYS`$_FVC;{4D9tX!+ZGoIv#ZPxLTcjQgj{yULz|gVdv_6)h=5UK4_X>lW$+VzERg< z&t;P}2`5*1ZhcYdX(p836>Eu$H+9uMTNQiob+1U9Q+BnhDNISnbKk6<9X!?PB)y_C zacoBNF;>p8D1X#WiOITuw;=X#f|A1p?ch@QTSNTUFwT)2k;>hay<;X4EQGN-xh);e zBo<37oLFk)Xp__g^q(yDbldt+%TzRyl&G>#U3?pgVB&A@JM#3P%zIBk+z7xW1LHcI zDrUq(@o>|hr^|EW0rE{42_`QZRt_@Ya7D)9@3M9zIDwxsdyl5=pN>NFgTdOlH_0KS z2#v|j=qJkxC71aDq+CWeRE6Mq=cG}v zDODzp)Ky0H50Cl)7cX*L6J`Nkae{7+4B5tU5mBu~s7bqkt#Oh&Q9@)@0QM(2$*}1R zAc9~zx6wW=oMaH7fHtU?5xZx;lb#s`dVtMg>ZivvH`0-tfi)((O{v$u&_Rw%!17vz z1Wj(;@=*x&%bjxz(uT+gQTFx>Zwj-Qu(qsUCgsr0 zO_l*OM~7}6@O~xVP94g2aDOeB=EL@!emHHEUc_lny5x*#kOL{F#jMPaMK+12bq{@` zM37qFBwqP2p}Ky@t=*}1%EiW@yIfw%s~3O7(UO6%%Vu^Vz$b-Lb+B$-m>t_ve{~O| zi*H5V9K}R8_7iEZig$@aI6+2KWj>H+O7=i~Qpb8U;%C_3L+32a#c_p}@#*{Q{C=Eq zCbRT-dRG-Ar{);JEnbUtk_zf+!RhH4%c2T4M2-se;V47a1@s1A3@0$2s9p0tU1Zhu zciO#q?&0)-Y!1+&gln;NjcM+zpghkb z(hcG|S2HoI{#d$A!FpTa3%F`Z-ovmr7`bZVr>rUL8ynf#o%3GMPk!0>XHi}D`(Zu} zzx{zvMA5?PWk4hk-7n|pd4Dvhlbtqyb3%ifz~Us2MLwtkoolOaCqbQki(@i(RSny z=T=jiq`@0{cjS|%c5W&CU8rx)F2~=!8;P1C@`W7 zAX#Mr+GMY>czB`wf|Z5&}3(liOq zsFwF)m~;MIxE0de-2x_U43Bc}&aB4l_$)s)Z72pFj8P&XbGHbyoq@KaZ*qS&J2+g> zXK|U=TC7gHP`OZbDpa}q2s_78;fu9{$NXU^{bNe+h@UYbQA|~y?Gm+})67Q=`QfA9 zuMPpm>=o5ODWWbxrTd!LJPT~pQaYKCH6CxdQ9W6euK0Puc$iDYq29Z-iTtA}VbOHl zML%<>0KY0R2RO~32P1No%9zzZdna_!%*hG*J&M#@iuP=9L7#RO_}idy0kRDoDc#V$ zq#s(vaGx2);yTFuCb*k0oJFM%hsMl&Q(jk@YUBe^n>LV9PM|u+jLd?}kv)<<+&ZPg zDcDor><`6l2-^kiTsT=Nxl$*>$(Zi<;h5@#{@dxuune&IQ6E59vK8wL#g|52?WHv3 z*)!neo*(CWs-Qr1@)tW*!Ej_$)Aa{DTx)XjwZy!T?nL~q8=Sj$7#4d@qffx1=V1#7 z;6BgohqFfpM)n7iH2*-6NSi46^%4LBS&vQmw6{Uxe*GKtRN0gw&KUDL(7$e z^<}s|P)@0B-aptMOwo88RM0$=8=uQW&No18q}F)Ge{}(WrBZN;0RdAQW25&iFJ71&35G*20Q=F>F?^ zhJ!EO>uOAWkTIBMF`Sc!$b8x!i>KD%LZ{&;ia}@IAQX`&9`mA3Umuxw@wEuc+S9^#i%ct~83s z_7ybio5{7UKA&@>BVe$JH$|_c5l-MA;?=@#mFr`}U~`HpF6|^zQlhfkORsfe(b{GvEp~4P7Kw|N4qBSMz;T+C?KFj0+_(VF7#Z%))1Bfm6koNf9q{ikJo~xZd^uqW!Fa1Jm zt2gB0p{*xnrZm~@t=9^D!He^3QujCPHy-X^OFCeM$Ml0<{F+y4bg?wZV{ zmL>m9cpFl=1twGy{Id(>K{@1TsLf$_u8cj-FY(;&&HonjdGQjP`{R07AIMXerogXZ zrRJi%pcF@pcCRF-0^Az>96SZyrLoSwODYpKGTKi_bTCjsCwvBxyM*h@FjVWnkW8+$4pmkGNtVw4LIme~I zSJIIHcSBzx&LYtGh;>NXgtX6Y&y|?oL~+ATPZG(Fv8$H+7DulU^b}#W_&JMcv49Yk zAO?gjUUpo%%1G`fuU8rBXEPo>iPpgPV8lj2)}i;q<))2OYZQ6V`z>#jz-D1~Hdsf7>kK z84Tm~qkti~m?f=%7Y`B^aAU~k)1J+ZeOgo(RAXHcf6pd%32q>d(~f&q^8aY;Au^*w zh-*;?AJcSB2WrU8@9kBhSMK7{{W{T!ZUlx|!Eh>8Dy8~F<3h&5UcX`Fhx24ecmcLD zyU#40N|o#tzNg-sO>7zy@Aal>-~S&i@N*-YYN%iE zvdoC^sU>sBc4W#CM1mqZ(r9rJsHnk$Fe&J@g8)hJ0okl{!8>(_<(1A@-j6vAS12$& z89n~j-PyUnyCSL0*NL=}%7Ty+&?lGcCoL~8SB)=kS2s7mKmpJODf^V%J|2*I%I7K5 z2MuTO(_92Of(}$UqPYks^EV_`g6swfi2cY{TjaG^7j@O)zOE&Wj@;}VxyB_=ug7p)R|7>%ei^@QVFp+!_T17T;}Jw{#1 zzQB;K>W&QNl@eVNq_ak3sQk_lGwGyJUAbJGm4t&0RpGL{-%$~15u8lC;wx766XeDH zyOSA{fQP>=#hrei4IwU1E{?nbh!QB~Tmc?wh4`bK*nq4;q*2u=M^Z+G9LKaeRZ=ef z;OV`-BS|CweD+DwD_UDC`CdC6)bVT(^@%L_bJQcDN!W=QG8FBANJo)ah?8cnJ<#na zyE7z;G$&DE&Y5rjBjQmtTBID@+CA5Rlmj?gKv#Gxrq|c<9^6#XXyy<2jF`%FFYR%~ z?(B>M?44r|h?@$J*aIKklW)KEine}7ltya){a4If#D3h|eU_NnJ1~*aoqhtzbgKbo zj@*-9>Sp=4=^13^SR2s0Y~3i^>u`IQ{3cQPRlzM$@% z+pt$3P(~s9aZ@mGT#-^)ty5!3$6;fXM{1Kap7bX$-RYay zf-zc3M*&`BP@;rreHm9}gvK^!htWC-KUJVueo=B@O>ia#&#%D_hZDZD}r+t>Da(*gW<- zj5a13)Df|y2z$_%!uiTh`SMW<`vr!mIkxmM;41S+8IE7NR#g}d|J6*a?;$oL~WWhyU2mzX>@R!#&B7!cS=NXhZpTNZdXFKyr^iKpA@pTEXbRumT- zVnoDF6|IxZRLxyNSCuB~LIg{Np&d#o1ksnklA83Ke9pM>DF=d32`(SEI$k<)t?ZyE zZ8+~;HyRU{Rz$jK2v|x_HJ&i6RkL~mJ32aV%Pln=kKuu~!OAwU3?7d>P!`Rq1clUoaAP_d_ z>rGoTB)tRjraVY*8CzBq&Hdd2(iVF%Z5fCz#3LTeNC`@6 zjd#rqTbm{?HOnL4Gxj8BGI}e!O8wEHQ)eroz=Oj(K9|v`JFC$Cc7@#PGmxrRn#C@i zm2V^F_gG+b^2GML`I7f6^fTaSm>f&|uc6Ok;a@YK?FkHT``TVQXNA6F+Rgi1#XcSUUU{jbEj!KANmbeZzK@ZA1|zw43bisSzP3jrSxX4 zA=1>Rqpn~e9tC+I+0Y%JXM=2D+owu%k@z9$Ng0))`5CAXNSkinY?EpfrSD)h$GEMm zl^fm~KFQmMB?3fC`%qX4Xtac6Ch*Ma zPs1!Ur6Of5Mg@D6m^+^bKlf!ZINY4OdSx-w|Dr*tdf{xGAwiK4dIcBxSz_$#6=+p- zwN8K(1p39m&+D-w%wr0o!UmF_HQ|%;7euS~HTi(DmIF)0<&987TA82)HQzxW&X)Ob zjCsOs$?g7d)bbPA(AV2T54nI=aSax_f(alXln@Yx_Z3z=w|r=#YDLLHQ3!zdTi zHY6Ped}w;_D+p-C$rl6?50SV)`lnF8!XvxhQXf)tYB>||2_C|QM~SD2hlO;-rgVc) zhW;&1w5gVOCaWVt4wb|$NoZDb;-G5l96B(%V^uK9IEKC(h5Q5julcn(L~+8-H$-#~ z>cT84XVtYND58G zg3FDIg2D^OHs8ajfWTkiUE~Q7PXDAB$c2c>vOO|3Ozx7~26^h#Wq_CjY^`NmiO8r8 zca5>O1Ud`1{^%uR%|XaQ#^P;A2nSo&Fykqd%-T!PD1hIg9Y=iFl}62|D)UA5_x)uC zYZu$5V|0KHy4FIir+u}dJ!FWaJ{6YQVmYSR*}8o2AxUM+$s|{;@^8c#Q_MJ<7J^)3 z$tx3|?b5dlr3M-sWzOR1jN9?4zNo7;rJEyZjFO9g@Fa+O6oZjV-H>UE)4L5!MOp4>%KFKC8>&y4cktCW zU_QG`S67R|8>_@ikfTmiZPB;}@2&`o93h%XZBSnQ&@NXu=Tuz=RwE{X1@`mXY~`+H zc*wpjrr!8{K(m1SnA=PTOo42)n$2jNuB|~)V@+T3FjurSdHzae+t}eHdN1gzN;%nm z_wH(*<`Plw)Nu1EN0D-HsZ84b>aWN&c}Eq0AImxW1iBQuhRo6=7V~x$-`=FurUThW z!ils7xZ!;GjuEGPi&XkQPLF2NT0Lq@~zBuB=ip>phYUYroUgaRS6IJS1Y;;#cq{2u!71I9PVZ zrn!X2#G<%2xObl@3*X?KzFVJLRw-e)+W~g*5)nC&(UL)>2CT@CfMzAL2MXMq!Eehi zpWB;U=>#bWkxfh=%(iFX=o3WzQX2Lz4*CU5MiOlOCBPoTz^O5!Pl8J>1-+Ex=xI8e zkaxf->5|PQwf-<+z9$sd0-x05vESGK`0_!A_5hvxjv%(*5k&OgiXi`mB=r>f&ryVb z8S(i4UqC^)nDA^v3)q!(D{JILXNuL;WT;|Y`9yQzk;5{0nL6L8R+26KL zZ`1S=qg_LJr`N2z41l|_YKwt_^OUu2^Dh_bibVitibhyw9=t;u9mUPH4BKOI<($0Z zlJGZ)$^V^L(sV5qyXW2Sa^dwILt2(>M)(Ff_$rZ3^_RbAcurHyavpJVHYu@P#}OGQ z$+p?EBJ`noC(GyB$!|D#&puKv7)1jsjwnX4M)VCkju(AJ44SBy1-T<};LZ}GPm7K; z`%wc^xktJOy9IPfd@_lcMQ{hhBVbFYVj@&h<#(N@SYW5yV$Q||Q)F9(xQ$mFi#SYh zdKi2{GDiU%?USnf+e1!#b+$eu&30DcL4-z3s?e~`b~Bc=*fcG$C>*o(eU6C-=!1gc zxU2!Lv0d{U*UWz&e|<1}!v3_AxL5J?U%l<<(@FxBKR}BS^Jj3>F@!RJBE7BX!)o@C zFvK!&_9nTd>p5tnx#fe6P%{K02cuO4Cj!VAqM`Xy(}rvbQB}VIwTm=cfu?9R=mi`} za|ki&UI9S9DZ~5lt&qTqtbG9 z!dud8^w5z+-up7?%v_Vbs`UV1lN6~3SJCT&UgEn8-sf`V&$xV5;aHr__DVYxJmaeG zlp=P1^sE$^dl}L<9IFX<=3&*HF+Ikw$_9CFXWV8o{bD47X=+wAXxn*h_9`h1MbLkz zCHTADFBqG+9nCRYveYuTI}!iXf4B(@sPeA4l~SNiw0BFUPg5b2Yxp0I5tQ)Fu33_Q zxKudrU*g7{@lK;9X?BkKkePxoj?oH1?}U_p@oi|T==AmVuG{>S;? zHxPvwWnyXe6okSn^>Gc8u3HB)%?2tfXrIIqCBCYmF}U9jG9OUbI789IYfMC^a$S> z{l6D6)Qz01jErr~{+EcMW~YE6gy@@+g3pIQ8}Z(6}`dC%-$}f#v<8!_CQ{8xg>!!m9hxW9z3X)0LAe2 zwKtHi$=_YJNRbv3bI1%t#KSNT;}aYlAT=1}ADXtzILf#PRp;-?t6Ub#rWgjsYed-s z-((C?qxba6ziXUCG`M?quBwVKi_UhT<(fUwALkJG03^Myn09q3$UNoRRtQ@k#a($u z{tKDI+epoBy!r&l-Mjvr+RFtEQ$Cx=f!bGd{gF51PWH|8D^#LLYdFp>9bcrEX65vm z%dkA@%JnInWK*~{Cw6-(NLlM5Y=WzG#L8$XCF)N%*^KX`mYGI~H3#UgR!q?66m6EY z^i>OciKTjp7O*H`J`7NQOg6kHd_Gc;icddPX;-r9&QpQ`w1$rFv+sg)deGb+Vrok) zm8(85jjKKIbqK%1K)zy+WoZ-u$1$$|CP#!t6g}Kaa!36f4ep%zr={PCb*NWxQ*3qt zKOvX+w~o>w(txCxQs=w`!l+GHLe^=fL6-fk6}HWQ7?$ zb{pO#(NnhDKEMKB^mKGKwe4^=v@e9t=g|?+QfBm!FXQwhbSR8hK62$)Uob~y^sG=Jeec%WjIEX20$`~%h6gUnGZvg-eq=Jnx z1)v5NVkI%AWx&DA_2(rCrNg!4CH6Pj0w2MaI6H!$m~Z4kSghY-W=#)sWo1sbn_%Hu zh+xbdYrNPAy_6kq-Q)5i*DKH@v8RQ@!D8FhA%3^s$NJ56$9GNfy&KSUY}=p}j4n$z44HCDcF))| zHmt#Bck}V-tBiKl>XJXK*>xlBvTRPW7&67H54OB=+JA#bxA_bC3B~E~pzLA8#>}z_biU&SKiSN~V%Y5fWA8#_*xw)4?Ft&#pD1Xf zgoS2+Gj`*3rzyZj1b-#HSo>hy$w_9q_g zmn{fhXS;7>fPhhrZ$`Ah;6>W&ELvAi{9oaI99sbYPFf(x-t?9`OdvjZuPFdV=2U%V zdt}!Qymumm{tuhN83+4>-BGxpMU^2hW}^t-DHO3F97 zU0l^fMDzyFH%5ww?5DYB#TD9rqgc{7EQ$08Zt|J{G+#g;&0~8L!F9U(;qdr-#qX(W z^SwQF7}t(hCp<0JaPD1Ck1htbO1q5ZG!Z zm$8GI`P`LI4#9MX6cwqB-Na6yv=zkoQ_x##!i-kS1=C2GTUe+ToxGe5&(c0n$4wX^ z2Vh@#eOE(KY;9~n{StJ7<}K7Opu}3Rn@g1^h$*2W`8elDAk*anM|@I*CS7Wy3ui3} z{7~{-oyQ2acT^kd<)yury6ghWPOnow!(O`ufWvSdzD@N3$l-~OCYFQ&?)|l-l=qqx zRl=l{#JpE%e7t^|oM4YLf$2l{gvH&!R28?88m$4Dvb;`(8d6!w?J}SykxdiL7nA5Z zL8?CQ7JG|C4fb?W46s35=*y0bwVv`jY@8>12}pR{&NU|2=n*{PzK`)@0~2O(kp@ab za)u1bDh~-k;6!}SBD`q$tq@7RBSMn!7I9I)af7O&l;WoTr8F@r@R_duyHGoi436t} zJMmXzT7Y%UWFeM5l*(r|zabnX?75;gL%gE^(j@qwo=ClgxDYm*D2%Tbu3 zSctOOA$^0PO5m^JfviSN@)=Jie_~pPbblivH$1vhMoDW#fnaPZ$X_a!QUwW4wrEKU zMm9-DGNfX*NUQBM`0Brf&VpG-CTT}+XW^x_IpU7f{FJ&Q(Q>G(xFfEsM2JVL1Sb-u zjH#uJnupwvRJgK-?;2=-Lm0|mnFBR2yC!yTVD(LIxdS;c{{;4D!tNN~Du6q%c!c(M z0(v8Em^^ZSbb);TXarO25~1bzTc~-U>?rREy=Ftt9za0*mhJc6lA!r2;N6=15e=4T zzc{#!3;3&kr}9TOxOCSF>~GvB6)cC0QIGXA`d|W!(MeB(dxJ>Jlz+OKK{lEe!JS= zUGRv{e#22#u_&csO(P1RFvki^23klMczR^jVNgfRfh?n{IDxW7;PCK@G*WmKvHG+q zM%S^evVDMKP{3@ZF*L(|{63``E}gV0lNzV067_`YEACe%G)3(ZEBN;r1_L3yju<5^ z4iBD>Wn4mR4mYL?t)n{3BspXbLnG{&v6%(^k*|T~oVMA%uZi|NfI;moXigS`La#Q3 z@}TC}RYz^?Pc4rKqoyR(t!NYwDOya89!bs3*Qje-p-G%lVT>hnK=P`Iww#1AiS-m- z08Z3Ng1QvgaoCo^Hbr-?s>C3#EE-6SEtW{FUYDTRh2Lv{Hr=&ka?tu#)T$l!Rs$Uz zKolf})=^`3I@i3i@8_n@gg_0SfUi8jO8($ft2#VBxYRksDUL>0Ac|C}>KMVPhE^KB zh?Hd&oJZ{qojZS=)N?%I;O{A1iRK8-6HlVLXVhO~v}-muA;X-4rh;OlHa|jNlI^ch zr84Ywy>C$`1d6Goh=#|CF_9e}cg8G=k8DJLdc`k|h7o@Q8=p9DH9kx^Umg)15KtcP zW1y)zKb*!f?_|uLfS*M-WAu?WE0+AD(UIPrD;9^^V|{iM0i2~z)R9z)ZHT+=6Z=l7 zJG9oo0#*+sMG=5@C}TjDl9@fyF>J7jhz{?g`z_OJ%F?^>sPF#MwP*L(8(&0s-p{AlXi9n9Vb{NC5rA9MOwMwV0uePqLvMq{Ajg3vM zZOR_|QDt9MZli4nh#MtEp%G_SWvjLXP^gU)B=k)N}xr9O%HW-VFJOTDarfi?v!Sz~g}(^5(~HZ;8(hj4Ri z8BBTkrr5j$ZEL5}TP+xEBgX{~BqXsuq?zx3tQ)4%LGVr#JK;l>wqSW%tn6j1~7nH6h@9GPQzTn;=g!?UE zVtF%ucNKtGgO{>$x8@SGVas2v0&7{vogn>`6K4V93WcS{vd+0^W{`aE0^#aTF^VBk ztX-(OQkoWf*Q6r@iF1rIQv#7kOtFLK5S*6jU zQYG@v3MqFMV3o$uMO?>^$UFJx_WNNq1qYKQnpAF(hjzU)dS;3hw~e(FWUv&kEL22i zvy|uQ7;q{H)>8D@^BOg3kh`tPHgc?FGgQQtOjdx-P%bK9G*|0TCT-*A?!5i zoI7aI4~J5X_ZKY@ljd0yzb!ql7$}-fgs*1LSMm{T9+j5`5F$Vw>DML{d2p& zJ&L^2Fbz3&859$GU5)8DVsw07%GWIHZK*>1)l(iF6n+~!%S~45Y?3Mjf#7IZix?qj z9)zz$HCotqr1t>8K7QnwvA%McdkSMmm6B%^XRn{#h067!bvrWFF-Thgmm9DaIK)>E zVY#l25m7??1<{d%b-j-h0-63|jTj?ycS|#HXScLzjwAmq6sZgq-O>sCCM*il#oNa# z@le1%7TBFnP4yyuUtxmMQY#9D7y(5Tec5-ijA6&T?Wt!emZzq30b^M$(izB1JHh#I zkCEqntGT_TtRU|&GUpSA`49uepTx_{4IirS5AG2#rIIzYI_Rp5VPANU)0E zH{9qTFUmyS<2Y=&*s?t@Rq@jndKu4Hk!h_|qMSY`tvguLRxpiuji#Q~iM_40 zrqa6Vs$qt|+ZdN@{U@Mqm0G}vU7#^1b08V^%3EtJL$EV{_F@r5-P&B+zviuPmcHe> zO3=jypmHfSk!+B#f5uS5pgI?LCoJSt2Vlez%zf=g*N~E8(I0z!XH$TTFoJpX^D`Kr zGX&$=f_MQL0QsSM5&-O*Rp1RIAf@y<*zko!Es&w;8#NJ2k@Q#chyr;+Vc~|#L;E<_ z-@@c+wx3fvHx#4nSRsig<{Y$Ge$)-~Vh!lojxi?TZqqP8iF-;Cnku~wE&{iB({KuJ z=u+Wm~9A? z_?IRS&6WBLoCdvxBdJdEGamjlllJRiEIOB3NSu2>nwGO0 z@Mt5f`*4wE`Lyb}OcGSeS;x#%^%iJUNM%L%^p)EkIOOSrRWroHx;ex3`Ki>TiJ?Ee zIxkbI>(@7loCTta)+eCUX>Jv=Iw6=}7F=M#er5XJ^mUf(X9Hn9Vi;PT!Ix=EE$T4e zmtDy1UFU5;(*6WZ;>q`-F-yGx=b_k|bmu$dZWFY2-&dcZ+k^*mkyNhppK0Nh&+B^imM=S(ALGId(cvVv^6~gJDO$)8{E8fC{vA!r&zfg-4 z!y$hTlTi93Es#+8L@3+yWctFlV7_Myei9_IL+wjTYs}ryzq2hmzeb`s^971k4?cm5p0*4C7k&u7z^PRCJ zbRX@ObC0*1Wyf$KK9O}7f?ujeH3i02Lin^y~YEUCABCCCG90NZ4lJ0 zCm}Moko3J0rWM%D8T*f&9iH4J0nDM|c!WEsR2c6Lm)b z4I66MW{gBR6DYxMm#e{rXdE87QubuLQFX#lvRc#Sa!#93ccaL{^LNJgbDkzDf2WzM z8Pp=@+wgS!`HmdX>qqlE2zn2ed+ARrrnX#v&>K{LdAV~FtXwxv7uu4dVV1n*^JRxg z*r%UH{M-*}6{R9-&%iYh74)Um9Yl!)BuVkkFUSz(m!%n41&q=wdT~l-ksMZ$syTHQ zNEIV}6-o`XTBPp;6yDZwVw!w;kns{eR(hL`72Sl1k2HD{@Sr1Y#nIU(=R{j1)~R@{ z6f(YG-_{&O+e&+U#X#&z<2rx6Uo3rXK+rLD1W7FKUq5A%CpO?HJauT?$&qI zz_kp|%kK$c9%xG}+Fh%3;sCqVUTJVb^X`_Dvcz>^|7s4}(~Je}xs;qKB!~I82=xa~ zxr4>68-Yd^^Vl{*BHAm06q5i82ZuXBr`hxPhsW?iI#!nq$uB4qaDvhYcIh+Y0lu0g z)NA0@2c$GI8@K)dbco2mJaqPf_T{Yc#Maq;S{rOx;(;tPv1kAS+JdpZD9C5UPyN?{ ztxHyDkEk$0V2$zOc((_=hD^GA^VFRcRVL_97l7X=0 zla!CeWgAztul#bK))xH;QHR*_(uJLaP9n{t3(|?3763L7g33Ogs^um}St&#}{IE~P zX~xoS)NHAE6Yx8ue%Zv>$*I?U)haU3Ri`+{n0xl5~z1Gq{@3EHY&x7Bv~{@!yx0cZlkf>+Hvx z?qHtO)V@F5i__Wxwj^v64ULc5oOBzQhBRyXg=vS?`tqo6)6OT9km3`^0CJUxHbwTZ z1M*fciSrj;cX;u@dvP*3Ov+$5>en!v}?I(TXstE8C*ETq)b4k=M;Ngu@? z+h1?~KR%>P#zT*0V6z|Gi>U!qhp7eX3dT&ejg&P;;Tm#!K%O+80ewaaWyG3XLfYmiHNZyr zW&+Z#n|WC>1cE2LKC>X2b3{La%>`0oVCH^eLweF%n?G5flMUf*>ESOgL8r2$J13!E z9DH97c(Fn*4t7>1s{eVT;$q|?X9W01?;u*`x5I)W z>K8pK^_(0cM`+%D2ufPxH-4v{HoeQ%)Et3UhP6lcT#qg#rO9kwV7S+?HlfTp1M|16 z_e(F+xs?qrbHaRRj&o1WL-x(q;>YJ|DZ`HxM-C`3Ppn{4;xUT2fnrqpgNP_&WJlen zK&{`I58Vk-o>*uhmZ9!g(mHlMv&%UaX%*%=+Ov*9N99kyu1$8TnMgB2>>X=QAVZ>= zq}2y;6LmT^9&ra3Y(U0ROCjZ&xH`+Z!ecm#|VnZs51IXVX1+^ zwDmK-31kO|ZK>uNOZC&y(zHeMFsox;Te(Rr+v#uwpQpBEn7HsYUm@?Px#QMAl{Q_k zx!9XMGh`BPG#yYe>6+6rIC7 z6M*JRsZK@~w5O{w*+1v#Fek(U-Pr-9I4k&EQ%6n6Sk(kE!vQ}%P( z8w`u7VYcFikPep!y5(57r<*T1)JOq>!lmntb-xA_{ z{|&*X;2mpsV%XPEK@`jztQgB!{IhLd7MPcb@7<=LG3T0Cz@!jSHR37&kLB0@*zi^b z81N5#rns(6m$D;wq&%bj`OA{>eosOt=Kwi4Nhm9RahR>n0;WDj?95_ zo)rueJx~@aDHVp8dX)0-5oP8-KYWD^cH>idT|;IRSA(re6?kuB(|{(lWb89G1~pl@ ze?Ig4Za>Y^`+U1`Pym|B&nFId56SCCB(5|@cNU(S)Ko+oE_mei0QFKLTOiBtrin@o z)}&WsaCdi%uS}Z$`LC(o(fi7tj)mnW-&w+ z3yoJMLSm2A7rHUo;!Us(0A2nZTr)<};_)VM7r3qUGk|xsRGSa^VpERbRq)Z&wZpmi z|L-lKbl3L|i|87}j2Kq8vlEm_>%gZ*#jdaJ%Dq87XF+*Q)H9XwEp7nuoD}%!3U?4Un+f*DcqY zmFtCQQ;mdgusj&MbwhXHm?(rvpS*iPghd_#nWr8@CZD`qSQxXGQ~%CxP4hD}P&|77 zKGa(XAS{NsoMCT18B(ef*3*T0>#Mrltn7p>jX6O+-l_*#>lT~e_G+|V;AMDuyT2N! zq-arK(f@ypy<>1~QP(AWVmmj+jcwbuePi3UZQHhO+jeqe;0Ky)hQzeK& zN?6p2@?W(epCL$^eOAIyd2g8xInfYU38?%;Hlm`eQLx?2X`vCs>cU>44$Sv2q$3h@ z2iS@3T>69rWsjw2}NVx*&X(zPY!zthY-MIb_6!l`{W<^KX9SqAt4dPK)O=3+lkTR)%@$ey`!@vvZopi|}IB8g;BywN@oH&jBM z^xM5go|lg=Ze0L;n*9-uQb=-#ryT1aCowYXD0tYztLrfZ#>?aj;X`dh@uqu%!26Ea z0yv7B;bAEeAEiz49Z4n3QXAMve7@Rh5?xG8;Nt7!IijehXm(vK#d!VC(Nr8g41K`l zf}l~LV0@c&sy=WIy6*qE=L{oBX2Bo$9r}S^+W+RB{{y-Iwbf)rOUp$)RG*#4gg*=I z9CXeqr8O3GH4>3~dW7QXi0P0uuvZDg=Hi#%DP^`j{J%zg2 zs}%|k#TIbS?oVcvIW-v4Rn{VloIfPtIq%0vl+WPop=>?KWKZSK+fU*}k6!+e&uuk- z^z1x+)>vMkK6}fhD*5&B9dz9W#^8#^tZt)?NlZ2j)_n|_DX3YD7N+NzLRhPX{kC}*RQ~mzO_XLKFH{d~Vbbiy zJxn=;;TDh8l!p026?bns1}lnT{5#6hYo+3A|CWOntAD1ETR~p zn@H=c9)D_{lj(#YSRbK5wi8;@_LHplT+f?#x4SJRG640@oRP4-e7}$l>RuiUl9zmc z=$2g(IKJv_9kzwVEfPU!keBipksxo$o&sA01Nj?1IuB`XpW(uL5lrS?8%*v%sfw3q zKZ=d?kN{iGkUm(hvta`)>tR@2p#e34XbhA@$J*bxxKblGZQ&f+p%Xj7ekPkKS#w^k zu-QWnf>EPu7{c4G#~$*nM4K)@y7AjdMlS^q-S{0T8?RrwD9uFywde)#yQn*@LI14n zKholE#s;JbUuptw+UeX0(~3htDC@i`uz zyadPTO6K^G9IXz#M@Q^NT;32%_0kPdy#z+^O-#^Hy(C7ciJZ<-ei2^js(i?7y>~|V ziYI+j5A_OP?;gDPDu1X2$&T+eMXV}k#h1-Y9C1KBb6+60i51EF3%U##XOF;l(^<6y z4~P<*HMx#Px&0XDOXLCi%`aJhYy;$18kBac)&8aD+dWmNOYg2CM`Xf*s%e!`6=Zrd z1n#NR41m%ghGW#1)ZxWqS8b$8IcrGKZzyg5igpQ(w%8vHte3CV=w_OE=w7~J;4vFA z(FDg1GUulH6EOOKcOQ(Wl^*tta>898i-!x2>u#AcBa34=g-=Xj2s|5|G zSq^h5X{LNwgbve0g234thO%634TY=G2^i3Sddzr-{KJI1mL`ojV(gX3DPjq{BglT;d~qmP%gA}RK;bH^2oYAYLc3@xg8-e)vKb*b z^Zf#GG^tXss1iF84j2MmX*u+35L@(oimksHbG8XNv(n&an_MB4S&C@mc&!4-^t>7E zw31nm=(2L*Jg{cjJYh!Zyg`Rzp=O1WS-7ZFc}^XB?o*Ne%UDBHfP9?1!+w$|TtgqD zhFANe>YiVS59}?02LUYhyWqYo(Fg|ah?Eq0!{libzo^>0WJsB4C2^go#loqD#eu^K zPIZYTr2MI7^ol%xp-G4Apl6v#p{gd;r8DforZ;taPR*(rNHbNFLZM7k%D=@{24uFv z?(VK_ld{pU;fw7cOm|{G`MpN8o46cZ4=<&p7mouK-itCsKst53NK8?HWUJ`rDR{7r zQ9exI>M3c)AlS8~?rKlPaDzvqXzN&3G+cuRh}^jw-RN*o3(84LBJA0nkIG52u9w_d z_KKfeuR#y>pbJE2^d4|NVU{Bs zCH1FkRgeQ7sM4k%KlU04q#6d1`^zeYkGAq)v2~iRpWKlV9F)@$Z6_hF1FgAL`6H|H`+L->ag{8|ao~sP)~0bF zrh^4kUov%LvnhaKqKw;(juY05FD({uE+V!E;Zc)u_s>LDzVvc)0)4#azCy;yr|l zx_pq9d`ttqc2aHcWZT@-YqEX6aD}q$Om$o89pcIJonV;F*rQr;fNv_SwO{PjJdmSa zS8O@s27AIcLI;}(Mg&E9BA54iHnQ?uhORly)Hlk9__AF~JxI0x>M@)_LgmRZ=>@Zu zX*?O|mjzNvx8{pEpm}Z|l~3URF()B+M7gD|6*ur2x!$~ePBIXn$U?^LPD;tFGnfFF zJml5kqaYMs(ogWD;*JW#k7V{0383PQ8sRB(GqHtJd~|M=HL9U#q(c580LlSj3$9#AV4XiK_Py(AC^FtXmtvuuLR5*xO6XGcmX+&GGy{RuW}`p z;Q;exL(uPJVoi~7U&$6!5EY&~!|Uh3;SS{P#tT15L>W?2y8^TPF>U7w2b)rNLmrk6 zRnoRm3RR>AsY*T!{w-}o>du?&w6-(gr zRl91ifpy`YXlpNsJI@lp76N`k2$B~WlVw_cS2Bei;_^Ca3)(3_`<;%F=HN-Xt1#Uy&&)QwT~|7CYG>ytEG;;4~-&EXN=~L8F z`B&#yZ&A5==qUO^ZSA$sAKa3MXSQ9muixK(#PxYVwjze)F_nclGNerpyHKIq)FxD8 z{oxDG`$XDOI6gxij7Uq0QjY?Kwe-fkj1x%x)orow+g!b(^0xt;3_ibRVv%Nw(z0NR zC3jfLD+?c}%M#<3ARz3@m7ycIcEYWG9OCWxWv@HOVu@mLBAM8Q#UmRnszjWNC*7J3pQ0a&3SyS; zZ&r#hdw9x9;&h3n~1a^X495krRRw? zF?y8FPHXszYO94~`TwQ@CFd1SAU|UJ)zA8W$GrTP{`MadU~XgjAAV}?_>%zjzxY60 z=TD3#YRGq?r;;JEBakPJOC=Z*bqg{Ti9!6@n#_oPwlP!Z6fAF6Fv6Y?*sLf48byH8 z6axMS`poLvkNp0tgyE;t9yI5!&!e9)LwQGgubIZE+oeJBC-TxCk$tx*NF1}i>eoK~ z^dHDi#n<3pikS}A!LbaaQMTTV3k^Tv1dj@J^{%#24X(|0vK)f(CQR#9_YLL~n#VfD ziK?x+Id=7-Our++YRtC0Xz`?aEBY#Dj2^Gc8N9I`L?^*4|pIEPu|08@o~xc`&$ zv!H+IP$B>T2LwMRGygr7^}m^w(rPlVSi+~#>-t)Q2J9LVR3uHEaZ6De3HykIRg_FU zOg}RT!kIo^3JDPph-^j)jP)Xk&VqDmlSC#noHYa^b$?n$$@Emxlu=1Gi;l_FWx6-# zqCO`L%3r>JJmU#8iX^WGo;O@4JB_)Hv%lzipQF*k%;0=!_$yCyC+R;TVZSK{d&h5Y z7(YT``QmB5DF%JVPvneWZUDGNl|FCyuP^Da-&(Q=^Rpn2Fdd}1-)ge8^Uko+jCLHJ zYgB=9hY1dveZ{}WH2p%>bwl#0`+!KZj_w&(+6QKnv1XB+RQyuxoc#i|iE^78JZ=0= z7+&3b_|eAX$&S!0y2Srlh>u2sXwSl7?V{$Xc2Mpis&)y7R3JNi!Mwbh5O_!Cra~K} z=cc~92j^mcZV?-Vh`c2;Rwd+f^wHqNt5oW#!CbHidRFJIzPfiqx>ET$ZO^ts^|$hS zgua8XZ<1C5+W*>W@?^fHV=5^|T zb=8_M19e|v{R4G__y^t=>pIcW3Vup{v(Tn1+(D@f4tmeZFm0pXCU)ov>=aaE(Z$AZ zuHUN53tk^x!?@hEIgUid8OK;)QnAZ=i914`xRWfNRvyz9FPmvzLMfmXPSCGqz8Nua z0uriNf~0i9yfdo2;JzfiCe6EEbhnvK*@4`WE{Sm$Jw=@}adw1;P^;z#J73Z;MjLCf zfBIyFd%v9AhT+VXY=xc)vMM%NQtGOa99xrH;D@H4g$XH?6QOYa6v5-fVrb|Uxl-e? z)gh3vh%*;dY38&%*5`$ya4Sui32Q5&hu%e2T@M8q5;e@L9{$kUy z`0?*7 z%5trK`nM~ik(lOauy6E<`*KB63rW<0;kz^;n4}X4440^4#j&z1j9{S9Dd1b3 zzvRH6KtX~!r%PVNiUiU;vQ1qmi{2zLb8G`vxkLMQtE zL+(N5+nE$5oMi0fiwLKooUzd5L|F^$)r+2|-B_EPv3Ck3Ii1u_Xarirn&LXGH2MBU zjLZhaBSP?JPUO&4)+3sN74m*kW3nMpg%VU~SPWtb<#&jCgEZu$?y2_oX{b=yJu-9= zxH*e2X)~kl+9&U44KoP0Tr56uXYtg%M`<+KveN8rU0Pcrk*J#^C2`5{(duVSm*OQR zhjv;)F~vu!5y4f$V}6o{@quU_xi4;~eocJ6(oosEBm+D{H)!d-15Q#%E32 zCn%4E(ARJ_0@<{4K{Gce2=wh_S`M~zh@7eH#C#^}p@Q~AEJh)AC!FlreB!hDcQE6= zf`|G|p#)7W1h6}CQM?dO1b5G&uSA@_N%-@xhE5uXu@@gu9vUZd_l2C^DE|Gq2cvZb z==@-GAhX@?*`Z0;B-%)Q#b)y(9c(Cx(_Gx7K{YF)zRFQT7GoyMj# z*Mv7yTk1qcc3GIDmfR(B`o{ML^~j%;zL;m{6qE)d-E-Z8*Ft9ZN|QPHg!C3XG#UgY zeyAi}oh@L?{8U<)M7ZPgcRfQnNyeF1*D(U7L3^-~;7|^V%dn!}z|LWV{;Ckin zr&7&J0~XJn^=tLX?j)6U`)!SfGg4iVOooz24+x01BOxebNSBgk*R4w4<+^{NLD?9 zldm&m3AweU>zlg>99~R5yBU0>xEI- zFeySMBTs|9Z(!$AJ9oISL)4aF_8*7j2s?8eHFhF1Jh<)lV_%*t_VVvx8EbOB&%5-A zXCiT9%ZC`Gytly!Bc#vkm!}N)jw$zVtI)rE)&*Sn6KW|unPvPa3zZe^anQAfWVu^H zX&oLnmxdc}q=xK+kOj$tx+=NEwIox2r`#|YXue4pO{$f6;1UbU6J)q3`QXA^{~m8H zZ4>mk?$A|$<&r%07+ey0KbT!>&1JHhrj+4ivz%Unx?rlNH_SO4#?d?~5j8JRa*7M9 zH1T7pRdpN}q~b>x-;kCd7+mFt-i4y!T;wqy`|$-hQ~Zsk!051LDI`&Q$5(MoZrV*l zN7Tf>{EQm#PWf0UqryAAH=TnX!`4H)9M`A|UO*+sp?#~$(k=OwHm_#zNsZKM&b+9H&dz8E?aVV3e%3mr(-7 zGn340{_u!v^MjivC-2STrczGflf!~tj15dksmX|rb;~Q>COxlMoo2A*7^R8OR_n0J zT4s753OYA9Mw*PlhTw{GIZmyx*5Z-nL#}FmwRUp$bn!O=f0}OLH0)*VS5!vrj}Td! zLRY%Drm=4yeHmpicTyK35X>koRTS)gETZYIn*aG|=`^xk7vg0hd}8385C$u~z(S+iPGDuDQwQ=sBceG^g!rak#XB8cASvERd7D7K}_5 z@dA(JXL%OVHraW~SMotN|>zr<$HMS@u z5iuLDW18&r&3y)y!8PZWP@pH3q@A+MEZ`bc5i%vSw2^aJ-uzg#%?2L$32Wj0q-mx$ z=qrWFX|7q(e2q!KHCvTZLbK=eptb!45;8RpTCalpP*nZahFxSYEkI|c133}fM5FS& zjxxuXc33mD0AEzY&A)@`%x^Wb(-6>4&9zZy$i=Alez?gO>;H223oEybUSvCDa%_-bP8HoIzvrRIhuPWX)d(55ZnSHtWthwMp| zn6wkLtS|HQ8O{SWsww_k>%=C{fct|r$7rnIe`vyblSuv?e{E(Xa2gxE|0ta!!-6fI z4y+%n-Iq3HF3VIJZaL4Kr=oA!m#?hJEy9yC@i!!zj3R+?F1zmc#%ej26I?V@-0i4V zKB+yC$BmTkxYz<*yT29~Wal=K?zpeKqq!YhEFO9ORlIh0U5v@~>V~C=&EIz^X!^>B zrKru{_xyYl_f0aSs$Vf^dv)(XS2@H@$awcu{X_8Mx%h>%%_gIY?n*m%8hg`+UvWwG z=$$%K4T(yAhPOjKNrYevl|iyw6zJKl$FS79sz$d+j5`su^;2}vMpxVX zrREb`0mc1dg|i(ER$vnuyjAhyI-l5qVFo4+phe0_kv#5GB!lotiVo0ZgZ^OeW6wJ% znvnAq^v!@H3e^oqO+s;4&@$d)wSlCq=>zjo zcOlkvq%Nro_O14`wh{B-MLi=D_SyE-76ylQJnuW^%ja2N7yKO|xNZmbd09|h4*WfK zeUe#?g7?_tHn)M**44VFCq%w8F_GCL2dm^1@*|Z~u2?B)WP(@DvBZo|)$ru3hk`R= zx&Fb3BYcXvWSo}dP}(k>*9Owb|E*<| zQH|D*F#rI8J^%pq|C4b4#FYw}8UKIN1lwLvURuL<-`8A4re_?XzsMAj`P;3BXTae0 z_`_y}`_Xxkk>Ly1B&iLgL=#Y^6eRPGc|GN^p(#+M+YQ5zZOEA^P@#hzP|aYH1YwH# zr6_{^z8|(*J8(Ab{dCR0Uyr8oY+YSkOn$E2iCABsS&*pu;J15fK z{qTXEKpp|wPRD3{fczfV}fBdk4e4yQeY(Uy@_u&1i0p0-DjpR<8OJU>8K zYw~@Pkh|t9%MNd#>@49w>@M$_8t&LfFh6wMONZlD_+ye|V?Q;ViJPQdkQ@BViOSP| zSbY}&Ur;xY?60KauJW$ngWUNuy0Px)4p+d}x%`gGSICwp;0DCYkJK091)?t$@D2I` z8T}o+H5zhn8}|XV;d?IcLY38S~-+v*WQt2p94S)-VH}2#_r~4aEzVuoo zbPn95ZdL}7@N@8U?h%`q(;2C+AN~pPNq*^9ejCOfJt~50-NQ0ThzF>>s7}OypfWmF zTS*Ea2{(TRj3>HaTf^BN@SB)s2jy_D>!7+N=l9CZdU#>9Pd^^Mg zq2V9axp#<1Z$7VH83NY1P{> zV#phnkoSaq?ud9V>yjz#lZKJ6Vc9I^`NLR`UKt(Mxh>oiiIDfYye`AiF6Q|S+!I2` zTSb14Nm(uSIX>JIoX}@tevf&XE#`SH+!I~MTT6Zq2&ga1k}KSkZOB_reot%!0_@XG z$Qy#t=bZevxf)+X<@balpXzt^Fz2!yfER2H?p7n^tzEL@uWGb{T=XW(a80?3OrxdC z%m}k;D!z`^pAGpxD@*c@M(!-8!O7G6&+Zq4`%l*X?qqLlZ-vwGdSX^P;R+QuX=-SX zwFtq5^?Hs%YGQf}rZEWz4J8ft6ZatwGbT$_)U}ll$*&cuEXym)%uCEwH8i%G$Cm0l z$~sEh%1R9ZBL~!_$YCeVuR<3m%cF$-a~^_8I#}=`hF|hl#l6)`{LvGT#yZKh8*00I zRMr;cwWT>q&sD@zGS0_O(aDb<0kMCDY9}hOGk#WOMpz9crQKgiPobpclvS3hzgAYx zGD1rBO6D@o-a9wTFKie-* zQc|)1jDM1$ioEbz$z)Iw&Z%u_z;Pa`hMs{H(A6-cQ6OjlMz=!`+`;TQPaaP0X&}{Q zk!dSvYw9Ym=&C5f>6W63L>ZEi=$3_t7d}>LPRq?iR8@W}%K=sNVV>@RO(4yeUww4# zsnCp68ecv9y~ozH4&lT~EzsLxo+FL5xop!`YTF^d^?p2T86KX4#Y z&$_6rqSjT_rZ739dJ;&QtDh&HD`C{VYdFUu*WfXA6zd>O5gEwFEt&*B5484&G<^uU z(duHwihRj5EN%dCp4s>*3tCPB=fpPc6t0*y|6O7CA*F^$om|ebZ)g`q+rm-o*F|E;v z{0kYH2vB!W2fPZJdYBMbMa`DPsl(X3;7khx@}2$1BHkM88tIy7yVRu4C(Yocps$;g zLb!w&22P1YAe~#9#~aqo;|U`*`sH88i3#IzO7o z12ee^3(5ph&}5tp$w*_-V}bH=OAv;UkJG__V6!c|cV&KAZ2==!E|8IcS3-(m1~pTI ztUkFMsx|40*O2SRMEPsA0tv2@*qcCT+hAQF_k@=+RDo${pjNrp=mILp~Bwr@`sH5|FZfL z&naeNP%mMHfl@S>kv6+M@KIn$xQdvHR}~YG2L%RGeQo_SZ3K{r)hAv{^wMc67AJyzTs*(o-uf==I0 z6s!;mtNz%5)e%$+pP7?m`@V&rON6qZZ2`aDvJkoWypMF_uLx`XZ)9q!r`G29Z<_n& zFGz+sRZ(L^P^+(wE7)g{;1(ALiOcie%Z<~Z^ct8UP9kQoRPtm{p)YYYxcV9B=JR_m z-EOxLC>lxx=azSJawx?<4`|@U#h#vFVwY;YCR%<5b$%;YjSCQl3ldWnqWK(ejOfPs zARZm=EEXRXLnHBQlV6Y`Ttq@zXTn{b2NP_-Xsx{Gb3RKwE%B04azx&>DiC zuOG;d>AVt936L~I8W25-9$KH3AGe0P5g%IDHUxzW2dO09XQL0BHh%0T+N3kfwWt zOU=0@*&^U?aSfCE-g{S>FSf6o@m;a)U7#%`u{-I6i~{2A*o0FAI;VmMr;CIrE}?1AlOb6B}Zb6UBx z1-6WJqDw=$GlhFe0Xd~9ObBisP;1PZTbCa#PX~u@h6}1wV);p_6e91HJ6%I6s%$2r5 zNJ4S8DP>1N#>VRgScyZL3xVmw^ZZ8ohKSzv@CHeVOSwymPUqAT?P`yu#qMH{95#DM z@7z)B-8(xr(;O55G-_zMw3;-QHpiB73Z+QNGl+GePUpaqPnmOJ$=Z@f6IHxp`i6>f z>8JQbi=|rT2FnJT(mR7i4Okoel_`0lG)Zm-<)5GD+J5?q0_hWfP{6~6VG#qmF%CXs z2{o2gu2Z|MXVKkvN#Bg!>?qxnxNB;`w`{}MoY^cjCO-i26m(2#ZP7Z{)uh$DNxsF@ zyxGhpZC$xydLKG}A$vue_zl}`y}^-%JBOx@{vaGk10?5`9qOV79h|{~n9YYAHIRHK z9B`o(YH46$ua^<$Px1NWQlLwrG$CUh>cR$=n+~}+nnBNnk#Q9cDtitq3ak*DOG;wE zsnjXfnc7&7DU?U!?m%N#u`zCS2-$~%x*L`O^4LR#VP+ZbvGTfEPz3$YoXxI9cjKa8 zv>iVwCQuJv6`mn^m>9!{&+WiK=Ekf<&4#QsdcjinWkU&LymI(1%z%%8WZn^fBpyh>Xg)68-Y{J=SzSa9bF;1h zrv_^7&;SF&qteD=iG$w(L$hw-tjQH-=W|v0r>N(QatY<4^p(4EZyt{!WvJkVE@%Lz z{zYEaN(fo_BoR9@bSN|m&PVlgLbl*tx^zRrFTf4ZxQw8SSSKtH12n{_|aT}Ym};lU3IUIrK4GbR_tiL zz~V3Mi`I*&B@PWV9RlGF=sbNISqw7?NzOoP8avY`U^(^!24|gC`w{6cVuIx>`FdS~ z(hKlmXgui2@cf*Zqg4>4*?_0C@+n5=P?usI*NhLO^Sr5&nvQbQ%nyY}{Nh;FCx$ZY z%9FGXDbKm3QUA&I{vai|b?c($kV0`KjRG8f%7>)ak{l@$b$mI$Z=5vJIkyjrBT~Wa zoD!UGmIxc>oS+UJa@mo`($n|#r%#zrfL$L5eR5SSFI=^czv^OhsEjxGpQ$Bt=tc%r zJbqsA51I_O=1h8L-!d>ITLdxS9Ca!hI(lPxFnv5aT))>i zf+#Qv)`EI6Tom(uHgU=~!cRRVKF|?zs@m!! zAx+4LMYp+W_5o-PQz-1|NlQY5BbtE<1R9LUAh$)lfpRigN|3|^UPyOMpetZP{%Cu@ zDW$!k+R|W91GVMSRxU@^leQquw-e3u^6E7W;%7|usjqVpOWJ%D1SA>v6bGk@m<2+F z+gbPST%DT0Kn#E&Lx{`8cWCQ)%Oh?46S>TCqmU;ha0!9>qfLCZu%{4AmFApJCy^mi zOCZtKszAIDfpCNa*F1l>n&n&3U@H%Z4aX{YfH*f{#9`PWL4p5t#yxh5*q2e#3mMicYE z@mxRwx74SogMSfa8vFE96U4@90ycv6ZxySHf!{zlIAp9;bD2l7P5eF5w_K7#+q0;$vq^pwqpj~t@-y3#P=P!l03 zwkW^eQMx7L+3NJ~Wt3%|UZ|KY7tEkrT#2W=u`~u@Rrw>Z9*kUM@O7zckJ6qFd{h!{ zhH8mB`a5A@7`AkBCSsg~SornzD+*q+_|Fle2Y!-ToEA*ll{w>qFyf5x@Q0qIux;xu z1jMeb+fWNd={GL-O;cU=Pn9=}tKqU#xuW1gPOd)4r_ch9NZ-=8^{?e#$dhGi_9Dq>5&lSZ=Ij)vaPbPYT49ZX~Ztptdz`Ciej z%(%_EFqkAL8rvu_>oX;CSQnHB#ozdLQ>T(@;n}|+iU&+d`hoq#BSA)~UN@>sjBlL~ zS<^!+VMBXnD_}Kn7mw=SJpaY`)4f)1+>j_?SlWdKmh}6%gr}0)!b}2Z;AX%>ynNCK zImW)2z5TJ3t*L7I?%dTIQb`XguQ3BZ6h8$&X76lGYNiJmVLp3TF0$!c6c5E3P`c>g3PC_?LmZcpHUeMNMI1u#)NIEX&#JKK_JW4d03 z5bMQ(oW$drvGgg#I+4(JL&Lj_1Xw?K)eo^@Iv4Xbuu+6H_F@*~TgFi#AGyJcNeQ_L z0a8cKr7pahi-tTTjAhQ^G1}9#Wr^w|m0%bPdyJFjDWP~i}l`hjH-VR&bcXeA#W*2 zk0(z-TTQL2V?j(qOXro5kpt~V;h}=K$B_H<2~!?lCOEAGCq@X; ztg5`x3HG!<`)7bKNdqO8$mr!C6be9PO}05I84TAg=EE!*uMl- zs#3~xQlqh`tkB8*I+wSb5H!?zt7P1rP|mLiDPuDBH$y>BP#P|TND}c&In~-#PoP9i zE$$}ZOZ`gZE1s(z#^P#@KB zpDPu(SzlBAG2|zN_09Ai^uWTc_af%2sv0S zZAq!~`+_~wZ~A6$U#@kLqJ#|{%m>xgiRFcpQu)&U8Cb#ut&D2ge>AH_j3t2|@cdiw;7Ep4ACxMj4&kwW4V))IO4#G9j1JeZqqfke8R2Q`5<2Rnx4UXd$9W zDJV47_!H6$Ffhg!ZI=-<^bsU7v(wZ{r-axQEv{G*xmO)vr35qB?>|s=n92+|Xzt__ zj}dGQfL5m%l1mu|%-YT(t0z{$&pWzX^X&TnA9jttG zbHXr3*#(lir*0TbvOCy- zmy_yH$$X!3P@aiS3^s`nbr^7snN+Yu>K5a?C*MS3ex)RuWWHc=^K&i0uD>)@UWHqF z4Ac%+Z#=SP;npMgTfCr_fTGZ3eGj%IN=y&yx~xE_?I*`n zV%Xx$N>*3x0mAF?mfp6uu)dx0JDy zdS_GNA;<7&VJw`fxq`onWy_#C5+~tLk;q3H*%MXqeE+FJn9B+nNCT#91%&eY2QDtq zRyq}q6A+yJHc|%FulypKsKm;F?kqTj%j+iDV-x{yl@gyQrXjFbeQvmqv9Vlc7!v;m z;kf3<$xl_8kIVQpRrK4|K1wcE?LO|?my({yhg-JCG`YOdY;K5}&c{<4PaAJAI=cY(?nfGk{V2FVYFx*N<JpZP~eKu{Ny! z)9Q^4<8fn5R+H11ZT;IxYj{^^sO>xDP_{t9Iw|IUhJyTPtGfN^s%qL|v}~KKVH?$= zRDpBEVs&)mU7fu8SogKGp*XThB!B5TJ4$1VAarY*FA;8qNhPo1c4v6yMsHswsYXZ> z(G+(%m@8f9!Z@QNFq_$w%n@xtm}nc*S!0JoGfSi!jIzHP`27S_jA_%RB{%yY-ErYk z@s?2*l?-box&~SOj zMt7W!ZQHi(bZpzUZQC8&wr%?#o0E6mnKd)t)%RSSyK^pTt-Y%1RPFuSrIb@O7{rpY z&eHjuio(Ix!*c8-w@l$qI^;#Y=fq7;iK<>?!O0~Y8LQ{Y(rZT`^ZHc`^Vrs0T&4I7 z7mufeCm9Dc^JbbSXlD;^ouR9*BCO-uzf955*0!FqFMqZ0Ow+b!Ou1gza82#++pr?9 zv3C$p(|V_6?+iFdEPG!v0(@LvEtahR?M!!9ZY2~&lrSABE%OH%Qx#J8N3n%fDKr{P zFQ6IwS7eg+ph)MHW|BIDsL1+S6_<-~iSykh)Zsp=SNtn>Lg!hi zvR`COZ%#OZnH3^caL>&_KWmH5`6=+~nDbb?P3X>6tyq|Re10zSEfaH=-!X+cshRXR z^51(W8OC}cCmVZUv~axHc2BtFCbH)<W8U*FMvx;f#-3WMyXkP@D-^Ikc3hw${OTX z2EuRT_!Z$V4^6YK^ASQ{p*@7+@n@{>tJy0JLiFcpmo$@mtOu7hgi3iECJmP< z2%KTKnc~jO;bdn>i7GBpPLlwhNuoEvETlkAc%!>~(c;aO%`p-+x!ncF^X#SP8U=rn zs_jIZ+TuTv&mTe=%A114g)s}qGdc&-)>aI=C%(!J3mTo(;ji5 zM7oD3hEtjy#LkVVyMrz-xSMOep3C3cT6ms1w)#ouYEO73bFP}P zr6_w9dk2IDge(7yf4tc|!I{c$cdRvJH4jOQeugxJt~!dWZF5{%o!@%deqVGcuISFr zrz}S*PC%L4piw|5_=s9e6^{S8YdKU-u#9seY>lM>sI8}gUWFCJiwSa5_*Ks+pDM zFc1g$G-ss`JmQ($_^_JxMjHJcCOz~TkHN0LD6M)>Qr%-7;WCwBa`Juvemg;dlK-y5 zV~S-oX5O?1_g&&|H&D0>+})}QGEhdps{a^1*ki-pnUEC!t$S_)D=yi`?wM``|DEcB zO!-`=me+0n)WQDF!^x7bl<347E40^|gm`MSZo`^$Ous=)hT#joVUu0& zD{I-3{b^je5eG_bw=o8|G;z1#+Efu3+1Q$d$8yVQG^usqxYmodk(uvSjFSZjTq8WK z5Q?*P!IL1=smXJIqUBfmFPU;4CMYoGat zWSa-Gk68CFKW$v{lHc<}k38eIroXlao?0#=mo_YJ5bf}%d9|CGQs1BiCf5bM6R?2O z{N7;4cABvrkPW{YGR?IpfY7XiFpgLyo)#GmYE$us)_U4SieOoJfqZ^t} zm;R0ty0D_F`8AWPt>L&a2+Hvu}uN+SyAFo@SOt8=3OpC;_$Yjyb z=K43rL>CJ7B?69eDNuaJGWwg(h*oj zI(jNJb7A>+a&a-77bvvF;F=u9NFoF~uTxrW6>L`FHUs^GNl^XQ6pJr1pU}l|PE$uKZ zq13D&VuHvuD>y&W008~1o3{=ZVd&bxJzqStD(x|1j{cQK^BP1Eqaao8!Unp?XH1o(G3npKMwEQ1 zxZZ3h-Ly>=l`%kNmBIbGXV_(*vyiA@WPeqW)ew0`Nr8_irb9lK3^N80^BAh^tF24) zc*m2SHUya%zEyrwtho$39WG6aZCB zTOBwLE8UdoMxK|b&HDFPJFqn@%lfLz>;CA%J2dnhdH;F#0~()3JT+!Te?~EeZbpB) zEx(H*lw$1Qztl#7w$XQ2{ffZx(nQS6I;Gcfp?`{#MM!z|Pr1!h6zt{6C1qAgCnaN! zrp5@)xAN*gHPj4VMG5Zuy?i$oQlj4_p}?>9LIU=_H#qyUVo>#Tm;w#+TDt{d#orD2kn3V)22RMaKeqb zF#p3E2|^cvFyy5#o{{*BY6i6eDm?M&r!vQDE#7|Z4+w$`7M~Zw- z3Bd8%%fdn;0iexsY7F;*qvRXIPSo9@qY(cs0m#{~TCiCXoXL~~Uk%#R^%8rSZNEyi zxaD&f=L9QM&>AnOsbl>BQott zBs{m{x&I@K!`PN^J zGFCbGmLG23Y)a(s&=VnK>S;-KR2m|8V6Rcan}pM4O@o+CVY=JFu{OWg5zlKK``~|@ z*kRIq@OGyax$?Zevd)cDctRsfye~Vgc{&*Q@=C9J>#Tdvb!Se2JPmZLxgr5l;LKJg zSo6XkvPRD(mn?;4J!BzXHEf8^T(88|1sfAmn-Ze~5Cxpp?6k@737ze`r(?wtz(JRG zs3dSnXy~HbnTOVcCqJ^L(DqC8=v~>UiY8B?x3}bp8LK1r5`XftNwI5g^C5C(d`dT^ z*u{cgdJ4)3hC)EGALF_*Oo8pnES*gCXh}Xs>{@_OM?%`CRJot$b%GEqOvL-u@uax9Y!kLM~r)||x z*HWQ?Cg3^8=@6hFVl7IoNzoa`=@uPOhTAGA`oE9n825P+km;jNYmsZyCXLJq@>~>q z!07lF*A|Rt?n$jx-AlB1qfbaIVuFi2=^jsp)l(ei(QgdJhV02QnExg+JjS=+Gu5Rc zM1xq9Vd-EvnFEb-*w2&h%e_qM+oV`71!KBEeFjQV+;TMg@u27P6o0q z$y0`Rxi`01IE&$Bdd#HU^PQXP)D1s_msYOjvFb#ZzIk{O)xUTGr;|ZM{l3I=31?x7 zRh6yNd|^BiQ5-SaJG8P(6iU9n>4MHDnsr4dYiVbdg_pX#>qhxhFVS^4iHbrR>qmCI zE7MQBpE;L&CWidv<3oWK*SFwIm+#-ug^O5?5AMsPQd4+uj?>4q8poc&yUH2w?-*yB zjedSNI0XX^qw@hq4S9+3MOfYPJ*3OpgKvMzGqK*A+w79iWWP<_kvLV7Lz50mffbrw z7_7Fd0z;mmljW2qMV>K4b_rs8uJlDc9E8l1oP+rwol0?TYIe3=KAglom>WtFD&-YC z59}Jh;i9Y3N2__3GT|yFaQ+q0M=t-za)?MOiO6V$agAk%Yh;~tucyZdFzL^W8+PyP ziUO5sh!Qu}7FhZ#!V?B%FV+QVxLD$VMFRU;-Bp!(M zP}oBS%Vt#RzvRtvs&i7UQhmTzNR9gFb-}gSX-FNBm@mz>SQ`!26=BtN(o#u^9EF5X zzZh8ecye+`H=Eh7f(A&R>Ae>L2QLsPGi&s(SvLTQBGyq_bU`|$agrQucSpz*P~dg) zyXp?E5XF4zM3+{<+87EE+U=|Td>n2sGS9vtF71yZ9Bv0P&;Fr8T3qB;YufFzeJl~5 z&`4W{+r;=2aN6yo{nE?b((SR6wik0+pY}4ctR1IYCgFE2oewQqpOP{<``am6pOn#m zcDD^W9~%Wz#l_&R=X6^sylr=j*Y>hRmS!M%HqU?@IqT&6aEs5>@ z0V0{@{b3+E$;+FZaLLP?ouF_yp~RS>?JPMQhb1$%%6pYZTpEj&)cWSeN^n<^2qVfHIQIBtaKzGxdczc~cWDC3>!Yt$e zpG1g+jft^?v5lcIF~k32F(mx8{F%>(W{5XzkXl@-mrA~>ovXshBMAe@zhJ|`G9jcj z@!s$k#?rRfr>Q$O(D>qKD8s@YKwt6)xhPi2L}0m?PP9XIu%EW^_kg&2M(Sf>;bLF)_$Z7vkttH2aPYLamLuc_b4HC*iokOZmF3(gG6);m z3jtsE(nSouDbPfQA@eS&`FHZ?gTzBbAr6IYL%U6v;tZ4UFa$eDUgR!~1tXZp8=@AO zWG0(RB35F&v~R80yD+Mt$_lV{sNB6QRSa2<9E3EJ?CZ6GI+(6V#bN;J1`WT9T{t!h zZ6^#)P8b}VkeHBbr6m?y<&r4n4^~i&fEor$OY`^>N>ixVoYQORBx($s53U8Vz`d)# z*Wb4zQ(tJFg4gZT&sbA{$AeznpKNCI%0OzSb%^JP=&Dr`Mt&)elMIQ`$=RDd|3yjN6*Ar&3+!d9t|H&g?uO~xOgOO>;6OrVg z#vqc3eCextVd5U~ZxFYCUXz6<3}Yh|o&Bj@a7XlrdOuW#<~-{PoN*7~W2MfnQRO`+A&CMQph zEbucXr_ICHMHZH^pu{kDyRp^?sW)D;c7crM>+9J?mV1i`9~y)_$PD)#`qtxCih!ZC zj>?>Do6NcgjJ-}zrrP51f~56Dqf8sBhr?17*(->Vi6*gB45lHaCXG@s)C3v|3h9!W zDh?RKFTm+Awqk+h)P5e}oPli+8l+Jr=qCr}T|!qH@HG&TIaSWXu<7vCQpS5JpsEs8 zo=W~+-;Ri5!<@H-%&cr~DfCm!S&gHTl}CkZ>+w@1T>qzu*tzS@lc4u7OJj?B?5qs3 zf_?!{N5QsbW)wl-%cvbLN&SLFh|*n%pV*?klkAGo&078g2Rzn z?BjH{j?| zkjNfH`SVUDdR#ZU_(v~h>*;26QQ?a?J% z+l~WAmnrQ$moo1>=q+aj+p|`N18XCAT4yFbcQG&VPYJ1nFrHfJR((a-Sm$|>1!dtd zBf|5}pz$pZd_beVWKI;Lmpr$OV0edUS_2+B=O4isndPh-tF92&45@{9*HE8W5Zip} zFEZG)lk2z_xJYHL>P1T@hhpe+`1}c*C1MZ59t5F%>0+GM{XxP z0K`B*I7UD~^#75r|69ZWZ+9={rPpW2D+veFHUa{I@!CcF-}qA$bOE9lIJC4`c z>6gewp9i0v*2h06PtR$`oFDkCdx|41fDO@iFH+bk!fSy77wr=$7u*eOSHW)t2p94N zyY~b*2WS=ghPap3uM{W;Vii6PXce>;T@SAp9ViFb4Q-dhj}F8OT92>y9_TN`3rw#X za5sb<&@O)O3UD{@PrS_**b8fy3up)24S3fR=;vL$T@t@kU>~3xAwM-BAFvzBUP~Z8 zh!^Oe_!l4e3uf;Oun+JJL@ymM%8JhsQV&{>eYp94OZ!W9WJ(xc>!8!ESn5mSOG9Gj z_db#@s;|)5HPE+RxNn4S{)4Sw3-Gpmc*|f1`6uKqPYXLSLdTGwD3IU^GkTNRya+JO zM76Oc2l*K}$4x)1@_W?g3g`fWSw28D?kS!z+bKMNIB6VM79uUyr!;Q@lHo}?2@QzaiLrY@ThOAkqlu{zCawvJ_;43s;D-pD z6;5lK@5IVa(u?$8E^K-EK#r7xb~yEv3r!kIs@YB?oOAhV$Qw}RU6Dd5E-_0GGZ%9j zO{#TO;3^1q^v`9zOLtm;mo?3cCvb1Djdixm?{+YGomiIU{Kc4N{No+JIvlq-=#U`o zA6#RPe)q7*aR~UWK#L+FUPABh9l0mtV5RzZ}T>WPEss zV)x|eMdi06Ic}F+X*S%ioO}G^X9-**6dHTJ{z&T~&;g8N3)TvKZ8O{cFnHy5zExK~$Y|hpAu72C} zK357fs2dQ2n5T^JhAaFX3WPhH=i@g6!X5D2-cO9-*%0IQr~C@^g}as;7>w(7UqX2e zUjp#6OgA=T=^&L|**iG@s{uGd=X(pR5uyOo%kP5^m0n9bO*Tp z1%LU|3mob)oA13<>@DH645ZFEdj3i-#_5u+hCHCX|E>MbAq`(FN} z)L3fhZgkchZ;B3UDAAm@7FT~&q^v`Hx3{mSWR#4zJ6C_5XB0PmWmqh!%trn8U|v#Q z|A&*tzKCkHKQTgDX?e*A z-T(}IZueM^8LbL_ByjG^jQ)p=i;)>a>KG;?yDl%vPSMPQeX=aC<)~G}MP6oPWmJJ4 zJFzv3e5?>(%VKr4I*{Tb(!46PbwPCNW|YWM3w8b*yrdXySlv5MOI{bJHtBg#Natv? z_aJL3KgJG!8+oW~JijobBhWg46EarQO0@%IFXrypjTz-iotZUTCEn#q85Pb12G=uVx zZSSPF>VqMNvggJ;4?d-V2Jhq=v)~O!GZW?=*krv;DWFjWCqSV3;hM^lVJE}2Yl@UM z@jX!d{oD-a_BQby>O@?vX?&%wTd8Sm!<4xgy;%ybCG9?hcfL;5{zQZz;S5mG@swHd znVhTs#rEY3;N)CqDPU%-%SurR+B9ht3G`>@T9M~QIjsoqdm9dP_Gj-9bK%@>yJviM z04J^alQObQ3?U~*ugej!k;a7aei}oRqcBo<#k~1*B$GWSE+G*@QlerJCqf6BecVhPz1Vd76S6Ec2iD<3#DUk+boAffPFueAU-pM- zf1ofq+#)NsDlC8E@3(UMMo$Z9eTGH}{iBcy=9UV5=oGO}Y_)#3Q zt_zECee8Nd34^(^C%>o!$d)~E(EP&Ky)T0 zJJy8btX#=DTJ8<*1sQxGHmD50a%3(9o+S(yc!J{3P-tR>SxZzZL3Fsc9^A?bnQ-9> zJ*yl*k>eXb>KGMZ7D0L^9!v5b|H`s@7~B2U0k$|IraU7;Kiu8@5A+Rb z?>`_P_!}(09gt4&8!o>c&=267+nuayPRE_hU_QFHR;V z7Nh=Nm^p$s2i}Lo7)5sC7>OerZwpb!M>}`OA?TVn4Pz1xCXoH*=mZE2p-wgqVOOxr zb?>)?$|YwB`kP}E#@M%O#PD}Tm&vG&TVut?YV`FEMaV}!=jZU-grbW8eKa_PTPCMw zf(cH803Fkzj(aT*Pw-6IJ%wN9wqp(gwnMU7 z=%T(__+yp17{rBaC8h(ao8x)V^mJ7h75NA?hQm+iQJf|Ju6qdg-x`)faP{3_po`v| zjv=0q&af3KP`z!Bn`)V6EXJ^Th~w5%RPT_>xa^QtO>M)lOpMXE&eb?9b z)wtjE6i}o(AU6tj6pFtrg`LhF|KXXzzm|DT#>Il(p8)Y9-UyeJ z%_s5*U4gODp{rr+Q$pNHKpAJg)Yf!ajOsXa(B>j3JEO$N!oM<86>icXhqS_vw?cCH z{M#&@po5~so#DZ}!+fnG$OR?pfl5!3IW_B#`)e>9X}}Pv)SoYqPWy~?=l*Ie2u|dOQI&A6fzQ`YB3&VncwSL7J&F*tO zf(`k|@tTXcbWQv{1W=C$y*q{ z!Vn;fG6qv+RufxKql%xD)^+6e`vJid-YN{l)ge1=4;sQ-hFc9{W@xLd5sNRvjNhp( zuk0dq)TiUs&(CNnSnj5BBu`B>O?(7A7_-ns%fLr(n!5`PNV=4k@aW;F9h{%LW%Zae z;iqyK=@>h+$WyGY&Q|FW}ilNvkCb7AsXlyUm{sB{|Ku6f{fPccX4!nl9WV1dGKWNuH%RpPBzwCC50*)MJA`nU-5vUyD zs7&9T>Q2`$FHC1xZsq=U(ReMEu73;jNNY|)F_H=NsiNc>&t z9`A0H{bin-2VRJq8ucl%TDBq*Nb51eg^5Xxiya-5;BuQLU|9k0yG9R_;uU^mbfAUS{%!&yvgokZ@a4;OcgH_)R=!>w#fdYuT_ zY^%s`UXPeOmV0@KRr?h%5Yoc{&FKl2BYQKsFjZ+8AxxcesAsddS{Y5%m;1ed!jg195Mc1xH2C;^OC~d=*P41NIsc>qTp^Mu{>pn(dW_ zEh);0?CG0_VCKfuhKEv%H(Pims3T~-d9b8tKY$>pm?hN#1uL=~$ocHOTd7tCiHwFu zrh2j<7GBLoNL$78#gsH4xdLYuiHc|->3oancKyG0Fu62>R$gBZ#5>-s=NBVR$K&ixc0U}Y%n!?PyxTO3> zvl!B@C24|wKg>`yR+A#eYR>7tsc@RA*fvMh8voAJ6Og%y=Hjw^sHo33*E$KU8k$FHe0RQmDPpys+-1L}O-Pp(Bv?0pp z*^BFy&uHpIMo)YPJ+$cRQ}Vlc(R|uXc652-AQYMHL5nX2uiev4gDl3$pVeUTz(hpC z+ns>|Me6wFT&ZMCepV0YSixHb_$Q``vw3*GK`==pzb9HhH|faM-IHb*kZA#7Njfu! z_P2fsNkOP_iFaN9?V4d*Z5lI)}5Rht`(jLPMd6 zZ?E>5Ig^}`8xOoze>nnpej4UpNt(?tSV_N%48A?akrTwlc(a4NdS%s@}QaPBW zWHWu>)tR1OzOPc?r9DkG(+N{f6GZ8ff;{FiVkKUUV$7oegNoRG>6VGMR|l>1HZeK~LG%P2b3X=XPBX6@>weB5j}UC7LZZ|0@;u9VR8HRkHDkFvp0r8bP&z4_cu<4 z^s3zA-ib*cPclBszir{&@%h@p&RaCh;QXxn0y`11%$7MfU?tnDGE#&9JN7XYYLgu3 z!*XuwE%2k#%8I4I?mX|ClT1^bavZsga0wHGWCs$=t40FLtU~G_Ow}|`7fjneJ1L`^ zPaH+R$?gs*Bz6v5%%}WaGt71NzgN(lL<4JLe=<9^t(3ol!$)h%ZLKs6kNL}ssjy}| z9VCP%90YoDM^iJzUT_W+aFWl|_6B+sgqurvnPS#l#rB9kvhKr3lC}&PeIcG?gBs{q zH-uQ?z+F8|{_xJjbwjI5m5`bJIX#Z2z89uBtM%=xwuKfRpzOrhI6&wcEHYq_ktQq9 z&WN~%Ze>Qr11~$Vy3i=d0e=~l%DWwEDR zK@STadppzS6H+F=h%Ac|r$)ouzf0d_%yt^zGtF61(>xx#GrBHrc$Pm(+!S7pYgqJa zm;x?{uOAzdD{Xne)T}o_Q~~5$T$wP9J!;mc;O3zZp9_W|c znrmL!UllI>slLK{Ng<;WI4ObeA@^=Qhedfeiyo$Pe1p^#`RoL31e&==R7|fRGqe6W z#!-$M2lr-9hGZ@C-_~*3!_{nwrA=7mvx|MkgsJLFx&U5(lJC%z{#Aukkgx|b4`~L@ z;Z!G#uF_t%ED}wda&C}Ln{rW*a=Pd$;Th}D`hh#OFcjf>1~;{TCpoN0c8-ZU$e0fH zol2fr4t+)Zi08$?(0>8(?hHC1iuL4iHqES%Gf+%A_XF`KlhF9cQjO5SExDY}E`B!) z#Q&k%HHUJ37;`0BCKBU6qRm-M6YLl@rT5c>YS<$!o}r^^6cB1DAG#r<7_9xZf-xz~ z>slO|KV*bVrbgMe1u*Gww)A*@B-|$8uMS6NJ@aXL% zgXX`e#6Nw=%q$%lOzK(m8#i=hRcr-jU2H`k6qk4EK%6qnEj_Tj&|e5_lKF9JWr?(hzv3<#M-J17^3(@J14o@A+hMlpx%! z@;DBbClZ5kd9`ak?eZ=AxR9TEqq z6?v8+oODJs(D(9&iO^Rh4?inkZm)_!kP4%Onaf`UY~h2 zg*)j}|Csw&ULE?lFS)gDd`*cJik(Vy#+<)4ma7fr)!d=WP&xCUU8e^5z4>q!Nw(OXT~|0!rEUwR{XUTt>x#90v$k45 zcJk!wD)aEl^2C0qlj{JjIg))eiS@V-@7ubT6ALW3gZ|hLF|xJkny`s3-dnXgXr-^d zO>`-2`;ue8F1u!;E%){X}VYJ@q%PCkKd3@*A@I3Xw!yW__Q;hJY zmVAm$xN>GEl5ySU8fLpIm7vL_?`N5_J0kqfjA3ORy1t27xv6VH?Iy|GLV+llt{~M_#G;`?B`E>$Vl&@_foY164?1=ULC2CVXdh6~W zZFCvqkoG`a179#ONP@tCDQokNMK}Se=7?XfDgxJ27XUW60R1(kpn!l}%&px;mPs@o zfh{);oDnI3du}W?GZT7yM{vv+DpL{jtLZP&FJG5@-J)kjUWm5ayLes3PTmrk>IU(X zw7g4vNJP8z0BEt1Ce;x%?wJ#E@{xnux7O8c#s*xOS;J2!O1T?$!EI1#&e*`)LrrdD zqsc|@hc;@;rnE?CzT61ToqP$BQ1%G4Y;5^%u@M-^iA%w!0`z`{w7xR)wUr7!C*&du zvRW6vm=^8cT3T&Fh64 z(3JSqCeGk#fqkBg;V=vlVJ9u}nih7HMvlY4d1Hc)pObGw*p2{qC%+2*9U||>vMT&O zs_R0H)%lr+_*7J9S31<)Pw+10?8=#^xg^D=yn7X@)%#X2Ziz{wc?6|IO|4Q%_q+58 zsf1%7_aLdEdo&4qznI5Ebz|LCAFg?wQ)-8Yxm%HG-VErd8LA%r^JsmoHY>d4bQ_^a zil2&=s%6L{ZsFqgu!sf?C=$4x5@ffby2FS_8U8Be3yW?A5oyVnsd?{e}l( zch(K=!aTO*ND3t{%tM3Pmv?sa`q7pA`)7k&?_YrCV1!>?@aw(f%7>T6cowdJ(y7_s z##jhX3cOB7>P~!SPwQ5X7Q%ERvvsJtX_^0?1syml;!KAK+_*rS3Eny0hX0I(Wvm$8 zRvv?SHwZqvJDC*2fYPq^u?lmDY`H{`%1w-N@K-_@>s8KEKWX-zHR!iyU!`BqE|yQ$ zP8mcNC!lsh@6pNK`GbUt^aV!**s}Z^+ZNfe(M=q%m%0DrjqVM}Omf;0t2ORnuGo}o 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%0DBs0{mv7+f9$*Q-15YPM_UFxKV-q$5=gcKF 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�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

    *-q=_E+dqB1t!Qh%~Au3Ea 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�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

    ~Z7zZf}8-y>X4C^2^xe1W`zz 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

    iDg9H3y=rd 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

    X;OfU9L~!xHIa;z}zT*tP(n;x-7K^3%hs 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�}^(d{iiiHkP|KPORlE68;8KZ{vaO;f*0iMu=y?q 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�OXNlNdG|PgSPsJ6LPGZI| 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
    )ehmxwb zs);XhtKt$#I}id5o=hFK3~TX@KxTY=x5xr3_+Hwr zlIw?7z@=7r3w#&As%Al|W&v(l@n(EbRGW?|(W~qCx=TBM_!4j!6qj^f zW{1@*U>|!ww+H34*sEJP+yMQ~`QzUA78A6*miZW9)dR1O+JDB1V|NqKe);89gz5&DnZ_JH$%RD zs0SB5MLAzSfeZxn{YaZLzq-$cTEZ3m?H{^sZrA3BVSmoX5aRDzkGz~13Uo(6aGi*J zoEQ>3IR+eL?gk-nyf~ob@b3>5_$?mfV(g$;eWU_LK0I)Dp7$X1KW1YnZb|I!V!Axy z^NdWHjVz#+AhE1;nT+lf8yWfuLtONtTEr7Yh2hQl^rd%WzADx6Eimiu*0iA$hd2j{mN(oa+y}YyYa+5}# zD0c@hz&%=BE%KS_e!!0QBjyGxbFrToCpz5Iuu&Hho8*FpYzYyv(ttQ)5!IY5IVql; z=JIYpPumkIjFhxt$MUy(7_)pNkM{a;&1&_f zY56L{Xb)gm?lt#~Syuk9B9gVJQ+3NBl+559F!AJ_ICT z9PUp9rP)|G*olz46n2SRh9iZm^+G!fr6v^_i^D~1vT9Mac9;lPJ~K)H`U2GkhN{JM}rK}-o#GKw_ruXf8@SFZ#q!K!1 zXF5wSYTEs?F73<5Nfb9DCfSvvD4RFp+=w|=C~BN@h&2OFGQX{HZb*~t9sBBw7o-C! zNh`5jG~Azvw=en^yRx&Gat0WYIZN8|&=fbFfH*WMoy#mqm*1DH6QoHElLK4Y27ZOY zMBz{hl$!ZDBh?d4D_Oy$E;b|wx6!2__aZ#o4#hR~`-&o5&P&d#)O!%}-` zF@YHSW7M5v^0gr!NEb)d^-*!DFwNSY>C~{x@l4k?G8j0Qr%AFqRB<&5>axn=l(eWN zTn3lJ@d6laSePT7(J7p82nXs%6@iw~~ zgcBMVdzAqm^`X*-n_@bj(%_vhNr!z&ZXMi!Iv2xI7g1sQ8MbGHFH{9MAr5-mfW#)i`IfG zP?3}7hzZ-B*Gsg^_kA1^iep01VAS2)*HbxptiIo;!V(x-Se*L%3rTm4g;{>z{4vp~ zAWoamp*V*HbZgeU6NGD{fjRqocJD`YaNx0BG|iRykizU2titRUwc~N8gT=7h7`d|t zD-yU-PI(}f8CQqEFy?_Z<9+9iRpY>vGjw9o8Q!4ZNq&IvtqK>|n_>Rj|I4ng#N-3b z-1Gy^9P7B1sg;i6sEu2uq=m!%!gbuq#Z4SJq*fu9VGx%JVzoLWe=;xr0QiIaxk9mWf3vq;1Y?ST~_CD687Iba*v@? zzk-RFNuCd#Y6;nPjz2J;IEMRRuNEPT16PG!aS}E4imhlC{G@ml3gOx&Z_9nY3Jb83 z-_S0kjNZbnY|!uKObVwKjph=W0(*27VXYLkvo6X=nms-Q^*04)NYPtctmu)I_TVLQ zoKpMo?Mm%6>{^vr%Jq-BQaFpkTz;;xjm;`!BecB>=al@UIO0OzS5&~DHT1LDpZY^7JkT5u^yXYUVg0EPVzu#w#>Xjx8Z z1ML_C#Vsjh1ZX`qatvWja-V8q6^+>DM)mHN`Q>)#iZ*Lx+bSej{!SEYI))8e2AG(< z+K8X`CvVRVfM3BD5)#S3d`z>d$`V9tMmlKcGH4%1z~p-y2#$b&9T3G}17oq?Cc@ur z)yP-_==@XY#L!?&OL0T!ZAO*HG}zavYsgX94I7G>jfAxOW~_ZtzPJGU)q)F3iQnFi z%}B48RxfMEu!=ObVz`7kdLk?+i;vkxH?9lWmO`nS*Zx-c)ESaAuZ@1bD!Ub<&yO5X zJMZbE&q@A5iOjMXJrIg=Ii~2C3kwT8u{kR_Z}>yCR>OqjSWhH^33IR`N=!Q_m=coe zPT|y0KK#Q*ye`*;B?1g^m$ImFN-?n&G03ekc|m;g!r7uM-q0|s3#)_K{(bUB2;S)4 zYg9l(riZ=c0iHBoP}7KJhB&P89O=VXpwJKpUNrNsHV{L3P^xfBX_+5{vTt@7-5dOk z7SzOsLxl+3M#osp<1N774zYol6L=IYvZy*|f+JNf{buDL?C7+Cm^mSTLZ@(EM4$fMiwhW`gi>nc1!;@VU+TT!!+pUePUK`(5OxBlIH9(GiE_ZLT6W@yhvS* z%*#yZH-mYjwP{u?)wec8A@oXMk!MNhUMkkGc?-hR1n-NN?F&FykTi_YMv0g&UbM|0 zoEsFWkPMm=g|eIxJ^opPf^83ZVJ!>Q?Ax?Tby*?GNcp&b!c!qOLhrL7&6>8yg?m#T{K;;j(R0<*W_Q z)W29d28|X|@2o8byu9w2*l+Nqi$u z_}s?)c#m&C|8|XEdKLL7Pkd95#jokyfn(wk94?WYl2oL=R&8}<4>4JU#X;xE1 zPhZAPjy5OWt@`c9v*AAB`DkEeBV%?vPa)Ky2%Cu|@~~ur63J4odO2D%glt;#mFxGb z-$-iG4!OC6uDXG)dZPZttp4TmrFS-5Wrk*YF*BS5te#rlKwgZlF)=k?Kr&x|)F>uG zU&PEgJ={2T8BOwN1sqUdF}V~!I;+f7X!nrRm>d(E9J6nnoZKM^Be32U903g9R?1C+ zA=ex~J2jp!aw4y?2{v!8IL(xN4IteTY2As?n)hXYYD#RLLRArVW*LeVo{)t~nNN5? z!CD$Cj0siA$VjphkSbp2n6V1w9`p25P8crHj=nGcfMDvPsVVE4VDbCGvJSz>vPBgJ zLyebL>GVrHDU);`!|2J<2VnC4(y8H2D;+LIAnS6bo-AN*Lvs(*Z^6a)$dYUhQRvY;tcOG`%?q>*}AKua|I z^yd{4hRzExe{CWSwY?QI#%?d{ENOc}nv+S=QFf7sZV8oMyaxw`z5 zODtkz=DxZ1c(+4l4GvA`Duq!Ce zloEYN&*e)ptalwFY1A^yzh}Pr)aGKFrSe5`TkS5K=&I&@j5KB1JwvKA%=;&bg25v4i z{_AZ#r0RD&mXpG8)Dg7`1v5gR(rKthHus+=fu3oUBw3DwB9{-s`@#(*M*&WD#roO+ zH5gM>3vcn|esCw)8G2Vd%=!j26_S+89|H?Ap~^h12ceYX8WoRNPbuxb4@9b#lgz9b z;88#0@y`*v(hk>5EKOqReZhGsDEw&}&0K1MBGj#cd$H>k2gK+|6Q%zOs?T8^jbo5* z=UBTX+0BE`lBS=e8<_)VC{x~0v$IwCTdxv7{(Gd|j5y!W%jlaBngZT=Pu%@ZT($mw-rW59u{o3- zj+iZ4i!7uhhFM|MgI-{$H$<2ne#OGXt5N44A1-GT7Ev>FD+jtk{Z@zF_l(r}v$c** zV^eoCEk|dAD%7%|QAK-4OKZ~%li~cyuh?hPkzHCi*Yt8GG?Cj7C>euX^ng~ma#}bo` zwX>(cKc8VMc^~V<*8C*)P4L%1?x|XJo9MAneE|-e22F-8HpAKkvdoESyzJBDMh7UP zA}ejT`Ub;;mDDIR?+ix0t)`nfr2(}hL`poq$rPI`Qju;;V@PKt)@c8vu; z@JWAwy>&!hGnzi$4K+4K6CCLAjJLSSf~zz$b#KdU*7-;BMZwdwbvu7%)|+x&Vo@Ha zYY#o3DE^UDmSw=AI}uG+$HUWzHBzRn8@k5XxN#|}xzOHK{5jX#Wy%pO2iVqZ9o^78 z8jL_PPjM!VT;z0xYMirW^SlC1es(3{z*Vb&1X-O;?<6`QH9Z{}+FgpMCc_U5kU;GE z*{3t&ZhA44LKmS?WGUbD;{6V2yL>+*#lGW7R)(03h)~HKs`8_h%;N`y6nxQ$#vu)o?D<7h!CkvmccgWspnZ^sqQ5VV`} z63*QT0}drkKwPRA=!)e72&)iHC0hBA)O(w$qO4*}q8=D9v3}LP=YrG_HQccTnN|0x zOxhG$TIJ9^h~-Hu>5Ff_ODT6?m}?uD$t&W&HgJ zxrM(9xud_bAN}-JL>hp2iCrd`8^iQE4C(Ks65c3*w9m;s0qy!VY9ErpO3ey#z`r@7 z>^Z2RUl>F0h=VdtWk9D}!XBky5$P@58oa?ufh{j?`ILJz%dpgn@EPDBEd0ISfHDq6 zECJL=&45oFjs+!f357h8=t2fy#WI?oeccju;J^kwQPGwoKFDaKLN!c(pD%kHWXiAU zOaDwu0hi#d>-|YkObH@e%|E~wAj2vt2dcc_zvvr(FX z;VNGN1hI4yYtfnkd0h-rVs4QGm$_ZM7V%(R?-|)`=1c>}gf8C62`zzROdFZGbp-7E z+Q)TAJg1*Z^LCu5`UZMeK(0gL+ML+S2G$_N-_@_gy8@Y(%|+lDZRWTlK)4G{}>UJ4)k6med8M6_xi`bw&;*Iba8buv{7&} zF?F)EGygXR@ExZZNR*d3GkMKGNMmPFD8f*$Nwm=m26< z6E4VP3Mi#-1H2IwO0&YGUs%V-Cd1jQWbKP#|Cm!>dkMAV&53pVGX3|O{Iw+_k zQ2ab%L%bL=pJ2GU3i4QCx@ZdIVWpV8GSM4@h>-@&?1-eGoxxi=kxtdJ3B@NorwRU;8T~lij))g2a4E{>BYq~1h3|m3^8EchVq}&1< zPlxTYz1-asbeljV646~Xf`#(zKDoVuy4|WVDW60QhuZ)$*-RSNSgb)T`oMH*H|g3f zP=_tgIF&X-Zd|BH_H+v+dM!gc1U;*#7OObG5Q{i@d7Ct_bcjbUi#?Kfh_+jXf;iFo zY!Z_HEmTsqshQ}Ms3b|))sLTZcfalyy6L>1*nb>uO0lYoTBGWiTx7VQ(%QORd71kO zvc53da;=lBvQ*kn0B|eQO=0m$;OxxhE8W$Fa zEhd=7RqL$&r^7Sgg+=(-lnDB3^5o6O;)y)ISV2RH;d?w-I|mS00>V*wL7~ZzFu?z;9V!gBT_8Ve+7a>Iuvd%VrmNR}ZE~Se}IE7yWSuG$G z-E8?o0ltI2{GCW*E6aQvMSGh2$Ds>2A4~D3W!~4TlXzSJuVJJ4P^e)Cr(JQg^VEWv zD^B0P{1Sp!m;#A}w{PO4%Aj^x?_*(Z`lu{M#*Wgp(PC2b!Jp+V2iuRBQ4 zhIjkj2hRGZMBUX3kDbzxEU|G!i?sBytQW+)`6vpP{DWlu7#$OhFma}k1bfi^q*>%a zu_*80T~HNu21tHe5vZ;v;eoUrUI?DUb#3Cz=hg@X@)fPJbGUdvWe;(#McS@%b=~N^ zUd5=MD+^+XPYzRVhLGE}*4yet0nl~l!|TNy{)v-a5{F1b5yuA4z}XI}V8o~J$eNch znU`Sl^Y&#rpvZZQ1S-&WyHwhGTNHd-C8W+Ot#V&Ed(JhwzKKI0iD)2{#xKAR**BFZ zIN6c!dIXPc0KS#jRNCx{{WkIXn^=$Uzj);w-8zjTV-(~$jR2*5OK9r++C$VO=Cl*y zkQYN&Hj*q#+in_vOLk2xT54WHL7wL* zH{c^|vB9154#()*{Sv_tELSIs_?qW}Sv?b*IX`}H&pGk$|Bzv?pR8N`6SHvly#vDh zFK=%0t~NH#;+9U%F8>|mlGHYozY`Vo;u)BuGZldyaiF1M$-DhQ&gh1Vz)&cuQdrp= zr!sylQIe2SPdwhQ5}Z2w5i0mum}@gHOuM9)Og|QI>q#gF)md0$a<2F;>zh~k4jTOW zdgJ-6<&!;3Xayo^q!o!DY9_{70nIOO42K~0Aa(gya!9QWyxWSNXOq zU<6sYxuJ#!u$1Uv?K{Iy%VFDLd2R}iU>lKTdG2lJNfVl$!l=lRo_ySlrze~jL$Y)x zZtUj|0ily=eH?w=2)nVauaiv3ml#{NrarMm>n_2v;RW0m6J)Yf3+pb_pQS4>dC!Bq z&*q)eSY3&e+`Y!Xxs(NHwstbL*xEL>iUQ?CKtH(lpNnUFAUMtV2HGl2`H3s#-F2;6 z`xt$o?G8j`wpr8moC`4Oa2aY?uKA!3)Z;R@$|SidtK=59ocmrM7qXt=iuAXX>R6(B z8lpYSDGr)jN&Mbf3*;-2=rPCT(zr7fI(vk*%dHv59)UsiKHP`^ABe;>zHN zZM|UPAQjxtR6xSzm2P(ra7M*4&3?V_kOq#c!eArX`2>$gf~#C)!kdQe6zNQy^WeC^ zUAZ8NV{;3s;gbNBU@WzGGlTa!{4vi9l4cs}w+ z13<6ZyJq}_9+6kCWn((K+bA?(QXFa~)Y*lu)@_RWX^QXQ?2(IA{?j%|qsPrUA5w2X zp}e_Wa&YiMjVZi6oJd#g4&AOIRY+?HcN|$7V@^XzWQeb`YTtMBB-krS*9wQ6M9n5p zfrQ0b8@#Pk^Fvk)%!Kpxt9`!wf%Ok9+0)M&txBw`Q^}U6E(+YLs?ZCdmDlW-T++XM z`0lTD1cw-RY@?TDR3ihbTEmdl2iWzQJ=aq^g5jT(+lL;J1$s}+?=E{_g~E3jqXLfT z1DqQZi1JY+(KwjBa?OOv7*lIO&uH=xYvePRa>3ptLQ)khO)UcGbngJ8c&x$RtBS%%n^#{&QR>*$B zTZWdWL)vELg0@wMKNM`k6o5(@W)TM$-%a!`bI4t@)3LGM`j$ulzJ)jmgBm11svvUL zc4GhT57F4TQaT4rP_)ihJcw%q*pLdbOCrJ~R_}w<800DvcLl|~w7h`I{MVV^KfG~? zHy?=U8+|Um(TC~(AAMvE|4;DIQ`t1Z?6pFoRowXefj;{NL<238r^;{T zE_9{$yR{GnS+@Sg@r>ZM{a3DrcOHwh`FW&q4fk6C?o38dt&JiE`1Z^R-;C#s=l1Q& z4uc;AV;}?bsaO#X6>Y>E-&|#=nOff`?DDN3YYzF}N$zK~O7mDDF;*PQe^@aq0-8_p zZd_2~)#XLB;S$-V_D%zWjO#{qhF92t$cB-5`dhZfI&{G?nTtkLdyyxcM2h0+uB2zZ zdWOMnpMHw-)aD%Cchu}vlPT0Z2oxXMh7;e^y&G#o9tF~0Ny#L*iCc8i%`w-0+8&a; z3Zt8Zzd(E&4AZaMkG<%CVY5fx zu1`_zpO^)Y6qCl}=`pM*t4kRVB~kWOk}1~f)S1~T^w-yY`#~P=l0L8*tj-NQg@abB zg9?oo5n9uJf~RK~j~F;wT`CRSM~e84IKXY+sIKt9X;G8SE4-gji&yLnYKOL>-tOz5=I;$buD{}@XM;_M zqi*hV&yyExKDjr#az=9|?5X?0NaEKcExn=0^WMlZ>iX`&w>RAg?0D!6(IS*hw+w~+ zxxKkdJvQ%7+38;)Y$(aceO58X0%`RZGU58QmDA(T`cBk2cE>2uacTOL*6%DCyk8Uh z>zLLbsab=_2U`eZTbRSH9<1)eVp{z3#-4nV-ObLPcO54*b#p(I9Yy8PcU(Ug0fQo& zD9r-hfM{(g^Ct}lOphSFd?w*sWNDkbAKoM33=Br9Uw?@k%a6!XIF|o_ zAE|7yC<&!t%JSaQ-~Yf*%w(0+*O%;Uy|~DcIv2`FHDo)*DYwvlNvQq!PWqi^nULnF z_2p*xF5+Rv@wzN%H*P=)$Svmm7W$zJEEk?gc2q2euu0o&G}lT1)d=GeCi#wT=qrhL z-nm8Ht?a6%PuQZ$BgU7Ym5A=o{+^(D8>UC_1ZZX{A6XF$Eo&LpdSU2iVwM_~KYH_s zYHZkR+~LnYItn!Op;55W}vFGceOjFap<7x>p<5Sg@{$#BV#`N{Ds3Fk@@#__Kj&j|HtizD0j$- z?0W%i`#WTc_Fv+Uf|1pC+f>NO$#)%l~D{e7B;FO8V}!l#?E zWp+<;LgTDFw%WR7T=I*E!aQ@qV4>alH7bb|ezq~{j1CNT!F0Zz6-(23r`b&T1Gsv7 zgt`{nv8v9=_wMQ*{j9!o;QLDY5$HYJ~4u8|3=Lxowpml{oKMSH=(2H8TR?$Qz+ zO4^v1iFg&vVRcO#7|I2WM+p68Q)Rh09BYVZ@^EZ*z*%d#*0RZ-?_sH3`#>b%C{&eg z%pjvmja4TQPW(Ne={-ZWV)MTse#(5P&0F`r0>y8WuxrhjhN5C}!b z*$P~JI7fKss{mni1TV!M3~MTJ5w@y4jh^9)(qyT^M9PDE4s@a9(KGt}5A%uIgxr#P zMS8{B#<-c_swXCO(x&VbqiT)lZ~=19Mr^v0Q#-e*w&?L;Rni|Ev`y`aWeispHbt4z z(fnU0`=*yHR_=64mBHuGpw0BMQ%h00+ZVu)KcA({k9Pa78-Y@y|3a$y5IX%*-gAHZ zP`Pmol0J2*m)k9n8cE-!nmm9h4vBxpnK@9RwGKH)?(|Z)LZbZ*v9$$ zGt$viyx?m`>|qaoyTTW)lCTIP~D0lG~I#;&k`|NO$0kaKiIaFWqa=I)lQDq@a z!C<#6Y4SJyxUry{zv>=_TFn*3R(hD7KZZ|fh?@Un_0o>lkyQCP0-8e^KbpSzdRUEh znrta;4!^zsO)s;NO5dwFGHC72xfrF#?8Sg*=*1AJa-S|F&d^55kKzf1oM}D8T$mQW z1fO>y`^O(;f?;;Qep09-;zDCxZLHPY)tFQ%qAR7mtrMwPAa2S{3X9*&s{*K+$KD}K z_(mDxE;$!MbP#U{lssyl*T(4^CdE`UYuCTBxq96_RT_t7C^nAd0&I z7-6n98bgj_`*?_h3bOgjPZ|Z!OIV15*i}&=VxVr@7uN)(;R{V9JzHny9y)&;t$GPT zI;}eMUwUJ7L zCwvX1+V1%n*AZEAVCm|-M_vdIGO;sSZ|6(GKLUZo@!$|i>|)(hd73Yz90f&oAt45xo%GxjCC4HgN`VuKWdqT7-Bu z@XkCWisep;f0eTc-=F3F>{zUo?va@k8mkqCQDDX&`1?Un^vt6p@4XyS!=B)EDRag1tbRI_1|49+Xmv&4`k>d!T6Z1`MCX?t=M??-{}LdU^?luStljQ# z`yS6}eXEXn|MhY6?|np4AtxitZznV-&;KCZ|2dztRzML#Myy zxt8;*`|}55R1pyD&&{APC=fCf%fzOVdwO)7fgjWCnb4mUa`*8neFI%bmsx*k2!Xmi*BwxvgsqtY(6rTuXX{6IB~ zfQqDE%NEZJ!{)v5*{8xsVEIc!O0YD-T|1K;P_zz^+X7R-tFk@n5gcGL+{O{0 zJAmHaT zI+IVnc#Le1mz{B5fimiD9#hQSg}E@hyeHY?@A683_ClmObY=GU(cgjiWSd_UcT7^R znL9;e4g!KsI_K9sLM$71FWf0Xh+C7`G1r#L6YNUMjShXrs9qS&_XzKY+YIvKcHzSt zPBCF~tGx&Fg&6eeH+Bi5k6j9Yu#MP+F7z^W*cxGkW^g zM8UJ3G{-}7H4sz)5E4eWkF*Bsw1}XBLu3H2Kqd4^O7r>`_&>*f|I{;=dBA1w_davc z_j236cK!O_)%$*Yz*ZK`=Nu+Ez1&v-Q$cz44^A=>4a5}3_F9nmP9K(5r z@0qvz;gRFZ$CIEJmK|31r}_vO2-76C2beRrK3i;W=YD7QFq10m8?DJLIJ#@6C1GHT ziz-~CA$xEO++uC+0Un+VtoF|<57>hWj#oT8@NUx#>kqeJqAtrO+-nGB#!0@9c0@hf z>&D4H!*X+vG$5Jn2NB7!Nn*_Ly0y3y1}32x;TwmQ$JdZYlTL$4xm$=%5ga!AvX$*} zcJ|JeW!@=euN~+@JnG*hFGbgF`6xOzdBJFO8Bby~eTq-P1KME0HiK@(cCDZEo0Pb$ zvJ3vF~oz60^_TpQYr&E)(LUgQ#!fWzayD-am}jx_zdYGNlyNor zD_Olzb7}WJX^2q0o`@Gd3kXSF3Uw!fw-ZTU z>~nrGgQih``>}C%PN=2sJofD2hP;*qk80~z@4>jj2W`(c64HI|qI>@Nh$73kY0HxP zbqLIon~+&!0+EF$=^P@pzrf}_ZUL;EI54n!+l@@>qiQ@0@0kqW+Mc)0;uwhObo#oV(l_7 zRUM-#qbd&-38l#@B>4*v4GL8(hbe{y&OoFAl|A6~C^tL>YuDw|AxS{UN8Y1XpAxS( zik{5Kr!*9!Il|?xGM@Nm9^In9y5f!}45AAl|C_PUKe$l)v_9|u9gJ}Q zebx#7Kb~`v_BP+6w0}njp!^=v?LiF6{M4aL9t!hmK9XVB!SGz zfsg_WU`ha&YI*%5KquV0TFt)cY{f0iCSL4pEO&6WrE~sgsKy5i^W<_NMYLB|@+?JX zQRvu`Pe=v$3iD=9+}*CO8`iz)R=of5+kMwsUQOvw#)@nT7qL4#jo8|kkj!9$NlNST z)6$m4G~=EUygG&fOpu%LrrU7xH$&`HEQTf(WWkYtv$W+o1|Wt559u z@@I!=xl?F|ZC^uaMj?VCK2ogtU=-=NR9dlkk8%vOIM(aGsEq!3yv^ZF9LV2~_V^q6 zMgH#|uaw=l{>Z`5=^xFJx}lA$shEecse_B9z1_d-K2)sjk-u*ZDdIkg#E$|+YTzl#M*(`WU zJ59wN&?fX5>q@=_DO-9Uwgz__t<_zjX4Fkfj*2pTV;szpCYy2wMC}{3D@PD%ujnD` z*h-Ua!@t|^<=i%7j9C6wAJTx3(|YCkm*pLnYN_C9nk!&}<;bml+j@~sTAR;j+i4!C{bN@e zc^Lt~9uri4ktu52V^18c=s`Mh4%kQ^#I^Vm1qIZ{Zyx)|j|@|HVN1ub;+ZI#jV=#> z221tjBVI2j1O!6kYd4(yB&a46aB_f?2UY`^f3bl8K01pXYF+VDWqL@&I+7guF(H>s zS35da67a2xz%16)ub_XqvH$H?z~=MET#kqsTu)kHulOy!`TC5jm^%?$JkSxu#v`D8 zR2zxLJz1fW7&o)a{pzZnMJ!BNtM?b&&C9mP}8vSbbu<|O!k-)U)L1vdHE2G>wBMZ_1 zaqouAVE}{d1^FWo(jd7PW=8rJ?WG)){v{p3Z9w2{_u@7aawk?0@GG7W@{6{=r#8es z{I&+UGQd9U)*iVM@C##4fb_QE#9pR0daH*-=tuX`j~%o_*rjh`TI z>bXHQt72vh*lVUmp>mKF;0+^l(B;Mkq`(9z{uDlsPKWJ z_{c?LvFa90913#(i*Qy!a~qI+JjDyE$`OTI0Ihz*?kyi;K40 zQAb2E93iAg8dVb2ii>L_qqppoJmUePkCZJSqQH@t9X0BE>?lvQWhs_(hF_nFxvG+q zzdAVEi$CA&*qM9Mq{Wt(Gw+0bhj8viUc>mq2~rO}J`q{y`R{^fHP;NMRC*@Kp0u`i znqeJd*3=~NpfI2)xHFkvJAK9k;vBTllr%wkJ^@;ayo?-Ec|1O_c3F$xTWQ$Kt$MV3 zE{=qqsZXelh20S1dAAP51R1CUQpGnFXWt%f>A)lFl+~ni)4nFgn5$U&eX*@FUHSeT zwLeU|c9F)OD;>nlNS?d!NIL_K3K_sJs4qRpr4H+#0x1$WBqD=yuY zG#BLG@Ur}=1ep`LFdwd;o9N}}-V%RQv+$)Y)yA-nBC4vXnLr)Xv(#9#MkyxxG_P{e z`sB>!t$G4?;1_@R>oW%&wO*-&7vT_T8)!MtP8w;C&P{~LGTT=sf~)f}gZYM!HPw;c zmn(^0h&qXtK`UujJH`jqP8f2dJ64nFZ91Dd`OWESC)XYcUPmddK6q0W=iw!wE_^sf z@#bo6OkAvh`()QKpOH;J#Yj-EG6AyS$xsaUZ~NNu3VVCP>LD_}R# z7Q|Gv33LB)z&7krS>i4}T)g%WQmErraRr7aQdmm$x}o=l3h@PF@L73J8@jf`TjBx+CQ9M2cRs+ zgIAl*8&yI$HeL!s`_@%c?NAO=cA2Ru8#EhZzJFrrJk0Y+lc&)mNnVz2 zgQ%N$(!-fGK&w%>`?*Cc3$bvOs_;r#kF831nBto0q>~5^;AU^t8NM4i=9V$%kDfPP zZDcfdS?L=BrH++1%3=GlcQxh~$saSXeLy;YvNO{kDz2l1fmQ&|XSz`*D4eRCW0eSmTn%F)^7Go;zGj`QfEosaz_HWUirGJZ$Ry=1rAlpJeCyAW2L*`s_z?E}W<&aP z?xG9IIMGRWS@JSAg&oX9Mq5uZjJFq13(k)}n? zcG)Sz)fMoxqLPR|l~hJ%)DgMi&=HA;iR>5>X&4#0N@a|p&oIEViy(TLd?(hLAXXtU zsK@-Y567J8PlUA%*+Vk`a+?e5K5!v+nNUaIKH-3GpU4yrA}c8i2-!nIvX6H}*rwg5 zW9Ib_B)(2^gnS;mRl-f)W9FqBQ1igfb3fy?b$>}j|5RIzw6})jSnBIsZD|p6vR-^C zRA+7^VoJ}%#KprdR-~{0RK2YOR4#{5oolUIH?A6M`Jv8F4lB#!X{b<0lo932maV>F z(3n+J2q?tP%SDj#%*FE8#Iw95{q+)nQgy|n3q0^fK{*IK2#LYR-QnQP#@vdT)zf(( zdS7b`dYcx@bu+;#ZR<-o*yP0Fnfv9(5UI(V@zI!P8Y;*NnwOX!KpK;5^;Fbm^^;1mh^cO zZEIS=uJx+IS?iDMeYH!yhikg}Sw{r+l1Aa~*@ht|a-4V|sg<_!<#_k2_ALMqBiga! z0RD`$`Qj#{3MrnZfstNn&kc+*AUjd0`~~Q&r)8cTlT;WG*GxgH-(%4%?Oy2@%#ks) zo|(0w5Yl@!s#mQ+=a)-mm$jVrs06eIC1R^7uHhDCZXs289TLre?jo<``OnsPoFfTf z_s~Db*23^=>J}gvp#Jh5E(QoptzpC7KTglgyt;>;cp)=-A-oMCH)~_eFfraqd_ZrR zo)mZ)Wi=Rb@Ip9G)({|0y917qA3Od)LjCEpWi$$xoX?7@f%%22djm}MLE1{+8$Pki zkJ}9joN(SO#RuK8pvJEG6BT~mx6L9c%zj0_Xhoek?T*Q|B&% z*-cTuK-N4^K#*O@O_Rc(Z@3>o^J-pw^dK~d6aW6r-l@&WgLb%T%Qn(x1;AC%-mB?yc*7kk>Z|e^-oce^)#46lBDF=zUsI-#>R!hzP1xNS<29M)}9v~m^TR3`;Px#r3 z!%5Rt04_}OD*f~h77u~YelWyMI-Fn%LXTBE-QUZHz`7D=-Dgs(yz8!H9{B2RO15?v z;mD@mtrJ_WVyV#j0dzw9gz2ReyJ66J*S~vPTfl?BEDV0zk|7Kvg8aS-`t~=o2@su>?eV(_w)_1U^>bI-^&#IMVLu z55`m1;;epE#P(wtdXst}aZ?+=OIr)7X z5CCE32fMhnTn*0&X4DVn|HwomOzVFOF=-BQdzZVF$F2)HZ`r&!=@aDl!f=m?+Lj~X zAYe)X%b55~p7`Vi6-&7(+4%<2J#y&5gwL54?BK9_I*cT$onAO+^t6S$`^zq&uT zjd9jS3cb!qZoEHe#^ichf9!R1d9;LLRQvMHpFhtx?7WvA{rS_F`J?BD{s%GZeo8J_ z53HXLdi6k!AZQPC$F23@X9MEE$xq0hJ|#>FnPm~4&JbRt*L~VI{1%@Wo$e93odaAB z|J!!3ZJCTth>u#7?GYs024ph3JtU4h#?zCqZNX#QsjQHYNmgFV;ylc=!Xa#`HnYQB zcUvw>Z9w>~-?>F>48LG;s||Q)GEn4sfEb%?QkuZN>F`N?QtJ1az(O=Ln-vyU7Vok> zZF7E3OBb1RiN~*?S9n+$WKkdiH)3`j<2bxX$D^@%19_hr2a*m;-GY zZ95%X9h(!|wkNi2+nCt4dGhR@_nhBuop-mks=KTI>#F`< z_kHPufbOhMQ&8Hz>~sijQ7w>lArjEDsHOlJa@tejYW5tlcOV=js^m1tLD#BA;le@7yz3I@}UobH-22D-@ui z+10^j?AXV|N^M7CSe?J_!Q0hdgk5y~yL#xd{9(UWb>)(sK>y_aj#t#u=4)}z_9IKO z>rXL5Y7pEK%vpg)*Vxg~9|@_S@4Ny@uX-p}!E%a__lR;>o?&Rq-+(ec5=5#W`AMG& zPgFbnyf2nIJdS+}KEsUKp(h63GO>**I1kiS(v|3BW(cHWBJt zsU7YmFwFTBmo~1jf6gRwGL@w@)KH>@Rq`X{&t|_sPbZqXQ*W6qUW2r>A#YSFQ zll^VoB+d4ME`hcO&fGn&mJ_YFDf5U0*+{Ot><>I{nwltOJ;@*iZ}^Sn|9*`MfAP!}gjO_Zz8=66!?!+_7Rnb$=H{qhdtoJ2JJkVZWlox&w|+h; z?94+8-qMd}^rbQ-M^81md`o7JoC&u>%$I{ulkE5fF2M;H)r2Af(q5oRB|cjUnpQec zd8tqea!F*9jt8oCxPPgG_AZS7lz5RwhbL2$308=I(Wk76OmSC{yc{KXjaqKua#2Yw z0RWesue!s{(?3IL8@&SRhDP1Bi%Tl*HR&QS0jKSEt1B$qo=Gi&dz1U3khIXIfp2Ib zZINAe17Qd*H~sY#QyC2HMavj+N9S3BM{G8s5CN!S-Boac-e{{4grYS45s%KcKi4a6 zl2?X$TzLBt4nq=$y8lHP^PdrlkoQd$`4`sC^9yVDUyo4at@IsDZ0v#m{*OkgSStM$ zMds;cWfcq{CJqRijbkRLg>E)~0hN>*$(M!6-HKto>mfuH3#Dd=gX!}*iiVuS7~K;p z`Zp3o8|&b2{0Om)g^t6{$&R*{$F3%yAI;F_J6z*NGd4RO<7r=hW~A<4+(4o?y}W>- zlY0qNW0F)RhUg;gqh3K&KFp&#KMR#0@XBP}&@UXtP^FqO<5Cssm?oP!{;sPp9qjUh z78Tw8`{55`iPc=;n4ccy_f_H@!tNna z$eH9*C15co+zIFiVJz?{dhH8qgAMdXGQIf7JGfw9a3}BFBenEl;{Amb;q*P6sb(i* zJ?yu{^?P&UKXa~VVY5B;M9oyHyd0d%pae{)a(W+&nqtwp5^j9?(Lk~7yUI8?P!tD8 zc^;Me&p7Cct%s}!A zXMYh#I}5nxJm=TtN^qEWjGG|(yUyATE*b}Ct7zX+8qx3tsf@jYm$kcOKsZ$(J^N0l z$ya%_>jNI_P{A+;Y$A2*=RHg~QSXKKOny9RFCN*YrW+vO`z8$crHY9E*U`QjuSpK` zQ0_BNF9k0LmqoL=@?}yRl_P4I#Bqyp^Fqncb^_%=@6A7oZLMf}=u?)a$u96y^@o4i z(V_c!h|%v;4^K{Xf?$DmxyYOLFc_cT8eh#-YubjGg<5`sO+3{Vi$nVK2cIQAL&1C5 z`p+kMF?tPwF46R60S(DZYx`uA`e@s5L=<2wdSES-|EqXiOn@ftkvgmmsbT=zIG=bg>u`+8= zh^)_%qXb8;A>|`z>JHlTmGA$qhW|nK>g+9Acz)eBabJwk|621@(b&|!9w zFUnECGS`9}C$W^g94^70D~nELX*9_~KZ;o^R4G)dIb=7o4lQa`Y#!4v7B9Yh{6=$R z>h+T40BvZ9^cBq!D`Td*fU+Pb{4>U$Q2Z^oKEq51D{djeS&7P{2z`vna=)4G>qsLM zVN^-3`K1~Qb%PGYaYzp-S*jyVntdmxvcExROW=Tj{bf0g%?AtMN^L-g-pPI~ITd?X zYZ2bj@fRcB91*5Pbsm*52>EVahL)>$F*9zWC8W;s7v~4&3|5{zgVXCcXGu$#{sjbJ z!1Qd~BXbLjMOkQC2_QSg$1#7714re0Yjh;{7~P9!hOE2py=lQ3!g)49slVwj@ee|8vS0tT^xt7BOReq=-bC{i?0t1zP7vP6l z{=R-eJR01-CAlG|P_r^wt`x?KeSqei?WBUU9;X$r>`TSzeO3C!HSKK^h}%yKdUd82 zU6;_t*66-Jwjg-St0sOW_8pCw4W|BT%#fJ8WZI@;&#Y%B`%c%e+QQULCmeoDhg?$& zp+GWy0d|e`a{9!4t4au7x9xW*9HZc=ovEm|Xb~&BO=g&zp~7?x?A}L4U{A=p4&CcG zPS<8I`KfpN#KX6EUO!atZqXey^3a)Ni1)CoRWp=WO3g*3s$VKsFhW+vP#?mlj>K*R zH&6^YLvnYRgIv^f*GtgK=shC+wyBcAPteX_ zcso4QH@54hm)e@+ihm*U(FLbWz;3Lpw^vyEO;EU1x>6-7o*bdRQ{LhQWtPO#)u}6bdf3y@gBM{+M1T z{UHT6Ya3hWbg|&pT(WH)GXa0osokXPL|fM@TX145%8uT?XU64(u`RoSv)o|EUWF?; z&N(^$Fg*h2Zk^;Potig`T2PyD()7~BzmHA(!0_B!tdo|lojxFXIKb7%g|2PhyYL8s z?1&1VL01BXnq&Sea_gV#Opa>7itKCUdH8juvHq7U&;NX#Nt-+TU%h@MZOeZ!Tk zYLPRdmVihWi#Q9`k`VYHzXS;A62Eu;>7Qijc3j3Ts?KDJJwJWo{PLc*;IG6&U06fa zOL||b9j3;!9Huf;xi)<~-@$W&ts&jYlN7oe7*EVnw%rlf!kS0qr(YSZ9Wh#k*kG*a zV0d(wLH*?wuDrG_UPG@)d80G%Q_Og82IL1{c+FoGB|3U+n^INJ*eiH~)=a)67)*l{ zL&f6ti1Tpz^orqxl3zWz<4kw~`U#ZbnUwc&E9c!v{fXemAj;7-lYp1kbTU6Bma$NU%a5LK@e^=&>3u zkRRB7M+-H~$U^L^E<2Cb(~Z$i8(a&&fAo3kkb1LFdZ6o~L>&oyKTynU(UNp-5VlsT zk4Ple8B8n);;hUQ96sa7-s_e7kD1hCcgnNpt7g|m|Mrdfe;j)MJCUlL`g}>`d7IRw zOC&Ks2H@NI;}_JT=?Ot3TZ9;ZuCZ#R2^TAp#2dxITwL_8hyK1_Oi~T!qZ9eUBv?eQ zF7E_>(|m5weaX#!E$Q+u{uDpHog9~aND_b1pW<+!oqEkUY`^rF{MhZ%)%{V8vUD;N z5U-d4Wym8db$U%7o-K7Pj4roBVa`*rlS=RHs~dDpl>xcC^dy6R@2aXfH8Q$c%3ikf zOrNwXf@I_1Q^#~Vi~bgh^F_2=+J3Ee za85LCA|lZ^Q5K1H#U?_o@Lr2DKDE|ZAv+a~woGzcRt^=vi4LL6!}c;onSECq_BZqT7pm6)mYCORq)T00w*udSzW|k0@KW^DV3E^ zW|4JQ%2OdJYo#<=K>}|=kn3$=;|=K1|j&kGZ>Y&N|6;) zCUvc*B?lB&Zh4&rW!gb#1F!@E0}Xe=nBV&H<)fq=Xc9qWva#nFl#|6UY$C^MxzY;M zMEs3ldR$U);X(>8TR7)O2gjXzNVZ0;VhZ@-JUJfa;4x#s=itG?5rd~Xt;t|Nm5_?d zV)RLs$yBxMu%#S~43HqzWY8hrEHx`{tK{J*%f$&%&(=B*s=)&VodW=K{5vav zA@b;aS%KOjb^mhpnGltbpKYOriP#E-BFGxnu$ZU<3kI9;&-FLoROb`ao{Kn6lA7U=PEk^l=+K+n?zr>okCAiVaeoQJ9FsOW5+F3 zrIqs7Q{&z-EVq@xLnuticlkaX_S_w4Slv9SKDFio0kNVm4%lQnkpUH0-CZn-4?&xa zdRfg)3-rN|pdakTxp+T71dZ7?a(=KslG!Z4hL1ny{XPV+ne4ZZnS6rSL=|o(h={S- za@t^F95@`VGa1Ot%D0cc$7&w6IK1{QuDii`To9`!df(Fnt3YuUZ$)oxC%32!=kGFn zo`(Y%ZiaQ(q&(E*#b*)v91EG8mq)qcGX;n)wUTKse-FIU)f_S9zD@q^-1FQ{(^N>^ zbZw!B#AB8n>4f4|)M$CefLfKrL) zHxdKObzumYSjfU*FQ_IUJ-T+Ep9Z*j&p-mGE?t+t41Zr^IAY78gl+7W_1>AT29 z579%|c@J>pk-jWno^oSqiRpuBBYvB()BNnE_$Z1kO~zHSt&w5 zJ%X)u5fHW)5H@r;s6a|-r!ang-x~Ugkn2jAkyt1Ccev~xBG;bGOY?yk zUv@`smY(26x#`!({zElzt03fsR|hC!DCd(ZyRCv>>;Swy%p@z@aKmd zu*lbc_o2I>AD`Y1hB)79bfQ`W*T)uh&Ti51ig;4j5$!n4!~zpN$%Qg+9oM?ue>>t* zGj8sr+vIwllibuNWK4RU?UoI3W!?&-jBp|Oh$%{+TT{9AOfxS+_&3VBZ_1$kauyXe zodQirJ^h3mPlCLocj&RJ#V~-I3H8cgg$>^3oGdFM=6kT0Dw=Aj>lNdA&p*56=sVm^F$|1KX_}kR^mPxG_=l0LOpY6Ub zH570Q3CFr{B78#RZdvWvn0X`Rrmghr&Uo?@`pl`6D_>>Zg+lOT%s763v~53*(zA@w z<`SeKC?W`S-E>#5nn?Zf?Q#d9$(7Bj_ID>0MteJiX$@KJbrk(wre3%OvM604Zb6*Sh&j4%n)@%mK~9|oH&@ki?E4bxKKjBVKgzC7lmdf7lA-dZI3H5+4iENP zlLU~PG1zGV*vwJ5*raf}k|I`lANw5KAQ;K9ri%0QI$vz)E$3l7VsH0D#I`B1I}#cj z%`~Q>cA4YoQe%9}aV~!VAaWuW>)#%Yy!UL(Hw^Qcf=tIh%lmo4(YxjIA4@`B9MrkD zuWrQi3wQrt^GN=4H}a3bo5+8(I8p(8@kr2lgp#c(#@;K7i@`i{>wnu@?i2bkXh{d$ z31kH^E)JZdHUW^b-hXu7KznWn_P_eipdm3_BYs9-r_)&RvkpG!Kc+vM9B`RVW~}hM zy?^}pt-l6I=x6pzp#MZZSO7)nUOpz~xWEebCxf2?%92V1!_$ptFhNZQ%^p&VAc1KJ zD9bHayq|tZd1f=6J&8ZS<@Pylf(^E&*F_P=$zRk1_!?)6N==@m-LtZB1SLG!gj#XSB-y;UtXa}S*D zec(p|8I1J-;v;L5xf|up?_5=J=`iU1WrZx&S|_4yMMB*By#$<^#BI@$*e7WQPT6z- zM~PLmTBIX0<>M}qJq(RQ(twNh#-tm!6rD^aP5Sk)%%@OXJd2R2{A|{E6iNJ>pJiZN zB1(8Gcb7H1Z?F*<$}T2p%Yy z4Zlf+>bD?Qk!oUyDHD+zbV<_quO0)!aT7PZf~akesgMG(XHG6mddlg`tg@=DGx_$HQk={3yjKq4H2J4H#q@Pl*33@lZ=upF6yW?R zbrnBX>$f5m(IZ}##oZ{D)}zB>C)|#^q~)Ip3gl6PyaFpi+z$w&l6NGY{+IG&SC}6Q zPp0)lC1s=5dhn$;AYnF}O_zvg!ZaOS0s}6D*Z%n4vv?QDLd=r;EO)ygv>aR7#AC*$ zLix1M3R<~Zsh)U|iHEvQhrw&lJa8s%L_eAj`sug*DanalKyip${Mcz<3ZK}ft3c@` zo+*5;{)L_OPmh0{J<>$=1!*3K`0v;(|F2UeW&Dpb-@mt8g(_o;|MdBp0WcCl!R=l| z_y+{U_dM+20}vkow7Y48%bZ`qjUEj|j%!j_W2RmIjARjk6W$h4EKY zW5w8!a#M;%ldj9TW|wiA%gHh4wi&v-6_ijakEl$xGM3qONthrO(i5RU57Vw??^8Bh zDLFG>Oqcpo62@1ES(<5r4$rnMKs>aS&a@QT36x-YT94}-tSDDEIZ|i54NFp@R^e6? z$bMI+LEITH`vYdGB-v8!SKpmecp*>VuaM{)b_Magl0pD8c;|i|IEbb zsJ;i&wqP&y$Sp^IXW~-7a~hRn9N#WZGkGRA)}j}j=?t96{n4x#944Y5j;X~UrJ6-o z+^g$Fi;9jSLQHI2U@J37T{&jf2a7>4%y?j{G{_B3LQU`3dNslxItPO!#!wjm*n9p& z^3^XOuuv2pIdrRGPY@?2UNeE18QX%?t-{o?d1|O#-72iemAY_dN)pH3&rBkq3Q~LY zpdzBJ&%XFZF)@we>|}3tNSesjFrP`Q9pb}<9&}9f>2o(1Od^g)5ahhg7DjWoCqR`( z-iUD0!;l8-mSV~w!t{U_<(uMi&97;?>L8sDhr^FB-s7yoQ&dxNEcslY8{xd zy743ZtWtl~aQ*W7p=*Wpk?e8gy)X@i-TE!awo{TU`SI(kzE&}+oD#An?&d~m*O&@b zYL>-9Cue{~!&DsQwpZjJuh6RKt&Vml?zGw7Z_y4F9)o7}D53;t#X&JH(HR-lSX+#u zw_fJCke4*O#H)I~r+?W|{&NHqP=?XDzZSnSU&)Q{e>Cg(C$UMJTU#0%{abqb-{(+K zMh=AGm)E|bS|@VPlE@*OmsGxZ(knXK(;{t(k^N%Ygy47MP#T42?A1U+HKIWco>k=2ZxUo!`YJ<`ks6A zJKNG=(Sd#mmvn+-Ptgx{BRkS}JcMt0jmrFh6HX?=^L* zE*B&mn&Q#RKvvXh@_L~S1*yuRV4v45qxwH%W#gCv*})FkJIxupJZW<9hm8?nFN+R!JUd9^GX6w_W0 z+TNA9pi6ElWB(=)A(O%CXRK$lrO?SG55&F+fHQ^;IOYKKp1>@T|4=qrH#W-TR#8@P zw7>k16-S$A_l(HbL&^IROA!7aKNwjXYh`15pt-fa)xSKQ3gvUze`B!9y%OM4;y;1; z)r)AomjJLN{A+RzKx97U#tPuhCgaYng*JO!u27g~Ql9#LUgbu(IG_GW9ONI1PW3pv z$owMtF>!Tye?CEOaWvM7Zz+J=l^0#JM@}$9!9bEsatCQ?mm=BKmvJ{u#Z*y{td$P5 zY0ntbp8|(iIiu!k0t710$r+PKR za+NR+PQQu)nG4AdTu`KqpAvBs=Uk-(S^!FGSYaH0Uh)X(%Tf|S1tCz68( zdWD*&j$zO2_k63Yb5MJ<0I7&1K(5n2v9XKbA#l-de3n}X^$Mb=D3hlbL{gvEdW-az zYm;sIRYMcMPDqvIU=4d*7xMmQ=uL9|8}@!Mw%U;;l*>;T7qh~;_`<3Xuc+ceKRv#j z1b8Iy1XMA?Rx=2X=#YR7FK&o4p>nvG#bKR%2Duqx))-mil1cE2rcL#uAHWEywD%RZ zXJbweVW`C}pMG}>MhAXRR<1Wjj)IuyQmnOAo9_9&{UE!f|ED$c&AlV$f8%O zhPHHq@JJH5^XpZuA|c+DY{gAj54VHMcqkQ(Yw-b$BqDLQ`hoi1@TWRogmM3mgPZSS zJC+nG!bFwCojH;Hs}AW0IbOe@bFmEeiw-u*Brew})KB3h9YRI)KliN~h){xYJ^Jpk zbkh|drKJWOOmH3dY{Q@0B8PN zhX4PohWs~XoWuWR_yfN>vtQmxNw`4x5?FjFN{azYgi2-pn4tb&(zFzqU|2|ez^YR_ zSGqlG%Pn1Vzw3Q}zHU6@3?3atSc2pAee0~1^;A=5XA_^#=V$0{#Kqg;ZGrEYlx}<1 z)xSBoDSP=)+^x?e;mOIZmP_-bN4+_XX&y z0Dit9vGL%tACyggdAOfdV>u2W2zf6#fzWy&#O|A&>!g#Wt5x$}_A~A@)+clvHLj^^ zDhg`_Da1#xjkH%|JrDxgZ5QDF&_X&WfC-muz**5ntaq;<*z=v8sCVZ@Aslgv>Yo%F zN(c!JA(fk{FI*#ADw7`1PE^NPD8Y=GLtu!mLBqr5yNif!f_pDJ@ezypOiF5uV@hb4 zczO@(!KwZ<>ZFhPj)U0*L{N%eEFle_2gMU{;fk4I@aNM50F^i4)f>GWkzd>`3`aRt zyzD_>b_YokqcvJfnOhswOA06>r+<0nH;YzqiypBYW5f-tzNuBOj{l3Jj%nycz0Z`CYDCo(dXBu_vo1Wjqk|}f`$$13PmIy)Kt7$`cWfBbnL+gi z_8-$cOzzUa(O3B1{kMev|Nrp)-y0_tb2%ghWFDK=$!RDNjegh$3qU``@WyJuFKLS~ z^d8caq9w+~9*tqg(w@z|pEAf1q;KDR;u$tHRvih5=br61+b%mCCV6a9`98ffzpHm6 zK@!#y?hH$$^!1@1kOUBLWwr|+2cn}Ix{m*veMa!tDoJl$qn`-+Gdw>pn5Y*{G{M3u%?6s-ULYMt;V);VrbH(Nq`{IREAxkWuP_zxiKw+*`~Su zJuF65n#*l-%rda*5`-~GWs+&BVqGG;DHnA9Xc13dre#SnFP;D^RMW`3Va2(gs0T8O z3$sAKBIWEkPf86FsD4+W0euv5S#m0+^e+9DE8RH$OAR=%(`e2?YD(AbX?%3x`!ZRP zcUDD!Q|61-Kozni(|1rRa3E_$8T>|+%wo;Fx4ue1Lu0f#ZL+*(LEczr_+uAFqT$&O z&?tFPI!e}rugN6gw>ClpSlFX2oC;fr6iAr`JK_2Ox>AAtoWl&?ENQgHWj#`7@7K7NMbUx;4nD) zPn`-^qz`YO(ZgVf9AWv$fBp>u;xHZg(%t?2y;K+;^HC!ktz143S#gMcBaky@Nh?IVH!7^Fr z;E9wkJF}ml+@%$(7Qlx3Rf~nj`ozUQVLu5ZMSvmzkCnCs3(L#bH>J;c-c7c;bgSBc z0Cn$im(Hczj-|NdkJov~Z!AwPyo){0hO*qpy@=fV{dQ>WPhri> zgeiRI{g7y*R}t#mr~MAJ3F+ZgoYyR9lvfeI?%ScsuKl3tc21u&y!rx@uViZ8lGxuH zpFG7pJ5T$^WIg44^VML<8k#{|+Vst87OOF%!wU`58@m8fRAW%qMi6Oj{g?w-V+bama!x%}3L81F zQ#}&CUeup^Y;LwuO_qq6CXx*+uMBF1t3j2x53D11j#TCJ}`lX`Mp>hIr>3srYH%lQy8Wg-He zNw`xy7OQz!o|%GfKnoWZ9Bi5Uv-Cmu_@SXi=7@L~>M6sfjlLK&zdogiJrKCcg5)Eo z>J4Qd`UgL;NPhw1+2u}GgvwR9JKql8Rs!p9WDYC!n!b88nIlm_j=t=L)~_sd655h- zlD;JLX}PZw<_UWKe%@V)@(9&5I9_n)6o}_>lYsDC% zfhidN+*s{vIyVY08z23z$Uzx@nFOoE^Rg83FEXf%jCjr? z+mHbz-Zf#?IL#0+6)PB0bc(6o3&ZWHbF?HY%lL4-L6?PW?3_^qL0bq*7Gmmn|3H1W z@uh_G!DPj zD{bS>g|ttqS-v7aQ5N+v<{QNM z538Ot{bBcN7{@^7a6Evi(9~dJ3X32tIa85m1GFlaj7tf(rIw3`aFp5ajHR{Zc@EXP zGD_=S$#MWCPPTJUcMHKNG$BJnk5@1}FeuyR`T4_#lGW7Is6wQdR*a}v9HbpM`WALE z=OJJ%Oe?-?H`yE<>yygGYp`go&lpkX02f7axwyiiECZ1Tt5J^52X&a{nFzT7MXb2z zcArUJp^IilAyiBU>n588c)tYgMJ$OmqacjQ>T|GUmbV6%}s6aw9}0Aw|ZJ7Oy{{cvo!oGC4yyE7s*tJarJ{JVpBbS*b~R zD-*GOuE0XmCn9olE?4Y|1P$M8nITm#Psf42bxFcXuQ6V%Kd@nAQ@-Boa{0&p49UlS zcj_q|%V%ISgj>IUJSr#!hk^t*#~js+jCs_+%W3&=_T3<7m$+ z>6o&~s1#aVyRYM`*F}j)n5+t^tOs{q2}4|Lg-R3l>VgD|^rjAPVyAATL94*z~s79GPZ3L`d0?=B=FCjh$Q)(#KPGSOxB+#X6Q%_^&%>huZ2f9w%7V`*vM!PfQ0@>E-=s9C!kZj=Sw#mm=ii{|Knc*yXu|J40E zOZ$O4Vjz?#!=(;8Fj#*~n| zQcoS&Qco2@uq?KDs3Ph=;TLzY=k>w1D~P#SKp#8>TVuPe35qi_?sGA|`(cvBEFli3 zyV+w2U=xHG7H|lB%N}xejD7tcLc1mEm>-O9-A_*|LRSdvS!j;%yd6HbZ;!9@ylF>n zYj&2HY~!HfN8t@~xmJGrIWEzj?m}Rywk64%9AB%Pbs&F9baY6athp&Ci)E$~!6?;KO+8a)BM#6@Backz8JY^Zvebxr+-|K$55Bi`>< z+-p!0qBu=G9{4h>0zD)nW zIkmf1XXdtNak+#OE@K|fW7Kmg+r92n%zvg7CMYloZB5c;|bstLl zhc~+7>{n9d!?MNcxlY@-k;)CtSz~Ovm9&tJ^e-Q{4qVri9Bx79=scKch8?^i%*oB3 z`9)(9TZ|qgjQ&aT3Zt9O-#dp4VjXg#Zy3AiD@vsqONl^

    7(pC=!~rRnN~P*Cr7Y6nBI&uEhfG>j{@a|Dtp%l%w~J z=2?o`=?obbmm@}Tg{dT~plA#%i87Vxig4! zgo2ao5oL?7(zVZriin(INGl-8l@ZDi)TamUdnbm?9CEtUjKyIFhrf z%c~sU53_uL0LGZHbPto%81*@ns%?XxrE8zrl2o%oZ#qbz^2M{{*7#4rFz1ZpS&)9hsIr(o;q=Cdm@nHGbg7EFQ~=riCe*))tF;be zfQwSXi5))=X?RcQ`wUVFXUs^CX#LdD01M7ZJ<)Wr?AA=WQQ0}7m7|BdRPf0p{j$>a zBzgKAKtcDVjd9T=8zb|MKfZy@*NN}OE6?3!LGNg+84XkjkPI{~r7!eEDW>1we=hRH z<8g)YK3|bva<;B=hH>PBQYw*QIV|1PSiFEtcx7B$dSz^IlQD~%rq-j}^_2v>S-_O? zkR-b_8CXvk8Mex4yvI*CrYD`ZVvE|(kIw*I(?KtF?Ms%(8$Nn(_}eu2!})_?F5WhI z2!va$e*2;L8phWIxo6 zxT#Fb9iJw5nB}JAU$Hrm$q!E>@$gS3i1tn#CJ}D#2Z-1=HRsXBTkczX8%EJt3>FxI z!F8|TjS-&OA=J;yjrEz4m`qvvsBKvKhI%+otPfbC!R9s#Zs;;{-;K^Eez!skmYOWsHRo_=d8tHd zqV!d(gFg*^CaHn2JZ&hTZ0Wm3Gqn@Lr$U8mDLUw}Do{z*OiY^2O{(+-mvG<}6#gC^ zC)8ms$MJ>bs#kaL>0nZLc#FoHGZ95v0%AZ#MuptxD@TpjmsD}w%?x8jE z_*)jN%vo!HwWCYETL07m7TbZtmpifkCChmwLAKLjdvW_rh{9T2dLtYaM8Aiqn~BJ7 zh_%aXK_bI#lF6Q1$hn;MDaXv>jVWyWqA;XUT*{h5A}KN(BuQhSw_NICmoX zAJ^f$dnf~AupcYsev__&nN~L-`0gO7Ys|jl77g%b#R(G^%#qw|`%7pw^}PkOc8dyF z3ci$`sSo9y<79_*RE5lz0+eT4app419|7w1b>PY?t7DcED`l+~m)fMpuO}(7OHjeV zP8Bg<9!}=dtiJD@aCDGq#lu%Au@pE%ywoe#dVO7_@pG&DE6VHjXs^w!7 zpg6;aGEzv|My<0t9PzX50)Kr;s0ZkgM03R>$I!b-exf#wobw;I1KBP ztq$N?;>Ui~hJMc;tJIh~rnu|AU(7tHIMWXLQeFJyB|2@=8HI@*!{(yrBk4=Ur0LkGl0tO5ULC zGS?qAqE|^_r`Hl1pA!(?xjV`9DsNEf%I%SJYac5%A_A?He!Ag{o5jmir`Cg}1anvaKA&m_%GYokDt5?hCCw;J6wNo>xB$wHKAQpMGZ@ivYO2%ecfl_Nz+cyn* zUioPcTHgAj7KQ6+ZKa|%s%E2_y%g1XB`#=AJht7SQyrO93Z6Qj9C{7=S`~U;N_SP| z0EvOV2S17m_HjVJPvqk>QVEXoPK4<)csA^qMF)jzAWf7s3BALEFNfk0^cj z;(YQzD%M}i5*o>{2Zeht3u;lVdJMO+QhZ3~}9#)VT@k2u%7l~Q@Orxsr9cHEz-we6Fde3qaHSLrm zp6?{Fo?x&eZlF;_h#4aEwun7w99a0c)yM)#6amZOH*;-BYSo~sTo7m4kjpe;`SmG= z#rnX&c}}^~rTEq~MYujo_Q8mwn^#Z|!aCw>M$7{Q_Z~x}#-XZOjN+(>F+Jcwh?zso zE5~5}m|_fD%P_2O3+1?_X9{dMJ(iZVh+<>7$^fHQWOEH|5)`;?X1Hsa2klsV5dzdW zNgUZPw{D(_(u+4?vQoF-JJY)F{(( z(0Tol1tWSd+-NyLcBU2BF!96#{*=rlzJBm>1R8OzeR7liGJvBuF-mE3m@gZ)^6wry zt@WIsnAKm}jg&KFADNy%s2Z6JI5E)BC|%VD-S>yj zmRCn-5@CoSOYVCnbFf5sX5;uFTfQS*z;s0(2%8o&jW=^1fKKB1JDjEx?qwfk4h0`r zO(FW|2!2kkG~7WS)xIinp`!0^{BCn=e~h{BFdOtTGY)9n{qFwa-yFcL_5g*Y}6!O4KbckV*VkpclwReaPKgDFCQ(NKA1Z?mh@y?(U(rQ5F1n3)R z_XKqLa~G{2LAKg4>pOHM9dTK)@tkB1D_roe)n__@TidNG=M4#9J*Y;xQth{6KffnT z)uJJMj;`<$`d&N@qb^FWh=JUytDFW?6bG}G|LE_$EpED|-#Zh5YZ(1kXRWvD3Vlq8fz~bU|-75~yVFt5U5WE_P$E34E2DK-g zU;F`KDXF+&0#uHR@mUhP2yKad4&fqBONx~A!fPHRZLU`Wm8TNvRfa?G!BKb4)m|mo zS|c3dY71E0e9siSH&3Q6o;CI1lBe^>6#FQ6Y}MTlZ_(D3w7X$Cy&2u6H|@TgQ=eBl z$gU%1p{%m5DLC-<$*gNou5kXX7EcxttAJtj=Ogk|={<-bNrp~!H{M9px}9C#U0v$V z!#P^a0}#Hqz$8sNO$PC%?p@#7w;$i1$?==);xxa=D{5L+I&MtkGEQTka<1J{^>1qP z$vKG9G?et{V5cWc_h|ZsVVzkN!{UisRVRD!InA_bes6b~spL95Z|a#IP4Oci(`P?Z zAAR(#^fKbV=Xmbru^C1@sIeP^*f5!%O1_F6pmWmot5=ni^A`EVs3#itvm}_*p0Mh4 zkQ2hl8_52=dz(N{m5u6etmr4&vcQe6b6O?>zT`zq4Az6~90teM0>O4NoM?T=?Yb}i zVCxy^NMYJCy_#0^f!{K}(f{w2>0gyEEnfa>9%Y0=gN$UDIlVqSTwI!OUG_X)Uip7KLI09`!x&L-Ta2RUi8V&p zy5H75b|j)^O!m|}c+k?wmkC~4`9YBdwC1XPl8{;K=%vdlgzw=-R zV-F1#c+@Fq=1?A;fr_3<%du+NiBk*0B1stzP2im{llmU7GLB~_3HG>uK! zu}K3p2*HndP=ifpqqHq198D!2#O{n_WF!4XHXw>$Z|UkejhIdp02g(ywW)YRO0e^$B+S=ns7#7}6L+BL)*1#hc+%7n*=WNCneluGx zH3OxU%apE}l7W)RgfLLpo9ge)%ESsq*C#S%EWQC8>o{i436o6Un6IZ`y)XwA1Di7S zv|qCi2VOr*Q#&AV)@(Wpmt)QsGZo#=Rh3C~sp~KgIzdNhS!klJ65+Jl#dQ;-Vt;KC z5cd?S^nfT`pf_61ozP}B|8W|@@TGtOM8f~zT@HZ8od&LOGJ@#HML>`1&~Cpl7Sz!LKS6Vp**O7_VandGjXzh8cR z3F_5+9L$`Qut6M*7&{#Fm%PN&d~PLt-t`VLRBpTTU*nHmg zALrtukmm-Oxn`(4Xe`anw1IU2cY*LECK3CKZolyECy+eA8)h#OO$Om~5U0FOk1eSe zkVEN~73rkA)g){m(N-f0W zY+apoi!KFYEY&i?KAY6@)l3&yezESkEg0xo(VaYdy39Vk6noT_-Y=o^$tf_r*b>cR z4*3Hw-}Pgfror)ggfK0{79v zp`|aWRN06Wqo7=sRJpihTsLu}cTqV{i$owpB4zw;wM$KBvdT!eG__u~?6hwCELS?` zn_&u?MYX_kK|0phXpe^rw+6&XIc)3r8?J_(&p%;TmD`2&I(_4CygDzjQujS@^~Z53 z9fESR*c;yH|20mdlwr*yeZ^`1FR8D8ν5`nNd!KZvB&Z2waG@=JvcF3t)R5Y);+ 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

    pVF*&i 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

    uHV@?Jj^FcFYKUA4u?iI!1j# z;pc&wz+HRk>nMH3U{dIj16`o2{!ckh*uelgR9DfX;#4}ieSPS#+5t>t20UZ=NUEdI z)R4i#K}oQQFn#uLk^CD(@l7-z_aT+vmpuB|OzT$7o$C*ie4T9x;|9ZC7S+dT!}SsZ zT}IMm6%?*6)ZSOKei#xitI?O&a-bwEF{FZR8v@DvO5K;LKN%DZlAE_NB^-*1x3O5} z35rd|Ih#>$NiHM%*8E>QCDnZWr09^C5M)Jmywu@fjzLXnv1>GoknC0 zHexwf$S?#zIFRx)3mI81u(>5OnlOornK-mqtkR+doq0JIxh3 zY0I#AYd35=5f2o|csv}sKufh{=eXc(O=lr>X^>V~u233N}&hpkVIZ1Uz*Z2Ecs{7H|VSmLr*Md~_%_0^rA zR{cr}G90bCU*S^sdkY`x&(2YXw^;QuCDm?z)i_|I!@W3LZrZX20!;x09Dn0N4vRq} zCUUpM%P!g7=^~~R?gX4}LuLqimXIm(?tEs5EtFN{wyaDpKUbL4Uecowe5LP_+4$)L zE`C?2MOLtyU^1LLcrbfj5WL#4zbvLkjZ#E?vwb`P+o<3;rMSBKbbjL6?Cg?SVwTWr zhcnb?Znm%>SAe|}ywlk#P^6$=+zil;jW9ahux+Y$>h>d*iR>0_h$<)v+_nq$km)+* z9*WF)s(xfOzKBF_V8b!20u6puwn<4~qpdDa&GIqOn)_wc^!BAZMa$Q#Z!5!Wn_P3aFQn`} zA;nUaT5&Dj0C%bT=KEE0VTzAXQk0h{wysEPLnMB8M+A{M_YW=jkr*=ah-X{;kZkeZ$A1kZeJC{m@Fy?@DJoxVlbv(rH z2z5Lfab6Tp=FTRw9V#G(KGIJrhCX~xDTY2+tk+ffZp*-iJ_1kAhCUKcE{0#QtTtWv z$Tb9RPsMBtK|x%&7gQ+*U!qSmhF^kD(}rJdfmqt{F4e~OlMR|%7)P<7sn0fsUt&+! zhF^S7IzP;_=PtVPk2{HR-)-u?h~9DPXhy4gjwhdQ?3r{}Lf&+lV1!&LMBreOZh|R^ z+9`P_pUs|lXFHaG$2kmRwS=5AFU0H0e;#wGHcVH8j#LqOK&?6%l8jWrY#e{oCm7hw zJLE=Q%sH5{27PGMD=rB@L1>>Fu@%8yEjfcyu~QGOuMHXx{P~-x;xEGWP=y@Ug#`d$ z`wr&(|F&}e=ltxSH`jk$P#e|VJQ0_@zPi#@vo;sO2@8=b0%v~om1}|F^#Drn1A`d` z1`Qb12yVE>3F}Xqt6cc?5=x7oF^eIrvs%M*5IgU)ilf`wX8D3P9WGdH5^%vcpT-fJ zT@<@)GFT-v$a#0O6wHcN+`JVW#AH1medmU6E@PZNdw(3J05C>i1@P%7=`Pu~@dDkuP9596zrb<)D1b?FT@3J^i z^f?^#aezy4oql*=RQPc5{s1X>mBIM~v3gtZW2kU$ZK86pZ6JVm4>EO&;huK=PN2CJ_m0uZMOj3*8*C{ToQ zc2M3=_xLojmMbYddkbz-@V!3m*7As#*hp~r*9TWvVBA@_$h;W=RgFHhsZ8IG)61U>EREY`?xLL;S2TV)~H$+lo9uAz0hyVfb3f5MT5%9>QEFq7W#*qR!gD*%T}e z^FnChm?1MGH5+?UbRI;h!Iw?-1^QwA0e-7%S^Ekz#x%?*3@Jt|3F379QDWl>L!wP$ z*<{))CtDX>4sPriG%`Qg6HyZ{Ye?b_ATibfxgUq3CBDzRmW*(dh6)1%Rh-k!&szvw zXjyua<`ca#8X&tc2xZyXoN00i1OyL}7+`*zZa5PG5X+sVszbD`qfxW=p=jELyTbBf z^sVt?;0uRN;h;v*MUft2l>wCBx-8+kR);rC4V$W0nV9JoUJ>qwHGC))DgBLTuEm`iS37OG$F+G7%OaBEz(=K8j8ae#~>>n9QC6z#H z_jakGQ~ecfF2@9${>Lb#hVs2j9}O7@KXbYb>^^8hU9?D#C=@FtJ zF6w0oK|N1Y6X~rvHygG?q3f3&4xG~>tk`;>6<(%549Hmy!{}KIsVkaHh$=ki(y-9t ztW{#g)?S0g#H@oB9LOu%xbY?Sl8mFpkSJ5o2YRL#8$wgq(g zL=%O5S@EE zib`e;xORs)I8~C!CGM~b#~N#pW~d&xGx5>i+M-RlHh6mfG!xeWuH>CwISzsLIP%)F znLFG~LsNx9tq~!gcFjwlfll9M;5koWzj3^L3+5O8>4+5`g~k<@Q0o{;*})Z;`$tXt z$bLEYgpyaGBrdG!bvA;_8?(ok_fo@4SXF=u;3SZAX^_5~6t1WZ^hGF5Rr)Hcy#0Bf zx|Sb>ubUJFsZI41B?(d^UO<;8dcP27Izq`a6jbq5sPXr#5EV_;Qv_4~6wOk2h9jIl zsCp@iQzE&|3irERH|YG&Yq*v}szHqt1?Y&5J{tUdKa;3L#4YTyR-D-I5zSdw%a-)@ ziKR1kdZpQqwu%TR?^(j7ccJ=~9zmA3L1H_G^86s|mwamG_d#U42%O{FLVCEX*#gTc2`mDx-l{(H$UZavY zjlTgc1eRT_*xrX1-8^M!J(ANr6wOFU@Kr`E3(D>BFTzRYfm0F~ePVY}{0{4*{5v<9 zM_BF4-KGB&a7Vk=T_wjmPe)Q8Z1L>UE>vWypwH-5rXM(17FvG`0 zA)w%qM4^5BF_?YuHlRe87=SOh8^6?*&S&FB6HP*sgBOArm9|J@eA+TpSJwdsr|7k; z*|_VIRHt+vk{?1f(mEk|Ww8GWtJZX5o~O2obe z#itiSYz%!n>BXwKV>>vtGJiE$wV2iZS93>Av6Kx71oRf^$kWu8!^cwAaGRc5Exl>m zsrR{ou#jmlai)!f-I(-ULfb)1O9k|1OMj7o-^^q9j#Gpmw(^;-_29zs`XzRHRD|0k z!DUOq=@#lX#u||OO zan7H}+1PzmbE>vbXS^-?he)R15#Hj8i^Qox;U)p{%-L9ZY5I9SAbH&oJR&oZegtna z13+6seWeM*?O4WOiB|9w^;2;}V1w~ip#%)-TuTP619b}qs-l@##cd@EGN(`jJqDH# z1)}CIP$!wt4U%P_VGs91Gx))xl)+8CQks}Nk+_pfa;K9c3Bk-0Zfu-OHO4hF9&?BM z#ZJc_A}Y1-xlXdoAJg#Pi$j;}7vd&YuUN)sWjY*3o~`T|nP7usvdQvuh(jr}+EA2O zgU~aJ?@dl7J{|WUvs!e_^8zGQgXAOe_|!F`GYSVP(zFWG3Ku4*B^bcls3u=#qwO+l z7!`ymh&{)Gr;7?27UYKLKkgg)mcm(`7Etv%O$$-1>em-S-}TFf6$4Df1;DWR0C4bDbmH`_@pr{*1jE@3o(ip;1;ABoAXE-vt%oj(ZSRG~ z#N(vZ^X#*qQe#Bz;IwZpZk>ZMs0(Tak!;Cidb#}OL<7)mwT9x;eb4<&j|U#knNTie z>Ajxk19#BEhruWZO~eAHJ*_N82X2=vIiwkK!+n|qo|e@aA5NhxUWF8*La#_&{Q(re z_v0g9Nr+iJsK*1U_eUAw;r;w`Mzr|OAkC=f2k9u+JbW5~rt-7@(0dmG1_ z#ZD_t){Fk?WJ{VuYm-&mAS6cL+reIq$09eIBpPB{^D6xE7x)yG^h@D|Wy5mS&3HTKLPP7I&l8a?m6r+x zR(+|B5ZX??i2no}Fv5&iNLj95&Cw`eKDsUl*6jZl>{MWnKC;d9f?%CulOH2UWS%5{ z`o6w7s58u`c|Ms@tyOqy!g-uQx1lSh@$*x;&up?XJpX#|JtjkBWR%YTW0zP?mAER7`X2Xc>@>Ic1Udl2A6 z4!XjJ{gyfuFe4o4nKd$Xj&jVNpNu>r4$RQcER%(MBBSGumV?q|d|ZhZXTP~#NbOFN zllBahKiOhp<|7fFhHp|OS2Vk^Q`~gP+(%CHmu%4j%Ky zNLtk*WhGf8C+A{MRoMan549A9u3QxTWmK1SYjL~dKF%jBAx`4AI+=o zxZlJWgUd-(IV@Ne$NP;7*D4fWA;aZ5%YuVXmyOX9f>d5^>JW36dA-hvjInD3La=_v-7TK*!J zsl0I)2vzxV{rmGavXPYtxd03b;qUV0NiP2ECMoa@vrd2y=g9>HFpAlDdE5fZS-4R? z*hphQ3#2Hu>Tbvur`$DiZqQa^_s%$~e4m5;$|AEiMu^#50zt7@4Z~NY*7f!hVT&N< z(9IXk_7QIO_#qnJ$%^-EAL&KuKgOvf`j%%HVO#wl6HL9)FsKdog)}hJ-jh_07H-gh zC4Td@@xIreRvP*}ILCqVM9`=P!l(sCgx(Mnd)5gq+cS{RLjFci&S-rD8jdc-ZNy{7SYU2MN^BPVsZ?#;9ScDLUu} z)lOTxP)6z>W8QY%_bSHvGI^$j8bK!owYgf&N8QRZp@1`igfo!{^-zrkqNcQE_!1K; zhUWD@>((LK?O5)Y$|pz)8gA-MKcuh!z*B3`dxhR%8feg5+aiWJhgoL`dPMDeQFQ7E z4D+^>9f4bCEk4jo|1xLNG=~B-r#f3$jOI9W*Em176B0(7#!jSTE&qB<{v%bX;Ca)` z9nqgv&o#q*<<~ULP}gQ4{oQMy_yuCF?KUg?3D3l!LT8k>rKdH=Md*1<*mh)amEkbm zB}{icFhQYHOZNqwgaB)5!QQgFy!v7oYzU zI5J}^%l5TFLAX#_u8bJW6H83?X+bUcklPm11|Bxc6KA2^wOs!{E5ck+iONfly5w; zuNqsl^z=9b(E!cAJ8SnliKKBE^CmPLj62d|U9bc*w6I9ntglAdCK63g~ zcanmN@KcQo;YZ-a)0T%$Bz&ooWuEk;i(#&7ys+TKj%A;xu-cW*%816A(IE%py8%>FkwA~fVASC*qUkc-uh+gF$%u~E;?*+Bzz&4{65NaafO zFw?&K22qGQ?ZSD4gA*W2mve?x5C093wnN*nC-^}Cnp)oWge)t?T1bXa!h>JCWO(Q~ z_fW6RS0ptEh};w3mM?m&29akFeJzr5!2JX#Ad<^VgvFiGMdW`K!&P8Xl3AOkx(zQ82I)dBNa8roEy?I4l`@3`PtX&Mb>LMY>evp*f#&ds$Kybj()0L0PRH z*J%tcQ=RqS(Mzwux>zv|BfHV)S7$SJG6HNdoaE?b?DDEhWOezwUBOCF$O1<*PvZRa ziRjVWjhfpoT-I@`k3~eD79vk?a`oHiZvG%LXm{Y(ju*HGaQ&Y9J=_gcVm*1&WiZD6 z#>|0;v&8+%ulO4YrQ{xvrES|skU_!U>D%4wd%YIzhjAutyBtl;CLsJ?Fj=L)3HX6& zQ90!Aa<5kPM*71_6gij*eAhQ?6blyWsblsoP?5)y_>4)whFerNtcU$i)~_+QA_8dy zpe!KkyKl3pv@DvPda#IutH?CXL_U4%EdD^W`0`?y6xNo)o4tMZ>`n*4_h7QkmZ^)( zSxF4v3*c>{aGt$bL7fAeyXyAz5dBP%qt)HR>)#mgf}GIv(>p@+Reu*9JVr~NT27_M zT-Kdy>lQ@a^n4a{3m&|0GE9yCxZFYY8Cm;UPeW;E9IZ3oRex;&&t832EjTYzz&MVh zl~N-0H7-NadLry3E+%D{T0$Vym&t4M{H3hL#-HyVc>rQhL@Qtr?AwDeF=sm9{6j@H zu#HHOnV&4(E(`Q~4-uu4SeNTu@P*nmQu>{olN_8oCFLDPU?@;~7B z(qi~0*vX>!*M$4xU54u!Os2C}Z>zVry#ZDR5-96bG1IK&1o8UCH{rGVk^7um`HWRug9##q5ufsF&>r2Z`aew|+0yhHrFeD{ znRKpGMT&Rj4th)$-WY<6n=q%rn$eua5&Uvul)g3OivxHjBgC>X~8QA5f9S54jr| z#_SF-w!sXf7B*p!uY;m*0D&+d9ZJBePFIBs7I%{u2-Y1fry&V)UONA<=)y-eQR9CL zOBjU?G(Lg|gl0md8>tb*y0oV4g?3z@xM9}!WP6K)Lw=jj*b4P49Wb4^3MO&+5J0im zW=OM9^BeOd|G0;gNTHCz6mim3&E^FSUY);uM)x^1QSGpl2{w!AzQ#F#yx8>Fo&j4Y zQHytJRY%tthTs6eSZF8LI>Cf*qaFvEkwhw(l9?+vNLMx)aSs=~7*$b@=_R)q7FCpv z{Sd7BWo$Mfi#yYc8KrJ{YzGB2;+;1qml(L3#}lkc;VE)vb;z)yQi$e_FW|iQYit;f z(*?Aewx?aJTClZly{XkNbhvuDO`^c)7>8guV201CTAttIf!QAN58NccJ79;=#o(i10_q)w2p89G>rB+S8!6Xqh+-f2!HkPP~jQa z_kFy6_nq^%hcl{u9b!f_rfOAU)i6~$bfFEH*`kN@jQo#g5WQM)e|l;aC?8a^J(?tu zbkL{pbuH`}@2i{2{t$6d9>$vQHz;rI&AxOFN4V~4vaOef&<``Z{ZZMMD>xOdRi>Ms0fCG35xv~1?tijFEY?qNAK$ok$AGA zuz2gbr2AhB5d1Ppgkk3i^djP}1fZ)HKJQNzof|{gTA`4QddQSH%cmvh3Axh)@M<)( z72!bcews$d4628S5IAOyzDDTtGh83guP?vmNfB#+H&+y4`OSjS>CQU)TnM)mx&6F^ z;&%~CVHgCjOG3d7@}b`14O`=VgcDVU6Oq*z$(3IHA1EgqvKJ_!qL%ePoHjzgSnMda z)(4Q4_d!t)1$ol8|DFA0F%w~PzQs{jg#XQ$>2Ij}$C#;89n4kn+dbOGnApaczK(>D zGMKmL;@jx^S0X?!FDRlue(2!n0T3`TgB@~g+k*LKn;J!>e|S?hO?fy*g)w z01X7*svg^_HDWA7pC5sKx(n`1gfCroWpUfgpsbx0nc_A$$r%|NQRQ{HQrg9zVR8_G zo-V^e0aiizRpRMTV(0a=xtJErvJP48$L_x86De+M#YMyny}~|!65^K)BjRZ~1f`;Y zf_*1Xm8UWPA~tHKkWEA%-1G_)Wj^W?Z4?Ttt=2C`UCn?XP@9g4EFF?mPsk@isAhl< zB_h$5LH1c5G9UogTXWkgv(2PSODlMY*F1K#(*>D+_w-a>(>DKvkH=B=o$&%>+#100cL)N8A#;vpd{=(`)P--~m# zPBoLRAv6}Yu0%MA6CIM;?4LtI$VP6HB&H_KQt#C{y5jzad!dCp2v0(d*gIIlxM~VA zKuceTGm<~&>Nh72HuS-6?udD96MjPL#hw4)%o5Ty94ThUJ3UUu9v7EzK~#`I7j8(H z>WXO~AQD=XqVd^)$t69VwZWo4XkKgLXq8pCeKpg_}7# zk1BQ6T}Yri<+r?(R4Ab_pV&3K%_y1d3ikY^;E-5crex> znFf{Ap7x`gDQ^yR2G0Lsu7M72XDxegcht9ofq27wO1F&Y2)qzj@spz9X zT8-lCTSA05M=j0#)a;E*=uu?4$?h%&H2Lh2REtfiVuhSNf+b~DGwby zLcODr-<$#?JlFvg%pXFf%ONDdeUSIzInjY;4Q4nfpQjy~m-1j1E>{Q}j~kZL$5OX+ zlEp8rejd&jl0S#NPA%H~-CQp)e<<*>L}`Z&D3+KtY-9inY&)t4U7%e zN-+)Eidlkw*}MH*CU%qOR#Zu$Df3tsa`a(cz@n{R-QO;LcWDSRuQk zEAAG&1*E|`%}MxOU^d`0lN*o5_FGp>pO5y*P;4xeal6Eyh?e8r!rJHvJ&`J+5&|j7 zrsNL7hF>TcO*i3JJe!8Xi=hx9bYqfe$bt%v8ht=-%{IxGww&gyeA?mX2sK1?;>b%! zozR~meAJVIxNt(GrCT;NG;_1jF*)+frHt``2?KmEJ7VDb0jK(4;Z>ft_W5{*xWSA% zxior2FvJJ694H91d(VV8*7M1fo5x(IsFG*%)?Ly!LUzi6fTauX0;RtP9fE!99_@zMUMno^U3vS{3D2Y{xi1$`bvGdl;MgobxU z7fj7#vi7IJMUh>2R%jOut3^4)gS`2smM2zDh3K7zpQ!V?GM;3$IPEbe!}|2bw;z;> zzZY*DkgWhx>vo;t3N+GunzNeH_Ke5*l2L1z_Wa{+JJw$_om&~P_gJy22*o0rM1#T7!d`G>M9*{gDd8rqz#4i34f9w>h z1g24nM7L$|S``SBxm~Cv9n?Ebxg^$cJDA=X@82-*6C&188f#w-FB%Zbagw(;9dR+*nW<*IV0Jj9yBcX(B5_dF zpmM8EV0rKJjHvnufRc{DJ*GQU1RHZ}$?THIP0zQ0G=P1NzSVCsR{&&?#p+*cp(&-r zBtjPrgB29r(H`pqpkV$+*Hzy(qyanO zuETWDH5g@wO|t*~_YlOxrO=+oXdhd2-qx6w8y3pUbp+xR5V3R=YxC{eIPAjRnT=TQ z-ku`{Bi#fYMOlJMTMdp-z~KyOSv7GIKM9pMM`^nIq%V!k9OLYQp~T#SdU$bcxTM2a zG>uSmuWRatEiOx^)gd_nlQF;`224R=qd4)x>tcX5hS0UtnMXvRy2SqS=fG)zcbqfkfY&NO5ru~B92 zb{}wzt!~B0uxnnPXiG&rbMn^UX~IM2)B!OJ6S>M^Qbv{Mw8YpVdjieA8p`ur+WP3p zMP2?qtxA}=H+|U;$u(66)P#3BA`n{zwZ`5Y@9%GLw-bT0;l4x>qy2 zcE*xese(j2pEM$$yB)2n8!f%P_ONnFQxnJ?$6_zDa!AaOlu-*+?P5zy5BP#Iix_=$ zj2k}$8%3C{4tzD70ddyB)?c;Zd1_H<`cm=~T>WiGMc~nv@j{k8Dsy3B$~*AS3$bmK zhgYc3KD=z6NvphvK8G_c-PElw5+xR=jscwm)SK3}oME+#M3j+6ZYwT(k3VaQqG6On zNJn{wt~j)6uEt{*9TF4vH{cu5Mb8cUku%WhAkgZlAd_H>@*$Y|V5(2}I#+`01p%To zH3po^^^j}F#2cJ5r?&8B$HLpDAb)>2GKs+C3FiqOt5&hrtK~5rcqM-@k^e|8pMk!_ zTaG8|D$hW&3Svua1Ev)SZs4r645x@6D~4d%5g;>Cxbj2|GrJ`CaK_>`FO#MoVTjRH zZaX?x0KbEJQB~*b`oW@}&Lb_svWrlBgaIZxr>JwbR*%!DRP@POP&(0Qfb4Gl;CDYZ-)=)(trv>PBPkG3KW+-euHLICn(%w9wFk+keNK4kwlH={55sDqXI zIBZDnZB!otwy1tl?7VV_zEw_qSJZrR?-rKk_0hCrdLx-iW;k4{`4M}+>i@k10_HYG z!tvdqhW^egCi+j(WdTbY2cy5-i5&j%!U;;;w4WD79R50AiMs@a$D|FEh20&ulP^!S zfj14Hi|u8NotfE{R&HuSRXba;2b}IfxcSuzJpphj)M^+Ua`w=TG3ZP(Wm~YxmDA02 zT+#LU?cEMQZNL`MPa3TUeGlwCp$l0AY59>jbV%tvltf9Sl60Vsz6`Z7vPW!9Hfi+} z0(LQ4TDxCtKO=~xafjid zO7p|)BvD%o_Ncw#QZZ!JOM0;tN^7?DpLRkfw}(-`umN(q%{g7f2p1A%=|>YL zm29Puc=#@C6ME#lMH+A5qi-#)&~an-H5tlYQD>)Y&@2PbgZ5MiUBZ3v@M@w;N#?I( zJz@?#3hfK-ar7(+n7)ic^yJfx38n4hdVPl><%^7i+E5m_iH;e9bp|25``tdO@F?A* z99-b%AB@E_`(S*xvWC!xnjSV+m@<`8!K_Uh_<)a5iSxqF-`;q;Qa>Uen2F2M84|{) z;v7i2%-TXykHy@IaLJs|ECOJCOba=!=qsZ6;omwU3gYg=;jfUYu>C75gTEXTlxJz z3s+GJ*MkZEjZnxRyKHeDqc>BBr@l9xnPQ{^ zMXf77(U2OUZ#l zs^)3jUE@%dL*cq8T!XlP*-p>&fN+ zI!pLwp_0N7CBmCXsbq^(LY|ZGNEK2i!k{^xbkG8J^olXL@`KDR5~w%LA}@hFJkGPLjEHkk7C*ezG3rU(pKY}ydlEm4`TyVR=;PM zye6tb98{V*<-et%yEAql37OuweLVNe91_)Zq@_@oxH3SFx4Z76@Oc2+Wfnz)6+3w+4CTRcPU%PL zCK86Y(zm3i-`I-2qzB4Xnc-n>x7%Rdg7wpntd*!y?ML0H4|NaB|7siggoLnFL&z}$ zYz$8rf-`h1Hj9+w7rd_9aN;YLF+|faw4)SIqsXI_FvL<7kJVB?NP{ za^^;5p!!~s3<)v3;_01Hh`L*40YSv$Ut`14Zzl?FWR4Y9!C2ETN?G%pr6vGo?NGYu zBp%aOjtl;Svd>c6j9s^GbriT+2~FJG1f!QM$|1ed9Qr_Q=l^m63QK=*L;vnV4}X^| z&3`;B|5>j8?^;ikyw-nBcI#hPoV7Hp&dlSB%`4L_7lagLDS!|VmHmHcfX|gkWe&s{ zmRK5>`}E}O2jn7o-h3w$4{#({>Epq4ZL~TZZ#hhHO7a4g9h%EHWcpHsZYv{P%GOGdFXyD;D`yt54@>}Rb(zh#EE{*2#tDY^%~7k z;Vd|zQ?idO^Hi`EN^XI*8Y2uMhyTDuakS_`r)TQ?W{(M3gc-v; z7#R6|0v1+Vzh!Zy5qtfSH=R5bs=G3ygIr{JGn?ptQI-5v`NA1p6b^~o|K!h9;3hD$ zN4{payOS9~MA_aF%7o#fsp((RPb{$C9i{&}6J4+kNoI;WSsJJR%F-nGQ7C&(glvxI z#|UF(L>=cLVM4w{vsRggBl71FOigv78mr7Koe~ZZV=aFg%Vi%qH2`q|5Lm#1E>}PJ z?~qxwo9^B>`T+8DeO=uRGXdcK29AZI5D>*l3w-n`CKhv&k#`%gk|(w|XbWmfAhvKA z(H((wZ$sJ7(*w!OkntA%RL(>>x;ZXIvT;3v`ds4`7KSJ4+ViS-(Jr)fRKus$F;EA>^CCnb!Q}4i6GvdGpp~R8^eEsnXsAV zcmB13g^}Ukf%Y$-q`wld5%^%ek=3iXq}5A1NPmY4z2j>}ynx5!>hsGF6hh&A*E#ct1j z6ssb^CqNg5k-7{w>@N*m92_597c3N#JLVf940l*RAj=P9PK(% z=~dgl39WHigZ}2vk^tv%sTSz{KB(pZzc4N_T6>HqEr?#=W z+okwkMPE!x@7ufLsI^x@8cy_g&4J<>dSxz85a5z5UAyYhD5A?-@Ou60i#3M2 zznURYSqloyem2_;_h?Bn7`hk!-p%%VS7om82LUFg6|0FlUz05w+qP}nwr$(CogLddwr$(CogG^{Ir-nWd-QwH8Qu4uFVA>B z|5mN4xvFN(IfF23%csn`)NUF{FqSI4^bz-Nv+vI$w}l=E@jX`i&ISP*ii^_Yzr_OL zb0Pi0&aix8L#Z--ik9NYw7SUB8;pr%kYi?uL6f6qTG$^q&mDwfxky557~mJ6N8txX z?bF`}cm?K=xDFQZ*+#RAqcYin@<||^pFIQ?fh9{^EV19=tf*nOwu$% zj?PdqMA~_XY%Su|r0#}Unp>Ac#E|6-xpVBx9uM-me!tD5KkE9K4csaN+BVWOL&53) z7UR8~3ek^0>=@3Uf!_aZjQiWF5o^uc+!_Ul=mr!*N+F#Gl% zlacNWhmu6%N9mm$tm7nBg%h4p-Z0p<+`fPH9)cxwo}{dc-vBep7OO>ue!%?kCnl~D z@@L>e7L+oK$%jFeZ%n7a`^K)z-posCIA=*D+R>NV>r=qEpn(f14>5H16pVvS&-5q? zk|0+K9VOyjHim}BS#!W$nrG133=EGAX02M(r(0qSJ2BFQ;r^!oWoWCnZm=U8CKtGf zSz&h*labnBT{ImmK=Q*Jksf?6*qfrYWobF5Te7I4sWV$_inf!#ZpF7J2xr3HYZqo+pY5#jcK?I*O__H{qS(~7U6VjY;=d2s<)(rm_ zcYnaDLt{Wq6zH-1bn`zsh|Fv!HdDw>AAU!p;30tv6Oe?;isp$7N)N_6=okn=uhgC1nVq+0z+?ruoTTCqfx)Pd%$Bzv~2J*ix>q*#H^8!#)z zo>IKez#C|~^zW+%xucp<_7@gayhD7HM~;i;<1;H$)Z`{Z1mRRwkcKU1Rk3d%32c(z zD;j&uN1DH?5V!auLk1G0n#f^;6fR*u@0E2Rz}diXX$pv@+E%-r^)jqI7Uex8WxGbTgMtt8&1LnpBHJX ztl4N#G)@-w$ig(ZZ~^`#u=G>t^%CqF>|J1bR+4+d*n7n@r_GLa(vKJJwTyNi;jXB) z+Foowdw}0+a7IJQlr)v2@W-fI@}uoe8KuA3E92n(n=<-8r%&xeXAb}l08k4L0KoWv zcl!Tv;OZaF*gu0>wM1IW#`+jw$jF?f0LX?AKxd` z1u71KfO{LyCWKr_dx)gx@RpDjq+oL-GmNp@^e@RAKXZ55$*8Fz53!eA@0<2r&%DmB zJAZwBfVsF?)kj0JiGGxevM7+)aVBD6HW+D9j20RvCLSa)y%1{6P<~VKAKNJJ|ujK&H=6!WYF1YMT0TU<)h$p`vSb=LWORQPM??YKRKXW=dhl;+Tu zSJh^CjeWpCV>DMqKsPU>F^gg(d3~qSt9sTnuP_QihESn0sg#beUIrJ#n9uN1`At!9l(5p`ZQ5y-GzMc0hjqYFSVX|aOm;=J z#Ht;1WjyOC7TNa_jT|3VZg39XuRyJ+dbVdK*m#>Qip{Wh_D?IFh{>SD$zWj)GCt3b z!^WM+iYNZ)Tymu+ANKW=0FMvHTiea$W*($7(lit?y9w6Fnns0Uc9f)NE#b0jh_Q*A zkk@L5Qr?Y*krS9rV`LRjPqGE?S$%5KIk4+-SF*fI`&C?ioK-*clh1)^BP7V`3Nc>>H8nJ{m zzs(I|O@W9}X>bs<5Nj<#7BR9VjW#n=aw>LB)18uWn|s04v$Fd$cgx2Yzb_1nzi*8A z6d4xo5Eu5*9heAjoSakBlYzxIY>qVpHQ78_To81P>LJ&^{FGS{R82jxH}eHpUP((W zb?wi={8OVhjn3w{$3nsbF+ZhIE^{+Fw+ZbZmfjGcMrqZhA9`4ebrD$?QIxc z;(-Rg{&^}BuGi@O)fRx|J~)_EwnDXHBS%xsz%vPM@8z>zOg9ts&&(x6wt6A3yAk=S zWDQbR|A2__CqIPGe#4d1zUhP9Wf)5JWB@P5kx!bx7rS{VrXRdGUT{qv_C2yMpLD z!)V!ND6@4!JH}JHr4Rf^)5_^&yN>rcB)bns-l0CVNjJ9lz5+e9V=t_Y&V=H2{jwOw z7t}}h6p%wcxTOz(x4^WGXIm)nDUP^5^6pY?Up}%7{Kj0_rqzCWs?4$}J~jh@?D%O? z9(`$bN!|naG49}<^vMpwwv1n}h@ah199n>}NU!~q0m^*0i2V9m2iU&Lotx~bbDEW( z{AHi~^S}JtnGSYxqJE+2hbbJg5br60OM<42@ixVm+Sup?ii(&(vaf7BkTQSos%qkw zBL@sl=G)eYQX^J>Mq2=SF8Ma$`{cC^dqEoe`L^H^&O4xWYTGOI2+2_WzGE5SC3Tr5 z&b^>4^!B%xl}(!)+`5i=kz#zT11N$jh`xAYj0=R;2#;P1v3DTuF=g`~-Ff6y?Hc-e zBhH$TXL&T|dhJC$wKvM;pW1?nSLVvO2K%YQ5)-a|s&m>z=>qQ!*J@!(o7)|!F0JEO z{Gf(ypUNrf##r}p92&m_z1rhK%R0n7C9l5z;{U&Uk=WBXO8+48l^-xg^gor;{}SU> zzLNWYB>8G>S5c`5C6nYo>B)}3dwx8D4okFf(}d8+b*wApC3TI%cyBe>Z_vCyuy+RXR)gr7pf zW7wHcV3>1^{RVi;yL~tKP0MVgNt1BHsHdaL)#CD-D&fyd*JD)o%~d! z!Uq+iEW9fsaES{m7st>)GK$^YV#UGa)vhS{m+F6L^$9rV!qBwfbZj_F2Hb5S;4sq4 zWwINNbpe$ymHy7Z@^kr-2j6?)hZ*?kw)tMqNe1s9jbNgsx^fWSqOGZS8NLmvJ=JYm zygX!ZtrQDY`Y&9KVVj*2z%T{oC!02e0`>ab*!cq6ODTMQ>jE;fs6zldOf6iRSYx|R z4L0Gmi&G5VhG59fyhR;YzYwocO5Hf)e1U{BA7~UQ7K|zV#jMxGuJ=S?ENl3{Jm#4$ zN_NT(JNbj@he^Hej>_J!g=J?%hb+H}a8jQ8Z#oSB^sg_l3^!4KIu$TKuekq@nE8)K zTg<;b+OU#EhS_yD}R&Oa~5Q4NuroS0cfNVJXwx`bCR3Y`~0xAl*t^;)@FR z+4FJZoO(}-+X1)tR75C8ykDq+-soSvbBjgygLGw+`YSNuO=zImQ?~X&f!yavZ21Va z;X_Gs*#Q>AGInkA^v_uLqzG=|r=aQ=I(THnF^xguu*%Zo9%A0kMgBdz0))IH^J(72V-#We+y4neGTA8ur=*`0<0x_BM!g{NQ*3HvnikA8tcV_@n! z*t0g1zCKf6W)0KyycL1tO0W|Kd9P1-ZZPM2TNr6{51heE%ZHp9d`V2S5_jYDq|a@R z>0Sf*S=m`p6f)F@X*KvtmVQ&LEGVavauFa4@*IonpM?jQiOeHjVY+CQ>SJSuO21#( zu0fyXP{$6THjz+)@MQ_COubQ>I^mg8iAfbGQ_k=9Dl?y91K58e;$!2v1@9I?W=0ut zoI{+0Q#-m1dPs({h()r9Dk>~|1uc=xvgI6+!fbdedqan9dSkdXuj#J$u{^m{Efw_N z{;f6ePf*!)(vfu`0RWV<0RRyEkBR7CFuqv}(g%Avm3g$BCSb$k9kUDlP=a zfE%vGI2;7OpG`7bAebf&m$czXqA)~(pa_<>Tf)*(dI~qT2~;XzMU63jA-YmPdUKoh z^7-0r-PS$r$}Y{WvuKx{87oGNSX{2mpTF1h;iUW9z30Yvw^85k=KK`EfHc=lnEeEr z0^$s1?idWbW7}X9h;d#Ia|9mtzh#{fM+jon9Xpd)0^!p5@Vw z7dhLVGcbFa)8Z7ecAF)tLm~2J_S(#0*4A9e6OSJzdlu-{!O-NJbU60L5`E5=i{s+- zv>LhI{tzCZx8@cfUPog4)=2l2+}8e(-}Uv88M<^=rnfrhomK8Lpq(4{9TwWe>@)y7 zV5&_#c4QVI`X^wx=LMb~4vGUkzhtVR8CBE=2n?s=P^2OIrSW(H#{Nzj_KUGfABK>l zzV_+LHa7dqrQP+RojyH~oml!j7UZajzsAl9{4goEfGDDnpD_bYau&j6is~i;PIZDH zWPTknMry|aF|bn8EI&d)LSn2$AO6Nk9N3#Kw#%4zkcfk#I02IqH%=r>c#+mctjIuf zzl5zf1IaKJf{x+2LEI63asdQw3aeAf(v02ThA5>eEKIUFhY640a=5Ej_vBP zQeO!>uV)q%V`r7JXR0e&%BxnD8s6Rg`*r%U;*tl~&H)xO+D3a-`H^#{NUhtB>p|PB z?ehz0rLWxwIxEG@mL?MWPSudk<~37CAL8Q0w*+tBav{0SLY&an!yV40Dyyup{1fBg z&)u~Fl#wtyzin%ZBr3Q|MVP#InmET8rpG>_(~%}Dh-}pxRJ5H-(i+`Ecg@EdClm<8 zwcy5;oLMgTMF`is7TucT3*iaY+LFj`BBj93NioFIZB3nkTqY1Nzy}8*VisZj2>m_U z)O4pAIT0{Ad^Q%MsO_%;|_s zbn_^+b_Cf7ge;G1Qm1N9=2DaX+zps=a#81ILP*T&(B=T?~!C&T!4EgjW zgoskzRezPCq(a6hy?!blhrVJ*;t))=2P;V=W+bD;6VD5)JdZu*m~nm1TX3qfcTRma zm>m14DIH?T&@CnRk)}Yc6N4ViYupB)6xcIIB=ox-2%H#2uH13ETl)QVfnRLHfmwC~ zG1keGA@`Nh-%2l+b-T5mSv1xxtDct-h#DrEZ#wMtHlQz$LWbmu5(fV2>!~vL;F4Ie z$YiUoua!q6SXxuhlYH`FF90p4vSO8XDiBSznLU3z950q!i0) zT|wd<;ijX&uec&P`5a8-(w23#C01EWk>!N%=R3d`y){KC?x=NfiY)u#rX6F0kl2A> zU8~dx4NdRYq1eK{88beEJ0oVCxUevzD353_r#ZozNd-ym87ZN11`$5yVxw!9m<{qV z2`mo|lxxO-))K2-DSpTMO$#x5fA05>NjL}iN<^1;QaAelNFk#(4ZBpy!j7f!btibR z5HwS>i`yMrRfMg^ck#LifQlDQ?*sR1#K%saIB*bsG=C6QR$s`=mf0ql_y&F&-#n}>s#Y4Lz;~_c-za0d^Lp6l4N4q0_ zRRpw0yfc1vN_1@XPdWRRo4-%9vfm@X6u# z36mH!fBR!D+J(zcK4AIDb7fY@gc@sy-Yx@Z4F^hc@JoUIEv9IfpGarxnp_Nw z*J-Gbj17I!aK-tc7p5u?$uPT{3yLNks}{8Icw>Ts>D<12dw!a;tz$FO)dFW zZwi>dr5MhDc#8VC#GfmSLBfFoM`3%fee)&|f?gRS$`3#j`6Xo0GhU}@rbeLzjg)7) zox^|^V+a#0m1$2m(wyY`-e499;J{S6SXhwYCGi5&lpYLcw_;Y+jtbv^qN4z>VU96P$udM)jvM5Ci;XL74^U-7kT9+6Zz!oq8{MB6-Uf7d!G1J zBWlyEe863n6=41~UWYqPn7|Y1R!Qp>Po9hDh?IwTtLfE$Y7uU}>i{w76jcmSsdTsI zVan+Gq;3UqZ~;pgr)bM`az>I-GKlPW;pVuW3N3BjbB`{qj9Yy(Zz3tX;xzOvbm$R^ zOa+m;MqZk%D2a|nIjgy<){f51^3CzDLzwl1EchcANM&CZ?g^ErBr?}0 zh|RQRNkUPSWBSR}@N-gg`V}PJHqDPyWngIK3Cb?AElN)4E4Fx+Pm5DMdoyOc5`2Sw zW`(qU$%R|wK+CsJTqMDljmzR&WWxE$+^OCIS;p!Op$}E^NRKiDquV?l!-);0n1raF zVOqiyS<7zTpbCqIgA8npFII{xoXkrMI%&$1s^o+Ux3|&j+vtc&9+n%ohNji{#Rr72 ztnea4g&ce24-nByAvWr@bTm^OWnCQY>SrfPSLDpg@7T^N9@a=Wb+)qMec)R0uuBky ztL%S70|ObBZ38Pyt33~|uWMrcVr5nnoyN!Pj)R1$iRi1Uq`1wiC&n5m$%|^DXY@AY zG&cvNB81oh=K3KSuT`{jCL{eUJOWCgxJAWCICY@v2=Tw%9B#9zPt z%U%dy8GQMre8G9cBS)rh6J)UD2HfXsvn){%U>$+X(k&lPWP+(=et_*-N;7jeWO}$qOBGh{IZ(U)oTWl64W#R91rkleMiO}M(AC5+D(oHk@@3pBzKVT_8tcg;TWNp@D z*&%9Wx}{gD^B21803~MQ@W}cs7$fuxBlH2rSC$0DetTkv3QN}8r^lmpI-tB`={_6g zv{p<4U9KYO#UdzA?r!DfDnYh*JkOTBr-U`k%KB{>QRL7n#I+urK!_y)X18yc>?GEYJu0UTlz2Ne6@* zXwNa%4-Aw#H>A2V6!@+CUyXzHeCJ2H%R>qozP_w?ZvB$!iZ=>g54feir4a*M7C~-8 z_T-cst~Kfj>wskWD7k^6w>Zgz4|PC2kgT_~T6efk!#4{Z==rF61*-G|Y95*ibJATk z0mlyLTe42ea~<9&?JNC4ZRpp^M>q3F@?4(SlHUB;b4A-_oXYbgG}q+iJUxzW4nV2t ztnct()TrlJv`n@HBYpsQBptuDOWzVVrKvPC1MYEgq%Ohm|H4jxn*%ps;{}DYYUhw( zLFg~Fg7|+ZW#Uvk^~hkv^%Z9FOm}=&u%s0iq)FZL_e&Pn&4=R?9hdV}CCZ?m)WaAq z#UxNpeJ_5#$PD1jhrUHgrYGHcV9~0kD??3_vlwd0u%z8ENCwL}SwJI&Dv$9^5kbCO}uC@{Zra+c4{eesiz)r(rvk0_%1cJ@W$ipeXnzOKdQHfq85&p69c8^OazI&$D7q zCG?pK(64@&&O7DM-6qyhYuabIhNelR_Uo~ zD7XNZc~&c@3ESy3S>Rw<41usZD@F}@$5nhU%3$SlJ&lnv-DpEPps1rP z3=~v2TBxbDX0L?m3++IAWQX7f7ki*r^>rE|?*Qw1(AyNh*m?-5_mLr;i6U*nO;SAh zL?X#yPyHr&FcqbgHU!WMyh&)I^FY;Glxfyh1QlRiFL8yT>W(VI9^DI)v{>Y{BPX*Q zAPeoBlq=;iBlCvfgBwn6sp%_)p;T=i=6vmtdya5}t07#PKCCMqd;#LfCD7IB$;pI6 zew(p5QeAxo1D!n;97>art`&gvgFiW}ti#f02U%jp;+8YI{J;c!0{1HNi^NGg9rew= zqO9RAAtfQz^_&%Q@7>k8{zgs0Zw1)*6dD6vdIWBs;9ihnsFn7^WE zU&xOfI`}on_P)&r$2~HJv26Yf5gg615(y`sDfWfK>OV zEI9kiozk-lMH^t3l>d#HW~4U&d^gzC1FRzADTWREvTl9f$_vcKGfGBw=n#&ykWa{# zJGmczUp%Ba;P(M-!n;aJ!6q(Ib_Fd+ODUB~Cc^81 zh$IeyqJl}PAg?FHSO{}-sn842jeU#n_rv-3{k`37s!`~76N-HQr2elK{67kz;Scfaza`^~*|<7e{5u){Kdj1ti#O?_4HBphOcm#qtX4a>L;#}+SCIM*4mMk0 zt}?G`EL(rmf5H0$&RPVW1^0Xu{xVNpV9Os$%XsU#nfh_|JDJ_h>jl^vhQ>9IzZfN1 zz$!U76DNz^92+q>Zwv0^;(bXz^@D+D;aR$ah*LGu8vG@&^fYOziQJa%Z-29Tq5Ax{ftnVtvd5gWr}=>G0u{9CA*aXI6f#>LxBUFqY`3yJG*WC+P^EQy z9O)aOgHK%R;pV7D;65G5lKO75?&|JUoA`t~kk@3167iAewu8x@ACiO{a$(cZiL_lK z-Fw(>S;|pV;SQe7X|gIi=*SAT-k!>FMeE@bE*Ki`56}0+o4rG2#16QM6m!iPY=$V` zaHS8FBwarZ2?Jv&9!%);PK00)kttYediQB+8wxek(9foB9Vv6U&R~x+m-1Z^I68`8 zSyG|)71n*Sh^o=(Mxv48nDNJ&^TOY&(r~(S}W=`Q%Ir|PL^)Nk<^ zNZ!FFn(H8M{devmK6qY^QC2K2a)yCr4j_WahpoekH<9wmJjs>GZJBR@xIR2F{TN@t z18O4u`LqZ#xZhX#^bg+rCK2~`_DSDREH#UdyoK&yTxOKcaB1}cmDw~;HIhv;i=w~o zQXA+QV{ctTDf)Gb2gMSMaaJ=aQ3p{1O}LyQ*6_ma^M88??^{F|_NN+2E(FoQ0OKz>103TmY{K8VlPe`X;`x}mF66fL z#~q-r|BVt9kI|bw^wTt^{F!9^x2jA3V$!=hIM`VJr`NWv+$7Wh148z)l`r)Lx<>_i zusW(eRM1}j-#{&)h^3+>l}|Q!zW{vF5>ya;=*by4=05j0|2A8Q)>sB%R(}*&?^cRr%sUnE1CS$MnC4t)l~nP%gp^yWd2*@aT!ZnOPBw1 zu|Q=~30oY6mssp3{kec^VDtEdzSa*@$>KOjX%&UfEUJ%!OVB< z3v@nwUMOSSrr=h>Lr_!EaUI5p?iRE$WZvX5y3^PgA$9l%;8BnUTp=>GV3pKjCJr9R zEkl4SXa(gn4yaV>WTGCY!W@^mMi_JLZ~k2G68sCvK{>N3r)f=hDk1vf24rlWPKz5T zP+ZPIB8q#j~autMA1#UOrmkq@fMTYY(=K* z6BsC;uwnuyOD|AAWiAQ`$5n|4L$@8e zl_*1rgm)r4G#4dRqWyb=na3EU3H5L>6@q8bsixc=;GAxdg70sECR!X`QiB9|mKXy5 z0Qy#IeI-GFt$h~dYOV#Ih|MaYNV;BW&a>@?EXS8UGq$6RBdSM({BHoHD5Dh!# zfoh|!h?G305+mTNDW{%65{n`@(o;WR50OLgo8k0`qUOh8M{4N+FWKJH`df$YlkI=L zGtR$!uG%64(9;+nOg@LiL{`aNo4-B$3K^7M>^uRxt?q8McRc`t1XC_C?QJ2eMk_yT zGBh_2{pvgFx@YSg+>=+g5KNql?WY=vmuJgtP<>U0KAJPEmBpSz}NIB%ZYDBcxdf zqcWsP3=cp4$`yUXg;zB=8Iz6Y{MjIkR=%yzeC-tkvO6{cTBjQzTYU@ot9$igoy!=P ze(o8ZtF@z3ukeF@L&fU$Y-;Tg)3Z+fS-$&sKi8vd$lLVAFkAk0opv1LIb`R1lO$DR znnWl*4*WvT=<#jD=q_%C(-BBQ)8t0kk{XQFqQ%2I8glJ}g0Q$?6HvK#`E^?7_aTQNz$T2x&T za=>E0NsY(5E~U`i4cd8L;k!yXsM<=(pjHlMJuHU6!c!{YOnVz`r=Y@Uw)x~WRJq=q zDNs?zqE1ImG=0~OZVFaj)AR=@vY68=m`irrIX$NZkD+A;>dK75V9Hpr@u?!%U=X# z>~elvqy1EcQriEBsK&=wonXbTwpRT8#JKyr5P!iCp%VlQ3OrDRz*wQY8d^4$-YQt}V^S=Lw_-*6pkLQ)duA$O4pxYDMe6Y_Yt(vgWIKBg`m zsWVgBCmuYiP4sF#q9e7LL1batAqMb7WVT$D-lo_^EUA6~cYD=!EEQb)=PZp=dy#uQ zKSn@0_Z_2S4*#_~;#4{GI`Y05$u`L_S2SOCAp+#RN$0I2pW&TQmvKl*DZVoLfdg$82WE!n*U)p)rgR9}$)g(?2I zvjcACNU%T1s{DUKSO47E|HB4-Qfg2DCG5N0)<~JYc{zpKF~J6BOA8SN1u9S~DW%gA zBaCufMv|;}_GAG3Hh(AyrE7UTd-Emlf%yi%)*hgS@tN__aezT1g)K=H)tVS{X264T zCFpd3BDYNmn>A7oBWP5XOkGY}`3-~dF~!AMbGhA^1GW&qVBLt4nVpbiegZ;0t*HfF z%u=fRmaTi;^yVuGJhFOHhVMN4v2bMjVWo_=7At$-M-RIcnv>O9_gs|jCZ=Ali42qO za0*RFv(jmtlD2C90DBL90g}tPUfOcfKgSs3>uHq1PCG=-Twni?k-=rIOD@e2Ubn(q zg>}9#HqLkAeHsUFx^*1@+?HnuQ8X^Xc<-`b+UtAANu*6vOlSi{J{PRhb zObty;o&Iyd=VzDfUv{V~bh>KV6~BXo5`b(8X-K-3UkT=iilhL7BkdQr^KqGSB%g!7 zMGFKy|5+pZHu`Q2;#`p~IroEY8a;r>WyfkgfvkYL$ZfF28LuY5m87`Ohg={D(s}*Aznk2)9f2F`ZL8sT}SCo zGLh9W#d>R`)Q44Itb{)Ggup^(A@P|;Z0J;1vIaBDsJktJTdgQeo4HljPBV*yfVW~A z_2{op1YRKtOFSGc_9RK_6{lLEbH{|8VzRj;al z9AZeq5@qTZe3e$qImko$Naeo5YF+)?G(??Rf`wgC9qp=*>7?E9kXH}RdCx?{lDx0- z&VkJ(H`$ro+~K&T}F`lZAFMJ zXxLI|y`-$JbU9^=7=8=f$AfEczTRKJ^=$dtnRxBS@%c~cbzz8 zbMX27=rLzX#7=}>d)w&1DPvg97Px6AI<;!yg(82tJD6a+&CHKuL3&GV7Wjz=1%_Q2 z@2gqmuH6}2Ssk~qiNF#InO<>61m|=_qCYZ}yTl@Ddv+&?KpEv2ey}eHQzm{ww~Ru( zAGb36A}3ANYbQb5I^82T_!mX2Tu)0>Yo6@&Ke~dQgI8+cyQpvzVG1lb}>!tc=%I zX9#Z!^2E4&$_{!Mt5Z}9gp?MO69ieD>KfScG=pNY!4$=WMgsa9X1NB8lxbXe+5}2# zr*T)5LA`goI)cUD<1fjV9^7mq4&2z$7u$qq?0F zN@jtgFexB&z>_#lqsdij5M8=uK1Af2E6i_z2E$T0&vX$5-#95ZqZ{dByAk<8ZKp&P zl5Jg5$A-yru(rVlrVcZwUCV?E!z8qe@`qvr(*ddz<@bnw4{dy> zU*2o|5)pXxnJo#+Nhd*y3=&s{i%m8$H@zWOs&?TmSP1fGEi2@Q1yQ11REEAO*!cyZ z+9a1c-QYitIy$k5tLCH5Ub(`Y;dF+^Z(mJVp=t$It_7G&)=YZph=bTuUFAmHxe9k^ zbmbn{E+jFgpo53RaAevqu~EhtNq03-FAka`sLx#$1@PNUHRWxw*i>K+5+kyxtq$5k z%9s^KhblbLIaF}JwTJyi*6;kOBb;cA7dh9xz5?6dS-Y-daNVz#o|}i5wFKkvr~gn! zM+_5IP`dGs(0Konk{gIkuOu5apE;-OthKF^y@zBI=QJYTF?Nx#jX)pImqe^){ z`Oc(CX^%@`tvn;H+VHt#yZw+;)?Q^gy%$SG(w&0_F++Bp*4dees`(LNc^tL!-xOAF zxG%XyfIpRv;OxrmD!X(Ivm}Sd{;54zD#%?v<+XaxvIaa@srfSBDY=rwZXlPiz!Q*%s)fWIdxSj2mRW zpZz0q$hBaOp4ipjGb&Nw**%PMo>(oJIdH!T(N&VOAc#V9*lob@Ym~Pxm}+0lKkpfw zXHRyqH3VG~O|jxr3mIokah5X+T3VzUpGCjHyF;oF4wYH%dHPmQZ*__C@^ZD+-qJA* zN;c8&npGU^_vYEwi45r#*w85!MQidaLyj!g&MYiYum&D?<%#L5%k#O{r7!Jtmr_G( zb|u|mJJVEM9siuN^;J*VG9djLOAr{McUkp4KHKS^uZgdyEIP$HZh^J{XgE~Lbs3gD&#U{DnxiGv7$TO<)MaphCd)b(p`08*vjGxnktY9>5|gP$Mh z)bp2W|GGyh(&?)B-mk;5zH>y5W|&jsv7Xue2epB}Cqb3Ez^8`%TG@CCR-DtvsfUq% z7gn6^RNgcAF0uYdC;Bef-)>LYW~HY~?Ot*LCvHh_@K2Os%!0ZdMRy>#|C{Uu5g(Bl z>`#~G4GI8&{r_)y`FB-KBP;bH=WB~`ef(WO=>+zwXKHKPAqwigXd+exO9HjegX~tK< zoj&q|;%@7cuPGD~(v$?>>8R)G3VuhZmN(`OEZv*RUUVl(U!gasK+~-3DVM5q|&{_G7+dfK@Dc; z^wW?>muS*hN+L~`5cWHFAdp@a)K^uCX`xzaGl2DKqQV5{I2*3H&MtrsLky=XtyfLO z9Ao-OQ=Yds2yN0xl1>{a(CyG${1IZ0k%BMy+ImDTnNyc?dJY zNw@C;k>{XM<^Z9>NmgVQe291LT;#|YA{z_-nrtlQ6*F--%fUA~h=Awl6G+e5fML$@ z)O$X|ur-#kLCI42x6a>t8U`5F)NSUN-PO_ivP)||Q9V+YY}hSx8oE+z|GJ9OtdcbI zuW@yD?qsbcC?n=>jZuWho9r%ZW_^JMsoKy1i&H<4qO;bLxp~QSVgLMC11(K@q6ej} z%0(0D!4q2y?#^@7m}@^t2OAADlZ^aggPgvdC3dE&rA)aAGa%mjPOPgmy)rgiQ`D7Y z%l1IB-ePL89n#ylGiB)DV+>A#{1Jn1n){;EW&R7`hOQt0pB6Zhf8aLOX3!1ir#zxZ zlx}a*M!5P}^%~jX*{CKCiDlh&kT3|0HW3*TL6S)kGo(*&0C1BV`ImqLjo0t6c=TJG zYGgKp0=o+!w?m9rQt z{}Q!c(-odI#{ak)=AV}M`z*T~_?ZJg#}yKUdxt>yS_glcv-zVs4R2qWFfS{|Szns7 zwm)=7`?!K|ho&lq{wuX$fX*R3%4-w&6Aq9q;LnfuT&!JwZI~bZtuN5d79z(nV6NlM zUOuxU^8Luit z!65EJTpx3dFL-O6IkdMqGWjQY?lQv~%!)DlyEoMbxX5jxx9!mp*m)rVCeU>OS(h~N z7GF);7TK0dCW5ada#wNyZW81cE+crD4?R3(yD>f^(ZQDu5 zw(azn-*@hF?|E_Fda8Ck``^9R9&5}w#~hQ{-;#>qR6NFwlHp9bp+EKFPX8DMyZ)y; zX8kxm^s5DBp*#E)R{=ZBJH-DG_Rp2Nxm8x3VU)C=fFXt2IIsPB-FuyW1WeCF&_Aq-Spdu_w zCneV^)~CpsLV1*ZaQin%cT-~xh48l$jFet!rER6GWR%+p`YAxtFJNGk-6qY=YERbW z9aox9i>?-n!FJEw2H8H$Hjp*1wwYBZlRB+xcRkUDsg*0e>}DS$#_cLksyVFLhMRy1 zuXUzRXUSSw*?S6R?qJGzct6_AY?dF7euUIzJv-rmyaqPQwRFW_XqQi(Cad|I*l{($ zCU(@F*rdAZT#6K2Uj2a!u+AzaV8`3CqmXQtcxif601oWl)v4XtPTLOD(ALa`U;j;( z&}Yi|a)uXDm+Y0gQrOMBz&uFd)uVlH}In*P9twOIbP)Kup;O2dN9q32rOdj3B~Q#juEKlLYel=xbZB8kTQ9|( z(E(`>e9CyHhesKw4-C}am^TCs6d{g7u}>tR*1tL;K<&h{OT-dZS7b?$2yq#%BUCEj z=I_GXJkqi@-F`#I3U9LIuuX;bv=-}z+PDEb#{C%6hP0!t^)mGvZv17$K{;+qZ*kJT z@#3>FT90t4Ub_EMpcjWN22&KIc#C&FZ@}g|O_88}|7v zSp_DLu3o<+3Wxcw<~v=k5<;iY6BJxEWzR{?6-y?btP4pC$ka={pjmbuF7TO6P)u0Y zJ(`NKV2Rqx+2f1F#3`=IIax}#i_!I6sYIyR8y`d>XmuNtW7$%tZa-W2{Ph;y3w7f0 ziu!z!_4x~ypC+Qk9(YHYH-(I@Fxij(jG05OxP!7LMBw(K`2=}i`l(8zg29rJ9cmo6#p3Qwka9wWqqOoJsE_?H2WN z)v+p)-wPS{)!a)(C=*k6$TJt(h@AN4PoEruxxP~m>kj$`j2qC}W_p6-FBt=iDh_=Qj)1||hgOv(&x$+P)+O~NF=NF%lg8B34RTBAY!x*AZlJvk$ zi(FXmTq2pmn?CF0&U`9q1lJ}hA7$rOlht5N&htrhkN8BU%EGJ; z;8dW+v-aD84Ml*to5BE)qA%k*zx;Kw`aPXUefY>^l)Rf6T+HL>oYCb6&G@y7)HWtu=ly0KlO> z^p%96fz};R7yTvhhLPA~fN1KN={cN*_hj4Ai}{Zt%3`Te*tNF4Obx9IY?=uwSe1u! zIWO5=CNz2!l$MeamhcZ^OZ;s%DH)!SB%0NpS3S_P3CZ)9rpV;Ly_r<`shhKwE+E0(H+3NU#yfS~jJhQSFLNK3GSV+I{vIe7e! zWa6X*Qa0*H4xKc^^+IE3v|AOcUwYe8OAL{b$7u5w2ASn<<~Pu9<24WG8D{GSBh zndU$SOp}ZcfBp|v{F5#8J*XDe`l>kTel>3YM`4h>tBuY78Nx*?j!T0IAy!POps?}p z!TjhonCKn+O(Dh@Sc6Dh;xTH8OyOwaF3w(m)6NTp|Nc!t`aJE2558{dW%_B=>87W* zzbBZ(uV~~tO**5>FjwInO-oY+$d%VkI3jm5JF>hvW$mW<7McX>+2~X)o3!jOJJI}g zU*W^^ENo;q9X=F@uSygE7IR1(V(iBSYXrUWTihy5h9nXJ(rs*boxCQ(2J7i96x5(s zF_stkyyY!*(bf^BlpLjA8tciZ^TA=|d&7D+28qz04%tSvTG$6kIJ9cFvc}pz>H^Qs zEP*AI95^8rZAaGMxVJ&8-Jd}<=iu#g8tDWa{q|>Fv?EwfwAXaovYB_$<})b2VIy#1 zve)}ihtnKEi>Vm3mg6lv}wOqiRwQE-2b&Y|C@?UrmRm8 zv0};Moi8Vs!vTc@-cD_u3KF4Ck{+?2F={|IjAeI4*W()kSrc@i0#14reOcL?6JOSM z+3T}{y}i&G)wz%<^eJTU-eda=Tx0-QEAoyRjS3G*L-MdHx_XAsRl#_&WI1nbRbr4f zV}$Y2k2{ao6Fr~k$S4|>);X-Vx9K$iO@!>Ylg~0rNa+fcY1A0dpoOJ%M!Z7?s`Kv- z?o+O2JN!?DWvC$NOELUB=-6g#d;B}s=O}6m2LUCN%3+(We|sALkYnw+cN?Rxz1sXG zW@G$MPeakr#l_Ug?jKh~J40L3um7*x|EiIx{8y3LUPV|gaOj7W zENdaMwa2z?Ta>8-k5047ZtU%#Xz#Ou&!Ys^l?_Ho9_E~j+hvyXG@rBC;ZqKQz;{~X zjUmL#)sgLNIGlQR=oWiJdXY2;vq}qNd@>jqbac8ztP1vJ?Vt$5e6Jpa*0sescad4t zob`)MwlY|zpeT9}ZidC@kt6hm*iXCLfGDP7u#-$5O*V*&EjCvgo z2;wH`-q{w`AuE^?ld>sezxXbgNuNmB#y(+8G5r*_u%SrA9&&NK#EHNXKwTNqtU^kg z^$Ja8I+R1}NJfL;3PC0tVNtP^Fb#ePfVMCM9il zy7Qpw=RTU8C+=OqT#3-lG*(@)OgucDTJoMO<`8?*Rh1?NRo$o9T;A2t^ScG#4txXX zbmotJi*1&FHae7V0O)!B#`5xj)i}=KfDpW5mb#-Ax0q0B2>9{wOV)CS=MNL|PfE#c z>}a^9arjrYQv=g_i0j3 zWyvl3X$x>KzS(dMY{>kJK;s0{$%(`r=N(!^(&hkE5 z=Q+yGyb|d01FeZ^1TSl`&kr$0L8viOex4B=?jZq<#foxfI5%+|nQ@u!aGnP6x^CjP zX23Sm5s9@;GOm5xmAFqRt|(Dt8V;ew6PWaWkKOY49mnikb=!IUCo(u@cvRYp8X25X z(_8u0gW^6uNX2aMVQ~g35nA|i#;pWMlIT2uk~GM#zt8@g8w-NI~*fze`*3e5CO6JsoU z|E<~_V?zXJT)u`v52FCqjsr1H|6DhNiDumU#==bZn=LBdEdh7D!9i71Je!_0by?W> zESQJ9T_wO8wnkm%Of;K*-h4Ox5&42$F+YX*@zk904Mv)Pih75;vJKfIoV-%Ki-YMm z*H`7TFK7-=UlBNc`bbd&lPG|C%29lJw)cv2uSQuv<0Y1bKAe^5SX|~CAYD7j8f{ez zSIOc0PPabw*WH0bpgojq;&1>+Ptk z*ROn@qfaG6((J4R!FvJjbZ0xMVLfABGS=m^bJtbo7vj0!O?P+y1=}WeL%lcD@0DAZ zCM+fl5d-7XRK5mFM%%9?E-E)_BTrw;ZzW-0LTM@A#=oR_M*iu#D+Gc77DJA1sgLLj z$RjDwXychglqp=s+;vtDXX!|um+RVAgI?F4g$A#@KdQ(#tFUaMKkPMH-TV9#^Dv|k1#cJp{bw18?TRCPcy<~eVO;HKW+6~KGY_=QY#OcvJDw8T{pIs8BblG zte`(Cnw!<^vdb0oV47yf^m;mDb~$*cD{ak|8`|)K+OMcq)=3_cmqT$P;HsHuL~cH7 zVhF+v#InTTU|q{wE%W=sBpJ}Kzkjrh>eK`dB$X#U()BR zs-+bcd8`+Cb~(upOJSG#)&9{4%@|1`9N;8{*p=Ws;f9JgzBKnh~*amzO3Qw31|2Lq=SL zYEubO2lDji0WX+DY5g`Q5scP9Iy8fO!cjZ-b>?ke!P6N!Z3QY_Q>jGtf)FgoknoYjX&fkU?;0_B*m5Z4pGg@&+nm&>^Xr zDoh~}5ss<(wW_*8NjnoeyimMKhQGZu#L$;1MIPnZxXwvOL-$F>S!DKLhx;((gG1>; zcErIlaQ5%f721~ke9;tYCm9vXvm(ESf_%4Ougm4)tv7KV3yQ}d(4w=u-aQOFp!Wdp zG&@q6WFxGTeh9X{UKP5*(3tH;7S)h$yoLU_lAv8hz6n~Om1;Bz_tCCuBFA>sxN1JU z8t+0wk*KYx4bRx&bW6(FN1XHF8woVIE6gT-ao3!t;_LFmoI?S+B-v1?>I#7 zjb=ATA<6C9%vJV8tejZKAO!xbcIQF8OM5KS6v}Thm=nmZ#94ygAyg0hpo%%ee~a^{ zn$@CT%8F-yx1Ce0@)Ty9braYnlL!-!Jf`)Ei|*Y?(r(fI0bz6&gzT>`f~4A`Huq8U zy%fWqMCyY_`I44Mxe^MoT8Y7>4YJnP1p{wdgnT1W@OPKuH&XF_PK7uAeX#W6IC#P> z1m1JhxOT}PBn=$dGgw54V*z=Zf*@9LLr5HnWY^1l8dx>Xg% zfb$b2Z3Y(~%Qqlkdf1A0c#Uk@!jDfLJrmKz_~G~6i67}fPT2NQ2q^9l>>#)kY1qjV z!7TLd5Gbm$b0f_yl%;-30nRfkXV!Gd&$wD6MrT{$@!`0ql9z84&twGA%c(i_o`XoMus$APlx+4N~ANL6M# z-{8rx!%M_EQ@nD#cGS3a(QIg%UG zNyx}LsCC{Q#c^!yGx&VeW&Mcp62mGy=NcczVi;)cTOD;B^QNvKpmH&mawU$}TnZ>6 zG7|m!SIweRr;#k>_~5dqw)#6XnNM-ht+|FGoFVuS165tEBgT zk1*^^T^J#>2^@@|FF)5$W~U=lLd8RF3PW`hRkb6AV_z|`UlV$d znl%dOs5F(be_a&Of+}l796ZWer0Qa<4Nr!a;wT2sLZz!#(`fT2#x@zwdcpAwx-FtP zYE68T`P|BH&RwqEOIYX@XqoXz1;ztT(1}k?6_(>lEi7a{+c4-+z)!PIWxRwumnkw& z*3Wjp&mHx~Hm_3Ct?739Qnsf`2RN#`{Nt(f`~nkmq%aj($7K$ka-7DsT$%zqUO~yZ z6w_n8sszbbBi?DCm2agWjNi$;CS77kgcd)BV$YHkt*0?)I1-5nww~Rt(0oE>z`IGkfMds|X1lYt5`*Z9* zKeu5L+BpODiXC=*jnKjIF`4o$;2VnJGckK(Y`F_Vc)(#E@>v=C5Tzd^q@ENw)>M4$Go?T~ggXWzV(UNu&8u-$PL zC6C&g&rj9+m!S&NWY=mY4s&|kWwr$aE6#uf>_)$iJKsW}+zIxjtk z0iF%=7R}AkK0=42BwK&XqeCRl`mKYDtg7zxXHrFM6_yXU8b%OQ;x)-bua+a@{Qm(A~4*2cTf9b;PL?DI>-tjx5U}2<=syGtG1s*|qrM1Z{wHg7F z-K9iq)l`G$pf0HXf8@O$>YCq2Di1_lN6H`2LJ?k@{vf1VCLDdHM$W~TrpohlT<;xi03#hrX1{8}^1-uFtufP#G_$hfnp5hdnY}qIV^&*>@p>aA|g* zHL*?nKx9TabI?CsYBMGdpT^&EgP8$ZVqN|uA3ngGxYs9k%B`OTnPG{>9%PsbJByN+ ztpB?<;&K&iP~t1lll_w4vHo9Aj(>nu>gyt8V&Y`#?EDq+shT>On%GPI_c4;BqGvy^ zj_G&a;%bE}-4Als1{({W4%Ev^j;SrQfmw`;BG#r<^^r?I%LEopG1X=D_@9trbgm4N zS8B6awyzIjSd*w+DD9xEQm*>%et12@%$(vj`;m_ItVt8O37hqyEo z%=TfqUpMHF_PNR8ZZsJ$P9FkAuT?+3b}Q*|;WVF>-X3Bq=+vHvX?LT5<@sI@x9C`>%cUmOt0OhI097r;$8rEom0ozY2C5YOP=n!l-o%i^x%Ap0DR%+nXOY?Lx7YO=!B5JSV^yW((;;gmT+9rut>#!{CmC zV(Oy~xu6R4XaG%Xm0o!cVa(eEJPXvg3?`<#qUgb*lf^J?30j}do zm{Q1tVClJd#kuShw;#~aP2bQkj?du4M?pI(KH&>ne(N$-cZF142#@cxtme$%n@7B1 zYHbZ$2(9(51iA&~B0z%CnNEC0vn;OgnYbIOJ~4?~$hRCm8sN4>Svkh~fY~A(R;y|c zifLmQBD>_4x-(X?-~4WameA|xd*H_}MYxgO5R~x^vVEY^FPWav@E;gPZDzF~NO(q# zlf?ZAkc7;YCM6w_Bo&=eB<0ORx?lnMjfSijC|0gGL{2jorRp#8nDU!nB3R`^YKa{p zsG%uvIusm-;s?El?pIGRA%d_+ zC>9}6Z|?U%qF+(qfuuirA@rF!Mn_D@r(^|v1ZwyrGzlzvFY|on7 zFWi>xo)$N(G<4csH!juN)ymKR@;sR_L!mTW?|mtk_>SH_x88XA5%^yY5s~N)B%m!g zI!`D#It%9+eD7%lI_0__=l$pG-|yi+QernBX8q6Zb<#d!b3Rl2j*3CNrX{Ywx0~()LYIg6vs|-aYH~jO z=uJe9pl(YgkHVS3_h(37kQ0YZv@(cejXY(Os^@)pHx$_J(eZVOW0eU~PIRm8V8i;+ zxTh0qmE|YqJezFNNN|r{EwQE(hJDiLXIi0AklZ*J5+x+@4YM#tTQrZz{HhMqh4sf8 zv1dzF_^a+zU>Fjn%};b0_MAL3>0+Jtb$(CL668Z3oO)Wi*jq=%hffB zd*dbFII~ngWIBC%jC`ul;w+8ky#yL|8gNce<8baC-MxTh>9}kj@5#x2y3v@5B>+S< z;zz?sk=4t%?26{q(=ClmoQLbOGBTPPu59c!+Dfy+Nn}yd6T)4FWKFmyJi5VpM{MmY zr&p-QxmAQ@tj`YF%%m;|$z=hDtAFXhSG z_te?+y%WM|B|`JaXer!u(sWT}P1P`}wK(|)G`H{tGr7I`N8G`K(ntuJ$=xX8y-{%D zPbS*RxhuP5Y14Y>r>lIilq$}4*=FQ4m=}|!29Y;p^Qhl!)@5BZ)*@-pV}@m7AK-Fe zvi)E+T$z|EA3b|6HhO%8j%ZXFw85;nJ=U?`=kfCmnl>_ z&5A@+<6|pEj!q)AvJ_#432R)@<|{Izn}lqsTXlU78P`WKjuPk?BD@UEikLYMG>l1+ z&_etQ?acFwCpxWd9x!;)qshumP38PGQj(AlPp?D%T~${ts#MzLYW4Ca?daN|OMDpet2G@G4-Bor>YMsA2-2WePQ{ zu+}(HLN2B-BcapRjJ(csT9Pm+W=B8Aw0p0CR8e4eQ3Vm;S+W=yytix~PeK}) zOAAwQEFV>PF_EH|_RF?)l#!YLXgbdLFeVO!)P7aES82Og&#@k7V%=AY$;r^1H-yvq zea?CswMBAuBGp&RAs^4%G7fLe;L2`=WZ~;gsb~ z0Y3?1FBvQNj8aIu-A$8^>V{!~FwD+*)1b(E`vMVI?5E{jSA{-S z%I#0|1?Ow4p&cEC0^d2BiNpD7U0_?gr~rbH(p}#c3O#KMV{A$;Yo-a68gx#gE^bh4 zr!E-fhfdMU6Qd{?6;a&^<2zTf3e^BNjf%uNI!0-->)I({LlZ$I1yo7QPour_V>0sM z3R>4O4Z(;{=Jkf!Cnfejt(Vb%R1EM)iV{;dpN^_l@Fd5zxWK3cIf7#^SBRfYXo? z2dfc=O)WPoLN=j`B}14uke}p8Gn;i%DtcPVijuS&kQ9@{syZd3F{Q26Y6EpUB{^la z;TpV{cH>yyoADw{V9(SNz2@7oxDEdb_0Co8Bg-Iy9GrXhfSx25!F> z>C>_C>&v}6{294uB}bnrEg3S!kU6P9Q*{*@b8vV#1=|Pf3KcyC$0hEP{rGzuj_Dn% zOOj<$G0k3WR1))^qVni9zUpw|qV?dD+NCs^yG}S6xNnS|$N(Fr%`N@&C|O)dLIF5; zGJVA|=DHjN>?MGi?@k4p^~=LN?|ZS}Bc<=?um)yF#!gUG2zVZ}0O@a(Ow?0f@Smep zzvnZVT5_H+J5s9Shxvb3n*|Lt)Gk`c`P1SzI_zV2sk=DNY9=h1%Z*{|5um!^{fynG zJh0NF$`9J?n&7{Q#)0huz~{=_kIi~54V%FfWWahw*s(mDbq#KR{F44zfZ}jl#OsFQ zO?RovCLIr*cpZDM0IsLNfqC!B#YVA3Rj(W|9VRgQ%O)$uzg&;aDRWo-x4>}o%d^|> zt8JbgHGl03B>UG6A(1{OKmBBflBS}^qDiiAIeF%AuOYnhbGf|`$43sHu9AHmfS|yO zbY^m8N)o2O$XSfXrkRKBoMzWTU2EG6*L>g~zdl!opRj!hw(Mt`PtXA8alHr*6T=AD z?_&JtdnDij0|*5S+S=_tQgEO2Vl3(fn{oYzKHxiP2hPI{(N@ z04e8_%WnHbgIXt-Y2IYyP-Z4?Uj6XtIv?(pEKIpu=BE0=W0l*IHjzd;)yu6w8^gj5 z+gsf{u`CBCT&muC`K_B>K&`dphaR;-+SKU$uS3wJ=HaR34ma4lv+04|#j=v`Y1vZn z_1WCY+u{l1?#-iGmRC|_Ph)uUH#2#sQCKo1Fj`YphxjauW_m03WZZO%l3sJZlK!$V zxB3FNJ2SKM#k1ljLjc6a%~)?b>^Iw5SZ(BLy_^MC)GhL(R+e8SSh0KT)O^qPfF*0vtM{9e<Gx=EUMa zPtw+K_-M~`*-2GD{aH%NTvh+(uw-`^@GbhYVt)3i(5Q2yxJ6OsQ;sHQ^dyN-%`K%} zvoLYGiXum{8l=Nwpan+`t-rH2h`8dNhr{_&#+>$^4vd->xP_lki;EDkuN7EkL3Kgi z{0=T&n3zk-^k8_HPs5~eFfpH6z`NV2s%;!~peg1bh4;o-J`{Et&YPF8@1>2`imgzs z-4RgLJ72>w)98}*eof&U>in#;-|v^7l}EItblVyW(1EeKvw9@n73P?ylTOTP$gvyL zB;+e28B55e6u@Wy?N~$hPJQB$M$0gdRzU?%i{p3`X(;JxRPf5mb~H~6aR~xFpHI8K z0^EC%J4S^5wG=T^{9`tPHdmwetlEO!jZiAI($ zaH0pw)8|sYl}1uf(yGjP1p1!qB z?`YlF3kIs{8pOTucK?f>fLFV-`H#+SK)$s!@8B1$%daRBwleHwhUxIm$25%+_~Jbn+I_B-z7Bn$mzFXemSE+v;_a|02DjWDD1(s2Jy6jaJ+i9 z=+gH@f70q6rQFFM1jnj;Yh6^-KQ6d%Nxl_k;5+un!{D|YI!DaEVJpjHDD%BiuI0{~ zhq!L<_n;9}UoprDRu7qm-)Zng?>c#Qg2RzaMCf(4MuJ1w3xdI(J3%`5C_hH!i$Jlf z`c*9u!iK=Py?L>p6>C5y)%}qt*#C`A8*6TCJq2NAH=2lz{>vPMN>%qoZEZ>$&#Cv} z`v)~=x>u)TTp128ncegV#MRgLPPP7nlunOTu#qe*LOZ;86`27aRMnkWC;w2yU|0Uu zF%iUO*5xuE`m%^?UF7Z=+G>BJA$m`G5XYt`=9yo0VpuI2HcrexgbibEr11X7CMlS$ z2wMx9F#DX-LOc)QCwm2ce+CBc-^{LEN+XCVsoM(ZPT6tzd07aLYg$3Lyf&yuFNmfI zi5d(ks~w(SAM)FLaVloz#|(I0PL^mSTgq^nq*Q2+C_ixhT&F+Yz0|^u@t9nntV^XMql# zu*RaB$;g9lhLIJ;5|eiSXy=t;c^-!xH)hSr$q#-<3p&)WB=e7^-!Zq~5RjqzG=U`x+91bLbcN~(AKX?395|K)D~+_rw=VUU?2Eb zM^f8f1?ew#?-NeYM!Od6HprPk<$Hm25+>jQ%WJ9EDQ`Y`GN9rJJR`Ho_}5YiJ4_8o zh{?gBkT%b*l^@Xr0g;Gb{GORJt~l5&sIq!eQ%PY{khWg#EhSp;hHLiD=H;_RS(Vhj zBbf7c3b!iXh+O}5Hz2rsB|re@dKqjv2Yw6X`cUjDT}nl_-g#zvDxY8^zk5PRKmfy+ zYNj7Gp&$Q`x$vJzb3du75Ypv+NoE0>(TWOE3decYYjZwuID0CqtOG{`Q3JeQczdZPqLA` z3OPF`8>g7#69@V0W7kcb&e&05PQ`BpiGnn)0pl^sgt(LyFg{Lg{iV;2d?NhI^{U(0 zxx~waa_*gig;f~N6K?YCetlZ?ov9pt>|i>7gPt8f5WPMeH=jMJXfC*qsMW}KJcG!? zGYFKzq3U9jB#0b40U~v@GPeh`yBXVNx3-OOycL(E848ekZy$Xq>^H)&I^ZR8WM>9% zl)VeKWaH|3nYvdZ(cKjN58vh7d?DHVWLflbWu71{v(3xMi12iDq6k zWsR1kA<0pf4^fv&XwYKS%8)Z%#Z51qEaY0{O^{9(m@NkkFL|yfi5hHAw*40x&O7+~J zE3Y*gGEt^Xi1@Yq$*N}7Oh903R2dE3=mu@2W7)PO#L{RR_e88+VLQ#_2=@UOhxjpb zGfY6`{Fm%n7oJz|Q29y`2?jiCinn)H zt|QllHz4<4?2m!j(WII1qFuLRFubS2+nG2{ZBI&8)tGV#y*IxU&h)l;b18+S7>#xq zu0uk(nadDtc;#R>g{Hx4t|I4Bi!PN9!tH?DPocESVp4%h$=B;~|0d4Bb&wt>lI%k4 zTBn!rg7(@D+SkC%ZTO_T`79-HvWLW$;l8+`9Yc>@lIygjlu>1ynxSu(&R^fHZK&_gDAM5Q?pUvO&QC7NMJ5K0IoQp=G*0@y z)+)GWs1)1z$u^%%wR*x?O4h#non0-zU3Ok=I)5JdPw_o<@ZQXJeSABNJdl?i;3F#; zYR4f(g4#)OM$#`pN&Dnx;svi%Bs96gqI^Wr;Nl5R6Kd;{tqQLL#=iQvP@6w0> z^$0rZnl2|eXeHph5qS>_jdi^9fbxr?kiH?!-rbz&x)78lKMdKo>X~{aI5n z-10((;IAf3=szjx->;mrcjy`N0y5n>V(&kG<~KZf)%pU;;qS7oK>JFD-*MhU^Zs6s z=kI7lbh&d_z1}f4?_a;i2BB}BXV2Kw&2vM(>6AMk-h6{#r+?u7cmEI%V$*c+iiz#2 zKK!rKHmLXwk-}dcK})+cNZ0BI*Jq993X~GKkiC!S&KnPVRcoM~Kkw3?f}#d-|D1H) za_k*`x>nNqa-IczSQnS;DlX#-XtMk^!x1|9&AKAGnK2x**hWJ+-PqBCgG$?ti!+TM zpr4mBuSqnZSsOHKOU>*sVZVBQ`12++FQnEAMHjJ+58qQL_CYT-R#=^&I)HJM>nseF zV4vB-VoC8W$q-jEHU31YAzJ_fkV|NO5#h#)H`dHz9$zWoSShH&oKpR6N)Ec;Otk_g zH29x*Jh9+m< zUqp?sUVyUzoHBNvv${VK1r+}(Ws07N0w|Qu<6dbzXwu9|yU8)J6~pnZQhFM9Cfrht z{+Y#YCKGR1I;_O|-Q)QZ0bP|a#&J?B=?%XDg6@t77MDNNr#%)%p<^lunWanHPYleF z*qf6Z_3&4WJkg#&)Km|fBQY%EB$fa%)mbRPSAwH!pffAcfpJ9_s}cN)-D}hurN!@O)I@@6CNHqlEUK?zfcQSJe4W^tmD{F zz|m<6X$;C6HU`$z{UpCz5T8R=Pw*@Ta^_i^K-ao><;6K*-pJ;tTO9$_!1?DUA*mbIM;eL!2^Q(KJXWp&JA$6DipF8Hik5|7OM_MI=h)s& z_mn6;R8l>9>!p`Q-9ascHUdKCh>y^tiplnn@#+mhlT%v^7oQu&6O+TF5En7#ml~z( zCDP;z%Qi=1MWlx7pej)n(L6I(VK~G-VN&KxPhbbrpqRKRRfetPhqOY`7=2kbZ2S0# zBS{!m5?c+Z<89bq5fp6^^iNPVL@+WrM|7LlAQOPi;v(`U!ZBh!l0B4$oIRX zAdn8oXTkoHvB1ilG)!gG#o0?QuR0*?7$0~sK;uRzf3to)7mU&UGUIB`-=TsOIWQWb zNt^62FDiW6j#isks!3krmijjOfV%-EMTewz@@uAXxRvH8?6wUt%Q0Gc4cWgJrY~=h zI8h>sKW)gUbDc`6&|BFog3=uV1dLJ0@9{8&o*47ShdUOx6lE|#Ja!f7QQ&p_} ziZaA5-Ec{-zcXHm`i=$6yp0`*(+aJel3G0E{26%3gh`|7U2I}#T3j=-U6mrl)({K1|ZxTjog)E4po4 zi*2V0b7<$Sm0Q8K`IOekOXV+wLF^q_NeN6INKL9IfKk@pTiuo+pe|V61;2l-fIlQu61#;k3bBGHanK=h!%4FJ$!@`N1|aLRbyf_*}~M(LF5NBCqB{~)x41-?jXV$ zp%3DU;u~X6__J%kaW*rpVmNX?H<`ZGkEHKtkX8~D6G*jRyl$2XTD{VZX~=}zzkE*z-Spo$?( zy=rE@m?#SM9wPmz`$S3!?)|RaKXR44VWmr=dn23`#a+d~U~z+;cZSqy2iPlmJx%Uk z{)m>3u{g{`@(Vt47rwx17bgq-gp1T=%MtQ^GK%P-tI@d%S!9kX#lK=KVrmjfM45vI z&jKAKCYmH|4~T@E8%z~nT%y$#ci@lRD_P)%H1E+CLh2~>nnWg>vaj&pg zJbLOEZ(V3kbH@^NB9~mKmgH{0MYNk%Hbyi-Xj1t*RjV5#NlcY^r3@TgiH*5VLu(ql zgkXsFWp|F)@o6{~70v|8Huw2^7bHYgu|?bW`ck8ZUGjxJYfh|YBdR2w$v@#q_xxe@ zl99YY7VL*aLN40d1JF+5lG-a)+9$aWQdm4>y6M@ zIvFC1HLL#6Jed4(B%&)=7-j1`Y4W`{QBU@M+@+M>0FWyj=r5oLkZOlI-qY1+fiugh zd6$WAHZ19gZ%X0o*TI`~rb1Onl=?>TzH*jblY%X&3{20XYEByF|iL04(7%gJALpkilH}64!=q5e;^?c0J2aW?=xM-vS3{ihi5GC zdz+NEY#%+lri`&bqC1;&GbQlvd~O!p^p#ujRKOk2N0_YlWGVk!__TId-oEfbA<#F0)%oGU5E9V;hc zF@zR$E!x=K>*Kpy^Lq|qb1-Jt2U`Y29pb4>K%g9>agPId4KHyGQNG%RCZV-N%U|@c zV5r)BVX0u8fr+Mty5dlTB&KOprqrIfemqddmfkahb)sFKlVfciHCoNl-z|)V z>Z>Sil3j-}m3P4=+nBAF(hj8#JZykHx9bvFd%AZlD;anSP(A^yOV~ut2vJ_Sa?O#K_Vg(B4I5(u zPxb{dco@~rCji{@iP{4{7m5~Cs8C-NRYw}c5ozQy6Vsoz2Ye{DGMrzakZsuEs= zw_#R%R-~*w)GmH&daUAS?oR?Ih-i0tT#-PFhY{uRhjxAF-kcg1%o-Pzi?%51Z&N69 z%o{2aG>EZeu{>|Y&jjNv(3E5JnEhwWr+dk>DY`qqg?cd2Yzh74*cNXcwp2%z|J>+L z+%na#b>^!gUqeg=?|if6VYEdY?^psONm0$_VcGAN_0k`$HLmhR;T(bE*rAE9%&6Bg z5BF@BCFhZMq?@kU!|99gvC^l(BwIV#oi@ou<$Fmf;nJVh%XI0C&Gq6b@fbGZ|Cx8NHx?3kQ2(XTF#Y}?WVio_r&MiB{;Rvo`Cnm^ zO@^s~4%d9snoE0UL?~9WC(QW7#DoP;%-&EO_8j{^H~;l{$5-Cv-+CH$wkD0XU}c#D z8agVqp2XVKOU_d({u`+@(R4GPj6f0gS zLTR9?SQ*hG;1ys-$QG9_Ne5(~`!**F)RL?RfCCXh02szK9pz2^^3Euqo_?bAktS2W*OX5uAVm5di$c zub3w&Km`E5$Sdv%43GiPCH#tgf&;V%bcwv;|9=2_K!v~Q2c#d7enR>g=@+D5k$yw^ z9qA9GKau`I`WxvVq<@kALmq)V61fX`6!Kiiqmk!E9)k?>SmbfYGi|ir$$N_SQJP-1`$nzo3kGuf#g2)RYFO0kh@}kI#Auo=+ z1oD!|laZ$&Peq=FycF`%$jcxvi@Y52^2jS7uZX-7^2*4oAg_wN8uIGMYap+QycY7> z$m<}li@YB4`p6p~Z-~4R^2W%UAa9Di8S>`HTOe-Vb?yM5I%tb(#C%4#U9qpX3lCdyhUYon}#vM$PcDC?tafU+UV zMkpJjY=W{W%4R5=qilh)CCXMPTcd1)vMtJXDBGj#fU+aXPAEI0?1Hi@%5EsTqwImQ zCrS<_k5WMCMk%87pp;O0QOYROQTk9SC{>giN*$#iWd=$ErHRr)X`>9F%tV=mG8<(O zWiOPyQT9RE7iB+`{ZS4;IS}O_l!H+YK{*uVFqFeljzBpQrrk%xe?_il$%j*LAe#>Hk8{@?m)Q{QJz707UemV=TTljc@gC$l$TLnL3tJB zHI&y;-avU1!AQQkp$7v(*a_fbAT`4HtJl#fw9LHQKrGnCI!zCigB z7UesX?@@k0`4QzOl%G+4LHQNsHs7v(?H5vU_kyHH1=&V@P} zb#Bx#sGyET9fvv|bpq-{)Jdoks*I|js;C;Oj%uKqs1~Y?>Y%!)9;%NTpoXaPpw5dr zAL{(53!pBDx)AEZsEeR3inu8z6}>YAu)p{|X(4(ht7>!GfXx&i8js2ibfjJgTxrl^~tZjQPI z>XxWmp>B=34eGY2+o5icx&!Kts5_zVjJgZzuBf}A?vA<#>Yk`M)I4edwHvjF+Jjm` z?L{r4PDkxSt)Ny>Yp8Y9e$*ML4b&!T3$=|pfI1U(7V2!&LDaoa_eR|Zbzju|Q1?eY z0QErBgHR7fJp}bo)Wc8@M?C`dNYtZHk48NP^;p#7P>)AF0rf=GlTc4aJq7ht)YDK; zM?C}eOw_Yb&qh55^<32RP|rub0QExDi%>5{y#)1A)XPvWN4)~|O4O@RuSUHF^;*>H zP_IY50rf`In^12?y#@7F)Z0*RN4*2}PSm?l??$}`^)Xz{qNBsizOVqDWzefEA^;^{MP`^k00rf}JpHP2B z{RQ<`)Zb8lNBsl!Pt?Cq|3>`>^V7Hu5bc(e&< z6VWE2NoX>ff~KNrXgZpKW};bWHkyOxqIqaOT7VX!&4V^C+I(p9qb-28AlgD`3!^Q9 zwkXFhPFD| z8fa^xt%bHW+B#_KqOFIvKH3Io8=`H5wlUf!Xq%#KhPFA{7HC_dZH2Zq+BRt0qHTw^ zJ=zXvJEHA`wlmr;XuG2AhPFG}9%y@_<Lfac{AGCeZ_Cwnr?Etg`(GEg880`?WL(vXH zI~?r@v?I}uLOUAm7_?*2jzc>h?F6(F(N01;8SNCbQ_)UCJ00x|v@_ApLOUDn9JF)M z&OPPvi=i)$z6AP`=#$Z> zpif1ghQ1W~(&)>eFN?k$`ts;2ps$F&68g&MtDvunz8d=K=xd;_iM|&4+UV<`uZzAO z`ugY_pl^u25&FjHo1kxsz8U)F=v$y~iM|#3*67=yZ;QSi`u6BMpznyj6Z+2RyP)ri zz8m`P=zE~=iJn8xqZiP-(TnIk=q2=C^fLN%^gi?odKJBfUPtdopMl;$Z=$!*+vo%6 zGtp z&@V;54E=KSE6}e*zY6_o^lQ+sMZXUHdh{F6Z$!Td{buxA&~HV*4gGfXJJ9b$zYG0t z^n1|nMZXXIe)I>>A4Go${bBS+&>uyA4E=HRC(xfne+vC+^k>kYMSl+cdGr_1UqpWi z{blr5&|gJ=4gGcWH_+cie+&I>^mowTMSlXjZ1{h;8#$k-dn1C@6V-kjhA!8^QDu#xkV;C4FhJ|5cI2bO5hv8!c z7$L?y81rJxhcQ3K0vHQoEQGNz#v&MtVl0NSIK~nfOJYpMn1V4CV;aU%7)xU;gRv~e zau~~Ftbnm1#!46~W2}O)D#mIUt7EKzu_ne^7;9s!gRw5gdKl|tY=E&L#zq($V{C%4 zDaK|Pn`3N&u_eY<7+Yg(gRw2fb{N}Z?0~T&#!eVJW9)*lE5>dZyJPHuu_s0jBaczQ z=*B2w^k9@QdNIlv(=qxmDi~Fa8b%$XA7cha1EY!2!f0a*V9dmrg)tjr5MwWly)pK| z*cW3zjQueVz&H@&AdG`C4#7AS<1mcFF^<4E65}Y0qcM)bI2PkLjN>s*z&H`(B#e_W zPQf@8<1~!ZG0wm^6XPt5voX%WI2YqQjPo%rz_<|OB8-bMF2T4I<1&oPF|NS465}e2 zt1+&@xEA9&jO#IOz_=0PCXAagZo#+}<2H=jG48;)6XPz7yD{#;xEJF-jQcSjz<3bj zA&iGH9>I7N<1viKF`mG965}b1r!k(vcoyS1jOQ_4z<3ekC5)FbUcq=3<28)eG2Xy< z6XPw6w=v$qco*Y6jQ24uUF}}d~65}h3uQ9&C_!i?kjPEgi z!1xj4Cybvle!=(^<2Q`oG5)~#6XP$8zcK#7_!r|p%n_I)F}pBFVa|m)8gp*UF_>VE z#T#B&8DNH(^I*=4IUnZym4)kGTWpj+i@P?u@w$=B}8#VeXE(2j-rbIm|p}0ka#kh}nZ#!tBK?V@}8H z!>nLdF>9E0%zn%nm<`M(W(%{8Ie3X>oBj!yaDq@ z%$qQ8#=HgdR?OQlZ^yg?^G?jWFz?2^2lHOc`!Mgvd;s%7%!e=^#(V_xQOw6MAIE$G z^GVF7FrUVJ2J>0W=P;kgd;#-C%$G1<#(V|yRm|5gU&nj{^G(dRFyF>}2lHLb_b}hb z`~dSq%#ScX#{2~HQ_RmWKgaw6^GnRHFu%t92J>6Y?=Zi|`~mYv%%3oS#{32ISIplq zf5-d-^H0pbF#pE<2lHRd|FA}2jl}B08ih3%)@ZD`vBqG5H5O|e)_AN5SQD`(VM$mr zmV%{XX;?azfn{P@ST>e} zHr6^=>td~kwLaDcSQ}z(gtal&CRm$dZHBcu))rV>Vr_-BHP$v*+hT2pwLR7jSUY0v zgtar)E?B!_?S{2G)*e`UV&$;%SOu(ZtRhwqRtc*YtBf@rs}HM!RmG}d)v@}qW?(h2 znpiEYHr4>vOsrX0v#|!T_QKj5YagtAvG&8-AL{_D1F;UmIvDE^tV6L5!#W)62&^Nq zj>0+`>lmzKv5vz!9_s|G6R}RhIvMK}tW&X0!#W-746HM;&cZqy>m00evChLfAL|0F z3$ZT3x)|#ctV^*j!@3;n3al%!uEM$+>l&o z4y-$|?!vko>mICovF^jVAL{|E2eBT)dKl{wtVgjP!+IR+39Kivp2B(>>lv(Pv7Wm96jvEIXaAL|3G53xSN`WWjItWU8% z!}=WS3#>1(zQXz%>l>_ZvA)Cl9_t6JAF+PI`WfpNtY5Ky!}=ZT53E12{=)hj>mRIt zvHrszfjttt3wspyT-c+r=f)m`4fa^_Pp5hVb71f0QQ2|3t=yey$JTA*o$E=j=co-lGu~6r(jRTo`$^? z_R`qPU@wck9QN|qD`2mPy%P4y*sEZ#ioF{4>ey>wuZg`D_S)F%V6Th49`^d!8(?pU zy%F}t*qdN)ioF^3=Ga?cZ;8DX_SV?jU~h}P9rpIvJ7DjKy%YA%*t=lwioF~5?$~=^ z?}?qm&SMv_yRnPdJ=i7eUhFdVbnHIt3U(E{hF!<*$DV=Rz;0rgZ|r@r_r=~1dw=W$un)vO2>W2{L$D9UJ`DSC>?5#`#6Al9XzXLKkHtO?`*`dV zuusH33HxO1Q?O6PJ`MYH>@%>>#6AoAZ0vKe&&56u`+V#RurI{E2>W8}ORz7+z6|?v z>?^RZ#J&pqYV2#Uuf@I&`+Dpfuy4e^3HxU3Td;4%z76|!>^rdU#J&srZtQ!o@5R0k z`+n>Puph*J2>W5|N3b8oehm9@>?g3F#C{6^HFA#C{9=ZR~fj-^G3p`+e*Wus_892>WB~Pq075{tWwb>@Tpt#QqBVYwT~Z zzs3Fz`+Mvkuz$q<3HxX4U$B40{tf$g>_4#o#QqEWZ|r}t|Hb|fX9UhjoGzSEICJ5Q z#+e&u3=TMBamL|{$C-dL5oZ#Pgd^i9I4X{YqvIGjCXR(;<2X1jj)&vp1UMniJUH{> z%!e~S&H^|K;w*%-FwP=4i{dPXvpCKYI7{M8#+iaM6=xdGQaDTFEQ7Nw&T=@* z4!}7O=OCPeaSp*b6z4FU!*PzlITGh6oTG7$!8sP^IGp2gPQW=4=OmnyaZbTG73VaZ z({awgITPnBoU?Jx!8sS_Je>1!F2K1E=OUboaW28R6z4LW%W94J=OLVjaUQ{W z6z4IV$8ny(c@pO-oTqV~!Fd+vIh^NlUch+~=Ovt%abCfB73Vda*Kyv!c@yU?oVRh_ z!FdFJDl%ve!%$==O>(> zael%173Vjc-*NuH`4i_aoWF7Y!TA^GKimR2^J05oe z?nK;4xDu|6tKh1*8m^9O;F`D=u8r&9y0{*$j~n2Ixbxu7i#s3g{J0C?E{MAj?!vf> z;4X^081CY@OW-bvI~jKh?o`}qxJ%(Kjk^r)vbf9PE|0qc?uxi8;jWCk3ht`7tKqJW zy9Vx>xNG6Ajk^x+y147%u8+F`?uNJ<;ckq(3GSx2o8fMby9Mr+xLe_Fjk^u*wz%8j zZjZYI?vA)S;qHvP3+}GCyW#GRy9e%`xH;TBZUMI&w}{(=Tf*(dE#pqd?Zd6$R&i^% zb=-d38MqDHCTR!&-3NDH-2HI($2|b|K-`0H55_$N_fXu! za1X~l0{2MVqi~PLJqGt!+~aVM$2|e}MBI~bPsTk3_f*`|a8JiQ1NThavvAMGJqPz( z-1BhH$GrgeLfngRFUGwD_fp);a4*Nb0{2SXt8lNzy$1JM-0N_!$GrjfM%H!t3Nc=O{efVUvtLU;?~ErPcw-eP!*<1K-=B;I7a zDR@)yrr|Axw=~`|c+27~hqpZ53V18xt%SES-YR&j;;n|aI^G(1YvQeiw>I87c922c-!J_hqpc64tP7_?S!{8-Y$5% z;_ZgFJKi36d*bEr@^}TjZoDF14_*nc7q5&r9j_0sf>*_>;nnf_@n+yP@S1onyf)qd z-b}n%c(d^a@%F;o8*d-Heew3g+aK=$yaVwL!aEr65WGY24#PVf?+Cmj@s7ef8t)jq zWATo|J09-@yc6+G!aEu76ueXMPQyDL?+m;%@y^0K8}A&vbMel@J0I@?ybJLz!n+vn z61+?CF2lPV?+Uyt@vg$V8t)psYw@nbyB_Zbyc_Xu!n+yo7Q9>WZo|7B?+&~>@$SOA z8}A;xd-3kWyC3fXya(|f!h0C+5xht79>aSa?+Lso@t(qa8t)mrXYroHdmirvych9a z!h0F-6}(sRUc-AG?+v^+@!rCF8}A*wck$lCdmrxuybtj{!uuHS6TDCHKEwMQ?+d&y z@xH?Q8t)stZ}Gmv`yTHHydUv?!uuKT7rbBbe#846?+?5`@&3a58}A>yfARjqAAvs- zzYBj9{#^K@@#n@LgAe{#{Bii>@h9L<#GiyO;mi06zKXBm>-Yw~iErWC_zu2{@8SFS z0e*--5B|LP^Wo2rzX1M%_zU4LjK2u}qWFv9FOI(i{*w5U@u%QV#h-@16#mlq%iu4I zza0MZ_$%PAh`$p4%J{3`uZq7K{_6N^;IE0l7XI4!>)@}8zaIYj_#5DFh`$m3#`v4y zZ;HPe{^s~w;BSe)75>)v+u(1Dza9Se_&eb5h`$s5&iK3F?~1=0{_gmD;O~i_!_VUv z@VoJg_&xX~{9gPr{&f64{0e>*zlLAO@5i5k-@tF;xA5Ee1NbxXXW`GrAH?4ae{cMK z@b|^v4}X9B1Mm;TKM4O|{6p{$#Xk)HaQq|ikHkL;|7iSU@Q=km4*z)k6Yx*OKMDV2 z{8R8x#Xk-Ibo?{$&%{3q|7`qo@Xy6R5C44p3-B+*zX<zcKkc=@5H|g|8D$y@bAUH5C4Ar2k;-n ze+d6!{73K~#eWR{ar`InpTvI(|7rYZ@Snwh4*z-l7w})ie+mC({8#W_#eWU|b^JH* z-^70l|84wt@ZZIM5C47q5AZ+4{|NtM{7>*d#s3WdbNnyxzr_Cv|7-kj@V~|X4*z@n zAMk&~{|WzR{9o{Y#s3Zecl63j<1KfwY7 z3lc0uurR?Q1d9?ZMzA=+5(G;UOeUB@FqL2$!BPZE6D&ipEWvUF%M+|Xup+@q1S=D) zLa-{qY6PnjtU<6Q!CC}s6Rbn9F2Q;P>l181upz-l1RE1_M<6L5?6#P$1|gC=&D#ln8nW$^_F1 z`UolnRe~BpouHp!20??MNzfu_6ATc{B$!1on_!S&FM_=Z_957pU_XNW2@W7Qkl-MK zg9#2HIF#Tpg2M@pAUKlXD1xI2jv+Xf;5dTg2~Hq5k>DhPlL<~CIF;Zug3}4kAUKoY zEP}HM&LKFL;5>r!2`(VGkl-SMiwQ0vxRl^Bg3Af6Ah?p?DuSyCt|7RV;5vfq32q>` zk>DnRn+a|qxRu~Gg4+r1Ah?s@E`qxW?jg9B;68%;2_7JLkl-PLhY21bc$DBVg2xG- zAb67CDT1d7o*{Ua;5mZl30@$0k>DkQmkC}Wc$MHag4YS&Ab6ADErPcR-XVCG;5~x( z2|ghBkl-VNj|n~@_>|x?g3k%Q7#DmQd^J{DKlqy98-i~Mz9aaa;0J;q34S8@ncx?K zUkQFA_?_SnftNH`DSyoB=+&QG`i;evz<5iU%)2;riH zixDnPxCG&ngp&!U5KbkWMz|E=(uB(pE=#x^;qrtl5UxnL65+~(s}QbAxEkT=gliD4 zNw^l_+Jx&6u1mNc;rfId5N=4g5#h#!n-FdqO;WfS;pT)}5N=7h72(!|+YoL`xE&V;)V?n<~D;qHWc5bjBsBg_*P2)hZ3ggt~M!d}8M;dH`2!U|!Putr!X z>?fQ-*dS~Ywg}sV1B5dPXA#aO93>azY18Ssf!x$~t6Z77O|iAg$Pr_=DVJ)wR=ZIgIbwl1 zb5~81m0Ybfb(>bBTq~`zdQ@ZdcAKxe-qs^Wu-=aAY`WdL>#aL-#N4ZvYvtDJBS(x{ zbg}J6j+kqmdUr8ytXwN@-md10jcs%JO2kn&trv2Y?Q@NCoX(hYwR+3VxbZ^0I<-`< zmny}n5vTjpA=Vx!iK8fVo)C2MQkHuZL+P+Y$p3z0jDO^Lfba)h^a zyVfdKiyPGj%FS}r)LOM#y_IW~>$Rx4$^W0`a>E6tZZNa8PQBV6rJ|avOprF0wir30 zD_4jH8pt;jPmM@Qj*t|>yE3$(z@eRG>p-O`jnWa zf{LPW44Q@B1dPrVQby8fQM46LWUkn#N8`>F3gzx%tu?t^8z?qg82nrJe6A(A}t4iy32lt`tdV4izsq3XNP(D@#v^($QiSJCgnN zhR8Ldf1=G&dMBSyPftVX@c z7;>)JtQX3iQ!qZ)ZuQn1qP={sQmNN#(b|aoe52l16!{c#xeSggA7;PaJY1?ou zwNPxd%25|Pn^FqBxoUr`P`%}TF%J>1(HfGk7Rm$VN^W3|E{^S(btxKhPq9(#n4*Z& zY*$*jp-~FXaCaumIZ;uvT`QC;L-HHNnPRxz#b#s!L{4|9AjUf}Qt)UvLsK;=n%G9P z;)U6wYOz)tUf_voYItPPDnxUVE7v;KV^VQOyWHQwm{^<@O-QXYq$b5#k!Ci9Qb|3< z?qXw(3n_G%MXv>)n;%a^qsI zSS&g2+MIGG^+p>Y-!4~%hE$H`zR{tC6Q)O&sg@J{kg{aCIn?P&G1u&nSgDty%yMC9 zCslK$+~Dxc%GGERTg6&O8xgC~S8VlHazm_f)na#9tesRX7oz3wn3_q|$SPMl1}fDe zt((I*$o;uSuF%`=(4&Mk=LER@(VmLdy4aZf|8A~v{pCu%HI(RF$^OWAvbrI$Q{?Nb=ZcP^+sP*v{T*2#XQl&u3V2W^F6}t^az*GBb-E!a6~~zxNk-X@61C>cp~To)N5+gw_i#otH=NPRHHQBs5{f0uvAm zOLAtWIbFG#LI-BXsaf&QpkNIOwTMBvmVu-LgF;aTg`x}&&GBHY4gG0WqJwc(Ef6%*K%&qBVKcIAaZh(TAr6szZygyd6FNJ)1} ziYe(yNhu}0DJiF9dP@3IQb|cQCAE~)Q_`Q387XO`q?wXdO4=zINXg8U%u31Zlnkb1 zT1u8m$+6ily zfTU(Q-N$)h^ z71Cpyn6HZ(by1@(YNQ~af_OV5AgNjx!sG0if&k?d^yJb`kLeK|8Qqh$+EdFq)Kkw|?P+G9wA9iWDD`BZp3OqJn$Li!9&N)E zOs_XG&~B!n5=D{;sOB=sQGk_!vd9vJlLcvHt~CRK)5;{*yR!*SmN5qX{Q@+yto~*} zfNT;1c$i~&GW^>qTWIc>d^y!4PvLXXn2geMExg0aI+?Ta6m`Uu) zH^urj#h{v^!%eY#!av5KD?c;aQZq%l*tq9si!!stbj=o$XU99OC!t+=VgK{O{^y0Y z&kJjx7mgqXU4_`%=JHb#nlGfZnx$)k_GGk@(PlahpuSUlXG;ORA<#DPtK)`$@$s2w0dkWVlXy|zl*7;YT8C>v0~I! z5D{Dk@(JiF2(uM~u0k#Amk8hrB3w&AQci?)1rgFEAYSztjQ!-0t3NsJ_5@Fi`@7t7 zGiEKNrjKj^`?Z)QTf3iVh^8m*{%!mAX7S4r}E%8iVbELmNI zAO+!I3c{Tfgo8o~GZ62~1T;kbC?v~(5Z&$*peexY3=C$4C)N9lja+mHYh{(@iak_3dyP!V z8`2WOn6&Ncw5X@TTEqJOnf_YIx*-f48%XPL|z;b z7h)q9U!Qh$$5BOhU;HCNi*6A}bc;ZuTLc^3V%Nr?t6SLBZedQlg@NrB=CoTF*chZ1 zCSmp0D=CO0gBWxb#kFS)Qne|H>&^u9lxr#Ii+pbaVpo}f*s~=d?nF^sn-;~jX;Ivk z#$Z&G6*pHDrNljF48}Cd<-U|vDd$s=v{DqED<;jAQ;;k7ryyy!m~^t3fUcr&atWvj zkQ8iYmar(iT@1R4akqLRn@O&ci$aH<#L7nAGX`Bf@r?Jx!B>w6e`1hMX^#jBdQv~% zod98(dlDC&W{!`K{fT9dQ{&=GmhR{Xl@!kn)Fa*d+a#|oALgFl9M5$41 zU6ILRsUr6W|${C}s z(v0{=Xl_YF=_L`?mPE)}60vkCS*dtql;U8oG&`GM5#l8vsT#+4y?q%w0kP-=#DWq~ z?#@75BLQ(^F%XeMj5{NTB=6Hx&iMSm8xuS!&YM{nXfD0%;j=v-p99JDe@-7d4=+f$Y&*4pIv*H$eNT@ zo3`Ava+VpzF?V&eH`p^RH!v&9OXHuRye$4n^X@wMvpY`i=x5)w_}+0yW)vF@uy(C2~68=W!@+ONw->=3rRri?Gg#esWmMfdBTL1Y?g$TjH{JIL0Mj6 zB9jIqvzZm^>TRc6BBoiFL`;ydl54>j(M*hCQaMhnZn+BD;`S($CqoRTr2W$ zX+zWNrCf6`&FQPxW)BoAX|q&veYvc5`q3e2s8*brGRHQGeU)6=QWT)gO0(0|N>IB} z&d^|%JGNCHY(`;Xg4?a!ppZXM?k=XSc9n(wk3mi^zgUvG>R%Fit>MS%mK~=qk?;Rc8pPGlYy8qTmeCxf!Cnu|+RuF>N`EY0JWT zCya7;%1DX}1D}A{AI4zf>zBQC^y@dge%Tv`Ch6p;SuN#r%jA~rS!(&5DD=jW9fg$6 zLXEUcS6SR8lttiG7SUB%+$EGn1eSpKJQ9Pha!cfk%@>0Sai9}_daftQ(UAd*>7-l~ z%rv9;tPyEsno&vU*j%kpuL)i)q2%h#R&E#;v)p=Cqfs0j6yh5Rm2=HPy;7dsAB8-% zG)qcZ9h}j*{)9#*qgBp0t%Q!x4J4o6M7eZKWAeF1RxY3R#*8?XVyl%)2hwWfYH0ym zWK2$TCJ$$g%SWQyLUcYI^@Mz}mVDwD?3yUsh<3kVrc*aIUydYXGn5xX>y>&*Ok2J_ z#2n0JEs?Je7HgS+T&0;!?ZjNARiB*ej+Q7}t|;A+Y_^Ntt#bTvI+Z+_NsjhPL9AT9 znNC_hiVnNWO)*93N{lbWpCpGSu8`J|3%U54codt)laytpZA>iWs{QqRV#ZT`K5a9y zrST`~j9C=SSd3t%t2ZHG4(1v{K-%fCQJ`HE3mtEq)PacEEo75cs5gsI<&4?Pn2lm} zNGl5s!K}CHwM-fNQYM9Vttcd>Q#__v6E(91pr_c#njIIx$Zur%J=v%tix%}EO^olU z)YBIQX_0gQV|(hQk{EYSsu)t_Ga{WY6r%y8Ig=7j2V-FuoLtik2}ObSayhay4?XqG-9AF{2e6TCH+6x0T$C zb~)4Mu^o7HZbsVIN^WwqzbM)rU&(c(MmN(vJhqZ+mBk<{sUA=%7R0nwio>j|rh?VXi$f_0_?IG3gF9~L|Fx1)pbb92785x1e?M7ahaw%nX za7OoM!{{$Zt2wms`_si7(_d~1PG)H%POCoDd}eW?z%ZKXq3zV4neYB6TpJcSm<_3s z6Pu+!^I(l!sV&-RWFu-sK4{2rWFu1>#c0>pBR#6*@?v)>DRU0q=tkOqIjc~Nv?I%s zQdS3NbR*jwjbZzk+3T^5av-0(Ua%LDtXNoee8LzdN?rfM5 zGtz$H6`GmiH**6+R<@ZgH_h^p4ri`qe6!rh6^16PnOU4>J$ALCnXK(rq!dG5HQT9U zN*R;~vpxs>-3e`@x&Ddx|M#enlWxH!!q$We=aBP$)3!68PIgo*3BR}jU z2l7MQLLB5|+=8gz7+QgWES4H5=j)RPqD72Glj%^*nu9ZXAR9^iZf8j42g-sOO>Y*J zj2=k$OxN`65#@AoLo{7n3{4l0D5r~4L=3v7i*S3oxZ|EKuD_>?`||`ORmJuBba7W6 zgY=vlqq(NnlW$_v`_s@nrQIowd)1#_D<`y+r6cE-(CGA@&}exQT2J|1ed5}xPh4B| ziB~=ehZ@iq znSJ6wm4Nt4GY0YTwNKneCm`uZ@?{{}i+$n_I|k_)J3&cI)>j?A5{>cDWn!EdzD$f$ zlZG!7Ge+kfVj?m*k;ka3PaNR-!~w2PoX+~hp)3Ynec55DFFPzHG;T4w_)lnWmhLMh zG#y_f^|1+!maZ@RLXgn@EZxXxGi`u;I}Vj&IKI%^u9fobzK&F+PHD03T(Q(n;J64* zFV@pK<4U<&Y35L3W|W$q7MoC-9TgfDmnKW)&P*YFT)9^06(Yw>FJ>af#mxu-Nn)rw z&0@Ws4w!aD44|uTwwO@y$+u5j112Duba5XTgRVaDNup1Dfanw7Ci=v;i9Ye3r%!yy zh(T8+mmLl(;_*%lQmw6sXFL`0j3)t+XHP*aq#_>w#9*#MM}~N$QxT7JD&lEQMLf-k zL03h53aN+>ATfwlrXoIaRK!P)iulM8gRV-vnJVJuGXb$psfe4;1SDe<_oWqa7g`Y) zr)l9xAJgjfLJHy!aS4d8L1GZ^s#?k_HTn~fUGu~+3O@@&@A)d?zPBRo2P)z^pdu~^ zV$fA-X5$nm^%!(jTB25Lek<`cO=Uoc9uT4jM4#nHQ=G=TjB#s4Bi?RI_(oRpE^iP>$Sm4AT3- z7!bghu8)DG>kFpdEXl=)~1stj?Yy7;1b!RcKe@zts#e$3+fmC=vh5q14XBYd0h$ z3bk`l5G)uIBSy1tI6Wa3|C44YDG&ekVOVH2a)j{UZ0Wc1Oz*GYS(6|FaMsE>xTRbrI-Cr5V|?;1L!|UL6*ZZ>UGE%yGdiMoc1@2@ zGsyvcjus}yyy(<2Jo1i5_`?HewxXcB-l3F}lAHZjr-H?wZ#(Nm=|(O-!3~e5-KtmX zt@1#pmJR$*W8-tP%EJShl+ShNrq>5M8KvIt+_27!&*yq;ovF&ObU8}3%GG*f4pw}s zsCOu_l+QJb@gH}FcSp>bBiZU5?$gA4t{t7lIz$$8?OAg!OTJjFbjN>dsI<%79W6!Y znc_gZ*fE@9qZG;OEYj#JR*JJbnk&ZteCiltXX6v{@qfxX3YRPST)m@kxno?D^5tmr zb!deWFQ>T@z$Fru^ z4q@$P=ekQ7quD8?Ju6ZQ(Z_C~de zwcZYophvuB)cagtv?)6*PGo!wxl+Aj;(DWrZ*(Y@EI7lxGKX0Iql8-gsHNWD$Q3#} z9Z9H1s*`IKJ0_$zR=RSo){NJ+qwCR`r(BEeX~&o&9q#nHg>s|NvG!W>_q=j*PK%du z2j}EU33q0$!)e6-R_$ES356*3{y*B@I?i?Diu=ApdzbfKolu#%4kt~@j47s+vb@&X zUV|LT_Fiw9nVFlmNtx-EVav=-nVFf}_xuK=@lBui^ZfH%(3v?NNu#0f8PKRk<;rFr z)ykvUSB_I|g|@Po>l~^Tr)u7B#Wy*~ihi~^7nMt}F6YwN-{Hoj%M71Oh-2_;k+$*? z(k*VvE>a1-CQ6Z`@V4w^*gXP#N6)FF`selIxc=mW(IhTu#{^9WjYWh`T-9E5?-hG* zi;C_g?D`A;TUIuvr>7@JXvWKr*J0pp@g@i(wA)Jczt#L zp|8lwBJ1X5BWrN)D*Hdg_8Km>|1&5@zTMe8`OLW_FQ(ae9M@cK(IXBOtBxAuBW#QV>>qNgn)jlcg*WhOjWt~7%B9yFX%Zc2;;wGaViT3UgQ6~6D=ls$ z>$tIx4cz*+Ew+9D@w&Cd3tUwkV0$6;r`a5~H_-6eH}$HFV$FbaFE1i+taC$xHzw=2 zwX#tjf#nDTki)b6)E!6n=??QUokRwBt6Og3mC{*sQLc$`+}Hv`I~3h!Qp64C!3-6C z3s!f1UFd8}5UDO=XC{>@%BYR3JsY9ji_Ywp*>KL@TFd(Ltzy>a!p{wEWOW?O7+ra{ z6+ax|#b0i|Ms`(Vl~8Ok_2Uk~L5x)o=I!t#8&0|DcJJN>OU)vqmA zPj1ykRJ)+y&QfIQu5NYNsH~r7tJ`KfG>gyaq6v;|?iIUUr@jmGDQ>JbyrP^7GM5D# zTkytFTgQBFH?j>@*;t7PL+l+7y4;cAE@c!s*6#5C+E_cdg*T>;=xd<+x0!aMs%urf ztx4R`f@-(RJ=$SxVr&%|qqv>){ZbRIKVjDi42$nZSE6H*=VTSjij9oF4Fm2Zy(X|graCinY!NYqU1(hf_B{a zt-=?3`Ru4gYs1X^Mj>5qX_BGhrN+WEnW07#2itBjyy^Qkm zVx6?WrV(rzvMqW<$Fsu?Z8vJcI~n)Y>auZkC+l(-mUCj#iETU%H{a5;pL?~v`bx)i zxV@RRTO}8`<|Ho3os2sNX_OWl)*6^KrU}@)z$T2wf91N z(Mcxi6R*`9RkKH^$0E#~0E{%#L@>C`9m;wpQvmuF4bmD8w0 zz`B0yoeU%JA7#B|IvDgPQFrxdtDanB*lM+(HuL)KYw$*~S?{OYc|U644`Tc$$i2D{%i^z)IC>m}* zhAJhT|H!IGb}HjY?Hc!eTJfMA{ z4zIQJ=c00iMYM+1Pf>2K4Dx8~U=;%}kr~6@K|YDCC)VJF87>5Kp~l_OCR$BDSgjyO+- zM|Mb#4H_&ygmrw;UoJxUqld1ScjR2g(RQ1%i&pka%CWH0= z&vJZm{4^(%s#HfPi$f zgc1u2()G>!zjM6j%s%sbo|$)M-uK)+uxzufQ3B=4!`?PiOA+I+vgaFz|DlrlQZxF- z?(qvKcD1j0eZlP;6+S`#N4BC~_x%xrU!k%Ct?9Y%4=?6{ih^a0(O8eA)A2O^w43wq zxmdqj^ir1yv-b7JR3l3ms1;(1*Qtl4OTD!IPXBi*FnVn?MQ>c;y4JXO{@VeT&ZIz; z0qq9|wrdLIYy+snWl>rJxrSrr3p*D5-Hyq3g4XoAvFl!%Gs*Y(S8D^VM>&O0v8OZ9 z8f}gmB*;mu#di5TF1dp4-h3gQnboNvTYANC7fqTMO+miDrCIYA}kkUkh-;&6IZITb}Vl$*6#MEAYBs;uw%&*zd3`(Lh>^qfEc zY#T%FArWn+^-kvJ^WP?K_^@uS57RA-3?sE|c%7$BSBGYMD&^31gF@@CuQo++x8zzm zvlh{d6^`CCqBGo29=Chj_xV4(!u}~t`>ey{Vj3;=vP-cKau%RUfa6;_R)=D+^56W-~PI%`h5ONzDQCZ zCy91ixU%m_*}O62ZZ*++FZ#15xt$`q;~bsO*7Yw!c^>>C^9@g)S`p)m_A{}6N1vY! zUHA~ajmvzXRmNvEH?Qd!Xfb=?zSJNiqSj86K9t}Q*z?xQrSZJLO9y>z;8wlQ;J`{} zw{%8f1o=aI*N+Jep&SXZX8%fi8@{?q>b4r2ZkmgHNeCH9l(??E7cr|WxJ{+|)N&jv zp>kQ8IHqolSE!^ZD|g0b_dm+p+8ZDZTf8-+uq7m4^FOo~xh%mFsYtN6;Fc zQ|!mTYp3xmVx#G9mQOSM8x%k5Sayut{$4AsN@wu;GV8SLs}R>2e6&A(`^8S6MMu{) ziq!rAW{>6{zSFU6NfmTOue+oY4ZDj+>=Z=@K1E%Xj_P$lB4wf-Pt0nP`o@Y)1*N~3 zbmA5hmvPVjMPQtFyK%FaUpogDy>kjrTu1`tug;ltO?(1>)C%2zsirPg#y)khz&BYr zHX=ne2(fiM!*w2ZcZfIzP9OuuP;?bLf*2Hk4}JZZQU8dr&`B)j;gVMpHqX|zrwg~W z5o7QOjfgkTynWOlR-)dK@Y+58L2S&KcxI`2XV0O$s$W8ff>VCm=kn=~4|xxMAXFFkS*S(j^WX% z^D0=JET2j@*Sy(bRf&7PTyE|jcLRH??3rR@S8TymvsQQaNyE+U0L3F&yIn=L{dg1a zLhM&B{eM&>Okwv9T;(!(zj09fqnN^=#&ffd|KqqxpO>(*k{ws#=%n3uQQT;&|Mt4d z$MM$Ov+ER9cwT!pIa6+Xbz%({tL2j6Y?Ui7acn*+di63Ec9Rx{E6qR8IS`>%{y?Nu-puZLD}5?a|;rlFrT1-uj#f2|yJ zxVv?HdZK)hc`SW-LheT2)%8bI#orjFQ0&wxmI*4C^Xx7S7mEbajP_Br)|#HATP`~r zJ>pfoEckrkktfo9Vfy%Iai$N=`)RYT?m06mpVQV(G!1oA+!&Yh(B<&B0fUJD|JPyg zVi)b+Tg<@B?&*HrV*BphI!d>+ej8EL^^7QCcM_ZLTUW6!N&XLXirt z6lb}MHjgZoDWW46ensG4eI(2trb}g-b7&em!}dciwXk38uiqtPLcTgx+xz0S;w$;y zALraS#=riMFP3Jfs*-!>J%OAm=*_0CWAs|dP#D=#CgmsVzM0R(8P?I!R($TuY^D9Z zQYu`Xs^lv&V!7I!qwyO1aHUtiOJ6mIU{uqhJdM+YU>8OPj`$ME&#UJ6Z8 zM>zk%Mk{S({1fZx4a7=@Qkx#rWGmQaXSALQqRKnZ_icmDzQ?WnMptw@tk}Au(LH}L z)Hy*!vS$w-aRxnZBxt+@C!<1OLq;oBIvQ zqm6Cfec`DS9ty)s3h}Z(Cga^37!rEcxRLJ_{#5p-JulznMrc~c?81WkmU}@d*K@|U zPexKC_J?dj6~*C!1H9(ZhUA=V9~hA@{A19O(XDqzpQT^5@bD94Gs)D@8?XCk73{TD z+{DRr$j%XcUF4QuinY|qU7{^rg(h9kc0PcCi9YG9_5P+u#{ zO561ci@iT_a#`l-}YS1SV#`6;j8v(BBz2ad{G?JAhoQ!KJjbIq2Hn;bMfrL0o|(mml6Btb15=#v*hp7 zhL}dfoaOSF+^8(vp8xA~k^_rMZ7G9Evey$4g}LOHas#Bd&`pE5qlzBGW^}}hq5Vyr zpbZJnt@?A{Ek!1O|HbMSKI}7D!R5fGPE!@rPVCbANrKA;!_}ktj^p1xc~53h9b1lx zZ=eww`_dZ@Z%-U9C&%U8o&Bq}j1l-v_mb%~_eQ^ca$2tVSX_aKRSJYkr4TinAM7uCaDEi-+7VWD!Y|F>^RRtJD1NnzZ-XVV)VPIAX|eIcq{iU>uZ4BiA%6Qj-<(iGCc9I?Adpu6V(s>?*dNwf0PWz5m1bqc!$B-Qr_6Dm(qp zCFy@gRZff}iQg~eYKPC12OE*g%(iVtXelAm zC>x{fsv-F(UGwSEgVVk$K4;>+ot|M~f6gg$Q>Q6nv+;jjK?8Txw^wC%IiM1T>q9@4#nA)8}x4kke(P+;%4BoNhv(W=B1&`C6_X56@ ztjLQ|Zip^k?VVs4N>$P@HR8m6c=K>FPNU^~O#{nTV&^kzM0sL(L=xnYCyq63K;E)w zt*j;=AODf}>L{Pe*H@a!{k^pO>rHcJ0_1?aU}>qqzeoJ>N94_?eT(GfrMW_)6~niR z3&x5=3C$DeoLUvUMBTWqt9) zV3*g2(2aI7EL+^+{>hVr@$3_Umk+#)oJvBT{JBPxtnHIx^Z;eiHCg9t$lT|UK%GnH zhl`a6x@5s3x`Rn}dHFO`qtafI=|7Lctu)RJ-w^pHenX^T-d`16u~A+s!alXO)<-7t zQ@%lpzx(>7XYWN3tn?|qtIQZg?0p-bD{8L!g$wc8*sjP)@>hS(Fh)s zLHUK-mrs)a-4q(aF|G>~KQzx|XX^iQ_ZlAqC({InUSWTEaF?Tf*hI{c54 z=X?FL#9m~*-3E81CUf3=T_mZwN*R`awJ5ss!9#Upc9*)ukq~#voZEq(tFro1+M%MV z)$jg2DxLXdfLXdJ^2=p(pme(9jYV;7fqlPmMcU+=71m(=r{zTdw>HTa4^pO|CzDsA z4>p52nBJB(>`dgjnm3*0hf}`ZTUqwO3VuECR=i2|uX?48=(|y&CZqA-pN+454+f@v zWLCURvV$@@d`7+rON1R~Bif6zi)KUz7j|vaQIlMcnB50VneX0i_{mvG^~WxCukzMp z5^A!Qjbdi>7n_)KYn*1whhy5vY^$Ixg00GXfA-Ro$j0)NTsNH5ZD(GJjj)+nxXw*| zK)9NFaL!f9{Yejcm*LZl60N^(VY;8pSFZIoq26e8m~{PZa$Cvbb)-#E>)qle1(TRH zfpuaeVGYgK2XkWbcR#Xqr#0*buRWJpy2P8u%AfhJwx=Q2EdNg41y&|pl_tn-4jjplDx{v#{pANpS-=_%h_xL!|CvW?Yap+g*{P1+@ z?9FzXPLpLMMW(#|msOT}@wfimdCodoR{pD>wi4WLP<4okEBoVKee{=P8gyl@aLSqa zljvm8Z`)KAbE?#Td7mrY6hBDtOp^7jMOd6LKSIbb{Zlyj;3qY8RBd?G^gy){&NjoT z;Dvl&kH~CqS;B_>%yW8{+0TLbXU-lbOn;3mtky76cjojr?X^;q^HXI6<9yW99Bv93 zDoiZ6Ca_^QZ*p#RT9OA%xjwI%CzId_5PIXz7#Wvu$#O5|#@^u7QH;a(x5g?$B=fPC zPJ2|T7+J*nYG6J==ab|s=)wQi!B2&*C}L5*f(i~nO>1{boS5aM&vfiQmUtC9^_Azm(xzCkC8`1WSe<*J9oA8dZ&dt0(rrGK?2(D|q zJ-VfL2Z6~)c&4DeYI@J*ktsFx#@DTE24;^MQmY9!mhMZw{M07iJt4V26P|pl5gE9= zyQ{V>Q<*nEW31%Y%!$$`o~g)vNU`(snPY;|Y}6C`CZn0`e65px>Q;*xy1LxJQM}>n zXWvy`$JF+$ezrR^!c-|YM~KL{f=|Bw6>mOO&zGA-GrkyU9+(=9epTjb8Rn2gudhHVYI2mLDdo%&X7zPh}XN&mEWN3N*n`t}-4 zo&LyKlFe^bbL8`t@vaeBo|EI7P78I?Gx1}o%?g~$A1Qdd9n+ZoZt%_WA)avOH>IJs z$YWIaM#bmCL=D57$4>^)4Ex2jD*@7ikJ`>PX*)k{)&xqun)zP8Mn_qP@i6XU{&&YI z$$vzka{ImAW?!Bsv0DJ|{=fTfrUmBRw-ctfqvStJ?=~8NX^7J4^$&N7lX$!-G{8fVAQq52{$%{K+0$ajfDr*g zf5W`s7FtH$C5jFABDT!@r|FB(E8n-w9_q`t8gnv@N@KYZ~YFs#tsNcDVV^CE~}qqTZMY=D}qn!>*Sr&YF4OT{`#J&B>%X8JP=D|+uA!-0>DBvUHF-*EX{RbBOY%B#Df*BnTfyhF z&rBBRV_H7BZz=K|i5~~-I`r!VF8(qM7qPwkJuPg$xME;5qxCp%R?)h8``^;&uDg5P zdTEh(-@fg`sjT20Bc^SFQKRINqkI!P<}Ptxi#G6VE&>{o{6rCUI3_fUSjwlShODYAWj|; z=eQlM6{|jX?IepZm}yt#tO(cKTRnGvK|)}8**U7D!#FLk!I(){8@KL)Dqojk*bkRW zOZG9+VCG#2zpiN~L2Xp5$6p{I$M4-0$W5Us`hL72$I~^uLT-a1!Bn8mJ12W%ze+v% zdfnb-s|j6x?wsjTt{{YpSRa0^O*I<*1tf#l(_= zKf@$NI>$k;^(ST4R&O7j!h~uZnW|ge*!8o!G#6>%I>ijmf)A!{r0)IKplobBI4=JX z9TOmSt<@S?u$T{c(dPJ#S@Np4{gO&+eJ|S_`34ViuvViG6e9 zY69WT+zcaS6uZ}-M!6JQ{5;H`_YlJfK6AbjTHZJ1jWJtk=qYQ;|B_*1xi}(Tr8Ftv z)MlQH?HbHa9*IWWQCM9JV$B)+*eq@(oNIQ^H>~?bkbaY-(CMGCHyWl3j3H7zcoCi% z2Z}_aC5Nf$uN*AzcXc!d3>}O6+6>7_klDUo!gnfxWGU zj!{3NXo~v&ZRsP;$mQ6Q&I$A6LXXc?RimpB-mR+}C?nC$Fy;X)Ws3rC5I$rGDgpMrfw7_bQ`h z=W)N3kkB;dD#dO-jFpZN%6=t+pH81LyxT)dwfVfFL>4A;qo^&E_EN#HGE!u zyUuE+*@k*-ww<^tN^`->9ZfqPl{3cJRYq2ZnJ8WxjkCvnt~N%>R|-E6d=d7EWkALl zb;nMr*q?PJd0_?X{?06ao{WZsw(F=kliZZUOZTq-jJm9b5yco^fa{6VwW*WA@;dvp zhx!vkPc4ksy}vp1uFlhC;2d8Z=8gPuN_ViA$V-WIMIA;yvZZ&Jep5d7`2FF#;rb&* zegD1BWGCX8f{R8=#^VeX1sQh=1PnBslntgCs67_RnKpg??0&rUyeeeS@7LaqsZFuY zxPV53vI0+L1AVP!+1ot3Mm7wE1kp<~>V})oRhO&OOY+OoI-jLtQYQoNarKvT3Wg~N zy?zvoX6bxCU#NL~{=?QwS6`!<5v$N=X_dRh5v;QfyHlThYDFa9ZL)+37!0&I{4CBr z6n#k8vT<30@4*Z3MlCFz%kcNv@J-D~A<~%Ef8912f2VI!U2-vr`zfaP<@MhiC#c_NQg_r&ZRB{a8g;bC4M*6l~4g`;A$4cjmAAvs{`c^5Oh&@PmGL zsRQ@N#i&Pj>dHx~Pyb90{(&v#=S`Ls5qj!!_J2%K-d+8c{O1}}+Vo>D*h)~i*q=Jm<`|6aecIU>}i*f=Jy~%H+rjkY@sH<^S>;G zbB1nxf7{w6rion_RMwmPi6+b%bGJG5Ub>E2e)2B#k%?Jvbk2~P{YS> zTlsHlF03<;mLwnF?EZT1aHr=wimy#UKwnfgtVN70c1YfWvyE5lP*!tt`CU7c5dbLqs75?-UR3r4JCQubD(lYNnV53=^V!eB$mr7_n1%AKuOQ^VT}PuH6@ z3#Ib|TE;rF+Y|9F1cxr02qQ}_g`Wic)USyS!~Jc2_T%fHWBX83@x2sl4#RN~=7E>z zzlYNg6Ek&(pKKr+Mkh|&c=;5%#;~`RTurdaq$&=}W#+Q(yCq3uuY1QWe`D``MPw&W zG3d+Ih8p(jda3_Bw6rvt{gx>)L>&+e$!j)WGaN{sA)!N4W^ynic1b=$0Km1N6~l zXY7uKxiXFaorBAH1?OMUQ!LJGtNC;7e=-E?1DHN#`>42`gj=|JwM=oW%wm*f*OWAB z(VNxQjCCVd@||-O{Adj(9^1;Yb^a)?w#<1%eR5hO%h&LtN?~5Daq9W<*(d*(`7SKk z=l2#^41MyfduDWo{fuAUu)h;A{zQ~5^zuQe$30%1qO7Xw%XKfX%lgyKD~4vvpV2bW zGx?iE3Dg0`p4xiL*oPWTGAt*(TU$BTm_o7xN88u8_m$7`V;W+E?PX>}W<&+gu&)Zd zv+hQpq2_hl>7ul{2hYF$b?fW5>JGm(S%fX_({;|jZfmkXQ5pZqwQ+wFH&p!bS>k%x$Ki!7o%V$4%v@jDQZX={`B z-XM|AFp0^v5b@%kp*Uz6(2zg4`)mAz1e0%R(!Rgt#jrt@QS!LdzK2a=TB-Lw_3jVp zeV(0`8eGX7Q9i2d?zPe4NCS(w&dq5i4b)SK-8kh;7oYm~Q^WBW>|gjCpLQuJGPS>6 zT_CILow-ZEFu-^P*u+DZy68IcuAsHXe54|@QWT@R!5p^XT=lFiYTLBe9vQp2Wf?uW zWqefeTX5(u(Ffx?^`Miph-}?=mQ*+ID9J2eN7a&3IlsI~W{qVHb@Pj9)nZ0_4DwfUtT*#&1yWNBCa5d8I*|+F zE-PT2-p5Dl^X;|E+tKQ|%T8y~Yup@Pi1&TW#C0$jLMWY@%r1A*_AA_d;)&6Ccq^}b zWmd6B-P!Gg=;GlwlvQPAwj8C~Su8?oQ4HMZP0@@b4Q;o)c}JofFo3g))LPZObz8CCUJojJRf}KO5}UJ} zEBDUaP`6F_EIWPi0a+ZnhM+czM-o;u5RF43{BTO==@~z)FYMyk?)KgBKBevA!9BcDC9wwcceH@Dm2z=sS z6PZ`1i+NY)YS1L#X|kIe+<0@}D9FPiyLpY-ni!E%M#J-U(07qsr0!dbR3BMT(gcyH z{Nw{ZVdMydk6zSWYm;sK&d#sPp2&b6%Pdz>w5Oksig`!#nE%19WR=oQwgQL#O?5V} zdg<@q#)EU0ixii`Y*ROVrZ;m!4JZHR7pj-Nb8`AmUBbXC5z3$2sCzx}9xjt^BJ zvu#!HCi>OOO`>(YER6fw)#Rr4LhUQf-$W_7EF0O@n)5bY>uHY*uKpZn`$cWp>M-&#FJ3bX?kQ{23|CgvzsB zJ};nJ<+C6+e~Zrs{#-gac=K7UI?hX$#Zr>l?!uD1-xjX*@u?@pwL4t_BVNRqWLfQwrATbBLwQ;alW@!2he@g32>9xk}oRxyaUUeaeN_wS4IsLcR18ei6eU)9IZ%(-pBXNFRfX#Fe+(oNngV|OZDJ8hV!1;+n`zr(l$?N@F|nG%bXZQ43; z`0||SPF)0Rl~GAP9(}D9(&k;B-!t1MUwcmF%gNR)jW!OY^^{#=CU#`M(>JcnOV%s< zj&{8{g{#1pe1K6tWpr@)n6xW!y!QI*BK|43yg}M~$yo>l8Tq|LCks{_nwmc}dNiI;uFH`In0a z5gA0E4G9Jp<~hxbKTe6~HB4*ZRtrqslsQha`koEwA{(;%J}Y$JFWNnDteK;#3}dn1 zyNnQigCm>~PnWCAStN)>Emh|0Id2u(s0@!%+NWA|p?^HH8QdLw5_h6^MUkzcpKHBr z*?7NJJMM3h~M!iL;Se1mne(2R1+ zd*BE0naSBHE=8-K?RlA$wB=fUX*rE6&B|Af|16~vQVO*hm-Bi$RrM?8^e3YuD!a5#&yi_?!jhX#>UBZ2-le( zVNlcSCTw$-$~KPeaGe6B7_OYD9(4XIOJ&2iW^=i@_j`&mXAO1A$-kZe`508a=B)MM z;k)y|?54T#E;m&7kI1;O-{Dy#O--`~@#hB|h%62!gxmyW!CSW^u4Q@+dsd+XhnwR$ zEswKE%xC3)tr&!mQio@Jrq{2-M#W?0-TxWLPsnW$*DVAW6X)O$4mVFaJl>RK_8D$o z`}+$+LiNr$PgO#>pxW8;Jq=#F*=| zjz7Qum5+YE(Pk2~z-{eIB*U>^@iyuHR}$-e7pBHYCzTfp;Nulv^?&xoYVv9h$;C3` zEpehYlX*!byRIq!>^u=Y8yeAV+87eGo~d5$EO-=B*G)e#e!J?wNG(@_&*{ZU(l+9i z?k~gGduhh8Cw0UR9LaA@ZdZD|77_Usnq92a{EJulqxb3l<$lgivIUDfVtMl;r~bp= znaZe)8O>Hlzsh*vzhC(2FVZcb$a~3a_G}Y7+K&E}NzvfRV7*ej)EfAC|(Zu<*^kVz&Bd z2T`|Ut@UMY9pjft_&z%S?ydI)d*O?+Ox97?mX&X+w>7Z27QZp4w%lf@?mc93zV_5j zp?y9jVA6&uD+jlx__RYjM<~oGI7cCWh-+2wc%Ii-bb`jN$DT@H;Q1T0&8DSp{Wr{R zdArsyikWBZmr@^@zfWHMQ$l8hiC0d3?5?bB$%fba@W&XB>%zL2`l!tw1J;fJ;=(n2 zlL9w7y2+Q}%yIiRyH>NL_C1`(-{-& ze+7nP^!M$G)PJY4m)SjoX&zVvJfr>(Q73D|#56HuIwMOyLOn;|#^hTdv2H7e@=wh4 zRLorpM43#~#yU*Z9NWbHl@e0zKvr$HEplPX3X*mM%GPHpnTWasWb8xgheR1BnDacH zQ+0;rMlanQi7iS(xjcMo-Zf@4c9M5ohduS?^}%0D+c@?1_BpRLaC>-umzl~qt(GR= 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

    _1#?6p-G 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 z

    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 z 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

    %_8ODwD{ z6ohBZ0XCy`Wo9d7sWj6@`oi+40#v)ZbC(qr^-}UHGmV&|sV&5?cez+8%UzdSf-H@_ zer&Am*hNI2JaN4|epKqt5#r&PLD}0%dD8R=^71rXsz<4p9XMJ(U{>?O#k>w7>A={i8Ks2zL=BYy5fd~eagjKGSD*qEc+8f>1U8xJgf z=f?q*sqK#}U_Utd93Kw2Z594H5G6|8OptN;Zcp%HJl{@+1La848P@&ZA0MRV)u?Al*@ri&#Q0X=XKL&K8fs2!8 z4*|tOEgycbqoHl`@qqrjr$ft)2`0k9kpCDlXf%!Ns)SSR`yMZwX zGF+Q~;7WD(%+Xcx8CfR6@fh|~lbEPk*>Sr-AEeS?#yw?t+ue@X8lh=h)DD6z=DCyA+uMbK5HlYk*z&JWcAe`TIyUWk9L)&2@n0%^N)PF1c zAK%J8@Bc_hQM9pfBw_ex>6@XX@s9^%pMi~*6u%|G6ogCEYYKW5Mf%a?`KL)yBce&4 z8>tQ2s?V9*KotJ?R(*nO4M2w^3L|+j--uyOSz=50^f${K)|yPdOuATqJiM*B{BYye zPi7uS)JDxUckt?4X5gM{I91%b7S~>C>bDqcgx#o6i=2j)JFUy~Bn^;0VxbQVV4Sh) zD>;>0WNoHk3BZ8*3TYu(bQ`#(rqF~%40IhEDP}ZIh7eT{iib#Lv9{)A(Yze4J+O3# z$&qeE5`)Qrxu`XEJ7E|VnvzWrIz^Fw$&cN-cPwZEqnEA+LFFDl z>C=3|Jrj0b-2cJwO2!!E&k4Ol-gIP*Qz_?Zb za*!c7-miU}-gPZ{0lfP9csxKwKmy#~%BE(`6A;l<^>se&C!z0s6c3OkC7$gHvM}Il)IQmQXO+ zt*@|;nX5=0X0?Y;ta* zQV9erop*&2;H{%u(lO(yC)P+0%Xz?-#$e)*%G}^M*X%%QO~Yc{N3!d9xL=cEdusEE%F~e zTK{h$=pXU$&uA!6)&KxhP(B+qfky;DQI$+9XjT#WeI6nOQOiVu6sV!hF9_3neWQ`( z;9N^8I+hnV=Nru}-ew;Mf*u7-C}E5W_W&6uQO6o4@2Cx1ye4s=esdD((vwCyoevcc z6%CIsXIooeKc>U+K^uiDYObS=Un|j@6 zA+KaP#c0NE1RyM@>};aAwv1r0cu^osp)CB@scZ>cNRdjds~G5c=dIH0ik75PBaPnV z)01@YYLI+Gsl|Q8GtXOTfRmNmGsYY>Tu#71DeH#78V`y@wCdo)z$BZ^$Ah^fd=GH# zJzUor40iCwoWpzY`pgj7+ozu=BXK4gJ)G6mLyA*w@P=6PWXUp65k7zixF(uU>Y-3T z&pcSZPc8o6Vl;9`T9W5!!Z0wH zvL2K~3q9Y!kYlxb+17Ed$3!tT+<>};6A~0Jka)5pV1ypC|CP(JX zSELFN<_?bNg7n%uA=eRkYz9RDck1!17^SsAz&xICuY+`tsjJ0{4Davu7%Cp#v%VJ0*%m}SG$i*uhaQb54F*vcDEzm{7 zhg6&>eh#vOW9nX{tk{RK>m9G3j;kt163)(J17jRFd|1FF?lCGENVDFRgsAPOD;9o+lrf!r}HSuWW+@g|-|F+Xd zh84);%bQSTs6n5cjKH33Vs7-uDtbNkxEc}nVYIa`Jc{&gTr;PnlQ@jrS(=q`oTEB6X;R(b=)5 z?-tW?gm?F;)GUjF#x%xty?V`{wu!7J&=2hv*%|Q=m=Hh}v9x;uytw1)vbkh&^vuCE^GV~KP86uh!!!>TsJ>0L3{|>iWM=?pWm2_Xrv#Qr&Q|s1CbzW+=6dKx4DG>sL4Z!h0yx{i5EfLo?ot=z*P0md=7p*AR zJ+(Gn!P;|Z;hkNckXI~hR+N37J|vjr6Jkt=iG7|8q{0RY7r-vPwGWzcq86|Rn928J{I z;Q?kFL91g@ZfzT1lnC50&_cA?G)W*3G3BhN*jA>{(%h=ha(qs%*;RW@C}}~;zz`C4 ze}DB5=gOwVmm31J7_)S@r_i>262a#wbjiH zED2=*nUc=JWcw_RnFX8co)f!6@R)RnRkro^7n23>l}?i{X*5n`u{Lx&GhqM-Mfd3(~0&gIV^ z|2~FsK%cc+{@o$Rf%uPi6>-6U5_Q93bwIgN zxj2G)@xn5~>Q8@~(`FJbL%q7R73y%lLGTZ{cj(tr_`s4$cCUs%LOLI8d6Mcaxjrjzqec^G zqFhMV>#QUza)?v=bm(Z_b!Lq1y=eIP8s=TCb^9!)|PX2K}Tzjm`whH+& zN1|%<@e!w5ecFhZyLnpFlZF&_QSHd9?-`A1 z>=vI#BdJ_b=P1%TtuEOY3vobY(JhxK@#bBqb<~h9Y%UrvRFn0qL<#>eK)89?t?#Ze zUij4&;_IpMh2eV-l;}L;^_a}AKI)+qaqw;bK>@*W=vVKCNE9q*f})x#hByMapF)h_ zRo^rMd`A|j0uZ#SsW3>&1F;Full?aG<=n*{<_CzwpSHElJ-C|lpj0X+9Z*k3t3}tr zj5|fXz@!~R2wDd2Q_yJfOmNN!hOV(lQTK$8-vYv~rhB7g^*$ubesb7+MUKHoUJts9 z$~D+FfO%2HjSoxM>|E@g8)%|GLjp9Zp}2cy^_iIvz5GlmUw=c7+3)2YO||;l1OT9$ zye|>bO-e21zl7F}S0%KK@OSpAr!U}6tTMym4IqBacI54E%Z%Fj?`e_PMJcY6DTat= z&8i>P4PdZVQJ#q{@U38eFkFfazn7L9@Z_B~N53>h?ox+kN2Wz(emw|EX3Q`a8FKO) z#}NW3^cwq^$JUL0*)Wbjau|L3+3Ea0q`gy{rD2vWni(0kjSSniZQHi34BNI>*vPPL z+qTUe)!ln{b)BoObFtPh_@433IfrgrnNQr&cVRw%{m%hamv`L|{G0Wrhy3wF@PEIs z2{;(*TmHi~Y5d=EtRiLWe}I7xjV**eJ`=TG9)*&npuoyvlYcuhq%|{hI~h7;r%kVn z+VZ)H3#-|i{19GVmw+h|j`Lv5$99Z^*X70mwNlo!e)H31%Xge!%M|<5VRe`97g9HM zBCv_1jWBJS%?itdw&B*bWVSNQy>`xHnT~yqdXx3>X7oXG>kinfzbU4tr5{2n${d6N zJkZ~aKsT*&B||fmW;aYLEl?<;@Y!_MZ~(O(>lV>-ojiRp2nSFfWrkn3QT>mn551KQ z6?DdALy#w6jky947ziigX;A50YBvpL5Fr^sxcDqH{%WR6wa#v>`WG3??gs0Vbu<3o zI?mpdHCm#Ax~YXZQfA0zvPX%MA=VrRdZK-L$8ApB(InI-)=HmKV( z^d8rMI>u@GVlbupwAT|euCn$V$O)__y0slGbw(1Q9STUFVW%`{8YADd1F z=(4&a+l9iyYfTR`tp`qU0Yt^@j}7vb>61;}QTOWW^`!)A6h3%Ri0*MH%5Y-XaPGn( zd(V7*Z-}3m4nWj%VQf5*F}Xj0X^M0mfM6umlHDl#*I3GXU=2U=yAOPe_=dbARFiG_ z?o$5`llH_i5FRiM6}2})6H(T`-nU+5g)!*%N$ zpeD7`j*chqeLVj_b&(xavs>(-Dl`wTZ2Q7#u*)EL`2U`RJXHX0EQ|lyF(j9k_X`?( z?;+$3AzP~>n5cl*L1HE=D)z`MNA);`@E+07__7o9emv=y7P|~RHV018afHI~!kJcM ziP4AIQ8PTTX5q)rn44H1+wBRmyh-)JMpK`G;VGE(hMeg_LG@%dodHexYl%W(h6L_z zu}6^I6)Bv8CFfb|ibRz-GxM=ZzMe4>^;K)umFBie|KkMP*ZmBhQrpSrAJK&l824cq zGxqNh*j@E)6M+q};#uRFV^^7X-dk6$K3(KeX ztqS%5XgI5qC;rZJbkfw;wCKW=mFzYi0*;PQNPwpEV+3$NLzrydlV(MgY|{*2jp0@I641=I%?0 zz4xF45Doz$JcFc_70Zr%fm!nqNP2v!Itb1(>Hum#3YpnjIJ^s)*^?+IO8@%|l+ykt z*$Je}OK>0)6?$~HSpj0X0PVLY!V9IXC|swELj5}_-vsE5$J{r~MX{K2#(g8}n{xIu zvQShl`W+d1Paw=!3~5K#Lf$@K!IyE!);e+KSez`an9ImcK2um4s#mB#V98E0fIS#T2D?+z%`)hmPvRYd1$Twn?2l@d zgn&!Xpa?~6o0y5<5bbHsv&@!|a}1epmc&I0epJx|!;FoLC%w5BH<1~sM-a|hBs+0$ zUbnx18d0@!V>;_mwLfL7+rn?+fwjb-Jg|Dm#cgX}dAC@XHD@eite~v!yxADF%Vk+o zzR1#PmFm6`tw$1GAIdlewHlvIewfAxIccZ?*aqPN(I_oMy90VlII~|;1gVL9rJ@nv zAB${#I({J0q$}2wAi(QoPIj)g@AwOHHCBGel(;LDK;L@kxxWK(E@rbG>(Au`;hTjp zc1G;#_d`Y{_bn~F*?vH;A6SM-r&nrO-F>;P1KRAqP05+ZzxRtmJlGCGg)*FMB#u15 zd<=e-!HGrpHc6VRc>(s;goF(xR91t1Vt>rkOkJ_-H9!lx^tJUoh|Svpx7*&b~*aNt!vDT+oqox4TaP`uH6$elzDs@v7=2EWnJD@gW7qC@LV-|k0qF_@ zS)BB&&&59?(T@tvB?Os#j1UDxk#Tll5Uw{8L_3{-YC=gq|KKvu)Q78{(mlRaMoBvutI^_UB= zsDIy_Uqh-A^ZFAywZe*7Wu2O^`uNzeg>eLtdj5nF0J-@VG}<=Ts-lx2m(k2n zVO4VqDxE6c!aOJb0JSnl{_#kQeIP@Jw(_jFb+%K_vo-!@=$E-ZbI*A>3UU=Vq^I&J zRJezwF5(-d1_Ku4NfqtBWz&@vRpFbvfB~~WC;sE#hIY-;s``epaPx;u16^ z0!KKz$5D#OtP@ovV=bz^(W1|1$&u{o zOGFN!E3TJ!{iZZz=KWs~d_}gnF6et*?EhXD|BYMbw~89fZ`KpP#?3xVoXm!BTg? z?nUV{wIi6Mp>g(7+Ei7avOOQqH@xqcu6%)-{hj?RA99UZ19DHq->T~OgdV1?haNXV zZ<;nBahtP`mUoiRz?zT-9u=l7#Ca$A?{(VX2PpXk4`Wg35OXEV z1!NF_S6_8C=m>p?jg7#BZcCoUm}eIkK{C zj9*iFYVM{m&^>aS>`BcBB0x)?_-=Y8%_mNrzxh@ZI=k%@2W3lmZIfS7oY^=6Tl5~m zN*l08N8(L(1+mZcqp4CAmT+ zYoL%n7=&390z6y(V6+p+nXx|^4cNx!`>E0w-B#HLX1Zv;W)@@AkAY)D5MPXeR_!?l zc@@;de9U!INl-k4k{08yg{xAmB9nbmMz?a=><UJ zwx=VtP69}mk`T~KTRXK@Y^+D=!jL%WR+n&rcPD#)_J?K0Gz&wT@!tJSabuAR_ zKhIR9-rKj9kAV{gA?eBqVOCS<(vYX%hHF_*e;T&UjXq`qM z(`0r5sBVFgN44El3l2(nx85Rn*H8_ zND5wk7%$0juJRWI1Ix0qNxPh@#ueD?3HGo{zFA?I(*Z)Aq>pg-Jk!j-)aHDF9f-73 zX+QtP*gAN>M0)+b2|7Xl@59-?uR-6DY)1bfe%7}VcKc3g`S$4izud>9x9JC>XdPfyRegB1tu^I(yf?`Oozs*^k;RdjRhveb%cW z9%4h*37q$_)K`g2m#ZrbJWwQC+WJt-Q|4XEKZ4e`zI@((@zF~8L77{!$2C?|l#(Vl zpiGFbiEK(!u_qoOjV%rZn_ED5&J3$VOxPn4s?ZoV2Pe&q&&1p|U9w?|{sx}pDk!>( z=F~U72QLF&rAX%{o&cY3Yu&4o1epXp9$N6N)nzmvfq=DF4!wvzzWiyUOKKY%-VY@tzid7x42Vzn#Jh6aWq2b^L~RxjJ+Pq3+!N zgG_}P-Mw6&4KS#1YqH}yQEU(ocTqT?UagKM{q>?x&MVMTiquJ8-o|JgcM;=y!Q2FC z0Ut-|nFh$J1c2>&Hm);|4O>PRtYx+#fh3r(AL6O-@d-fQ3W~6On+k&!QaxQtKgmVPV#jIvj?GzWnd~@$bm0MP}A2bm->pX-3m3sWtUds}-Hc z$181K|BNYR&Lw26kS4glbhM(ZM&Rx+2EyCxci0hA6X3;Ee-e`x$JHlT8r&6g;$UKOjvrKAf2(}YB* zN9t2d0}C@0={j>2L#T4Ij}=A6Wr|Od_RxUylxJSPly0&txY-$a7}x>~!|a=;?q_C; zkbRv-ZtJFG(OU~fQZe#zB`EnJ!?PpnI`?5{=VoX_vzDJZy z@Wf*O=KlFhg4TsgW$Y`J2sUNhI5h~SL+vWOIFhU0>bWr(k$nDzmU5Hpq;?5fPF(8a%;tJ+PbE_`QeD3w*v7f2p2iDo$n7mii!e)TBR z>6cgGk05KTl3_gPxeFy1QXLMt>4s5P^`UbcoO0E2`Tni$88E zs_TlY^e;Rx-IenyLkfh$B|-~OLwq0N`5*B1u%Cl2s-@Dw*!-1~ZQ@MT_Nck{L#_~< zpWng8SAOqjZJZJo3O0whgpFb^5bI1ojdZ^Aa7dD6QT3ez(5_@R$8>?8GhE-`^0Mt7 znu>M*)mzfRY(W$IjjMxDKYob(8;h^4jgz^Jv+=(k*;KR@HHFcASoo0Q=SZTw)chsR zRN4FnR~Lcu;sqjLg885nG|z_cSAqk+I}YNJL{5Wp3Q{;WPpYReAPOekR-k+n_uekq zkrWi1<8^AcXOy4ez?fMX=|lWxwbHxN)NLro2! zlsjz!w8-#r@JzcX4fR&;ANx4Pqd)Ed)~&XX_r#=snF0|Y3h>hTy4rM;fC!3rkn;n; ze-HNH)YH@~Q>%-<_OIuROWVZ#8qu0G#Dzr~0Vglz=tsz3bdnxgv>V*RBWz4=7`u!P zwx_+vt^~w(OVyG7Qs*n7+2B&;?^Bnm33ddkAJK~WlQ{xk&`w1s+VW6g8GG7#qWUD^ zP*?nF0j?h#H49Pg6S&l&4H<2m#dPYd?g$mFX{P4n5R%}&nbQQ_mZ`J0nIx>*Vux$) zvcv3$j&LV!hSG)R11i^Cy+^R8li!>4(fhC;bF1D50lbovc1g?n3z+^0qs?Ys$snx? zsZE8HR&sMBZD@gxA$JYkAq%Eho>GE^jdjK3CRmg4f?*?PX0LW2*gVOII&^?8`57{V za&U;jG({{e7^``(lX{Mrp-kC41sIT!)tsfoL*?#_#4e(P?=Ji$5E5I=YCsU^A56t) zR6_$l94Od)VVp+?92_qzCeTN+sW0XOCQ)~KIlcMX)Sc$5%n$V><$(^2+S+xye}`)8 zVsT0~_0Y*1`jk_){KV8A0!R4#1MlXT2TRmFg4^$%V1uZ$e88~}| zm?a_903&LbVzk{JMJk;5>|zR8t*^YTewod$uwZ!r&r96w@3l9cNv<;! zec;89_f~j|g?>*oIfi)X@g)#knLWo-YxN90D_8W$5Br<$_BN^HmBg9+4ql*m!;G>& z)k$LGPRXLQ)Sp#Q*iM*WT{^O>tvm~#)z!A&>S{DO!+MR;m@_v@d+b|HYks8aWYsxH z>?Qd0thp*kn_TTU#;Q+M^aV=z2M^&XP`J530wv~+eo=u=Bq^>FZ}aCXZ1D}Z{U@Ki z;sw_8Klz{j(bYgY12Itcjdh3LzkdVsgpB_)-Pifsc55nP>tOw#ETeG*Cu}brypSnA zkryO9h$%P>r4657YzbK`*(}BwLv$wk3M|NXc9>v`4o&EM$(%X8gWDHyN=}alx&vvuOdRaE)rh^MbHEQh zKmlFqKIGU75{%zbQ!3C?;;&yq!GMmz4`fRR9YVX-1W65%omnnUKx2KEBM($mPV!ZqA1Z^W z5(T(Pc4|jr$Qfhsq3jQx_Lyb5tOchFH&s}9N0civ#TQNAN4>J-9``9&ey7Dt6IvPB zHUJ0*G(d#G8pkAUJ-zSRNiv2R?i`&N+R$x%by8*Qs z94W7bOqW03NtRz1>@>TV!$#&mOPDWI3=viT-2u5_meq!gsQL;Nx@B86zvQy<_nE9*0dQOVfpt2A^Ym=#BN8tMDz zdqk}Fto8%sL7&i_Uvjs-Wo~6Vy4+25`F_G|13~+Zz1)hls?nfP6LwVDp2%#nP}+EG z0im{QZWX2nxSg1QK6`#c04qVNY7EA zyP)sMYYB6jv)n&Lr77^wNEt}w>l%umC56jVfM-f_SG_e;>L%Z$_ckbX;tp9VQ2oFa zsSvp)X=_6m_gJ<_=&n`zb;@>F`8nzYbhj=?tJ0e&qES97GjT_TKHdHT{`$^&?X1%J7(U3g)Z zZPVMTyvP-_Tp5&KaWW5MTswY|wjQgE@{E{{FkL=+*$Vi*2El<{6ac+SKRD!|5cc%4 zOS!&5uw*fUL-eG2b))if>M$>>R68_IZtzMQ7iyfX? zAw(rF1uoPCX<}!*ym|h|#c?%Q{)VY%i^{YikA|2e!`=g59;Tew20I*C*&$E<<4{8+ z3-AdC`aV)q+Td?(S)i~5KQD=kDYF)ZHg47rh3Ha2^N$#C4`Zxyh{5-S5%~%i!_|ed zDe?~xYdE$kT@>9<$uEcKub^^Q7dm>*3gU9Nj&N2RxUo^|%H81C^Dk*0bAm>xmI`aGKnckNep&v)M$t3Rr1hNh2){nird zjvSw6u{`Wa5%qU<1`9(j`Fv12uUh1FfoC6f`?)a!M;=Cs>2~d@jADNpF6SiJBa;@_ zjWLSRBb)xAMfuai1@9+@30>+?WZfq;*b7t#4K?CCjG;Cc9OMNHYDN4gJbn#u{yQ`u zreq`Yo}9D=`4SR8eBz*ZCR|hS-xY|q~ycb7jzB!p#|xfeUTE+ z%1WO!hIF}T1{wqQ@)kY4mtGq~MYC@2#hMmzGiYjRp|@rp@h5Kwrq;C><)RU=ZO|0C zAOD?v4pZvu+Vrcx4a_XYMH8dIqo4OX84EJKut!L5D6yGV*$RqVH*OPZ zOO=FH=N{!ozETU>%0~^^&#q0iu zWpmyf7_8Ws{gv@|_zQS?f}HbCc5~z(-G@tQ{fCKGyE9C+>@I8oXQ&wFBQZw@&q-M> z=4+qFn-+445L34*`Nif(SoH=m`$6s#-~TB$ScNHBQvLqojKAO0e?!+K?BHPQAZTl4 zW&GbABOS`ts^5`6KA?y!fsF&mtBBMp!Wq}IjZGHJiK>c`06r*?Qd;MD=#gF%*QrZD z(5ocZ=Z~&3(VgE%O1y8R@1&<$BP{0N56F%(yhewYS!qW+Pm_$SzMmg!hCfud>DI|O zlnc(;j3v=E-+w+uWS@WzCd>LPm2kvJjqL`j(pwL0`{)^QPu(2ij3Iuv+A`4v`?ycm zG;6aYLu&3XO;6By3v6qNlbv(+I=Az|J0~;F8d(6Hfz+2VDl9uyF5wWTp7aa~~n<8=*6O&e`p&Fn}Iq2$+VS#5R zdIbI{D_s>iqFsWMAlZDb-(f%HFkAzQH<^Xi8-cDchxVtis-|!JqZVmOsZ;7qoIopD z2fFdHjC1r;ySdm-5BXOJrC|KxYFGWz(Ps$<-&P)#bORu-{qI;w0L;3cXuTw=?jaHu)_&; z#BVH~9U+R1&rm}@#h5|5>u@(FD~CKqT{dt)$*hsrPrXmxZW zUBIoJ(wU-263fqzUA_zQzq=xpoNa~c*!}SLJQZi$^RV(Gw zmgDpfutBsO?2vNE;yX~^G^6{Ba&@Y41{kv}OR#%!AxEg<{vzg+lnjE(LAM=;?1X-; z3N<+G{kjd3$WbMi&Xq8$GzQ<)O4Icr_2pad(Aj)BVJ=p#Zi>|=lj<>T8&oj@Va6&? z6p1@vS{iklw>5^bAOwAVd1yt~{*$!PGeV@JGa8@Bd=sFXsq*KEyw_R76Qnv=jrjIy z8k@79uBZLc^Os@SB^-UBa~vCkaYx>=#F=y?JeGNfaA#=UCW)?+@P+)FsdB%hzEFyb zkhx6sr~h5Z@!B(nq2V4HDB)YP*B?u5HQPh`%Fg;8{FUukD?72>j#$C?TP%Fo2`@({ z2H7`Wx4f6C($KHCE77cj40n^xrxPQ;N7>y$sBzbfL2{`%2#lFr+LNeJFJCT#kz>X9 z3cN>wIL&+Jf;?Nzh|KP58V1kZrOjW0SVT! zb8^T-Uw=0^7L)Rj4*U3SeqL}C8HB<&{pk-?XLtk}mzrlaX3`X2qOn%b&w)f5$*28p zu^`)Pv97FtHhDHU+RS#Gy2||GcIEZ)d4tu1nL=l2yX3oSv6*6dKr%FX)}F!yeGQZS z%;T}+{f7ioXUjorV5w_+G4YC0z8))Fpz!sTzh1$Wi^dP~ z1Cgtd6iIGHmP+o&h>YbdhQ4WU)d^cHIG`=2pl@Bow-`7XThTBU%wgTu%1ea4IR<%&2iK_QRvP~<{*#KIk{FIdS^9Lrlxif1iepT zcZcMwI~8mEEq+okVV;HN-S8TiMbn-nbW!}ZT*m3Ek0f04>VxUi8gm$bJlP(;H;BRB zc+NJ?XqK!Woz@MSktis@;r9HzAFi5J4R~h)8eT;Qk!BlOH+@CSO;FAUuiB=lls!=m z6mtm(Jri1n7B5P@Pp<>kfYLCId_gY54l+RAqSi}B{Ng(sMpOa>vo&A~!jTOYgsZ4y z?}>!BVhsF9mXLfY~mQijxe8~h!qm%0m6!`cb_QS0sc?k5$X^|ieEvctKn+T-){D5mR&mY|Ft z$=*2z`_RbB>@qW)6z!e{$ky@$IxV{AB+^)ubl*npZM42eC;gLtPg1ri`-}3{{XzEl zn>e^%9MZ0o=VyFEl6XG|N6gQTd_G{rcuAloG+8iSl3e%ME^80hqQACpKsQcb9Qq$I zkP3WMW@34ru=HjW&4%tk^`r+JBHZp%QJU^!IrDZuoym!&iRiLb_ch;Y0$H7nfE=xv@S0THTus8@W$R{cFAHoJ2_Ul{a8mb$>66d_B8;^n~7nG!ytuOc^~lOi-zz&i=PUT7tG@EI624in0X5Ph(5n z`Eess2@~y=QmN{-Dru?~gEM;26P~L9?AvCJUq86J1D*juTJp?{?4SQL}U0&g%g8Ghg`OpO1`k4|O28PP1v^^MB z9YAr@x_aJhcq$N;?cR}W^MdAlOp(TAGN4hNWY^0FI$FhVE|hJE{1g+A ze)6N7xL0G3rg60d4m-c&i9Fr|A7;ZJgSqUr{Lj5VP`7@)zB)pfGf@`8{2c(40cPd6?O}6b>maJPX)M8^VrZ=h`@KZ&K*| zw&F$AjBnq9ZnRPZAV2@eKXgo<_N9HqN_e@{%SRi}Ex7zw#R1l-b3^DzL9}bKk?XF= z$c@YG4_P)JsV83j!Q$g?Q>`pW4pI6Ek&h+mG#INrJacFeH2Z{$glCAb=PA(!S5@<` zctYM3gx$T8Y;WJ)#Sg*tPR5cSp5bogp+%kn6O=s#p^bIq`eAPpA;*1fGs6RF556%3HRUs$_ut;@e*Q~#zU#BKiRDF0uE2ODsrKx^^5KgqlCjA6HXdKe79z{rW&Wc@*m|;!8~r8-ypQ*+f>x##xQD#n(pE-PdS_egnf=GjM=cAT8@mIPwib^ux%yGEKRFlXs0& z^i{E%pgr&dVCs$sZqnF0wjqe1Eqh&HrfR5v#v#c$RnoN?STJc3U=&4Nn)?M81RJ{v z0y&>tl7p3;QU#fgi0CRcf$C09xtC7a#k@^_!qf8G26n~Hy`zcEpA~!ZoXj@tz zmd-HWTDn+L+fQXTpk?~gq>VaP?^?_{LYE5#InA$%phDM|aMEMTZUe_FeYCp>PpJ#% z1Sg=!^>>Z~8XVOBh6BCLJsov)DWxWl4(}+Zy)Zv|uDEdQu@RHI^8;{-nGVEeo;gIx zaE1!~_0?~GOkR5x>(4l={GOfo;G$-9xoP!h{q?$qc)Ygn9Fyv@BLR&D65kkV*h~~M zO@9dD0$9SA?SY1bF#8QbfG~9M$8M`sPvupnTTfEBja=l#bBxDy*j)>h$!!`M#{b_3|zAX&6FwOf3 z7&jmde%~*pdtoXdysb#r7({}b+{DdLyLcHl%6%EPRU|c(Lv#YrZMN| z5u@jUEJ}bZu7hxYNIZ86A9hNN$)7&>{I10M)iUB-LUG2-r-27rSWB_@WB6_S<0tjd zBFJnLeQZoiX9G`cQ^-&AvY)pQj=mCOHN4{E#HVh~4s13bK}bg_^d4oZ(#qEoATRYD z)P@cP&?Gj5Gi$dZdR!N_3SZ7BQXox^PgdTPP3FAMG&Ju4e{BhgJJ1w5Rf~&@h&EiO zXU=?ICXb6edr-zJ$=FgiH5Zy}cEYz*uHAeR}3}8Ez?~x0bxB zyYezSjpw#*4&JhV-T$K5fvwsR^$N^M9lI4K9ia}|cX=rB?T+{}ZCs5VA-tm7tQ+e| zeW$G)sy)Ba$V|Ip8|anNo$Qw1D|+PWv30k1_VrJ6@IM+Yp~4?HHNOYLfbYTZ-%t*J z!|gwT?SJ?_(7&?oPGHQSlFY~!1mb{tNz`YlGd9LAo1oj> z-LGw&u}$4>S)!{s2v15FC!bI82A(5#aidDL;EN>(SNfWjGeV_H zwMw=~AGqf;I7*vRoN52I0QZ&N+eGB%V#ucr-}O76*@-H&1xZgqG?-VFbG|i{N6^=MEL9y3^RCmnzK>=E7UkNQwVB6h*wL~j|>`##CVcI2={;|}+0loBkZ zRp6lwE+o|wi0HG-+(!8;<9u`k_=s6 z$SL2BIh323?+E)tkGDeN$mGIzt=o! zV5iYzALfa?2NV~#iB3X3mw3cx4btW$+jGVreFP$NUUQBF&~8T>zyb>MP>|n02(pU| z=To(acqL069AKl-3tl3_?OWrQ_Ac<3oMj0e8!s$W?Er~)fdbd!K&(+%-p>B zCOOg)CY$!A&aN*%3YtHa{u=A_aBW%-z^o^>S=Kpv9rxFDAI}vI=t$ju`(A9(m>p#t zp)2)HQ}zj_<5;P@JxUd(v*eKAf;~s+oUwPmt8P|obN8`&w1qbDbeo>*Py{-ow48mS zN~+*bxjG1DC8etjY`GUV zyHO2Bv{^ZhTl_pgrG=~qnqyjNg|dpIHP+_${gltELoQ$<&uXmkE7plyBCH_ol2I@W zwjCSrx*hfZP!(})6@EqsbS)liHjqD==rT?;rWnI!n)YTQSpb4l=EnuG$4i(?9^6S6 zAxPevfZbhRE7MIAEytfZPBwFi>xmmbFG^8ba6N$E#ue6<+Wv86z%59t4dKnzlw47uf zw^kxYUrl;ASFszwTSe#TlIG;4E^zp-S_POv@a>M2T8L> zx!%9j9AWFWtGRnk4QaU(oHS`P&ud5N55`92Xu1N$uq6i@$UtiBjl^)q#F$y5upIbd zMRkpXb&_D`#)zyQNhbC{qN`&Ubug&=;!~ohzjak{ddvN zw`1*FvS&RPPeq*A1YQY_g1^xOjABup*tG7SCmb$J6TW6-{?{s@W<`k)1h{<%rU#4B zXIl0+5>0M3JaRaakztSaMzv&WMLU_v+*kuJ=Q!DU#69)a{@3w#iMMML^qQzMb{bbU zN;p`tR9`S6vTVQR0rQZaGj;{)F1X1zC`02v8UTtyL9TxxdhD)IR^l5_u|X@@sb z&wH{3tYvaw@=Ly$8eiynYH|YuqL+wF;y6kQVt{0_3aM_&IAq zBzsJX^Dj}RuT(5m4h^L+WdRN=(?a4*v>d$kajYCbGrd%UTv6a#Mk=o=1DP>R+`yWk zzvDyhu}n^A0g&aiSs`}e8$`8&$wymDeJrG|Y7fc6BEaB;NAch!23`=_&6Z>^AQ0j? zC%{D-WLQ*1G9+=i|Lkm7V_HCpuJ;5&?>4aKiAyEs-+$o(4KjU0#{du{H@(zbOE65P z#9oSXZW%nz4ws~;m-;C!Mp^>#q@Qj6F+Ls9SI|tSJsUX{5ilH|{}Bw_(Vgm{6hVU2 zv;@&k)lQPDD_z`36vi3^We+9YQUiTVCjwkYvsd$ja!`Kr*A7EuoM(Dja%gnmpnrH8 zisHOIq&fdNdhO}h_N$HMf$3rq8DWGy|31nfO_(=;6&ms&{l<&169&=%<*Y#9=mxpWjh%pZRXPr|BtI3L6z}8Jef+B z6(iwPm&71CKWdeh z2q8(go$gsSrfb4qC=P8C5a+|o(GY2F$3hq+UP|n=sc4SO9e7Hb+SjuM*ENk|@b1cU zI1rC0j3H6NZGn;uN>l_aNovkpVeG>S&dK!IE!cDqeVNIBWI(J*^jQO62@$tiUu&Sf z|B!tPtWsbMLa8rM<EwU69MELqsBq4o)d}_kl zFe`rtP3;U5wy>x5;vjXY=cS2HvkNb+LMYL(;MU8Gu|qYPM8;b4sG*Z7;jp{^m-qv_ zuf!GZ%4H8x0h45=@VhnAI)EYU;RON0T}aTyAuCjA8Kfph1y;@_)}E~&=aFFw{2n$% z1EkdY8R@&LH0XFBP4Y&*?v>=4O^I{+2!rd88P8^#qusSv{N?+ky+fD=*{BBo7# zM&p(n(i*WAKMLBEM03C{PmwvIx9Zo2X0xhMhAQ}y6xizt9|ECnUo4kt+xkJv`oZE& zF|IZ~xnn?$zh^hPef+w#Aw+cTxm3Q%^O)Yc^B$wcPf0Z0(;8*RbUja&{)dxKl8smfo9zv@oSFytrE~0$qeR zO9`FZRTU$xd&6lLiP9|4;|7cAU(l`DVahE_Wd}`*$^yQEj9U&lU36N{v>TdvN2tN6 zJI_@jMJ9-%B=oJ-@=n$>M9^;q1mpnE2dcwC@zf}kVm-{YMGPe`_$mdr!U@ z1$3Xu&eetJ82TA}AL)5(aAQahdV%0E6R~9KTEmfDB1=0{PC zt+@*Wa96wZ%qOlRuB$tr%qHK@&u5t2Kv!s#IUFCt>i|8ItjVL&#uR1Z ze)PlQ(lh^VxlVp2i0=xLK%>~Rw+Rc+>IEY=-#bWjL_CWNmkUDb`w;<+lXI3wOAf(@ zxk@26`pmoo#`)VIO?V~xfE6MFG09Zp(2VFY>R_o(I_I9sfKFr3{*DM?5RCPLx?U!Y z5a_ITWJNfxjHl6{wGt;wjpkGIPTfwL*#p+#`0-sof41b4_!jzHgIU#$l9)A?zX3SG z1D3a2luk-qJ&Jh=gjw6efatL`0Hb~QAruZqxIolcshpi?L(OkN<-F(~N(^$8Qu=AJ z0*NB}aTY5Z=8%A2W0qK8GO1aXm@-4xR(_-z;v1Ltgy0Tjzu-6%o5mI^eeLxv?A{w|!I}&hl z68WG?B7Kq!AhbzvD7;69poN0_0Na|W43WA84jC1r5ab6jrS$5`CgSo@RMF(@t(^E? zBB}_rrmV9HPC^a4$=tEU(V!3vUdjr!o}|n;?oY`<_gGK?TjHz5gy<38M94V>=5Izt z)c{=g2(6Ay)z~@|Y@HD4!Yijqu30J~W;8_V;y?c78(wd}I5mg)@nf0b|JMxmPlTA7 zxt`Jj3J>d=6bW1%JOMsb1b812x;)E@03srGdY~8(MJSsQ?nvLrI2~i2UirYr>Z-*V zs7VS>yB<1+~!Vg_NSRb8ze%G z6tLYu1lF(CTj|=ve6+f^qhsAVy#*6|->31BOPSkV$K5sO5OoW?UJ=R`$0s&(64Uc+ z!@a(q*8&XY1FTrYnMv00Ji5imcpT>M7y%pIL?0!UgCB@E@C=@=Tc4sP>UgYn_6U9X z<5}180Mmn@K~BEK;anstn|_`P?Eq2#!qFg_q#Q59nqEAoZd0U?BwBR1yX+J-u6)7V zDh52fWLA8hI)sx2+Nfd2?Fo^`lxahJb`E2`gHHU ziFDc`I*w79D1R$?g)&v}r9#_x?(gXGW%1El*WWRszx_9$WDUFWLYOV`j5{Bt1&qiJ zyDwoW5+|uZyy3snuDqSxJ<(e_DVHq3aeX3rqlE;5K1-BisNB}8GJXF;EV)^Kdo zjW1YFuPW1G+TC#Lrz`iaf}&#QFL7(s)&&dTZKW{#$kP~Ah|Vw)_;Vx~E+fgXmxX?X zGrN9xjap6{5x6(7Eue~a!53eTltBb>Yb6@@oaaWcD-{aG0?7YPteI0~Js^QyC;u7- zZy`sB89=hvUflrt4js7-VQE)n&>k{L;fV5XP|a3$48e8rCdNdWgSd3r0sh?zN8h72 zvd;g@=BQ<^MPRepON8fgF_jrQ^Wuza%?Za_4PqG)5_nDXI-=-lu6iG)Bg*CkrUM8J4GE+_m~&${%O=WYRtMU<1+q(YYX{+M z@leg@wO6b2sSi9)K(s;?@xH1!IDaH(8g1F^K=3kIoNB4WMG~w)Te-r4jh$>-Dg`&m) zdig;l|3?2}I1F&u5z$CAib_RWLur;cyp;Xc>{&C!tUhS)sDSS z`O=%mp{3uW=A_l{yQA(=x+nbyFvyn-V4gT$y!mrC9Dn9d;bINCb}Gwuqqe%my>Mnp zEejk_G<>6K_>~pXN0v;0-90o)Rl5Be3%jeTeA+~P)ks$PW|u5nzLcE121?S}6KP{30WMUUI?Wt%+`U;Ddcn z?CPI8YU6kPXp@{h?RkX2x_6w$=*ykvFidB{U`rbh%qrOAIm)ZW(yvw z9FI$BTO*O#nPW4yGb==vi$@|D5`+!VN+#(XQOhJc4n3BkhhU#A1;okH2d+R+;>u%7 zZyMo;K$YWqFhuC+j70zuXoyYWe0yZ1R)$G9iA1LoW}1a1te(?Gsm@BWN|RuLcF?gx zVBSBms>-Tc`gF{6_C#LqG`9blDVf-U+ZZfc^|SF+>y6-CY?v;okjYNf<|b9iH3&{U zgD-*5HWFO~pxVC^Q}yuLvU|H!)kfp_@h2{i{UMKib1Whw)>wb-dto1_VRLmnP34J_ zD7v=ax{cV^h!c~}E*1uf2?+km`+hxa2DTCBjtKTla4vmZ_+8taz7b>CK0T6Tjc)3O zInSa1fTG085sPwsi^rT8U`uoC3EV9<>~*s56VU}ddf9rn7X-P}!fz$S9vDt^0!P2_mj1o_n}s!(Q0 zr_%a7JJ#hCPF0m6do%*ArmIFbwN3LkK0TzQ_;?;0usk*9S$(|Uk;)4BkBtAUJJDkY zIHoqC`*Auqr`!B3tz*(<(OUo_O4(Srcr&W_!LyRCY+CLje;V94p?vZ@O1wj!L>mVB zr`Xz{p+Y-lf%3)-mu^+98yThUTKT|pkp#rJy(*$kmY{!)AyakV=a90kq(Ts#ZqAuU zW-@pB@3BdADU-46i@VBVk>h>i;w1+il&;3Yef%{lZ3PR-Mx|;J+v-HcwK9IrYt~q+ zkc(}|mrj`7sb4C)P%>kX8ubCp{(1_U+d^p|)?xmrq!1o(+2Z}FL+U?W*nodBy<@RI z&+{sI8YvOV@FC1o92Dw)=~bL*BiXlLxGkZCkdKgfVAvK5uDmwoaQjm}Bb}6te>wU6 zDK3};2lohOW$h>yp_qRd(&{+kD|#s0F`cDGFThfWjeaH1lX)~Y@3xrmS~9VsZ5%wx z23*Ls*zoj28am}2eDJY)L*nQ8Wyot@t`OziDx4t->mR|9SshO99R$KBOr!&Ln(z2L zKO`USnLAWu?u2T4WgMn;(P-o-Ic6xdi{HorETJp>7lHj04q=bZ@5=!ec&vNzF^5pZ zO6n$VV=_{$WUd;xnlPdQJbH7ai1kc`TOqR0?%Wd0^_=bYGub$vOCK@19@7}n?YYVG zG&sC-pL`3kNUJ4oD+!^9i@^=f=OwF$A9Gj*vihS-Vf|=d)I1Sa26_Wi>Kijni30<9 zAP(DPRaO)o-eODI1I+uz;F9O^>?8FFK&AlBoYgyUlq=lX^RyZ{J-gjfUWRYrfr09b zhIuOIh*Dr#Vso8ZYLhzcJgKeCh9piljSxsZrUcn&IM*LsRp&6ECm17 z*X?tFbUDpLb1F`THOdB71L7G(!(TemunedNhNI$nC*6Hd*fA&8 zPM(xJFE~^wWA_Hi<`b9sySe))B@lDTKeGTu+V5_%P7U^z z*Ba>_>Ny#i*4p=TE1yC{fg8;OCc?Bf$VdrKqf9ytyn=9X8Lsj)n>!}mnC6aa%FK8z zMZvF&i+yN?R0yiaSDcfoiDhDfJ%az^7|wl~@i;TSF6+H}zIaq`QfZB9Si}wK^j24l zF4&p1ow8E`Wk&;52Lj3zJ2Id-?i8)j8dgQnIW1q6>e2dR^)bT54l&>;sal0$V3WFyxE}ML7mH3Qx?=3rseMNYZ2?4BsOsc;Pe#RFj zkSUjYj2-RZts5n%K^mJ&a;HV%opd;lhXR%^C_+294o=aa^TStP8zQoT{yEQidjzFU z>?3@&P?D@U^s0t8k#FnIRYzR?kPNfpCiJauNu_W!EUxRu-DfJVLPXr7O6L_fe-7a^ zuVuMYlJHqXsW@MSL*nRROL^4D?gDAY8y62{{S-s>F@5qt4v%v9F*rxRP?ADiOtixB zqW4B=As#8EC{VF@6&6X4)S+t_$JbOOPGZ2Dv4f9tt%dE0J-4x=>9N?UgY3N6p2si&pD42pQpK#W`K4iF< zS;eZ%O4!IL>K*$Pyh5sFJo{MVt9}E$p3>erU2$>VrEXqi;y_J!Y43HoIS}gc0{wvz z@^K{t+ZyA>QP*CnKl^ys*EECOTK6zxFQx*CECbH)P>RtV^m(``g&w!q(7t==2Ote{ zNU1=lxXeC%Qy7s`wHropnvMIrQCQgeAh-E**jmgSWinAS^mU+e6LkhRy+ry}Fx^M~ z{{Njc`!7GJSPyGz_YV<9`_r)~@;@iTB#eyz4K^wo+u1re89V%caAQ(zpG7}EvdB$D zdgF2s*55pvcRRJyd@3ja0s38^bl9^%1|(fk5WcA(yj`)R>B_)X2j{(B9<=MH8!v#` z-oRUpb{w^76;;P7*mA0&#_S8)+ho^kqe>O(o?`n-&Y8Cu-Ej7`)8(+0ct7xkRildZ z@Rgk=TJK|5wS>=Ecs5(lHd|6Od5L}Cne`njla{aJST|ARls*1b}yO%544S1lm<+DkS9oO!MtOu?Z+XcP9Z`YiEaNIQd zt2;F&r&Et3^NddxL6*kV9_zER8p!EPBaT6~=ohVwRq4_+mg*abOv$X4mcup2V1?r8 zYx_Sws68jC&GZ|^#TU^xNNJ_i6WF9cww9;j12<34t>7d>R~t0VwX0SUjizcF?HBGN zC5gD5g{RGX$rF^t1%*5$T3n^fBwl34)g#=HtHeju15Po4V-pEFDqtAbH6{2b*DG0 zoo*}~$$rdV;79tJO*Rdjsk&8j+Y%7g<;LbH*H?A!1F^H&xG1Fc!J6q~xLMf?_s_ZD zRd8AbPC5E?vphdFbEBhz2mrPz@P?&io#*4Bt-tY#HZ_wwG{HJ4CqmmaV}71K&qr*{ z->&-h8wB=MyST-t6kH@`@7Z5Qy1I6GRi&77IP|C0?$f~?3R_4gAv*F?Ow_l{6nILa z5+P-+z4!&iy3W7dx5&+s=wU_d)f)xGX;PXL1q4aI^g8}JA8nbcPkkDGRl=iQmF(Op-v~>fsZ4Z-x)exli9&qc4L?qM@np3z%`88QGqub&8e;MD2| z%f+$UuOD+#8;JT1pd(ps3Gu>qw|aH{j@!WDbU#t^>#!-9)zsy zjNJTLn1n|f;bnsK3`I8gJiMl_qnW8VUI$d;ckwKt^Q_6Kaq_H_V8+21zmQqm@$7gZ zm$#W1kD0w6<%%m(T=3{VZ+$BhcGKwe!Wana9o1#NntMG|08DIE&nEKPMWK+-$<1?Y zP$IHcEw2117_vk0G6=Hs^mgG@3%PqfLG1G}|2Dza7P|Py)}K*l{_Ucx7xJ|QcyTdD ze7yK;Yv{rQ8~*k4KVE_xIg0f&cn^k&5pz)-0u(we7)~Xe$5@f>abYSMd`p%%RTIo# z9L9RLnR*s0osC(h`E0ZlWt6bEZNUR2h+9(V7!y`i`=iRF?u+^c(^}>1$K#~HNDt0H zGo3L;q#PoChP%lQzT*l$+e(vL{JVs#rtzjW6o(ebyh1Uto5CkJ$l72^X_Un&Bck^9 zA9Z^BNYn;!dql{&3RHdR*+<;X>>BK$&V_mppIF)2`V6QVwUk%XcX}zd8gCV!DvnWn zc-<#oc&`+l(JQw^+r4sbSZucdKEorgLAbBpkKsypkX4TqY6_6Mgw3JScX#9w#BP~! zL%>KI?7S-*nfdBpj zKZO5-iEd+J?)FdHTbG)aBeDqcw@1T|iU*H`zYjezxCPUYqf7XkV67JF4V&g~P6}w3}z4^&z z;@Ml7lTCm2RmKz=^-RN-Hcw!0Gl;?E<0k-{;ZlLb3K7A zpj=$y;iGJ}DO0<(&>eU-N>a*MkR2YVIK8HDR5dl3hd@%>Q_cjeZz zd$*vDAgf|xa;!MnqNTQB)2v?d*nmR?sYl=4OMr*|13~=-=+oBQtJZA1cR5m@= z(P9jL(<~36_dfx`2yfCo{LW>8Z-#J-0PVp%Q8hbpIc7|s6Wzqe*eV75_EnP9gMPie z>m;$GqB0_ohaBMN;w*%M@GH`opi^Uy;IzgMqt#H$08TeIt3Ag>U!}fa@TZwv7?Kjq z4gVmloqXi3;2;0ypR)&6ZF-Tipct7nRthjwT5hdT^ucPDDBS=_HZsn1)bO3}#R2fM zk(BtIqBUvE4a8;CCT2%w9<8AftxAi;PLEz+Is+QVP%C91T$_QZTQqzOB5b+(lkcl? zg+gy-JLq&784ry1Q0wOz7rlqONmiS8sk3fhS$TFzZ4|MfI(?IY({kT!;r<0kW84Mg z(>HDGiegP>h;q&VKY*WHw>{s6VP3YBQrxbEb^EI$I&Fr^wuABj9skj363JYi^!-;b z$+duAQ@!H1)LpEyS1iZV*6#$FX76u=bKGGe#h1PEM%}^!&V>So%Yit20s-4o8$J0V zRn#s&&c%sqPF&@|SdHICFzWSe!VCiQYqk2!z~!tJY+OAaAjxv++W=gKPcqWAkUT1n zlSKjMVM$PcyQokH$&WXT0)~dsG8rS4PP7H;$hWDL%&KO(prql1dMJ|{2PkxL`Z!8J zBS2SVtHVsxkrIBPY^1fvdX7Rv7#W8k*P3=fi9bwJ$dGc3 z+fOF&k|U#h4ZS=QAXoJ;jqdQ)C&ldIO?1X|s7CD+!w6oTC4F^%z1QO83&#m5_*?XeTYQg;yq;Y&$#E?=!W(3i-n|-d2|H%r z4>5&!b52IbO9-i&CSA!xBI{&K4v_%JW*1zS;`s|u!tDOs(Gq^|sD+fUPfc(#gP zi}}>&dQ681L60khMWwW=PdC)UOu4Ncww`q2)s+!jD{Qmk_5kxQ`-=rfi}Eg6yJRbG z9jRu2aDAB;P}8iklv%k*Mm!b99cEKJLk#6Z#nRZ;`X?@PeoTE=_%KZRu>O^aVQP@D zX?2j3;r$?CC6fR2%h(1lDZ*I|p_ zNACdlUvOiwQrARGQg8GTnbF*YDfQoE?aVXCreRtcw5j*3-p@(M2_t5I^TC*5mXL7!9;u-PkRL31y})tPCh}>WZpBXN*Q`d#uhbm;}G*aW4GD+ z(}%`oGCFDNTG(2D1J)N&%2<>YJVR8sNt#~7ue`6ZJEV(ea_`2|zC#a==@+`vHFXGm z(oogW5X+Um*zu7cV`f6XI7qx~Ei2)e5yX-=$8BZ!(d?o! zCGB=Zy&nyQEqRmHdj1$Y*qx>cB5X?&Mhw$$LfT`B zoXu~f#toh|c0%I)?l78c(qV)j&#ALJg$vO^G&|vr+QBh@b3*H3%9Y)++y?Vb^+zdh zp51VK^LOFZ;qvW?YVYEG=G5Wz)P8-BGkK|5_QRbS4RIlz+&Tc;7HHfXDRfb$jka+H z+{FrJE_v_A$G>MKe(%1^vBvkbJ_K`WeZc+q{iTf#38CnR@bvou>N)=BUpq->YrFpn zu2@srP(>c*tK(SpuMMJw)o9nZLQ3LKMg;^w#3X}-@JlUTkf}p~AC0FPgD&(wjX!&y z?RN5qPoE{t8`~m}qcS$a78awzoTXq*aSo{wHo+HrA=ROC8%ak>i}dXw8!wPks4i&J z*jkj98fN;wZg4Vn(~4w^E7NMfU8_cgT$pHAP_Hds{45WQ8{}nYjNUB;KSLLqfx@=z zhzSLp@&p<~lAj_u5?yn8%6GBn zsY%k_ViYqbrpG4~A2$Mh8HvL>acB{*fUQCnRN4;P?S@vl$12$nT`;dNp>Ls_Btx@J3dX{o-}<&NA`?acAxjbv*$F zZuTj{)g?}DttEG(24R!F>#ub zk*w$B_8*QB&wfm);g(yc`&-g|u35uwiooH)#%ICkJ$f}5lvfPq1D5QL!@ZB^;Sx6c z&%4_hhJvJ5szFot>+%p^-rgRGjMAXY$dZ;@gZdiE&q7tf+&>i>V|U1 zNBaOWJwe}H3M6HQ>`xROoQs#aJsQ?)qI)dGh)?v-w&KdW@On`mQ;uTqxMn1Iz)GY< zxUy}zxulH?2gQ`+t?wkI;fu%Gs6zNI{{fZRf=cZ!_B$pU^&gSEGF z_dG{u#%XfsbQ~hjf<`qfv186k`eizy&@_e3$$BaFRnIaiR*>LWNIbM4mCe@+##BgG z_KhRQ`Ab~1g_xyPNJYrh3vIj#HBR!>C5K_sTs*c4(72Wzd0V{wS$@#(kpb0g4|bq)@&?ij%Q zD!T(?Y>CfkZ4bKeU7DpjnaX4n0qz<~cqPhtP+ujxGGU+dUYGOQzMp3M`;Xb@3#>?E z@iY4@A^xMN0V!j5S6c@oY4e|pE&cyOMU^*XvDA=tz@WPaiH8pbE&55i((1y1Ac%*6 z4d&rD;pdSd{aBMgJqDi7_g!t;yc?^0i&_|=sm)lDOkr@h1$AhrduCD8yzbn+`P-fUh?c5V>7|4<2AkzzC{EDhwdDVdy+ z@mD@Vif1i-3C zX@4XCWb#l?4n9E*K908%xv&ULJmuY<_+cLz~%{c!cw7VZtBi=y^GLiMO@ z8i(^fabbxu2Iv~*7!U-4fF?`yg6Ij#m*uE}(bf;jER@JMx6Ap>$}~yLT!9^cI%1L> z2c^+2xzR7coG%rP=S^ZQdmxHb>b(9E7@kUTCCMO|lv03be_7s~v{$Iw2Q(ybTZE46 zrpE@7vy#4eKmX2v-HGFST7iC}5pHy#4+%|X_M4_2*;PYDW)h?OU5sF>r+_4UeNsw! zhtL7uQB>q&I+j;eNCmS}vH3A6wU^1Ltt2yVtO$2@XUxLD@K|O3I;4Xp=rP$udvl4B z>oZNLkGQ2n#=HgjaZL*Ym%M()OS#~#W&&(F0p#=cl0VJQR}#C}w@2G;FT8^*at5H! zEY{Tz;@Q_}dRKB|zJd8m<{P3}JJ;IC=>S2!|5oIbD%<;Yi4I`fQG4RGO2$oNXnXfN zNs6nLT@Or++YqL+2y}ZtKn z^&P3Mo2C%4?h$ocuF=2~D$Da!eO2hBpSFFUhfDbezb)XAma!&j&=y_Zhc|IlJ4$!D zXrF}fTG2OFyO66^Mmx=^O(djFX(~E|R-IZ-GY2Y--@JALJcNJ|Y7-%uOdao_hu(FM9-sji=-!V$3ls1Z(D-@y2PPq3XI*!`ywF5M~NDjClYltD#G zB;86=l^UNpC|wn@4}Q@=at>pQ*mYiuwd1EHy)@<WMEsiboF2;fTnfzz*Pfy8sf!jlht zq>jc{t2Nu$6{x~srLDk^ff|?T-lt}3j(#|oDsqA`nBaQddOEgxwBTsfW?~)OYp*#R z`e33TrO!IJPP^L#KP)kt-3b!1`$is~3X7gTO%R%_&|b?4qgqY3gwP=3Wc&?Nh)|6- z#LCnOkXPywC&n(JF`VD6+Ru^T1S>IbU`w^udUt9z@uz=_A(JR^fJDNpY9gS#+?~=j zF~rZ6o+ynj*7ibgr=jgr-xTOzmiWpOxipS?OM@i`6xNYlp>63^IQY$RgLy)mn_%6r18C z^3noPtte7?lCV1Ak6+8)(`Rsbr64y*lFcG4<41{?j4p1PEy7~ z{w&j-I%QlkFVatXOQ)9H9pK7-OP-)x%wulvAY)OrAnJc|30J*kbsQ;)84LCd}u>a%Y>kwa2ZeOh|j>(5%O^Sh+7=8%9OYA ziwjAAVoR$rf+86jk+P5e3emmB0Mau2?ke<-N-&&?qJANa(4BBf@bmxDv@EtazhD5qI&3TSUCK;LLW4 zlc&&=hQmv!Rx-;A_E42KHD4-QgLma)T{8!rr9#Fd&ePe!c5P#=lq1kSM`DtP1mz_! zuX~Y{UcwU=CMA}}B0~h|o60S|WS($$eW-GuSMUslO=J7wAL1YwZV%(hY{W*P~d(D;xQLfH$P5B-|vqL+h5PS&4EH=kClu`vT_*dj0MwWs`HCX&5VX~ z*$O5LDb54(D2|$PMJP-4Nv)iD80&|nRqN}O$@M_7#FttmqkoLa<`Xo3=|a#Xg?0e@ z2Vx4X(m>?3(vxdwu_d_S;a7FMSzHsQUDB%|2;petR%{I=;1^_ zny1>rqSUld9C(XpGEm(m7wo@f@Pr$$$BWn7fC#uyo-|9lCObSm>IVC9UWfKkraaD2 zL-jl5A<6z%mjMpSs+No*pj$RVX+pwuN+3|&xuhDnD>xna9;iBt@VXjKEO1PB)?9TV zQ4_&}m{D|kS0q8+y|*hBz!lMD~bQj3KghzyYM%m6J75t`aC`mji9iCd@2G^kzh zNtg>k1!i(&13Kisb0@+1Jb;xZtXNbfW0WwFQV*yDdwxdpRkG&Hc@S0L0ZAfxz#fX0 z;DEaVs1mgm7f|}LFTKb>RJcc=Twube84iN3#lRNB zPgnp=3r?>@9yh+=pgKAVxdk&>*GbwG$uo7|LQ34ogBS^Q;v{AI8ltMRl7BipX!0D- zj^J6bgV*aRx2SQs>}pqpdvgH9;GstDm;?qEr2cfIfs3l;tDGZQ=CW)w?;XNHBFUVk z9L2D-xC9}@MS+XBJouEDJUT6FR&2@9eyQv3@5$Y{NJgi$GEp}^QD#9#7}V$GjW-7a zqvaO=`ug*s;p-eF*dscrNbcb_V^21(aLvYhumskP{17UECj#r` z2N!O5EAEJzsKvGR^6lRt9Z}%R`KSZ+27kCko5j*TRSJB*?c!bU{u4c-AM$XaZN;!2 zikhF;3EeM8N8n*Tq(3r2x*`>?+v(LJvcZK~`(|&$dV+?!)!1e;Xa*&g%@`t9y6sb0 zH1O1^NNhF4It>*9*)xdi`-sN8Q!zWDS1cE0h+&U(OVQJOV2*Yu#wNovSB=dHGLIKK zWQov0>_oGV0YS7Car)CqMT3o?p%cVr2aWsf6Y2Pj9Kb(Apj;7~n#iP&3~u>#XO`(zTLbN`(j&HeGO2@);mbAerxaxyLb{D`z`)8x@tW$QGKFZtE={HuqD->qF?^rMpj{dh zS=5AZ#~9fS3)&Hx$K3(G-O@awx1aATB=>Hh9% zv?Ww?ou{mN4=n9C?6_8j-mEe4**zx*oc(i8uA`V2I{w*{ZGY|v{{t7ew6W9w;rOdm zw|9mBW_^el4&O`Ro`AWJ;Jvc(8GBo;wsTLY^YldHQmHLos+%O4($Yu*z1Cz)aeddd4v=GOq5b_9u{ss*m zyL`Yu%|Tf;dF?)9xc+Ui)(qle6oE)I zXg27gR2vP>1*q7&3I7Bjt0<@gI8;ESbKw8kbdc`$Q7~5u5A)++8%x&A*4R1ldC^ z&?jh{VLHp>h0+5TXa@l|V)y7=Bpl@;RMrt&pS(akp%e&2q>+oTJ(}hd$mM*Cr{dHb zTFKU}dbp9vAijb}duZ7nHEkSWU35-#S~hd9jkgoq{+L6mr}Z1`dAn>v*-NJwah!3$ z9#2;%#TCOLgI9j&53e1ZC)gt;>~cwA6=|c)5{tBi=+Zl+Ml~bJ4HL;q>jUTZs_^ap{IPG^lwu5k=c!y%x!*ZW6-)Z1K z^2!S5q~p$?Z!%N^=o%@>qa+Pzkmk{_9JX`IS+#{FFf1vo?07Eec^#K?Tkbn9I`54jphGDXk;nr$RR1f^R(pD>rf~Q)GYy0HftHbfl|cg z&J}7xK<>Ze%%xZHy-b`ED@%8xz zq>pg+drRM1#A@EEh5o9&FWX<_G}%~!!+GEESok*3R28|wPNmVRVXxM0zH-49{Jj?+ z#>LWMJ&1t%6WzAJD2A`tbddw1I-VlD;j~H9VS@}JsH(-EXy#-#xICGBW&MkK;EqftvEE!4Xg8Y#BLZb|xR z_Vd^D6W4EzbNm#hP;N2-KjpP*mC7#3kxFG6Lp4Z0qctlGEwQQcxjUZmXz#@`3_6*K zQ0Z9lKt8e5_^M)*xQ+w!p#{jmO{(z{?yg;LfviPYhSH#D24azOE**kO#quqBn_W`p zIK6Qyda*JjJJ5jC7kn|VQEQXn(vZeS3Y(_^?5kmKY4a`8c=nL)K=L`1e6qUByqLGs z4=>GB4|OS1*|=*kzU?mfUbv6j`Eh=m9gRE{7YVXYXbEKZ6WZ&yASa77q$QudX@3Eh4knSyQJFCCv66Dbfl#kYPygjKpqXY6`je7-G1T+ zdrC~p=;9WKgv%2rzQR6RI8VaJd4#16@a7v3D<`$yja`wp3mTRhHSM(o- z^JrNQ{1&$jxnqGNct`v1G9(KFN>tO&5yR*w_4hw`MP&7@|0_82r(Oxm7}-Zx96azA z#SBuh=_w#s#=P}=CL1FX{wsIp6a%;krm zA#;`oCzM@Gr5)Pu4BfJBhcQ05N?0?21PR~6glJO2JLgT(M(vB8k!gnkh9z1;O&LW zdsWU#?st~FT^*hYqxGsbNf61;PshCA_2uZ=UAJJH7i6({MX2j53xnr zo=!xElgq*hVleWuPK?fv>h)_VBe6IBu=UmtgHS`>r#L)X!)^&vC3h)r!5O}4DyIz~ zWlyLSP!Hg3vsM%r*u4w_k+rP*1E)}4Q(*CUdjV5H8j?--_Gpd>H=3$jivc)PSW`v* z%`tGx+dQb)9B0IY@)%lFqc+q<4XUm*$7-vZLMhnS%HPJ9&PeuyQl=l=NhSThqqKA7 zj`4C49D|u$I^4inN6EQb=jCj?j_^EvTl#Vfu$*)xh}PxJ>FArXkq0jTPP5B<_bQ#y zW)w9K_z-6{AmPr5A?av1H8=z~C+-)vK2e9V=!r=$k?X`+-)-~mTmtvpb_A`(;jO#` zZL=&Va_g0ijCWfnVLw5toFmH$UqLb>V#(zDJ=aMGnC#Yz_@ZIt>gR3a^0t5d!o<5n z?ZJN0|CT+YVH9Y@EWbi|g-Bs6u^ekbZHJ$W3tkGQEm+eF>{~ z8n(O|O1QIf))suh+ZQM|OSsC0#h?W^iMqLu?wP8v(jqcxt!dNnT#&T=c_Z0#!ifsZ z_tbQ@Vv#!P@OG$hPA9wwtEr@X(g%=DCessxcFcKIjC$0GBYrTo4fpt0d`9lkcf4TV z{^&Ik5wXxcRi;aj%=7&eg)k2%Fx?d^Jr+FGW3xefCosqSD+u-b1wPZN2BM3Q4a#g= zK)D&&x+RaKOH8wVfMo>WIX79uKNkASudT@2D-UM*wl$apu8rk;36>D|Q4vN?kGYTs z*^DjF)}QI-?$W^787%ojR7Si`WW}(!n z>yh8jER6XH-4gttBN?*BuK&aji&VALe#(cwWm}1f_Y4jVjtI9C;5nPuvGU||gG7Z& z70ap`oyCjwe={PPl5RSkX?{cb3g}&EvQj(Iq{wlljZL^3#9h|_T-Zs;^+yYIW!Cyl=-H1CMP;eE zJ#}7fQX#6D>#V&m1I|2zB&85Iiz>?04>)!0qJadTMxJkGEA$IzzO|gIBvex@P$A7-<%LPy{3FYHF;%<5>?QubKCzK$pwxMLG6U2kbvS|-x(SBTC2^DX@}z&S*(dw; zojfmf5<8p-q3>Wbebdw)JT2m+igh@x-BaUW!7Fe|VSfq;Z4N9^XoZ3oK7{T7dW;}< zp#6FOBqd3_>43|UnTqz7e0}=?<2f*?@gmlyI;osmI*8)ka8?aT+4x4Tr9Y!IwYM638_w$>BjOGzJ=J+9r=LMJ09Lmc zRWx}}HTIi_H9#_6vha*i^rSqcsc_C2x&UWMmpdY^M5?ydQzP*WxQz=B@XnYt!co76 zg|40y(Ar4VHWI#oI@}5nTw0smer;S2jIVKg1BwAo)&rV@W*@v~oW1~&V;_AdAJ(9I zE%$aEfxoEE)c2miZ{KI3c}-`H#hsvIuZfuvYYcrvHFCk-Upy+8&PBVAQ!|YUo!^CO z@E$|fu;YE&=6LM65?|jCa^y%pt1)N}1$maOj%@d4)-bEYRj*Y~_!XCVhvSbZqqHd2 zaqMun#&j!FKlIzjM(23YsT^jrC^y>0+WQf2@JJ-vgXMgnbd3T6xNAZk=G86BrMe>& zs2{1+G}J8HBZ1QOAkK74m>3(}qTaUgJbgIW5VwWY0KQ@*#7~H$z^V6&dG3~2@-~IA z^cCUCzK$HoX-`Cr@F#<)s4X^!3v2_DbhO)jCxmtn zG052J6e8T2d-2rngS))LTchW*Ur7$xy8pidy8dMv&H5Q^hd)35|6suVq@=5w zJDNM${+FL9>i@5o6XN9`V#w7Ok)p(;1O`C_$zo8oI~2tW9p-8($wMuNI-}bZUpv{_u0%Tn%9rt?f8luD|trc`lb-zxb^KKsdRN zfHkM;)w(Dd3|QdzJ($cOF#2u=apd)KG7$w=SFN21u~5*(Ro1*-ni-2Pf-MQb5nf7< z>*9a;kNnzLpotNLpV_YPgPi;)v)$R+z}Vrx6DR-9utn!#iw*3Qho^w?Uw;Q26V#|! zRn7eoY(2rzRn~0#_u*eHb|%^*;mJEJzw0f ze>9jAcbB)19KIZY)?ggJAe|Tfnl_s$)+g_SS+i@_%Jz~QHjJ7Juxq$vYb+1LnV-aX zGmm$Vi{B$wi8M1-=q`wYyYCzb$r;=2S}X~t2ay0l_ z;wkdj^zPS!Nj604S9JD=ABym^6Ydm-trrl`$5Ld`6idM$S!8PVQ#=@amy@Y=hb+y* zeRY1*r_1d_!r%){Z76}(F0@ka=-srPNx!&=zt@M|NJeXd~;8Sot`|bupx$AKX zflh@Ft7<0euwY447T1xMP<#LOvP{k_KXcPav=g&<4V7UycU~xi)aI$EC=mpphN3$_ z3hSf=+tBZe@NOlm>Yymdap*5M(P8ECF=L^T`%U3{t#BNn_JdOgWA?TE_2mr<0em=7 zh41`&2)d$fz9kQsshvW5iq*?UqX=&B$cVWw*t^Db88TA`9eMD}J9f+cU!1*Tm!)mC zE|?h^kzuc3hHcxnZQC|7Y}>YN+qP}nC*H2^Gj>&f+BL@d3D27MoEI%v3%6czVjtVO z%vOjht1Ua;u?C;_&P$Mr0-q@S-;1wb3A3zdsa&Q^Fz?O%Uhv!R%U0hNs}o3}b__SW z4!1z=uigBn>wsHIvIBn=w}plm)z`oX<*ML&QFX_biKA|h=+C?MhotuS@=bsgr;U$T zbTKh)_K?dik9pDgU%=`dn1z?Ap!6VQBop2Qh3atN6x&9PM>>rx7Opi@P$OCbat-ou zS4>2hN+ljggj7JQ(G}_fdD-Ij$_PXo{@&BZ>~<>8VM>?>Fm19P&M2Hoxf3dLMQMyU zJvt;b^{jK!Z7NI9Yf8|iv0GI$i85K=_VngqRG(MSeGE(m z8p*$-VjOJPqIn{q6S%3w6)PUr*LtbKVQEK(k`_uc)0a(S>(x+DB~nO~rE-{(N&qHG z@a#K|HLI>7K_*jsIp9WGY2Sp2P=^W^H;EHg2?-VT*F$*cY$C0&lhkt$2iOvKuM)+M zOK=RV=D}Q=>05fN4+c7%Qr|;we4&Z97!^lM5W`o7M4R)eQnxaA51l2N`R}X3Xh=w! zdT-yMVhI@*@f8F9Tn~V+aMx~e)9Mw|-+2H0_rsdQK)-nGn*-kb_9y-q14mlV?7K+k z-v&;FlDhLh0ud=|Qc(!hRXb8L6dwjlQQ1(4f`CN464Pb?1OUEhBw8xPV0S!UhDxjF z&n^hHxb{MW%MGuB8o7CkM{L78;U~lc`*%4N!DG&R(0KaF(Yf{2$Hi589QW7f1M?4d z8})2I~)vJE=-gppACMe$c#J7L|JYl5Par2{ZJz-5P?62q?XmMRd=7+ zBi`u%gb_}+2?+R*`E{7TQ^$g!GYsw2`X3P87LrZ_DhVVG8UFgw6`?FYvZjADR!AbX zV%+J=l(wf@Q2g!vJwQvKo(iWTM2b0M5mnC_MkI+ztz{%^GaqGzk%w^~WC;e(snp4C z-kWFV2?s4VNv!H#>cHD!4z2FWUNQ!xcb7naK8loY?$}a6ZJkV-VdpUtRTuliTc|C2 zsFw5)zMnNcro5w9pLguwo}%OgOnFx+P_BCZ6g3thC39Ddb26?41Eo3E(dRLgvKc3q z!V@DgDRZ?!*Aq)sr#%tdK|O5$eRqBbz0vvrThHF{f$Xr(Cep`mkl#hCgvunW>j5?QPx6JRJ~se zQg+N5Q*5+77W>h7K6Pv+(mx$RlPgO-0!Tc11VXhM%;) zZjSre`a-xAgvYIahkZS^ggO5aOvxP&51%S5kYUVPw)_#StzILEyZO)xbl=E{Q?;Af ze@2!KdSH%x0c2Ts3_vx@8ldv2n(6Pc^4Xfn2zHRr-^%d*j1^RJ-@*4^6Lfmai%OiJ zsKEy1;BpTOcq(=B){szEdk@_q-rl?8u$@h36d4Cb>*P^Dk$o z)LvXz4XxbVwFel--$@d7SH7`~jcQ|=Mb%62rv-Y|a>gfC1yv+mJ(_Bmz#6u%n6|SK z=lIIBg}OTTJo>9maRuSF8aa`zO>a287RGeR6LbwhrDjRfdJ*7BY31PlT+-2S$cnjq47Vo+mKEpJ6 zb-JNhIeoEfBaM0Yee&)_Mw1@TYs#9E?!fT)0{Zu-V(;>%eB)a~_~X0n_`hgg``1$; zV`pt+Xy@SiFH=Z{;?}oV=vz#PAORK@7_9ckT-F?#wzfgB9!CYxU;norCpg1NCHAbg z`P|3}<@f7!)|}I-clNWtb?38=@hXkH@oE#-ebniF+X|sfcO(O>^Hiq&)jv*l`#SHB zkF~2GRC+?$Rp(Tvg=eXa^C;nlebnwsjMFF{uVt^fZz+arftM5Nk!63pvbR#yqYre} z?aO8%mEz!lKHmIESYgW(auQ03J-6&K2zG&jz9QBNY=G4~(861gSXV$ko74+$DM*a?E5ftE<*r3+X|hiu7h5dD4eNtw z)7%Dze4dIBUKrE|D(Qyy1G;$G5N>{A(Nc7`2NHhFm8U*wU`Vx> z%^YE~A&Wqjssrh1KY-NOf*rmrIWY{7%B#qY7vdAmk})$s?r$+NA}>aWB~vg+Dy5oZ zIuI|YX3%`u%H2woVj&{*R{8C74`#_I!SwWLX-9Nql9(%)TPFthA{0? zVAi5-VpM};x<}+;%8^ORN_UQhI<&AIW4l~m2z2|Wu+L-4NtP>JAZevAKcL;G?tx;% z1@S0ZKh>!*(-m-m8Wb62gN7J>y(^6I>Y{YLBDc)b8BOaw@It9W2_@JKaf!35afRRj zXL>0slXkFvNGd2mzRzT%OROX!XC6I2y?}$3JDD9)Oxdh0ynsIsKB!RN5UqcM;@s=x z-}BqT9Js8!$#kHR@Y#PA7U5NXaLbfr8k01dOy-MoRN9i9Ta!AsH z&p)yEgfqL8r>5`!Lu`l!B>~&=Jw5uqr-#J<{-~GHwKKGGFfp_@bu%>h|KXPkn)Yh~ z0M4_hW!wEh7E1_G^i?3i#I(?;X@8IC#vI&2B2iIWQ_^vg$6XRdil}^p>@R=qZu69! zM}U#bz7O_*jS@nn?Fs)n=tbq_hWjMvlh#R9m-pMR?l%{bYFTI4iNZ4`Oj9hCp+xPc zb0;0F=lZ4z{-=_wMx?junW<0&DJ=h&Aqd&Xc#swNV~04Q|3kN$zF4 zKXiWi-Q(hat4MKt($7_ak<0qvDIvqlmnqqw1#n7|%+PC5CvXGOdB~n?C_w}S{Q}=f z5LoiU-x{f_UDZ01OmMx$ss!2v2iSW!R;kct-3S|{$=+O7F+~f;UaRHA8GULBp`0|f zV0uesX$K_rg=jV4Pz##K)F*Vb`_f__a=Xds(K6*po744gHggpg=zQ9#{o)Wznte$f zcQoBnKd^iVI~XYH0^to5=0^P+Jha{FLDhvL@ol84$VldD)FkcQuXq;yXy#ZoS#{-EWO3m3=WFWX402<%S(#JdbrprtUZ)KSE>{~M4w01bTyK_8&b5MTSuAjS@b zz*6=ly@<|qozlC!zszXBzI^0mVJ`-}D8*@2`pSrO?zS^b35}iAgHpwC4a>OR^N8A5 zohPNJm`JUfsPB`Y95W!QbyUVvbGk@bWaQe|a5U_029H{`O4;J*&`jL192-_>)aOJ% zRkK0*X$ImfMIxQYVcgd+*rd1$@=KKNnIWgNZV$}{Y` zUyaI#q+cv4M5qu?yD_lBTRt+3qF*w{x{v1S+ZxUwJH(<3;YcU6Q6TMlH+V0BQU%+q z6`szy>;Y9KWqmDr4_{sbbVtw$k03Ds%or+LGJ$@;9YgL+^F}W>^6U|Eq|g%91R5~@ zh-!QTbA}E+642?Wu^mhvIYvA5w6Cm5@)$;Q$Tlr)6LBmA+q5h%7oJcYw<{K?F>vig zxOmT+cX{m;!t#A-X$lraXxl!V@JP>ja$&UfOD;V15^hwrhwJ?90_V9WZ3E_x63`cWZAoWLZqtB`N*=gvwxRab6W z+n;3LI{a0-STBjL5rfj70S)XVhPj|@KJL$_+sc9q7gYd~*#=~q{rF35h}eoy26Yw=q?k(Wx9bzf=w_}!Nl8x4PCfCs%8tTTC~w91 zA5{b&UbClu)5v%3tNooZC;fXk)47 zwWeQzW|Pgoc`%u2)A*nu$&5mP#~wKG^hu4wH%@uW^wn_(sCE(q1u5oKWdDF-qouag z47-t-oaWkM#&u$VRyK2hg(@qidPo+JAeEbmY{P7n54AB!yxO7PsMv83uN$g#=6-qR zmF#h0iKILBf=6NMaj4d=%f`mir;3`O!#7p(_d$#5Qh{p*aWOEFR_uCb-`X<{)otCk zQK~brK$HBrrMzTnvB~FTlUT@T9O~=L?ofJq>#cplIGKLpoI-~G=_Ip>dk*Z`Eyjv} z29)nua-@8q7)u-pIHZ9Mw5(+k87qK}{tR71QF-S>=J(l`*e92HhoH-QM)9YXZg8OZ zf;LA99(hKUh<%;*YimY1_}~u~Z4|K*?m`a0;+e3n%+TMv?{YwbHEcsXk-)I^Rw~PSR_jeT?#FSd_H-e-US)D z$0SRjH2vj2a9TCLs+865*DUWFr{(>xUbFxEss3vdu28c4$5!KImD&_oQSal6L{Xe= zI$NtWkW>$zAcupnY94&fcL^-i@5lyhx!t1tR)SwM#un*ex z^q|Y#UtmgDAYP2k;8WHvD(}S(zBUU+7*rC+ z%+3gyVNgF3$(;%t)cXYwtg{P@f>yjF1Zh>yXX@{4qJDY|e);)Y$U`pGF|%4A*Je$N z^r$swXoBZR^B2zt?(2R*pK;@6Y&@fdoNstKC`qb4zuSV&s0rMora5413kdY39l}-I zIkhAQ4zVwGV|w(dWW~TLW&%SgB5SjF6`&A({s-Pl^6s^u^G)!?{C9b9|KIs6Z0PW> zxzV9yF8}AddqxTeg^wg=Rw-4fM;v+w!89k|f0oZuoB;jm~5<+aCP9&KpqlVs@V9IF?-RB9J$y!zxV=R9!-;_Vx8gl zC2@bA>6Fd7)+lRV=MJ;iV6pHzTdYuD-eI1sq-4K-o@%+^u;yv2?3@P&1ZjDQGLE_T za&g3{?u^k#mv@XH@|%a4Fqp?+lLp$EH=CTZHH8OwhNTrA@z_aw-r=XL2u|cCmVb0~ zk7gfyGPRQxk#xL6&yko|rSh<5T`;;7ih_sC;1rG4jO5R>8z*oSOy>o%lNYBurH0Z> z>-3{-z*#p1+DOf_Ka~KirFOoh zc9v~cUYN8+q~@DX9vQq#YE6$9mY2)M&27kpdX2d$2j{Kke~eO`CL0D5A0xy>oAOk` z^+l~-Zb}~|sFMjd2p-*=No%a_@n_8#Hz>d*@}u^!isY(afG_n_@lb#(ogPE;o^gEs z$cey{bA%D;KTkiM(t<-3YU?rjMA=9qRNYCCo-jHqM81Q@t;CKeQuATK2X;xuF!(yp``99vTS`aT540&NGaS z)qZ(<$+qXKZ(Znp8G(P%cZ$erFtwv! z1**>x%51CM(C1nTWFdqJ)m_l(snPqh><%RBU^3rnQ`z*UkIsI^rC|@H!~03I_)n{s2d4O{Dv1@U&bHJRVHG>|%#uac z8pn0z#!p10R+fb}l%W;ou14PaCM9kuFER$HmtukFqjur&Ejlrc<3;8A%opHg#_)-l1>tr|H!jORcKZ_!nqF+tlN+sy|o2=k-a!t(e#V0kGM}bFtKpwocg##r%o%*B$m%&-o)q zj${Qu3!F4R3Lgt9ND1G~;qekkD(XeVK!bRM4j(#9U(;6Lnzc*n+z^P<#6ULioP7U{sAo^nkwGEq-DmVXyE;$65a zEhu4U^CpGjA8R$bjxci#Qtu?*vFr^kv|r7JyPzEo>atwpSQwx4Aa9~C3w2e+*X5oOhhT~VS1_Fb;yv)Ve6`%V&QPZ*)E;1c|{{Z`}tl)h1C{_*g15EK2o%qx}gD(;th-w8gDXG9aDcgp=Aw=A+vxB73s4{ z`j8JW+ivBD>ZIH&9wWS<NT<&_uXX~LM zfj9TsnxtZWMb~Wn^0EI)`-P3AsyT+zY=7D)c5p_w{NO99ip9z0*JjPAvQ@g=-GRY1 zl*nNzw$qs%D-1+#Esy+V>FkO`GQS?Ey97N&2V-$3-U7D&z4BZ>u7Vb#d@D)@8!6WM z1!06kvH2f)q==G^=4oXm8 zu(6+VxO}Td3cl`AY3ze3sPhiTq1pQ<6hx>lK&_z+yh!CB*>mv6Se~H(F2+ ze8+#XOW{j7GWJMm{kwW@QAXO(wx@)ii9F>pOK?3d#IUi`qfK`FevZulH6X)_Auh3` z%O(fDx)O9y4_`YxgH5pzDX~wQF}+Y8|H43I=OlPk(OKCUol*q6(;%=`C1~q*zN4?y zE)E?uPrvXszTnW)#;+(7l+?LLk&Z9jUt?qWd;vl_K0(E{F!E|7m1rr59j&*TrE!%Ml0 z_aP4rw|}D-XOARDWINJLxe@eQsJ=n3fxidyC96nT9dMP}avFi6jqh?{y_;WKxUKFx zn0li27yQpW?SBe&v5uqOtiL@D6Bz$hPKUhyH@o()!=ORM)dRy2&8rimZNz96quz8b zaW&0>+0;TllE|{gKaogsmJg=}nj~!^TB2=5)7c2}Cp_;@UKw~<0ht>JFcaBWhWI>} z`tPzzc)@)IKs%2tNAVOp{mQvj5_XrxP1N{g`_@y((H)jHmfPOt+mCXY1Bf!dnV#2A zlX~v*r7N&Yh}4{B__|Z)}wS5SibttetSx}n7Ch<>!x zw@4mLQ3rNHJ0ve9(kepDot&uZ?YMdaLG9Nh@r9HwviUM5Rb=tW{C*uX*C#!j)s-@f ziH&uly6$X-5qD@XLa%4+70vJ`)@Es?3ys}{js{u?kb@7whHKe2>+!53thFOexwHW# zub!uWP;D-m;{-tlRA-pK$v zV|*T8z1oOMV6PiZW?@qDRyz8XSZWr$Ep!5lm86$;oM}K9?O#M$$oxukc7S!1` zX!E~2%oLnh^|`hIr3@MB8f*_-AZh;UkP~bk8(|X=n?BhqIa$UlVEOM(4)NL0>cO?a zl9^mR?27WxMY{|uOC`Duc}HluMa|0m%%uXSZH)0eh+URN7=7zBsC9u1>7)puw#ej* zk;U*S*X|6$fA=BCp|1v3a#_j@Kc)OGC+L%j=jvEvCnJxKTH&AIXp6)XRMW(B^XJi` zPUzH<{7yu~Y>?&HcY=bo`z;GAKcm?{aWYvxVj*Ianw_4V0i>5Bv zyFj?|e%L>E(r~6Fm;tsM682lEg`=c{?;UQ*P#NwzRl2#>qfBx5ZVaV~tg$?25DJ{Lj^}N!xO6)B^0% zV)x|Z;$!u52=HU5^UUcev-*#;&`EpvxgSXJ72;!swdh=@$8L&h=0~9@*yKG!gb!h; zS(Q30Ip)nmwTofWWEg4kWske^6ombj_6&L;E3J4RjZKUmYNg$d&*5>{X^up%#+bUy zBJyHjV72k>6oNGB4K47@Au(CR&c&`qppwr$~@QWBEvE?d!D z3gOmvz%e2C2pIWf2|?z$GU)~-)i0Jaj(AEhAFc?+&g#Zi37Fxqm zn0nZCM!2m`ukGWHCr)gv?k7{kq2I#v(4f^zK}aklDs~g`KI9eeii-vc+%-khcF4ws zlY}uDZd--ftU6nuSPwh2DJbHErApJY13+^xn= z{MWlj6ixDg^8xC08N1w>YjN3K@OQD-U`CR`2CNev?wLx03#6b^B>6|^v3jHn2gp7s znCBHaOCzF-d|aESxXO7Iv^IT z$pZg4qqUEcq_Z3tARRf5=ti3QUJtHMx!+)GVHTD52%HyGd_h{rZ+Ec}Sbr4;0jTfI zl6vERCYT}Hcg-C~0aHq`Pz+3H#L8hngY;?kG~=RWwAcNC@4%;BE*sJmJJW4S!EY{C zDj3@zJ`!W4x1V=&|8t_s_{Dwco6?ByENAxfn$@&@25!lOGA0ZwPFs*W5cg97h}H>k)>bZsQVfc6A;pz0@t28VBp^QhDT zQfXaaUO*n%?i<7YT}#Y*8tD@tZHXgksboK4Xe$(;^~s8_LNii5y0T4EzlE&F6a{%E zww8^Yc=H^n4Vq8{&NlW=4cI<(wG%O$!b_uF-WK6qs!J@LBl4s<%v* z{T=Jf)UNHC_C`5%GH%YM834gbn;ki_V>Q6$>SOF!#YW}L;I{d}^~F_=8pv#ef-W>2 zed2qXU%24Zt`O?AMp_A4=hCI9k`O*m#w>@`l^Z;c>M94gUqNsiA?$C^x5aQaQgi85 zS8wj~2`4*TI?XTmP>@}wMj!&Endm~1TpO%50wx9{q=}5XoyNS5+TE8(Lm{-(@`n~p zE5p&Fn0x}~+t#>bjjH*RI~^gKqffQUF4*sdLCn2pqG(cuIixfI*$dT~URe$6is{oT z>i~`IHnUP6L8}yL$N5I9={0zR74S!9ANHL0DnHgMRK8hVq zbO41fGfD1d%;nN-%k1arkR)@Jje{L zu@G+O<;tWi%`xrPy9{lJx=BlnR$xn)f}2dg$p#(FAcKvCrtv3FV_?mJ6a8&b@X^4o zabqb};WC zdf-hG=~kM03a;&Exc_nSlZy>?9oBBYI?LT=1^W83Ct)LBtAZv{x>^-Q0i{_)h0vM_ z&>j)65U|&*v{_|-ui$Pn@ZiYziV*}h#nKrab-BY2I*|6#NSa3C0tx+!XH`g?hPF$+ zLw>J~nE;>x`wi`}@X)~9XF{^{W|Aqy{A@Bv=`p6v)kMU~(K*gJSvk93DR)U$t4r)I z+{`uFL_1y(aA(UbeOW;DR9(L=KJo-F^d!Gn;gE?qV7`&AvTI$n5%toL*PNGU#XWkO z?AvyC9NfFQ(LiB%(HE4d*cM0hdJ!mV#SHD!1GFxRPv9#ai=*aiy|V_`v)?&6&ysOr z5_sq3!X|jY9lX~)9OWf?$Xj%QbP+9fq7WmaOH{h_sB;I%A2t#jwF&8+H$rDz2jBWrIFs zxbN-_zHRM|M)d_-*F=u~6G_Z-Apx%#L#%XlbbBmCRZ3)3r5$@si6IbMY}a_kYf(4j zi?MYdJDpfdx@K2+1jfE#EjOuEGAAPQ>z_minKsxc_6{Er&)94aRvK`zB6n)X3X0q} zZ%TT|i&CQ>nM6NkEO`nmF1id)LsX4;FzRX?lrd}u>l#xT;#dFKWwM?#vZ7GksB8(DOa)nu z9A*Ht+3&_;GKZ2Bj=nG-^F=}{QWdQ0sJlpkiKI}>kwX^qTvo0bSz&yjJTmL&X~>fd zX@k(hmw5}V+B-^VvsR6Rxf#;9)KthUHgw1Zj(O6^JhRkm{v5J8pJ8{pveqg2_y6Hw z`Dcw6mwt+){7ysJ!}+e6|KH!}^7?kBHvc0Or9j112SX9_Q_CsNk~xk+I1UROM2vLg z5O2EvUQBd0o=S2SpRl0>P`F~+YFO8HZY37>9lIz10=rKV8Z0L8lXs*sM}|xc9&mFg z*PrKN=SM>J;C@FGw=puCd>GZ9;X3s6=5_QYndx%n^Xtdy0F+MvXG~}7rbs@s!Mx>? z^YKll3QcP98rG3VeI>P>Ee&AyOmEG1Mz6x8c1TKq5^aWMgij1qFv#HQ2p zb0a{6_-ai8e7O8CD}M3@VE2NEZTXZWUAeO-F3<_ruChL4(1OEBE{yY52Fmgjg=s^a z#fUb_&q!5n)KUYc=%EWKuIOTbv={Wzg*mi&Jopd@3alo?a|+xpK^2ObL>U)7<@xF9 z;_al75X+ushG|m(QpEJBYll!SJ)w9ZjCuMgF?8Hc0vx#uPNr9OzTW-kDAgolGb4ZL zthB^ptjpoTdGjl!Qzp}0%d+cex+9t$g<~ZnJs?mM2$(cT#>Z!)i|~qtakx2|IB_hUIb3KJ&jw00zGI^jrvbodxIo5qM8pc^ zCicE!TW{pT#>Ihfuld(B_^v>D96Dsd*|pQ5F>2{$pg?_9aw*^?awkcyt{jYbrTD3o zo@8x|8vYq_d74mu6^TemQq%q~^JW>U*OXnzBwb!AEfSO^{^*9LZC+F4R7d55~)%@AsHgpFi(^d#ucpV zxp!cR7yI#Kp_lYB0QQ*F!Kf9REVM3)s_$}bNHNLfI-}ohiGpjP7|;dDM4FGTKCQM` zPuoIGmz*5-6zVlmt)TL@iu&Cv7>V85JeM$M&)&rLJ z75OGwH$Y`{39tI+C=Bb7Rl{k=WkAqFz&kydqrQdAj2@U}?Wo-u=}>E471&Mcs=R%N zGcQAjuu8$rhE*U#CVzbRN*jcjAQYLHi%1iMSFbi|HKxQmHId?Hvau2#xU^vzu6trfi8a8$2gsG!@fky+T{6O& zJo}6n{^Xb}TQa4A^%`c+49ZtzTvn9h@}<1HIe;oJlbB>MvKP7v`%B$;w}DX{WTwekq?5)qis4P45%huL%7G-UU^ z!O3%5Y5t|W=tt$sf@qsz{e0m;uJCN49?l%r4?K+o4ET6 z&w7oK6NQWb?0KVgqmk14NTvi*p`5DoQi79IO4@i^Uz$6hfS z&Vc?{Jiwbylw&?rFyBzWDk2U^ymV4YD*H3e=WZTS#12snoOjI=PeUZ4rVr!T{Te=^ z<}P`OC*&@k(DnkPcC{>48BN^%3g}VL;ga6b<{fp%{R+i68z8-se^J)kscxh5c7;#r zqVPSmZfW^;X1%W;jqr793Mcw@iF>-+`cj+2)g90X!`OSi$#4d%ZF!})&eWk4!RGcH zq4xu^Qry4%b}fcehTR>1BWNetEheR5(51x*ebM;VF*X3|qC=_i4hjf11>`7`!w!ml zv#=2^On5*ObuvUNH}RT+ifW(Nj>*@;4nyk56-`1jUgm*bq8i~dk8sjBI`&xuIEw6y z(Vo)zG8gt$r8DnF>`7aP?OD|*GaWtR+>GBYhg6@~!ecV@!ZGX*H6qEui(r^z0;DZ}Y`@Tz+_c7!!mc#CRiB1DU7lWosw=41!t(!V%(DOdish|%AP z@)@U0zZ_Od!@sJ9wnUy~q+~cx&J-WAr91z+u_91X9wcEiJ|}67+Y1c;eTB8Q?QFkp z@W-Q~Ku~mr@>=Y#`u0lD9g|3!BYOf_O#)fW*KAF^oRAou<>U7c{_{P2{V;OEl3V!0 zvt>eZhsl{^9VT|odE^4V*Se;KvaUG+j_n$iqw=T8tt}YuPvWImSqppE5YV&Jq^LzZw{j<68 zpTJ%NWtXO@Z)i#{#;!XY!VpPD3@?}PaaW(*lAl0BQQLXQDrJVZd?7Rzw_|b5qoxmh zY1X)0ht;oFtXiBz`^1C4UJ!<)YfVUoVbxJq-T`G-QgyFZtoo`Qqxxxmm?FD#lO$Qz zV;NCX+jWWSDe+M45_4UAb6ulPOD3;Nt~H&!R9Srw$VucCllhr^R@KJ}gf{_?W}U%5 z_m!0~`zu5}SVO8D=WVFMaFyfwnT0g=+{rTvMRdU4x+v zT`dQx%k?q@DD)-kn$^N%?T3nLv|;-_YUcca#86|CZ_xoH3YBwI5~^xMg)%ZQDdE=a zzy7M7OjXe>BX}lQ#AU~U0a!FcyLLt}WW0H-D9bvN^JM%ysq5IK@5q#c6d*m2>{Fn{ ztm~Ih2&KDqTduSz!7@X=n?$TDPgUw|@+&`tFpxYYT*nz{**ro}!n7};!n(rD75tBVqxDJpD;yN)+3>8iEb=89 z?um6l{|1>#F?yI)BaD9P>oEX*X`Fn8)ro~3|9mgyX?BRbEXAR2qX|z(a+ILnPqpVu zl&~4xM7=r_fh?6k@&1%%A%-2dnQ(SN$jhDe4_{As>)0at{o6Wy;Zd>3sU6p|Ya?<# zqgT{rY7u|_;f*MilfErZio8QrW09%)g^ZE2916<(HB@{|1uMorH)x~ahWH22wg~kR z&e*x~4;G2{q|ndw{w+gv%JW3mdYTaBIG4VXo^o0A@}p;>%~~1ix>6_01Z%Lb(cX#o zA7Z;*7YqEogwISFu&i{XR;R_RBt(jY0nXdQJMa|-BbgDRcu56g18=&C(<*ZLg$<2` z4S3oTH4Kd6jmuzF$Axc9IYJhPqYfcK=l@A407t3PihS#hJpMaFxx9m&sg?1+GxmyS zO8-w-$gp876bN4ZfXrI%G6BzCfdT|&!mK*OUodFo88(7B8i!hW6b=anHPFOK<(;LL~<#=rJm@N@a~ljK0z&XlZ8#`k%NqAMs#yl}$QJ_rR^d zbkyCN370@MniCeM42cIVCT2>UVC!z!jTumjcKzdR*UUSt@)GO&n6Syc~5# zpPcn|+v@HZ*{y!0lQcxsDa@#ssZ5X)*3ngtHcJKCNJu$X#q71}Qlq*;>Jg(D)SAIC zs~~@$xLn2K!j{TQ8;Sn%q^XH7hnn?zGtu&Xj&=w1Y+->*dt$a-QC-xq%{t9pKaunxHn)^&U>2;n!AQ zP#{ua>tr>>tb_x}OrAb((_b;-&pdeE!+LTMhpP9ltpz$UM^+%>pDVJ}5nW0lO_~M`Gc^Y$nHi@e4B98TDjIdK8K0nSkJxV*tEftfVo7*B2M@9pu^BSf3_3E=NB)@*g>5a!my zsktodoWtA|)QSBuhOFFR$@ja;rs;*}kVoZbdQ6OP?`C|SZH*3i$_=U)lH&vnf!8|04(E@Np~6(A57hmHLat3#p1G@E_tO5=0ARQuY0o!dCN z3>7TspQTdRBy9~Pr5{!W%kQn%k7Ym?i$@}R^(Xq0?|lC=NWZzZ-_AdKwg~Ew@PA% z1RN1kZn)f-B1*oDrH<}IY-=Ix98QaWu?%6RkH?y7Kd!)Fvi`8gLVYCXJSE;5cgo1CVUQpKn#@B^#B+E#?qYap$ryHYq8t;D<4(WuI8ktDAv^0SFFaDP~RQOf1N{JG5g7#_wHIRM5rIPm3($NXQw9 z%9So&lwN2?r=Jxy78sb*x<~uDb~VD$c3*y71)JWL)qXiQFN!p^2qCe_Rzv1d4gR5SKq zu}C?KtQOo>9q(VDQxpRj#ccsou)uo==yz#U|p(C;J47ZP`#;*OJvHpkoXseW0n^6`bn0KXt z@%ovhKYy4g&_XC(t~jQZ^L4!xy;u!0@(QTSK}qlppxmOwqf+Rq6S-iolm13|dsMY4 zdpPp-tX(=rXCVlB%(!?2#aImjGRx{sDVEGGNar_fm^;VvPAPQ>m2Td#zWxts=M-KE zyR_-YN+qP|XjLH5nbImtL|DN-8mX&u^Jymtz$^Fy&{7Eaa zC4w|codFyNsDPv;rpU!YHJGim0Yp`}+@w^85>Yvk1&RT!1(8sW5$0NrO6JN`5k+## z@MbmN%A}e-bC_yRVUSn$*bgeMp1-0qR8T^0sBhy9>87nZeVr8{9<5jydv?@IqX*uj zts+pexx}7WiTc#h!;)sp$gkyg%D1M=trDkH3{ru67Yx0Lq&571Y~nMO!>6ut2Iz=)e}T%nw^Y5n?6&P z91qff_~6YHHy+ly++A%OAbU3#h=4~DKiU28t`I>QWZQ`qtmjn+PL;)WZQJaV#HQ9fgWreh1xl0>CNwQP#&1WH~#9KQHOvVTwDp?z7B8xmWyG(LuYMq{#PY7=Y%>*JdIxyPqBYZb9xvCHK7BVj>faQH%yR|4{n?+`u z)zk83dOIFe-*L}ob5IZIIeCJD`HIEUynQ#krEGqW1M|-9yaz_`A@-21w~u-M(v><{l+uN!vC}<)9%8DE)UwXmdez z+9ui|?Zc{5MGuVqb7I&w(Gc>zamzU&TKmO60{5qx@u{b8eD2i0C*@WAkDrf!F2$*+ zJ76zjaJw*tbIm6OQiXzZuK51Sk3IB*kBGsB&_s`+jy4(^xp1~9iq*JMpW8IFgx25g zWrHFiy2u@a+x3$M(#QK*mJ?=BI_9x;4|Rub-*x3Ii8-1}#QUJ#)%E1L{&Lm1{rOPeJP7+Jh9@cW%ZrANHb-k zz0D#aqAuN6p~XHGz1_Uf90&%o(#cfQs9C_!`k-g$@qMa8;JzlLj(NGEuD@vik^G_* z$qGv+7RtZP@Zm2Ktr>RdTF`zc^ShckdC$ga?7_Cf9# zT~M=Up`F&&A9$z{?=CL@qgV=7IOtvK+ljadks}BU3ydsNkBlF&1G5t!*tbwUQ zK%r+ozzMbQu~0RPVySuwXSjyl#esQT!Bq0ivG(Ck$l1tqjI6~gE@bjVM&S!Ju#$2< zspos=$n>qmnsETrJG6?(;!FZG)erMwbfyn|kzP#@65{s59LCPa5$1_)H>>gVm3mKY zUO*kF8+A-Q$l3y(&jIqIC5f)cVx>*97G({spX3=4T(EWlAEF?ExZjz9k= zX~L-%fnjwR;vxNb(Sp97x>VBPz7$Im+yWyH)h=GY;;B<2qT;L`Mslu56Tm}3z;jDb zd5toImwJzByUsP82`qDmS)C}EnCI498m$?G z9Mm@$F55atdYFBqfJnPHec-Z{L3VCENm82c&%{5cNq(}FV(n4#Rv@p&XqgnLRmo(% z;%8(ui{SZDvnRz5>US5) zW!uemvXQ zRre}p<8P>N&<&li>>y&=LG4r0zy;920l#|_GN}?p^25Jt;Sf%F#c1kN|Hi|?B{~!A z(87h-aE&j2Ap`HzDWsW=ee9R%?-o%!VzTc3E4aa5EF?e+D^jC7m%Cg{h_jYNa`;4x zcRBxXgrRXqrTZ}alHr{t#omhof}E@;b-vC!ni6jrS=0CWYiJ;Fv+{4ypkV*r7XA)a z(!*z`z=bM#tB1JYn$KEH^NI|WmDt-CV?pUuOgF-tl>|vY!xmP8-I#-fL{n#%ks`hx z#f_ARwEifITlp5@!<*9m&#(JPgr2Y9gP4VtR3}EVOZG^}d#y<)n=HTf?)Jl)W$_o5 ziJcJIc2$n-*#mo<213jlH~$Dvj;EnEPJ{D2FcVuTmF(ABT@(20r#1{OCRLM<2EBwO z$XUaa!=D5~(e8=PLyTB(9$AC>u`SW=V6F(!yLPW6Jl46xJ)-ZtjwiK(6ZfegY;z-wl%!sEtUUuu&1 zV-4A{6+=~6j-RgBWHM1ySlcg7VMbq#{Ui5}vn1sVip(-zQf8d~VX@G}6g^9ZwcjdY z^o^;@QWN%M4R}KyKq@by@ejfI_?qy~!){@86A^w*OIu}OR(AnY(dsZfpv;?H;7|@M z5%pfzan%vf+o(^qvf7{i<&Z#tP4ze&4h)N=+&zp8*x14P3s#3~mGq6@lA$*kT%>&_ z7*n{=^(hIE-I{$MAZX@0&^i)xxS-kVWVc>jxh6{<58nchU>M5Y$54RRC+XowR^$f=qlL8N$sTg<_u z6>B+u-HKaq2T?i-`|5DNI=^4&hV}Q>^~#O}M6dSq_u?2)h$YJSWhZ|qVv0sX#mH43 zdhMMk!KiMlhc$xGAR&;Pt8^}qD(xyqwFl|3(E^S`wXFYm))OZ&>+v_f`2uOn>stJ@ z81&XH2Gv!7w+F8=xc)+uX6ogbYeDN9S2Jkd+@`{W+CxDhr+3BGF+2y$-@8qPH3&S5 zNDCr>)gZ9wsM;8Z zuW|XeT~m+73WdRa^gbZzvQj}smre@jSY4bG_XbwubA01vpq_}DnTi^Pj2cYR13S#M zucd3eTJwRjA@})rpWQa>t9NYcwVm=NxJ+KQO1#PXL8@~El9vWS=3NW}7jd4Ka>4Tq z4Z-aQ&D0`YzI9YEx$~b!0+&D4vRm`h?!N6?-1i+WKS^swI>;!UuO;Wg9B^)R?QV}b z=5WBo-U^R@tMUYH?M8!N=4VDeAXB7-JX9#tA)dNv^~x2X>8jB2-7ABbWE<#xkkeFO z2tyIZ4T5H{bfkLPW5X0`5j* z8%?!d&OCxmQmCsQhmkl_Do78i5%0!9+XDm`n)ogKv&f?wVn-%sg)FORnKH$;XOUKq z+}k-~HBe%|LTYNm^cpLzQE=hk1l^78iq%DpVf)YGF3i<%k&wbjq?aq>{@f%0e5-mIKer%y~x0fO9t5%q? zfEaUEx9+QM-(JXB0f%@G{1kGv+UBkgZ!Y<21pe|RbsD5{Uj`!&X}*n8ogg-s(ZU&E z^`z)3H1FxlCC$GvTy5C*~J_q9yKcm6H-KYzcJOzmx4 z{@E8OS*cy##4st@OGk9d@!B-*&>x0)XWEaRln7%TAV^`zbwmY)CgZOm`7w-m)191--5l8-nE{YM7z{B`lNdU@A z5y4F5C$i#aPW&LatTOroHKfk?t#dR2 z!l-IIlpu^ACqHrs)F(p$L5fqmFVaIz(e->_Jyu%zP)H7?;P=%OygH`D+hV_Wc>~?GOu$r&wV9~PK;4Mnq>97eCI7m`P&>H(f zwXmAHv}JG!M|BU=gK#uCm09j`LOINWNAp_`q?xB}`S?ohB!E9~<8Uf(e%&z`T(BAVEgU=o3(DU2*FwYgnobi{bt|pC&iCL{KeCZkX9T z)x(_C@TeMl_tJVL)U_TaeYVEjDO5MlUoQ}HBF>eWprrz$$#I2n7&1kXx?>*aRV>{Q zShds$+nq(>DGSvIre7_3W_$5O*72F0QP*_$!x_|g7g#t$q)Iy0qBu5u1QEwb7}X|8 z=!t%aM$rh@w60i4p0qAgBXyoMW#U;VoqXMR%)EC&!tT-0*4p%x<+O2d9(Rv$(#%d} ztMllZ&im3lb1Q1;G@J@0>V?%*b`a`l0SaBw7;5RuYm1;Sg4rD)O^_ z$@_|S!_zT96Ase2D{xvv%~frLW^g{!RH62%p$2jNN<La|9neS%@nbhQMe~r zOpB<4W>F#XM#7Tie`T@70z~l;%nXc-nEv?291aXk&R}YsrT%t#BHO8u=oo6>-<-N5 zmRH`RYWgK)muQ%*sG$5Q+;ynv&Brsq-uz}}3aUjTC;xEnvh8tfeY~}NKmGM_Dfpv# ze;M;N+?rk0elyPSa4Ho|s{3Sh5zl3+xFe0SJ$fa|@Tfz*eeXz$cSPFte%}v64N#6q zlw-zLBjZcxEoW;|0i4F{I5cY=KaUv~7_az3i1gxd^?NzyH-df@>WYl@z@xu6Od#lN z&j<(1NIJhA%XJF#_8G5K&tp$I?^(;>J?51LZIXQunY$gv((yxuHa*TUrfqOqR9hF$ zinXvmOGU0#Pt{7VKFs8*S3Cztj7%O#CWm#;k+f+aDhze6=i*!~HKHY2Z-w-`;CUm{ zZ?m-ZIGiY@E5t-?rra~cCT7lxgLdIh;xU}?r6LIxI(fMH-ixkCP>Ep@qQS&;@Uvn5 zw|cC>4c5|K(D^6o==&Tw2W*)2Is|F#dWEsf3?35{e{Vaga4&IlRwm25NBMa}HphoO z6}#r>(7gN?l+=ltRZzq;F?@WPjjDWV_czSw*GSQ3BP`jl(sb1^#FltFT8^aC(`Sx3 z@{K@$qe2|DER2?{pi4?BbQOCIdSAi1bl|ZH9oZc$OvL&k-I}96F$PcPY+;^|qBqir zIf!A+I{i^#62tIOqg@^;=aH(aK*Oh%?2Jh9X6RZjS^FTA?AW~!qx$@UinS%XZJ0mk zEfws}HGUccB^QcvO=m>kF~<&&J2DhFUNWW($z>0D#bq#xZ%_`HQ&M~d>I>E$e5ln@u9~l=;|x)qxICq6y&j22m#s^A~>PsGEo=+|gJ>?+JtS z+Ol3M#%o!Nm6ud!hkcNAyG?LFA+7Y7{+yV(cc(HkXLb+L@*=kQ;P8zSr0kx_-D8W; z2S(@;V@CjuWsc`w7k%F^VbM*4^`vs*YYtc_zk~-Q*HHE<<*};>uO*gZ9LX}V{;kDH zJEv?fjB27=hmNsPTxZ)8WjXvdkk+ z#K)o_!?0Dig8tL2Y*=|(`zb6*G4yGuHH%`=)Oy41yP>Qv3;9l-KRMaE2EU|Cd+D;> z&aesAZs8r0`>^*%Nun}EmJ!>Qfj56!$>rQV3S$-z?#Rvza>3x{oe6+^}Y>qS+r4-SFGEC>d%!b+6P3w57n~m8eFjfxf+TLel5zJwR zi)oUv4<1vud>h=9<;AeL!%yhlQEeTfYeUvC{bQ=IQehd<;rf0p+~ENf9l!9aYL;&! za^T438JI51Rbvu%5!bf*KSekh%P*+Ntve=HaoBR;x0NR_FIvMAa;d?$a1h#P`T;Rd z+{yGMyF%B14Qd_heJI+zXj_}!6U~89$?Q+f4GY*stN>0vFcFMh9!hkx0geXM(0g{(FS@zC^D99?ACig(mOKeirCYh9myNSm8+ig zkdzmXVbsxFn}cifYM$^4tlt{kv0DN{UW@UFEfB z6##L;pfeASa(pd<230ek-^$5MLk~UVN5~iruHc~_DlJ5M6 zr+2_3toRGqXTUSz>}SB6nz*7XoXIT@d3#TNheP6ZvQi|@IX%t3S!p}JU4oQX)77rV z;NmdObZra4vI4_M>Y6W55>9!ep_6LVu3JYwCn@`90$O zHxAd8t@Z8Q{vYz=H~t1$6q&n|ii*k~5k69Y0F!wf=$pXs>$wN41p+8EB$numij&5_ zf5O-pFDKNk{3XGrbgqnxf>selQM`-*y;7pt)UUCTyR-Q%%j27( zcv5&h_CKG$lbk(6aWEWIv%nw8A~ zIKR56P3^F7%{pD72ltBt7(BRs`o=RGkRhqngWI+P!-ufD^)Fsl^mKhD=DI*ArEbOS zzo1QE{G_Llo3&ai^5M&&nq|ntk2+(^n*q-IY&nI%*03%SZe=uLiiORwAbvoCPIL*O zngcovb!=I}TVArCWU%!6XsCXOpeC%?F?@~&g|G@C{3GHgG1zw90@Mhl$YA=)mBANz zZ3PS2aJjM!JslWcd2Dg$EY9iqK#-nm`1!s;&+y@i}o?W0gli!`T; z>sUiw5LSOJn|tA!YVoBRM(JvDE=M}0T}Ef_@%@?YWuY<*e49p6iogsF4DF6^=sNAp zKmu-?9iKIJ!GtHNn$a6+Qk(6yq^tTBcdM8Y)G66)R@gpS$rm~?-2@`|MG^#+zo)W0 zO!ZC#6&G!YYn706W+=cfaZFqg#6SVY^{OWofxycv~BM}0eUb1<(>={~QL#Faisfh7>shC8qo-k0!CKcd#Vs38iyXsyD z?7NPo->BTkn>uF~9x7=jLaR4!Pp4E4+z z3|n%Ee=oEzH$Yn&0P;NLMW1tX79w1bvdi%f&cpYE-y6eadrjQze=~QNSmD|&01>iQ zAKg=Q*Ddg|@;_1fuEFp4LjF`D!a9~$6;i`e69i^2AI5w|u7ySD7S(4CP%}%o{WTC5 zDSfY|3Ty#80aBv|PGTZ!k4o-$X;`uk>FfpW5#~pPrW{~Jn=Yz|z=lDE>|1`L1g;fW zj8c;!4m2(y03A1mk76K*zGqV<8TUpMIr_+MX&th~ml1E(3~zNtmdsn8Ha5Neha~d7 zDdW0Cj3t3pX(E?;l`S~IaXry8WUDvJ;Lq@{6@foqfxvH&5RZWnW9ne@k#X_JkM@n& z>!W=j^+Q$5HhenfpAMoOKTjGl5W4;!&!{Y`59NNjIjYe+0aRpDu&R3Ixu53`XRDBOkw-)**<~~b{6NuK^7F)+$3G? zG0J2Tt%8cP2931@fRbD9FlC#VjvaV;8ICEjUm)Q!g9U__Ni@}mjm~j0ETpIK>)9ID z1k4-DeiW8!0}?D2hMlgSQz#SBJ^0K$eoG&dV%LKlcjh`oI(CJsCG1gXLMzk*A1FqF zj<**Wei1en;!x5?%td`fKzPeY%7_aYd|)_Rl2DyN5FdtDT%6(!3SpJjU+=*H_8OXA zpiIr{ZY2lS&$wD=NY0spOF_D^)U?l*MM9Cw(X~KR1+p-tDD{;LkZlx@djT;AI7FRHtu5=W%3cT2FcOz3rr+iCAG*Fv_x78%$jb~^`^ z7QfXi!*9=c1?GtoHd(vZ3^&{w)#TlG|BPx1iPJ?XzMCs~xF0{n{^wDRioU&>{x|zm z2w-TbZ?ErYW@G)|XvMdGp%p(_ti;8Wx^!pCQ26H>h$|HWntZL?l;?q(iV~77A?^eHeSg7kbI|HxVCPxN>dm@Et=m!ml(lbMiddNy^s^4 zX9h^AK9$L9)1zoIBI<}CHdVtH57&W3rkn};1+;niTBG10E){K(OA4r~tq727&I{^K z*0mD}-AQfkDq9!x=B}pYSpUOzB$kPl+I8CE zLV{r@Nez)$-de6ni4&+qZV7sr^4rQ%82;S6%mx@k45n4uI|PyE8q3>%RCP*< zP&Pqc!{6(2Tno1YU$+>*lpR|ZI}RIhMOt}t1;XAX+D<4tthBz2xq@;AY)>sV3q=KW z;H7#Kqo$|F+v45OHITb*25$aY=0@Z)yZpJ35H3k&h1A-Lc5W2Msa`Z?Qfy+PJF;?cGt~L_$hIv`E&vXY5-AQ8c^=gI@ohxK%9rd;7w08q? zapKJUX&Me@V|k9u)by=A$Xno1kQee0Fa{1!4qP#;h3;imu|%SySa} zS{zfibVvONLICK!7&fvI>sVuX>;ujE*N6ZBXHv~rGgT9%1YL>LY^@atF**y0avdjm zFX;&;OC9{;(;5|Hwm=^k4(RmTyE^SuO}QnZWrp%3&!7T8%^;iPf{IjRECO+jwNOf7 zlRimxNZs$ammLGCZ`t3>JdD^Q(Ow#H5tTG9Acdx1B|eHyq~4uWGcdb;dv`TH+5CFnb6AD7j$_rZO*^k{`+5rq6y~+mo=Nz@2d9@kdn3ImN2TnhF`dP-_FJJG6k??+97E^H}@G^8q(_Wy>M|7_9B%&Czh9qR@j>V^L-u8#s`rT^V z^1CcwK{d|C?JhxC?wK8aMQ;tp&bFf)m<3Z3U|^R|?-+rOQ5pDvJ9T=K#Na|^0#O{(%Swr7&Ju~@Uit)Cj0!LD}%;kbXTqG}YmX_T%;Zyw!Fuuh{w-ZJp$ z8!NL<#;5Q9;L#@9ymmGAo_6Au;qtxi18>3j4k_dWXj|M)!;w>EP$ z)3^NQ*8i7|u2AJa=b$veh<$g8kbw&+X8+pC^e9Ol*(!JVg3dBb!%%cYa@EOtt@cdQH8=YF zNZ`Z_o#8;6i1bz^#x$Aq(A344`_9(f)u~qtofRs!PUFz|Iyu6utl$lptfBBO5D5Ig z)M3Zr^MOba8Ho$rmX{_s^g-CWEIW#R zGg(qgW2}tH4N&6=7=RWbvR$ac;AKYjn8?{8t2jh>38m%DIL7lq!kNqwQzNeD2%o0y zwr8aLNH$X!u$OhF+s+wqe?M4(G=fVO6!a7l-eoJ^FGy$e;Uw0=pBU2F6&UeU#c&h@ zGbOOmL?J7jcky{{4zY{ebl~nLnJdac((LC=%s>G}a@prVLK1i@e1itKj19cBEVeY7 z>(i7l5*@@$fN%~ykj~p`DX<)g!sOKlO?AAoopk@Yb_D2`7TBGsQX?}tDCcy?dBa(O z)FAIOOGzA%g9sv01)NjacoO~QA2PXkCAN`N!mHQ;Oo%g zn8C>eU~<~08bzWO)&o2WF}b>Y(4l0BkjK85sh0Mgs76;iCN>z}tOfO+#j6HcI){h> zY=!`3!|qwMgC3cTS!pY4?(V$RUYP~eg$8R=Hc9e;=W@A0-p3-=aMx{jx$Y4Aj{d|T za}8gI+M`LF0R!rlEq*LsO-@r+a6oIL9bBakkzu>3?(3?*Te@NUbpUJzaECf+8~6+C zaiz`CmUlNbgERG?Aw^{IrlKb>U2VBL+(R9f9Lj!{#a-^ikTY zJ%w^}6m3{7b^`rH(oQHPN;AQqHfmmn)O%?2t>Bq`Y6mJ~IQe8)wc}-(Yubb;=UK=0 z>q_ZPwL?CT+ELuNRD0u5eQ`WmE2+4keIyUd#(j<)@i}YBh5IY* zpQU!q$*5TU_f$0Sn<2>aKQFaaP0cI;QZ_cW|5;!cD$Ux@t9;V~YYjzXk(T)s%oPMQ z`I2yyAYpchW{9WMW+6RnrV+F>2j^IQm4>5h;bwGgYIO`YU*|Zv z$!H}y&#k+@#z>vN$CgPH(36Ot-`|7a7s@k59EF5l>C$AU#}^Mj_ZooT%~65nXPz!?2#L4kq4*NWt;*7 zuGj)n<;G&Y!Y=2HnxXedSYdqr!Yszc@zSVcEPtIKyIae<+oP7c*rVp}*&iN3~`E*!{dx}IB&#^i#*LY!|*{bxpX(5Zf zOcl*Lor4zB9!DeBoVFKj673d)Sy5`wo1SC*U<7Gnlq;%bk5UX ze5*9>Xs+5z3DoA^7`pThD1k<=-GGb}k-HLNO%Co`NZ`k(i){Uk^NyHwM%2LH>d9=K z#QapKio3FbC+&=DGKjkNdYvYldc+TT6Jl%sC_{`trwwUK>^hei?8FnzbD`B`ErR z(=A2Xrt~tE=ajycG(uyFs|t5I>ZogYN9rD_AFRUei0=<)x?N}jMA)!}H{vEn1|qi# zZXTIufL(Y5YiAE{LGd80=E)JrB;3WXE$~Nf*p87eGfa+kba<;Fjng3n4ou%f&;*wS zr}yrZiMy5%B1zoO?dAf~Ge9eWFF&(ewuIO4Xz|C>0K!$iA0Tom+KvTsD}>EtK>#kh zEO0r6yo8&~zk~4uh>;&lU~4sp87twCr}X7V{D8_$_wU>LkE1a(Tb_Pj|y_u_1M4>-C)ZrmP!1wGwdmjBe( z{AkmBrh#V(#H47!f+$zm>_Jt>MM}4d^9;6L(Vp0asM;mJ+QG2%fc4J<{z5{i-xO=s z;{O1FGjt6_ng|f8u$S+ElSnyFj>`{--j1sg23*Xq=5?(dxFHVwKTvX4xlBU0?@H(J z-!qD!%uxyiTysMP%4Vj?E>XkX&zh&o{M zN&Z0po)Vq8OL_>HTOpO82t)nnS*m=9U6N<`Lc_-1=!T>Rw~$DG1y;U@RG76 zI-3DhyDGpoJs1Gtv+KLrl^wztCjHwy-NS@v?V*WM5tYi5v#?z1FcASs5n40G^Ffr# zJ@vjSu3|^QezUW&>EgBNEY&2!>=r1Q>E^LhLYZx7@eV`FYdaRn_JJ<#Rgv($^*+1V z2J%@j&6DRv_M*DPP3e;X#tYTwb3Vd#c@FG6fBin4gK?M9pVxOiHunv(7s>|fA(zox zyH|HJgC*%og*e_-H8^=z=+qDMQFg=A^I@`crq z!l&zfsXT>Yey``yaleHy%jx9>rXzVMGWw^W2(%3JVG9Rq7ZU4tLGwEg*xXQ$E*(O{uL;|B!@<|C`J+i=o{F}JUS5xe%$W2Yfz2+bcVKg`vHRJ! zh`bKO#~D`d|B#ODYFk`yd>e&2zsF8||MNOW&B{{9#!=o0VE^B~LPaatc{y}$ml`w) zgcVnWV8||Ol#-CV9;3Uw7Navqe*Dyy|AU*7%!pItC%BcinDU+?lm$4w|` zJ#aCAr>!jRe|fZd-u}M5$^M8}Gftt_bZRtLSN1PoU-Oux=4`txU8mV?(rD&63Cb;% zk!GbU{$yD{hT`)UQ&MSGKB-_-EL3_lZ|2pVD7SPvvf zO@{S*V>y>PelsSPFF3$ijKLtp1rI1ScXPe5HG=Wy47G3C6~jST@wHWy8bcr-Ju&jz zh@TaL1(PE9Ex%tj@x~6xuJTpoYL{#sj+1|JfJvn$Oz{N9YiKo@Wl4~+%A(Ws>?Fl0 z^zR{5tTy>w8EisC5qx?vr%N2#6clTBhVOn!$Vw;Ilxh9QI8dLpY+NsNV4^S+kKM0~}=oK5GcQNOl-uI3NNlj}e9S^pTVSVk7TCsK~uh z#A+Ls=xRpE2&n~&==^DLCYhZ?4TCWS#Y$md7P7e$^R|sRDEEs*(4|Yr7(Gt7yaEF& zE#HFJpBD*A&_$m0#XMhUPbNgHcadifMur0+4b)d?z;upW!~|1S19xT~ayQ~p2Y{O? zVFafwLCbTMdrawvKs7@F2J#?2*Cn=HAe&n36cl2Af=|Jp1}VOLG8s~$IQMqKo8^R8 z0YsMHT6R z=B3*T@kvs^^iiNnR)6{h7kzVMxRBIPqAj#s+9*4kTsoqenf{cQsQA-h{;S60b4loG zJlFFMjO4E6Iz5M+WdDUO8|rhSgX95bv6Gk+^FvlLMF69|MD8PQ8vWzf|2?c#xlG8* z{4NQ0zDt6C;~w|>KS%gm!=(T){;w86W%FOV-(Q=2Vrd2N27U^1l#MJ@4e}NiFE!Ma z{Q0}-b8r=H;xzjD_w?;hihrfE7lO<3qZU=2u!n;==7Z!-GHwUKzQ~5RH#Z^Rdte>W zuUelrJf>bUx7nYpKVP1ncz<^I*7eABDM+ADCgzbVQogoXA5-U_6{uLAm6s|Udi68? zO=z@Cpd{aPR$!GdUP~xcZ$Q2s0iduQAwxUJe8?;#w#9Fkoi=P@ zR3{%n@bgVYg2#}dlF<-}tlQN>HkEj!9e@|6`eTe8g&!dp49}+tjbO7xGjq|Qnn=&J zOCCiwSf>vaae+2zYz@4SG2xmUT{g2BpintuMwfc~w^QPa=x>pcI4oLWzF16?l~T)Z znMd4&2y_j2h0=%F%FfM8vAZ0dH?$M!W-BwhOR1{VB0f=ua;*ZX&TqT-p^DKKhWsdZ zup+{cEMx|+S_3?jGia^sc@h;TJ@lRt@GmxLox*hr{=3Au=?9x$o?|tU){!zN=Ci5_3}b!`e60{Y@L&)EVlQRmm3qh} za2=J$)XO_ zSc^d`H@Bzl8~m161=iqLSELp)$DR3O)Sd#xotknj4c#kS>ur(Np#olP<$;p}e={_< z$(S4S4bBuMfW1{^OniJ-xvrnC`Govb^g#k2IM>&d8OIn_m zjI#lz!Q3x6q#QqYko0%nzUs2&BI_Q$V_x{&fe+~)?0V>=qIJ6l0)IjyesmOCq3Tb!MWT`tV$xw5syQ%u85Na&(i`;K};k@M%nu~N;Ub&}_&n>~siU>sLC z>#h6!QS<$m zAS){!7k$a!g&PSN!)5iw2W}xyr0UjkFxPtM9#Ph=oWo?c!0M6P<@Z;we%X0$oiCeO z-)qxp(Fs|TQIjqkzBib_AF??2zM_eG!!+bE34=pr4~z1D^)ZH;u->`N-hN&_$Etbn zF~6p^6EE{T|0DKIsqmAE`OZeBzq65l!*TMjm(SJK9^l~czXy8bC@Nc8Kw9Y|b^Akbcj2o?trAp@jxwoL1Ny7AAH+}IQZ;bRh?}5bfn-7inh`EcJ zef(AtE;Ib$9=?a6jEJyVyIPaY?12>=eqw+J3eQJc`c=Nz)Jf(~?{{iA;uZ=&vg#Gu zlX(_GlGJb7Z?pCUT$B;>d`JeF;m%qIGEmhs5Vy}RFRUj;xd=IepDl<9;^)|K8~~Ik ze~A8RoT6KUj|?-r;=34Q5%XPSTB22`)1oCm#pr!i#gwQVgl zmi?_se>mp$3!GP<-1+4veq=fhx#9wnU=)DqxcI9b#E72UtBuAss(B)}NZg{GVRUt5 z`>~zBKPfA%@TYFG+oDD79a=DeQhV5HjUSZNp@rCkYPrd~M!LFmL#+n}V`cb4ynMd4 zv#7`ElIW?R6nNZnYcP*!zUi4b{0-!DiPgvyj_jE^{BXspkjPfY!*3a+Voz~Y&CrA8 zQl??}r3WHYY^Qg`i)daue#|?E!(riApO4pnTDLS_eL1+~=oX|afl{#u5O2o5bNxu6 zUyHBOdN{BA7b{7#9%#6%{V@s~cuECldh4X=+&MqvnrC3$|Wt@CJfgHxY6L= zZi;`TIAov2g_Rv@YX22~>OHsW(w1sKKx&ujxH>^2Y~M-%4LK*}2gMjLUG6lF!E1;u zei8|AYg+I3K4I-uTz83DJ;e9`Ixk-Sv^K}UAmPe-Z42Bu5nZc$Wck96M;>WqW%kHiY=$Y5~_g;>_Z4hwtix(;Z?i~U*6w|bdj6+x-$e*F*vN~~n5XAKC zce|1a&2bMXf9>I}&ku`RG?qNb;7IFMTxv?rFi7n+7M~F+xr#K`J8Jvmsj51A8eg`* zmK(LBKzX>-SBq18)BylP7?mZ0b{UB5kbu89_oT87-FD~ef*VW6?k)5EbB=-j6If5# zBOj2#zn8M1)#qQAm^_!R^H6T zzI_D`=s^>2pMr*>hoP^3R66^559yXafBcC1?i2pK9zn!j-^A+MPW+#xPGxnnXQ8{?`rP=+WkxhNWrwUY8Uu$t@M|?>s*8X zOovNmmW{0TRUkQC&=T&k%^zDlTvtfDpgqtFDHui~&c1K@GyWDE&Z!tdqF)dWD79yn z1E}%o2wu7fbQ>bBaL>%?*B64SkeS+fMcx>N{G%2k^K1=4XWj$%9M0A3t!5jqU@I+Y z6Jwp1el!k`5|m&rEfpc^k7JPXql?J5>y@5ItN`4xn`SVJc8Cd#drWjK)#X zh;LY;->&iQ6u$m)FK1+db{@K2^V!Yp?u9ycU+##K7d z=CJ&Gh@9~hgQKP(vLD_MJ^sw;)dcxEP_E%#90gA?evkzNr_2ZG@ka{k4ccGxwdW-} z%BIp?D=oM^>JGtf32WCI_;%&$AdC*mduzyvtWLmtPAETjHZL^zMp#BMNMZE7S`5!t zo}i}miUV_#?{J3zY1SdVSN`X*Qlj_PU|dBH7+08O63V9Y;Y6l;@>xndr_^5l55(sb zPRFtG!?aAs0$(GGTos&kDikuC7H;QuV+}X|#cs5o|HaxnMOoS)+oDy8O53(=+qP}n zwr$(CZQH7JrETB*ckkY(yT^I?_dO5mTVuVg5npgd#0>C$^yIi?+nnqB)1+{@J!}2A z1X+?fB>0ZqpWI2hX~Fm|^<55#;lWOpqnlFBsg*Dq95#xX_)^uz!2L5udVAGsOf!oF z^X-wEli_0wZtK}rYF8qUnhyptotPD)>gpk&ad*7OUj-_IroUmoR+CtPDD*;b-1&61SO(^_hOd zc&hYNfHgPgZ_iZ5JYzH9S2}lN0n(pfFMNAT`i5xQ(Z0LK+>OTwjyC57M|7|GUeCL9 z!QM_N7uV%X^RRm`q&F*9@RN7!0oarF#(hE9a^QUl`rjWyc)C>rhDW9gt{UU0PVP#G zpS)`$*_h+I`%=L$38mBLD0QGxQIxN{r8jkmd%^c1>;sqt!JPY~l0~x;A$Nv`_O5fS5l#!Lbk^TQ17#&LX`m1su&XE{}(31e0 zR~D~WT!H0ZQO3}o&y~#+2AqdAyYUjB*4r>-Y3LwT>=Eb*|J2)CO^fz<%fp;m>jH~Y z6q!de4EADkd3xeJ+H83G6T{=<@oVQ7q~Ce9)=EXQR+ZRC-c8o-CA;y!0!}-k&9T#4 zomvH2dxMR7vvq6sXRfwJ%0s>5r8o^ZUag}z@9%X67!??dXh*Gu=6p~v!uGP2G8Q`1njw61Rop!tp;S&Y%wXSwrQFvFrJI!wO(A72O)+3~oyR~{i zV;9<9UFdE@$F}A3Bm^cG>yaIdR=C#~S_pQDJ<#BVk`96Fv~ll}%kUBGE4-;&MP|QG zllj}LsB`8JAofR;*N%NSzf~g_+tE?wGF{Z4k8b;kxBYc&99+KKKcXL+g>0 zj9)Mpt1P6;yf$%>B)?i2-0>Vb=H@5q!+ZNw6uu&g??RBd*>QKk4dy7tSH>4Qx6OrW0_!8=+h(K>Tm@I$~^P2Z_T z8Bq4SzXQ+0$B*tmrnJFunI(5D_dNcvSSX=Mc=P!)=t`BGT}-@34rOD=!|u8$0eryw z6)Bz!BdeJGflH%^1|vw#f(D%I@#&rO{X^K7inQyy(WKNmTKN@z)Immj#-eURDz0i| zocLR`SqO!+9CWMwhB2caeSlbTf+B=@g3qVm)vxqmo&G9i!Xy0^sQ9~bl`s7YTxC;* z8m=Eag~Q-{=9RNq>+RxJ11hcpWQk)eGaWow3?~&-om&O*;MvEekxq)kiQqa!WD~L} zzqwx1lJg`Z?hhF00JyTI-;G(92G3qO0q!!k%XNapEK z<$k3hJdHr=r;y!JODXoYmqiYaj&5G5vYrqv?++F3MvopCtRwjJa(Wk<^gNjD_WTPq#9#Xy)M$*R#ovXp_IIKD zze~6Nx@P=;AVS5B?oHtJTf44QHW<`MR3H>fuT+GmgWR_^V}A+HEve$ z`h&Ow$%&k6D6c$*9moqw9JieUb}f-*R8+Q%N(AsU$#GGfU27^ ztAE>NMiV_)8H`-3SFhbYSj9YM|8~mGNH#jYOg7_a-+g)AuWs69?*h3sgXG`2J=o|q{QWeuRUTT#33hq^8UYUg*u>@EU1(kg3c?hK-M`tWF zhU>#K+N9_5n=c%DOl3H9Y^Ik?k}KoZKg|}HHEo7pKT7iQbCy^K7>mAV5q8oZ`va|5 z7K}Eih(r>4d?C`A&IPMmjrUC}Ak*%>b#vx50neIVRqnb)e;(cado!7;r%;?dXaTHP z8@|=mSCP(>nzn)!qq@;+oQH0|UL@WMEtW090W6a*d4HcHLwegvY^XDSW5jF0MXF;! zn<{d{`bnySY6~?SjIx4F%rVNOUcY5bG9cQY{2pRDY3@v{gQ_;u3+L%W5sz}?o`{ zx4s@;#7)&MR%S=^kq3O)7Q{vA)gyDH`TRvA@*y2y_nwVJYf~{ulG|=Gu}ou(l9z2Gn8lR|1fRT9l%WTY-_;A$tt59Hp7UolbWb2P zaEz_y0x0vWlOJ$70;zlMDX~U`wlu!ufwC5n;iaYTd(_d922(Izc**QoLg8^9r52&^ zOkv`_>^S+>^Cg{S?|Wfdo}ADg=EsJxDv7Bc%J%Cp)wv0-3B4P-F`}W)!g4^iqahP1SIil0CbOi zea^xgYiP_T#J_h5l;Sd7o4@O3m+!It{{=hDcee3A=AWe?WwXEw>y^POc2>v=)+j5V zd&ppy`wJYgtW;jH311#`R{*&0CuT!qH6};B7O!S&U(61O?d}iwB6yH!%xAgKwWg$C zMtE_UG_{$_PPaSb+qapRoFCOY=mSm@XQ&w2ExWb`6P`xDl5JcB3@CD4SB_n6tVZad zd={L!1|a$O?MB*Wbc}mZts_&_A^MA-{7qsFM}=AM@MH8gnK(F)(~(K|qu}&15<3QC z=?9WgXlvOAQV-d(DR>rIELWgY(Bcor-J#VE6iHJ@^&t26MR_OqqNIU;5p6b-nb;|U z%P|P@ldTkxC*+SKDqVoXm)Ubg%S1feg>!5gjapsTwynJCx7p|ZaS$aSP-hj2?c<4M znE>IhtYo0X#H9;hV3f+ArT4lFhLj*!iD@wuJ9dITQpy|x4)(`d?4NDf*ubk%Lxurh znPY%cZW!=MV-!?Qi-?hJ#C}$6lVKIYgBZ+bu}W=Y?XtcZ zLvRXcv(fULeqn1Aov3{Ll|U%bzaR#;LD=;@wnNMub#C;kUi1{%S$wq@o4v}Xow}z2 zPIN2-`Vw1hhbl6vQ=}t@+$!aq^kc;q)Cr6YO`w^SfseZ;#o5jg^^c+>jzRbW9lyTU zF;pR_7Lg;A3*oC{BtM)S9m_8H(V}wDds?iv(q>8|?Q4m8Dln_=%{+bQ<20X#je}B;c@YDnqUnM;mGi z$v24VKOJYBkUZam9kkP@I2Qm7aSTdimOf}G6g;MQlb`7r1hlrv25V0u-^DD7IwA=9 zQxZNzRiNC;VS+3}x~<4XFA3gIT42>1@QRn43Gh{B0BFt+0)SA&sK+pO|=n^E~j%i8=sdJBGP zgq}7d!Lsc3O}<ghr=@g1ASKwXfJ}A=sUDiyuBIO7 zlBC`c={=6}La9K(!4pMl%6!+r0&tTIJ9U(3zu= zH0te_18V!?H-(UPf|}ApxVhPB-t^N@FRlDMq_#B^blahazV;nN`t%7o@G;ttNXjk# z^f?CV)BO=dbh+CN0s18cE>Zme@oywNQpTl0csanMfz?%299TXDB zm_=g?>|I(oJx3B!qiM|5<7qRga19$)n`g^e$Ax08wlYtt8sk>}D4^W}Uo&PzL5(@Q zCx~|l#?oK%leK4SMRLN!Fw_b5aqKTpcQwjIm&o?VKzIfIcLOTzQJSauPAT)g z@5{6Q{do;FGb2mGf6k9EmsWyzIc+$z^dfv3CfsE zn|D&^C-?PzLqN%-F_L}1VES1u`i!t{@f6|#@96y8>rvgKrXc}`hsOul7WfIc+J>FO zea&vXxy%N`L)dDesXV(|tDvX+inWGngW1t#qMWr|?(W`cqEP}2)Gs4sGPB05LV8RR zmpt}XZ`dfE*K?-UMaoYj=n=LAh`qQf{BR0fuz^4bSj@2)RzMv0Pggm-`T-K@@ueV; zNTI_-d7as!$m>qoO1Txwp=*0OLoz*zbT5@1+y z{RJQy>R=fn606jxJ)k{3$2@hhKQv)s@evTa+JV3T6GgWFT|7xJgyOiTnv>WOo5gf> zhgdtexk@ZyyOrYjYxOqCCx-BzQ zhiPkaonA)F0e&pCDw2bfi^+hafDCzR0?`DsU33D{zK^)=QSO}h{GXO7r!X6adx%S| zb?%((q!`hjBMYDj%_Q7FY|O*%{v*(QO%gCRKSYm2S#!{){>sqF`Cm_S8{tbhgZz|c z4|y4BAf*kV2u%AuSCn&H8MZ_=N`Nw%iOV63VGB=pwgW-y;u0t&0>vNiF&SBj`!G9 zypiza=+5*;d(^Yi5$z&4Cb zKt26?jZHD!l|Xx_ywU!|wc+-K$Y!cTQQTHT!s;0U=`4IZkhLYh2q_?*4)u^Bi!;b zupqgyrS;Sh?q0Y}Z6p4V{9J5a2zNi)z1NrMkC^YwnYCYUkS-b@+hC941LnRiq>tv` zCEiR!u9f-i@TR{%B7e{E{fop+{@Q<)(Kk0T`0rknRsdvl)$(fl zem<7#RFQ`|+|bmPa-2Jimz+5I*HcijY$9mm|Mw)K=9BXx*F^zWw+{ zpPG&J(T#_Us;1Vq;j5|84Cqh(XIaryyjzI7JU~gGe;0sJ^Vyxqx5{OGtK9!j0sP~7 z;y=PbmF$Ex039M13hV(CKzFz9>T0XAkRl}5PlQMat)x6O31jv7G`-!Dwrjw5QiCHt zLgMPi2#;zmK4(72DM6fJ{fNZAKU646J- zqY9M+n@RGwtcC&kjyVQSTn6#!<=s>Qi;;di3EdCPwwfGNs5xP4VYy7Uc=yyslJj6w1a;= zvT0FJZio_uw>x`}F`?4%p!AX>MwI2ZM zOVQ_9fwIlq1CzD_*qvMkfbRYm;O8&*Fl8WNx%I82P~Y$BZvsF6s;vLqhZ~BnlLp{} z4gTUgkk!}U=MdcwjMoIq!>?-{^u9`^^jO;N(F59RW?rCPyS8Fkkg?_T1T-H|No3;OgD zTxFl0bEcfGx)W~uwC^@<(LbQxmXxFx&ZsQ3zqQGM=gCPuSKTBY_Q5z)^Qj@lSlptiO7!(b0x*kU&)kc=F3*R-#^PbLJ;nE<;w&zXE zGfkvP@GqJw7^erlKbdR{M;SB@-Dxkk7yBeX+%^qW>y4($Mb+$rlny&MYrRUa)t7wt zoGOTQ*s3R}d?s!Rm8fivP%0mqJh~OCLs8sQr%HNJ>B(2@+f?eXZ4`sBif0FCUkFYk zq*D5q!&@k9CJ^=vDh;w2T)*Cc3!4i^?4JqJ^OD_n^Fnm;x;-Z->Q#yKCc z<$%`;F63`uLCeQP6HxC9+^h+W)vL|o2*^_zbstN1>Z^TDIpU8TpduNaPFU^mJ1!&z zcAmJ&yoNRi(===}?GM9U^(k(10wkf`j6fBJ!W^PI%%Y!-iM*XgMeWVKokm0Lw>!)- zIUXzPgp(|W6G_IaJ{^#abkAPvERPYOnPfgGT0Dtw;SsgK-;6)(Z+INSqDBnk<{y)% zMdNlM%J@=hEd|lT4M}4xrkjW@#px^`OBdEfePdup%Bbc<@+ckPW>iZw%F70PCD?Sj z#^riiB=!`eokh|cc5TC0Y{tf^nl*Q<2RzK)=V0f5uZY(xR6 z6U0xDlLsD+mu(_SGnc?$N*0vjF^pUXm6l&dy2YMn6?5LqwAP=@G}~)r+Za@HVEkRU zW11fZb_Yn^xsaw(#zLB~ypK;E*Ck9aJGll=JuyMlbZG+$|}0NZcgeNqLaikXv$Tf_;YPAgvC$M0RTKGqO#)0 z0R%b*9XnM7s(1%$8>-vRiLC@?KpTmQs$7L==fER2L z0uXDkYU`6ZNMS>rBt>dL;%NO%VOMpQB7=)*)8}CMuujk90+9W3IcyHmOzl(R;H50q z9V31RN9;zYre&Uho<}%Y4$90X#_Uj-CgkQz@+FZnVZxef^HlBPF5MMRh#Fud5u$|H z38r(A=YBKJ&n*=5rb2U>0uU@AwhZ{2g!yIu?oJLy0DuxElA&5s1wZo26{+z34fZG6 z%n#i_ZD(>CpBp!gk~KPw%80Yz=uS*SW{fo->E)4%h}>Rnaq&9Uu;0egYY5Q<0WMQm zCv|EMa-lm}Jm&)xTSQZwv(MZI~cCt$5k({VMe7PN%i4NflvrrHpg_ zsWVR}GmEtha^wr$LRO0ccl!u%`f}R*btZ3tWHZkM0{uh^?N}`HuWEpWYfiC}YwETeE&YfjyU61;#bHNA&70Vbwazm{LKV&&eT_Hr zv^%o7JBa7#$fqH2co7CPhAI7<5Q7Isro`SvdBD~`)*Lbw==_^ATykO+4GA_-4rL4lSs4gefx)CGUlLN ze+T;Ghu<^){2pk-1X@AYbNu{9X7USe2h{YkGh%ppW{%SV1?B_E`!28uRoW;<0*fm*z&a{!GUd`V%W8-oDxbX{7x!k*Wo` zh-<>57A0oyht-y%1>R@&;W=&kHKft>E}Uj=&%Wu?yH>up?@TeZ``%aGW$y`%o&8i_ z++O_=Z?yh#u07UUh@;Xzgh^z>KI3*6^~^iOVlpDL>z@%1fUN|JPDf;viD3-Refz~I z>>&@)HZW3_DDX){lN^$gg+=b5)}!(inX-rY6wv0}Jk3i=|1Vav!XZ>{kx$ z`i+jyu)Y{L@J-@_zPd}L%q~CKYiAc*q$3+VR%#P#g|aA3>|tM;cmhxD-q8M4?dUSB z0`g*Eb5Fn-_dqNINMC8yhRR|@6{+zVx#9dR;PvrY{rJRXQr9m$81x*k$r%(xVX7X%sLie=NB+3*1#; zd%gmrTCY~|5&kG-y@j@6!Gmiqb7p!(5NbWFe8-Enkyut$A#roSL85)Cn0!IH~F}_5mY_x=2l>D3snY}0cOZ#XeW6?e5Hb?dqF#kRFnFoIu zWAKX(?lU>uzHvK^@4WVZ5zLwXJ+Ec@M=+oI-XYx(M&ydH0;<>O^(2gq=jD;lh#?IV z00kBBC8i4VE0oqt=XMONM3=*Bi{Fg@jGA@~)|o}Yo=2e^eGcbGfSidVgEG`eD6O*PD4_WnnZ!!I9i-9wDIWOh&3|% zF17K{ST*0mLfqJN2)s?5R8>Qu;K#}%c1bBF%_o`rMtQ>|MmWoE(BaHV0Xt#10z^Hg zG)1>ruiQ9UZWA(dd6BA2)X1g6m(eTBr8@@2KLBMVz%Cv+l=BdgCa{{snotLkKw*#vZ?Xyz{dOa3d)JLf_goa%h_88n9h+SJl zX;#E?4ctNzz=fg2cWAa{tN!=;IWOl#MeMPJ9&!0^A&;SLNVE2agQHx}qA$&+z zJN3La2~`ai^*{pT@uH+?Ds8*|Y@az|4R*EMg#Mf!D!ENVgJZ-7%P8T+OUh}L@e zVVKqpc^FShwnwgA&PxaEMii;YrVTRU%PD5%>_KP;3A243TiOe9b*_N(QT#yEjC!eP zX+Gh`q@g+b{9e&=jeJ%NAE{pIyB4Ef>iEG+l`kS(Ls8R*B^;Kbf7Pp z^V<0jSQp6A0|Yd)ahKvQ5rFrX`}40f$CU5E2Pp+_t+xPIUpEwbc8>WOHHr|}u=68z zAY`7tFee1S-2F&WfZ;2SY0X)#wm)B*dE=Ksc5sxIF2p;gm;J(zbDC# zIFgep%2bOliaQLxlk7~%H?Bn;8_f}&ROs(2)pXk&DUkzk^Ar|@oX9LWuE0YHO$^gC z%JW4ct`~n4x#u3nR%6O#bhK@ zt{%sh4gs^1_e%nV)7Q@vPY2%qtwZx?_y9id*AbPrK$vSWHsv9v;Mti5ze@G>UNYQug zTO!imGkSj)0r+>RDB4&US^rZuMR7WRApk=&RvjHyWwNqza9=9G=vuCW<%k$kxJuZ# zoiZtPS?pPO9UA=aim&;@AUwV}}XKye+FkD4fqt9{A z)i;*t&m$1x1nbzP2fX`V?O1DZl9ur!J;qg$tH4~^8V}1NEkGUv7@MMg2(G5XBjC!U zVnxVc1=PCfng7VyF*4=f-`jn5Ci4H%L`&)>tgLLr!d>il9Qa^VF5Xy8OH_sdyZvfz zE*Tv@Qlt%#FhZo2AT8udf>l?*73pc@8_lXlKqkI}55E;W&J!itz0tXBbr*Iws!Hy! zHS^|&tQ7^t6u<1M*`~`3y}M`LOH> z0ojCDn=pfq-5u7|ly(O~-Cg;dzsL$?XT=^uic*HZVi^!vtE_yBN<*zHBjY z^muv75s*PBYUjucVI7-@3U z;uMu}!SDvMFz5pufZZwFq#3|AS4%?eAap`XnQC!qGVq4&^e74!)qtIyX@P(?(SF$S zL?xZHIMaw@gaEm(_yZQ?mef;3)C-hvq&>6>!^?Wgsf&(fxoBiL-nZ&_ip3jd7hi~%lg zs}XE5lsRF3oN(2!>|~H?SmgHc(Vi(1akuU0ebLKO%a^LKMyb{@jx^|VxV(Cc$Vd)# z!Z68os7qO2kK6a@Jb-?$>@NS5lcK5DafR35Ae#5M0l;br&Rc-;)@(Eh)j_Cco`bd- zXWbBrlAPRTS4ZfYPb?SioB>yb$dHc6JciV+Q)Yu?l2nw=ZMOHRSCz`lqi2QaoS{6Q zy@MOljjLU{n4ojRig)U}aEAgdLn_`nE&mQ0#R#8&fo%UmTkskDQfL1kDh|W{D2~kn z?O$#uqwu0%`4=SWzE4oIQY>_~@XJCOfLSSEo|K0RLxq#w1({e$m<%wDuj>xrbsp@B zoKjzNh*?yk#nI}KOU(YZkM}1)tzSrB)oOHpcas-YK^`l-S!U?~C33FqN;PM)nAePVeDNpc4>;|aP%v4-Ntq#%Xuj1>S|(qaYkS5#ryE<0pX5Ma zLG-QMP|OeiW1L07A~ZPqdz2*{`tN7; z|Cd*mnuDn zgoz0O@!)ceIZtC%)l##$Mw7C|qNCg>LCkv22g^H;C+E|2AZ)|4Ts_aG!%W*z_t6{l z`$vw?Cxx$cCEfj@#LysrS)*=R7}0*Y+%!j!5lfvS@r!-FYP)hRCBZHw@;N-1g!3LI z6`8}3W3*Iqb!s!vaBj)-QlQZ)L|CB~*<+z|*!tGSRPB?tEZ76#hP>rb31kUR9T6D3 zKmhH??8g|^WnwNZLj=CEP4&P@(?8hCtTPiw#<+T zEOb6}j5w%*p<9Jv1|$gnoRvUwwif*z^$B|2cmPfcM-({w&o^XZ<}a$)NvdEsC$>3as=8s zV*RuNv*bzDu?m0(vbgYFrF#*ma@T~@b}Scccvy0A{irGPyh|L$X^Ajb2Z~jE9s9@u zmbb->n&Q_693-wDBHLiP8SA=5x>GkliUU3J+ffiD_sQsYk}nHie*e6oDs2s|i@{S`CMINv zc0BbEWz6~Q>wB{ZSjC?#-C-KDQq~mfYiKtt`~o@L*q+FSx+4hwY6h5+JXOT6zu7eO zWijn*L-S%U@A&+&+#%kib5yovzAr`k7jr)g$%}pX?s>JP?2^ZAvMZ&b>APH+YI0;v z>FhNbceqZHoo_dKwE~^W5mbewld4iJh!7IU_t8y5OhZ=es|d$RV~+h26MKg`Q^J+( z42y_Ip?YI`Vho#%6NJi08`9Mg8k~D-9}Qsy0Tl~E53&@CsVYauK?jPg0fve;O~Q@z z(L>`StC1|VD#NJfcV5rdfa@BUtx#cuD*EmUU7iv1+gj~JyU_UfiSg&|aDnV=B(xAR zBL;eH1-sRR4_RRbl}_sY5%P4dT@8A5(VO7NoO06}!>dtN{(1y@@9Mo!lDDGB0zwXg zeLy4;t~DD{JAp-A$TxZ54a^!u6DgDV)TY5V&2fz7#$80#D~JGhy*}p6aDlggCiM8< z`>rzwX>TU&Ey<4ugh=vp5=bOA&=Dl6SantlaN9@?n_r+WtGqsi)j#F{xw(!P zh;y)SPxNw_-x`NXL_FOS75a-vFhHBGVW@84{at~obf2m0GH-L_hw7XJd4_K^2I)2n zo8&UHh(1u)JwK@X_vM8uBDRFzMoK$~EZ?KwF0*j`pz}B2PM;HJ$KizGc)8}h>Y58M zTse_@qAq!M&qXw7r36niN)+rP4@Nw+-@N&psmJN!7sntO-8^afq`Y zdgCv)9AeSkmQqL|+2&7_gAes=i7W}?LW>r~+D_VqUw$kfE#2`q3E?82_4TpLr!LTf zGNmxIgj!*)BPr0TS+Ta#cj+N9 zqlxIK0e=Lke{9#?hCPqrk6O?0_tCiK0TWxF0s5-m*@hTfrvduv-tj>KH}64y55YU6 zAp}#jlbTsnxv9)HE8Sz`T2LL5a2GD$Q{o~}xe3k&i#xW$C-g`G1=}WpuiO*xf*Rpo zH@|k~6tt*0t_`7!WF4LrIK&!4B=SxdxBt0vji}B0%SNsrz&i}!dVDsNd=9m!IyxTh z90opHvVeHuOrpm-Etac&yWn5vUjE9G%H>NK%)bdwGQWFLf3vau?b zRUNQ~qNqPyqk5H7m9mD#*>d}$dX?5Wn{%A^(^ksZuM+H&%)8$o+g)GXzunFYJYWD) zqkKRoV~X29>J-V7Y2PvKquhzpqn`{vFz7e0Zd^*J!%5)VdA5*bid)mfUsJA;=$X;X zNCJIT=ARMV>HpZ6ZR-j)NF#zH9>z&09RWb_)FqxYWZ8mdevF|t7EiOpOSb}@6O-l& zIh-`cO{(WS8x{hTAD&D#nck_xmI=(Qr`2-fxBTuUHO?pyce)f;a8 zK5D^u-p`wo4UK_v5NWuGyAZGRkeAfww7dL@RCT7Vk^C!T007G33+MFvZ|<)(0Et@& zhr*aF+!$KwU67wDD|Cnt)R8{*2Je@;uIIX;lgs_#`&kUWTCa5jN$@t-6o(w0QoV~R z>8v39PX*R93dV#UE{8wng-)C&%3or7O@6Eh zg@D8;F#u!=&o0%wl(lZkh>=lWyk!AIjPCC2q{3-o=zd?Cr&oP1@beFtB%5b#X6pA! zO{5{^h7rBld@XDQvF^|5!u~YPH`rocBPj)ii#Y%4UCT^@u~T49s)>N9Gj!!e5Px(4 zc?}lyGODBo`j)Ccr4GBI;fvLCwWvqp4Lnj10C~x_wxTIS;weRyg`MFN0afV9WdX+S zwyC|GYSq%y2E@SX$y609u*w`&f22!`)CS0#8q(>kw9&xLLQA234X(}3!-Fp)lu2E9 zC0|-=w^ib`@(-{#HDzn;E+a`z9hsY|Xvo#;@6lIZrp95B_m43(?Jq>rn=k)DMPs<= zFr*$biZ9vULZ23qv?e_EysgW`!ObYB5iC=USmH=!ks!s-FrRj6!7%ef3#pif(*Tdr zlt%4nVNJSRZs?PeDxz6#pFcQ)8>E`E1@7MIJ6t8Vm7I!? z<0nib+a-7V6bhc_EGW|Y40f%Y3mxuw2t?3{r!y>Q|FuHz!Xe-G7+5DxZvEOSH=uH@ zYh?r$TWh*4S}S)9$Rt^jbDJZ>PEuH6o{K{)g%=T$L>csV#V zzd0N?T#B%edF6U-b)M_Ofym+hbgj>-v-%S}N=mQ{Jq6Ujzk7BtG9yaNsGA~%kzTHA zYKkJPycZj1rxu zL9A$#i$3BJTvDDBungM3jhuR+QQz@2O7C}w_n0SduDhT+F}$#(%wmZ_o3->OT##K& zZ{5Dz5CYcx@Ea#9?ubs15RX)wjry>80z`4v=AZs=B1)cQ4yx{A5N}E~9@3FMJuarm zXN0h4S^}SX2p*=5fd08_hP7nq9Xgm_c2$ipbPQ^D-tgx>{wPp=n6~6oXy_iq6(vS3 zbbyDZEFa9T*!1HC_Isl1t(0nY!qG|&=%4EKvs1R1cA>PfJ$*J@mP0gPjMyKI@oRsE zDCFNO8VM`d>$1#8m%c}3q>3kwXRq0(V?}Lj!%yc*^dZm;tpGZybmWYq{|0x?mo$0^Z{UvO$XQt0kN>`AF_y#%4De4CREjlHr4I(waK#L5B^ z0N0eL74n+^tCrP`-4O?-#(hQueg&&m+Hv&HQP5@M)AADn;vj5=lGdQH4C)v`bbo$Vr_5mIPPMjX?S z^9i^jlt-4~QE9UviCGwd-xz`09&~}Bt_?MT)3{_W45{gKfNV0re3+WVQH~Y*AdGUf z)jGxK9RggfClTBk|Ebw!vW8n7M(eI)oxK)PGu4u`M!bK6Ix83U>{ zD^}5w%ss3?F{ck9c3McB#V#UDfqxPl;Rss0(giP+!wen6m%eI;UYsE5_@3@YAjo7H ztI;V_Nri1hqYLn|3ON617Q{)Rs-|DyeeXA}vrw@zeI$>jE=8tAP39S?lVq2YWCexO zWZD^Jlg$8+L{`Tl(LNcsb%UUbmrY&dsz%Y> zbLtkiiZ|P*Q*BL|S}DJ80yYX;2EG)41t2EiVNiF(RbktFfEj{g=|chIyfG==a$#VS*x#;2#|i>puU&bvTXVdRh1ALx zHkuKvGu~5qp{2=mD+KPn@6Fq)U}T_6tS~nFC2Tl{*zNPg5ckdAGhb|rS>a}EXYdU4 zhnA@wIVVKz8^fHQfn^}R0XNs_%09RLn4=pB<52)RaPJ@#RJk;$mV)G~uJ==dZSUe& z@8!!bR_G@>bP(A95ZMqAIvAK6nbm>GXpz}Kk-14d4-Ab3YtFv7cSN!r;w6Sb&t%n^ zI@IivV)cxZs1>snpc5Md;V)1h{S*Xvs~g_Z&B)(sTBEom(p4LXh`i{@SA zLj|B0ZOx!m}ncJcN@)`oZ|6StAovv>Gzz5LggkgI`_?Z4d9k)03+ z{GO?8Sy#5GicznMiQ4H0VQp195k_3Z=a+aoVU$!T785Hb|4gFj3&PnE31cakeeDfG z9nH#c_><|7kg`%@@&jZQH#4LdM{roM4$^&3xOKLi5B?r=KOooUQVBDn*Exw95*44KdaQ?`Z|5DW~X%RH( z;?*=#SU)K`+F4ylvOu<%&=@p9OogrA=wsX3M{xA1$N@h-aOmnK@bp=cU`zT8V(DDn zfnvSxJ=JY)Mw8f3fX>lU`(-Zp%2A))tQkyb6JFUZrkLja)v4%ksdhX05s-{=ayIx@ z@c-{RWKOgWBmG$2%uh22YL=y{Kl4t;0@kkg=WgO++==Yxqa#Yr-gDG zjcYW&VOfGZ)%!uyeTGUI%zAna z9hZ5zMdnNS54{E0vJ@r5%M_$yyo#Md*qk>93_phVTY2@eddhO=u59kxA(T6)oq|sNvw2%}okB1C{E5E~ zv1?Y8U^NeKUe=DEkP@%ucEN);`4|FywV=tb+dZRz?<`b0&iaiBA@0v=(J7#S!acgD zMU|$sHIASIxx91G$^g6&Hh|(!m%$||xuTT9-@9u)te!dj5S>9b0TN_PT#HT}mfW{8 z@z{1?z(V!?6l*qCP_>7OWoxBzs~QJ*l6G@PRz%Mh%dm4uIJJ6Hwh(%`1k)6RWY^e~ zmyeN7Z=ou5ezm9m~gktHGhL*aj4$5U#9mHNf9egC&D*B?5}mWKbJ)nxm<+tM@~%(kViW#YN z+qN@t^2fGqJDJ$FZQDAt4=(n;+vl9B@BXXm>h7v{^|RJ$=OIbOzLvO%X;o>D#xlf4 z5sZg(cF2Fc);SmOny+ijAG}@Tx!T3*%d^ggGZnMuG#pzN6>OLB0;x*(>sh(FM^Xnv zmpBOV0&vpVkJ=6p6}r~z&8&vNEjgh`wn@zB$RVxO4Qkkxx6sD2EOi7q^%cCLMVryJ z;Zhg94Q;*|<#LZ3ul5XIQIj~*ojn!cKYL|Al0;nbcTytiolul#>DQ3j34#uQ9|Th% zr#ZaW_eL$b1kd=U?->U4T8bvUp3V+9vU$vz3}Gt}5%1#;D$3G@jhx(4o50tSU&42I zgo5(Go8~A;;N2=?$0Imr?_dB}+KWp7hfoN_L=kN&yIFXGtj5)_i%4FUqU_{VVIMbM z*d)snj-vKe1MGPSkATfXnQ~Yv&w6f8#z=OS>+oxMA$u4a#=k!E8<*2uD~R zSbJ5}*`=JepR(<%QFd(n3Uw#vN*!F^`^)_+)NM|OJd>LeUftKX6o(AjB?8X<0PieX z7Q~#)VaYN_U$IW_UBke{vS6juE!&;TxU@SFD>KwJM%ekYk4&9|?jJT4jnjV=>SLHX zf}un&*rTpXN%u}{(dPzD3~a-4d3i_&@P$3gd58C&R=A;ap^4PE1saf|P{Nr{74dS% zfU)#I?1^{$ZUq5tjFdOMuVe8H-m5KaO-sW*f_uYkE@lF28I|mqR-m!J(Dm2^pz{zi zysG@uGSE1r0r_+lp=n@iY;H=Yn2nQxZg}a8=$BVM=Pv6=g--aSd)5YvnA=B2ry`J? zD9s>PrCs0!5Gt-{q5*22cTC{%#XEbf)bRUp0ykbuC5iZC(v3DAp!Vb2tx+Gk zrrKeo_&up`jZvZQ#Y5hYL17^y5|c{X2e_1QIe9z?W19h8)kLzzT;h1MPhxP|w~~P> zk4yH$<~lZW{X>nMRU4DL&OUQ6{=@nm*)4s6J;-BOSjEYWwy*OHUlrQQxnTa}lN#e@ zef+0N@4Wko_#+(A4J27aRPtsb-(0Ex&gbLkZj%JxD?-`gfisTQ9PM(NR+=t?3~nPG z;&1cnNAW<{Yfij3L+a^!tI0khCzuYxJp}NxV)u&?nTVjR?mXEaKeL>$#bm0LAucw!;=8`5L|y2C}51 zYqJZxL)#Gt%T5Fo>vc!D^+UES^3HXJZaC(n*RB*f4r(I~>hJ=7$C$u>;nvn!g%R*= zaTdqO#!y=fvBXlG9Z@Mqm|<@|biFT4OpZsDO*!%k|U`tw~YFHR7ZtUd{&3Xn$p*CZdEoB zFnQGza#WtX1m(aRv(~`;og7L$8v@v&p5GMwXziv!<_(_UMk}%AeVr zxR0K0nfbu3i{)zauVuT8MkuyQXQyWNv~)`4dyx}}3^yFmylce3#g83jfL4eHRmcJ} zPj@rd8sd%ZOfRl%+Jh>$$JTE8-Hv$>_VIWEWG#lwE)6dp+7Rdsr9o&-8MQzLsR{@B zd{+g|baDm83IPdQcRD&l2^HlOiz=vARM4zwAsK;ODM$Ar)M{wuQ)Sn$;Z%L?7_E>^ zd(ZG0ewMSS{0B;uPTO=U3wZ4pmQDN(098%=LtQde7(Wv6KE8QPvnRGQEl*iSkM6Iv<4WNeL0IA^H@N5OyM3TzhfKk5Vm1? zEHml#48t5V_}}dR7Q1x6gED?W`V2^4gos+jS90<1cl3!uc~vQ5P;K0Go1 zj(*>elq!EcUN|%HkX|XnL@F;ODKE)xJJSF8h$_cT$;z9IV&A{`sPfTP%|XAFlw+jT zj)HP;Dhsp3&6KkYYQo$TG-s_W@-QZT|FZkU*2O!-v+6Su+IQT^UUe%iK6q(`ZlFce%YO>q)2%Az^vEyG9p2&$6E*4I-Vx1ZrN z{xRJ#>HamYKr+52+Dz5wLqhimoiNEFfg&`!sGa{rdm!zZ(VUTzu)3FEoqST?0+v_ApyEB!u= zlm+TvbYqIt%U_Ht493j&lhK2O&I=i}5>xh0+J%<>EX?s`x9 zj&`}LZH@HrR!kE|`J(0us=5YoLht5I-KNcVKOy}C`yj+1@K=0pe8NLl92PR`oNHW} z852V(Mvl$Nr6ImBF*?ia&>VgZdZFf3_$6BI&%)oOJI)NK+%CquokSTs*I83Dv@ib# z_#YK=%I8{1kid0QOO(}+oSNPJkfy=w-mtv_;vG>R_5kzxwRjly|ADGA^QnT$CFl6hpOO5 zvZ~5R1$v5O?8en3xi}+(s?LoO4 zQUPX*Ohv7xNce{_Bmo&1N2=0Ki%nUlV{K|}%j4s+_7>sM+B;@w9go-VS^QObov#r} zu$;G)gfrdOeA{!!Jm-b!;klMy4>WC%Hz4pxHJWy2!>Op=mX85+qSZRT{h`^656Og26YCLQ&&2+SYA~CJuGzJiGAB$}BO%5?*+yp3|Br@~CTEza*URq>@4_ z4c4z5d`KPYW^rpVf!enQB5euYzbx5i{Z0^qTO$dhx||!$1DpXKT#fk$D6l1Qy$aA= zp)Rny4hTjZ`3DllZc+qD+pS}U`9aRwaAF`~n3`J&7kb+-QzIY<3s)tS&b5sy7H)M4 z)giHkI-5&(SYoQ!!ZkgUBtf%} z!oN`}NGLIj6z_D(AG~6zhDg!vr9&qYf@AM4zgChAQXNG#<<2+&#uYv*ko)7}BH4C% zOqZ*%nIQeg6izE-XaPPW@eJCkjbebmu;+3V3>${7E{#f*H~*^Qi$R;m{GavBf<&xc z?{Q>)xPwGpN&gNfR6r&Yr|N&0 z-gNce?X=m*iu*+i{5?^(Puo|{D)|g3jJ@tfjnxt5w|gLBIFmh1-IP{B7oqG7a-Lxj zj`swsM$J9C>>m&Lt#kN#k2S5N;~Rwevk-BoEN{H;vCmnPT0Z^t`Oj^D5_8GAIKnkT z$+8ozcBj52wNNa*V~1LKz(4)qS^P`4w2ME=ggT03`ECos zP-bpl&LnqGcN|4gi3P6=Pw97e@-?6OKrP8XlVOQPh>b}*yq4xg$!rZ<&SR3QxvBf4 zGPy}X`Q)NWwrX}+V+u^sdX8pt*~Q|8dF*znS68=Fh~FAdi1I9AD7~_ zx`+X0R>CMI8_mhQZcZFPH-m|k`oF$u*QxE_IU|bA?422TQ?Gw|}nQXJFV_GOI zKUEr`KLuX`PBIF{A7E6PZS?iADX?>6DK-aFFpJeEI#pZ1ja;!@m{(Xq%MJz1P$Yo1 z!5;Z_kpHeU9|tTuseyv#^QQcQm`;DliZ^(uROQi&fhOHV8|n)RqB+L3uySkTIpP~izyPw6&a)nhG*7p3+ zg>wRTreRDoDd_|IA>!{}nZl)OT~97gR&%4fgortpgCvVY4Cc?Y2){riU4wvhdmAb= z-MyhDze%-9=?;oN82U&aSlECipyP6fw8%Huu;8bqm?G8cx+mByf=sxx;}wH^rgx%H zn=tGq=(I*%*{Q{?V$no-xtl`%E#|`oUEsxn8XPMD8z<3=^Iv_+HpRG=z|m5sE>z62 ze4rWyBDv8V7;I&mC`F(-=YM`BSm~kAj#ETimxD+c#v$;{wgBU0PTd4XlwviJm&?{~ zMw$BM2$GymGjkn%0;#PEQ+FQoL5q{K(ib214D*cZlz`!H9}z(A;@`&dRrOo-?JA#r zEP8bbVp-8{#j@q*NGTP9i7u74Ec5SOjMJ}dFzmGZbQGM*7{1`F=DD~l18pHHJoQaY zZc=HwP*s4m4dpyl15G!Y+d>n})R5aL_o_Ir56w%al(=3L-n~{0t31$*5P7neTNJd+ zeY+4bUDP=S}8o-9hs1GDZ_qx7NT zcI%!zMI~ZGQ3;UW@OPq-&G)Vdd>xd^f$u^QMt$h~)qS48tm139RR4WVL9f9u1+xpx zQ&w_y+*CZbm{1>qHlCT5U_6)6CS`U_#GQZBH(<4|_dIA*ohciI=|>k?Y>busbgZc8 zI`-?WteD>`rFn-7IYpIyKx#!Sed^0~OjC}RK*RN#D$9!WlMq*piMJ#HgfVnebm2@x zxF4Q^p41#WtF#7zOZ&L66!23j|5D(w&pH-qzBrx2lwaXDIum=Bg+H_Z29(pA2x!De zPu(9oOn@3w>69F{qCu_Vk?!EG&I}Pcf~r^HQeGP+%Frw;lU@o;6#d4cr%w98szkUJ z2mT#~wMIH;Q=;+lgIini&)g1-x*F<5`zKGfThQHn2&iS$B$av(4HTOZQH!Vk=q6Ued(VjSjs>{Yd234fW!zxDTQL{l~5UNrgy) zGoOn4qWK;EV55h$ih*Kt^7384fm<`x=WjF7f z{S=IzvoQ^#M84LjX_#>FF2EdavZ}fG!4x#4s;Z%|kuC8;oX}T}?4(F~qCbBHpLCaX zRJjb9hq1H?F5RS*?%Scf+_Kog)xX~3ZWUW3X^m&w`7=rmN9=ZY@K5H%sd6oAAsOFa z6(~^Ds#xTg+Lo{ebs0bxLc&X-MX;)0XD!@Lt{VfE4_PUkg00DAJ+q52<4&)BQHSSm>5QJ@48Wo27CqO zk*}Bu@?84N{9!k>b$;p6DJO&wqL@bb#2C(l6Ic`d-iq@8#ng?fVziLh_X%0`bnesZ zjlj(~EEn&RYUhdP1N>*z>=3!qiL8T zlUBI9dT$a3aX^bilHHhh$`xze_NsmPfrr2Oby#pRYa>)M5y6OUgHu@tt%ix&A{4=X z==WZp<~jh3+w(ozCy95{r)KZKQLA>L=7^cZLP;M6I;cdm6@NvkJjBWqZ`n@JE*PKi zg}BV!P|k653osNRq;8_B@!5R;=$33EbK zUV-T5?V>&H8(sjx$FT1kjXQx|l~`e(wKK+t z|1H8k|L?aK_34FpP_tXt`*eC;LAK9+_rjs&87J{uuSD`#ziMp?h&S>DTNez0uD_Ul z@M+Im9X)gCdPEK5J~3a){={i>m{Sk*qK5DRqp^8?Z@CzuVao3s{p}g+ZA%ZhqYd3A zE10d;apg9x{b z{84R(>B(b@QADU61MZ@eulMrCvmc+pms;2#unW4`gX4{`p(r*wYCf10N^JWY|9pV}K;XAZ$$Y<} zGaF3t)G^fqD?6rn!mG#H60+NxR;}K;$WX<7OlsN7=TuyWVPjyBu)G_@_U>pGv zBFrg>FaB5g_yoC!llm0yJt)WaHeo1Ss4>%*(-vmcyhQ8F@QpKT$kL%)=ytT`BM#ESnkUb1L4RCWC@6!CR3E$zP zK(L7cn3Na>T{_{COpptv498=lWywS=d*oaxJPHLZWzM8P*3UtSig%nbPT&F!xDg_qs9N z%ja306$1*gCarYVIarzxG6kM^?vo1%tn$*!JhYk*O&rH}vlK0!AS?je93AW-HhI2) z;sKtAQ|!1(NGlYiIIF{PlE9_ZS?!WMiIRDq1&f?BOloF}ob)uZMvI(EMe@dajpJP} zzuI`PRf3gWbj@(t21xhtkj~-&rQ4Xx;A0mE@cWO@4;sv6_oq)w+L#=-e}#r`TF@31 zOXd0ZcPcHR^McgU6nA+28QtCq)Jy9DH4`6VX;L3`c3kVNX!M&<{zbLs{C-U4*@CV; z?nZrP48k&tU@)m>(yaj*z&M1^EDh{Pg|&q*B@TRNzztE<9!Rb{S2&xJ$%qh<*&RZe z{dBZ+j^p9dZ;PiEK!7(IMcR`dCRYlKr#2H908vp)a{A$?Yx08rY822JJKC3<_sPbF zCMZYcwqZIVRJyH)dbHT8uZ%p!f=S3Z&EkfO@&@X8{lnFeczkL1hi>zf%5o&RnxCr5 zgf}*w7-O3MK=3Ki0O6;avdS+%@$n-3r^N@I;9VbcyrnqRL&2-+f^z?(vbnJXyWSxg z@mH2yCHwKvYNmVS)-vm5m#fD#+K-I6T->_QO#tUd0?B< zg7+R5)4U{R8N(EwQ7sep`$Iz1aXi@guzx2_WYib7PmRio{&>`nCP}>Q8<^)5(g$Tm zDMv?g`g;}dW7v2{LFW>!I9C_{2TchSa4o#ZwGQB~MS(8ZJSk(oFQHw$i%FxIUGnj# z1sHYCql+?o|DCVpktFei-a4`r`cP#0V39h+>hFH1C(K|pZncGaOH0wH6TT4C+nq3n z2)sOf?7GF0KjB2kdh9+xeYpOP@@?U;{dj%(j%EJoF~2y;YMt=pdhtc~KRKWCVs`g@ zRmUyKj)B`K{!0W+-!B~b0yB|c7YHNU5kxbgzELQg8?ezBIS`x-0v?sqm66NV@=0jn z=CJ?^Vu=$kVjRLFhQaP?`GxxsJFaNw8L8L21dsF9#=8-(BuJW}v}-duqj|g0Ng6h z0EMQH{Jav$HKAHu&#o1b(w6YMTSWTVOm4K#d0ov6;v46UAu4B-(Q8kt5J+_xgJJ44 zx?POWD*9W)2v(qx5pg0~u&oa>3T{|*)daTBJ(}T~k!aO2$spE|5gvQsE?5zO5sl~e#qa70x@48h8cT~|~o9WA9j1Eo9%7(Gsc%3C;h;ws0{?Gp! zAm;#i4W08(x1Rooc4_`!%e3|;p2GGfrsn_r<6@R}hBh{yN~SKZPIe0Rmj9>4tXWCd z`k$ekmmMe5OjmZj`DufSqRG?Yw!K&bCb_r3sA>1WgxiK(#;pIcDDImYUrMkKf7f5} zC&0s;7WGllXO-K0I*0RRbM5Q>VF3eZ<~E#xYD-0BT2(9}f+ybf?1?5^a_Un?W~-b{ z4BEe{8pRI%Q6-m(Uazfi=r6ZYaziXaQ}Qs)b_K)BbMyk6i$JiS3yRpfR2QDS%9xGN zD4iT{v^~_!PqR0KbnsFSF=9vJI(ywQjVOv4UK3JC%>dipKZn1ZW4gNqsQ1T}?sBnU zOf=P@1{Me$lr;DHd7ZQbTPr-XjySz2j<1lPW!p)&j>rnUn)2bP`6RW!YgSl@8@p{v(&%6CJux?W|gNhWyC5KEv7Qly5n_ z%chC2b@C2-Lyc;57;g6zzdQ`8`My`{ny%?!A|sjKtC~mm$SG+;s3uO9vFR<=TbT1E z$G|%Q=RkGr)ZB+o;||g0@NYeQ7IdgMe_`&Q7`^WxSDff~XmNpswh;J~`p^H8!Vj-m zIPGTw1oW^21SIzVVN?7s?QW14!XRmAzVYM9$z3vrARw5GHD5ZuA_*v978J6~gCrFZ zvfV+F0$rt-4t)@$j3A}aAney*AY5+ui(W3+(^}5&@AR#k>jXqpg`FGkRQsOl#>U14 zx95Wh-j_`TAl_z9*ciGfno~XGh@_;D&KVe5XjODEY3hoOnaaUWz%>jJc}hxhNQd}I zN{V=gI8}udMp6!Dj2k{Wr4|>D5-J^3Do!tEk;1~YY5sk}HOlcM42Bw39)m+S)mB+j zUs4a3N@slWQGP>1apHjL(%gMS{JaycxOrTQJzvmW7|VJvpki$4=oQ_Lok|BUCbWWR zj#4$hq7E26sPNk;7n}q3^NHJR)?{+lQn(a0H;cXA!0noGz?mHVP!@CM&k<#tL@z-a zx2?tZVm=rO8F^%RxZ>Qcqp&l%yq(5ieVM`IA=E+`{KQPPe((h{ZZbEYd&6lRf%|=1 z*PSqoQ*!q!evm+eg;d|{7#Qq)A}8~`(}VcnLvsKA5G>cRcmZidIz~ze6?LRE688Wl zE3)!JVX^AosQ|cGzK#gE@I3-lG#-+HI{ebW-@^8zNK9D1wChlE?G!QMqvX|0+6(#c z7?D+QJQ?%+@rr9@kvETExK3!2&T(pbX!`uD*#ZZo0KWXTHl`>SOSDvk+8D6`kwRhw zI1~v5;>rn_N-5%_?Or!aQ^6u4{w@lg&|qd1=3zKqGq>;HJ>iE^3K3!0#|8<*vZ@5& z+~hD34IS+2Dr_vcum?&UY8k;$Sg4B0k}~?gekKPfFN%yuSey!K9K%seV+tGX&|ANXxQi!*l00f>3ZH{nSX7S%t}X8dzS;! zR9$9$30|38+pdXV;BfE z7AWFE(ikb2B+^0Z!V4hq>~P@8j~cK64gv#z&jLRNf#G%FdFhmfmsm(v=FIiF{-?!EG0c5Q!$2= z*Z+QXD1gJzWFcQ)FF%n8{Jw-u<#x)0LW70h(Wi}|THnxM)beL(-(bYoG!658c;I4J z!ypaRM2r7JBz@jQ50CgsT9-uTUjRc(kVxjwWOtEJrxEA4SJ56{a5q|jDf22Vy|X$x zv8z%LvfuzQDF(u9$QkquK_U#N5rJEruv+vhUa(Yb*=Hws@%L@JL?UcVZ!wpK z-f=&6+hVBnE>pc9vPEA21|;ytN8Yl04K~pQw1#w|t~vxtdya_Ho>W9crOqk*79Wl&x8iiE)r&W0#TUmKz!n89JsYi$B<5GqxTpd3q;B1$ow`P38A;*?6TeJCV= z$+Z%uo3ycgD@1KJL&?3s?*YSw6!dzyJxNWj8a7r#3r|ZyD;%3QAm$U#b3?7H-VkPy z3G>d~f)(7xJP$3^_@2O(hp5@>JsyU8R}bbo-~%2W7>=817kDu&-s(YWocLc~v%{WX z#TS02rKe0;ADy-2gVjC zc|wG~EoTCnXDp={0N{QcL-d%~2*PEY8xegz+@f!c2V!QyM9*PQg7YZVfX#z(Lch<|Pe zgTVfaGX{Jr_M)8$=IYeoxfJTI{+O43CPQdn*%wjcw9Ai-8F6*SZ8gkqQkb_K!PX#x zmHJ|f)SngRw@}qWOgl|^Snt&-T_wyK#EbKO`P)V~{(gEA^hjuGnb+tN`cZ3yAaqA? zF21N|F~uyrdxek+7c5A%@idqqunf$MHeeBWTb?XLsmXh)R7(&^nUUW#5sLF_fuxy} zCUwX5MT4Ma390S^O=C7J3=Tpl*oY;O%4AN)e1v7lm(CtV8Nv7sM?9%u8qm-ZDS#VN z6aSh|YAV@n!HCl@?J7E$1~RtIf%y>4Bnlb<#nXlX$iwU^EV}~H;^bmgNoA)=LExUB zy9kWN<0>#hdK5+!%He5EN_Y(&{4iG^Ggj-tHSDni$nOE zx-7IPsBTXi^qeGP3CIOafwfNdDxiiW%>yRh71Uq;#pFeE<`;l0hUmDFFoqaw_+vQb z!MMgo74&TG2kCN1mBcvhS)^m1_ba4hUkmZ~k!#k#_?lWJ!3>yK;?c3vwbH|vK^XlV z{Nez|xd;d2^KRKz3K+-Q=pj30xJi$W~f=`FY zhfYP4qSGMhf}VTRYaMFvi+~9_Jd~DoGQrM)88n%9S7hbX(d-srFgBba&MqC&Y`JAQ zOjT1Oki&V+o9Mb6DISZB%fGt0#M*vaV|W@3(bYIRDa zBhBXv7gy|_{eY*Z4IJBEBJO}^(y$5o5yqw=a`NYR!gw&kSPjs zrkrk!nm(pYMoXYd>>c@+71?Z6F+E|ovYs&>a7(l;xy)9Oj%D!JwJ3Z+!q57ICK zlwXD!$DShM!KAG5LG=&7<>d)QcqRyn_6UVn*iu#pmx?5eX9=<c*YD)J0>!05Nzj84S=y6Gl#n$0VHn7aC79*8L3oJJ5MCe;R(mS z+|Ni=IH7@2r__D7;p|WJ1hYc#=WH>9)3b&b64;we7n&lG0n)?Q+Q+WT`Iqe?35l~{ zo<~&TLMcec!^;7j@Q9!niNptv;`}+5$M-9XY2;Y}2ORC78Gi@ry{7#4iJ( zyqMR_2LHRTKPkk%o~1stI4EiTdpD{CJvzi-WFO4|z}W28IJ&1h#pQ8fiLq+rteUA; zXq&k~Dn9p)2t)FCN*9t|T&513C(ul!HP-_zT>%QLhg?#&b_}O}aTm4@ivm7RVk~U~ zdBVntHa-@)1G?Ajd6ADJQQ|D@JgU5?EBZMT%AVNyl;IX6tQ9eAOgt)BZk`>p;~vW3 z)!5n!5z4@U6Pc1p<`PrFR^3YU2egL_>2y(nbN`|(QbrL@!cyf3QL4WK4bbT%thYmt zH(T(I>qd94;;tnf#)L~sp4N{&-&O@7w&(V)I5W^KKT>dbaLWDc$`TmP?&%Z`ZgIDh zpYhCCTna}p0^Lt|%k<!`*^if8>k(=3)#UEI5O? zRcHsUBExA@$taoZbPCIVM*H+WM+s}<8-)%FizS?8v5A?B0vfooOb7LOE3=Zt8~Sdt z!^m#YAV(A_)Zvm-5{B9H$08jW2ijbsDOhk%oL_UPSVWM*-;>S(L|kjKke;cj5yl{Y z1sWFPNz?~5LnnwGD6gUP1Z~t63{|w=oV-=X=B*O+mQ*E1Q3~UsQ|ZN)1J^7d*5+;l zM+@pE`H;MOFB9WpBtJ9)`;j6BtVz+V4z){fO;s*bz{PQkni;`OQ~Kmb(9ot+0#E1n z2z9Jt(J_BI}tmB$&M*x=-B{f$57&K>9&bxmCkPHh}f%bJF| z=>FX%ckBwNvY1!)P`A;rV))_w-@TzdSYh|CE_oS)ScFp`d>Gi_t`7^T1v(KTW- zOK;f`q|oY6L+!8rb)IJP*X^11`R%r%c(@P(uh@vtsVn3CwytikQS%O(@udMToE`*2 zX)m|G7iqN)*s@=SG#|e%N%qMtg0w-B6yqx(gFM5A2_N7iQh7%4iAM3{hH*o9RV7}5 z-wK_?ub3nmrR)_()lL_ za?$PCx6cZ5K)rFp5s~aa_S8xTn|yk6L?~t41@C{Ag;JRD@8TycJs_>QwGn{`lYIzD zjP*>1d~*bn*Q4<#j|Y>C&9uvrL=Y4~C1mYdx`~<`Ft2{jT+j1!7;%!Ee<%2h2EVaZ zygSvZ=TBn*0Ap>RIF#Z&vJN1%Eh%!bo5kle(tG1RQX@BZ67@RY(m(vOfGMDW2?{ej8y0Z3+!mayYpWQSj$`r z-FZkWeYq8VAC>>cC>FGTj<FE3rVm9JR~qp58|MH_7Xi0II9bFJ2}-$V~dsGs(1S~D+&7&XsTKU17Yr?;tw zj!)+Uhc`n{#^@~3q<%*I@Ie@%CW?%@ z;Loq)S5h9gq^&gatpL8jIEyuoh{8vNjO8d0L#2$h&cPdP(RA+sF8*B)`V)(ou#xxV zXR2FREzZbs9IO3<2AGbdUsl+hcE$*RE)1!#e3ZnVR{Cnp|v#EWT>2y>dWbV~kgq8c{To+H(rNGm;7@Jt!Wt*cnA}kZ@5Z zaAo_<(8AC&ps5VWy=y~0{E4a)GsuX9rTX`HqLVhx1CH`S?I#I~H(xcee`%G(P^D9> z(@-hl^Lut13A(01p+=a64#eUEohP!=o?l0<(Fr+tBcx|>Qu$)uF69R`<_%*0QP;VhF=(fn))Nz{AX5!1 zl-4y3GNH#&JP)RZ5k}j~SCw#ZuBhzaR~S}d`*MBa$gj{5zxHR80$#oYZv%GymTKZV zj6kX%7zZd2qHl(qX*48;29$;h(KVMJ?UA-+SM-ZkkCoWVzFSx;uT2s(*2hJ2saqs% z*rXM1UiV}E9aghbye6?#!+nSc)wWYSBU2o-Y|urkhQ}DBMhzRMLa~3(x}AsII+&A= zggKsPm6SP5Q6x$HU85{tndClLrNC(QT}X^1Q;8Osp1Jr@1_g$4nn3tOyATQixi5RI z7ieLk8E$vC26L|CR!^0f>bE#lRvr<=ip&f{Q3DYloFHC{7;r-OA$m?2yW-d-3q>01 z2Y>YHT2jeV&Li5*7k!$4$0H^1sX7N+-JU=G3e+d2vtM!_7?m=CGUqfdJ%8$v&LHpF z6$joKCp5TEUwo+ltVbhc*d?$#>&+N~q0lz)z3y7aqwXo~nF+h*Zc-Er8<;dfE#{E? zLQ!>ycjOB`g{^`qStCn%#a~pHZ;aX`uA@~nn4fYF6?6|8oip}<({Iit&zvle1lZ?d z>_SzWbI?Oo6C9l!2w9UYZECqEEg3vZxo@uAgk#tCX}^zF@g8fG;&bstKcm`_EI#$d zdZGKO3ESO7GduTB#xJkUjT@~<2)jqc{zq908&y1Sf8Zu)uN=|er`qzVylsWVCI!H2 z7hQ^i0LVh~&!Q3NQ)CppyjAF8pj5$BFC9GdZ)wy#4MSzQr>s~UWR_I6z|~nDj8nrf zR-Vw)Du#9ghlSp;?|i>&<>XZ$+QkiBn-cm_n}o1R4pgS;s}T>8YFH?w#t0x-<+fFn z72hah3n>}v34$WAGc}Age>%&H7xFnmwxR9YHi6k3j~tpRl44F>6=y52lX!lL%3BQT z?q-@NLDTPcT&VLIZ8fI~ykFY*kqugnZtn=GM}FcO?+M7)S0x3Eo$UvJWS$%j|KZ${ zjF#$T)A$y5^>GQjGR=h?NE{Y$pNQ2e&5i6_nywsP)45txKMXv&mSMy^kkanp7eDB^ zPyArk@+Q-F$;?Z{m{~psQ4hI+rLke1IVJ0{ebxR5*Wc>j$jv9@$t&~G_-&%@*z@S6Z zH&M=x0!NAuDMyE#{Dk8x5EfA-j^u-DzANYltj!GubO(){Hz=s!g>vi=sB7a#hh&?J{mLLK*%`58)ALRVw z?sPWeR#A>FsWFDqj!-qUzk6xF%L4&2ssjZ%cg*)^(zxz0SBdl+w}A;uoAQ(9$i_i({pB0$muUeWH=1c05(;UlTChvbshqAB~pay?hD*=BE#g0NYmL^44|_L zX-XaEcCP|Ba9IfC2|GT`0t=b7*z{GnbghmjH9VmZ0RH+{ar#4&d2yz0C& zYBP#6;+s=&sxhz=_JA^sI=CcXLQY)^yd0=Wm{f*SUkc**LP0v2&kcor8102~Ujiwg zIN~=>N^#iV7y*2>zMos+p~9x^hh7il{Q%w?wpRk6$zmW10G}KpyoUZ8>< z3wA^Xm8T}kti%J+8{L((u^kWYIyoIasjs~+!ZtmV^z0(plNOF!#mXLtB7YU~S&nNz ze^!=#vNMux{7^fL?9=fuLJJPBtU9|ggv(YVl?=u&#ea1^u^5h*ZpDxZLpbf z?gW@GSkX!M8B}fOTO@Pt722~IbQngXD%O}R+NgkQaj;dfRM_^8>`i|n8G(vdZp_2q zv*O6ld+pJjMN1!p*_4!+2irn{lCSr9*^r{j_$+IB;8)*C_KGAK@8PigY3Mg1TcXT8 z;=ZsExpKt!<1mH9{UIDbBciu^{74X+ZG@jBTfarea)Ng)!I{6&whZW{z%PMy*DUy0}^L@#tr86xrFR|vR2Lz34}VOV?B1TTzE-o zY9>+8yPF~iJSAHfL2Y%)kdLILEKQljgs(eZLd5mH{?sfgW z3gd`mm+VI`LT#QqzXmz+yNm)i&%-*b>f9HEzZ5I__}kA{&iyH#VA>ziRVJtD8J2eT z&vcZxf~qI_hg3b24~SLo?8!?+Bo}H@O+|>y1d|pP3$~Stlsea*o}O9e8U)D@=vi2^ z6=FVBjP%P31Zo9Xx2#ZC_ISlmDPj>c&yLzc;_pQ*fV_fAB3Nx1{!m|n0thii#Kejh zWn^i4ch7@N*!^?!Jq-HlwWt~n#ybL#O3+dJMZtyBv^pGOzK9b!7$6Z)N?6Zm%9Izd zv`w?9ChtdQrMN;8iDo}^$n5s-;?MFe+RIJ9Ewh$^@t@d1G$uOk*jcK|o4*T3k9$ZA zutV}_^TAgp3+41peJ$2u9Nh^P_wCY0?!uH z!Hb9_Enmqy-nN3@Sn^7A=Z_tejxLhd91hO>$X-E$Gb8lF@~kePRU;7TZU2>yS&N;l zN)J0lUwA(t8Dz~i33HioAS8Vtj)%Tu)asZ_YqLcE;kr(0fIO>vsK8J`9R|xCj4X%S zirvLAv>G^~{jpObze)MkoVhsG>6v&+=5lX`{QXMnPph7_weq1;D4Cm}cJ>I{SH#SW zg>PYH3>of)RMPOvJez(E`mWExkoEVk1skd%INkTnP&U2HKmD?qqq`294x|*B+UlZ2 z)lj_+w+YMH3TDkQsI4ivP}eqAi9_xIR77(eW&K`;48?Qy@!zDzR(X|Z7RqxeizRcs z(NZ_o#9Ui5^u(2P-^KK?m0GTHmMWAa3&Fmqt*Aqy#_zp$`$DCu3r&8kEVx}D+InpH zZ7xaio<|lrkpfQ+q)p)PR6r)e&bPuqX>5sq`{5{GbF@x);dX*tw=;LWy|Q0QW?|tg zAGTqCQWa}^%vKBR`~~zGif@7!%yotu(S(G5ngd$)ANInGeJeJmy<5WI_t%iP_8K`| zY8Ld_zMb+SCEP>o_Sd$&pKsS+P_HEQG%=K&a_-{OmR{r+9;O_E5c+CiI zJJ-G7?(@dp=ZJgHodye#;qhK`7YnDjo!FYU*fw7o# zET(dSK7;@e$gYKP*~(U!Kz}CPNtLzZ@UJV2VKPhs(2mD+8ZEFk9@OBcUT1Qa;u=#cM&8smB^PoocL*HF8qy8aO8gZK-CRD#_&eq6R{6A--R{3;Z(s z^86T>l+4f0sfG1eezn)dM)ibCYT!BvuYm=zBs#KjawCvpZiEGhn2n&oO>nb7(UTHI zSaP_`6UZ8gR1ex@aI~oq(56FET!#@_2a)*3Abuh zaHqBi9?+J+F6|_ELOTT!dVL(h{20(^M0VSsPx*xG>=|2N^Gux4R@l51Zlg89=SGQ& zQTVuH9UP61yJ}$DT1cV%EpUGgJiHbZlSdkxy8!VbCqAJ)LXDI;Y@4Scq57hfckU)I2XWYb!&Y1%hw-+AD~ zoBx1|whexrF7mRyE>mGkyv6Scs@p3|wl-E$%lJN^Ff|Fvgc@de$w`z9GAqcOTIQF1 z-jSS&M@|j46uYg?mO2x86lg1;m3B59uAKu%Xy?K}Z55oLU4oRd22RqhfHSo#ky5UL zE48a3rfq=Rwd>#>Ee20&H^EEV&G4>v3w*9^h99(BnXTQ)g4$iIrFJ*#sBK|GwQX#c zb|0Iq?PT+`2U)fD5IaqKn4PCR!Yme2*{#}B^sgl(IKxFq+r-Ix2$EuHgOtIU zEjGa6^qRSiH67oT=!9jc8^Ox%s@Afsm7K-)zEgj%G=o&u68WqGHneB0kdY8;=;7@Z z6FRZhg6k3%T7rRCcn(bMdE6^6Kr`({#KtSo8Q;5WuVc&O6HMkpkIDR7Fd4CKtew*9 z1~AkZsK~;8$Yxtv2MK%Ulm#0hB-s(`vK21Qj*~g-zAoN^^~444xfU`KWxWTrSPOP` zi+e5ViLz^0zpZcwZJM>vnyRmZjBRYd^cbY!aM-WtMxi=recfwsWrOJL(QI`qe37kf zg_pDStxU}}Xb0k-&Dne_8-jmuV`A!P`ZJ9FjG#Xw>Cb5TGbV}Dra0~6P~{m*Xd?vF zA)^yX@M&*DhW0MB)ZT+^?S1H@eE?&%4`H(Q5gey|3?c0kn5%sTmD=ZUwzeA?(3h}U z`wA}CzJZO}cW}M-J>0DQfaLXG*rNRi+qIwIe(e`{So;rvxE= zC=ots9Wpg_E1M!4%oYv$457W1mEcQv1=-Xfn;v8{yiHxhj_s?;vK!LX8a7+hS5K&6 zb8u&ez1D&aQSn?c;-Q@<4w@NDP46^zAvQ0K7!CSXr zg&B`9_q19+rs8aCLUV&KkBbKW7)p(OOm|N|l`Lj84Z9X{T&ur)G0S zsbwn&7mqVg|6Ay;9R0uDSb}y_Tv`<5$pnQ>=6>MyK30QLZ-4cVz;pu{t@oMvSd@Hx3+cai&{Z;S&&_k6gszgh{5`E6B~T(;N)H( zl1N@PK;?ZkrLUf@XKi3Td0!)4&)fw4C3F|ibo&|&#!S~e&{BGNu%;V0VvOh&F2+)J z&00ilhMKM)QOmBE?fo_EMz1QnB?i6Y#kb;!8ZJ^Q6>ej9rW<{c&%2_k79WthPdC;> zKhbC{bP!ACL6L6M8P>qYDv|yc+B@lbx-m_zMD1Es`Q)sr>W%?somME#?u&tzRz1Ly zDBs!FPB*S3FsPG0ataw{hLvv91Rhzbv)GS#1kiqrxmu9{InPFkgh z4oTmS$ogG{^He=hWQe@+!6U^+*AbUH= z-c4@Zqh&`}|AV!VOqjqvLgPV! zWst)@#yl0xf{<4lfQ{@Ek}m8HIGp{PeFlurf`ROFDpl@)LF@}ueobW;igi+hE#+Cr zV!N@_=8v)VqGyBO&w7jgbe_Zh#lEEe_%&=Y`-*zuo7pJ#HKr84jSXb~Vc&qtcd#Sb zx7b!wb(qe+BL!P?!Oy;zN`rQqlyoY>>6Olw%9ID^r&5jJ!%%er-2y|mA)p7Kg`NU! z^;GDh2caLP2kYrDNo|q z^s%g3&u3@p6WMBgGFzulVb|-^*d6+Gwnd-8w&};Rr}X35i~1b)hF-)z(!*@GUd$DJ zF8AwYyqUg$XX+7txW16*=uzHRujWJbMSQHjm`~A{@LBp&UaX(U7wRYRrTWQyg?=i( zKtGLNrmx`F=qveV{S3ZMKZozo&*hKk=kdq%^ZC>ID*lpw0e?fkkbkUS#J|!n=0EDI z6-8g81oTUl=K5tyTm5pSo4!`*udh>%($^~^^(&Qe`qj!beWNm4-=q}j*D7WDbxM_f zy>g)*Q?Af&Q8wwDl{@rXm0kMn%Cq_%%1ip4%G>(g%5ME!LdCW>NEOo^+Wv|^>h6@^;`XW^=JJDB&8oU zSN};%)qmES>%VGQ`fplC{dcXqzDFBoFm0TnXwwZZ{N5~?a2F_E0D2me!4@E<3_y_`5XDbba_>tJ&BB9@H5Izn<)JUQ3 zkXcj5F7;$|UUCI?B^sQHfMoMpKC+(F<)edqjAz?=(oJ?1gQZdcwn$36$Lki)#046c z%b_EjsLg>SfAz=ff zUZkFRSS~l|9ykiOQYWyD&fqt)aXWQ^)<#!oXLN(^Mt2x!^ng)DPbe^Y!3^UFm}m5X za-%OSHTuDF<48Eq=nrd*0k9GCZZHPH?Z#ku0NXuk42P$T5%86f3qKkonQn|`L1QfI zY>Z=FjPb0GF@cRTCb7xJWL9nzu!Z=(*qFvnG-k2o#<6UbF`KP1PGDCXA-2Jo!)`DN z+1*AFyWg109yaE)XN)rTnh{~|8Wn7}5oO;Qm28hu#T{c24;YJihH)})W1PY}8_Re% z<5X0jSMUMG8GM*=CLd*-%_kY>@j1o?s0K9q6Nbb~4wNBXj0|ZtVsH)iIyTYk@m{Z; zq&8~Htw8qY19f%8ATJH_`KS;!9H&!5x2JIhq#0`=%UA~;Q5oj+4z_x-z2PuiV!MFz-Hhxiuq6A^CbLzkH1r}|9SX4&3ixH zdoK5$E3lm4Tj{-@f&E`9d{vn*1KBw{`SPx{{LGkginIy%IkaZy z_f>OJ{M4m}170{l7sF7w%Jjf88=xi7|YB_KH|Ca>W;QQiiGE^!Pk4(pWA zD`G4&4l%8TQ`boJtiu@m+z_j%gY?xrtw3l^b(|(Kc%qR-$i!86BnG!ZDrtu&P84s~y<6%~6JjN=Ff3cH{$JrUi z6YMG`rGxhHW%nW;YqHu+7GsY>V+W+hM$eLic_4xbXoB-VfPJ#z*XR<74)b z@hSV#_?-RM_<}QIH+PM%cvIuQyp{12Z)^O@I~l+6UdHbzeD|R6-OC4?oR2aUKGszE zbW`IYQ|Cpd&F7mAkC-lBV*2rtsBfD!1uXYdYHYGf#wlP zuGvqSXdbB?WA;~OnM0J2d6ZIS9<8h}bCvVWk;-M}SY?x$uUv0VP;N6PD?7{re=R5>P6SgA6 z>Q(0X>NVyn^=9)z^)~Y&^=|WGb%%M0`jELsebT&Cea*Z~eapOD{ldIL{n1>j>E=4k zGS_SA=2cpzxj}1XZqnMC*J~Zj8&MT`G@*(N^Q_1wa#w7_Jr(3H1^FvA@M1%?qe&gL zgZ>dUFgHWcybb$%e1HAbi2hy;^4AWizq_%&t=QlCM1SkO{-(z^v`#vC(Re+NFQ?;oT;9$IWbUcSt(&1r+fPx)ih4t zEnWv3Pe7{q6b^C`zgP~E`V(Tq1#mWz9yf&axB+U`&7vb`sW`X-*np31$Qwe*pJ~dU z@m_;pojUr3_(Ww56?HK3A1hD2}-o@Bo5AXLr{!r;Ncgu3V6&0~U z{GpPkARNlo_Qp_iP! z!D=FPUQOt{8tJ?!gFT(sNH??%o)VX#ryHdAnjh{*CnHxjD!H_UgZ$q?{u%ky&8;~p zHmbur`)Z`{4#-KdYWVJ*a1V__x?5Bhh6apm6V{8Rs(xu#shV8o5XW($}!@o z#wAGgx*tK^L;LLd=MKr}f}qkg>9{8yDtRgtGp0!_2v=4ciI__g%3_8#K+VuZd2H`{ zUTMr|D@~KQLI{s%r3@zhG^jKSD$NON`ri83%nT|mMgG6Vk|=Fr`r9(qE~dZeDQvPs zO2k#Tz6Om+?xtF$Q(g75A!;t%YMSs0;`y zgS?>yCbCjWH$s{mcdgJ?6Uys4sk|nJ77G~fPar6!ot9Wtdgw`@8jNGaM~EY?Mmegl zjV5ZmKdR)!vFpUKYoy!cKFrV)!#ZMED?U&HCU4u2m^upNf8-&~z+ZcEB#3Dg5+$ln zA$Ugzm0`8aA5$NYFC)auUDVwXDV-&aVfIMEtGZr{Qom%hC^@}8^_8n|ubjyNV; zK4-<0i~gwI@yU8~<)#b8Ftg!O)xlYk*%4X`gG!jtr)1YNiJW4i>+^%k z0xIT${wreq3mRM{tCqhf;i!!9S7d5Yj6Wq)OJn>Yuj2L?ug%U9xu?YVW-obKj9-($ zo8aJCsc^wY`M{TAjgZdtX)`ii?8EYSF_fIVmYpZq|n+ zLw#)Tf9kXmDr5=%#^Gn{{I2JFypwZ%+Jh=mr>>QQc zBv728CfFi5$rd4;85#v!(%ZreUF->jZG8*|h`OrBLcL1Tv(;*ca?1=a2sEhNS_7q7 zHOd_|a8j*uSJIEbs-Qi;96Ac`fyOsMrtluO9!%+aKIAJqsGc5ze#*Vj4QzcObX4xcJjb{hhAH<`TjK|4r92=~ zd!VVZlg2Q!;(2C=c%HQv+A9yj0?_OpuwHqHO6`R(6E*(@pxcXJs`3b?3}+a0;@1!? zP9C&T9wk_uiO`(ih$+J+!W74vR|y}90*-UJ z@R6uwMX67)UZ}f1k1)Ofj`<=#*?gIwYQDxVGGFJHn{V(<=39KT`8L1He23SV@A3Q1 z_xXe7C;Tb%-~3hcQ~rVZ8Q*RGhktGUz<)A-Y+Sk^;Djo3*K;>8KD3x2es%4E- z53@$AZLK`Dzco%BW{p?JS`*dr))aNBRiMtarm7)pnmW&#u9jQJs7tJw>Z#T&b-8td zdX5!RS6g$`E388GdaGEy!zxklvC7o@tP1rJYoYp>Ri!>-RjbciOVl^4rRs;)iRy0a zB=tw@6b-CpTF^R8Yh|6Tb+VRg1Fe$KaftF$|=wq&cBZk#&NA+|TN#hot&Jz`HpUBfTjL$Oo$;~V-uTS!XzaFo z7(duOjXicR)3T2+Q|;bn6MLYUWe+kt*n`cU_7JnbeUv%K9$^l*bIp>bvv_PtiE{ebn5z0-Qye$aZ&e#rX3e%$)le#-jB ze%kupe%{(^zhLY3i*~?%$!>1HY`3%DvOC%z+CA)l+x_fM?IHGO_Hg@id%V5dF0;R~ z7usLji|p_1rS^aAW%iHu3j25aOna|=o&)wpj%KfSbo*+@w6Aq6`$i{V-|eK>HBOp+ zkJH3{*h#mabPlthad0H3h5ee-(tg)zWq$8tJ5L8q(J)al`5 zIXy9_7yhrW)5q!W40HxKL!80RF#Mb69OX=Oj&`OwL!A)jlsLnkdCn-O+!^guW9doG z7-zXN);YtO;9TQO22TItjTdNdf=ZqqdG3wc`VdmeCS_em2Z=B#25Qz;nB1x&{=-asGjDk&#dO0amFtJi)vAs_u%na#oBF)AZw*$qH;_Mw?o1mVNuF)Yq zDtpgJ3(h-V7sm(bI+n5(S!-dGgvm%Z5T>5>l(wvNqllsq>PJWjxI{F;vk7oA*T%yG zM6_PgnRhH$&=vX%sj0$)AS1pE!dP62Fn?T%Fu(FFbV4a&GF^F2NRet-E2RjmhLc6~ ziUu1XqCAiF^kiVXGYw2KnG_AWIHqA2xk@ya*l;u=QtSe91qi-*>D2p7dvwx z;uJ%*QvxSCb77@356*KIz-p9sS2z{0!HL36P8HNROW+=7DctXz2#+}@!E?^Z@V0Xb zeBvyFuQBfj=QP;ktYq9dgZZ4ZfYU#o?S-DtK*&*2!kuyTU#({lhujxIC+Ic`n7}xeSIlm%~`+3Yh9#2{Tb~nB!cH%d-)p&UJ8#b3L5l+yEClF}TvX z5w3G?f;${kG3X!8@X-943?^bt$OYS16MF*bTAZf8gFm0}CIdY0rRnL%-y;Cx-V;4j zyl1NSY%b5i#l0!2-`#um_R9Ns&$;+J6@R7lBs~=Obgj}U2InM<`E-rE2C1UZNLNLv zkKS-!#T_W*{E&LDE=y#!5yFo~FUO#6pLjVw2Dp8@?BhE~g>_lp;*w*a{z^_p99;&3 zl-IqD*Ces=nj|(}6Hk4k)Ei<=DfOmUQysVJjbh`u%oLkZZoHY$6j%37R2c69*VzK6 zIW=&uQwyt{9dMa*FI?r^2e&voVXN~HZlZ_bQRfkO)_D|OaGrs;oM+)(=VkcJc?EVm zZ@{gzAAy20A?hrZEgS#D+b%0lcFPG+<7BN&ZKI5<1G;<=;W&vw9&j zy(NMZgfU6jMMM~r6cN*lOP?#OCIz;^TICBO3_%2o$Ub#GL<0B-vYbzFd;c4HI-erv z{R~DppTi92E8Ny!L#gv0 zLHEp5IBTPbCOvK~xYUpGLkyZ>A{B0|Rep|%Ox)_2POjo;1gI@^SAG$jH3vEz|Tdq9rc6MDM6 zV2IlrM!S7rlG_&w+b;52tAGVAZ+!B23#cUdgAUVwmz=Ias< zXe4QrBd6sd&AY|J=2D%kZOWeQbg654{TpO-M>RgdTyI7F&`%uibL8ZQsfhV_S*fsu3+bEetXfr- z>f8qCUXKIG(2_0*zcQ(CU9jCap~pR+lj4y7h^J88D*1q9R9ig6Nf&$}L->@`ZK~<{poPaRRJxL$Jy%ge%-4xYiBBt!^1&y=@%p{0SVHr26ul6qk^srr`g_cfB8# zD3pPOa1Hm5x&da^$2d8%x~6Nr$dUA*a=}{Zug}nTDi_f44`h0;GA5P+f7G-ff5j7_ zQpwhEajuucbQvHo_|Qnl)gOs&^3Zu3Db1;H`9|dC__|PP;aQY-Mg2UhQA*Ig3uPX$ z2*!RdnmKHCV&D_@9hjVD$&vk1$s=-U=?yHh43Xu;iAi)bK^!58g9tJ9hW%1flc3tP zUaaGZs7LjO{_0^+g>0fZ953Bqa4if{n+d&QrFS_*XIU`B%ljRQWFD<%LbxnXXdTNv ziu18*HG{o_>z>LM3ffcQbjH-?F#W}#XSdV-E-jq z_dIygT?Nm(7s4CvMer`x{n)((zH-;VFYcvGbuVK+_j1`3=Y zHr&0MjdeG&0{0p=3+sm5>sXn4JzMPFz)p8>MTzkv|HkY|x5nqV?J5=>@CLh9@g-c?1EN(-+9 z3cUWxknxEA>M)+Wz;U%Ik-xNk$ueFyGx--mnL4{(9Li8CIh2f|?ELX9SKBBg_O zP)>Vwyx8q33igxJ)s&7Xn!8Z=r;zNz=^s=(4bX#XHo4-z#42qzLT}psbUYvq@8rHS zGfZkHuFGXuqFoni*Nxh3#dd8sdY*aW7rzJ99#qG)6<>$Rw^rr|Fuy5v7d?It;2uQnLZntZ%xekbAp;So33aH2>EhEFK@o$eK|e619~vo0k$z~%hfeBn+U~g8&5_OA zj9VpyBaNWjV-QKSs7kb0mB?G2$lCS;SbCzx zLr|iQ6pRk3BEi5$Cm7ghkAbDJzUnBULp5VP1oKl_J80+i*BM&L{sc8YLE+l&C&3IEV9k63Su5Wl*3LJW zb@q*9y?vwDQNGb^lrIl=&-d}&1J~j1A=Tn&v3pw9-91U^*9ftAlpIv^g6i0MLPx50 zM<=+*(FrbcbR6%{P2xQnCgvLlKHmgL^G$+gzA13HuK>FFra>RybU4a)JVN{>|H|9% zdvN^`k-W+~okyvgRi7Vcc>Gwz$Letr{93}o??U#S`B$vQcuBfh&yW-Ck4@f&>1)aA zH>6wjA_MBV3BAY%c_TfuadgKTT!3oiZhE|h=vW|RpRjgB!s8j*04KxQg_doGQ>%{e z>!!Qwp}8n_<2R69ah;w{?i_i9y^g+#ufd`! zg>4=J1)vmyGrtSD2-Hb20k(XTA3l-E^All*b>dSj89`A8i;dtei>Nv+fq-nZ;rJAk z(Hfd(AjVHgl5tFG^oZY}it>1BP@V1#EPOsmDqo4}&q$c5(&Z$Vs4-6Oyedxbyh@x& za#1Qz*QiuVO@l8Gdq4x5&l4X8(xE>eC{G>XDBed{>n2>so>OOF%7X1|hdPr^7+HTd zP@RQs9kGADqKhKFLNI(`uzkgl;wypXzEWu8n+F|z^Pz_?0{wjpaUVrtq^}Yt`>J7< zZxK}cPK4FIWw73NI$Y;l4tMy@fbG6Bk=vXFPx{V*mwo5Ld%p9K!>ocIeHSvrw}z$p zE@Lfx>sTA#de+5v73<@RvHrdr*%04NY^3jIHr96wEAVY*b9}e51-?7jX}&G&Twe{l z*jLNe`nI!;zI)iUzI$1X?*aCWZx{RB_b+bxp5UpzCwZptDc;fd4DafDmiP5N#|Qad z<|BNs@-e>G_;lZUe4g)fUg`S+dBGmO#Z%6{mPQABjpkez8Ge<5rdlG}>YH>G#bz_Q zHN8F&=`~DjD64^4Lf_muZk-4|ZD5^bt;7A(MUr}t>@KuxP|shFnMg|N@iAy2OS^c% zDX8SH6M_0+=?OTx5k4fo^YCs%2UsGktS+V2w?4?!nN(k)(;-a|m4?FAQfCVSs(=ov zyf=3(^ixj|s86@pHPS_O6sK`JfD<@D7pAEMm%A8>r% zfFGaDeBVQR-w$wv??)uEUtqXz4~+5cg(-f3WBm%8;8&s4??8p$g=)VKmiYs)(w_pW z{AsY-AB4;NE#NADCS2>!g3bPxu-)GZ9`d(_C;e^UC4XCZ!`~i0^ml|$vG1?^opJGh zP1yN+5I*vZHjRh!9wFm+-vatF7+s*1e&8H0ue^7fG(73 z_#fT@QVWBsi0Xl5$!H(Xi=^!nNTHSlRT1k06De3FevkBz`kx$C2Gw?59j=!9x`=dw;WeGRc9N_^0LQ{>pWGjD{OduY2tI`X7o1x(q>z0XK&{EDd z=|}W00@J@3Qv6FG)xQ+7{3qggEBH#!+wmX7q=T4QLwkEj19L5_jdB;+^Hz_c{M(@}!;Dk6@>Y~XYWa3`g#y#%81M5ZR<>FvttHdj)KvrQ40{)3 zWY{Ub8ucPlmh@yf!JarZv7|hvi@%gGJq%>kBk0!sdr3&4+5-cxuK4XA+;>cv8oz6&kX)#@cEN=-OL z-1D_qZoSwo8fbH9SQTKPsD#N?wa$Ey3U7Y{!5^Ze+}gLFN2=`%b}lt9Srxc#~pMf za?z{cc>hKy^KU}U>Uucce*>K9kHH20Ti|m4X5^Z;!Odu}-R{2|YW!Pq=j?!I{0|}5 zd=%dG??R6GIQ-&&4)*$=XQuxJmg;|zHTS>5+WKE*UHxyc-u^e)K>u58g#R5j(f>Z1 z;s1c0;Qx><@PEV>`~S_(@PE$E^?$)G@$Uvs{~UwId8f-0JUBJJ{BhytEx(rdCQrTP zZ?O)XAb*35(rztKE;~W>N_uJ2LK81n3v;!FPA|%f^pcEsLn775zcJmT?5ui+W#s7U z2MUUDvj0XTQj-#?;}a=50E}<@QxOVzJbJ2FR4!5%dmfHcz2&9UIw3eMSfpMf#A+Dr z-3WDRDg!}S7H9&T{&i3f$!omR=$*=7Wk?oId-EpJPS~KVZfikb$(i_=!DpH4gknP% zW^!1KdcCrlVi_i6%2dXvyD-jDaz z6?>CkVZcV2n;N>x<7d=ev6Hy%k?_VopHRxxSii&;rr}na~W=Ed#BfZJ;%- zLL2B2Xb&R-onUmJGmH&n!}LH7V!sQN1iHdJe6I-ff|CP%;Iu$rI495#RtJuR^@09y zLtp^hj(J-HgW>+bQ78nijtc>%cq&Z znCPhKk_4j+s<#ByTV<3j%8FE2SF8L?m2VS0#rD<+Mpyr|zb|Tfw+r5r3FFi|kXsSK zMiOX@sCRltM-h*MIZ&kDMI1~ZZwQ^K2S$M&$O9)Z27-Zn$PA2wHi3zd6PN_u1Cya| zUysd*X*Tci~ zo+&;;CHQ(!traf*o3k@()qB>$c?bOoxa$+2fFr|NOJXv9Z=fE7B7vyKWsFLp;{B6g zcpQul@|t^w0>Vus|Uab`h>k82SZ@acxR)ZRR3N znFn(M^Ko6uU~ympoEj)cVqS>E9EGa`m2gv_3hoY6!@Yq;@IYWOJQY|1uLMqpR|BWQ z2Z7Vz%fRXIW8e(nY<1%L-~jJCvaWZ3eCJm6p@z5q+=kZ>1FMjhF2H{FCi*$n)6klE z-DGc3A1WGzA^}yj7PY*xp>Ed9!-NkU)t~tMjnK^kmxC{G1*8VnLRw%QVq?7+DgNCZ z`Zk2r1?y|o^7C=(!$I}YdTX_hE?8$g@ok8}4LF+^V*WFDL!~YP<6ADvE6Xt4?>4 zn*_QRE&?|pKtLrMTa00gKv+f+KtNdo1bK+y7*J3I75(&kPXt79j|f2&qmQ_tJ`l%o zV+2JQk>~Cx?g}d6GPt0_J5}Ac?~=gy-uV8=m+HRNRi{p!rRvlho2TdWGNLGcx7TdIM%<@=RrVh9={3LoGxJ+~%!j>K*{|x@ z8w~UwUN=paBsSS>|8FY$ZBtn*jPZ#p+PPS4zeD?T8;dZ{NDhbg=Ce$CHf>fPZ~x7# zJAWeCZ|aevn(5VJS*Z5vvHQ@&epl}U**?-6@9C1&6DQgG%-)bFIxuKW^%ZfNHQs*T zb1SjN!~*GAOHH-zLnNIZCiT0C7C4WRdVP!}(SKpCyBUkzEx5{koTSiJl0r}5Zud`U zbpMRU+^6t_`!u$@&*Eiw8(ww)f_L5R*zfMZm+lMr$$gQfxI0;v`w|PgyI4DSH_LNh zW+%COSU2|-c8a@~4Rl{+!`;`}NcRmk)_s#zyKl3Z?mO&UcORSYzR#ApAFylP57{dB zBevT8oUL^au=Vbj>^}D^_K789?$6C9pLf~Yd3 z%2&Nvo-qV-3KB!4k`9J^5+jDI&@Kue5wn^KMN~FMD`L@TUHw1qwf|)})i-V>D!cCJ zZGWu2JI#75DoW=B#-%y-C%%fC;ze+IF~YnX+Vk${ z%6p+ZFF`3k1^sy`2J%xeoR{HD-WwBmAJp)^n92KLHm6lu%BYkx{H=Nm&mDyIiekq0 zhMdh?t;2BQwa=8TgJfekN{C_PxzSM1B~gq0<$)D`nJ=$4g>7pcO>*qZrj0eAgL$yO zX!5&xmF-!tXfFf82xwX0sRXS;#`*7?`>WOF4-cFx&CHg04_BFof&laeFV7ucY|6@% zFEQmHm5djiX~vQ?#h$BKuV7!?E3ggqiXIKqJ8xn`EZV#kJetl5n$E#Aou|`u z4o5Dp#L2u0J^3i~aH6Mqw`FQ-1PryZdBCg`qSiz^@7CsgA zyas>cXX8^o1N-?*e81q%3;H2$jzp2u0e56@U%TIh*d6*2vVJ&0O*5H&9; za)S<3sd{?&QtIGq`;adsy87N+YqYzanf8dGx+U;jY_&V>NV6Eyre(m-{c?Li z@N2V85bY@M>9*kgo!WH@P!1;VN=J7RH%-7=I zc|Df$yNJf_!79E1ck+8lgp7-NET`@|bcdA@ z-A`r4+v%Fyr0GM?AksPA%g=2(47vzs_^sB*1dxeg+Z@}RFD_+&avW^{H4JnZ{fU7#lAvxRLHz(C{6W&Y51|`> znDp)@(z%Zi13iuzd@JViCy0Tb#3KG@T*;pz26`GR`8M3lpT`=$9e48`Xyh;A5xx_f z`EESPU&eO62fO$yc#Z!z3Gr9)K7RvW^0)CLf0r@-9?RhSnBwoV6Zyv^tUqD>`KPRc zf5xi#=d79^U^Dp_td@Vt7V@vyGX4#_m4D0X`FHGY{ylq;|DA2&huIGPBiqA&W^eH$ z>_h%5`-K04eZh~iZ-r$+q*x*0Se-&Nj2^*`NV7<~M_N0GhGS-sP+)tD6RKVx+Cpz^ z9zm|p4ao$mbD(*`#t49W&AyYc_?Xl3|2CYWoRz;88*#Bwzu_04NM9~6G~DDFO;M=ybzJ0@Qwq= zDkrTEO~oCh84W1*AL{f&M`dpeere@Dm|y(ky-3Zp7;Qvrv==9! zvuKA?MK%VA98`#0oGv_EH@^Pam#A;E5dqgoF z7TvH_bjNd|2X>2|cvJMkK2d@Lq7*-gG6vC`3DJ+W5&c;wQO*j)X{=mSuwh~_8!Lve zsbVObBZjdB;t%XnaXPzJRI-~z6V==N*6P%Ofl2q;v6e1W?5~-Y%5!wXLS*Ct!`qT)mL0-Rf_o}A1(+y zrZ)O(s0wZC*=$`uvT!>QtmgsX9m9Q-w5LzBSKOMf9IhPMjMG#gBbkO$7LA0(@Zr_?YoCz;(6X996J!5zKm}xIlM1WlO{y)q`wFQ*~!)gyHobuSC2YMr&wUnS}@g8#^=Yu-Y6z8&{82i?#3(gGFsh?JMsMUL5wqp4C&Z{5$0$i zgk31}*OvvD#@6Cw6QZ#^*v2mpw(-lOI)W{C+8XDdFuU0HbVPSH*=a}b9Q0;md^6(^ zHq_ki;GKWoi>^diJBYAeKv=v;I$|er^GoP0c43IvjS=Fn7%g7LII#z3i@m57uVJBh z9hZqWaIJWgbi-TNAl}7;;yr8;`>;*Ck6q#e>=7U0E%6aP5g+4__ykA9r_2_gu{5!t zwGszd2k{l@hJ&oT_?n#}4v~)dhK&^8vB}~vn=ZT+5M;u|7i(l9>ag+#pOF+=m z&DB+4mH!Gs$Gj~Jwdo1J+?yY##t+ujxu%*d&+Nd_%kl1SiIGRUfIQ;XYz^jmu0-$0 z*lNyW94rn<^*8lw$MtL|t6e}@zrE+^GBe5ZVjjtgc^L04WN;uT5xN87s|<**G9bRn zfcQ!S;)?{tCw<}@#6rHKWF>);POes7UJygr<^}7}xyVn{6-lhyQ8{_W#F%#s4X&%$#RdCkZor79Q(;Xidom$h)FIkU_(6{U)_NE&VC$Ka|QE^L~~Htff_k=%7T(?K(dx>GB-N@Fbhu+vqNn+(BpAP zyAA_|RSz2Nv1z-mo@}`eO1@LIykQm!a|;PUoTC6b1uVyA6)zxf!<9oHV3`OpZNj`n zsf7=EM5&g3e0*yaq_9mzS&czeHVzPl^*SrfCYYHw(fJ4h8p#4dvwu+32^Eu*_w6=C z;z2MJzG4?ml8KqDy@K zy9}X2dpk7q;D-YI8{vIS>Y>3e1XYWu(caeA*|nWB%P(_ZaU_6C1hX& z@W2?A137R49p0c*mdiWS6rKL{_jZ}WuKHIe74&?Ra_|jobc>k&?U%RyS-5&msG-Ei z?F$p@lR5tmr!{51AjBUB(vf8GNdA=4r9kXnB;6a`bVLA1sxye)lA-(IUO2Qd2WIPxo=0u^0=OrY!& zZ{QV0dBIJdvX^S`m599dj!yHJh~Wh+-GN3#5<)|+^zk70UA`4v{`=)Y2rVdwM(`uX z`-%)NWK0e*67!N;r&31$JA{G;kRYEW{hxijL;?_mtpjTXE#*1dH)J0CRom-krjBGe<>jun&6 zIvb%#NvG9LRZ!y!BFYrM>|5Xq_Bu`B)09mHbseqm`?TDb@05aqkH_srfndaH>8f3^ z1DDIqZY#TexqV`pojSlJQEGhpci#L?B1bV@ein4-uUMbK{Lzzh^$R-eP;fExr z9?Yx-KOoAUe8*m-Sy`nr8*XOz&r;fTDB^;qBIEhWt}la>zlv_!okTl(;kyYuws!3m zr_pcyh3Zy6hL6UGqv&aGKDgu36`$<{Cnxg(uYj?W=HW~AS$z_YH{|28jqor#FbTp( zc==4*A(G-XDG65J_b=BEf#YEv{HQ)|w7=Tc+svfSOv(LR(Y?OlVPE{4JAaHn@WYB2 zl``hi8)jm6H<x1VYy{oX=+}Mo{~c&u=avG zxjf~ptd{b=FM4<}X8A_aTqPS@t}4@TeM33(eA5lbQrzK*p_n7TY~mYP)Ba%a?~q$>tJbP>h!;klM;1p7hHAp z?X^UDYu;Gfi8ut?d}?4ko`#F!bT!B9f3=`?*JLq46^Dy1baBU0#n`TFFmBS+@ppbD zf`NB5$LRTJi;GkRp{;cJz!>2CZ{WRedr^dbZ+i{5)1s;Lt}W85jpjGm-gDl&&ar;4 zyQjI3OyQVdql<0~2@ThPRY|-x`HPTd-dyw;Y(OG^|vnH=WO%{3{!&6;W^IVqf zVGlJ%v{BE&X&gB);e1^d%ErzVDZFd}yW(vqVUPw_NXR4XKo2?28p|QwM$GPOP_Nm& zg$j0P>NVz?X}iEwmws-;9JGI|s$mU>*4d@T+ThaGuCA2E?Wj|=hV*D)+%zg)sds== z@ePMvsEKR-OB04XcBjzeL>>>}-RW?!_F;F|Ce=@$Hz4)NkZg6jIaA0n5 z9&T{StO5>9w*(AYUo4sT+~~65l8&6vf49k#6g!#-UiE+#qSdPn+Lta32lrmoj71^H zGHU}AOCgNSZ(Fs_HinxHQ-C(7oYx>5+#-1!2~6)@Cw=qF73N7m+hXWKXi{f)Xb{fJ ztll6&>JChGQ|gQBR{B*IB4w3!YmjYFECA-VQ~$6qe|H|P7`93cD0igML$qi*y{gzH zKe?wLh~q5oY~1Ap45Km9W~wWAXwhH4UvMU>6Lz#bFV`h;X*1WsHN!*EuM*S?rRGkt zsRQv_h?K=(-p)Vtu98T^!83I?cU72UYZ5&uX~XGs(d9&+4<4FtvYGHkY06b4Y;ODg z7|wr}t(}}3LsOhrDv+_NL36`g%7}uU(&#YoVQxmzl=IS50*&itYCCU&^&C)(z+dZa zWzg{Zg(@E7`)ysv(|Nn~<-1y&PzDUasV$wVF3;2q7u=jA@PbP*FKG%=#8<9mCpQHQ z7_nT=a?%qpdSphl=d12mW-74+g=#Y&}Tk4B8PexU; z1=T_+Pe0rGEJ{rKaNE|4y5+bk2F3Nf-t+qv@IO3{WB(;#WJ&RZ=p8xS7Vo-6!RXX$ zHmjZ`QB3aW{rXlU3r5o$i*0yG8@#$gMeg;0Aa77sB}cwaun9yG|-7#!bEX1cCP=Kz@lr z28)5^9UPs)KF^mQur_M@;h0~_?CWk3>drsbRtM#o`b+bK-rxXRZcVM9cQWY#M{3>e z{6nkSG^yd1NAo9$qkhBd6;ye@p!EWb>os3w`&I>ry=mn#4RkS3WIP0^gZu$~kD}(O znOZ`DD>c>Nh&u*%TPa$(b-~*ZT75TXE@;&gHj0sSpI)O&< zUseJ{g=;P^HI_)s3=)q`J7yck$37I6d}q=#ImHas%`uLRMP9|#v@2;3ZDG|N9()X{ z{iGsMFJoUyBcTEvCr~J0$!1{7xJMy~V7)L(0R~BVig-%-=Lm=iMK90-o$}MOII{y5 zb@|Re`usZA9_xdZc(^D>+(&}x0}-DABFXQ#VmXq za2bsrmk3VD`MbWGJot8iJZLMF_Zr*Q#!s2(H$>h^&kmYBNnae(`1t2JP%Nwy7psmq zQjR(HF+Pr_RJ(gDr3C~haU0mGYO95mmR$!XlrMt=Q&n#q zY+#$CAxo{;T<>5=4tO_?8~+wyHYEAu&a72V>mz{uM(f)TT?ZQQG4++z?P6|j=%;!j z2jhO9Q-3Z6^YH$ueJ7>1z5L>mtz`||$U{}g<__-O7Lg9WeWQ6nDkW9nZq4~62UL4H zHTf4;v&4QAWFB2y>#(bMxTns!8!Te(-l0|G1pI4^>@p{3V=&}iFK2(T-_;r9nTPjlc^3Hpyx%P@|K9QZ_be63{@tBgoINqWvtXI*smEABlkJISq~Iaxovc?`Psp@Qp3EwKaPs?|)Y%?; zPQ%hb?=!ud+n);Gm;bw{E*XXTD)L6tJDNDuuO|zmuK$`exN@kcbaa8si}|3&VrtkN zDaRXVkFv`rJkWM$OJPC#6MVbZwY3}Qzt7t{M#2`|clg;&sTjR){|1a)+HaESTcz{{ znmdfxal1F>0V7}}#TzBj(c7OSe?XR7y2By72bMb^KhKb9`Q5a2edj>Kd}XaLg=0dT z!o)2WC+MwZsfbv!F7556a8k3}7S$PAZknDrO2s9%{;G7tY{i0&8Ma7x5W^RRd5`5M zbn7QItMB-_R@^;op=XHaAKd5gjJWs{vAcAbc5nZcfbo;D;JpLtd-x0de{+jz#`Rh) z6A%!;9T1T4|2wz*ud45V6HAW|tdGjb^Dh^xySqJyjASESy)Y0uu?Z^Dd_HgxF*Fi9 za1s!Rl}4hh2K0LSI?-FDmXDgPFYId2TezyC50ZjP^<1l(wY7H3D*tk&ZH;e*ZB5*- zyV;E$2Qd}!uYiEb>rRKW`E2%k?k$(O*(#y`&-kGzo90eGTM=`snUW0M>LN~ti-NCW7fh{+DK;Xpuo;^xgxt1<%e4ncFJ-X^3A>oW>n_5-H z)vkpSM?rGmQ1Qvt@RsRN=%i~5wm3>uIO8(x*RoH{xOC^sK8#jfo~_(k-q~yDr>QDC z^fme62}^@BSv7TWk?vIG-K>xnF0rXq$~rTsL5YJ8xLOzxEeei^2Zz1P+QIP!?Bt?QD?#D32?I>j5ymE&z@}+XNSsiVjhmH+?ag$2z_Y0 zxCjj~ZAoE&hIg){siIA<4lNyZ%K`xeSJD6qmdb3xIo8>-Ej4V9wp zDm`!x5-M9Q21}6vq@NXP>g;W$)qaZf7qc^Ua(PK?f0xCzXx3U7qsLZj@_OsIj~iM= zO>~Vu{*G|OTp(9ex3=0?5>_0}9~6A6SLk;lseVmWeS&y&${OEKW{a^OKdZu8O=B(o z&1;h1PYSxe^vwBzsk4c(SRZ4Jk$zU{%`dI(byM{G4%+x$QqeNjCznsTs0o@uU33J9brRaavOVDUT(;~)NX=}zgP#%Y_rF+@;EjGU-jZ~|ps?aG)rJr17J!HWi6FTdn zTAM>qa~#nSVkwwFZSf-@v1)Fs(!@2srh3gvi&T(qe905s4}2U_|d z5@5Ety0o^99Yjbj1-(e}R$ml5e(*A?E;!DMncy!y1)rs!BlXuZtYX_o(?z?As_tid z*u)TEEZu|RC@pTJs>`0u;fISuc`paDjUQRXw2E!491TH1iX4UPiyl@=CXt%I8L0HN zRewk3ZI|js+%)hL*n#adCf~S7#Ns_7!hn>n&5Aa=CJr{Y4oC`%L6#;eoi1J8by3xs72~{r z%!Bv6q)9-pQC+-&LU9eUy6h-WzyCdykAXHzCxlfRb>>0?DutD4`%pt-b+UC{4}Sp& zbc0W;k~J@ioG1Wu)GZ_Rjh5trE10@stvU3&Xt8n%8phZ_gut*J)3q4)|k5Ge- z#Y=JY+WAmOux|h5;I55v=b$ih47jiVfazbYYIcm#dy z?pbm}>;ZyM&JiKhuZ086SyH@Dy?o|UqrDBxy!NMOIW(-IVor$=)^8kW@0fpnY)cE-^t&tTt0KB2wf>z zX>drAb`JLLGa%S+5tz?{F}Ejv#t*N}MyBqH8YALkdXk{XYdALPt9k!Cdm*Z^wkwt; zS4b$`5%Emhd0gaqqHF@VGR1hFF-{V_P)r;*eZC_5&lJC&gO^+JH3!E2;rxa0OGrOf^@j!v zoNrjsj}b&CX&%_OrtD+F8>u#9dm($<8Eu9lQl@3&dLMdWex*@zt4zj!DmKnXCd8LY zNRvJ>&cGz8{}(s z4m!QES@_1v#ME_THlKf5T~RO$7(p_x3z@e|#vNL~Q(UWo$IN5yCZ52DD{ zkxjc+f}^>w70J^n9#QcjTEW^bVfaf@0@C5)kQcqd{En(raoon}ez-R+OPz2!+UFhW zGgJ)g5{qAD!W)aC>SIrB3z*e@ZV?-ANC?m!HYPM?&8Fj`#53!5~`5Wgu~8u{?xoxXy>lFUCmhtGU>zzwZi@An{rFM;LEXSx?y7G_TJ&ip1X z%uJv@F!S*}c~|v8jWb_d#*w{9Z-7B~daT4CQr|vG6)Pn?g`~MzXm<>mn4W6X|qdgD@jUD}y% z_dG9eLd8LVn)_0yMRXkkjvyxh7a=qXf`juD4N|!|9MiiaH;u^5)^6#GCm%oDZ);LX zFEtP&?bQsW=u$cPXY8>;{5O)!ryJxerqO|AVLmG5aS*@iBy5v!>+G1KWsn!X`lt{&=06miuHh1^H%}(t0P!TuxcbjB~2Nqg2%MFWV z6^@bp^m2eoxSHyuk87Jr_I0Bixu&-UeeNVY`yt?IgsMye`2S| zk3M)PR||k{NxBid{&i8&nT4tDS`aG=^LJ<@@~1YfAkW$({6!0HMkJ!mf3x_kY3^3F z4fh@&)ZMEhqs&s1e_NE?uH0%VLKJP~liEVXF%X3;Tg%Jl6|}O8o9_tZmY5VpvW$nW z<;#QJ=W%XiO)-(e6y@A41+51ef|q|tCMm&B@TD>HEQ_2@iO!jBUwW+ z0mDUBj!a2}B2V#G^MZAF-)|mqp3f1@e~tY9Y@8fY&IFe=i?ATltP$hO=FgZSO zsC*f6r1*Y`JibYcQzXS%lj4snCYuRf@kU>2PoVPf^(-dguhRS; zi$LXVtb;#gXtjF_{jEi&MC1|oTP%2IK8|+HWX_Ah_S()**jI;DnEMNJ6Hy&OkuAYT zaemmBLGe>NTPm6jQ%WuiN^uGM)RqFC^Of{lqW2R|EyHe)fJtrp_GWAh^J|7vK|n6A ztm49Pt_)aksKQYVi~F^v@dG)K8D74K8M;*KoqZBGo=YzAM+mP0mQJ z1ZmJ4t#pvcX|lZ@a-{)Rlxp1xVaamjqF$l$W9HU$a46r>&KjgwnI%QafEV+Z)*9lg z7(vgw%cRLrPz&22cO934TLhzPoJM#Ubl~kCHK8Zb4qGP~Q}E8vs(OGH=*F%@6yg^M zV4g;Bf5LM`6;YO{9!**|`m+W3dRYN)8r5a5=IA+t^Val$8eYmd{LNO-$LdR-h4;@Is%j0eV-4$B08T z^BBwvwvMWV@MCE9)AgC4$G`V*F%Z&!ob3m{erZ53>f|4z2SlNNkUzCy}MU8LKa zXbd-9DmBJgI9URB>Io`kCHWLUv5G=ExSqfyQvEVT!_{0AHKr=NqxvCY#3-WDDN(Cs zNT+nABAhLZN89jrDjG<#Co%c zA5so<=9o)H{u}wQs^xW!`9^xd$>0qh9yNL^R__x9%PKb{qZn?}dcEsnco5|>qWOg4 z!Q$F0Np0mS;8O7N)(sHV+Ba^dMncsW`^`m+oK~&LCnKWgh8HLLWA3vT+LG-0X$_vW4m0o-Jh!NpOP|tN%30J?T1h=1eMDFdD6F?(h~QJ$ z7S-(4^#rd8N(PQN2E}I80-_!vol=-ya3mL+ujCPJptqESXJ%K5@P)XpZK-jHwvi1y zbZ$C|=YfK174H3h>LwBWKjw*zO75|HsoWL@QJ0@51=P~5BQYE)8*H#Xzv$*MWw%9v zw}n|yjcD3Fah4NnhlZaSXs!w+K0>m-$5PMmrY%IP(VY+Au(UHR=H%&synF1F-(zq5 z0}jWo#xE}nzPIMWWW@}5k)T<+zn%5r?QWJgaal;cjX{le~Hwfn)Y`GpSBL) z{)=xAFX4jUZi%k!GGYY271Oqra+3siPRSr> zTZ>DmHc1q+^raz@w%#Es;$@5NefbPHN6SAF+#Mop%+wZkdW11o+}5{1Xyd0~aL44T ziG~qnj^8Pl`A1QSyH<}?x`==yOB~nk~wo|4P@EnzyRNO>ub_H&5OPZCzJcii(^~!yt0$ca{<~{W}ur zJD zQyd|D??6W~v==MK@y(FbRDz(T?TxPs-GaN5v9rFeGL;uor|ij$8Y;?lE?}DzE`IGw z$kw3z{4JJ63*AkcOD2HXr`9_ncj1ryAV#tQAF?bysHF_&L1k%pV#|`vUT%o({Up1` zan|~kq2|1`e=MK{k~gy4aCea8MiCCywii3wXiFWuGs|V!J}!$bad>J}tOs6pqJ-MTe}kV?}H2 zyS+#@(gAO2!z&qE?FmFc0^4(V6N*mFnMKSTe3qggS2@53wbG3`0i*ogBuzy0EIPYN)#>`U z#T2-A0XO+~gu$HOtnfyooq@m};8?g-r#KEHleD*0$0+uIi(qdL<(39DQN1?Gjf_p~ zsY_GwIBDv5La$dUx6torExFz_xbcTWJJi>yLZ@`PS&`4mrruPPa6a;H3+KZGM$aD- z^@<6>w;n&)>ZYMo&@Cs~T&nwVwWfb7k6pldHX;ZOcOF22%7a%{1!k zX%%Mf9Gnsd1Q~aeaxFUiBz@g|s1B8h+(49bf_xDf)LV1$BdA$>NDzbPJcJN-`{7H0!DAh$6(be7jx!~as*!VVV7vR1Af!d0b z>6#n+{@eVCv_V@;qT{_XSLw2zz^3UhUr>?x9#>fO?8_{>v^%!v`@GvQ>mKogLBq7L z%j(J_hUHH^BP_3e(FyV@ngPyJQBB0@4VkiAM>A!AxMWVC2(F4Uacf}+#xFDBq`J3` zmwCy?3VM7I(UVn~dQ*J(TD*Z}H7SexaRF92s$I$6X4eOo_gFD%X^C(#<)@8fJh`N$ zB?#*Z%aJ45QogceM$Ug({sXkJym($Erl9YYrTV4=kWp}}C(UK7TWqNt-Ii*80&;1O zPJOky7xl>nl%=P>fhC*eyBvZp*EbJ8AAzE^s?qtz502dAUsfwas5d@EnpF4^ zIJhslFFVT%QJqoK!Dwu|*hXA?MOT-woKhfJW*6Ib zc|~om8NMiNkS2bmm!&!Olb}Y#vb`?G_YPWhV>rjN(7JEXn8QW6IdD z8@=k0y1f!K)QD#Tchbnkv}5BX!jk+@f5R!ohCK;{eee-67J;|rW*1|mme}}U_W=6l zm-+zK;uo|f*zBRGEoM4rmb~AIejydTqYb!AYcd-oa?9LKmiYJ(v?QHCC770P(Pc7s zFURpuO5;x0S6?vQJt=nVFSBKZgp4~Dh`C|#04?z6B6AxLTWxUmnDBZa^Xnf znmF}mclhs(g`_82M|2TpOS-di^MlIuUE!g;`k( zLsl!hf^|V5au;q)Exy2;ehs_e=C*sd zSTr9r;9JkB(PiZwXIy6RU~HCF65#*4$#kXjEzub3FBc3p;z4@>s&xyrBnYkGgF*Gd z3)l(n%@f|0FFH1tEDye&ou3`Vt*ntMAiR5vVH=)96_&qyvtt<4D0NF%o0B-a_?KCT zq`|d3!>Vy}u)e7*s%fAn4=o@CJNZ$m11k^;;T%FT$u{>5BJB?$v~}h9XAh*gD87-s zIqDRHcevKBHg|%Zv`>O|{xS%!(*%}&RMobDJW3Z>y?+DXEDXHHz%RA`MaeG}%{QcRAkv-LbOBsQm{Hejb0TxQGD?#nrr zhEeeOlC!001Wy0dj=^Gbed1c)K+tAh)h=3^J$%oWIk)f>%M?C$Y;V94mw))qdo~Py znLBrSD1B~WEiIwl0xP5-xn{hTl%GJ?nc6pjX%xg*R^WrIpFLV}vJN5PKh;kmT9-ev zcK77U`wj1LDElX)ZGLmJ|BaA%g2x5#8@llu`+i&>iM|{0^Z{7xo>!bu5z-fMI>^Bo z=BfuD)kVgX3EB3MwG`ShMq3|PLpR!~y*!CYpUp}=xjwqR-lK2)2czMcMICOg zz5E!!4qgDX+c^-lb^9{zi>8$aAZ=;3+G4L*uXIGRCH4DcY}a&rhwFuZHiFJuG0u+7ymz7hbPSY3_zuksQH==yN*i5E2jw$lPwni!>j~xg2teQ&9KZTL{XxrW9atB0UDz_1oE=iMvcB zJewA^`~{Ya-MuNyMzI%~NASY$Mc9}Ze#xYF(U{*ExvdPV z&3C8#6;AZ{@z6<*Of ztMV@PT!KJEVuG-?vBMr{k0PLA%)&ztlAR0y<)ez$h=g)>TtSNuUCs>a8E>vsngg}& zM3bP&*aAg+2)zT8`yJlK=;Il&y`H8}@dv}ewr zq(htkx|XT(J{8OJ6+B@R_I*AZd$x`0J7(#hk2=(A>ebM+iPz~th-G}+mn9HfKS!AQ zpgu;z?U=d2#F4|EYl>k&H`I@9OSiML}c-O^YHBvQYM0hM8P z$TV&tjcIOCBr2bQ`hW`zWrr5#fZo{A5!8yp>&jRf{?YJwn#OAMHJ2!CK9@q_c#8PI zdsPLA$VdLgrMVC30l9f9FR|(6X4YIiw31Bn+ma5WR4?^lV|o-S;q8Ju)uO$r(V-~x z2XeLy#uB66=#xA5^2|C2h1!A=wZV)mNR7S+WbvrS%&2 zWt6LrmzM*I_B;|SG1v3q;2!m!z7Ue05q76rM%}1Q2O}lYBD-y5X-QS5on3vp4aO_C zt8S6#Ow0~*46d_oVI?+SLvHCr;@+nbF|T_M-}_Z4<~$;xHQp4y7j6 zTidvyA_NA0h5hA{fT*quqa3w@1ZD-}-dxOi7`KpORc=l%>!gTjnYtt)G8 z3FExPDF}`5AxJ8f2*Y)T$}7}t{hzFw0J-c^ZMO7NRHr~*e%&9`vrFTT4YEB^y z`=ydEiO$U3f~+^)&XnCE{X57f=wH;1vA%x?h@MD&Gk!maTc`e9aRU1dUtE}XnDP5z zQvb%CqT#uqcHsrdzKm*s!6=-~#+fH{{TxH}t6!s76z=>3h>;$-zwoDvM3!3$JWn>Z!9%g2< zbd8ANT=Rc(K_S|~z9q{&z0EvcQHTC^f&?$4K5y;GZxf=TY#%HtsI|50^feKq67^7v zRmQ_7SMvMv!7R^uw>M6*{TqB7jGIAK2QuULXjngx)`34DszKQuRiyywcDu*d@jQq1 z&=ZTtej@!yIZPu2X3shG*y&Qv@7)A;MX*OvKNoxh>HoBXzo6xk*C|quuRRbMZrLEJ zJvKb(Og{ZC)8YvkQ7VeQYu8ut}#9prmS8(WT~3CP$=ErzW7tw(zf8&{-bP$S>5< zPvM_fJ&2xO3bUoGy-CDj-jBHQLdN0yD`ZNC*z%JCBj7k>SkLZ12~nc-^60KU)#az_ zM$B{QG9JBuBL1^=@oUl@rWkQ?MkRHqW>1zyLFmyA`e5t`=(9b>9I)-snLS(=rre@T z8Vh8wQIVZ9b47?ju7%VfAdYMi7BmHB3z%1(CQc7L@ra&yePfqBvaoM4jkA?dNSfu z+!Wm#@rb_wrN98n{sB|Fm+Cwh#G@P@!IcqAS2v1!CUL&fE_C_y1sBBZvi9R;tOk*b_f0 z15%*1xy2rnq_tU^ z_Wm~NT5W=!Bvc{JI24B!uACO$&Vd1N|BAU~L456;Xj^^A0{g4d{L?!I+YHLYpXut~ zYqOdm6p@J3tuW|HhA8Ur7cTlGNqdWT8ljv&`L+1_mOL6hXOZZ#z`Q8SS`s!{EW5%I zoH`}ctb|aCkpVB;JubkW>CiPV10*!XrZG+G*PxvhEq6O&JeqkcrBz4Q5=pP#Fr|C- zg64f?#IvcJO^lx2w4F8L5281R@qocEal>#w7Vyfz$J;sTbB;!ux2#9FaQ~)VizyVY zRdWDv`EJ+0Qq*-<{D;Q7KfWjiD?5->5v0kWd)KVbYYaot={n%-cTcJuZ?5OLW6AdS z+_ykx{bKGF>+*TxK&bH#?Ou~z(a=X+=pA5__5vOO4&jXhwvJ3ja?260Ud$w9Gxd-j4E^n$(k z|LBgl0qHomg{4^0i_4fq9n$nos8Z9?8m)Rks&v{ix2WB+NybakRDBFYXgEcq82~CR zlc>z0y!0U=oRoADE>_~|UMMlr*#tvoWy?$IVrHkuSUKX$Pp$sf1mjO)?(ctV+gQ`O zdA`Mm3)qp?0*_BvFJ~h_4Rm4zpCl_MaeOS_C!J!lbI&DKsm5s#t zOE9`8r|KPAJ^@vDN8E^!eGz@i445QK3WlZ}acG*Et&mHaMqzJ|(E_OZ|7?1A4~zW6 zH8Z^+7s8A}OLyqr9_57)GtW$|B;@5}7U3uD=4qddO9;^loxL;Y`4?T3i6A55*cULR z>fYKYK1fR>z9b-9l}pHfsv`U{$rR#5p1z=33byx?sU_wWxDp?ZEVu!&Vu%v?*Nzsh zyc<&zGN|+7z&i|JeCP|%P9!UWxvmcy+%l>2VongcG&1K-Tv2xMrp?gUD>IEjH_6Ut zc3g2cDXLHPynzHMkCt)O1%y)}PeIisX(sqR444bI$3|W_aY=*_H=5e(l@|%&Dd~8c&2>vbkgJ zBTt_)-n`pX%mzN5_IK(q8gBw6*cF;h6``2Gt))o20p@oCnGSsrMicxn3&0M8=4<_QvM`+$+oW=Jeu8P&j)%g@m|ug$t9D(uO?n4j7g(+ex1Rw3Jt3Y zRGFAt&6j_Gzy!1HBJD5x5X~o#IXbVS*lGM4km~`1+PSZTM;m)i_aPesh1z+vjD8xG z%GBzI>By9q=yrbbx&MSWrLSy#MM117*ei-V=}M(w5JC&sP;J( z6aB%Gw!s|km^t#Nl6@Rq7@b@l^aF>=_Zx32-EM#J3J+UCo+9CjgMKd0q0&i6z}^{g z$OMXsdL^df&K=(E(+?@x6#c}>Egrz4_VvMYOr)&p>8u*JTspy}=(1+pSkAOl(`uVo zER&9lv}=T1;!?!6F<2OB({k&-o~qgZ=C*-6HL^$RH3dCUTC;sa-ul{gtT&F5;0XjF zHjLgEta=cbAB*h#QW%b68fRPWqA(}naV%*HB?*b1tq%cHCdZa9oMCljFfhPqB*n?* zzT8dmx{eP?6FgwuY>*?;H;7m{Yl|4PUrG<}Vq+q@Z`Vh_sFt3kg*}r+(iEyWccPZi zP{xOWg6iJ&4Cz{Z8>Hc-f&7)I!KPbO(8$Yn=~&}d2X43KO`j1nMN36};$Gv`f{0aK z>H~wrRHBnAI%`}eSc+AFY9Gn~VA{I7O^63P!X!LpP4K3KB5Q^mHAYemWlHK@O5#|_ zmLRVxvaNDw!c-g4G?gy!USd_YlrEuIL)6rpEn2Ekw`ez6)VSj5TBR(t)xdO)W{POv z@8qoByX3io@R_I@6Co03u_P@*jaO{n*oI63A)nZ>P{-=MDsp>IGe#v-JT79C9+CBB zSEJsP#A=qMHlg$EMQC{l$2Mok!I|b|S0?Ec`1RBIKyEQPw8&LlPhp*@^zmvjHg-Lu zCGqn3up-!*OtkDN;;#uRMAiXooQ54h-pE=SQahQLbhtoq_%3A z?^v~TDM2r@u0ha{4{FVy#b4#tnD^2+VRmp0wUIE`c*b$|!>HF{`Xi9)I`kUPDNO6f zwasY$aZE>59OYZ!1DUN0cn?Abs^P1Sx2vci^_9Uzmt0HM7Nn!2e+B@ zH=O??*s!#;3!`#VoP0xV%Y|OI?s`nv#2Nko1V9Q&m4Cf3LuygqDk0xjHDi^auUUU4 zrCH<5bbqRp>PmobWt;D~8lqyNE38~2Q?b>VO;b%YUPCaVM=dPbgMXl$5-53l(=e~Y|9ro zDo#wq8nYrS1@qc*SewoDaNyVQ!*~IQ`czJ)OPR_ZHRCo%SwXl-RcPaV&gEw*U1g>c z*>u||5WO^QT=_*MB~M!?fhoRg1@Yh+?ziEq#%w=II$W-Q8 zE0$&}5;xAipPdQx7YZt6HWPYv#P)7c<=wd2_ z-p@0Ahf!?bN5t}7eyJoqpqvCqilm;kb?fVA-`x%C+q~b8ee3{Z4}AkNYlh*+(hNq6 zd!F;S#bX;OMy-1u(^||!*po&*s^Y^E&uyl||6%Q&qALrdY~fUF+qP}nc2cozSDo0l zZQHhO8z)vJsY-5obl)-l?zemIKhD?>=XLM3=l<4O6BY}LSWo6P=tK&77Y%`L_uf0Q z)~QgU#KfLsaMol*N)|U(I<>T*U0hP5X7RtJ+9vg>;kX@QwS?5B>4^WF2v*^Bx-0f? zaP10FozA=X{1-Kp6%a4QdOjet2Mde@2&A|M9u!+5XmLdIEF~xLg;VW;- zNa-G37^2KIg4EscP8B;kfZN#a=r{uXz%$R(XHVDbs!v{lHo+y-H(|49Dl#0OVCw`9 z1>3dxXGH{iw+wc6>)Ew?Ld5RZ4CB(XA6gpq8J%ndXUWzZ0f zvdqW{n4JCr1xK^sG)R|CdvYtyH%JTWpAB}f(!#`I)vahfl*@=Jspc%jVh?^3=6>ts z{c{9nuIJat&GmSDM9nN_3kxgIzdMfWA-+5YExs&#W`Fw-*E@7B|q* zRdA31){=Rc{vvRO(h1_C30FHGwBDrMw6(%{i030?60ZW(_#wtUqGV65=`oYJPme>& z=UwAbp7P8R+^yY34ky_mP5|d-X@{;a#hNGMJbc4>ZYXZ~hKu^XtgPT%!>~S_KomSy z#W=*dG~8BEUI#~n!);4)>YV4{UlnkurS}zSt7h&)v z2S@d^s+OpFE+t!j=#{Icyq#%g40Ou3FtRl(oNCk>7EQ}Y>XT)luOT)vYpi!gCn&6% z4@oo|oDg?M~M@pQa>nZGNL4Wyz2@WzCmL}dMx@sBNWBu|?-<)v;HcxPb%ey{9 zMoiz)JH+?XAN^5X3+Feclp()I?_sk&mlF?4fHhfC(RqW7RgePfg;i8^JoYBGL5mR> zz~N&@PDSC|`dNgL{m%mJ$S~DD$GLEHeJY8_Vh`rwe5ap#uohe}|BKUuG=}pph2el55HWo zN~-cvmh~8Rh1BHdGUMW9{#9>QWiL_(uBT0+Gy%5^p@LtS?z)z0j$Yx~oGIqn^<(@h zG((tu%%W;Ll{uY<>XpWBAd5?%^&U=z5g;IlFsVV}&@Y@Md0m)tZlUn&@N1#F*4^O4 zw(t$@J?)}nYF#Pf5r?Br`O(0}&^&kb{VKk?C*)EsdX9etoR1TwTXle=CGZNPyDbz? z$le=unODSpC~3bnLU7+}D%SHK*nfv*0?8b2+izGlKmY-e{lA4}B_}sYcL!59Yexsg zZ@t=o;&P4Vo-5inE<0p$QWVc8qtnRHea<40CkG}I)dTEJxIBeS? zd(Eq0kEw)V5gAL4V*T`*#|e);3RmJi`a0-4__NcM)lAN;NT0I-yb*ZyJLCKQIefjJ zrR{;h4`HTLYtvmwOzF~JT$o>HYSOGrZpbicwHqqdX>-M>%E)cWg<6-?G@4dpbGh>g z7lH0@)j@|a^hg9HoLxhbWwyRr!M)K_C=gYbfrD(HDm7=Y$z$@fA>E3~5gtm3|C z(GCOW%vec**vVZ2+R5luL;qo%g$s@fRRC?u>?!BtX)6DTh0Fu^F;sEPp{KV%u#>Br zi!q5qojj}dCqH>9?Hh(MBdBz8NmaH^)g`$Hhh9O7)wPC zTyOs&_!KrD^4rfxWPhGF5S*E~zN3&2=Y~VJQ=otcJzq$0qk4@*hCEUmd5eX5-!l~+ zlYL7ubPk9tyCT8>?$Bn?fMc#j+%fz}>bn0c33?x6HL0UoA~|QCup`wF`hcUGaJb5A zDCC!Ftu+5ar4}>{d5JC!ARo_eb2by0=DwVsWCXpf8z(;}L!kq2fyqL9L#*^OL)ny} zOnC-@igWNeV%4}T;fSz;f91SP9lzVaKAzwFjvWsJ8eJNw?XF^U4kI$FsbEn+)Mq$9 zl_*rg15N1!66SpwKiZ^7@XOCo(EwV&WjU_?51gB}U+a+Mrq`x9y(Id&>Yn#9{i>E2 zcdUOSUE{WWb*`twVYQCZ&cxPdY}dbJ;a85Cmq_usiuVOvQ7%sDfF*vX40(qY@p;%0 z+q;ME*VYw5hb85Dw=BgU*`{Z7<~iN=DQ^Z5XD$)?&}Ysh;XK`P6IQuBDyw4c)Q{Oi zz77zLp$5*Za*`F)%&3l4<~`m$!BeQWU|NtV-m8se+V&kJ!4T7votV-M`u2s=Gw%8c zH$aNM4+eaPtRVj44BW0zu{~?A>l_s;|0GQjIu%qgJ?e|5hcKwAV<NuU%QE(aKE- zfvFV`XSI;x%?w8wjtx4k+$Co56R;PQe7`+`Kb3CBv^esT32 z89u@G6=n!xLbT{neR?|rUMPI%s^TN))O31f?@%Lgj@ZADieil5UJ_^Iyf&f|%YKEK zB}T6z3-vUG=JXA{ih=zKvmMD=KVea1g9_-5ASHWKFU~h%nM?tL^=}L74f7oE<&r@X z0^qr<32Zl3rs(5n8It9G1z}lJ0*Ie#Sy65DOSSR1xDC`Zmmg$@miIpcZd* zG>yEG*R`peUHHwa6$trYiNuY}Ve{ohtHxX4yyLMx(N!4WysPuc-}`5Zp3yAeq?~UV zhC4Hfrw#LOMsKY20|!}7X;;zz;$O^F_(|m^UM+mhy63Km7b#cS2n@I4Dzblgw*C33 z`8?_UIo2aSsDfqm(1kg&ojn+nJ;=RNo&=|(-cl)M_&^+X89y?FPCA|Tmq<3w&+S+Q z?o%1;mlZ;9RnWjDgIZoyxN*p>C9dk8an+OskpbFOZW$-ox38?B!R2X#8Bpts>=*;# z3s~vmVugwy+Z26`D48>Njw>j3=~O>4M$$$L=@er~k+>kXNB6{VIrWE{oWk6#EQ4e41+ zrlcb_+L1Mwx8yJqIO9fuzx-U6N=3z|g3k@sb*unHiQ3#{c-iKMp)fW23&~sg^`Y7y zf~S{Mc3VmpA2_WCm`lAe=z?dz14NFQHkNb z@^8-+ss9H^S9N!Av$i)UXZbI?6b&7CW$hKTw;F&>MLrFmn?jC9O-V2`zUCt{HWu*UwJAqX6@MG;rRydfV1PNJtZg* z$OLm~YfX^}J-1M{JR$3oS554Ry@3||8-hLLZB4w1cs)<%7|ykz;! z`x_CM=mHtPD(uP(tyEV$eOC%_oY6|=+*bKC#}1mA6$UlY^n&|!xxPP{#;4In6w9o^ zu$2z1W`!HH)iqv?$B#hgY`WT-tT(e;8*tW392+i;BE6PJL@`?k0Z1Kcd|qShmxG)F z3so+6Pu={w{lPF9z$ZTLC9<$Bc#IWl)g$~sc|3cOm?Sh7we?M>BA}$oStWxJU1FYb z0fJuL{fD^^xo^`K8-otP93q$ysW_IHL2lP$Xo?yFWEab}88V6fV=PVLTfgFH*NKtfqzg{~-5tK@3!R1gQGMQ%9UvpV6ORwu9 z6Y+Ga%2N0_%Ta1An5T*GqP;2EUiJObt7VhlB;KKX@yx^X^`k$}DSz4NNjP+&JF)8) zj4E2{lKX&rn!z724jHX5lSiun?ip%Xx*tY_@+PX4f`mS;3nbLQ#ag%2iIL zAUNDhzZp9bv6(OFd%6HA_(bJ=f}!#`cIAhqRa{G}3EfPa>dIEe*}O==r>M^1uxds8 zk;j|3VS{Yz=$V@mzpYK^2{H#}N0&nli#TiP#C3B4FQO;2@IQ8NS!hrNg~An3cD14s zBB$TG7R~W)v6@HCNQ>LpQMZK*sp}HHKrr4t@5o1XN$G^)_Ha3Nrg^=i9KVu#*4pHm zZjp3CBi7!ytf+=pE51L`^NHHvAA!38L_PQ7dxXgm%7y0jZ0Nf~)G(Vz5pn6Thd92z z$F9fonj2->3Z|j_AuN%;(g~Vi@6JTlfxAJ7{QdMHboK5ch4*;Y0aQ6e!M9Y_e@U`u`8Fos_wQxr?!z zql=oGvD<&0slGF@mC!`c1=`Tx2U1Ci3qd3E7YnPu1K5ah7pbiqF%J_dN1@o3WimQ< ztUby`@9O-lKJV#v|!5qzR{fB(Wj;r4|F*p@0N$>)`b=r>E7qrUoecEIOnm@hwNp`Sb5##!qluU z*WQD}v9KxLlIuEOQW`TBH44~zbu9$+M;18V)!gX=b}&5EyxQU;gDc8Qm!1+^H;@?T`Fl@=4mlFy_dd>r)ML8Rg7|{pys4=D&E4ewqx6$vm90-cJGN zEdN5ZYB?jkbmZ1X!3Y6CHc07~h`-Gzk45AB+(hD5$a~R2*?N>2#Cc0dx`$%cVR`>+fRK3M}UhhNrp168Xg&}JvqrN@bzb({w#43En|y%SO0PvZ&B38Y&i=ZzrRBq9 zCD-?M>ia;`mpGv${4nNsyX$%D+3VVOJzM|P6ZQg<&Ik`!3S4NdOtosJu+ymF?3#`> zqF*Mg)7=@kf2nLe4^`&2(;U$iOR&;t79g~Nv#&SNh}t@`^pyN#)Y{S^F zNfOUhzop)xo9~dEAImossm;Ph7_%}q!`)&AdyGhkR!&%xc;R3M*Up1$&~4Kqd?4DP zps^m^tiB@2rxjAe1DdfAUSi?8DVi`FJMyA-x~)u(o=3G$P50A=80n3WTZMQ(x-FC! z+TnnDL8XPxDs*TGe3u??!h%EJOcqF{Q;g(3JY`du(B8tBTU+@+J~&Z{5xsP2S5+g> z+snHuiW!xP@N1~wOMaYkV+53KaepKRH8-(X(`auzogk;hno&+f1a=o*e()GyemKEx z;&e8=f4Vt4^q!bN`|Zz!H7VvebS)Y;3xUJMbGAd9-EAJ@-Oa%Br|~r5rPnwS?`dcp zqTQ%&DT1O-1V&^BTJSjE@-%^mzU*r07WfKGx2H0UEXsHo7?FIFP9#!OjEbk04sALZ z+4H?N^`gr-AkMbo5cTfwtTZ!Wq+}(T0z&1@4K?4e(ULPY7}bFp601{W|9brfN}Xkz zDF*_OZa!7B1Q#WnoDF_@6d%Tl(Vx5!zsQNZ4zw`ixpU7uJ=TGL8CZ5nMc&(Fvfy#p z)dVa$+(x})J`4DJ7nGOVl^6TA*fncJd&4@E<5pMgfonH%c(u`+uAl&_rn;`1l~|i$ zZR}}^;>c*$xoX47H*{ZuJ9a-|V~ZU{P|;O0!c7O|{^vOVy&9=M#%B{PZq>cDrqKj+ z7d5mhO1!?6D9v zS~Ac=Kc8K~u2kRFBn1iqn)S(>d+B)$2L46Yo3;gNITjXMbKM3`Jg`BRP8v0}jCaL#BYX`w&)I^iKmdT{nD0xlQM{WAjsGb^5^!^i^!f7vjQY{Au$(_Q6YXQGI%jQiL z@PV|Zx2J44n{4Swx_ICor(Cq3mlpmWz0+e4B03Um!y5%P;v!q-W+v_(ucTTvLursKl zX|~!Fh4~Ic;7J2BMA|Y-xE2FOGOPOcbj$Q6@M|&^LRH;;zAW?%BH+@0=L@2FEaGEMrc$V4mQ%fr`|Mkm9QmV z)xgD7pk~)Jk%Qf%QPDx9j=DOP;yI+l7kq=^i{ z-VKzvXRM0%c}PiNLIdFeUF=9bmJ6s4Bp@ko;ifZl*N#YAg@awn^?DI#muf}}u*i7C z&`(SEUf_qP`VULdsfF1s@wP)XkFiW;-xvoBcp50PKD1`;6FWAsr-_6W?3w^&`d81| z>Z2w}#Z5o9@v3JZu3U0$&M(X0qN?Jy99_=Fs_Fb4>6s<3(V()s@1PvmX6yCpqrYQ> zUUz7KPPayrmfClsJNx@4)H_#rwVtH@Xm(}9w@AT+3fQBXhV#vLuVw+_BOR^?8YWTx zF>kW@uHTQko~pDy-e$e|U8D%~xUNSU{wIXNnnP&ZYzV*p?IDRSO9BMOF=}(g2eF-n5gLjCS+*%9rsXxj*DEY ze!(yypZ(E1@LGA#q6K`lNRY(zPvC&wAGn~5e?9NllwC9WZOoGnYMeRA-YxL83jw)* z`D~nG{+ZfT*6FG4aSIScm_vRt{EBov5`z2$Fw*=>TQS(dp2Lkufx5$E=7>{*tcz({ zI17f#g(pF$PB7lTg-v!!4C)xD{})x$6bd01P(ZUr&tXd9O^xtwyV@NRp}0+WzbwUP zDq?jjr>i0PrY0qtf73fSVE~bGgBDJn!H6zPf3X-6y=vPG7Eb)RBq+==PHbv zSEVmeSv^@@PF9c*N3?Bo2@IhLzU-15)Qg(Mqs+vKpw5`gpC-{(K%r9K=fpq z2@3rU4xaEke&CL%ikKUkSWCo-Qbc>^jUyWdO%%b#9y)E)PyU5QRFEY-{(zdDA_--m zMob3IPL`62I>Szl)Kp3>ajdT(+0CUl>d5xZn^HjZ=wg4%rFHU^`jV4m?G^fRm@zvC zz{ay!pE0l&r+t8imilFAx;6jxN2@uLPofyapmY-%$c9Oq1f;djJN~Ob)`#nFyk<2%?4Dp91cL@k3t$ zgd{f((y8_u{jFCp7_aP!SogyHg_M(h;TWxwlO>O3yKt6R2nFixxXo4>e_NQrwqbU4 zQJR33@6Stewb?k+1J7TIUV)xJ(Z7TjR6IaC)?dCzT~-_ zccSYB*z!jBqg{^HBSVLWqV>(_%=i>t%&9{+m|Cl`nx{3P)b^H>p67-3cI^qnPDu$K zm&}Fj&f<>jg##F|yLEODUkM#uiXbRRtJ*VS?uVl4yj*=3GYS%l5fR;nLuzVR#^&oo z{tYP!?&?x71%lzeZ{U8HzwarpoPG_RXBXxh!7N3rcam&t{xp~MrHtYkd2HVCgRg<1 zWx!_$7em3Z{)PK)^D%2!``JINkNNrY+W{^}HE;GY?0cdI{*6h? zj!PcO@H1~8CYR^A^g_eKEGAPm;|1?rH>=umrtCFv&xhz@8dskV zp9lB2eeOPb#0vA3%eDahXpQ|nBI!P5n1V7)cP|GFg;zmc3qliDz=17+KUed#HzRw% z>N5>`Xo_b`(mK0r3@O8nH7ZMImQb6|h+iABX^;LLCZq*jSen3oJ|*I|z`R@55}|O< zD4^EK~)~;~TTu~Hw7R;j%t6x+l zrKmQUuOo@@o7zBQ}Esr+DW`&da zsrV&o9#S~+G8?pj`_C_-|K3}bPeUgE$9^05-CzA*@3+4fDe5l94z3oCF82T1rnpDb z;6L`;24ym?Sx>FS3=*W_e$>T8?8M6XA*#}P^bFPoCA9f2S-YiW65`_Q2 z9!v;`u=mU$L3v|Y1>MB=o@72lehC|#QKn*ITcTo@EhXjnzv%d0$2BPhyj^t>fdEIS zKqs1Wzyre&rS*S(cakKLDKqEC8c#_G3q zwk9%SAxY-dekf1ovaDqzK{r>A09CPK)XtDPeP`DHZYF z41aWJx)wii*lK4C2cJpPE%E8v=ZitmUCV5#7W;mjS6N$xOcfuP$;U+_s)Gt~3jEr3 zjl;$nTB4XF3rQf~&E27;!kG^QYSHcw^lk7${&SxROOGY22 z47I!e-M<@oQDMhJ8P^M~0;ta`LhZAs(AV@VE z5Dzi7vBI(<-i~+EXX2r1Vgvm+w8toulcMsFng`UP_9SZW{eA;y$>F%&*q0d@96$Q#tM|;V_4op|F-L3?YQ2z_6o;XCV8eu$EUK2iBxf&Jd*_C6=lHfL$a-P>#B`Myt6=eykG9 z9JnPJt=R$y&@KzJM~a1;ObuzAJle;+O$L<9{%#E?DjX1)KQSg{FnJxt=3uQO69p&= zay!i(1y-&~q^fn6cpBSzJS)Eo7hI2pb!%!wdm#8B1Tk(YN$Do!K{8qOryp#-ccUgO z(z8xF#3t)E@e|8Uht}Y@CV1T&n{&lYMe3xcB$Xhr$lLj*W?=j9aETKizU8V(#^x;i zwd+e#Sj|2OsV&O+Nr90&^ogJ}9&PRg5e5|`)7O+Kb={nh!-{Wx*EUeBtDV^*8$0qa z+NollQ6cKE={A|kbo8}#8&bJAKZlwuHDr<_K^)!=jK zeX_}!-l8CVq=g%1+y%AL2Nrifd+Rc2dE}qoR#vy?-Ems~+#d<{?jk-yFk z5xjQdGWg@xz}%Rnp~RLQ{;mQ3Heg4&e#-ax_vU!98oF=nRThn&MK{IzmhLv@24 z^A&AFdF9wjotGyO`Q0dZdDX@w;`=*EXjF8ny;#|#z>!5aC~SSNXr$RZx*5`R(;ynl z*#XAi{JuwTeGNC-;U8=c!Ge=K-JySrerL$cuocZ9uvRTlbuxWbS4;dxrj?O(Q7U{e za7Omm=s?yO#*3JcU>I21oAq$rUHSk><{cYsGaRd$kTIZBH>D&+UdV9b=}04^wLapC z<{gJbGm_erUnq8lJBT2=!Ja#e5pmlgoqKX%B@TWsk>^HQfB*MkIB6Wc?~F;=$;3Tu zuSHHT$rluGCG6=ToUiWy^0Qyzz3)Iu>jUY(!}5~*b!754B-7x5fQbJ;jJ&Mvt$qGC zBDZM$$HWWcbJq9O90y7v@JFGs3JfJ%hPWn$Ff!-@3roI;^1@|2JoER&i|yN+l{Qii z!rop5P8TJuRJMA=MwnqyqM=3C{@;p&m7aY|&C6P68sp;a?kgpXv_0B2(e2Llwrg+G zw(Fe#`;Zh76fW}H-|nw)8b znR}xEnr&1~Y-#10nQsTO2w+#6AdWm$eNLyDelu|*gn_#|tX#GZ&LuPPQL{w~0=1Qf z5cH>-)K;OD?A#?z<77^Pb_zk_SVF^awRR-_73sZ~zf>UwnjGc$zW#u5M#;i%#``GX zGT~$)*)B#ACAn2fHKEmtGLx5%z#f50KiGXjoYKcRlvh56!X!f%U|`6y7e@;JB61)N zn52&>fuKUd4%;FN>;|&usO=JYB)FA!ZdBtL(4N9kB6;~T#ul2UiTeW8(ty%t(YwY% zvMk$SMJ%GsS4;K2jFJg#Auy}{s3}7jd5YM7oatj953r+45gN^U1~6~1M!)DKrRK5m zZ-YWyAfHVFSO{U$HnP8)BJVQp&88mor!nvoE~S^plISeSN$)kPisWN#1xwVL>h}oeGjk#=h-UlwgNz^vekZZ9>G{e6{pTsX89sN!TjTj?u~Hq z_IVz;88aamLC_wg%XVe==3c<<@iL0GzQazn#$%-F((WAF-5fT~5#NlTpOV?FqVo}l zah+cOkzSlnk)e&EVE!JC18oBt#)M%nR~tU7K(S>|9vzCIU4bCx7xdJFCs)GeE|(FU zJ~{c}-r%j{!?9`=kfyBbD@B<--oBXqP>=GeqhFfF#1(oK@k^-IiNT|U2*>SQyLU29 zQ{4R)cP&l<9$ZN9tg$cl!@wL~TZq$Y6H>o!PT5P?vIRPC4ZpV^mvwQ|W_?y}HoBSq z^(cz*k?DT;iE*V2J3C(K8PA=P0Fp{Y>qE{t(vE z43R=tz;^@y{7GK9ZuQfUg;V+1vEDDt>T9p+5Adh=P#q$q?ZDC z+c-a68_8BsYvM+VuqCqS1PNT2qlt*9yn@N#yz$RoaXz>OtLN6|;y8i>QqExqr!g{} z357J@iv5y%Y+46bVSvK-9%3)pUjd$|V$8|cZSWuhXopqFcjW4*A8vY4CNxH+x!vJttB%s}DN(34@QA^YE8LYW zP6NCWJ-hIbgoA+&`cC-)G0S4MB|Dh63$zZ~#LKlPSfrxwXypT>&B%4Db*WeV^1RNN z?pX>`*`k|jDzVHoN~YKA()L;Hym@SJ^V3mpeyt4LSW_EKZnBSdPApQJr9Td{T4Bu9 ze_0Pic;+V`UEmLwT_{>}ZE}$?<(He*K^C<)1xqurrc%WbB7jPhD8S%eBby$z6n6zK zYniaG7J#lfL8(=T9l9V%q(l|+N0}UxDC1+&k6(?_u9$lg1e-Y_B~}uWYxu{vJ2&J? zbH=~>kahs1h32r|Nj)39oEMIz!nyNE2v(U}aX1xYA}r3meQEXb)(B5q_!(ENTz_x3 z_S?esw2l|y0b540Z#h?;$HaO(($`YG7+x!9?55Uj>f($)v|3O8e)ivr2RPpI!Nj9) zncFEDb#2?$9lpZ%A@~SAcQn%=FB(^XY3%$Uim~=It=TzoSJzrSZmDIGCx+)rWuiYp z{Q42BuiaKLhyP}ULo)Zvyq4L44kp-R|8j=w8QOGn<0sG)#3p{Mzg*rb&l|c4doV$yC zUAp!lkQI)qofr2(gm7FDf2GOLNYjt7=qvVInRylnaJ~dEQ@(~*a2~0O?b@FGD7ph4 zUiu&}RWC^SR~IG2^=wDgq6{b#ZN`)Il%$o&u|Fw`hrQfOjXbN!pw-qn^Ut`z$0vj( zI;+*ei)HF%%PkJ*BnZw008q#1&oIt9RL;y$c>IfI-_pz3Qvc>Lw>u&A&yQIGklPG9 z!P;zI6b1tSI@rB &Q4m1=9VEg|b=0B1b+v@o81Q1KLZ5jZK=FJzg%FS`mHkC4f zH%6+h_oz!Jny&x+!(}MFw^(tOwl#EuKAg)gY9y#`Oq3?v+X+0AW)ou8tvrskNlIPB zEMv}EOwOxm+TmZVcx^HBFg@`)ce;c1JEnDpTkMS{u^JZVp|y zcYK-PYfcZ^xZuk0csbrmv4A9D#@E_k)+L5-4@$K#8$j--V0ae;caf zof+i-y*qx+g_|tvd%b(ws2iaJI@UWPYg zaV2;{2?kyw9!F&lywZ9D;tT`wKL7pB{g;I?Drk%NY0S_sR0DU7*uES?u{#=f4f1Rp&C4=K2Ku1=Mb%K3m&a>)c5Zm-g zZCc$oe!nVM(aZp|;jLYvNLg_2>(l+Xm^%y29-2lVL9wlXDzylA-O_888#Ii|n?`6x{G7*sw4b?k(w z<$wf@%e!P#KuZb-Au5><%SDIVlqetG;Z}S%>6I!tiZa+T_foO^1YiJX6)yF{gW% zor>oK!KL9wW$RRqP1tsc$JEXxOovnt@oQy|OP-HJYX#TwkLOnY^4%1N79|hfRQ|)` zNmIoHpiAhaXHLC zK{|)}jYzvHRf2HIj$UCjf_f&p2Fmd!f+6S8atw#!IgKGUFP{U@43f?{9ng!y+vEC0 z*27`Lpc6NeuwIKqQPrl)Z>6e4f;OvJ_uz0|fr-}`7B1kwzWq8(E*M8FWcmIE@o>M%mI6>0QF|L@4ksRCBlOW=MBvh_g9kan*(pE3b2$E{c-r2nlwe4 zsijT=Bf7wt)!;;`z*jIkTv$uR!s^AJ!Erd`TiGi!);*{UdkRn0qsRVyC>_-yXkHFE zp&ZOwNUKFCMjGYWQvBwP0!!l z5NLxy!QbeN#4(h+UhlkDPk`q)k-MR7(0ImqDc9;))L>R;$DRg62r3y%vR zmvqLQTNFlC8KGo|^BAb#jRO0L@K^m^jG`BNsD3pm;e4)CECG`+Ami*;Y36#-1^qi4 z4?!aQWBfk8j9IJ)pbBCYPM@w`#i*&@-7enTjk7_*OB~4eT!HM7owx3Ri0K8yXS`dc zVXD6Z($}Ba>A-a}zow0LbCx~_vC5vu3+PxBAyC~eOq7}P@crIsFb-oE`40Wigky9b zvpOQv*3TcUQ#m8y{DZxvZ<3}|Ki5|{f)V>C`Lbt*PxJGCa1P(6EMr=JfPmnA7o70_ zS)2V|1t(?aX!0NOp8q73eAk*H9t*kvVJQykqNtkHMN%(je_^PEga)#xzp_MR`7$vk zkRQ$RaGZ^h2NCwK1{QP#1W|w39gIQYuCuE9f(CD*f9-9@E#F#OnidG>ed>X!32QEH zlFh`&p*TEh73|mt*di7`o29JnfW6X5s9wgT%0Qnr+AkDEaU*!R60|i^rMK61CNwPL zP~*=q`M%gl3(a%Sk{@E}8L?(Y3ZaoS+4VFqG!m$p&13LvV3s(zHGTJ+vz7cilwHmy zp*^clD}>NxipTAQksNf@7-f_qMs!YLrBt>VE?0 z2*e=C#buP%m4+CH9)!q<-L-UGs%$pgXS&IxjysB6PCTrgs%)j)>5rTdNOG4O!pkE; z=B!R@%OK(TzF1m>_)3cpEc-enr^rQ#V5%lb@Kdp_J4#%S(Z<)HPFUx1y^ zakM!AJHEV*Vqsjpyin#`QlYFGNmPtlxQkWvTzi zlb8Q02}NT!YY%f(b4v*?r~fRA8UJr5`;pZ@87^BENp`4=@t~^7jWXpd(pI9-$nZa8 z&Z&dV0K(EHjRiE}kv*mm{>VRKU};HVRMe3%d~esEH}GCUAA~G#c4jE^1^4~;Ua9)J zJZGmfGT6RDZ&*EVP9}tIeUU+YqAaoD8EduYT@@upvKxixyd~hGDx<1o>4F5#G)x1` z=O8fTIq6hMatjOAmg;OwRXyKxB zIGB|2*@c#;8ic6t1%=fDh)l)E26yVi0$Toww58&6W?EjSQ z7}op~u%!f>`;(o(lQcH-O-)S{@gvl@)X`KIEGrY62N}jT_|45Gc^X3y>h22R5*6Yq z6+MHe$dfHnoy2A#YG~|W=n#NtE(h7jT$Ufd*e{I7*39gS4(7l8CmW?BiKU2~xyk~O zlTSm1)nhw4o8<_$%n0(uyfV7LJEY*azQMb|Y<8XBMlHBf0hiN{Uo*<%_uqy$aI{d& zL2mECc|VD;*?v_Xh!C+cwNR8v>@==|->lQhOr~QMxR^oI5N9!Xyng$Bg4ub~cOIt4KOdS`&!k2pCUuPg@%Z~K`k26)WE ztAY}W6Z@;`hK{H}gVVtVYLuL~4#saq0hEoL^Vek{z*a=c&L%7SfvUyhQVMZ+Lak1A z2g%NgTivi%2(x^C_TNuoi=+blITnM(F0^LyTa*XvD%?6?&o)pYgr`SD%n zSWT`wYtDRU)o$PaW~dDw#b9?O3Rx35UrJ983puKx0ZtbvM+;^eN$U*Sd9wJ2DO9d} zP7Y^S9V+lBvJ&)UAn-6!Hv6%92sZ#cuVQEF0M_PJR-e-qRKzme7!+Hb(0NNrdk#)( zU`2d^qdnWIm_)bRDM#$`89tOCXDXhcx}4Q02FiihJCe4Rx(-ou1>Lk3=1UYZZ6BAe z%(@(29U_hSeD&JVd?W>qL*Xhv)v7yU047Y}^Pb~mU=iX67$>vza6wo%{77KI3B_zN zTe)C04^C(%&GKRbqcrZuj8ha8rzk-Xc`<|MKw#zrrHuVy%FeaXtn%~LzQ^G!*~4Cl!`^{zFr&xoa%HDzN;AJ!=;Jv?E&Qz=$zzv`kN5{s4E zj{Ku|_Ckm3`4t}3)I+~b2fwmBo}sH0_=d>|Y0X&1jcLj=M)oVeW>g3Q zySK$Mug?x3bZ?kQOV~@&;ak6mkS?UJX@ZWvO{ac166X!} z+Kd{rvleW#Dlg{wS!O4m?d9MVx2*bb2QBDw~{ zNzSgUjHHbQl_VN`BE+O~iNr#$7*z%l4F0v0`3W6i^U&3WKWRj;U4bPCP^x&bl=X`Y zl=ahgf4mdu20kl?&v%+1)Msuqfqjeoj{yG10p}7aDFBycs)?OOq?@&Y(cQkF+loOX zGlp$!fYQ{WoQt%kC)%e`yodD7rve&OJ&dFtY|~Wa zsk$#tm^Ls6=5RJiJrvNFt`XE(d;OCm2$&`IDMrCc`rGZ*+cq+Mf!IV z;KhQ4m*M2=(M|k`tADC69m_mIf=CA(g)nNsq-WZMP~Dau(XynuyOHwT9Of=%#IG9T zl0(<>1fzZ0r@WD{X<^K~28PIzwvtv^M+HNDDoA9l@6|=@kY!;CRR^^tKHAu7$|a~p z42A(Nc@Ab)qd>1VjbMn^OWRk{7u}4+Ca~6VV1MN6XU*P#sw*>9=?UTDbp0$)`*7Bo z+mD^FeY+Afk#t^;ro6V;JSz%TnkPm!OdBpTaKsf(qrF56B0I%d+}W=2 zOaJ>;72)H4DAU5}F#kpHv63 zP7FCAQ+Q8Lil8y(Bv4GaS&r5xFkkox*U)GU3Np;|9MWT2xD7`0dW%fmR zsd15zX`;6WC&;tIQs{~5Oo$!I$}l~eK}QFM#s;;n9Kq2q-bqUq!xFEVF>_JY3d}M5 zlAC55T<)L(sTn>yID!)A4Qh*$l_9yaWZIgP9e-MywM!WcjdO7dc5AZCwZcQT; zi&)hos7P=(kksSbgL0hlrO}loWT+DzCvfDv5fidf+2csAN(w8ufAN77LnbLeT&FM4 zKql1}BT~xx`A@ctt6UHuaFX<4Y*URRMMVL}v?`P9zplO}8jpg_DmHg)5|+PdFJ zM=ORjxe%aRK}N63^44J3I%8c*NM=T1{sy=t&V*pvxA)u#ltC>JX$xdaPflAJfa8R28j7tU}BvK$sR5g|567LhAo`Sl$0+M4#9Yo*4C4zy$Clubl4yW4&*-7k8P-(ONJCtB|rY2 z$VCBxLPT~9Ni&Fh`2E*!U}}}8BF)Oj**e`EW4wb!f?Gqf;}Qg`i*Oi(8=3rP2`pBF zazeONOO$-YAm}nKF=n}L$;nX#h;52`v~m^y*?C87hGe=ZnC?#)xBm=Jaib zkMgWpf#8owx&nJHj-O#3`hw(RCwouP%Q^y-h&vQCwI;^-HXb@7g)D%}%R(N2zKIR> zoQm5pvqFcIq1Eqec8Z^e=c11sRpnj*8b+-Xy`wU2*|#zh8Yi@fIWIyl$U*uq{y@FN zklSvc!3$vtb9{3IePLg;S$;%&UN_MH)JF8$xce-!)xNG-<9b-El1i-@O|RMs z=He%nADI~Xl>+J-Nd*1t$u0|F)iheO4j>Y3ZnN9@Q3Dqft%tcwNLZCbj9FY|@;wvo z$wJFg*rr|`7sR@T9&t&L4~;uOwb3p7DFbm)4{~Wtv(Z zF66o68l+i9UAu?Y^1n2A077#SD2@nhF*qAV4PxcS;i;`3=Jzk_mQErR41N7TBM$|P z%X4fFyUlbhOl+1(Tg-XMqD4o{o$V2-Gfa)VXh;}=naIWv01AdiRAi;B zt^i~Q)zEoFz=uUv{0&%0_Q(i8w&maL$xa7R3bYc1n4#)nrgvM3K9ka!K)9!XN@Udb zZ(|P)hz{3pE~nw?`bJZg%+FygO?5Zo0eU$4oBe9RB%-_QW9nB#8?PJ{)iq(XIpt@QZH22?;OC$iz>h)Xj!}|j%$ccj~nl6*1N~7 zpB-`zIpc{(;>?ph#Ci}q7{u~NM#{~C%7q=0D2QJ*mZUWTU6Xh&6n_C^$n9V__T-2@ zcTQ=P=)oj5{z8G_^m8p;F;M;dz}pYBwwfo|-weq+GXmV^K&K%0A+mDeCpEQh_@D=Q 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

    bM#wO=qfu|=Tv=b%_>6jQM&xmePuBo3V9 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

    From da471f26f201e2e9912f6a51e05a299a8b139199 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 28 Jan 2012 11:13:03 -0600 Subject: [PATCH 1444/2731] We aren't using translitcodec anymore. Kill it! --- mediagoblin/tools/url.py | 1 - setup.py | 1 - 2 files changed, 2 deletions(-) diff --git a/mediagoblin/tools/url.py b/mediagoblin/tools/url.py index 78b5dd63..e2caed39 100644 --- a/mediagoblin/tools/url.py +++ b/mediagoblin/tools/url.py @@ -15,7 +15,6 @@ # along with this program. If not, see . import re -import translitcodec _punct_re = re.compile(r'[\t !"#$%&\'()*\-/<=>?@\[\\\]^_`{|},.]+') diff --git a/setup.py b/setup.py index ca7d4ae2..4761f2b5 100644 --- a/setup.py +++ b/setup.py @@ -57,7 +57,6 @@ setup( 'sphinx', 'PIL', 'Babel', - 'translitcodec', 'argparse', 'webtest', 'ConfigObj', From b4e877ae9712df7c095d6a9c068ee6f2c234a059 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 28 Jan 2012 11:31:26 -0600 Subject: [PATCH 1445/2731] We were using translitcodec and I didn't understand how it worked ;) My bad! --- mediagoblin/tools/url.py | 1 + setup.py | 1 + 2 files changed, 2 insertions(+) diff --git a/mediagoblin/tools/url.py b/mediagoblin/tools/url.py index e2caed39..78b5dd63 100644 --- a/mediagoblin/tools/url.py +++ b/mediagoblin/tools/url.py @@ -15,6 +15,7 @@ # along with this program. If not, see . import re +import translitcodec _punct_re = re.compile(r'[\t !"#$%&\'()*\-/<=>?@\[\\\]^_`{|},.]+') diff --git a/setup.py b/setup.py index 4761f2b5..ca7d4ae2 100644 --- a/setup.py +++ b/setup.py @@ -57,6 +57,7 @@ setup( 'sphinx', 'PIL', 'Babel', + 'translitcodec', 'argparse', 'webtest', 'ConfigObj', From d7bec8577ea1b4d83df097f586324445fed1ef50 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 24 Dec 2011 16:53:32 +0100 Subject: [PATCH 1446/2731] Add develover sql switch If you want to play with the current state of sql, you need a switch to turn it on. So here is the super secret developer switch. So you want to know where it is? Here it is: Create a file mediagoblin/db/sql_switch.py and put one line in it: "use_sql = True" (or False to disable again). Right, that's it. If you want to delete it, remember to delete the *.pyc too. Be careful not to "git add" it by accident! --- mediagoblin/db/open.py | 13 +++++++++++-- mediagoblin/db/util.py | 11 +++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/mediagoblin/db/open.py b/mediagoblin/db/open.py index 32827fcb..6cd17869 100644 --- a/mediagoblin/db/open.py +++ b/mediagoblin/db/open.py @@ -14,5 +14,14 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from mediagoblin.db.mongo.open import \ - setup_connection_and_db_from_config, check_db_migrations_current +try: + from mediagoblin.db.sql_switch import use_sql +except ImportError: + use_sql = False + +if use_sql: + from mediagoblin.db.sql.open import \ + setup_connection_and_db_from_config, check_db_migrations_current +else: + from mediagoblin.db.mongo.open import \ + setup_connection_and_db_from_config, check_db_migrations_current diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index 1df9494c..fff71d06 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -14,5 +14,12 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -from mediagoblin.db.mongo.util import (ObjectId, InvalidId, - DESCENDING) +try: + from mediagoblin.db.sql_switch import use_sql +except ImportError: + use_sql = False + +if use_sql: + from mediagoblin.db.sql.fake import ObjectId, InvalidId, DESCENDING +else: + from mediagoblin.db.mongo.util import ObjectId, InvalidId, DESCENDING From ebc0e382398fbc665e6b133bd3925c5352d3d51d Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Sat, 28 Jan 2012 18:53:36 +0100 Subject: [PATCH 1447/2731] Resized a test_exif test image. 1.9M is unnecessarily large. --- mediagoblin/tests/test_exif/has-gps.jpg | Bin 1933121 -> 141246 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/mediagoblin/tests/test_exif/has-gps.jpg b/mediagoblin/tests/test_exif/has-gps.jpg index c7d2cc93528ee2b0f09cec2160ffc908e408b459..f6f39d86ac4c0f9429967b3e0c54a8133fc73997 100644 GIT binary patch delta 129982 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 literal 1933121 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�_hoyc7Fa1Gsl{`#7KiM!hck6f&lJp*$HN5fZ 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

    M=-4`)Ql?eP{ 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

    =AQ+=ry;)(-Zhoc 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�P{yFbh_ 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Ź)Ou~W+2vcNP22QH&%S>e{b2Ypstcu? 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

    y3r1Ot@sJ>hq42v7Yzjp+W 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%0DtU8x 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%0AY@qBc*IL^pk2+ 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%0D`g*dAl`?yu@ z=G}KIxf{_3-R+a>Ug2`F+;5uNGifp)ZG?e_Zbx3n*1Ydg(e7?FJ8M0Sr&+4`lDKpH zM;*C1>?^BfW5=wna?ww7V5@UyePs{~P>hoDV}d~GkJh{0GsjUYLi&Q;UPEP-9$ZQ! zamEla;A62q^~2t1*B)D2+nYd12d(=gZ?d%b0vD_}7BuOGiAywO+pq%Bq@-bYlr=nV{`h-R+x1J)BL&jB9jzJyx z>0BO?jwXaoZjum4W<}gc=OBCZuFAsKP}FqmyNMy+wO7wj#1>+30mmmGb?sX6bYh0a z9lwX=np1P839e_k&&wQtGwtM$Y!6zoV{I((+v-TyCL5J=gga4y;F7)Z>t2PVX&Qpr z>C$Pgo_V_oEGsIfoS|}5WaoZy$9mlU#g^O6U5qdHj~<1JkUgp$I0gf!S9-n>`ig~jS#kn?fPtooDv^*QZv)H71K#-Y068f zBgur2 zlkWL?$Xlpx*fm1%+S@(c3u!Eju>lE`vOIA&QMh&axfuLw(WZ>uGOLS}yo*m}N{y3r3Om4QgiwMNqv6A5LmHku%uN&ytJhG5NqH56lvMt$c!TJkOdz*Ma;;6_aN?q|ul5pAlX`eWZVE zUwIMTf5*Ib>$Iw89XT=)MV-sXbeD)8WGTz4>>26LsrUA+>1Bf5qtwz{*rtwBvRlm= zR*i_~Ju-Ri(y^^=EaKdB_vk0Z2+d2rc2V&xry;1Vj? zL|F9;V3&sG*5FAa1BjG3s+(g?57jty?05}t+aWsqDzQkxRY-6LZ$}D`CC2DJu*G( zE=x^8)XgLpY#B_T6~K*08TZY7qvM~0zARfgwN{$vP|T_4;k}(m9(rKcb zDvKH8r#a0-mV~%7j!30fxL3825&m2``@nm4{41~0t=?PfIP~Ou86CnImAF7Tu+;-EXYqaK}3o3&->WuKDC`$ zXmw$usq6k2ZCV{ow2Pa#+6!5tp5XHy=RAbS3(c zq0iX9&J8!h8Vc&Vwxgdh48W~-pUJ5J@F@U{C zt$0U=^ysc-w4B?;4fTvfZdesw?b{o1gTO#A#PUh6d+^3AEhCu>cedJFBYyOgyKh_p z-*L-&@n6hd**9bRR}mc#r2IRo8~27?LU8wX^T+`yzCx%D*1_SAZ(8<^3Ra%p84U2r zZ#$uw`DQ#2IVX4V4{keGg7{BOj^gsmRR-DP(Ou`9Paq1RiNRMr@ObpEanY7IQY$#a zMQn@ar<&~{O~i4}-p}b>cx9>i_YuW%yB?VE+TZ<_&M9tet@Qi9J{cvD87=?=B=#P| zwR&EaD#<)0k$k3^m&%BBR^%T}4S8mrsTpU}jHtGc4atkjEt4{O@;K)og?g=?qxREw zf3a;WH3-nMVon=t41taZwkzmx)e=7h&#;bHXRm4h0J})$o&3O(7`lNX;DQ0iYTmh) z&RJE^JE&C(OY*0w1Xm4ZsoI3NGHLV0`^|)ryeng;wQV6^-N@4=u#GYMurtqcYucw( zSp1(Ifz_Ym%iwtRyPM0IwVO>9H0wREqXD=#&zQq0=NK8Ut^5af{jH_mm6F@UFG-uPayPXcw z{>ILf^vzb(+)5UE zi+g5@)6JZR>xkW%2Lujqc{um0kyu{o*H;?5B-3e-!nVF(w+tt6*#svf4!oY#_t+|& z+N0yKaB0}a((Ud%Goqaq=lebE+CpO%(Qy_@+QgjX;~a{1hhqiY_jW5a_LXTIawAV~ zdA3XBa0yX^!N|$=993)iE`POcrMS3N(5789<1TI&gFJH9oGy#o~L-TI%B0PSs|3Ee^mIBm)B&5h@c>boNdTlb#rpKfbneL5XJ(&EM`=N4~xlgAwLGc-y8IZ`k>Ds)9#&!|G_O^-@7ME;M1~GC#`^Ar8 zyS;klwdD8jpq*;o2ecNk+szE^Q6eF~{XXUJ{W*Z?xn9dYtE`3Ff>_H9K8DQG(tmZ=klgV3v|T8!Y2LJ7)u? zGt#=d9Zt^MOz{+Q>H95UB)-Y8^K|)+d;Kf(hYK_Aqc>w0`vzHci|d!R*=HQ3WRBWw zdCCrOeY5N7UdiA+KHlbA8~*_9i_0|9BvzK)A84HkBn*?Z^Tr#$HS?v-{l2HJ-=&?! z*Y-2q18wEWy=&flE2&F!tp5ON+}ddOPq0O~?iG^aB{)0rge-kP?O#uk z({{RNlbKdmvq$Og?BlLz`ewJLeY)<>`pd+Y{{U*XhVKfn%$dWhpSt}A92)x*;s%iy zj4dX*&X&)lX{{Wro92mABkz>wJx9Jdugzb9TJ6hgOJi%MX_`Iukn$G2wU`B2Rd=jx zu6DBQqO5wJDh0#_`Uvw0>hI_1t-02xZR)p*XLq=F-QH8Qs|UQ(E|Y zb>lTnI?=EG-2o89meVkfIKmb`ykEL-Z~+zcC&CYh8vca764LHp`yMY0Gg~AQLX!Qa zCsH>2+@D;Y{VVCu0Q@k~ZFLLXV@q90G|Stcv~1Y8cOc^#!59aTUW%59Yj1UTYX#P; zYX!(zZjv-fPyz=4`<}h4o>F_Wc~iR3`GexFpJ5e*5nM@nw`74df-TDcUL)P;ta;;{ ziueQK9rW~)Ca}0xqT?_M_X%qa^q=Ga+_O-*LP0GHOY8>`)rn4f|+d$k{IWyf`cqw?aevQa&$|Z zZC36ZI0G3(8CS^ZoaASz#}$(m+*ca4{L;a!e`m&8C|P408Gsl;+sthD?lD`i%^slh z>99|#S=~)2i*%|Kz^lpKlk3=51xVQSBRvYz-RLIH?(W`aIz`REdy*~zKtkbEspJ9A z12vjuvcHBnY@~@6YzX8Wh5QX{eTL>+7}^_IHO(Fs5Xo?nqe|{_8L`IPRb4|vhAmyD zXVdM$MQL`;x9ts&l(u+NfzWlRNUv&ET}xYn3%e^%5L#QnZZjmYStLarR|P|LJazij z{VEHjwOB1KY?|^^D{d$G&}XhQ*!S&OpJ|fQd{>qcUg=i|(fQ}+bSID$9vi3SQOOOK zppn9oTP4I6USkIvB9lB3jPRp91#Y3Gk3LBJiWrtrR*YvK(!+?7}@wCi~n%a#qHKyR6p9C?^MNaSX@e+cL@O?#o(UOm*- z`c=AHGujrBfXOOD4&Z*CweLPTzqOjrP0_6E^$`t>(W{GT;dwEPv2ts0qxs^}#wuHN=5bq@nC?ya1jU7I-vKb2b5~H?o)7{MpE#>^VIqZ6ZIuYMB(-~NWBv!GuxbX(HaE@(K8^#W9WJWSEPzF^-3HeFE zK9sAeUc)(eSYy;>nA_V=C95pcEP3R+pT1Wd0n($6?f%m%TP$x4!g&oKa1@M;V?2UA zX!7BgQdIj=>MA8yMuqo7k~Xo!bYcDM)j9SzQWD1DY+<=el!VVE(3FCqM5-5V7>>fV zG@V`ioi56C)6yFxF~vI*BRC|ME!{xsG1jQhph+Cf9Kum>{Doi`IR}x)1QA=BOmnM- zwlLX9&^oA{6e-~CWXSu#@N?5OnWSZ7ANw>zWoTs7tZyQg11m*s360fcVpo3b^#hD^ zgUxz(fjo7o{5ZGLuXMQ^O$totkd2>a4adp>=iFwzw#s-9gk!!ETElYkh>R%VPT+Yw z^OioGaZ{rY5bE>Gdts?rYOzAfpkPL00PSwQ$m2DH*K=i7+ZKL4c++0-{oGo$=9?C$ ztE`SDmNfa`UJ9NL(5yQShP4iwsuoX=QYfd`F80d@CzUraz||DyDzlC zZ{c~DP$KnZK;_!si#8;jmj^Br`?&8^d?O^%LH2z;t~I98rBOGLxnq-f$QeBjInFq& z;Z1W~(sf%s+ejAodL6E-CEOy~3(%${j1-1d1Z0fmM&5>&duF=0(saEt8@v0o1}7pg z#ew^{Ba%jWsB|4kth7tbBl|jA2YFG^)s*k`3yw|)9QDmm@W!nToXcwR+Yr{1{jYUfk&CZe|KaizhhPqG;@Jh|tPE^=~r z06lA@)wLz?-kjPtogLQA=d-KFA(I97pQF^iiCQVB9I5v@BF_c6_-W%!Q&2P7creElttHFPoyOgqwbN}{3ncmOo6T5~6&yFqo=M}U9M=V{X||pt zia89@n^*nQft5G6$Qu3wMWbt4l|x} zS9~Avy4K2RHE$99iuX&JMN|y9ZQz1eaOdvv&l#@wSzAj@Mmwjmk5$y>i|1IuWS4IX zk_TL8@~wGwyK8L`AYo-K%3f#404vM_=O^ef)|{u<=agGJgLsp@m8FCQ5(|H`c`$DB zh{-!gJgzuC^-j$!W1H;PHdp#`UxOmOzd)mmf_h@Si%-|$xt(S=bK0i;hsg(kdY!|e zuJ=gSmig~&=egeQgscn4of>eh&l`{HQnfjy8y%gkyi!2gcAoRa3?Rq0X_3sKyY3#n z$69NDXw4CZT{7l4BmLMxY<#!uIbJ&Y)^?dTnPwkNEYMABADo@CI<|f5PWD|&?%v)j zM=ccPXN`9{FCWG+_lLK7sYb@guWfyO3SQgX3tKg^i(-jWYfX+^@y6gkN{wZ`n$f4$ zt=%;1JH&}6L>bus05XlkxdR-GjMVBaZc(3CGRbRWi6Sc*cV^EZ4@`8VO;YPsd(A%5 z-&A{DLU6$fU?^UW7pP!!f=v;ZKr|%Ne$%OmZ7wctQb>d`$0L63(L-*>u=V4b{SEz_ zyiY%d?4D5Cs$FQT(MXV^O6=tD(Tw1s1RNf44SsmEsi*3K);r%a;ooD&BVtpKeqoV~ z+zjWneKX*19baGgF7r#%Z8eDQ^-Gxiv1N9GWhgO%55K2DRVdtC$oiY&55`?vU(s!} zyIY+_B8E~HC}(Jv@sY4nL?`8p9!bwbUz;8&*Pi0*P_dKcpIVklu1R(*+@IqIpO|Ak zafL!NfGCzAM1Meqdq;ZbMnHAoZbEXkB z-dt zfC}WeCnS--C$CY!uBs5RGSuj#SaqlxX!M4<)xKEej@+LuVorx~!TEhU*4Kihllwy5 zt=881OJe4GZy{aECIT=$LFzDbS+@7LMtj7T&_yfhzh_4vM4`XGx2Y!>9rIc~7=rFN zETgtilFNKU%atMkSAx&gR2=8tzK1WTspewiq4lnbeqTaMTUhR7)^F|&!>quv*}?}K zF~=u6zYJE*?wf6A1;j$oYN<5HujTH-ss1oWTxUOpWO#ZT?+$6CwUnBaP+?HYHnre> zn+WVVJl9(&ofAp7v4S+a)gqLeSu^HD2OGdVV>kf%*Vo}AW5|<5vm#kLM{Oj_96?Bv z8yMtu!8sf+>t4C=W8pTb@mIxHT4XTVPj7h~V8E8FUQ~0E+wuaAx%9?s$F-Xn@8i?- z>ozdz*067i+CZwwBJJd`iS%^;jTQm?imK-jlcoak(_6W z>#NPm(k_gZ)z92D_+Q~)*_XgRG1NRYqUd*CC)4!FS+x%=v@rkxF^8043pW8OH9F_8)+LHTcKkCEl6v<5|`BW@th-!AZzQZn;#(wRIQ0XOUv7Ah_DO$+8g#GVN$j;vBTBSEcJoi=$1}y8mM!~k=(2B^oP{{~a7RI!`ycjzw>I;|e|w^Me$}-7pJ*Z#GO{1IssO=J{2=q5 zYvZvdin`t05U8+@{{YLlXoTvszz8RBKXjHq!a7&Kg^iY{omNWca~8d4d8%oaG0tby z8rTOB^>rMR&!sM<;ypZE+uF>*WVQ2SHw|vf5!;QV4&x^ouR8HIvvH)Qi_NCkrL2~s zIqq?}=lQ>lhbS;{#c`4NpH|hhYfI~kiwJED(rIw3AD#BF!+^Z}pl#=ZE7yff9Ihz( zZ%@3`FRyIu7D%px#AR6Rh)Ck{_!%S6lab!E<&s&hV_!Ph>G%sbl0%PmBpiZ8eCcPY zOLeuNxV(a0E@p;5EVONI$C5{8EIA&P>Kc6dUC51XQW&m0poJ5RVD)Z*p1CKzc2ln# zYRn}~Esna`t*)Np=3BX^c-zT^T3YUX*LNyDnLPSd8rij@+}Yk* zyc491(ygloFa`r?h>k;NJf4+mS1QDp*Y?⋘ZIxk51O6^98!b1{?wNNJemY>sfd5 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�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

    XgDp?(Xi!lG(N~DvA#Ju8TS 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

    Z_YHH^LuST}oUdqnXeC7U#O`6rS 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%0DV=;pg(kF~@m5%M`e4QM2*Orx&@h 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

    B(qUw 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